時価総額: $2.145T 1.42%
ボリューム(24時間): $77.3554B -7.13%
恐怖と貪欲の指数:

14 - 極度の恐怖

  • 時価総額: $2.145T 1.42%
  • ボリューム(24時間): $77.3554B -7.13%
  • 恐怖と貪欲の指数:
  • 時価総額: $2.145T 1.42%
暗号
トピック
暗号化
ニュース
暗号造園
動画
トップクリプトスペディア

言語を選択する

言語を選択する

通貨の選択

暗号
トピック
暗号化
ニュース
暗号造園
動画

スマートコントラクトをどのように開発しますか?

A smart contract is a self-executing program on a blockchain that enforces agreement terms when conditions are met, ensuring trust and transparency.

2025/08/11 10:50

スマートコントラクトの基本を理解する

スマートコントラクトは、事前定義された条件が満たされたときに契約の条件を自動的に実施するブロックチェーンに展開される自己実行プログラムです。これらの契約は、展開されると不変であり、変更することはできません。これにより、信頼と透明性が保証されます。スマートコントラクトを開発するために最も広く使用されているプラットフォームは、 Solidityプログラミング言語をサポートするEthereumです。コードを作成する前に、地方分権化ガス料金取引の最終性などのコアブロックチェーンの概念を理解することが不可欠です。スマートコントラクトとのそれぞれの相互作用は、ブロックチェーンのネイティブトークン(例えば、イーサリアムのETH)で支払われるガスを消費します。開発者は、ユーザーのコストを最小限に抑えるために効率的に契約を設計する必要があります。

開発環境のセットアップ

スマートコントラクトの開発を開始するには、適切な開発環境を構成する必要があります。ほとんどのブロックチェーン開発ツールの前提条件であるnode.jsnpmをインストールすることから始めます。次に、2つの人気のあるイーサリアム開発フレームワークであるHardhatまたはTruffleをインストールします。このガイドでは、 Hardhatを使用します。

  • コマンドを使用してHardhatをインストールします: npm install --hardhat
  • 新しいプロジェクトの初期化: npx hardhat
  • プロンプトが表示されたら、「JavaScriptプロジェクトの作成」を選択します
  • 必要なプラグインをインストール: npm install --save-dev @nomicfoundation/hardhat-toolbox

また、構文の強調表示とエラー検出のSolidity拡張機能を備えたVisual Studioコードなどのコードエディターも必要です。さらに、ブラウザウォレットであるメタマスクをインストールして、テストネットワークと対話します。 AlchemyInfuraなどのサービスのエンドポイントを使用してカスタムRPCネットワークを追加することにより、 GoerliSepoliaなどのテストネットワークに接続するようにMetamaskを構成します。

最初のスマートコントラクトを堅実さで書く

contractsディレクトリ内にSimpleStorage.solという名前の新しいファイルを作成します。 Solidityバージョンを宣言することから始めます。

 // SPDX-License-Identifier: MIT pragma solidity ^0.8.0;

contractキーワードを使用して契約を定義します。

 contract SimpleStorage { uint256 private data; function setData(uint256 _data) public { data = _data; } function getData() public view returns (uint256) { return data; }

}

この契約には、タイプuint256の状態変数data 、その値を設定する機能、およびそれを取得する別の型が含まれます。 privateキーワードは、契約外から直接dataにアクセスできないことを保証します。 public機能は外部的に呼び出すことができます。 getDataview修飾子は、ブロックチェーン状態を変更しないことを示しており、外部から呼び出された場合にのみ読み取りのみでガスを使用できます。

スマートコントラクトのコンパイルとテスト

展開する前に、hardhatを使用して契約をコンパイルします。

  • ターミナルでnpx hardhat compileを実行します
  • 成功した場合、アーティファクトはartifactsフォルダーに表示されます

次に、 test DirectoryにテストスクリプトSimpleStorage.test.js作成します。

 const { expect } = require('chai'); const { ethers } = require('hardhat');説明( 'simplestorage'、function(){ それ( '正しい初期値を返す必要があります'、async function(){




const SimpleStorage = await ethers.getContractFactory('SimpleStorage'); const simpleStorage = await SimpleStorage.deploy(); await simpleStorage.deployed(); expect(await simpleStorage.getData()).to.equal(0);

});

それ( '保存された値を更新する必要があります'、async function(){

const simpleStorage = await ethers.getContractAt('SimpleStorage', /* deployed address */); await simpleStorage.setData(42); expect(await simpleStorage.getData()).to.equal(42);

}); });

テストの実行: npx hardhat test 。テスト出力が成功すると、契約ロジックが健全であることが確認されます。展開前にバグをキャッチするには、特に展開された契約が不可能であるため、テストは重要です。

契約をテストネットワークに展開します

deploy.jsという名前のscriptsフォルダーに展開スクリプトを作成します:

 const { ethers } = require('hardhat'); async function main(){ const simplestorage = await ethers.getContractFactory( 'Simplestorage'); const simplestorage = await simplestorage.deploy(); simplestorage.deployed();




console.log( '契約展開:'、simplestorage.address); }

main()。catch((error)=> { Console.Error(エラー); process.exitcode = 1; });

hardhat.config.jsを構成して、テストネットワークとウォレット資格情報を含めるようにします。

 require('@nomicfoundation/hardhat-toolbox'); const INFURA_API_KEY = 'your-infura-key'; const PRIVATE_KEY = 'your-wallet-private-key'; module.exports = { 堅牢性: '0.8.0'、 ネットワーク:{




goerli: { url: `https://goerli.infura.io/v3/${INFURA_API_KEY}`, accounts: [PRIVATE_KEY] }

} };

プレースホルダーを実際の値に置き換えます。次に、deploy: npx hardhat run scripts/deploy.js --network goerli 。成功すると、契約アドレスが表示されます。 Etherscanのようなブロックチェーンエクスプローラーでアドレスをチェックして、展開を確認します。

展開された契約との対話

展開後、 ethers.jsを使用して契約を操作するか、メタマスクを介して直接対話します。 node.jsスクリプトで:

 const { ethers } = require('hardhat'); const contractAddress = '0x...'; const contractABI = [ / ABI from artifacts / ]; async関数interace(){ const Provider = new Ethers.Providers.Web3Provider(window.ethereum); await provider.send( 'eth_requestaccounts'、[]); const signer = provider.getSigner(); const contract = new Ethers.Contract(ContractAddress、ContractAbi、Signer);




契約を待っています。SetData(100); const value = await Contract.getData(); console.log( 'current value:'、value.toString()); }

または、 EtherScanを使用して、ウォレットを接続し、[書き込み契約]タブを使用して契約に書き込みます。これが機能するために、ABIがEtherscanで検証されていることを確認してください。

よくある質問

堅牢性におけるSPDXライセンス識別子の目的は何ですか? SPDX-License-Identifierは、スマートコントラクトがリリースされるオープンソースライセンスを指定します。法的明確性と透明性のためにそれを含めることはベストプラクティスです。一般的なライセンスには、MIT、GPL、およびApache-2.0が含まれます。

堅牢性のエラーを処理するにはどうすればよいですか?使用する必要があり戻り断定されますrequire(condition, 'Error message')revert()手動で使用して実行することができます。 assert内部エラー用であり、残りのすべてのガスを消費します。

展開後にスマートコントラクトをアップグレードできますか?直接的な変更は不変のため不可能です。ただし、 UUP透過プロキシなどのプロキシパターンにより、データストレージを実行可能可能性ロジックから分離することにより、ロジックアップグレードが可能になります。これには、開発中の慎重な建築計画が必要です。

ガスの推定とは何ですか、そしてなぜそれが重要なのですか?ガスの推定では、トランザクションが消費するガスの量を予測します。ガス外のエラーを防ぎ、ユーザーがトランザクションコストを理解するのに役立ちます。 HardHatのようなツールは自動的にガスを推定しますが、複雑な機能にはestimateGas()を使用して手動チェックが必要になる場合があります。

免責事項:info@kdj.com

提供される情報は取引に関するアドバイスではありません。 kdj.com は、この記事で提供される情報に基づいて行われた投資に対して一切の責任を負いません。暗号通貨は変動性が高いため、十分な調査を行った上で慎重に投資することを強くお勧めします。

このウェブサイトで使用されているコンテンツが著作権を侵害していると思われる場合は、直ちに当社 (info@kdj.com) までご連絡ください。速やかに削除させていただきます。

関連知識

Bybit で BTC 取引を行う場合、リニア永久契約とインバース永久契約のどちらを選択すればよいですか?

Bybit で BTC 取引を行う場合、リニア永久契約とインバース永久契約のどちらを選択すればよいですか?

2026-06-06 02:54:55

契約決済の仕組み1. Bybit のリニア無期限契約は USDT で決済されます。これは、すべての損益計算、証拠金要件、清算閾値がステーブルコイン単位で表示されることを意味します。 2. 逆永久契約は BTC 自体で決済されるため、すべての取引はトレーダーの BTC 残高に直接影響します。利益があれ...

ストップハントやなりすましなどの先物市場操作を特定して回避するにはどうすればよいでしょうか?

ストップハントやなりすましなどの先物市場操作を特定して回避するにはどうすればよいでしょうか?

2026-06-07 14:20:10

Bitcoin 半減力学1. Bitcoin のプロトコルは、ブロック報酬が約 210,000 ブロックごとに半分になる固定発行スケジュールを強制します。 2. このイベントはおよそ 4 年ごとに発生し、流通する新しい BTC の数を直接減少させます。 3. マイナーは、2020 年の半減期の時点で...

Bybit で 1 日の最大損失を制限するリスク管理ルールを設定するにはどうすればよいですか?

Bybit で 1 日の最大損失を制限するリスク管理ルールを設定するにはどうすればよいですか?

2026-06-04 16:40:15

アカウントレベルの損失制限の設定1. 2 要素認証を使用して、Web またはモバイル アプリケーション経由で Bybit アカウントにログインします。 2. 「資産」セクションに移動し、左側のメニューから「リスク管理」を選択します。 3. 「日次損失制限」を選択し、機能をオンに切り替えてコントロール...

Binance でポートフォリオ証拠金モードを有効にして証拠金要件を減らすにはどうすればよいですか?

Binance でポートフォリオ証拠金モードを有効にして証拠金要件を減らすにはどうすればよいですか?

2026-06-05 04:59:43

Bitcoin 半減力学1. Bitcoin のプロトコルは、ブロック報酬が約 210,000 ブロックごとに半分になる固定発行スケジュールを強制します。 2. このイベントはおよそ 4 年ごとに発生し、ブロックごとに流通する新しい BTC の数を直接減少させます。 3. マイナーは、2020 年の...

オープン先物ポジションをクローズせずに Binance から Bybit に移行するにはどうすればよいですか?

オープン先物ポジションをクローズせずに Binance から Bybit に移行するにはどうすればよいですか?

2026-06-04 03:59:47

Bitcoin 半減力学1. Bitcoin のプロトコルは、ブロック報酬が約 210,000 ブロックごとに半分になる固定発行スケジュールを強制します。 2. このイベントはおよそ 4 年ごとに発生し、流通する新しい BTC の数を直接減少させます。 3. マイナーは、2020 年の半減期の時点で...

米国における仮想通貨先物取引の利益による税金への影響をどのように処理すればよいでしょうか?

米国における仮想通貨先物取引の利益による税金への影響をどのように処理すればよいでしょうか?

2026-05-29 18:19:59

Bitcoin 半減力学1. Bitcoin のプロトコルでは、ブロック報酬を通じて新しいユニットが導入され、2,100 万コインの固定供給上限が強制されます。 2. 210,000 ブロックごと、つまり約 4 年ごとに、ブロック報酬は半分に減ります。これは半減として知られるプロセスです。 3. 最...

Bybit で BTC 取引を行う場合、リニア永久契約とインバース永久契約のどちらを選択すればよいですか?

Bybit で BTC 取引を行う場合、リニア永久契約とインバース永久契約のどちらを選択すればよいですか?

2026-06-06 02:54:55

契約決済の仕組み1. Bybit のリニア無期限契約は USDT で決済されます。これは、すべての損益計算、証拠金要件、清算閾値がステーブルコイン単位で表示されることを意味します。 2. 逆永久契約は BTC 自体で決済されるため、すべての取引はトレーダーの BTC 残高に直接影響します。利益があれ...

ストップハントやなりすましなどの先物市場操作を特定して回避するにはどうすればよいでしょうか?

ストップハントやなりすましなどの先物市場操作を特定して回避するにはどうすればよいでしょうか?

2026-06-07 14:20:10

Bitcoin 半減力学1. Bitcoin のプロトコルは、ブロック報酬が約 210,000 ブロックごとに半分になる固定発行スケジュールを強制します。 2. このイベントはおよそ 4 年ごとに発生し、流通する新しい BTC の数を直接減少させます。 3. マイナーは、2020 年の半減期の時点で...

Bybit で 1 日の最大損失を制限するリスク管理ルールを設定するにはどうすればよいですか?

Bybit で 1 日の最大損失を制限するリスク管理ルールを設定するにはどうすればよいですか?

2026-06-04 16:40:15

アカウントレベルの損失制限の設定1. 2 要素認証を使用して、Web またはモバイル アプリケーション経由で Bybit アカウントにログインします。 2. 「資産」セクションに移動し、左側のメニューから「リスク管理」を選択します。 3. 「日次損失制限」を選択し、機能をオンに切り替えてコントロール...

Binance でポートフォリオ証拠金モードを有効にして証拠金要件を減らすにはどうすればよいですか?

Binance でポートフォリオ証拠金モードを有効にして証拠金要件を減らすにはどうすればよいですか?

2026-06-05 04:59:43

Bitcoin 半減力学1. Bitcoin のプロトコルは、ブロック報酬が約 210,000 ブロックごとに半分になる固定発行スケジュールを強制します。 2. このイベントはおよそ 4 年ごとに発生し、ブロックごとに流通する新しい BTC の数を直接減少させます。 3. マイナーは、2020 年の...

オープン先物ポジションをクローズせずに Binance から Bybit に移行するにはどうすればよいですか?

オープン先物ポジションをクローズせずに Binance から Bybit に移行するにはどうすればよいですか?

2026-06-04 03:59:47

Bitcoin 半減力学1. Bitcoin のプロトコルは、ブロック報酬が約 210,000 ブロックごとに半分になる固定発行スケジュールを強制します。 2. このイベントはおよそ 4 年ごとに発生し、流通する新しい BTC の数を直接減少させます。 3. マイナーは、2020 年の半減期の時点で...

米国における仮想通貨先物取引の利益による税金への影響をどのように処理すればよいでしょうか?

米国における仮想通貨先物取引の利益による税金への影響をどのように処理すればよいでしょうか?

2026-05-29 18:19:59

Bitcoin 半減力学1. Bitcoin のプロトコルでは、ブロック報酬を通じて新しいユニットが導入され、2,100 万コインの固定供給上限が強制されます。 2. 210,000 ブロックごと、つまり約 4 年ごとに、ブロック報酬は半分に減ります。これは半減として知られるプロセスです。 3. 最...

すべての記事を見る

User not found or password invalid

Your input is correct