gitcoinco / skunkworks

experimental laboratory
64 stars 35 forks source link

Build the BrowserStack of Web3 #184

Open owocki opened 3 years ago

owocki commented 3 years ago

Inspired by https://twitter.com/owocki/status/1307742287602970636

I would like someone to build a regression testing service that allows me to test my dApp's checkout flow across multiple web3 wallets (metamask, argent, brave, portis, formatic, status, coinbase wallet, metamask mobile .. ).

i'm drowning in permutations to test here, and wasting massive resources.

Requirements:

gitcoinbot commented 3 years ago

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


This issue now has a funding of 30.0 ETH (10375.77 USD @ $345.86/ETH) attached to it.

gitcoinbot commented 3 years ago

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


Work has been started.

These users each claimed they can complete the work by 266 years, 1 month from now. Please review their action plans below:

1) vbstreetz has started work.

Super excited to work on this. My plan is to implement an heroku style testing bed where it runs on every push to a github repository. I’ll be implementing 2 things: a python library that creates a selenium driver instance and provides such utility functions as readying a particular web3 client, accepting a transaction signing prompt etc. The second is a docker image that pre-builts the latest chrome, chromedriver and packages unpacked versions of the extension based web3 clients ready to use. Appium/Genymotion will have to be used in the case of the mobile wallets. Am confident that most wallets will be supported and so looking forward to turning this into an eventual SAAS product! 2) psudoanon has started work.

Hey,

I have experience working with desktop and mobile web application test automation frameworks and providing a service centred around Web 3.0, making it as easy as possible to ensure dApp compatibility across multiple crypto wallets, sounds like an awesome way to help the community grow. Mobile wallet support will definitely be a little more complicated (I'm not even sure we could test iOS mobile wallets that aren't open source) but aiming for desktop, Android and open source iOS wallet support at first would be reasonable. Getting it working on real world devices would be awesome too but that would involve starting without a cloud hosting solution and would definitely be part of the roadmap. I've actually built something quite similar to this in the past for a mobile application company which I worked at and it was all in house at the time. Let me know what you think :)

Learn more on the Gitcoin Issue Details page.

gitcoinbot commented 3 years ago

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


Work has been started.

These users each claimed they can complete the work by 266 years, 1 month from now. Please review their action plans below:

1) vbstreetz has started work.

Super excited to work on this. My plan is to implement an heroku style testing bed where it runs on every push to a github repository. I’ll be implementing 2 things: a python library that creates a selenium driver instance and provides such utility functions as readying a particular web3 client, accepting a transaction signing prompt etc. The second is a docker image that pre-builts the latest chrome, chromedriver and packages unpacked versions of the extension based web3 clients ready to use. Appium/Genymotion will have to be used in the case of the mobile wallets. Am confident that most wallets will be supported and so looking forward to turning this into an eventual SAAS product! 2) psudoanon has started work.

Hey,

I have experience working with desktop and mobile web application test automation frameworks and providing a service centred around Web 3.0, making it as easy as possible to ensure dApp compatibility across multiple crypto wallets, sounds like an awesome way to help the community grow. Mobile wallet support will definitely be a little more complicated (I'm not even sure we could test iOS mobile wallets that aren't open source) but aiming for desktop, Android and open source iOS wallet support at first would be reasonable. Getting it working on real world devices would be awesome too but that would involve starting without a cloud hosting solution and would definitely be part of the roadmap. I've actually built something quite similar to this in the past for a mobile application company which I worked at and it was all in house at the time. Let me know what you think :)

Learn more on the Gitcoin Issue Details page.

owocki commented 3 years ago

just made this a permissionless/contest. i dont want to approve people to work on it, if you want to pursue the market opportunity you should

kelonye commented 3 years ago

hey! got a start at this with a test of metamask extension https://youtu.be/Roop5yAQZkA (example shows searching for claimable UNI tokens, given a mnemonic phrase).

looks like the setup of most of the rest of the browser web3 clients require scanning some qr code via a phone. one option is to take a screenshot of this and send it to another process that runs an android emulator that has the target mobile app installed. i'll spend some few days to try and see if we can accomplish this w/ appium.

owocki commented 3 years ago

seems promising :)

On Sat, Sep 26, 2020 at 8:12 AM vbstreetz notifications@github.com wrote:

hey! got a start at this with a test of metamask extension https://youtu.be/Roop5yAQZkA (example shows searching for claimable UNI tokens, given a mnemonic phrase).

looks like the setup of most of the rest of the browser web3 clients require scanning some qr code via a phone. one option is to take a screenshot of this and send it to another process that runs an android emulator that has the target mobile app installed. i'll spend some few days to try and see if we can accomplish this w/ appium https://stackoverflow.com/questions/59847616/is-there-anyway-to-automate-scan-qr-code-by-appium-for-ios-and-android .

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/gitcoinco/skunkworks/issues/184#issuecomment-699500646, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAD5PCP53TSUUFKSUBBWYYDSHXZFZANCNFSM4RURVXAQ .

--

@owocki http://www.twitter.com/owocki


gitcoin is live and has generated over $5mm for Open Source Software - see our results https://gitcoin.co/results

kelonye commented 3 years ago

hey. made some progress on metamask mobile https://youtu.be/_1ScAcd4QIc but it seems it won't be feasible to interact with a webpage opened in it :(

https://github.com/wix/detox/issues/334#issuecomment-335802212 https://github.com/wix/detox/issues/136#issuecomment-306591554

i'll continue researching though..

owocki commented 3 years ago

oh shoot; yeah that does seem like progress. damn too bad its blocked; i wonder if youll need complete control of the os/browser

On Fri, Oct 9, 2020 at 1:38 PM vbstreetz notifications@github.com wrote:

hey. made some progress on metamask mobile https://youtu.be/_1ScAcd4QIc but it seems it won't be feasible to interact with a webpage opened in it :(

wix/Detox#334 (comment) https://github.com/wix/Detox/issues/334#issuecomment-335802212 wix/Detox#136 (comment) https://github.com/wix/Detox/issues/136#issuecomment-306591554

i'll continue researching though..

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/gitcoinco/skunkworks/issues/184#issuecomment-706367922, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAD5PCKFZC7H2SMXISE3IJ3SJ5RCTANCNFSM4RURVXAQ .

--

@owocki http://www.twitter.com/owocki


gitcoin is live and has generated over $7.3mm for Open Source Software - see our results https://gitcoin.co/results

walidmujahid commented 3 years ago

hey. made some progress on metamask mobile https://youtu.be/_1ScAcd4QIc but it seems it won't be feasible to interact with a webpage opened in it :(

wix/Detox#334 (comment) wix/Detox#136 (comment)

i'll continue researching though..

@vbstreetz I have only skimmed through this issue thread, and I am in no way an expert at automating tests of any kind, however, for MetaMask's react native app, would this be of help to you: https://appiumpro.com/editions/76-testing-react-native-apps-with-appium

kelonye commented 3 years ago

Hey Wajid. Thanks for the share. The main issue is accessing the website elements loaded in MetaMask's browser (webview). Seems its an api access denial by the OS. Only option is to emulate clicks using pixel coordinates which is not feasible.

On Sat, Oct 17, 2020, 13:05 Walid Mujahid وليد مجاهد < notifications@github.com> wrote:

hey. made some progress on metamask mobile https://youtu.be/_1ScAcd4QIc but it seems it won't be feasible to interact with a webpage opened in it :(

wix/Detox#334 (comment) https://github.com/wix/Detox/issues/334#issuecomment-335802212 wix/Detox#136 (comment) https://github.com/wix/Detox/issues/136#issuecomment-306591554

i'll continue researching though..

@vbstreetz https://github.com/vbstreetz I have only skimmed through this issue thread, and I am in no way an expert at automating tests of any kind, however, for MetaMask's react native app, would this be of help to you: https://appiumpro.com/editions/76-testing-react-native-apps-with-appium

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/gitcoinco/skunkworks/issues/184#issuecomment-710788922, or unsubscribe https://github.com/notifications/unsubscribe-auth/AON72DOUFYSQR5QRCN3TYNDSLFT45ANCNFSM4RURVXAQ .

walidmujahid commented 3 years ago

Are you using a local build of MetaMask? Do you modify it for your needs?

On Sat, 17 Oct 2020 at 06:10, vbstreetz notifications@github.com wrote:

Hey Wajid. Thanks for the share. The main issue is accessing the website elements loaded in MetaMask's browser (webview). Seems its an api access denial by the OS. Only option is to emulate clicks using pixel coordinates which is not feasible.

On Sat, Oct 17, 2020, 13:05 Walid Mujahid وليد مجاهد < notifications@github.com> wrote:

hey. made some progress on metamask mobile https://youtu.be/_1ScAcd4QIc but it seems it won't be feasible to interact with a webpage opened in it :(

wix/Detox#334 (comment) https://github.com/wix/Detox/issues/334#issuecomment-335802212 wix/Detox#136 (comment) https://github.com/wix/Detox/issues/136#issuecomment-306591554

i'll continue researching though..

@vbstreetz https://github.com/vbstreetz I have only skimmed through this issue thread, and I am in no way an expert at automating tests of any kind, however, for MetaMask's react native app, would this be of help to you: https://appiumpro.com/editions/76-testing-react-native-apps-with-appium

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub < https://github.com/gitcoinco/skunkworks/issues/184#issuecomment-710788922 , or unsubscribe < https://github.com/notifications/unsubscribe-auth/AON72DOUFYSQR5QRCN3TYNDSLFT45ANCNFSM4RURVXAQ

.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/gitcoinco/skunkworks/issues/184#issuecomment-710789676, or unsubscribe https://github.com/notifications/unsubscribe-auth/AALLSSA37EO2OZ7IMFULPJDSLFUSFANCNFSM4RURVXAQ .

kelonye commented 3 years ago

Yeap. Also reused some of their tests which use detox (much better than appium).

On Sat, Oct 17, 2020, 13:22 Walid Mujahid وليد مجاهد < notifications@github.com> wrote:

Are you using a local build of MetaMask? Do you modify it for your needs?

On Sat, 17 Oct 2020 at 06:10, vbstreetz notifications@github.com wrote:

Hey Wajid. Thanks for the share. The main issue is accessing the website elements loaded in MetaMask's browser (webview). Seems its an api access denial by the OS. Only option is to emulate clicks using pixel coordinates which is not feasible.

On Sat, Oct 17, 2020, 13:05 Walid Mujahid وليد مجاهد < notifications@github.com> wrote:

hey. made some progress on metamask mobile https://youtu.be/_1ScAcd4QIc but it seems it won't be feasible to interact with a webpage opened in it :(

wix/Detox#334 (comment) https://github.com/wix/Detox/issues/334#issuecomment-335802212 wix/Detox#136 (comment) https://github.com/wix/Detox/issues/136#issuecomment-306591554

i'll continue researching though..

@vbstreetz https://github.com/vbstreetz I have only skimmed through this issue thread, and I am in no way an expert at automating tests of any kind, however, for MetaMask's react native app, would this be of help to you:

https://appiumpro.com/editions/76-testing-react-native-apps-with-appium

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub <

https://github.com/gitcoinco/skunkworks/issues/184#issuecomment-710788922

, or unsubscribe <

https://github.com/notifications/unsubscribe-auth/AON72DOUFYSQR5QRCN3TYNDSLFT45ANCNFSM4RURVXAQ

.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub < https://github.com/gitcoinco/skunkworks/issues/184#issuecomment-710789676 , or unsubscribe < https://github.com/notifications/unsubscribe-auth/AALLSSA37EO2OZ7IMFULPJDSLFUSFANCNFSM4RURVXAQ

.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/gitcoinco/skunkworks/issues/184#issuecomment-710796555, or unsubscribe https://github.com/notifications/unsubscribe-auth/AON72DKFN4XZV3JY4YD4X3DSLFV4XANCNFSM4RURVXAQ .

walidmujahid commented 3 years ago

It sounds like an interesting problem. I realise that this project is not meant to open source, but if it was and I had some actual ability with test automation, it would be something I would love solving. That said, I have no ability worth mentioning :-D

What if you just stub everything?

On Sat, 17 Oct 2020 at 06:29, vbstreetz notifications@github.com wrote:

Yeap. Also reused some of their tests which use detox (much better than appium).

On Sat, Oct 17, 2020, 13:22 Walid Mujahid وليد مجاهد < notifications@github.com> wrote:

Are you using a local build of MetaMask? Do you modify it for your needs?

On Sat, 17 Oct 2020 at 06:10, vbstreetz notifications@github.com wrote:

Hey Wajid. Thanks for the share. The main issue is accessing the website elements loaded in MetaMask's browser (webview). Seems its an api access denial by the OS. Only option is to emulate clicks using pixel coordinates which is not feasible.

On Sat, Oct 17, 2020, 13:05 Walid Mujahid وليد مجاهد < notifications@github.com> wrote:

hey. made some progress on metamask mobile https://youtu.be/_1ScAcd4QIc but it seems it won't be feasible to interact with a webpage opened in it :(

wix/Detox#334 (comment) https://github.com/wix/Detox/issues/334#issuecomment-335802212 wix/Detox#136 (comment) https://github.com/wix/Detox/issues/136#issuecomment-306591554

i'll continue researching though..

@vbstreetz https://github.com/vbstreetz I have only skimmed through this issue thread, and I am in no way an expert at automating tests of any kind, however, for MetaMask's react native app, would this be of help to you:

https://appiumpro.com/editions/76-testing-react-native-apps-with-appium

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub <

https://github.com/gitcoinco/skunkworks/issues/184#issuecomment-710788922

, or unsubscribe <

https://github.com/notifications/unsubscribe-auth/AON72DOUFYSQR5QRCN3TYNDSLFT45ANCNFSM4RURVXAQ

.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub <

https://github.com/gitcoinco/skunkworks/issues/184#issuecomment-710789676

, or unsubscribe <

https://github.com/notifications/unsubscribe-auth/AALLSSA37EO2OZ7IMFULPJDSLFUSFANCNFSM4RURVXAQ

.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub < https://github.com/gitcoinco/skunkworks/issues/184#issuecomment-710796555 , or unsubscribe < https://github.com/notifications/unsubscribe-auth/AON72DKFN4XZV3JY4YD4X3DSLFV4XANCNFSM4RURVXAQ

.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/gitcoinco/skunkworks/issues/184#issuecomment-710802143, or unsubscribe https://github.com/notifications/unsubscribe-auth/AALLSSAIRP535YP2UXFRLIDSLFW2BANCNFSM4RURVXAQ .

kelonye commented 3 years ago

Gotcha. I'll try open source what i did by end of the weekend.

‪On Sat, Oct 17, 2020 at 3:45 PM ‫Walid Mujahid وليد مجاهد‬‎ < notifications@github.com> wrote:‬

It sounds like an interesting problem. I realise that this project is not meant to open source, but if it was and I had some actual ability with test automation, it would be something I would love solving. That said, I have no ability worth mentioning :-D

What if you just stub everything?

On Sat, 17 Oct 2020 at 06:29, vbstreetz notifications@github.com wrote:

Yeap. Also reused some of their tests which use detox (much better than appium).

On Sat, Oct 17, 2020, 13:22 Walid Mujahid وليد مجاهد < notifications@github.com> wrote:

Are you using a local build of MetaMask? Do you modify it for your needs?

On Sat, 17 Oct 2020 at 06:10, vbstreetz notifications@github.com wrote:

Hey Wajid. Thanks for the share. The main issue is accessing the website elements loaded in MetaMask's browser (webview). Seems its an api access denial by the OS. Only option is to emulate clicks using pixel coordinates which is not feasible.

On Sat, Oct 17, 2020, 13:05 Walid Mujahid وليد مجاهد < notifications@github.com> wrote:

hey. made some progress on metamask mobile https://youtu.be/_1ScAcd4QIc but it seems it won't be feasible to interact with a webpage opened in it :(

wix/Detox#334 (comment) https://github.com/wix/Detox/issues/334#issuecomment-335802212 wix/Detox#136 (comment) https://github.com/wix/Detox/issues/136#issuecomment-306591554

i'll continue researching though..

@vbstreetz https://github.com/vbstreetz I have only skimmed through this issue thread, and I am in no way an expert at automating tests of any kind, however, for MetaMask's react native app, would this be of help to you:

https://appiumpro.com/editions/76-testing-react-native-apps-with-appium

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub <

https://github.com/gitcoinco/skunkworks/issues/184#issuecomment-710788922

, or unsubscribe <

https://github.com/notifications/unsubscribe-auth/AON72DOUFYSQR5QRCN3TYNDSLFT45ANCNFSM4RURVXAQ

.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub <

https://github.com/gitcoinco/skunkworks/issues/184#issuecomment-710789676

, or unsubscribe <

https://github.com/notifications/unsubscribe-auth/AALLSSA37EO2OZ7IMFULPJDSLFUSFANCNFSM4RURVXAQ

.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub <

https://github.com/gitcoinco/skunkworks/issues/184#issuecomment-710796555

, or unsubscribe <

https://github.com/notifications/unsubscribe-auth/AON72DKFN4XZV3JY4YD4X3DSLFV4XANCNFSM4RURVXAQ

.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub < https://github.com/gitcoinco/skunkworks/issues/184#issuecomment-710802143 , or unsubscribe < https://github.com/notifications/unsubscribe-auth/AALLSSAIRP535YP2UXFRLIDSLFW2BANCNFSM4RURVXAQ

.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/gitcoinco/skunkworks/issues/184#issuecomment-710910167, or unsubscribe https://github.com/notifications/unsubscribe-auth/AON72DMHTQTGZL4QZWYIRH3SLGGXXANCNFSM4RURVXAQ .

walidmujahid commented 3 years ago

That would be amazing, but you do not have to make it public as there is a profit making opportunity in this. That said, and despite my lack of ability in automation testing -as such my eyes might be a fresh pair, but hands may not provide a solution-, if you are willing for other eyes to look at your ideas and implementations so far, I would be happy to help look privately. I will sign an NDA with a non-compete clause pertaining to the implementation of this proposed test suit. Or we could just ask Gitcoin not to do business with me if I turn out to be a bad actor. @owocki and everyone else, please take witness of this :-)

On Sat, 17 Oct 2020 at 09:38, vbstreetz notifications@github.com wrote:

Gotcha. I'll try open source what i did by end of the weekend.

‪On Sat, Oct 17, 2020 at 3:45 PM ‫Walid Mujahid وليد مجاهد‬‎ < notifications@github.com> wrote:‬

It sounds like an interesting problem. I realise that this project is not meant to open source, but if it was and I had some actual ability with test automation, it would be something I would love solving. That said, I have no ability worth mentioning :-D

What if you just stub everything?

On Sat, 17 Oct 2020 at 06:29, vbstreetz notifications@github.com wrote:

Yeap. Also reused some of their tests which use detox (much better than appium).

On Sat, Oct 17, 2020, 13:22 Walid Mujahid وليد مجاهد < notifications@github.com> wrote:

Are you using a local build of MetaMask? Do you modify it for your needs?

On Sat, 17 Oct 2020 at 06:10, vbstreetz notifications@github.com wrote:

Hey Wajid. Thanks for the share. The main issue is accessing the website elements loaded in MetaMask's browser (webview). Seems its an api access denial by the OS. Only option is to emulate clicks using pixel coordinates which is not feasible.

On Sat, Oct 17, 2020, 13:05 Walid Mujahid وليد مجاهد < notifications@github.com> wrote:

hey. made some progress on metamask mobile https://youtu.be/_1ScAcd4QIc but it seems it won't be feasible to interact with a webpage opened in it :(

wix/Detox#334 (comment) https://github.com/wix/Detox/issues/334#issuecomment-335802212 wix/Detox#136 (comment) https://github.com/wix/Detox/issues/136#issuecomment-306591554

i'll continue researching though..

@vbstreetz https://github.com/vbstreetz I have only skimmed through this issue thread, and I am in no way an expert at automating tests of any kind, however, for MetaMask's react native app, would this be of help to you:

https://appiumpro.com/editions/76-testing-react-native-apps-with-appium

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub <

https://github.com/gitcoinco/skunkworks/issues/184#issuecomment-710788922

, or unsubscribe <

https://github.com/notifications/unsubscribe-auth/AON72DOUFYSQR5QRCN3TYNDSLFT45ANCNFSM4RURVXAQ

.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub <

https://github.com/gitcoinco/skunkworks/issues/184#issuecomment-710789676

, or unsubscribe <

https://github.com/notifications/unsubscribe-auth/AALLSSA37EO2OZ7IMFULPJDSLFUSFANCNFSM4RURVXAQ

.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub <

https://github.com/gitcoinco/skunkworks/issues/184#issuecomment-710796555

, or unsubscribe <

https://github.com/notifications/unsubscribe-auth/AON72DKFN4XZV3JY4YD4X3DSLFV4XANCNFSM4RURVXAQ

.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub <

https://github.com/gitcoinco/skunkworks/issues/184#issuecomment-710802143

, or unsubscribe <

https://github.com/notifications/unsubscribe-auth/AALLSSAIRP535YP2UXFRLIDSLFW2BANCNFSM4RURVXAQ

.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub < https://github.com/gitcoinco/skunkworks/issues/184#issuecomment-710910167 , or unsubscribe < https://github.com/notifications/unsubscribe-auth/AON72DMHTQTGZL4QZWYIRH3SLGGXXANCNFSM4RURVXAQ

.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/gitcoinco/skunkworks/issues/184#issuecomment-710970547, or unsubscribe https://github.com/notifications/unsubscribe-auth/AALLSSFPWLBPPNOTH6PEU5TSLGM5TANCNFSM4RURVXAQ .

gitcoinbot commented 3 years ago

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


Work for 30.0 ETH (52410.07 USD @ $1798.96/ETH) has been submitted by:


gitcoinbot commented 3 years ago

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


The funding of 30.0 ETH (53968.77 USD @ $1792.96/ETH) attached to this issue has been cancelled by the bounty submitter