区块链研究实验室|在Android的Opera中使用以太坊钱包

Opera浏览器现在内置了以太坊钱包。钱包设置需要将Android应用程序与桌面应用程序同步。

 

同步以太坊账户

在桌面应用程序中,转到左侧的加密钱包侧边栏,单击显示代码,然后使用应用程序扫描。

浏览器将包含Opera创建的以太坊帐户。 您可以直接接收和发送以太网。

 

问题是,与许多最先进的分布式账本/区块链应用程序一样,文档说明还不够完善,需要进行一些挖掘…所以让我们一起挖掘吧!

 

首先,我们需要能够浏览移动端的控制台,以便了解Web3JS的工作方式。所以我设置了一个静态网页来访问Web服务器,并验证了Android上的Opera可以打开它。简而言之,你需要在桌面上有一个浏览器来进行调试(我们将使用Opera),你需要用USB连接一个Android设备,在Android开发者选项上启用USB调试。但是,如上所述的Opera调试设置不适用于我。

 

在Windows上我必须使用adb(Android Debug Bridge,通常与Android Studio一起安装,或者可以从Studio中安装到工具> SDK Manager)。

 

就我而言,adb位于AppData Local Android sdk platform-tools下的主目录中。 我使用Windows Powershell并在命令行中运行:

 

.adb.exe devices


adb server version (39) doesn't match this client (41); killing...


could not read ok from ADB Server


* failed to start daemon


adb.exe: failed to check server version: cannot connect to daemon

通过使用任务管理器进行一些探索 - 使用ctrl + shift + esc  - 我看到我有另一个adb.exe进程正在运行,版本不同。通过右键单击>属性,我看到了它的Spawing来源,我让一个应用程序在后台以不同的adb版本运行。我卸载了应用程序,没有真正使用它。这使我能够正确运行ADB并显示连接的设备:

 

.adb.exe devices


List of devices attached


0048905859      device

快速adb有用的命令:

 

.adb.exe start-server


(starts -- duh -- the adb daemon)


.adb.exe kill-server


(stops the daemon)

在Opera上允许调试使用:

 

.adb.exe forward tcp:9222 localabstract:com.opera.browser.devtools


* daemon not running; starting now at tcp:5037


* daemon started successfully

如果你看到上面的信息,你已经成功能了。

 

如果你想调试Android Chrome,也很简单,只需使用下面的命令:

 

.adb.exe forward tcp:9222 localabstract:chrome_devtools_r


emote

此时,您已将本地tcp端口9222转发到Android的调试控制台。 现在将文档再次关闭。 转到localhost:9222适用于调试Chrome,但对我来说它不适用于Opera。

 

你可以在Opera中键入chrome:// inspect,它应该会显示一个很酷的小屏幕:

 

 我们可以打开一个新的URL,检查Android上的打开选项卡。

 

现在让我们开始在Android上运行Ethereum。

 

<!DOCTYPE html>


<html>


<head>


  <title>Test Opera</title>


</head>


<body>


  Working!


</body>


</html>

我检查了网页,打开了javascript控制台。想知道它是否像metamask插件一样注入Web3JS。显然不是…

 

带有控制台的nspected标签:no Web3

 

在某些方面,Android上的Opera将要求您允许从该网站访问您的钱包,您需要允许它,当然:

 

好吧,让我们添加web3js,我从CDN JSDelivr添加了一个web3js 1.0(注意,目前1.0是测试版,不稳定)。

 

<!DOCTYPE html>


<html>


<head>


 <title>Test Opera</title>


 <script src="https://cdn.jsdelivr.net/gh/ethereum/web3.js@1.0.0-beta.34/dist/web3.min.js" type="text/javascript"></script>


</head>


<body>


  Working!


</body>


</html>


如果我们现在在控制台上重新加载,我们可以这样做:

 

我们找到web3js!我们现在做些更有趣的事。在Opera桌面上,我将其设置为使用Ropsten测试网,然后我发送了0.1测试以太币到另外一个账户。

 

在Opera桌面工具栏上,单击钱包图标

 

在Android上的Opera上,也可以连接到Ropsten(只需单击右下角的Opera O图标>加密钱包>右上角的Gear图标>网络),以确保您在同一网络上,然后我们可以在控制台上玩:

 

所以,现在我们已经连接到以太坊网络并获得当前帐户! 让我们查看一下余额:

 

所以我们在该帐户上有0.1 Eth或100000000000000000 Wei。 

 

我想知道......我们甚至可以将一些Eth发送到另一个帐户吗?

 

尝试向另外一个钱包发送以太

 

当然,它需要用户授权才能进行传输,因此它甚至会弹出确认屏幕!

 

为了增加炫酷感,它甚至要求我的安全模式或指纹来验证交易。

 

它还显示一个事务挂起消息,允许您单击以查看Etherscan上的挂起事务。 

 

我做了两次,因为截图不是很好,所以我收到了0.02 ETH,并且它显示在我在其他浏览器上在Metamask上设置的帐户。

 

行! 让我们回顾一下我们做了什么:

我们在Windows和Android上使用Opera。

我们在Window上创建了一个以太坊钱包。

我们通过扫描QR码同步了两个应用程序上的钱包

我们通过USB连接了Android设备

我们使用adb来允许在Android上调试Opera

我们创建了一个非常简单的网页并添加了web3js

我们将其设置为使用Ropsten testnet

我们通过远程控制台连接以太坊帐户

我们将以太币从该帐户发送到另一个帐户

所以现在我们有一个可以使用以太坊DApps的移动浏览器!

下一节的内容,了解如何使用新私钥在Android上签署Opera上的消息。

 

标签: