首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在固态中部署智能合约后调用智能合约的函数

在固态中部署智能合约后调用智能合约的函数
EN

Stack Overflow用户
提问于 2021-02-04 06:52:44
回答 2查看 675关注 0票数 2

我在可靠方面有简单的智能合约。我想在部署智能合约后调用函数getHello() (以便看到已部署合约中的变量,而不是自己调用它)。我能这么做吗?

代码语言:javascript
复制
    pragma solidity 0.5.12;

    contract Hello {
    
    string public helloStr = "Hello, world 2!";
    
    uint[] public nums = [10, 20, 30];
    
    function getHello() public view returns (string memory) {
        
        
        return helloStr;
        
    }
    
    function pushNewElement(uint newElement) public returns (uint) {
        
        nums.push(newElement);
        
    }
    
    function popLastElement () public returns (uint) {
        
        nums.pop();
        
    }
    
   
    function setHello(string memory newHello) public {
        
        
        helloStr = newHello;
        
    }
    
    
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-02-05 20:26:56

是的,在部署合约后,您将看到"hello world 2“,但您永远不会看到"newHello”输出。因为每当您使用setHello()函数时,它都会设置空字符串。

票数 0
EN

Stack Overflow用户

发布于 2021-02-04 14:41:10

为了获取公共变量,编译器自动生成函数。在这种情况下,您可以使用hash c660ab0e函数获取问候字符串

或者使用您的函数getHello()。

对于调用函数(例如,helloStr()),您应该使用:

{"jsonrpc":"2.0","method":"eth_call",“params”:{“to”:“填写您的智能合约地址”,"data":"0xc660ab0e"},"latest","id":1}

或者对call使用web3:

https://web3js.readthedocs.io/en/v1.2.0/web3-eth.html#call

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66036914

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档