我试图得到一个变量的值在一个智能合约使用实用性,geth和web3j。
HelloWorld合同非常简单:
pragma solidity ^0.6.10;
contract HelloWorld {
uint256 public counter = 5;
function add() public { //increases counter by 1
counter++;
}
function subtract() public { //decreases counter by 1
counter--;
}
function getCounter() public view returns (uint256) {
return counter;
}
}
web3j没有call()函数,只有send()函数,这令人惊讶。
当我试着按照web3j说明获得计数器时:
contract.getCounter().send()
我得到的是交易收据,而不是uint256的值。
有人能帮忙吗?
非常感谢。
威尔
您需要在生成的HelloWorld中修改getCounter()函数。java文件。
public RemoteCall<Type> getCounter() {
final Function function = new Function(
FUNC_GETCOUNTER,
Arrays.<Type>asList(),
Arrays.<TypeReference<?>>asList(new TypeReference<Uint>() {}));
return executeRemoteCallSingleValueReturn(function);
}
要获取值,请使用以下代码:
Type message = contract.getCounter().send();
System.out.println(message.getValue());
指导编写一个EOSIO的智能合约 模块 Account API 查询账户数据的API. Chain API 查询链内部状态的API. Database API 存储和检索EOS.IO区块链的数据API根据以下广泛结构来组织数据. Math API 定义常用的数学函数. Action API 定义用于查询操作属性的API. Memory API 定义常用的记忆功能. Console API 使应用程
编程语言 使用golang作为编程语言(对部分关键字限制,以保证处理的有序性),而不是重新创造编程语言。 golang是一个简单、易用的编程语言,它有完善的帮助文档和开发工具。 它是强类型校验,编译阶段就能够校验发现很多bug。 它是模块化的,本系统能够简单屏蔽外部功能,使智能合约处在简单可预期的环境中。 已经有大量的golang开发人员,他们如果要开发智能合约,非常容易上手。 智能合约的分类 公
介绍 EOSIO 智能合约 编写智能合约需要的必备技能 C / C++ 相关 基于 EOSIO 的块链使用的是 WebAssembly(http://webassembly.org/) (WASM) 来执行用户编写的智能合约。WASM 是一种新兴的 Web 标准,广泛支持于谷歌、微软、苹果等。对编写 WASM 标准的智能合约来说使用 clang/llvm(https://clang.llvm.or
原文:http://zeppelin-solidity.readthedocs.io/en/latest/bounty.html 这个例子结合了Truffle框架,如果你不知道如何集成,可以先看看,还挺方便的:http://me.tryblockchain.org/obust-smart-contracts-with-openzeppelin.html 要为你的合约创建一个赏金项目。需要继承父类B
StandardToken继承的父类方法,相比StandardToken,这个类只提供基础功能,而StandardToken允许授权给其它人额度来转发代币。 balanceOf(address _owner) constant returns (uint balance) 返回传入地址的余额。 function balanceOf(address _owner) constant returns
基于FirstBlood的代码:原始的firstBlood的代码在这里。 继承了合约SafeMath,实现了ERC20标准(标准参见:https://github.com/ethereum/EIPs/issues/20)。 原文地址:http://zeppelin-solidity.readthedocs.io/en/latest/standardtoken.html 源码地址:https://g