2016-08-22 8 views
0

私はethereum契約のABI文字列をC#で受け取り、それを使ってnethereumを使ってスマートコントラクトとやり取りすることができる関数を呼び出しています。より小さなABIストリングを使用すると、動作させることができますが、何らかの理由で、この長いストリングや小さなABIの長さを超える他のABIでは動作しません。ABI文字列が機能しない

タイプの例外「Newtonsoft.Json.JsonReaderException」:私は、下のコードをコンパイルするとき、私は(私はJSONをデシリアライズを試してみましたが、それはまだ同じエラーになります念頭に置いて裸)エラーメッセージを取得しますNewtonsoft.Json.dllで発生しましたが、ユーザーコードで処理されませんでした。

追加情報:予期せぬ文字が発生しました:t。パス '[0] .outputs [0] .nameの'、行3、ポジションこれは質問に答えると私の質問に20

protected void init() 
{ 
    web3 = new Nethereum.Web3.Web3(); 

    string abi = @"[{'constant':false,'inputs':[{'name':'username','type':'string'}, 
    {'name':'location','type':'string'}],'name':'addUser','outputs': 
    [{'name':','type':'string'}],'type':'function'},{'constant':false,'inputs' 
    :[],'name':'burnCoins','outputs':[{'name':','type':'uint256'}],'type':'function'}, 
    {'constant':false,'inputs':[{'name':'vendor','type':'address'}, 
    {'name':'recipient','type':'address'}],'name':'trade','outputs':[], 
    'type':'function'},{'constant':false,'inputs':[{'name':'vendor','type':'address'}, 
    {'name':'isPositive','type':'bool'},{'name':'message','type':'string'}], 
    'name':'giveReputation','outputs':[],'type':'function'},{'constant':false,'inputs': 
    [{'name':'user','type':'address'}],'name':'showBurnedCoins','outputs':[{'name': 
    ','type':'uint256'}],'type':'function'},{'constant':false,'inputs':[{'name':'user', 
    'type':'address'}],'name':'viewReputation','outputs':[{'name':','type':'uint256'}, 
    {'name':','type':'uint256'},{'name':','type':'uint256'}],'type':'function'}, 
    {'anonymous':false,'inputs':[{'indexed':true,'name':'user','type':'address'}, 
    {'indexed':true,'name':'amountBurned','type':'uint256'}],'name':'_coinsBurned', 
    'type':'event'},{'anonymous':false,'inputs':[{'indexed':true,'name':'user', 
    'type':'address'},{'indexed':true,'name':'message','type':'string'}],' 
    name':'_positiveReputation','type':'event'},{'anonymous':false,'inputs' 
    :[{'indexed':true,'name':'user','type':'address'},{'indexed':true,'name':'message' 
    ,'type':'string'}],'name':'_negativeReputation','type':'event'}, 
    {'anonymous':false,'inputs':[{'indexed':true,'name':'username','type':'string'}, 
    {'indexed':true,'name':'location','type':'string'},{'indexed':true,'name': 
    'user','type':'address'}],'name':'_addUser','type':'event'},{'anonymous':false, 
    'inputs':[{'indexed':true,'name':'vendor','type':'address'},{'indexed':true, 
    'name':'buyer','type':'address'}],'name':'_newTrade','type':'event'},{'anonymous': 
    false,'inputs':[{'indexed':true,'name':'user','type':'address'},{'indexed':true, 
    'name':'positive','type':'uint256'},{'indexed':true,'name':'negative','type':'uint256'}, 
    {'indexed':false,'name':'total','type':'uint256'}],'name':'_viewedReputation', 
    'type':'event'}]"; 

    string contractAddress = "0xd53c3dc2f3fcf1779b68ea8e441d857b4af5a413"; 
    Reputation = web3.Eth.GetContract(abi, contractAddress); 
} 
+1

エラーは '' name ':' showBurnedCouns '、' outputs 'という行のためです:[{' name ':'、 'type': 'uint256'}] '。 '' 'は' outputs'ブロックの中にありません。 –

+0

@diiN_あなたのコメントを回答として投稿して、この質問が整理され、評判が得られるようにしてください。 – eth

答えて

0

参照diiN_コメント。愚かな私!私のコメントから

0

エラーは、ライン'name':'showBurnedCouns', 'outputs':[{'name':','type':'uint256'}]です。 'が出力ブロック内にありません。

関連する問題