mirror of https://github.com/qortal/qortal-ui
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
68 lines
2.0 KiB
68 lines
2.0 KiB
'use strict'; |
|
import TransactionBase from './TransactionBase.js' |
|
import Base58 from '../deps/Base58.js' |
|
import { store } from '../../api.js' |
|
|
|
export default class PaymentTransaction extends TransactionBase { |
|
constructor() { |
|
super() |
|
this.type = 2 |
|
this.tests.push( |
|
() => { |
|
if (!(this._amount >= 0)) { |
|
return 'Invalid amount ' + this._amount / store.getState().config.coin.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 dialogto(dialogto) { |
|
this._dialogto = dialogto |
|
} |
|
|
|
set dialogamount(dialogamount) { |
|
this._dialogamount = dialogamount |
|
} |
|
|
|
set amount(amount) { |
|
this._amount = amount * store.getState().config.coin.decimals |
|
this._amountBytes = this.constructor.utils.int64ToBytes(this._amount) |
|
} |
|
|
|
get params() { |
|
const params = super.params |
|
params.push( |
|
this._recipient, |
|
this._amountBytes, |
|
this._feeBytes |
|
) |
|
return params |
|
} |
|
|
|
render(html) { |
|
const conf = store.getState().config |
|
return html` |
|
<table> |
|
<tr> |
|
<th>${this._dialogto}</th> |
|
<td>${Base58.encode(this._recipient)}</td> |
|
</tr> |
|
<tr> |
|
<th>${this._dialogamount}</th> |
|
<td>${this._amount / conf.coin.decimals} ${conf.coin.symbol}</td> |
|
</tr> |
|
</table> |
|
` |
|
} |
|
}
|
|
|