区块链的学习日志(第三章) 智能合约和钱包相互转账

下面是一些简单的转账日志的查看,和合约调用简单的转账方法,仅供学习

第一步: 转入到合约地址

首先我们在小狐狸钱包里面点击发送,发送地址去复制合约地址,发送需要支付一定的燃油费。当成功以后我们就可以去区块浏览器里面 https://ropsten.etherscan.io/ 根据合约地址查看余额了。

第二步: 转出到账户或者指定账户

      我们在合约地址下面输入我们需要转出的金额,转出的金额方法就是调用我们合约函数,转出金额我们需要用 " "符号,并且转出金额不能超过0.1ETH,因为我们合约里面做了限制转出数量,不然转出会报错。具体看下图:

解释

首先,我们来看看withdraw_amount这个参数。我们尝试从合约提取0.1 ETH,这是合约所允许提取的 最大限额。还记得以太坊内部所有的币值单位都应该使用wei来表示吧?因此,withdraw_amount参数也必 须使用wei的格式。这里的0.1 ETH,对应的就是100000000000000000 wei。

由于JavaScript的限制,大于10 17的数值无法在Remix中处理。因此,我们使用双引号把它引起 来,让Remix把它当作字符串形态的BigNumber来处理。如果不加引号,Remix IDE就无法处理,会显 示“Error encoding arguments:Error:Assertion failed”。

总结一下

我们从MetaMask钱包发出了一个针对合约的withdraw函数的调用,调用中包含了值为0.1 ETH的withdraw_amount参数。这个交易导致合约在EVM中被执行。在EVM执行Faucet合约的withdraw函 数时,它首先调用require来检验我们的参数是否满足要求(小于等于0.1 ETH)。接着调用transfer函数发 送以太币。运行transfer会生成一个内部交易,把0.1 ETH保存到调用方的钱包中。这些就是在Etherscan 的“Internal Transactions”标签面上所显示的信息。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值