微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Flutter&Ethereum:未处理的异常:RangeError:值不在范围内:32

如何解决Flutter&Ethereum:未处理的异常:RangeError:值不在范围内:32

我正在尝试使用Flutter和Ethereum创建一个简单的去中心化应用程序。但是我一直在遇到这个错误。运行正常。请看看我的代码和我的错误

我使用:

  • 扑扑
  • 以太坊混音
  • MetaMask => Rinkeby
  • Infua.io

问题:为什么会出现RangerError?

固体

pragma solidity 0.6.6;

    contract PKCoin{
        int balance;
        
        constructor() public {
            balance = 0;
        }
        
        function getBalance() view public returns(int) {
            return balance;
        }
        
        function depositBalance(int amount) public {
            balance = balance + amount;
        }
        
        function withdrawBalance(int amount) public {
            balance = balance - amount;
        }
    }

颤振

@override
  void initState() {
    super.initState();
    httpClient = Client();
    // print(httpClient);
    ethClient = Web3Client(
        "https://rinkeby.infura.io/v3/b2a9d5831e3b4675a51144cfed03bafa",httpClient);
    getBalance(myAddress);
  }

  Future<DeployedContract> loadContract() async {
    String abi = await rootBundle.loadString("assets/abi.json");
    String contractAddress = "0xd9145CCE52D386f254917e481eB44e9943F39138";

    final contract = DeployedContract(ContractAbi.fromJson(abi,"PKCoin"),EthereumAddress.fromHex(contractAddress));

    return contract;
  }

  // ==== This is to get the information only ==== //
  // ==== Get method ==== //

  Future<List<dynamic>> query(String functionName,List<dynamic> args) async {
    //
    final contract = await loadContract();
    final ethFunction = contract.function(functionName);
    
    // This line below doesn't work. 
    final result = await ethClient.call(
        contract: contract,function: ethFunction,params: args);

    // print(result.toString());
    return result;
  }

  Future<void> getBalance(String targetAddress) async {
    // EthereumAddress address = EthereumAddress.fromHex(targetAddress);
    List<dynamic> result = await query("getBalance",[]);
    print('In getGreeting');
    print(result[0]);

    setState(() {
      myData = result[0];
      data = true;
    });
  }

错误

Performing hot restart...                                               
Restarted application in 950ms.
E/Flutter (28032): [ERROR:Flutter/lib/ui/ui_dart_state.cc(177)] Unhandled Exception: RangeError: Value not in range: 32
E/Flutter (28032): #0      _rangeCheck (dart:typed_data-patch/typed_data_patch.dart:4807:5)
E/Flutter (28032): #1      _ByteBuffer.asUint8List (dart:typed_data-patch/typed_data_patch.dart:1940:5)
E/Flutter (28032): #2      _IntTypeBase.decode (package:web3dart/src/contracts/abi/integers.dart:23:31)
E/Flutter (28032): #3      TupleType.decode (package:web3dart/src/contracts/abi/tuple.dart:102:29)
E/Flutter (28032): #4      ContractFunction.decodeReturnValues (package:web3dart/src/contracts/abi/abi.dart:255:30)
E/Flutter (28032): #5      Web3Client.call (package:web3dart/src/core/client.dart:310:21)
E/Flutter (28032): <asynchronous suspension>
E/Flutter (28032): #6      _MyHomePageState.query (package:greeting_blockchain/main.dart:70:36)
E/Flutter (28032): <asynchronous suspension>
E/Flutter (28032): #7      _MyHomePageState.getBalance (package:greeting_blockchain/main.dart:79:34)
E/Flutter (28032): #8      _MyHomePageState.initState (package:greeting_blockchain/main.dart:48:5)
E/Flutter (28032): #9      StatefulElement._firstBuild (package:Flutter/src/widgets/framework.dart:4765:58)
E/Flutter (28032): #10     ComponentElement.mount (package:Flutter/src/widgets/framework.dart:4601:5)
E/Flutter (28032): #11     Element.inflateWidget (package:Flutter/src/widgets/framework.dart:3569:14)
E/Flutter (28032): #12     Element.updateChild (package:Flutter/src/widgets/framework.dart:3327:18)
E/Flutter (28032): #13     SingleChildRenderObjectElement.mount (package:Flutter/src/widgets/framework.dart:6118:14)
E/Flutter (28032): #14     Element.inflateWidget (package:Flutter/src/widgets/framework.dart:3569:14)
E/Flutter (28032): #15     Element.updateChild (package:Flutter/src/widgets/framework.dart:3327:18)
E/Flutter (28032): #16     ComponentElement.performRebuild (package:Flutter/src/widgets/framework.dart:4652:16)
E/Flutter (28032): #17     Element.rebuild (package:Flutter/src/widgets/framework.dart:4343:5)
E/Flutter (28032): #18     ComponentElement._firstBuild (package:Flutter/src/widgets/framework.dart:4606:5)
E/Flutter (28032): #19     ComponentElement.mount (package:Flutter/src/widgets/framework.dart:4601:5)
E/Flutter (28032): #20     Element.inflateWidget (package:Flutter/src/widgets/framework.dart:3569:14)
E/Flutter (28032): #21     Element.updateChild (package:Flutter/src/widgets/framework.dart:3327:18)
E/Flutter (28032): #22     SingleChildRenderObjectElement.mount (package:Flutter/src/widgets/framework.dart:6118:14)
E/Flutter (28032): #23     Element.inflateWidget (package:Flutter/src/widgets/framework.dart:3569:14)
E/Flutter (28032): #24     Element.updateChild (package:Flutter/src/widgets/framework.dart:3327:18)
E/Flutter (28032): #25     SingleChildRenderObjectElement.mount (package:Flutter/src/widgets/framework.dart:6118:14)
E/Flutter (28032): #26     Element.inflateWidget (package:Flutter/src/widgets/framework.dart:3569:14)
E/Flutter (28032): #27     Element.updateChild (package:Flutter/src/widgets/framework.dart:3327:18)
E/Flutter (28032): #28     ComponentElement.performRebuild (package:Flutter/src/widgets/framework.dart:4652:16)
E/Flutter (28032): #29     StatefulElement.performRebuild (package:Flutter/src/widgets/framework.dart:4800:11)
E/Flutter (28032): #30     Element.rebuild (package:Flutter/src/widgets/framework.dart:4343:5)
E/Flutter (28032): #31     ComponentElement._firstBuild (package:Flutter/src/widgets/framework.dart:4606:5)
E/Flutter (28032): #32     StatefulElement._firstBuild (package:Flutter/src/widgets/framework.dart:4791:11)
E/Flutter (28032): #33     ComponentElement.mount (package:Flutter/src/widgets/framework.dart:4601:5)
E/Flutter (28032): #34     Element.inflateWidget (package:Flutter/src/widgets/framework.dart:3569:14)
E/Flutter (28032): #35     Element.updateChild (package:Flutter/src/widgets/framework.dart:3327:18)
E/Flutter (28032): #36     SingleChildRenderObjectElement.mount (package:Flutter/src/widgets/framework.dart:6118:14)
E/Flutter (28032): #37     Element.inflateWidget (package:Flutter/src/widgets/framework.dart:3569:14)
E/Flutter (28032): #38     Element.updateChild (package:Flutter/src/widgets/framework.dart:3327:18)
E/Flutter (28032): #39     SingleChildRenderObjectElement.mount (package:Flutter/src/widgets/framework.dart:6118:14)
E/Flutter (28032): #40     Element.inflateWidget (package:Flutter/src/widgets/framework.dart:3569:14)
E/Flutter (28032): #41     Element.updateChild (package:Flutter/src/widgets/framework.dart:3327:18)
E/Flutter (28032): #42     ComponentElement.performRebuild (package:Flutter/src/widgets/framework.dart:4652:16)
E/Flutter (28032): #43     StatefulElement.performRebuild (package:Flutter/src/widgets/framework.dart:4800:11)
E/Flutter (28032): #44     Element.rebuild (package:Flutter/src/widgets/framework.dart:4343:5)
E/Flutter (28032): #45     ComponentElement._firstBuild (package:Flutter/src/widgets/framework.d

结论 请看一下我的代码,很期待看到您的所有答案。预先谢谢你。

解决方法

取消注释 //EthereumAddress address = EthereumAddress.fromHex(targetAddress);

  Future<void> getBalance(String targetAddress) async {
EthereumAddress address = EthereumAddress.fromHex(targetAddress);
List<dynamic> result = await query("getBalance",[]);
print('In getGreeting');
print(result[0]);

setState(() {
  myData = result[0];
  data = true;
});

}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?