2016-11-19 208 views
1

我有一个问题。我需要在Javascript中初始化具有钱包地址的人,然后将其传递给函数Solidity,但是我得到了有关错误格式的错误。错误的格式:无效的地址

我的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> 

和坚固码

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++; 
    } 
} 

但在那之后我有错误无效地址

+0

欢迎! [Ethereum StackExchange](http://ethereum.stackexchange.com)将有更多的人能够回答这个问题。 (我会回答但不知道。) – eth

+0

对象“契约”在哪里?你的函数“init”并不显示它是如何成为“合约”对象的一部分。另外,你正在使用Typescript? “address []”是无效的Javascript。显示更多的代码,并提供确切的错误。 – SoEzPz

回答

1

嗯,我对于你所显示的代码,看起来合同缺乏初始化。

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

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

我想推荐你试试这个debbuging电话,与浏览器的坚固性或致电上使用浏览器或东西WEB3这种结构,这个错误是在web3.js抛出:3882 ...把​​一个断点看看。

相关问题