实例化合约
在pet-shop项目中,已经包含了前端代码,主要逻辑在src/app.js。
Adoption部署成功后,在build/contracts目录下会生成Adoption.json文件,记录合约部署信息;
initContract函数读取Adoption.json文件,创建一个合约实例contracts.Adoption.
markAdopted函数使用合约实例,调用getAdopters()方法,获取所有领养者列表,回到页面上,把对应宠物的领养按钮置灰,改名为Success。
图五:领养宠物
处理领养
handleAdopt函数处理领养按钮,首先获取区块链用户账号,然后调用合约实例的adopt(petId)方法,领养宠物。
在浏览器中领养以太狗
MetaMask是一款插件形式的以太坊客户端,我们可以使用基于firefox浏览器的版本。
图六: 以太坊客户端插件
选择可供连接的网络:
图七: 选择网络
因为ganache-cli的监听端口为8545,所以我们选择“Localhost 8545”:
点击“Restore from seed phrase”,
图八: 配置钱包
注意,"Wallet Seed"框中填入ganache-cli的Mnemonic:
设置密码,确认即可,下次登录直接使用该密码。
图九:账户
登录后,能看到用户及相关交易信息,默认用户名为Account 1,查看该用户地址:
与ganache-cli的用户列表相比:
发现什么了吗?其实就是第一个用户。