Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
const buildMessage = (header, body, keyPair) => {
const unsignedMessage = appendBuffer(new Uint8Array(header), body)
// calculate payload and insert it into buffer
Exonum.Uint32.serialize(unsignedMessage.length + SIGNATURE_LENGTH, unsignedMessage, PAYLOAD_SIZE_OFFSET)
// calculate signature
const signature = Exonum.sign(keyPair.secretKey, unsignedMessage)
// append signature to the message
return appendBuffer(unsignedMessage, Exonum.hexadecimalToUint8Array(signature))
}
transfer (keyPair, receiver, amountToTransfer, seed) {
// Describe transaction
const transaction = new TransferTransaction(keyPair.publicKey)
// Transaction data
const data = {
seed: seed,
toWallet: Exonum.hexadecimalToUint8Array(receiver),
sum: amountToTransfer
}
// Send transaction into blockchain
return transaction.send(TRANSACTION_URL, data, keyPair.secretKey)
},
transfer (keyPair, receiver, amountToTransfer, seed) {
// serialize and append message header
const header = createHeader(TX_TRANSFER_ID)
// serialize and append message body
const data = {
seed: seed,
senderId: Exonum.hexadecimalToUint8Array(keyPair.publicKey),
recipientId: Exonum.hexadecimalToUint8Array(receiver),
amount: amountToTransfer
}
const body = TransferTransactionProtobuf.encode(data).finish()
return axios.post(TX_URL, buildMessage(header, body, keyPair))
.then(response => waitForAcceptance(keyPair.publicKey, response.data))
},
transfer (keyPair, receiver, amountToTransfer, seed) {
// serialize and append message header
const header = createHeader(TX_TRANSFER_ID)
// serialize and append message body
const data = {
seed: seed,
senderId: Exonum.hexadecimalToUint8Array(keyPair.publicKey),
recipientId: Exonum.hexadecimalToUint8Array(receiver),
amount: amountToTransfer
}
const body = TransferTransactionProtobuf.encode(data).finish()
return axios.post(TX_URL, buildMessage(header, body, keyPair))
.then(response => waitForAcceptance(keyPair.publicKey, response.data))
},
createWallet (keyPair, balance) {
// serialize and append message header
const header = createHeader(TX_WALLET_ID)
// serialize and append message body
const data = {
ownerPublicKey: Exonum.hexadecimalToUint8Array(keyPair.publicKey),
initialBalance: balance
}
const body = CreateTransactionProtobuf.encode(data).finish()
return axios.post(TX_URL, buildMessage(header, body, keyPair))
},