42 lines
1.7 KiB
JavaScript
42 lines
1.7 KiB
JavaScript
"use strict";
|
|
/*
|
|
TO DO
|
|
*/
|
|
|
|
|
|
(function(){
|
|
function generateSignatureArbitraryTransactionV3(keyPair, lastReference, service, arbitraryData, fee, timestamp) => {
|
|
const data = generateArbitraryTransactionV3Base(keyPair.publicKey, lastReference, service, arbitraryData, fee, timestamp);
|
|
return nacl.sign.detached(data, keyPair.privateKey);
|
|
}
|
|
|
|
function generateArbitraryTransactionV3(keyPair, lastReference, service, arbitraryData, fee, timestamp, signature) => {
|
|
return appendBuffer(generateArbitraryTransactionV3Base(keyPair.publicKey, lastReference, service, arbitraryData, fee, timestamp),
|
|
signature);
|
|
}
|
|
|
|
function generateArbitraryTransactionV3Base(publicKey, lastReference, service, arbitraryData, fee, timestamp) => {
|
|
const txType = TYPES.ARBITRARY_TRANSACTION;
|
|
const typeBytes = int32ToBytes(txType);
|
|
const timestampBytes = int64ToBytes(timestamp);
|
|
const feeBytes = int64ToBytes(fee * 100000000);
|
|
const serviceBytes = int32ToBytes(service);
|
|
const dataSizeBytes = int32ToBytes(arbitraryData.length);
|
|
const paymentsLengthBytes = int32ToBytes(0); // Support payments - not yet.
|
|
|
|
var data = new Uint8Array();
|
|
|
|
data = appendBuffer(data, typeBytes);
|
|
data = appendBuffer(data, timestampBytes);
|
|
data = appendBuffer(data, lastReference);
|
|
data = appendBuffer(data, publicKey);
|
|
data = appendBuffer(data, paymentsLengthBytes);
|
|
// Here it is necessary to insert the payments, if there are
|
|
data = appendBuffer(data, serviceBytes);
|
|
data = appendBuffer(data, dataSizeBytes);
|
|
data = appendBuffer(data, arbitraryData);
|
|
data = appendBuffer(data, feeBytes);
|
|
|
|
return data;
|
|
}
|
|
}()) |