建议和反馈

请填写你的反馈内容

问答 > 以太坊 > 问答详情

我需要在Javascript中初始化具有钱包地址的人,然后将其传递给函数Solidity,但是我收到有关错误格式的错误。10LK

我的JavaScript功能

 $scope.myToken = accounts[0];
 $scope.initProviders = function(providersAddresses,providersAmount){
  alert(providersAddresses);
  contract.init(providersAddresses,providersAmount,$scope.myToken).call();
 };

并调用此函数

<md-button ng-click="initProviders('0x199fdf564df1d18056ed46724582502fd3ce580a',1)">INIT</md-button>

和Solidity代码

function init(address[] provAddrs, uint provCount,address mainAcc){
    clientAddr = mainAcc;
    for(uint i = 0;i<provCount;i++)
    {
        providers[i].profit = 0;
        providers[i].addr = provAddrs[0];
        provCount++;
    }}

但之后我有错误的无效地址


2019-09-10
0
请先登陆或注册

区块链社区2019-09-10

好吧,对于你所展示的代码,似乎合同首先缺乏初始化。

var contract = eth.contract([abi])
                     .new([array of params], 
                     {data:'0x...', from:[address], gas:47000, gasPrice: 37891200});

也许你的初始化缺乏'from:[address]'属性,这在发送合同时是必需的。

我想建议你尝试重新调用这个调用,浏览器可靠性或者在浏览器上使用web3调用这个结构,这个错误会在web3.js引发:3882 ...在那里放一个断点然后看看。


投一票
评论(0)
赞赏(0)

求助中

解决了这个问题,预计可以帮助到

  • 0
  • 0
  • 9
  • 0
  • 4
邀请

感谢您的善举,每一次解答会成为新人的灯塔,回答被采纳后获得20算力和相应的LK币奖励