qortal-ui/qortal-ui-crypto/api/transactions/AirdropTransaction.js
2021-12-25 14:39:47 +01:00

51 lines
1.6 KiB
JavaScript

'use strict';
import TransactionBase from './TransactionBase.js'
import { QORT_DECIMALS } from '../constants.js'
// import { Sha256 } from 'asmcrypto.js/dist_es5/entry-export_all.js'
export default class PaymentTransaction extends TransactionBase {
constructor () {
super()
this.type = 20
this.amount = 42 * Math.pow(10, 8)
this.tests.push(
() => {
if (!(this._amount >= 0)) {
return 'Invalid amount ' + this._amount / QORT_DECIMALS
}
return true
},
() => {
if (!(this._recipient instanceof Uint8Array && this._recipient.length == 25)) {
return 'Invalid recipient ' + Base58.encode(this._recipient)
}
return true
}
)
}
set recipient (recipient) { // Always Base58 encoded. Accepts Uint8Array or Base58 string.
this._recipient = recipient instanceof Uint8Array ? recipient : this.constructor.Base58.decode(recipient)
}
set amount (amount) {
this._amount = amount * QORT_DECIMALS
this._amountBytes = this.constructor.utils.int64ToBytes(amount)
}
set reference (seed) {
const sha = seed => new Sha512().process(seed).finish().result
let reference = sha(sha(seed))
reference += reference
}
get params () {
const params = super.params
params.push(
this._recipient,
this._amountBytes,
this._feeBytes
)
return params
}
}