Skip to content

Commit fb721f9

Browse files
committed
Merge branch 'master' into feat/lavamoat-integration
2 parents ea15c73 + fdf8b28 commit fb721f9

File tree

126 files changed

+13085
-1479
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

126 files changed

+13085
-1479
lines changed

.github/workflows/main.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,15 +18,15 @@ jobs:
1818
timeout-minutes: 40 # default is 360
1919
strategy:
2020
matrix:
21-
node-version: [14.x, 16.x]
21+
node-version: [20.x]
2222
steps:
23-
- uses: actions/checkout@v2
23+
- uses: actions/checkout@v4
2424
- name: Use Node.js ${{ matrix.node-version }}
25-
uses: actions/setup-node@v1
25+
uses: actions/setup-node@v4
2626
with:
2727
node-version: ${{ matrix.node-version }}
2828
- name: Install dependencies
29-
run: npm install
29+
run: npm ci
3030
- name: Install gettext
3131
run: sudo apt-get install gettext
3232
- name: Check version

QA_CUSTOM_NETWORK.md

Lines changed: 106 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -1,80 +1,136 @@
11
# Custom Network
22

33
1. **Settings screen**
4-
1. Go to Settings
5-
1. Check you see "General Settings" as the title for the first collection of settings
6-
1. Check you see "Developer Settings" as the title for the second collection of settings
4+
1. [ ] Go to Settings
5+
1. [ ] Check you see "General Settings" as the title for the first collection of settings
6+
1. [ ] Check you see "Developer Settings" as the title for the second collection of settings
77

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

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

2020
1. **CUSTOM NETWORK SETTINGS Screen**
21-
1. Click on "CUSTOMIZE"
22-
1. Check you see the `CUSTOM NETWORK SETTINGS` screen
23-
1. Check you see a warning message text in a yellow background
24-
1. Check you see a form with the following values:
21+
1. [ ] Click on "CUSTOMIZE"
22+
1. [ ] Check you see the `CUSTOM NETWORK SETTINGS` screen
23+
1. [ ] Check you see a warning message text in a yellow background
24+
1. [ ] Check you see a form with the following values:
2525
- Node URL
2626
- Explorer URL
2727
- Explorer Service URL
28+
- Transaction Mining Service URL
2829
- Wallet Service URL (optional)
2930
- Wallet Service WS URL (optional)
30-
1. Check you see a button at the bottom of the page to send the form
31+
32+
>[!NOTE]
33+
>Wallet Service fields only appear if the wallet is allowed on Wallet Service feature.
34+
35+
1. [ ] Check you see a button at the bottom of the page to send the form
3136

3237
1. **Send the default network settings**
33-
1. Click on "SEND"
34-
1. Verify that the wallet has successfully reloaded
35-
1. Ensure that a success feedback modal appears following the reload
36-
1. Dismiss the success feedback modal
38+
1. [ ] Click on "SEND"
39+
1. [ ] Verify that the wallet has successfully reloaded
40+
1. [ ] Ensure that a success feedback modal appears following the reload
41+
1. [ ] Dismiss the success feedback modal
3742

3843
1. **Send an invalid Node URL**
39-
1. Empty the Node URL field
40-
1. Check that an invalidation message appears under the field informing Node URL is required
41-
1. Fill the field with an invalid URL, e.g. "invalid"
42-
1. Check that an invalidation message appears under the field informing Node URL should be a valid URL
44+
1. [ ] Empty the Node URL field
45+
1. [ ] Check that an invalidation message appears under the field informing Node URL is required
46+
1. [ ] Fill the field with an invalid URL, e.g. "invalid"
47+
1. [ ] Check that an invalidation message appears under the field informing Node URL should be a valid URL
4348

4449
1. **Send a custom network**
45-
1. Navigate back to Network Pre-Settings screen
46-
1. Click on "CUSTOMIZE" again
47-
1. Fill the "Node URL" field with the value "https://node1.mainnet.hathor.network/v1a/"
48-
1. Click on "SEND"
49-
1. Wait the wallet reload
50-
1. Check if a success feedback modal has appeared
51-
1. Dismiss the success feedback modal
52-
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
50+
1. [ ] Navigate back to Network Pre-Settings screen
51+
1. [ ] Click on "CUSTOMIZE" again
52+
1. [ ] Fill the "Node URL" field with the value "https://node1.mainnet.hathor.network/v1a/"
53+
1. [ ] Click on "SEND"
54+
1. [ ] Wait the wallet reload
55+
1. [ ] Check if a success feedback modal has appeared
56+
1. [ ] Dismiss the success feedback modal
57+
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
5358

5459
1. **Restoring to mainnet**
55-
1. Navigate back to Network Pre-Settings screen
56-
1. Click on "Mainnet" option
57-
1. Wait for the wallet to reload
58-
1. Check a success feedback modal has appeared
59-
1. Dismiss the success feedback modal
60-
1. Ensure that the network status bar at the top of the screen has disappeared
60+
1. [ ] Navigate back to Network Pre-Settings screen
61+
1. [ ] Click on "Mainnet" option
62+
1. [ ] Wait for the wallet to reload
63+
1. [ ] Check a success feedback modal has appeared
64+
1. [ ] Dismiss the success feedback modal
65+
1. [ ] Ensure that the network status bar at the top of the screen has disappeared
6166

6267
1. **Check testnet balance**
68+
6369
>[!NOTE]
6470
>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.
6571
66-
1. Click on "Testnet" option
67-
1. Wait for the wallet to reload
68-
1. Check a success feedback modal has appeared
69-
1. Dismiss the success feedback modal
70-
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
71-
1. Go to the Home screen
72-
1. Check the balance of Hathor token
73-
1. Click on Hathor token
74-
1. Check you see different transactions from "mainnet"
75-
1. Click on a transaction
76-
1. Click on the "Public Explorer" item
77-
1. Verify that you were redirected to the transaction page on the testnet explorer
72+
1. [ ] Click on "Testnet" option
73+
1. [ ] Wait for the wallet to reload
74+
1. [ ] Check a success feedback modal has appeared
75+
1. [ ] Dismiss the success feedback modal
76+
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
77+
1. [ ] Go to the Home screen
78+
1. [ ] Check the balance of Hathor token
79+
1. [ ] Click on Hathor token
80+
1. [ ] Check you see different transactions from "mainnet"
81+
1. [ ] Click on a transaction
82+
1. [ ] Click on the "Public Explorer" item
83+
1. [ ] Verify that you were redirected to the transaction page on the testnet explorer
84+
85+
1. **Check registered tokens are cleaned when changing network settings**
86+
1. [ ] Register a token on Mainnet network
87+
1. [ ] Navigate to Network Pre-Settings screen
88+
1. [ ] Select the Testnet network
89+
1. [ ] Navigate to Mainscreen
90+
1. [ ] Check there is only the HTR token in the dashboard
91+
92+
1. **Check Wallet Service fields didn't appear when Wallet Service is disabled for the wallet**
93+
1. [ ] Go to Unleash and disables the Wallet Service for the wallet
94+
1. You should set this configuration on `wallet-service-mobile.rollout`
95+
1. [ ] Close and reopens the App
96+
1. [ ] Navigate Custom Network Settings screen on Network Settings feature
97+
1. [ ] Check the Wallet Service fields do not appear
98+
99+
1. **Check Wallet Service fields disable Push Notification when they are empty**
100+
1. [ ] Go to Unleash and enables the Wallet Service for the wallet
101+
1. You should set this configuration on `wallet-service-mobile.rollout`
102+
1. [ ] Close and reopens the App
103+
1. [ ] Navigate Custom Network Settings screen on Network Settings feature
104+
1. [ ] Check the Wallet Service fields do appear
105+
1. [ ] Make both Wallet Service fields empty
106+
1. [ ] Navigate to Settings screen
107+
1. [ ] Check the Push Notification option didn't appear
78108

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

119+
1. **Check Push Notification aren't available on Testnet**
120+
1. [ ] Navigate to Network Pre-Settings screen
121+
1. [ ] Select Testnet pre-settings
122+
1. [ ] Navigate to Settings screen
123+
1. [ ] Check Push Notification didn't appear
80124

125+
1. **Check Push Notification aren't being received on Testnet**
126+
1. [ ] Go to Unleash and enables the Wallet Service for the wallet
127+
1. You should set this configuration on `wallet-service-mobile.rollout`
128+
1. [ ] Navigate to Network Pre-Settings screen
129+
1. [ ] Select Mainnet pre-settings
130+
1. [ ] Enables Push Notification
131+
1. [ ] Send a transaction to your wallet from another wallet
132+
1. You should receive a push notification
133+
1. [ ] Navigate to Network Pre-Settings screen
134+
1. [ ] Select Testnet pre-settings
135+
1. [ ] Send a transaction to your wallet from another wallet
136+
1. You should **not** receive a push notification

QA_NANO_CONTRACT.md

Lines changed: 175 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,175 @@
1+
# QA Nano Contract
2+
3+
- CTA: call-to-action
4+
5+
### Activation
6+
- [ ] Make sure the wallet-service is disabled for the device
7+
- [ ] Enable the nano contract feature for the device
8+
- Close the wallet and reopen
9+
- [ ] Check a toggle button with two options appear in the dashboard head
10+
- Tokens
11+
- Nano
12+
13+
### Nano Contract Details
14+
- [ ] Check the option "Tokens" is selected
15+
- Select the option "Nano Contracts"
16+
- [ ] Check the Nano Contract component is in focus with a title "No Nano Contracts"
17+
- [ ] Check the *Nano Contract Details* component has:
18+
- a message, and
19+
- a call-to-action (CTA) "Register new"
20+
21+
### Register Nano Contract
22+
- Register a new Nano Contract by tapping over "Register new" on *Nano Contract Details*
23+
- It may focus on a component of loading
24+
- [ ] Check if the Nano Contract Registration screen is in focus
25+
- [ ] Check if the Nano Contract ID is an input
26+
- [ ] Check if the Wallet Address is loaded
27+
- [ ] Check if the "REGISTER NANO CONTRACT" button is disabled
28+
- Type the following Nano Contract ID `00004f1a3b07f0ffc7ced77a19ae6d4407991a15a281c0ddaf3d6e04a56eba78`
29+
- It represents a Nano Contract in the `nano-testnet` network
30+
- [ ] Check the "REGISTER NANO CONTRACT" button is now actionable
31+
- Tap on "REGISTER NANO CONTRACT" button
32+
- [ ] Check for a failure feedback modal to appear
33+
- You can't register a Nano Contract from another network
34+
- 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.
35+
- Dismiss the modal by tapping outside its area
36+
- Remove the input
37+
- [ ] Check if a validation message of error appeared under the input:
38+
- It should informe the field is required
39+
- it should be in color red
40+
- [ ] Check if the "REGISTER NANO CONTRACT" button is disabled
41+
- Type any input
42+
- [ ] Check if the validation error message disappeared
43+
44+
### Change network
45+
- Navigate to the *Settings* screen
46+
- Go to "Network Settings" > Understand disclaimer > Customize
47+
- [ ] Check if the following fields are hidden, you should not be able see them if Wallet Service is disabled:
48+
- "Wallet Service URL (optional)", and
49+
- "Wallet Service WS URL (optional)"
50+
- [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.
51+
- Set "Node URL" the input "https://node1.nano-testnet.hathor.network/v1a/"
52+
- Set "Explorer URL" the input "https://explorer.alpha.nano-testnet.hathor.network/"
53+
- Set "Explorer Service URL" the input "https://explorer-service.nano-testnet.hathor.network/"
54+
- Set "Transaction Mining Service URL" the input "https://txmining.nano-testnet.hathor.network/"
55+
- Tap on "SEND" button
56+
- [ ] Check for a success feedback modal message
57+
- Dismiss the feedback modal
58+
- [ ] Check there is a yellow bar at the head informing the custom network as *testnet*
59+
- Go back to *Dashboard* screen
60+
61+
### Register Nano Contract using the right network
62+
- Select the option "Nano Contracts" of the toggle button
63+
- Tap on "Register new" CTA
64+
- Type `00004f1a3b07f0ffc7ced77a19ae6d4407991a15a281c0ddaf3d6e04a56eba78` as input to Nano Contract ID
65+
- Tap on "REGISTER NANO CONTRACT" button
66+
- [ ] Check for a success feedback modal to appear
67+
- 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
68+
- [ ] Check the feedback modal has:
69+
- A message informing the registration has happen with success, and
70+
- A "SEE CONTRACT" button
71+
- Tap on "SEE CONTRACT" button
72+
- [ ] Check *Nano Contract Details* screen is in focus
73+
74+
### Inspect Nano Contract Details
75+
- From the *Nano Contract Details* screen follow the instructions
76+
- [ ] Check there is at least one transaction listed, the "initialize"
77+
- Tap on "Nano Contract" header to expand it
78+
- Tap on "Nano Contract" header again to shrink it
79+
- Tap on "Nano Contract" header to expand it again
80+
- [ ] Check there is a "Nano Contract ID" field with eclipsed value
81+
- [ ] Check there is a "Blueprint Name" field and value
82+
- [ ] Check there ia a "Registered Address" field and value
83+
- [ ] Check the field "Registered Address" is actionable
84+
- [ ] Check there are two CTAs side-by-side:
85+
- "See status details", and
86+
- "Unregister contract"
87+
- Tap on "See status details" CTA:
88+
- 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
89+
- Go back to the wallet
90+
- Tap on "Registered Address"
91+
- [ ] Check for a "Choose New Wallet Address" modal appears
92+
- [ ] Check the address of *index 0* is selected
93+
- Select any other indexed address
94+
- [ ] Check for a "New Nano Contract Address" modal appears
95+
- [ ] Check "New Nano Contract Address" modal has:
96+
- An information content informing user this address is used to sign a transaction within the Nano Contract
97+
- A mirror content informing the selected address and its index
98+
- A "CONFIRM NEW ADDRESS" button
99+
- A "GO BACK" button
100+
- Tap on "GO BACK" button
101+
- [ ] Check the modal disappear
102+
- Select any other indexed address
103+
- [ ] Check the modal appear
104+
- Tap outside modal area
105+
- [ ] Check the modal disappear
106+
- Select any other indexed address
107+
- Tap on "CONFIRM NEW ADDRESS"
108+
- [ ] Check for the new address is set on "Registered Address" field
109+
- Tap on "Registered Address"
110+
- [ ] Check for the correct indexed address is selected
111+
- [ ] Dismiss the modal
112+
- Tap on "Unregister contract" CTA
113+
- [ ] Check for a new "Unregister Nano Contract" modal appear
114+
- [ ] Check "Unregister Nano Contract" modal has:
115+
- A message asking the user to be sure of unregistration,
116+
- A button "YES, UNREGISTER CONTRACT", and
117+
- A button "NO, GO BACK"
118+
- Tap on "NO, GO BACK" button
119+
- [ ] Check the modal disappear
120+
- Tap on "Unregister contract" CTA again
121+
- Tap on "YES, UNREGISTER CONTRACT"
122+
- [ ] Check the *Dashboard* screen is on focus
123+
- [ ] Check the Nano Contract list is empty
124+
- It shows title "No Nano Contracts"
125+
126+
### Inspect Nano Contract Transaction
127+
- [ ] Register the Nano Contract `00004f1a3b07f0ffc7ced77a19ae6d4407991a15a281c0ddaf3d6e04a56eba78`
128+
- Go the *Nano Contract Details* screen
129+
- [ ] Check there are many transactions
130+
- [ ] Check a transaction item has:
131+
- An eclipsed Transaction ID value in bold format
132+
- A method name for the transaction
133+
- A humanized timestamp
134+
- [ ] Check any item is actionable
135+
- [ ] Check the transaction list is ordered from newest to oldest
136+
- [ ] Check the oldest transaction is the `initialize`
137+
- Tap on `initialize` transaction
138+
- [ ] Check the *Nano Contract Transaction* screen is on focus
139+
- [ ] Check there is a "Transaction ID" field with eclipsed value as a header
140+
- [ ] Check the header is expanded
141+
- [ ] Check there is a label with value "Executed" in green
142+
- [ ] Check there is a "Transaction ID" field with eclipsed value
143+
- [ ] Check there is a "Nano Contract ID" field with eclipsed value
144+
- [ ] Check there is a "Blueprint Method" field and value
145+
- [ ] Check there ia a "Date and Time" field and value
146+
- [ ] Check there is a "Caller" field with eclipsed value
147+
- [ ] Check there is a "See transaction details" CTA
148+
- Tap on any area of the header to shrink it
149+
- Tap on "Transaction ID" header to expand it
150+
- Tap on "See transaction details" CTA
151+
- 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
152+
- Go back to the wallet
153+
- [ ] Check there is a content area under the header with title "No Actions"
154+
- Go back to *Nano Contract Details* screen
155+
- Tap on any bet
156+
- [ ] Check the *Nano Contract Transaction* screen is on focus
157+
- [ ] Check there is an action as a content that has:
158+
- A "Deposit" text prefix
159+
- An Input ID with eclipsed value
160+
- An action amount
161+
162+
### Change network and reset registered Nano Contracts
163+
- Go to *Network Settings* screen
164+
- Customize it to `testnet` network
165+
- Go back to *Dashboard* screen
166+
- Select "Nano Contracts" option if not selected
167+
- [ ] Check there is no Nano Contract registered
168+
- Customize network to `nano-testnet` network
169+
- Set "Node URL" to value `https://node1.nano-testnet.hathor.network/v1a/`
170+
- Set "Transaction Mining Service URL" to value `https://txmining.nano-testnet.hathor.network/`
171+
- Clean "Wallet Service URL (optional)" and "Wallet Service WS URL (optional)" if present
172+
- Tap on "SEND"
173+
- Go back to *Dashboard* screen
174+
- Select "Nano Contracts" option if not selected
175+
- [ ] Check there is no Nano Contract registered

0 commit comments

Comments
 (0)