本指南将深入探讨调用合约,交易,事件,过滤器和主题。
测试合约
以下智能合约是上一指南中multiply合约的更新版本:
contract test {
int _multiplier;
event Multiplied(int indexed a, address indexed sender, int result );
function test(int multiplier) {
_multiplier = multiplier;
}
function multiply(int a) returns (int r) {
r = a * _multiplier;
Multiplied(a, msg.sender, r);
return r;
}
}
智能合约现在是一个Multiplied事件。该事件将在日志中存储原始参数包括a,sender的地址和结果result。参数a和sender的地址都被编入索引,因此我们可以使用主题topic为这两个创建特定的过滤器filter。
部署合约
我们可以按如下方式部署合约:
var senderAddress = "0x12890d2cce102216644c59daE5baed380d84830c";
var password = "password";
var abi = @"[{
'constant':false,'inputs':[{
'name':'a','type':'int256'}],'name':'multiply','outputs':[{
'name':'r','type':'int256'}],'type':'function'},{
'inputs':[{
<

本教程详细介绍了如何使用C#进行以太坊智能合约调用、交易执行、事件处理以及过滤器和主题的使用。涉及合约部署、multiply交易操作、创建事件过滤器以及查询事件日志。还展示了如何通过DTO事件解码日志数据,并提供相关代码示例。
最低0.47元/天 解锁文章
4674

被折叠的 条评论
为什么被折叠?



