-
bitcoin $87959.907984 USD
1.34% -
ethereum $2920.497338 USD
3.04% -
tether $0.999775 USD
0.00% -
xrp $2.237324 USD
8.12% -
bnb $860.243768 USD
0.90% -
solana $138.089498 USD
5.43% -
usd-coin $0.999807 USD
0.01% -
tron $0.272801 USD
-1.53% -
dogecoin $0.150904 USD
2.96% -
cardano $0.421635 USD
1.97% -
hyperliquid $32.152445 USD
2.23% -
bitcoin-cash $533.301069 USD
-1.94% -
chainlink $12.953417 USD
2.68% -
unus-sed-leo $9.535951 USD
0.73% -
zcash $521.483386 USD
-2.87%
Ethereumスマートコントラクトを書く方法は? Ethereumスマートコントラクトの例
Ethereum smart contracts are self-executing agreements written in code, automatically enforcing terms when conditions are met.
2025/06/15 23:56
Ethereum Smart Contractsの理解
Ethereumスマート契約は、コードのラインに直接書かれた契約の条件との自己執行契約です。これらの契約は、Ethereum Virtual Machine(EVM)で実行され、所定の条件が満たされたときに自動的に実行されます。スマートコントラクトを作成するには、ソリティなどの特定のプログラミング言語を使用することが含まれます。これは、イーサリアム開発に最も一般的に使用される言語です。
スマートコントラクトは展開すると不変です。つまり、ブロックチェーンに公開された後に変更することはできません。この特性により、展開前にコードが徹底的にテストされるようにすることが重要になります。また、開発者は、スマートコントラクトを書く際に、ガスコスト、機能の可視性、セキュリティベストプラクティスを考慮する必要があります。
開発環境を設定します
Ethereumスマートコントラクトを書く前に、適切な開発環境を設定する必要があります。方法は次のとおりです。
- まだインストールされていない場合は、 node.jsとnpmをインストールします。
- NPMを使用して、人気のあるイーサリアム開発フレームワークであるトリュフをインストールします。
npm install -g truffle - Ethereum開発のための個人的なブロックチェーンであるGanacheをインストールして、トランザクションをシミュレートし、契約をローカルでテストします。
- ブラウザ拡張ウォレットであるメタマスクをセットアップして、テストネットまたはメインネットで展開した契約と対話します。
- Visual Studioコードなどのコードエディターを選択し、構文の強調表示とエラー検出用のSolidity拡張機能をインストールします。
これらのツールが整ったら、スマートコントラクトの書き込みとテストを開始できます。
最初のスマートコントラクトを堅実さで書く
番号を保存および取得する簡単なストレージ契約を作成しましょう。以下は、堅実さで書かれた基本的な例です。
pragma solidity ^0.8.0;契約simplestorage {uint storedData; function set(uint x) public { storedData = x; } function get() public view returns (uint) { return storedData; }}
この例では:
-
pragma solidity ^0.8.0;行は、使用される堅牢性のバージョンを指定します。 - 状態変数の
storedData、署名されていない整数を保持すると宣言されています。 -
set()関数を使用すると、誰でもstoredDataの値を更新できます。 -
get()関数は、契約状態を変更せずに現在の値を返すビュー関数です。
各関数と変数は、パブリック、プライベート、または内部などの適切な可視性修飾子で明確に定義する必要があります。
スマートコントラクトのコンパイルと展開
トリュフとガナッシュを使用して上記の契約をコンパイルして展開するには、次の手順に従ってください。
新しいトリュフプロジェクトを作成します:
truffle initSolidityファイルを
contractsディレクトリ内に配置します。migrationsフォルダーで、次のコンテンツで移行スクリプト(2_deploy_contracts.js)を作成します。const SimpleStorage = artifacts.require('SimpleStorage');module.exports = function(deplayer){ deployer.deploy(simplestorage); };契約を編集します:
truffle compileGanacheを起動し、
truffle-config.jsでネットワーク設定を構成します。契約をローカルブロックチェーンに展開します。
truffle migrate
展開後、 Truffle Consoleを使用して、またはFrontendアプリケーションでWeb3.jsまたはEthers.jsライブラリを使用して契約と対話できます。
スマートコントラクトのテスト
テストにより、さまざまなシナリオで契約が予想どおりに動作するようになります。 Truffleは、JavaScriptまたはSolidity自体を使用した単体テストの組み込みサポートを提供します。
これは、 testディレクトリにあるJavaScriptベースのテストの例です。
const SimpleStorage = artifacts.require('SimpleStorage');契約( 'Simplestorage'、Accounts => { それ( '値42'を保存する必要があります、async()=> {const instance = await SimpleStorage.deployed(); await instance.set(42, { from: accounts[0] }); const result = await instance.get.call(); assert.equal(result, 42);}); });
このテスト:
- 契約インスタンスを展開します。
- 値42で
set()関数を呼び出します。 - 使用して、保存された値が予想される出力と一致することを確認するために
assert。
特に複雑なロジック、アクセス制御、または財務業務を扱う場合は、常にエッジケースのテストを作成します。
よくある質問
Q:イーサリアムスマートコントラクト開発のためにトリュフ以外にどのようなツールが必要ですか?契約を編集、展開、テストするために、トリュフの代替としてHardhatを使用できます。さらに、 Remix IDEは、ローカル環境をセットアップせずに小さな契約をすばやく書き、テストしたい初心者に最適なブラウザベースのツールです。
Q:展開されたEthereumスマートコントラクトを変更できますか?いいえ、イーサリアムスマートコントラクトは展開すると不変です。変更が必要な場合は、開発者は契約の新しいバージョンを展開し、必要に応じてデータを移行する必要があります。ただし、プロキシ契約のようなパターンを使用して、アップグレード可能な動作を実現できます。
Q:イーサリアムにスマートコントラクトを展開するのにどれくらいの費用がかかりますか?コストは、契約の複雑さとネットワーク上の現在のガス価格に依存します。 Remix IDEなどのツールを使用して、または展開中にメタマスクのトランザクションの詳細を確認することにより、ガスコストを見積もることができます。より複雑な契約はより多くのガスを消費するため、より多くの費用がかかります。
Q:生産用に私自身のスマートコントラクトを書いても安全ですか?スマートコントラクトを書くことを学ぶことは貴重ですが、それらを生産に展開するには、徹底的なセキュリティ監査と広範なテストが必要です。ベストプラクティスに従い、 Openzeppelinなどの定評のあるライブラリを使用し、実際の資金を処理する契約を開始する前に経験豊富な監査人に相談することをお勧めします。
免責事項:info@kdj.com
提供される情報は取引に関するアドバイスではありません。 kdj.com は、この記事で提供される情報に基づいて行われた投資に対して一切の責任を負いません。暗号通貨は変動性が高いため、十分な調査を行った上で慎重に投資することを強くお勧めします。
このウェブサイトで使用されているコンテンツが著作権を侵害していると思われる場合は、直ちに当社 (info@kdj.com) までご連絡ください。速やかに削除させていただきます。
- ビットコイン、eCash フォーク、Airdrop のダイナミクス: 暗号通貨の最新の論争を深く掘り下げる
- 2026-05-03 12:55:01
- コンセンサス 2026 マイアミ: Web3、ブロックチェーン、暗号通貨、NFT、メタバース、カンファレンス、5 月 5 日 — ウォール街とデジタル フロンティアが出会う場所
- 2026-05-02 12:45:01
- FRBが金利を据え置き、地政学的な緊張の中、ビットコイン価格の下落を引き起こす
- 2026-05-01 06:45:01
- ビットコインマイナーが送電網を電化:オハイオ州のガス工場買収がデジタルゴールドの新時代を加速
- 2026-05-01 00:45:01
- MegaETH の MEGA トークンがビッグアップルに到達: リアルタイム ブロックチェーンの新しいパフォーマンス ベンチマークを設定
- 2026-05-01 00:55:01
- ソラナの滑りやすい坂道: 価格予測は抵抗力の損失とさらなる下落の可能性を示している
- 2026-05-01 06:45:01
関連知識
モジュラーブロックチェーンとは何ですか? (建築の基礎)
2026-04-16 12:39:57
モジュラーブロックチェーンとは何ですか? 1. モジュラーブロックチェーンは、コアブロックチェーン機能を個別の相互運用可能なレイヤーに意図的に分離するアーキテクチャパラダイムです。 2. 実行、コンセンサス、データの可用性、決済がすべて同じチェーン上で行われるモノリシック チェーンとは異なり、モジュ...
偽の仮想通貨ウェブサイトを見分ける方法は? (不正検知)
2026-04-16 13:19:40
ドメイン名分析1. 正規の暗号通貨プラットフォームは、クリーンで覚えやすいドメイン名を使用します。多くの場合、標準的なラテン文字でブランド名やコア サービスが組み込まれています。 2. 偽サイトは、「o」を「0」に、「l」を「1」に、「I」を「|」に置き換えるなど、視覚的に欺瞞的な置換を頻繁に展開し...
ブロックチェーンにおけるオラクルとは何ですか? (外部データ)
2026-04-11 03:59:39
定義とコア機能1. ブロックチェーンにおける Oracle は、スマート コントラクトに外部データを提供する信頼できるサードパーティ サービスです。 2. オンチェーン ロジックと、API、データベース、Web フィード、IoT デバイスなどのオフチェーン情報ソースの間のブリッジとして機能します。 ...
トランザクション ハッシュ (TxID) を解釈するにはどうすればよいですか? (支払証明書)
2026-04-10 23:19:44
トランザクションハッシュとは何ですか? 1. TxID またはトランザクション ID とも呼ばれるトランザクション ハッシュは、ブロックチェーン トランザクションのシリアル化されたデータに暗号化ハッシュ関数を適用することによって生成される一意の英数字の文字列です。 2. 各トランザクションの不変のフ...
ゲームファイとは何ですか? (プレイ・トゥ・アーンの基本)
2026-04-13 11:00:17
定義とコアアーキテクチャ1. GameFi はゲームと金融の融合を表し、完全にパブリック ブロックチェーン インフラストラクチャ上に構築されています。 2. ステーキング、流動性供給、イールドファーミング、ガバナンス投票などの分散型金融プリミティブをインタラクティブなゲームメカニズムに直接埋め込みま...
NFTマーケットプレイスの使い方は? (売買)
2026-04-19 12:40:30
Web3 ウォレットのセットアップ1. 公式ブラウザ拡張機能またはモバイルアプリ経由で MetaMask または Trust Wallet をインストールします。 2. 新しいウォレットを作成し、12 単語のリカバリ フレーズをオフラインで安全に保存します。 3. ガス料金をカバーするために、ネイテ...
モジュラーブロックチェーンとは何ですか? (建築の基礎)
2026-04-16 12:39:57
モジュラーブロックチェーンとは何ですか? 1. モジュラーブロックチェーンは、コアブロックチェーン機能を個別の相互運用可能なレイヤーに意図的に分離するアーキテクチャパラダイムです。 2. 実行、コンセンサス、データの可用性、決済がすべて同じチェーン上で行われるモノリシック チェーンとは異なり、モジュ...
偽の仮想通貨ウェブサイトを見分ける方法は? (不正検知)
2026-04-16 13:19:40
ドメイン名分析1. 正規の暗号通貨プラットフォームは、クリーンで覚えやすいドメイン名を使用します。多くの場合、標準的なラテン文字でブランド名やコア サービスが組み込まれています。 2. 偽サイトは、「o」を「0」に、「l」を「1」に、「I」を「|」に置き換えるなど、視覚的に欺瞞的な置換を頻繁に展開し...
ブロックチェーンにおけるオラクルとは何ですか? (外部データ)
2026-04-11 03:59:39
定義とコア機能1. ブロックチェーンにおける Oracle は、スマート コントラクトに外部データを提供する信頼できるサードパーティ サービスです。 2. オンチェーン ロジックと、API、データベース、Web フィード、IoT デバイスなどのオフチェーン情報ソースの間のブリッジとして機能します。 ...
トランザクション ハッシュ (TxID) を解釈するにはどうすればよいですか? (支払証明書)
2026-04-10 23:19:44
トランザクションハッシュとは何ですか? 1. TxID またはトランザクション ID とも呼ばれるトランザクション ハッシュは、ブロックチェーン トランザクションのシリアル化されたデータに暗号化ハッシュ関数を適用することによって生成される一意の英数字の文字列です。 2. 各トランザクションの不変のフ...
ゲームファイとは何ですか? (プレイ・トゥ・アーンの基本)
2026-04-13 11:00:17
定義とコアアーキテクチャ1. GameFi はゲームと金融の融合を表し、完全にパブリック ブロックチェーン インフラストラクチャ上に構築されています。 2. ステーキング、流動性供給、イールドファーミング、ガバナンス投票などの分散型金融プリミティブをインタラクティブなゲームメカニズムに直接埋め込みま...
NFTマーケットプレイスの使い方は? (売買)
2026-04-19 12:40:30
Web3 ウォレットのセットアップ1. 公式ブラウザ拡張機能またはモバイルアプリ経由で MetaMask または Trust Wallet をインストールします。 2. 新しいウォレットを作成し、12 単語のリカバリ フレーズをオフラインで安全に保存します。 3. ガス料金をカバーするために、ネイテ...
すべての記事を見る














