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

Wallet Connect 2.0 integration #12701

Merged
merged 1 commit into from
Mar 17, 2022
Merged

Conversation

briansztamfater
Copy link
Member

@briansztamfater briansztamfater commented Oct 12, 2021

fixes #12546

Summary

Wallet Connect 2.0 integration. This first approach, as discussed with the team, includes the client library, which is a centralized and experimental approach because it depends on a relay proxy server and the wallet-connect/client package. The reason behind this is that go-waku does not support the waku2 methods that are needed to use to implement a fully decentralized approach, and also status-go does not support having a waku and waku2 connection in parallel. The plan is to remove the @wallet-connect/client dependency in the future and replace it with a pure waku2 implementation when feasible.

Platforms

  • Android
  • iOS

Areas that maybe impacted

Functional
  • wallet / transactions
  • dapps / app browsing

Steps to test

  • Open Status App
  • Go to Advanced settings and enable Wallet Connect 2.0
  • Open desktop Dapp, as there are many few amount of dapps using WC 2.0, it can be tested with this example https://react-app.walletconnect.com/
  • On desktop Dapp, select chains and click connect
  • On Status app, click + on main screen and scan QR
  • Wait for the session proposal bottom sheet to appear and connect a wallet
  • Execute a transaction in the dapp and wait for signing sheet to appear
  • Sign transaction, wait for the result in the dapp
  • As a note, eth_signTypedData includes a chainId parameter, so wallet should be configured on that same network in order to sign that message
  • We should test it with other dapps that implements WC 2.0. Need to research for more besides the testing dapp.

status: ready

@briansztamfater briansztamfater marked this pull request as draft October 12, 2021 16:06
@briansztamfater briansztamfater self-assigned this Oct 12, 2021
@status-im-auto
Copy link
Member

status-im-auto commented Oct 12, 2021

Jenkins Builds

Click to see older builds (290)
Commit #️⃣ Finished (UTC) Duration Platform Result
✔️ a00eaa6 #1 2021-10-12 16:23:34 ~17 min android 📦apk 📲
✔️ a00eaa6 #1 2021-10-12 16:26:34 ~20 min android-e2e 📦apk 📲
✔️ a00eaa6 #1 2021-10-12 16:28:46 ~22 min ios 📦ipa 📲
✔️ dcc8417 #2 2021-10-14 18:17:55 ~15 min android-e2e 📦apk 📲
✔️ dcc8417 #2 2021-10-14 18:17:57 ~14 min android 📦apk 📲
✔️ dcc8417 #2 2021-10-14 18:18:09 ~15 min ios 📦ipa 📲
✖️ 3486aa0 #3 2021-10-14 19:47:24 ~13 min android 📦apk 📲
✖️ 3486aa0 #3 2021-10-14 19:47:24 ~13 min android-e2e 📦apk 📲
✖️ 3486aa0 #3 2021-10-14 19:48:26 ~14 min ios 📦ipa 📲
cc02944 #4 2021-10-16 22:28:12 ~5 min android 📄log
cc02944 #4 2021-10-16 22:28:13 ~5 min android-e2e 📄log
cc02944 #4 2021-10-16 22:42:01 ~19 min ios 📄log
759a689 #5 2021-10-16 22:37:06 ~5 min android-e2e 📄log
759a689 #5 2021-10-16 22:37:16 ~5 min android 📄log
759a689 #5 2021-10-16 22:46:46 ~14 min ios 📄log
f29b231 #6 2021-10-20 23:47:34 ~3 min android-e2e 📄log
f29b231 #6 2021-10-20 23:47:34 ~3 min android 📄log
f29b231 #6 2021-10-20 23:59:04 ~14 min ios 📄log
04884ba #7 2021-10-21 03:17:56 ~4 min android 📄log
04884ba #7 2021-10-21 03:17:57 ~4 min android-e2e 📄log
04884ba #7 2021-10-21 03:28:43 ~14 min ios 📄log
90c5b49 #8 2021-10-22 20:35:38 ~8 min android-e2e 📄log
90c5b49 #8 2021-10-22 20:35:38 ~8 min android 📄log
90c5b49 #8 2021-10-22 20:44:25 ~16 min ios 📄log
9bb5a47 #9 2021-10-28 00:23:21 ~4 min android-e2e 📄log
9bb5a47 #9 2021-10-28 00:23:21 ~4 min android 📄log
9bb5a47 #9 2021-10-28 00:36:16 ~17 min ios 📄log
cb96d1b #10 2021-10-29 23:25:39 ~25 sec android 📄log
cb96d1b #10 2021-10-29 23:25:39 ~25 sec android-e2e 📄log
cb96d1b #10 2021-10-29 23:25:45 ~26 sec ios 📄log
fa63133 #11 2021-10-30 00:26:37 ~4 min android 📄log
fa63133 #11 2021-10-30 00:26:37 ~4 min android-e2e 📄log
fa63133 #11 2021-10-30 00:37:13 ~15 min ios 📄log
cd658b3 #12 2021-11-02 16:03:27 ~8 min android-e2e 📄log
cd658b3 #12 2021-11-02 16:03:28 ~8 min android 📄log
cd658b3 #12 2021-11-02 16:15:47 ~20 min ios 📄log
96ec61c #13 2021-11-05 22:35:00 ~4 min android 📄log
96ec61c #13 2021-11-05 22:35:00 ~4 min android-e2e 📄log
96ec61c #13 2021-11-05 22:47:06 ~16 min ios 📄log
47024f7 #14 2021-11-09 23:22:51 ~23 sec android 📄log
47024f7 #14 2021-11-09 23:22:52 ~24 sec android-e2e 📄log
47024f7 #14 2021-11-09 23:22:55 ~26 sec ios 📄log
6082d62 #15 2021-11-12 22:53:38 ~25 sec android-e2e 📄log
6082d62 #15 2021-11-12 22:53:39 ~21 sec ios 📄log
6082d62 #15 2021-11-12 22:53:40 ~28 sec android 📄log
8c19b33 #16 2021-11-13 22:16:56 ~20 sec android-e2e 📄log
8c19b33 #16 2021-11-13 22:16:56 ~20 sec ios 📄log
8c19b33 #16 2021-11-13 22:16:58 ~22 sec android 📄log
0a480a3 #17 2021-11-14 01:22:04 ~4 min android 📄log
0a480a3 #17 2021-11-14 01:22:10 ~4 min android-e2e 📄log
0a480a3 #17 2021-11-14 01:34:55 ~16 min ios 📄log
0d5c9a0 #18 2021-11-14 05:02:16 ~5 min android 📄log
0d5c9a0 #18 2021-11-14 05:02:22 ~5 min android-e2e 📄log
0d5c9a0 #18 2021-11-14 05:13:18 ~16 min ios 📄log
c233ac7 #19 2021-11-14 18:17:23 ~4 min android 📄log
c233ac7 #19 2021-11-14 18:17:23 ~4 min android-e2e 📄log
c233ac7 #19 2021-11-14 18:28:29 ~15 min ios 📄log
d62bec4 #20 2021-11-15 04:09:42 ~4 min android 📄log
d62bec4 #20 2021-11-15 04:09:44 ~4 min android-e2e 📄log
d62bec4 #20 2021-11-15 04:21:15 ~16 min ios 📄log
fcbd3fc #21 2021-11-15 04:54:20 ~13 min android-e2e 📄log
fcbd3fc #21 2021-11-15 04:54:31 ~14 min android 📄log
fcbd3fc #21 2021-11-15 04:55:36 ~15 min ios 📄log
4d7423a #22 2021-11-15 05:10:47 ~13 min android 📄log
4d7423a #22 2021-11-15 05:10:54 ~13 min android-e2e 📄log
4d7423a #22 2021-11-15 05:14:11 ~17 min ios 📄log
cd5b5ac #23 2021-11-15 16:07:14 ~20 min android-e2e 📄log
cd5b5ac #23 2021-11-15 16:07:25 ~20 min android 📄log
182d2d4 #24 2021-11-20 19:43:29 ~23 sec android-e2e 📄log
182d2d4 #24 2021-11-20 19:43:30 ~23 sec android 📄log
182d2d4 #24 2021-11-20 19:43:35 ~29 sec ios 📄log
5be400a #25 2021-11-20 19:52:04 ~5 min android 📄log
5be400a #25 2021-11-20 19:52:13 ~6 min android-e2e 📄log
5be400a #25 2021-11-20 20:09:17 ~23 min ios 📄log
2ae1b76 #26 2021-11-20 19:59:26 ~4 min android 📄log
2ae1b76 #26 2021-11-20 19:59:28 ~4 min android-e2e 📄log
2ae1b76 #26 2021-11-20 20:09:13 ~14 min ios 📄log
f8664e3 #27 2021-11-20 20:07:48 ~4 min android 📄log
f8664e3 #27 2021-11-20 20:08:05 ~4 min android-e2e 📄log
f8664e3 #27 2021-11-20 20:21:07 ~17 min ios 📄log
b609a3f #28 2021-11-20 20:15:44 ~4 min android-e2e 📄log
b609a3f #28 2021-11-20 20:15:56 ~5 min android 📄log
b609a3f #28 2021-11-20 20:25:35 ~14 min ios 📄log
dbea39a #29 2021-11-20 21:07:37 ~12 min android-e2e 📄log
dbea39a #29 2021-11-20 21:07:44 ~13 min android 📄log
dbea39a #29 2021-11-20 21:09:13 ~14 min ios 📄log
a1de9f9 #30 2021-11-20 22:38:32 ~7 min android 📄log
a1de9f9 #30 2021-11-20 22:38:32 ~7 min android-e2e 📄log
a1de9f9 #30 2021-11-20 22:45:56 ~14 min ios 📄log
4e39d79 #31 2021-11-20 23:01:51 ~5 min android-e2e 📄log
4e39d79 #32 2021-11-20 23:03:40 ~5 min android 📄log
4e39d79 #31 2021-11-20 23:10:01 ~13 min ios 📄log
a8aacf1 #32 2021-11-20 23:11:24 ~5 min android-e2e 📄log
a8aacf1 #33 2021-11-20 23:11:26 ~5 min android 📄log
a8aacf1 #32 2021-11-20 23:14:53 ~9 min ios 📄log
16fed1d #33 2021-11-20 23:23:13 ~4 min android-e2e 📄log
16fed1d #34 2021-11-20 23:23:17 ~4 min android 📄log
16fed1d #33 2021-11-20 23:32:03 ~13 min ios 📄log
9c33ec1 #34 2021-11-20 23:34:43 ~6 min android-e2e 📄log
9c33ec1 #35 2021-11-20 23:34:53 ~6 min android 📄log
✔️ 9c33ec1 #34 2021-11-20 23:41:52 ~13 min ios 📦ipa 📲
d236f07 #35 2021-11-24 00:46:53 ~6 min android-e2e 📄log
d236f07 #36 2021-11-24 00:46:57 ~6 min android 📄log
✔️ d236f07 #35 2021-11-24 00:53:18 ~13 min ios 📦ipa 📲
70901ce #37 2021-11-24 01:00:36 ~4 min android 📄log
70901ce #36 2021-11-24 01:04:25 ~8 min android-e2e 📄log
✔️ 70901ce #36 2021-11-24 01:06:56 ~10 min ios 📦ipa 📲
dd539a5 #37 2021-11-24 01:13:49 ~3 min android-e2e 📄log
dd539a5 #38 2021-11-24 01:13:58 ~3 min android 📄log
✔️ dd539a5 #37 2021-11-24 01:21:27 ~10 min ios 📦ipa 📲
5a7659d #39 2021-11-24 01:21:52 ~1 min android 📄log
5a7659d #38 2021-11-24 01:22:04 ~1 min android-e2e 📄log
5a7659d #38 2021-11-24 01:23:23 ~2 min ios 📄log
d54d91f #40 2021-11-24 01:37:15 ~6 min android 📄log
d54d91f #39 2021-11-24 01:37:15 ~6 min android-e2e 📄log
✔️ d54d91f #39 2021-11-24 01:41:26 ~10 min ios 📦ipa 📲
cd4cbb1 #41 2021-11-24 02:11:02 ~6 min android 📄log
cd4cbb1 #40 2021-11-24 02:11:14 ~6 min android-e2e 📄log
✔️ cd4cbb1 #40 2021-11-24 02:15:27 ~10 min ios 📦ipa 📲
33bb474 #41 2021-11-24 03:28:14 ~5 min android-e2e 📄log
33bb474 #42 2021-11-24 03:28:19 ~5 min android 📄log
✔️ 33bb474 #41 2021-11-24 03:33:04 ~10 min ios 📦ipa 📲
b777e81 #43 2021-11-24 03:34:57 ~3 min android 📄log
b777e81 #42 2021-11-24 03:35:01 ~3 min android-e2e 📄log
✔️ b777e81 #42 2021-11-24 03:43:00 ~11 min ios 📦ipa 📲
328e0b8 #43 2021-11-24 03:41:34 ~1 min ios 📄log
328e0b8 #43 2021-11-24 03:42:14 ~1 min android-e2e 📄log
328e0b8 #44 2021-11-24 03:42:24 ~2 min android 📄log
3c5cb34 #44 2021-11-24 03:45:29 ~1 min ios 📄log
3c5cb34 #44 2021-11-24 03:46:02 ~1 min android-e2e 📄log
3c5cb34 #45 2021-11-24 03:46:13 ~1 min android 📄log
bf98e00 #45 2021-11-24 12:04:15 ~4 min android-e2e 📄log
bf98e00 #46 2021-11-24 12:06:57 ~7 min android 📄log
✔️ bf98e00 #45 2021-11-24 12:11:10 ~11 min ios 📦ipa 📲
73cf4f3 #46 2021-11-24 14:55:21 ~1 min ios 📄log
73cf4f3 #46 2021-11-24 14:56:25 ~2 min android-e2e 📄log
73cf4f3 #47 2021-11-24 14:56:37 ~2 min android 📄log
d8d6b49 #47 2021-11-24 16:00:32 ~1 min android-e2e 📄log
d8d6b49 #47 2021-11-24 16:00:39 ~1 min ios 📄log
d8d6b49 #48 2021-11-24 16:00:58 ~1 min android 📄log
1fe9861 #49 2021-11-24 16:07:10 ~56 sec android 📄log
1fe9861 #48 2021-11-24 16:07:22 ~1 min android-e2e 📄log
1fe9861 #48 2021-11-24 16:07:23 ~1 min ios 📄log
bdb075a #49 2021-11-24 16:32:33 ~1 min ios 📄log
bdb075a #49 2021-11-24 16:32:46 ~1 min android-e2e 📄log
bdb075a #50 2021-11-24 16:32:54 ~1 min android 📄log
19ec401 #50 2021-11-24 16:34:10 ~1 min ios 📄log
19ec401 #51 2021-11-24 16:34:41 ~1 min android 📄log
19ec401 #50 2021-11-24 16:34:50 ~1 min android-e2e 📄log
b731a16 #51 2021-11-24 16:39:56 ~1 min ios 📄log
b731a16 #51 2021-11-24 16:40:03 ~1 min android-e2e 📄log
b731a16 #52 2021-11-24 16:40:22 ~1 min android 📄log
ea1e54d #52 2021-11-24 16:48:13 ~1 min ios 📄log
ea1e54d #53 2021-11-24 16:48:58 ~2 min android 📄log
ea1e54d #52 2021-11-24 16:49:06 ~2 min android-e2e 📄log
89a39eb #53 2021-11-24 18:06:54 ~1 min ios 📄log
89a39eb #53 2021-11-24 18:07:17 ~1 min android-e2e 📄log
89a39eb #54 2021-11-24 18:07:28 ~1 min android 📄log
e930aed #54 2021-11-24 18:09:15 ~1 min ios 📄log
e930aed #54 2021-11-24 18:09:50 ~1 min android-e2e 📄log
e930aed #55 2021-11-24 18:09:53 ~1 min android 📄log
29ff4a4 #55 2021-11-24 18:22:54 ~29 sec android-e2e 📄log
29ff4a4 #55 2021-11-24 18:22:57 ~31 sec ios 📄log
29ff4a4 #56 2021-11-24 18:22:59 ~33 sec android 📄log
✔️ cdf0b7d #56 2021-11-24 20:28:08 ~12 min ios 📦ipa 📲
✔️ cdf0b7d #56 2021-11-24 20:32:08 ~17 min android-e2e 📦apk 📲
✔️ cdf0b7d #57 2021-11-24 20:32:11 ~17 min android 📦apk 📲
✔️ f8d49bb #57 2021-11-24 22:02:03 ~13 min ios 📦ipa 📲
✔️ f8d49bb #57 2021-11-24 22:04:01 ~15 min android-e2e 📦apk 📲
✔️ f8d49bb #58 2021-11-24 22:10:01 ~21 min android 📦apk 📲
✔️ ed5ddf7 #58 2021-11-24 23:08:39 ~12 min ios 📦ipa 📲
✔️ ed5ddf7 #58 2021-11-24 23:13:44 ~17 min android-e2e 📦apk 📲
✔️ ed5ddf7 #59 2021-11-24 23:13:48 ~17 min android 📦apk 📲
✔️ 2bbe2e2 #59 2021-11-26 04:03:20 ~12 min ios 📦ipa 📲
✔️ 2bbe2e2 #59 2021-11-26 04:06:41 ~15 min android-e2e 📦apk 📲
✔️ 2bbe2e2 #60 2021-11-26 04:06:43 ~15 min android 📦apk 📲
✔️ 5d98072 #60 2021-11-26 04:08:02 ~13 min ios 📦ipa 📲
✔️ 5d98072 #61 2021-11-26 04:20:24 ~26 min android 📦apk 📲
✔️ 5d98072 #60 2021-11-26 04:20:44 ~26 min android-e2e 📦apk 📲
✔️ 1bdd395 #61 2021-11-26 04:08:07 ~10 min ios 📦ipa 📲
✔️ 1bdd395 #62 2021-11-26 04:14:33 ~17 min android 📦apk 📲
✔️ 1bdd395 #61 2021-11-26 04:14:39 ~17 min android-e2e 📦apk 📲
✔️ e084abe #62 2021-11-26 04:11:12 ~11 min ios 📦ipa 📲
✔️ e084abe #63 2021-11-26 04:13:09 ~13 min android 📦apk 📲
✔️ e084abe #62 2021-11-26 04:13:42 ~13 min android-e2e 📦apk 📲
✔️ 4f3ffe2 #63 2021-11-26 13:54:00 ~11 min ios 📦ipa 📲
✔️ 4f3ffe2 #63 2021-11-26 13:57:52 ~15 min android-e2e 📦apk 📲
✔️ 4f3ffe2 #64 2021-11-26 13:58:01 ~15 min android 📦apk 📲
✖️ 0a51f30 #64 2021-11-30 14:37:18 ~12 min ios 📦ipa 📲
✖️ 0a51f30 #65 2021-11-30 14:39:48 ~14 min android 📦apk 📲
✖️ 0a51f30 #64 2021-11-30 14:45:24 ~20 min android-e2e 📦apk 📲
✔️ 4291030 #65 2021-11-30 14:51:08 ~11 min ios 📦ipa 📲
✔️ 4291030 #65 2021-11-30 14:52:46 ~13 min android-e2e 📦apk 📲
✔️ 4291030 #66 2021-11-30 14:58:08 ~18 min android 📦apk 📲
b3f7a8a #67 2021-12-15 19:13:59 ~19 sec android 📄log
b3f7a8a #66 2021-12-15 19:14:00 ~20 sec android-e2e 📄log
b3f7a8a #66 2021-12-15 19:14:03 ~17 sec ios 📄log
ce8a5da #68 2021-12-15 22:55:04 ~20 sec android 📄log
ce8a5da #67 2021-12-15 22:55:06 ~21 sec android-e2e 📄log
ce8a5da #67 2021-12-15 22:55:06 ~21 sec ios 📄log
✖️ 72e986f #68 2021-12-15 23:10:24 ~11 min ios 📦ipa 📲
✖️ 72e986f #69 2021-12-15 23:12:44 ~14 min android 📦apk 📲
✖️ 72e986f #68 2021-12-15 23:24:24 ~25 min android-e2e 📦apk 📲
6940454 #69 2021-12-21 16:26:45 ~4 min ios 📄log
✖️ 6940454 #69 2021-12-21 16:39:33 ~16 min android-e2e 📦apk 📲
✖️ 6940454 #70 2021-12-21 16:46:36 ~23 min android 📦apk 📲
88b81ac #70 2021-12-24 05:50:13 ~20 sec android-e2e 📄log
88b81ac #71 2021-12-24 05:50:14 ~20 sec android 📄log
88b81ac #70 2021-12-24 05:50:15 ~21 sec ios 📄log
ebf409f #71 2021-12-24 05:55:44 ~11 sec android-e2e 📄log
ebf409f #72 2021-12-24 05:55:50 ~13 sec android 📄log
ebf409f #71 2021-12-24 05:55:52 ~15 sec ios 📄log
6400fe6 #72 2021-12-30 05:22:54 ~18 sec android-e2e 📄log
6400fe6 #73 2021-12-30 05:22:54 ~18 sec android 📄log
6400fe6 #72 2021-12-30 05:22:55 ~18 sec ios 📄log
776da12 #73 2021-12-30 05:29:54 ~12 sec android-e2e 📄log
776da12 #74 2021-12-30 05:29:54 ~12 sec android 📄log
776da12 #73 2021-12-30 05:30:00 ~13 sec ios 📄log
89b3d2f #74 2021-12-31 21:27:41 ~20 sec android-e2e 📄log
89b3d2f #75 2021-12-31 21:27:41 ~20 sec android 📄log
89b3d2f #74 2021-12-31 21:27:42 ~15 sec ios 📄log
218dfdb #75 2022-01-03 18:38:57 ~4 min android-e2e 📄log
218dfdb #76 2022-01-03 18:41:51 ~7 min android 📄log
218dfdb #75 2022-01-03 18:54:05 ~20 min ios 📄log
83bfba0 #76 2022-01-03 18:48:58 ~3 min android-e2e 📄log
83bfba0 #77 2022-01-03 18:50:23 ~4 min android 📄log
✔️ 83bfba0 #76 2022-01-03 18:57:36 ~11 min ios 📦ipa 📲
4232272 #77 2022-01-03 20:45:28 ~27 sec android-e2e 📄log
4232272 #78 2022-01-03 20:45:39 ~33 sec android 📄log
4232272 #77 2022-01-03 20:45:49 ~43 sec ios 📄log
377bc24 #79 2022-01-03 20:52:06 ~4 min android 📄log
377bc24 #78 2022-01-03 20:54:20 ~7 min android-e2e 📄log
✔️ 377bc24 #78 2022-01-03 20:58:30 ~11 min ios 📦ipa 📲
✔️ b04e782 #79 2022-01-03 21:22:25 ~11 min ios 📦ipa 📲
✔️ b04e782 #80 2022-01-03 21:27:11 ~16 min android 📦apk 📲
✔️ b04e782 #79 2022-01-03 21:27:11 ~16 min android-e2e 📦apk 📲
✔️ 0323403 #81 2022-01-03 22:02:27 ~15 min android 📦apk 📲
✔️ 0323403 #80 2022-01-03 22:02:35 ~16 min android-e2e 📦apk 📲
✔️ 0323403 #80 2022-01-03 22:03:47 ~17 min ios 📦ipa 📲
✔️ ce304c7 #81 2022-01-07 18:19:34 ~12 min ios 📦ipa 📲
✔️ ce304c7 #82 2022-01-07 18:23:27 ~16 min android 📦apk 📲
✔️ ce304c7 #81 2022-01-07 18:23:27 ~16 min android-e2e 📦apk 📲
✔️ 94a8bf7 #82 2022-01-16 18:40:09 ~13 min ios 📦ipa 📲
✔️ 94a8bf7 #83 2022-01-16 18:41:06 ~14 min android 📦apk 📲
✔️ 94a8bf7 #82 2022-01-16 18:49:44 ~22 min android-e2e 📦apk 📲
✔️ 38b8891 #83 2022-02-01 13:24:34 ~9 min android-e2e 📦apk 📲
✔️ 38b8891 #84 2022-02-01 13:24:34 ~9 min android 📦apk 📲
✔️ 38b8891 #83 2022-02-01 13:31:25 ~16 min ios 📦ipa 📲
✔️ da5f397 #84 2022-02-02 00:11:19 ~7 min android-e2e 📦apk 📲
✔️ da5f397 #85 2022-02-02 00:11:24 ~7 min android 📦apk 📲
✔️ da5f397 #84 2022-02-02 00:16:57 ~13 min ios 📦ipa 📲
✔️ 24f0ab3 #85 2022-02-08 14:11:59 ~9 min android-e2e 📦apk 📲
✔️ 24f0ab3 #86 2022-02-08 14:12:04 ~9 min android 📦apk 📲
✔️ 24f0ab3 #85 2022-02-08 14:14:35 ~11 min ios 📦ipa 📲
✔️ b18115a #87 2022-02-09 19:23:13 ~8 min android 📦apk 📲
✔️ b18115a #86 2022-02-09 19:24:23 ~9 min android-e2e 📦apk 📲
✔️ b18115a #86 2022-02-09 19:28:17 ~13 min ios 📦ipa 📲
7d27b92 #87 2022-02-16 03:17:10 ~32 sec ios 📄log
7d27b92 #88 2022-02-16 03:17:13 ~32 sec android 📄log
7d27b92 #87 2022-02-16 03:17:13 ~32 sec android-e2e 📄log
✖️ 135e762 #89 2022-02-16 03:26:51 ~7 min android 📦apk 📲
✖️ 135e762 #88 2022-02-16 03:26:58 ~7 min android-e2e 📦apk 📲
✖️ 135e762 #88 2022-02-16 03:32:12 ~13 min ios 📦ipa 📲
✔️ 84b0ce6 #89 2022-02-17 01:59:39 ~7 min android-e2e 📦apk 📲
✔️ 84b0ce6 #90 2022-02-17 01:59:56 ~7 min android 📦apk 📲
✔️ 84b0ce6 #89 2022-02-17 02:04:24 ~11 min ios 📦ipa 📲
✔️ c0f5c57 #91 2022-02-24 15:27:42 ~7 min android 📦apk 📲
✔️ c0f5c57 #90 2022-02-24 15:29:53 ~9 min android-e2e 📦apk 📲
✔️ c0f5c57 #90 2022-02-24 15:36:32 ~16 min ios 📦ipa 📲
✔️ 1046cae #91 2022-03-02 12:51:48 ~7 min android-e2e 📦apk 📲
✔️ 1046cae #92 2022-03-02 12:51:56 ~7 min android 📦apk 📲
✔️ 1046cae #91 2022-03-02 12:56:19 ~11 min ios 📦ipa 📲
✔️ f4f1daa #93 2022-03-02 21:50:43 ~10 min android 📦apk 📲
✔️ f4f1daa #92 2022-03-02 21:51:02 ~10 min android-e2e 📦apk 📲
✔️ f4f1daa #92 2022-03-02 21:53:38 ~13 min ios 📦ipa 📲
5c3ae63 #93 2022-03-08 14:21:22 ~22 sec ios 📄log
5c3ae63 #93 2022-03-08 14:21:22 ~22 sec android-e2e 📄log
5c3ae63 #94 2022-03-08 14:21:22 ~23 sec android 📄log
1188be0 #94 2022-03-09 14:49:25 ~27 sec ios 📄log
1188be0 #94 2022-03-09 14:49:40 ~43 sec android-e2e 📄log
1188be0 #95 2022-03-09 14:49:55 ~57 sec android 📄log
✔️ 71c32d6 #95 2022-03-09 14:59:42 ~7 min android-e2e 📦apk 📲
✔️ 71c32d6 #96 2022-03-09 15:02:11 ~10 min android 📦apk 📲
✔️ 71c32d6 #95 2022-03-09 15:04:53 ~12 min ios 📦ipa 📲
36d0fa9 #97 2022-03-14 20:10:40 ~22 sec android 📄log
36d0fa9 #96 2022-03-14 20:10:41 ~17 sec ios 📄log
36d0fa9 #96 2022-03-14 20:10:43 ~23 sec android-e2e 📄log
✔️ 9915d07 #98 2022-03-14 20:21:02 ~7 min android 📦apk 📲
✔️ 9915d07 #97 2022-03-14 20:23:34 ~9 min android-e2e 📦apk 📲
✔️ 9915d07 #97 2022-03-14 20:26:04 ~12 min ios 📦ipa 📲
Commit #️⃣ Finished (UTC) Duration Platform Result
✔️ a20605e #98 2022-03-16 14:46:38 ~7 min android-e2e 📦apk 📲
✔️ a20605e #98 2022-03-16 14:52:22 ~12 min ios 📦ipa 📲
✔️ a20605e #99 2022-03-16 14:53:47 ~14 min android 📦apk 📲
✔️ bd7da02 #100 2022-03-17 06:55:44 ~8 min android 📦apk 📲
✔️ bd7da02 #99 2022-03-17 06:55:50 ~8 min android-e2e 📦apk 📲
✔️ bd7da02 #99 2022-03-17 07:00:32 ~13 min ios 📦ipa 📲

@briansztamfater briansztamfater force-pushed the feat/wallet-connect-2.0 branch from a00eaa6 to dcc8417 Compare October 14, 2021 18:02
@flexsurfer
Copy link
Member

just wondering, if WC2.0 uses waku why don't we have our own implementation?

@flexsurfer
Copy link
Member

i mean we should use our waku implementation in status-go, no sense to have an implementation in js with all dependencies

@briansztamfater briansztamfater force-pushed the feat/wallet-connect-2.0 branch from f29b231 to 04884ba Compare October 21, 2021 03:13
@briansztamfater
Copy link
Member Author

briansztamfater commented Oct 22, 2021

i mean we should use our waku implementation in status-go, no sense to have an implementation in js with all dependencies

Yes, it make sense, I'm using the client implementation by now to implement the flows and have a basic implementation and will switch to pure wakuv2 implementation on a later iteration.

@briansztamfater briansztamfater force-pushed the feat/wallet-connect-2.0 branch from cb96d1b to fa63133 Compare October 30, 2021 00:21
@briansztamfater briansztamfater force-pushed the feat/wallet-connect-2.0 branch 2 times, most recently from c233ac7 to d62bec4 Compare November 15, 2021 04:04
@briansztamfater briansztamfater changed the title [WIP] Wallet Connect 2.0 integration Wallet Connect 2.0 integration Nov 15, 2021
@briansztamfater briansztamfater force-pushed the feat/wallet-connect-2.0 branch 2 times, most recently from 4d7423a to cd5b5ac Compare November 15, 2021 15:46
@briansztamfater briansztamfater changed the title Wallet Connect 2.0 integration [WIP] Wallet Connect 2.0 integration Nov 15, 2021
@briansztamfater briansztamfater force-pushed the feat/wallet-connect-2.0 branch 13 times, most recently from dd539a5 to 5a7659d Compare November 24, 2021 01:20
@briansztamfater
Copy link
Member Author

@churik Made several fixes, and tested them with a Xiaomi MI 10 T, and also iOS Simulator, now it seems to be working fine. Can you try again? Let me know any issues :)

@churik
Copy link
Member

churik commented Feb 10, 2022

@briansztamfater
I again repeated same steps and can't get session proposal bottom sheet.
Asked Pavel to verify - got the same.
Tried different browsers for https://react-app-git-fork-briansztamfater-v20-fi-4828be-walletconnect1.vercel.app/ (Chrome, Safari)
The same on IOS and Android

FILE.2022-02-10.13.21.02.mp4

Logs: logs (3).zip

@briansztamfater
Copy link
Member Author

briansztamfater commented Feb 10, 2022

Link on the PR description was outdated, https://react-app.walletconnect.com/ seems to work. I updated the link with this one.

@churik
Copy link
Member

churik commented Feb 10, 2022

New dapp url: https://react-app-git-extend-expiry-method-walletconnect1.vercel.app/

ISSUE 1: can't sign typed message (Mainnet)

Steps:

  1. open status app, enable web3, switch to mainnet
  2. Connect to https://react-app-git-extend-expiry-method-walletconnect1.vercel.app/ on 'Ethereum' mainnet also
  3. Accept session proposal bottom sheet
  4. Check that mainnet balance will be shown
  5. Use eth_signTypedData
  6. sign in status

Expected result:
signed

Actual result:
IMAGE 2022-02-10 15:16:59

OS: IOS, Android

ISSUE 2: can't use eth_sendTransaction (Mainnet)

Steps:

  1. open status app, enable web3, switch to mainnet
  2. Connect to https://react-app-git-extend-expiry-method-walletconnect1.vercel.app/ on 'Ethereum' mainnet also
  3. Accept session proposal bottom sheet
  4. Check that mainnet balance will be shown
  5. Use eth_sendTransaction

Expected result: network fee is set, can sign tx
Actual result:
IMAGE 2022-02-10 15:27:52
logs (4).zip

Question 3: should tap on "Cancel" in app discard Pending JSON-RPC Request?

Sometimes tapping on some button in dapp (i.e. personal sign) may lead to several bottom sheet in Status app. Not sure we are considering that as an issue on that stage.

ISSUE 4: if changing wallet after connecting to wallet-connect dapp, the old account will be shown

Steps:

  1. open status app, enable web3, switch to mainnet, create second account A in wallet
  2. Connect account A to https://react-app-git-extend-expiry-method-walletconnect1.vercel.app/ on 'Ethereum' mainnet also
  3. Accept session proposal bottom sheet, don't close "Connection request" bottom sheet
  4. change wallet back to Ethereum wallet
  5. Go back to https://react-app-git-extend-expiry-method-walletconnect1.vercel.app/
    Expected result: app will be reconnected to Ethereum wallet
    Actual result: app is connected to account A

@briansztamfater
Copy link
Member Author

briansztamfater commented Feb 10, 2022

@churik Thanks for the feedback!

Issue 1: This issue seems like a bug on the dapp side, because it always sends chainId: 42 in the message payload. I think chain ID 42 is Kovan network, should work on that network. I can see if I can fork the dapp repo to send the current chain ID, but at the meantime you could try to configure Kovan network and see if it works (I tested before and worked with Kovan).

Issue 2: I need to check this. I didn't test it with value transactions because I didn't have funds, but I'll see how can I reproduce it.

Question 3: I would say that would not be a real life scenario so I'd dismiss it by now and we can improve later if it makes sense, but I don't have a strong opinion about it.

Issue 4: What happens if you refresh the browser website after changing the wallet account? If it changes, I assume it is a bug on the dapp side that is not handling session updates in real time.

@churik
Copy link
Member

churik commented Feb 10, 2022

Issue 4

Yes, you're right that's dapp behavior - after 10 sec or so after refreshing right wallet is shown, so can skip issue 4

@churik
Copy link
Member

churik commented Feb 11, 2022

I've managed to get some test ETH on Kovan network.
And can confirm that method eth_signTypedData is working on Kovan. For eth_sendTransaction Network fee is not set, however I can't see fee for ordinary tx also, so that may be unrelated.
IMAGE 2022-02-11 11:35:16
We need tofind a way to check them on Mainnet, I'll check existing dapps from wallet connect website, maybe we will be lucky to find smth

@churik
Copy link
Member

churik commented Feb 11, 2022

Ok, tried around 20 apps from https://walletconnect.com/registry/apps and yeah, I suppose most of them are using wallet-connect 1.0 (which is understandable)
Let me check my understanding: for now, it is in the Advanced option as wallet 2.0 is not officially released and when it will be released we enable this setting by default, right?

@@ -39,6 +40,8 @@

(def linear-gradient (reagent/adapt-react-class LinearGradient))

(def blur-view (reagent/adapt-react-class (.-BlurView blur)))
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

just wondering, why do we want to use it? i mean we already have bottom sheets and popups, but why for wallet connect we want to use blur-view?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We use it for a blur effect here

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

mhm thats interesting, thanks, i guess we have other places in the app where we could use it

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

btw, why do we need select account sheet? why don't select it right on the connection sheet ?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i mean its a cool idea to select account with horizontal scroll so you don't need additional sheet. but for some reason we do it in additional sheet

Copy link
Member Author

@briansztamfater briansztamfater Feb 14, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's more of a session management sheet, at that moment the session is connected but you can update the session account or disconnect. We'll also re-use it to manage the list of active sessions.

:on-select on-select}
:horizontal true
:shows-horizontal-scroll-indicator false
:extraData @selected-account
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what is extraData ?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We tell FlatList to re-render when the extraData changes

:on-press on-press}]]))

(defview success-sheet-view [{:keys [topic]}]
(letsubs [visible-accounts @(re-frame/subscribe [:visible-accounts-without-watch-only])
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

if you use letsubs you don't need @(re-frame/subscribe

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, absolutely, my bad. Fixed

:color :secondary
:style styles/message-title}
(i18n/label :t/manage-connections)]
[react/view (styles/footer)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why so many nested views?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not specific reason in this case, just refactored it

dapps-account @(re-frame/subscribe [:dapps-account])
icon-uri (when (and icons (> (count icons) 0)) (first icons))
selected-account (reagent/atom dapps-account)]
[react/view (styles/acc-sheet)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

again too many nested views

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed

(fx/defn wallet-connect-client-initate
{:events [:wallet-connect/client-init]}
[{:keys [db] :as cofx} client]
(subscribe-to-events client)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this should be in effect

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Moved to effect

(let [client (get db :wallet-connect/client)
wallet-connect-enabled? (get db :wallet-connect/enabled?)]
(when wallet-connect-enabled?
(.pair client (clj->js {:uri data})))
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

effect

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Moved to effect

[{:keys [db]} account]
(let [client (get db :wallet-connect/client)
proposal (get db :wallet-connect/proposal)]
(-> ^js client
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

effect

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Moved to effect (and so on... :P)

metadata (get db :wallet-connect/proposal-metadata)
response {:state {:accounts accounts}
:metadata config/default-wallet-connect-metadata}]
(-> ^js client
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

effect

@briansztamfater briansztamfater force-pushed the feat/wallet-connect-2.0 branch 2 times, most recently from c0f5c57 to 1046cae Compare March 2, 2022 12:44
@briansztamfater briansztamfater requested review from flexsurfer and removed request for shivekkhurana March 2, 2022 21:46
icon-uri (when (and icons (> (count icons) 0)) (first icons))
address (last (string/split (first accounts) #":"))
account (first (filter #(= (:address %) address) visible-accounts))
selected-account (reagent/atom account)]
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i think we still don't have any agreement on how to name atoms, but it's better to somehow show that its an atom, selected-account-atom would work for me

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why do you need to wrap it with the atom btw ?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We need to get the session account and wrap it with the atom so user can select another one and pass it to extraData props of flat list so Flat List re-renders when value of the atom changes.

{:keys [name icons url]} metadata
icon-uri (when (and icons (> (count icons) 0)) (first icons))
account-address (last (string/split (first accounts) #":"))
selected-account (reagent/atom (first (filter #(= (:address %) account-address) visible-accounts)))]
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

atom must be defined outside the render function, don't remember if its play well with letsubs , should work I guess

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would leave this as is if possible, we need to initialize the atom with the session address value and pass it to the flat list to work properly. Any suggestions on how to do this without defining in let?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we can leave it because its not critical here, but in proper way you have to create extra function pass params in it and in that function define atom outside render function

(letsubs [visible-accounts [:visible-accounts-without-watch-only]
dapps-account [:dapps-account]]
(let [icon-uri (when (and icons (> (count icons) 0)) (first icons))
selected-account (reagent/atom dapps-account)]
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same here

(fx/defn switch-wallet-connect-enabled
{:events [:multiaccounts.ui/switch-wallet-connect-enabled]}
[{:keys [db]} enabled?]
(when enabled?
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should be effect

(fx/defn proposal-handler
{:events [:wallet-connect/proposal]}
[{:keys [db] :as cofx} request-event]
(let [proposal (js->clj request-event :keywordize-keys true)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we have types/js->cljs

(when (#{"eth_accounts" "eth_coinbase"} method)
(wallet-connect-complete-transaction cofx message-id topic (if (= method "eth_coinbase") dapps-address [dapps-address]))))))

(def permissioned-method
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same methods as for dapps ? why copy them ?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think is not used, will delete it

Copy link
Member

@flexsurfer flexsurfer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great job!

@briansztamfater briansztamfater force-pushed the feat/wallet-connect-2.0 branch 2 times, most recently from 36d0fa9 to 9915d07 Compare March 14, 2022 20:13
@qoqobolo
Copy link
Contributor

Hey @briansztamfater!
Unfortunately, nothing happens when scanning QR now.
Can you take a look, please?

IMG_1081.MP4

@briansztamfater
Copy link
Member Author

Hey @briansztamfater! Unfortunately, nothing happens when scanning QR now. Can you take a look, please?

IMG_1081.MP4

May be related to wallet registry not published yet on wallet connect. Will check with @jakubgs and come back to you

@jakubgs
Copy link
Member

jakubgs commented Mar 15, 2022

Still pending review:

image

@briansztamfater
Copy link
Member Author

@qoqobolo actually it was my fault, I left some hardcoded uri that I used to test, now you can try again. Sorry about that! cc @jakubgs

@qoqobolo
Copy link
Contributor

Thanks @briansztamfater, works great now.
PR can be merged.

Signed-off-by: Brian Sztamfater <brian@status.im>
@briansztamfater briansztamfater force-pushed the feat/wallet-connect-2.0 branch from a20605e to bd7da02 Compare March 17, 2022 06:47
@briansztamfater briansztamfater merged commit bd7da02 into develop Mar 17, 2022
@briansztamfater briansztamfater deleted the feat/wallet-connect-2.0 branch March 17, 2022 06:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
No open projects
Archived in project
Development

Successfully merging this pull request may close these issues.

Wallet connect 2.0 integration
8 participants