1

私は Mix IDE とイーサリアム (具体的にはソリディティ) に少し慣れていないので、素朴な質問があります。Web ページの JavaScript コードは、どのようにしてコントラクト コードに「結び付けられる」のですか? 値を受け取る単純な Web ページを作成しましたが、JavaScript が実際のコントラクトに値を渡すことができないようです。正確なエラー行は次のとおりです。

var result = contracts["MyFirstContract"].contract.reportUser("foo");

Mixが私に与えている正確なエラーは次のとおりです。

「キャッチされていない TypeError: 未定義のプロパティ 'contract' を読み取ることができません。」

したがって、契約["MyFirstContract"]をnilと見なしているようです

ただし、MyFirstContract.sol ファイルは存在します。javascript は、私が話しているコントラクト ファイルをどのように認識しますか? ドキュメントには表示されていないようですが、何か不足している可能性があります。

4

1 に答える 1

1

私は何が間違っているかを理解しました。JavaScript コードが .col ファイルに直接アクセスしていないようです。実際の .col ファイルではなく、ブロックチェーンからコントラクト コードを直接取得します。したがって、コントラクトをコンパイルしてブロックチェーンにアップロードする必要があります。

トランザクションをテスト ブロックチェーンに追加する必要があります。Mix IDE では、[右側のビュー] ペインにある [トランザクションの追加] ボタンを押す必要があります (F7 を押すと、[右側のビュー] ペインが表示されます)。ダイアログ ボックスが開いたら、[Create Contract] ラジオ ボタンを押して、プルダウン メニューから作成したコントラクトを選択します。[OK] を押すと、Mix は契約コードを含むトランザクションを作成します。次に、JavaScript を試してみてください。動作するはずです。

于 2016-02-16T07:06:24.350 に答える