forked from Qortal/qortal-ui
69 lines
1.7 KiB
JavaScript
69 lines
1.7 KiB
JavaScript
'use strict'
|
|
import ChatBase from "./ChatBase.js"
|
|
import {CHAT_REFERENCE_FEATURE_TRIGGER_TIMESTAMP} from '../../constants.js'
|
|
|
|
export default class GroupChatTransaction extends ChatBase {
|
|
constructor() {
|
|
super();
|
|
this.type = 18
|
|
this.fee = 0
|
|
}
|
|
|
|
set proofOfWorkNonce(proofOfWorkNonce) {
|
|
this._proofOfWorkNonce = this.constructor.utils.int32ToBytes(proofOfWorkNonce)
|
|
}
|
|
|
|
set hasReceipient(hasReceipient) {
|
|
this._hasReceipient = new Uint8Array(1)
|
|
this._hasReceipient[0] = hasReceipient
|
|
}
|
|
|
|
set message(message) {
|
|
this.messageText = message
|
|
this._message = this.constructor.utils.stringtoUTF8Array(message)
|
|
this._messageLength = this.constructor.utils.int32ToBytes(this._message.length)
|
|
}
|
|
|
|
set hasChatReference(hasChatReference) {
|
|
this._hasChatReference = new Uint8Array(1)
|
|
this._hasChatReference[0] = hasChatReference
|
|
}
|
|
|
|
set chatReference(chatReference) {
|
|
this._chatReference = chatReference instanceof Uint8Array ? chatReference : this.constructor.Base58.decode(chatReference)
|
|
}
|
|
|
|
set isEncrypted(isEncrypted) {
|
|
this._isEncrypted = new Uint8Array(1);
|
|
this._isEncrypted[0] = isEncrypted
|
|
}
|
|
|
|
set isText(isText) {
|
|
this._isText = new Uint8Array(1)
|
|
this._isText[0] = isText
|
|
}
|
|
|
|
get params() {
|
|
const params = super.params
|
|
params.push(
|
|
this._proofOfWorkNonce,
|
|
this._hasReceipient,
|
|
this._messageLength,
|
|
this._message,
|
|
this._isEncrypted,
|
|
this._isText,
|
|
this._feeBytes
|
|
)
|
|
|
|
// After the feature trigger timestamp we need to include chat reference
|
|
if (new Date(this._timestamp).getTime() >= CHAT_REFERENCE_FEATURE_TRIGGER_TIMESTAMP) {
|
|
params.push(this._hasChatReference)
|
|
|
|
if (this._hasChatReference[0] == 1) {
|
|
params.push(this._chatReference)
|
|
}
|
|
}
|
|
return params
|
|
}
|
|
}
|