900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 以太坊智能合约开发利器BrowserSolidity+MetaMask

以太坊智能合约开发利器BrowserSolidity+MetaMask

时间:2021-03-28 20:30:06

相关推荐

以太坊智能合约开发利器BrowserSolidity+MetaMask

今天无意中看到以前以太坊学习时记录的一篇发币笔记,同时以太坊系列正好缺一篇智能合约实战的文章,于是整理了下并以EOS代币以太坊智能合约为例讲述了整个部署调用流程,算是补全吧,有需要的自取。

安装MetaMask

用到了Chrome应用商店,科学上网是必须的,当然大家也可以通过下载插件文件离线安装。

进入主界面后可以选择网络,然后通过keystore和私钥方式导入钱包

如果要连接本地私有网络,geth需要增加 --rpccorsdomain参数

geth --networkid 15 --rpc --rpcaddr 0.0.0.0 --rpcapi personal,db,eth,net,web3,miner --nodiscover --rpccorsdomain --rpcport 8545 --rpccorsdomain *

浏览器打开在线编辑工具BrowserSolidity

/ ,速度有点,可能还需要科学上网

编译发币智能合约并部署

下面我们就以EOS代币智能合约为例来实践,EOS代币智能合约代码可以在下面链接找到:

https://etherscan.io/address/0x86fa049857e0209aa7d9e616f7eb3b3b78ecfdb0#code

拷贝里面的代码粘贴到BrowserSolidity即可,BrowserSolidity会自动编译。

如编译报没效果,ctrl+s报如下错误

“NO_DYNAMIC_EXECUTION was set”

请选择compiler

然后我们就开始部署,部署有两种方式

1)MetaMask部署

我们点击Run选项选择Injected Web3,如果显示没有网络连接,请在MetaMask切换网络刷新。

然后点击Deploy和确认即完成部署。Account栏请选择你要发起合约部署的账号,部署合约的费用都会从这个账号

扣掉。

2)手工部署

将上面的代码输入到geth命令终端即可。

这里需要注意的是将web3.eth.accounts[0]改成你自己的钱包地址,且部署前先解锁

> personal.unlockAccount(eth.accounts[0])

调用智能合约的函数

EOS代币比较特殊,初始化后TotalSupply=0, 需要调用mint函数增加供应,下面就以mint为例来说明

也有很多方法

web3js等第三方库

这个网上有很多教程,我这里就不说了

使用BrowserSolidity

使用geth命令行

1) 使用abi构造合约结构

var dsauthContract = web3.eth.contract([{"constant":false,"inputs":

。。。。。。

[{"indexed":true,"name":"owner","type":"address"}],"name":"LogSetOwner","type":"event"}]);

上面的代码还是从BrowserSolidity拷贝的

2)使用合约地址创建合约实例

contractInstance = dsauthContract.at("0x692a70d2e424a56d2c6c27aa97d1a86395877b3a");

上面的地址是创建合约时返回的,就是智能合约的地址

3)调用mint, transfer方法

contractInstance.transfer(1000000000000, {from:eth.accounts[0]});

//eth.accounts[0]账号有EOS后,给accounts[1]转账

contractInstance.transfer(eth.accounts[1], 1000, {from:eth.accounts[0]});

|**************************************************

* 本文来自CSDN博主"爱踢门",喜欢请点关注

* 转载请标明出处:/itleaks

***************************************************|

如果你对EOS,ETH技术及开发感兴趣,请入QQ群讨论:829789117

如需实时查看最新文章,请关注公众号"区块链斜杠青年",一起探索区块链未来

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。