mirror of
https://github.com/trezor/trezor-suite.git
synced 2026-03-06 15:29:44 +01:00
196 lines
6.1 KiB
Markdown
196 lines
6.1 KiB
Markdown
## Send form active elements description
|
|
|
|
### Outputs (BTC coins only):
|
|
|
|
- regular (transfer) output is set by default
|
|
- add OP_RETURN: if default output has any values then OP_RETURN is added as a second output otherwise will replace the first input
|
|
- remove OP_RETURN: if there is only 1 output (OP_RETURN) then switch to regular otherwise just remove it
|
|
- add recipient
|
|
- remove recipient
|
|
- Clear all
|
|
|
|
---
|
|
|
|
### Address:
|
|
|
|
- on address input change
|
|
- on QR scan
|
|
- on Import (to be done)
|
|
|
|
### Address errors:
|
|
|
|
- RECIPIENT_IS_NOT_SET (empty field)
|
|
- RECIPIENT_IS_NOT_VALID (not valid address)
|
|
- RECIPIENT_CANNOT_SEND_TO_MYSELF (XRP only: cannot send to myself)
|
|
|
|
---
|
|
|
|
### Amount:
|
|
|
|
- on amount input change
|
|
- on Fiat input change
|
|
- on QR scan (optional if defined in QR code)
|
|
- on Import (to be done, optional if defined in file)
|
|
- IF sendmax is ON
|
|
- IF sendmax is set AND has second(or multiple) output(s): on second output Amount change
|
|
- IF sendmax is set: on every fee level change
|
|
- IF sendmax is set: on custom fee change
|
|
- IF sendmax is set: on BTC opreturn data changed
|
|
- IF sendmax is set: on ETH data changed
|
|
- (ETH only) IF sendmax is set AND switching between ETH (base currency) and TOKEN
|
|
|
|
### Amount errors:
|
|
|
|
- AMOUNT_IS_NOT_SET (empty field)
|
|
- AMOUNT_IS_TOO_LOW (lower/equal than zero + ETH exception: 0 amount is possible ONLY for tx with DATA)
|
|
- AMOUNT_IS_BELOW_DUST lower than network dust limit
|
|
- AMOUNT_IS_NOT_ENOUGH (not enough funds on account)
|
|
- AMOUNT_NOT_ENOUGH_CURRENCY_FEE (ETH only: trying to send TOKEN without enough ETH to cover TX fee)
|
|
- AMOUNT_IS_MORE_THAN_RESERVE (XRP only: trying to spend the reserve)
|
|
- AMOUNT_IS_LESS_THAN_RESERVE (XRP only: trying to send less XRP than required reserve to the empty account)
|
|
- AMOUNT_IS_NOT_IN_RANGE_DECIMALS (amount with invalid decimal places)
|
|
- AMOUNT_IS_NOT_INTEGER (ERC20 only: token doesn't accept decimal places)
|
|
- REMAINING_BALANCE_LESS_THAN_RENT (solana only: account has to keep a minimal balance equal to rent)
|
|
|
|
---
|
|
|
|
### Fiat:
|
|
|
|
- on fiat input change
|
|
- on Amount input change (any reason listed above)
|
|
- on Currency select change (recalculation)
|
|
- on Import (to be done, optional if defined in file AND amount is not defined in file)
|
|
|
|
### Fiat errors:
|
|
|
|
- AMOUNT_IS_NOT_SET (empty field)
|
|
- AMOUNT_IS_TOO_LOW (lower than 0, 0 is still possible if recalculated amount is lower than 1 cent)
|
|
- AMOUNT_IS_NOT_IN_RANGE_DECIMALS (max. 2 decimals allowed)
|
|
|
|
---
|
|
|
|
### Fee:
|
|
|
|
- on fee level click
|
|
- on custom fee level input change
|
|
- on BTC OP_RETURN data changed
|
|
- on ETH data changed
|
|
- switching from "regular" fee level to "custom" should set value from last selected fee
|
|
- IF fee level wasn't changed yet (normal) and there is not enough coins to satisfy normal level should be automatically switched to first possible (lower) level, either LOW or CUSTOM...
|
|
- last used fee level will be remembered globally for this coin
|
|
- estimated time is only available for BTC-like coins
|
|
|
|
### Fee errors (custom level):
|
|
|
|
- CUSTOM_FEE_IS_NOT_SET (empty field)
|
|
- CUSTOM_FEE_IS_NOT_INTEGER (BTC and XRP: decimals not allowed)
|
|
- AMOUNT_IS_NOT_IN_RANGE_DECIMALS (ETH only: decimals are allowed but with max. 9 decimals - GWEI is not satoshi)
|
|
- CUSTOM_FEE_NOT_IN_RANGE (must be between minFee and maxFee specified in coins.json, in @trezor/connect)
|
|
|
|
---
|
|
|
|
### (BTC only) OP_RETURN output:
|
|
|
|
- HEX field, (on the right) should be changed on every ASCII field (on the left) change
|
|
- ASCII field should be changed ONLY if HEX is valid, otherwise should be empty
|
|
|
|
### OP_RETURN output errors:
|
|
|
|
- DATA_NOT_SET (empty fields)
|
|
- DATA_NOT_VALID_HEX (not valid hexadecimal)
|
|
- DATA_HEX_TOO_BIG (data size limited to 80 bytes)
|
|
|
|
---
|
|
|
|
### (BTC only) Locktime:
|
|
|
|
Additional field in send form, activated by "Add locktime" option.
|
|
|
|
If the number is greater than 500000000 then it is a timestamp otherwise is block number
|
|
|
|
- on "add locktime" input change
|
|
- on RBF option enable
|
|
- should disable RBF option if set
|
|
- should disable BROADCAST option if set
|
|
|
|
### Locktime errors:
|
|
|
|
- LOCKTIME_IS_NOT_SET
|
|
- LOCKTIME_IS_NOT_NUMBER
|
|
- LOCKTIME_IS_TOO_LOW (lower/equal zero)
|
|
- LOCKTIME_IS_NOT_INTEGER (decimals not allowed)
|
|
- LOCKTIME_IS_TOO_BIG (locktime larger than max unix timestamp \* 2 = 4294967294)
|
|
|
|
---
|
|
|
|
### (BTC only) RBF:
|
|
|
|
Additional checkbox in send form, since this could be only true/false there is no validation for that filed
|
|
|
|
---
|
|
|
|
### (ETH only) Data:
|
|
|
|
Additional field in send form, activated by "Add data" option. Same behavior as BTC OP_RETURN output.
|
|
|
|
- HEX field, (on the right) should be changed on every ASCII field (on the left) change
|
|
- ASCII field should be changed ONLY if HEX is valid, otherwise should be empty
|
|
|
|
### Data errors:
|
|
|
|
- DATA_NOT_VALID_HEX
|
|
- DATA_HEX_TOO_BIG (data size limit: 8192 bytes for protobuf single message encoding)
|
|
|
|
---
|
|
|
|
### (XRP only) Destination tag:
|
|
|
|
Additional field in send form, activated by "Add destination tag" option
|
|
It doesn't have impact on transaction itself (fee, amount etc)
|
|
|
|
### Destination tag errors:
|
|
|
|
- DESTINATION_TAG_NOT_SET
|
|
- DESTINATION_TAG_IS_NOT_NUMBER
|
|
- DESTINATION_TAG_IS_NOT_VALID (decimals not allowed, in range: 0 - 4294967295)
|
|
|
|
---
|
|
|
|
### Broadcast:
|
|
|
|
- toggle "Sign transaction" / "Send transaction" button
|
|
- "Review transaction" modal with different options at the last step (copy or download signed tx)
|
|
|
|
---
|
|
|
|
### Drafts:
|
|
|
|
- draft should be saved on change of any field (if this field is valid)
|
|
- draft should be loaded after changing url (going back to send form from any other page)
|
|
|
|
---
|
|
|
|
### Send RAW:
|
|
|
|
- Broadcast signed tx to the network regardless of tx OWNER, this tx doesn't have to be signed by currently selected account, only selected NETWORK matters
|
|
|
|
---
|
|
|
|
### Precomposed transaction ("Total Sent" field)
|
|
|
|
- on load draft
|
|
- on address change
|
|
- on amount change
|
|
- on fee change
|
|
- on additional option change
|
|
|
|
---
|
|
|
|
### Review modal
|
|
|
|
- can be cancelled at any time during signing
|
|
- mirroring data displayed on the device
|
|
- if there is BTC OP_RETURN data or ETH DATA present and those data are larger than 10 chars additional "expand button" will appear next to it
|
|
- (BTC only) Expandable "Transaction detail" section
|
|
- Regarding to BROADCAST option "Send transaction" or "Copy/download transaction" buttons are available on the last step
|