Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

release-candidate v0.28.0-rc.1 #576

Merged
merged 54 commits into from
Oct 8, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
54 commits
Select commit Hold shift + click to select a range
480382c
feat: add nano contract feature toggle (#441)
alexruzenhack Mar 14, 2024
c82a0ce
fix: missing transaction after reload (#442)
alexruzenhack Mar 15, 2024
54aa3e8
fix: wallet-service network error (#444)
alexruzenhack Mar 22, 2024
c15f2ca
feat: add registerNanoContract saga effect (#427)
alexruzenhack Mar 26, 2024
3082525
feat: filter HTR out when fetching token metadata (#460)
r4mmer Apr 5, 2024
a3cb9a0
chore: improve instrumentation on sagas (#452)
alexruzenhack Apr 9, 2024
601004b
feat: add icons [4] (#453)
alexruzenhack Apr 10, 2024
e4267db
feat: add components [5] (#454)
alexruzenhack Apr 20, 2024
53bb86c
feat: nano contract history [3] (#432)
alexruzenhack Apr 23, 2024
836e341
feat: add nano contract info to tx history [6] (#434)
alexruzenhack May 3, 2024
4249755
Merge pull request #478 from HathorNetwork/release-candidate
alexruzenhack May 20, 2024
674d65b
bump: v0.27.0 to release (#487)
alexruzenhack May 21, 2024
594ca2c
bump: wallet-lib to v1.5.0 (#488)
alexruzenhack May 23, 2024
d391fe1
feat: add firstBlock to TxHistory model (#476)
alexruzenhack May 23, 2024
0dbdd37
feat: nano contract list component [7] (#435)
alexruzenhack May 24, 2024
ad96b95
fix: remove registered tokens when changing network settings (#475)
alexruzenhack May 28, 2024
4326760
feat: add icons for nano contract transactions [8] (#455)
alexruzenhack May 28, 2024
c744c93
feat: add components for nano contract transactions [9] (#456)
alexruzenhack May 28, 2024
b3cb6a4
chore: call super method on write (#492)
r4mmer May 28, 2024
f884a85
feat: add unregister nano contract saga effect [10] (#457)
alexruzenhack May 29, 2024
95eb490
bump: 0.27.1 (#496)
alexruzenhack Jun 11, 2024
efbf1f2
feat: NanoContractTransactions component [11] (#438)
alexruzenhack Jun 12, 2024
99f4997
feat: add NanoContractTransaction screen [12] (#440)
alexruzenhack Jun 14, 2024
2c66432
feat: add nano contract register screen [13] (#466)
alexruzenhack Jun 18, 2024
062cbe0
refactor: remove .component suffix from component name (#498)
alexruzenhack Jun 18, 2024
2480893
chore: bump wallet-lib to v1.6.0 (#499)
alexruzenhack Jun 18, 2024
300ee31
chore: update QA docs (#490)
alexruzenhack Jun 26, 2024
42ae166
chore: updated flake and nodejs version (#501)
andreabadesso Jul 3, 2024
d1183ee
fix: cleaning of tokens and nano-contract registered after reload (#506)
alexruzenhack Jul 8, 2024
08ed334
chore: upgrade wallet lib to v1.8.0 (#505)
r4mmer Jul 10, 2024
03228e9
fix: txMiningServiceUrl lack of declaration on customNetwork (#503)
alexruzenhack Jul 10, 2024
b96ec18
fix: Unable to send token by reading a QR code (#507)
alexruzenhack Jul 15, 2024
ca9676f
fix: unable to open push notification details modal over any screen (…
alexruzenhack Jul 30, 2024
64f13cf
bump: v0.27.2 (#513)
alexruzenhack Jul 31, 2024
0fcbf33
Merge branch 'master' into release-copy
alexruzenhack Aug 13, 2024
b011a4f
lint: comply with rules
alexruzenhack Aug 13, 2024
1eaef90
Merge pull request #529 from HathorNetwork/release-copy
pedroferreira1 Aug 14, 2024
87b5884
feat: nano contract integration with wallet connect (#495)
alexruzenhack Aug 16, 2024
6d7b713
feat: add nano-contract transaction actions (#530)
alexruzenhack Aug 19, 2024
3eab776
refactor: replace network identification logic by the lib method (#534)
alexruzenhack Aug 22, 2024
9103a9e
fix: nano-contract history pagination and list order (#512)
alexruzenhack Aug 22, 2024
6ba53d9
chore: upgrade actions to a version that use node20 (LTS) (#535)
r4mmer Aug 23, 2024
c3223ce
feat: add qr code to register nano contract (#533)
alexruzenhack Aug 26, 2024
8814c63
feat: improve text input type (#548)
alexruzenhack Aug 27, 2024
74520c6
refactor: replace nano contract state call for history call (#549)
alexruzenhack Aug 27, 2024
5a76d57
feat: parse argument value by custom type (#537)
alexruzenhack Aug 31, 2024
c306c25
feat: rpc lib integration (#500)
andreabadesso Sep 3, 2024
ee76a2d
feat: create token RPC (#528)
andreabadesso Sep 9, 2024
93d6c08
chore: Add git commit information to the pre-release script output
msbrogli Sep 10, 2024
57b782c
feat: add safe effect helper (#552)
alexruzenhack Sep 12, 2024
088a834
feat: make requestUnregisteredTokens concurrent (#565)
alexruzenhack Sep 25, 2024
2a972d2
fix: change nc address by renaming the param to newAddress (#571)
alexruzenhack Sep 26, 2024
122b033
refactor: fetchHistory on sagas/nanoContract to avoid iteration suspe…
alexruzenhack Sep 26, 2024
fdf8b28
feat: add QA for Nano Contract (#572)
alexruzenhack Sep 30, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,15 +18,15 @@ jobs:
timeout-minutes: 40 # default is 360
strategy:
matrix:
node-version: [14.x, 16.x]
node-version: [20.x]
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
- name: Install dependencies
run: npm install
run: npm ci
- name: Install gettext
run: sudo apt-get install gettext
- name: Check version
Expand Down
156 changes: 106 additions & 50 deletions QA_CUSTOM_NETWORK.md
Original file line number Diff line number Diff line change
@@ -1,80 +1,136 @@
# Custom Network

1. **Settings screen**
1. Go to Settings
1. Check you see "General Settings" as the title for the first collection of settings
1. Check you see "Developer Settings" as the title for the second collection of settings
1. [ ] Go to Settings
1. [ ] Check you see "General Settings" as the title for the first collection of settings
1. [ ] Check you see "Developer Settings" as the title for the second collection of settings

1. **Risk Disclaimer screen**
1. Go to Network Settings
1. Ensure you see the `RISK DISCLAIMER` screen
1. Verify that there is a disclaimer text on a yellow background
1. Confirm there is a button at the bottom of the page to acknowledge the disclaimer
1. [ ] Go to Network Settings
1. [ ] Ensure you see the `RISK DISCLAIMER` screen
1. [ ] Verify that there is a disclaimer text on a yellow background
1. [ ] Confirm there is a button at the bottom of the page to acknowledge the disclaimer

1. **Network Pre-Settings Screen**
1. Click on "I UNDERSTAND"
1. Check you see the `NETWORK PRE-SETTINGS` screen
1. Check you see two pre-settings options: Mainnet and Testnet
1. Check you see a button at the bottom of the page to customize the network
1. [ ] Click on "I UNDERSTAND"
1. [ ] Check you see the `NETWORK PRE-SETTINGS` screen
1. [ ] Check you see two pre-settings options: Mainnet and Testnet
1. [ ] Check you see a button at the bottom of the page to customize the network

1. **CUSTOM NETWORK SETTINGS Screen**
1. Click on "CUSTOMIZE"
1. Check you see the `CUSTOM NETWORK SETTINGS` screen
1. Check you see a warning message text in a yellow background
1. Check you see a form with the following values:
1. [ ] Click on "CUSTOMIZE"
1. [ ] Check you see the `CUSTOM NETWORK SETTINGS` screen
1. [ ] Check you see a warning message text in a yellow background
1. [ ] Check you see a form with the following values:
- Node URL
- Explorer URL
- Explorer Service URL
- Transaction Mining Service URL
- Wallet Service URL (optional)
- Wallet Service WS URL (optional)
1. Check you see a button at the bottom of the page to send the form

>[!NOTE]
>Wallet Service fields only appear if the wallet is allowed on Wallet Service feature.

1. [ ] Check you see a button at the bottom of the page to send the form

1. **Send the default network settings**
1. Click on "SEND"
1. Verify that the wallet has successfully reloaded
1. Ensure that a success feedback modal appears following the reload
1. Dismiss the success feedback modal
1. [ ] Click on "SEND"
1. [ ] Verify that the wallet has successfully reloaded
1. [ ] Ensure that a success feedback modal appears following the reload
1. [ ] Dismiss the success feedback modal

1. **Send an invalid Node URL**
1. Empty the Node URL field
1. Check that an invalidation message appears under the field informing Node URL is required
1. Fill the field with an invalid URL, e.g. "invalid"
1. Check that an invalidation message appears under the field informing Node URL should be a valid URL
1. [ ] Empty the Node URL field
1. [ ] Check that an invalidation message appears under the field informing Node URL is required
1. [ ] Fill the field with an invalid URL, e.g. "invalid"
1. [ ] Check that an invalidation message appears under the field informing Node URL should be a valid URL

1. **Send a custom network**
1. Navigate back to Network Pre-Settings screen
1. Click on "CUSTOMIZE" again
1. Fill the "Node URL" field with the value "https://node1.mainnet.hathor.network/v1a/"
1. Click on "SEND"
1. Wait the wallet reload
1. Check if a success feedback modal has appeared
1. Dismiss the success feedback modal
1. Verify that a network status bar with a yellow background and the message "Custom network: mainnet" is visible at the top of the screen
1. [ ] Navigate back to Network Pre-Settings screen
1. [ ] Click on "CUSTOMIZE" again
1. [ ] Fill the "Node URL" field with the value "https://node1.mainnet.hathor.network/v1a/"
1. [ ] Click on "SEND"
1. [ ] Wait the wallet reload
1. [ ] Check if a success feedback modal has appeared
1. [ ] Dismiss the success feedback modal
1. [ ] Verify that a network status bar with a yellow background and the message "Custom network: mainnet" is visible at the top of the screen

1. **Restoring to mainnet**
1. Navigate back to Network Pre-Settings screen
1. Click on "Mainnet" option
1. Wait for the wallet to reload
1. Check a success feedback modal has appeared
1. Dismiss the success feedback modal
1. Ensure that the network status bar at the top of the screen has disappeared
1. [ ] Navigate back to Network Pre-Settings screen
1. [ ] Click on "Mainnet" option
1. [ ] Wait for the wallet to reload
1. [ ] Check a success feedback modal has appeared
1. [ ] Dismiss the success feedback modal
1. [ ] Ensure that the network status bar at the top of the screen has disappeared

1. **Check testnet balance**

>[!NOTE]
>In this test we want to check the difference of transaction history and balance between mainnet and testnet of the same wallet. Therefore, you should have some transactions also in your testnet wallet.

1. Click on "Testnet" option
1. Wait for the wallet to reload
1. Check a success feedback modal has appeared
1. Dismiss the success feedback modal
1. Verify that a network status bar with a yellow background and the message "Custom network: testnet" is visible at the top of the screen
1. Go to the Home screen
1. Check the balance of Hathor token
1. Click on Hathor token
1. Check you see different transactions from "mainnet"
1. Click on a transaction
1. Click on the "Public Explorer" item
1. Verify that you were redirected to the transaction page on the testnet explorer
1. [ ] Click on "Testnet" option
1. [ ] Wait for the wallet to reload
1. [ ] Check a success feedback modal has appeared
1. [ ] Dismiss the success feedback modal
1. [ ] Verify that a network status bar with a yellow background and the message "Custom network: testnet" is visible at the top of the screen
1. [ ] Go to the Home screen
1. [ ] Check the balance of Hathor token
1. [ ] Click on Hathor token
1. [ ] Check you see different transactions from "mainnet"
1. [ ] Click on a transaction
1. [ ] Click on the "Public Explorer" item
1. [ ] Verify that you were redirected to the transaction page on the testnet explorer

1. **Check registered tokens are cleaned when changing network settings**
1. [ ] Register a token on Mainnet network
1. [ ] Navigate to Network Pre-Settings screen
1. [ ] Select the Testnet network
1. [ ] Navigate to Mainscreen
1. [ ] Check there is only the HTR token in the dashboard

1. **Check Wallet Service fields didn't appear when Wallet Service is disabled for the wallet**
1. [ ] Go to Unleash and disables the Wallet Service for the wallet
1. You should set this configuration on `wallet-service-mobile.rollout`
1. [ ] Close and reopens the App
1. [ ] Navigate Custom Network Settings screen on Network Settings feature
1. [ ] Check the Wallet Service fields do not appear

1. **Check Wallet Service fields disable Push Notification when they are empty**
1. [ ] Go to Unleash and enables the Wallet Service for the wallet
1. You should set this configuration on `wallet-service-mobile.rollout`
1. [ ] Close and reopens the App
1. [ ] Navigate Custom Network Settings screen on Network Settings feature
1. [ ] Check the Wallet Service fields do appear
1. [ ] Make both Wallet Service fields empty
1. [ ] Navigate to Settings screen
1. [ ] Check the Push Notification option didn't appear

1. **Check Wallet Service fields can't be empty unilaterally**
1. [ ] Go to Unleash and enables the Wallet Service for the wallet
1. You should set this configuration on `wallet-service-mobile.rollout`
1. [ ] Close and reopens the App
1. [ ] Navigate Custom Network Settings screen on Network Settings feature
1. [ ] Check the Wallet Service fields do appear
1. [ ] Make one of the Wallet Service fields empty
1. [ ] Send the custom settings
1. You should see an error message under the field

1. **Check Push Notification aren't available on Testnet**
1. [ ] Navigate to Network Pre-Settings screen
1. [ ] Select Testnet pre-settings
1. [ ] Navigate to Settings screen
1. [ ] Check Push Notification didn't appear

1. **Check Push Notification aren't being received on Testnet**
1. [ ] Go to Unleash and enables the Wallet Service for the wallet
1. You should set this configuration on `wallet-service-mobile.rollout`
1. [ ] Navigate to Network Pre-Settings screen
1. [ ] Select Mainnet pre-settings
1. [ ] Enables Push Notification
1. [ ] Send a transaction to your wallet from another wallet
1. You should receive a push notification
1. [ ] Navigate to Network Pre-Settings screen
1. [ ] Select Testnet pre-settings
1. [ ] Send a transaction to your wallet from another wallet
1. You should **not** receive a push notification
175 changes: 175 additions & 0 deletions QA_NANO_CONTRACT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,175 @@
# QA Nano Contract

- CTA: call-to-action

### Activation
- [ ] Make sure the wallet-service is disabled for the device
- [ ] Enable the nano contract feature for the device
- Close the wallet and reopen
- [ ] Check a toggle button with two options appear in the dashboard head
- Tokens
- Nano

### Nano Contract Details
- [ ] Check the option "Tokens" is selected
- Select the option "Nano Contracts"
- [ ] Check the Nano Contract component is in focus with a title "No Nano Contracts"
- [ ] Check the *Nano Contract Details* component has:
- a message, and
- a call-to-action (CTA) "Register new"

### Register Nano Contract
- Register a new Nano Contract by tapping over "Register new" on *Nano Contract Details*
- It may focus on a component of loading
- [ ] Check if the Nano Contract Registration screen is in focus
- [ ] Check if the Nano Contract ID is an input
- [ ] Check if the Wallet Address is loaded
- [ ] Check if the "REGISTER NANO CONTRACT" button is disabled
- Type the following Nano Contract ID `00004f1a3b07f0ffc7ced77a19ae6d4407991a15a281c0ddaf3d6e04a56eba78`
- It represents a Nano Contract in the `nano-testnet` network
- [ ] Check the "REGISTER NANO CONTRACT" button is now actionable
- Tap on "REGISTER NANO CONTRACT" button
- [ ] Check for a failure feedback modal to appear
- You can't register a Nano Contract from another network
- If the message "The informed address does not belong to the wallet" is the failure message, it happens when you are using the wallet service. Make sure to disable it and reload the wallet.
- Dismiss the modal by tapping outside its area
- Remove the input
- [ ] Check if a validation message of error appeared under the input:
- It should informe the field is required
- it should be in color red
- [ ] Check if the "REGISTER NANO CONTRACT" button is disabled
- Type any input
- [ ] Check if the validation error message disappeared

### Change network
- Navigate to the *Settings* screen
- Go to "Network Settings" > Understand disclaimer > Customize
- [ ] Check if the following fields are hidden, you should not be able see them if Wallet Service is disabled:
- "Wallet Service URL (optional)", and
- "Wallet Service WS URL (optional)"
- [NOTE] If you see the mentioned fields because you have Wallet Service enabled, check they are empty or do it by your own before following the next instructions.
- Set "Node URL" the input "https://node1.nano-testnet.hathor.network/v1a/"
- Set "Explorer URL" the input "https://explorer.alpha.nano-testnet.hathor.network/"
- Set "Explorer Service URL" the input "https://explorer-service.nano-testnet.hathor.network/"
- Set "Transaction Mining Service URL" the input "https://txmining.nano-testnet.hathor.network/"
- Tap on "SEND" button
- [ ] Check for a success feedback modal message
- Dismiss the feedback modal
- [ ] Check there is a yellow bar at the head informing the custom network as *testnet*
- Go back to *Dashboard* screen

### Register Nano Contract using the right network
- Select the option "Nano Contracts" of the toggle button
- Tap on "Register new" CTA
- Type `00004f1a3b07f0ffc7ced77a19ae6d4407991a15a281c0ddaf3d6e04a56eba78` as input to Nano Contract ID
- Tap on "REGISTER NANO CONTRACT" button
- [ ] Check for a success feedback modal to appear
- If a failure feedback modal appear with the message "The informed address does not belong to the wallet", it happens when you are using the wallet service. Make sure to disable it and reload the wallet
- [ ] Check the feedback modal has:
- A message informing the registration has happen with success, and
- A "SEE CONTRACT" button
- Tap on "SEE CONTRACT" button
- [ ] Check *Nano Contract Details* screen is in focus

### Inspect Nano Contract Details
- From the *Nano Contract Details* screen follow the instructions
- [ ] Check there is at least one transaction listed, the "initialize"
- Tap on "Nano Contract" header to expand it
- Tap on "Nano Contract" header again to shrink it
- Tap on "Nano Contract" header to expand it again
- [ ] Check there is a "Nano Contract ID" field with eclipsed value
- [ ] Check there is a "Blueprint Name" field and value
- [ ] Check there ia a "Registered Address" field and value
- [ ] Check the field "Registered Address" is actionable
- [ ] Check there are two CTAs side-by-side:
- "See status details", and
- "Unregister contract"
- Tap on "See status details" CTA:
- A browser app should open in the explorer page of the Nano Contract and it should contains all Nano Contract details information, including the arguments of the method call
- Go back to the wallet
- Tap on "Registered Address"
- [ ] Check for a "Choose New Wallet Address" modal appears
- [ ] Check the address of *index 0* is selected
- Select any other indexed address
- [ ] Check for a "New Nano Contract Address" modal appears
- [ ] Check "New Nano Contract Address" modal has:
- An information content informing user this address is used to sign a transaction within the Nano Contract
- A mirror content informing the selected address and its index
- A "CONFIRM NEW ADDRESS" button
- A "GO BACK" button
- Tap on "GO BACK" button
- [ ] Check the modal disappear
- Select any other indexed address
- [ ] Check the modal appear
- Tap outside modal area
- [ ] Check the modal disappear
- Select any other indexed address
- Tap on "CONFIRM NEW ADDRESS"
- [ ] Check for the new address is set on "Registered Address" field
- Tap on "Registered Address"
- [ ] Check for the correct indexed address is selected
- [ ] Dismiss the modal
- Tap on "Unregister contract" CTA
- [ ] Check for a new "Unregister Nano Contract" modal appear
- [ ] Check "Unregister Nano Contract" modal has:
- A message asking the user to be sure of unregistration,
- A button "YES, UNREGISTER CONTRACT", and
- A button "NO, GO BACK"
- Tap on "NO, GO BACK" button
- [ ] Check the modal disappear
- Tap on "Unregister contract" CTA again
- Tap on "YES, UNREGISTER CONTRACT"
- [ ] Check the *Dashboard* screen is on focus
- [ ] Check the Nano Contract list is empty
- It shows title "No Nano Contracts"

### Inspect Nano Contract Transaction
- [ ] Register the Nano Contract `00004f1a3b07f0ffc7ced77a19ae6d4407991a15a281c0ddaf3d6e04a56eba78`
- Go the *Nano Contract Details* screen
- [ ] Check there are many transactions
- [ ] Check a transaction item has:
- An eclipsed Transaction ID value in bold format
- A method name for the transaction
- A humanized timestamp
- [ ] Check any item is actionable
- [ ] Check the transaction list is ordered from newest to oldest
- [ ] Check the oldest transaction is the `initialize`
- Tap on `initialize` transaction
- [ ] Check the *Nano Contract Transaction* screen is on focus
- [ ] Check there is a "Transaction ID" field with eclipsed value as a header
- [ ] Check the header is expanded
- [ ] Check there is a label with value "Executed" in green
- [ ] Check there is a "Transaction ID" field with eclipsed value
- [ ] Check there is a "Nano Contract ID" field with eclipsed value
- [ ] Check there is a "Blueprint Method" field and value
- [ ] Check there ia a "Date and Time" field and value
- [ ] Check there is a "Caller" field with eclipsed value
- [ ] Check there is a "See transaction details" CTA
- Tap on any area of the header to shrink it
- Tap on "Transaction ID" header to expand it
- Tap on "See transaction details" CTA
- A browser app should open in the explorer page of the Transaction and it should contains all Transaction details information, including the arguments of the method call
- Go back to the wallet
- [ ] Check there is a content area under the header with title "No Actions"
- Go back to *Nano Contract Details* screen
- Tap on any bet
- [ ] Check the *Nano Contract Transaction* screen is on focus
- [ ] Check there is an action as a content that has:
- A "Deposit" text prefix
- An Input ID with eclipsed value
- An action amount

### Change network and reset registered Nano Contracts
- Go to *Network Settings* screen
- Customize it to `testnet` network
- Go back to *Dashboard* screen
- Select "Nano Contracts" option if not selected
- [ ] Check there is no Nano Contract registered
- Customize network to `nano-testnet` network
- Set "Node URL" to value `https://node1.nano-testnet.hathor.network/v1a/`
- Set "Transaction Mining Service URL" to value `https://txmining.nano-testnet.hathor.network/`
- Clean "Wallet Service URL (optional)" and "Wallet Service WS URL (optional)" if present
- Tap on "SEND"
- Go back to *Dashboard* screen
- Select "Nano Contracts" option if not selected
- [ ] Check there is no Nano Contract registered
Loading