'use strict'
import TransactionBase from './TransactionBase.js'
import {QORT_DECIMALS} from '../constants.js'

export default class PaymentTransaction extends TransactionBase {
	constructor() {
		super()
		this.type = 20
	}

	set recipient(recipient) {
		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
	}
}