2016-11-19 213 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 ...把​​一個斷點看看。

相關問題