区块链开发之Solidity编程基础(四)合约事件

事件

事件是以太坊虚拟机(EVM)日志基础设施提供的一个便利接口。用于获取当前发生的事件。

事件和日志有三个用途:

  • 智能合约返回值给用户接口
  • 异步的带数据的触发器
  • 一种比较便宜的存储

智能合约返回值给用户接口

我们可以在 dapp 的用户界面中监听事件,EVM 的日志机制可以反过来“调用”用来监听事件的 Javascript 回调函数。

contract ExampleContract {
   
	//一些状态变量
	function foo(int256 value) returns (int256) {
   
		//改变状态
		return value;
	}
}

假设exampleContract就是ExampleContract的一个实例,一个前端使用web3.js,通过模拟函数的执行可以获得返回值:

	var returnValue = exampleContract.foo.call(2);
	console.log(returnValue);

但是一旦提交合约调用成为一个交易,则无法得到返回值

	var returnValue = exampleContract.foo.sendTransaction(2,{
   from: web3.eth.coinbase});
	//交易的话,这里应该是一个交易哈希值
	console.log(returnValue);

sendTransa

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值