mirror of
https://github.com/Qortal/qortal-ui.git
synced 2025-07-22 12:24:18 +00:00
build
config
img
lib
locales
qortal-ui-core
qortal-ui-crypto
api
bitcoin
deps
transactions
arbitrary
chat
ChatBase.js
ChatTransaction.js
GroupChatTransaction.js
decryptChatMessage.js
signChat.js
groups
names
reward-share
trade-portal
AirdropTransaction.js
DelegationTransaction.js
MessageTransaction.js
PaymentTransaction.js
PublicizeTransaction.js
TransactionBase.js
TransferPrivsTransaction.js
arbitraryV3.js
processTransaction.js
registerName_dnsthing.js
transactions.js
utils
wallet
PhraseWallet.js
api.js
constants.js
createTransaction.js
createWallet.js
decryptStoredWallet.js
fetch-request.js
kdf.js
registerUsername.js
storeWallet.js
tradeRequest.js
api.js
api_deps.js
config.js
package.json
qortal-ui-plugins
scripts
snap
.editorconfig
.eslintrc.json
.gitattributes
.gitignore
.travis.yml
CONTRIBUTING.md
LICENSE
README.md
build-setup.js
build.bat
build.js
build.sh
electron-builder.yml
electron.js
install-dependencies.sh
package.json
push-updates-with-travis-build.sh
run_server.bat
server.js
set-up-snap.sh
update-package-json.js
watch-inline.js
watch.js
44 lines
1.0 KiB
JavaScript
44 lines
1.0 KiB
JavaScript
import nacl from '../../deps/nacl-fast.js'
|
|
import utils from '../../deps/utils.js'
|
|
|
|
const signChat = (chatBytes, nonce, keyPair) => {
|
|
|
|
if (!chatBytes) {
|
|
throw new Error('Chat Bytes not defined')
|
|
}
|
|
|
|
if (!nonce) {
|
|
throw new Error('Nonce not defined')
|
|
}
|
|
|
|
if (!keyPair) {
|
|
throw new Error('keyPair not defined')
|
|
}
|
|
|
|
const _nonce = utils.int32ToBytes(nonce)
|
|
|
|
if (chatBytes.length === undefined) {
|
|
const _chatBytesBuffer = Object.keys(chatBytes).map(function (key) { return chatBytes[key]; })
|
|
|
|
const chatBytesBuffer = new Uint8Array(_chatBytesBuffer)
|
|
chatBytesBuffer.set(_nonce, 112)
|
|
|
|
const signature = nacl.sign.detached(chatBytesBuffer, keyPair.privateKey)
|
|
|
|
const signedBytes = utils.appendBuffer(chatBytesBuffer, signature)
|
|
|
|
return signedBytes
|
|
} else {
|
|
const chatBytesBuffer = new Uint8Array(chatBytes)
|
|
chatBytesBuffer.set(_nonce, 112)
|
|
|
|
const signature = nacl.sign.detached(chatBytesBuffer, keyPair.privateKey)
|
|
|
|
const signedBytes = utils.appendBuffer(chatBytesBuffer, signature)
|
|
|
|
return signedBytes
|
|
}
|
|
}
|
|
|
|
export default signChat
|