[Cashtab] Airdrop Option - exclusion list
Summary:
As per T2143:
Option to exclude a list of addresses from the airdrop recipients list. This includes both the filtering out of the address and the overall pro rata calculation of airdrop for each address.
Additional addresses in the ignore list are to be separated by a comma.
Test Plan:
- add only one single address to the ignore list and ensure it is reflected in calculations
- add more than one address to the ignore list, separated by a comma and ensure they are reflected in calculations
- duplicate a particular address in the ignore list and ensure it does not cause calculation issues
- ensure once an initial calculation is outputted, subsequent edits to the ignore list will still trigger address validation
- test an ignore list where the addresses represent the entirety of the full recipients list, and ensure the 'no holders found for etoken ID...' error message is displayed and the loading dialogues are deactivated.
- test the following scenarios for activation/deactivation of the Calculate Airdrop button
- invalid etoken ID + invalid total airdrop figure = disabled
- valid etoken ID + invalid total airdrop figure = disabled
- valid etoken ID + valid total airdrop figure = enabled
- ensure ignore address list textarea input is disabled if the checkbox is unchecked
- valid etoken ID + valid total airdrop figure + checked ignore option + invalid ignore addresses = disabled
- valid etoken ID + invalid total airdrop figure + checked ignore option + valid ignore addresses = disabled
- valid etoken ID + valid total airdrop figure + checked ignore option + empty ignore addresses = disabled
- regression test the routing from the send etoken screen to the airdrop screen
- ensure bitcoincash: and slp: addresses including their prefix-less versions, are invalidated
- ensure valid ecash: addresses and their prefix-less versions are validated
- ensure valid etoken: addresses and their prefix-less versions are invalidated
Reviewers: bytesofman, #bitcoin_abc
Reviewed By: bytesofman, #bitcoin_abc
Differential Revision: https://reviews.bitcoinabc.org/D11256