-
bitcoin $75929.686266 USD
0.79% -
ethereum $2243.026937 USD
1.17% -
tether $0.998697 USD
0.01% -
bnb $693.877219 USD
1.01% -
xrp $1.170044 USD
-1.17% -
usd-coin $0.999860 USD
0.01% -
solana $90.118416 USD
0.78% -
tron $0.318352 USD
-0.01% -
zcash $1315.397863 USD
4.84% -
hyperliquid $79.160002 USD
2.33% -
monero $612.690540 USD
-0.54% -
dogecoin $0.071934 USD
0.77% -
unus-sed-leo $9.338417 USD
0.15% -
chainlink $10.857476 USD
1.48% -
cardano $0.184797 USD
1.10%
スマートコントラクトをどのように開発しますか?
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.jsとnpmをインストールすることから始めます。次に、2つの人気のあるイーサリアム開発フレームワークであるHardhatまたはTruffleをインストールします。このガイドでは、 Hardhatを使用します。
- コマンドを使用してHardhatをインストールします:
npm install --hardhat - 新しいプロジェクトの初期化:
npx hardhat - プロンプトが表示されたら、「JavaScriptプロジェクトの作成」を選択します
- 必要なプラグインをインストール:
npm install --save-dev @nomicfoundation/hardhat-toolbox
また、構文の強調表示とエラー検出のSolidity拡張機能を備えたVisual Studioコードなどのコードエディターも必要です。さらに、ブラウザウォレットであるメタマスクをインストールして、テストネットワークと対話します。 AlchemyやInfuraなどのサービスのエンドポイントを使用してカスタムRPCネットワークを追加することにより、 GoerliやSepoliaなどのテストネットワークに接続するように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機能は外部的に呼び出すことができます。 getDataのview修飾子は、ブロックチェーン状態を変更しないことを示しており、外部から呼び出された場合にのみ読み取りのみでガスを使用できます。
スマートコントラクトのコンパイルとテスト
展開する前に、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) までご連絡ください。速やかに削除させていただきます。
- PowerX One は CertiK KYC で信頼を強化し、世界的な規制が進化する中でセルフカストディアルウォレットを再定義
- 2026-11-07 16:35:01
- Yellowの画期的なXRPローンチ:機関グレードトークンの意義と将来への影響
- 2026-11-07 04:45:01
- ZEC 値上げ: Zcash NU7 アップグレードが新時代の火付け役となり、目標額は 5,000 ドルに
- 2026-11-07 04:35:01
- アメリカのビットコインは変化する潮流を乗り越える: マイニングのプレッシャーと AI データセンターの機会が出会う
- 2026-11-06 12:35:02
- IPX が FAN SZN で音楽ポップ カルチャーに火をつける: 究極のファンに報いる
- 2026-11-06 08:30:01
- DIFC裁判所が紛争解決におけるオラクル主導の強制力への道を開く
- 2026-11-06 08:45:01
関連知識
BTCUSDT先物ポジションを保有する総コストの計算方法
2026-10-26 04:06:35
BTCUSDT先物ポジションの総コスト構成要素1. BTCUSDT 先物ポジションを保持するための総コストには、明示的な料金と暗黙的な料金の両方が含まれます。明示的なコストは取引開始手数料と終了手数料で構成されますが、暗黙的なコストは主に、長期にわたる資金調達率の支払いまたは受け取りによって発生しま...
XRPSDT の資金調達レートと建玉を一緒に監視する方法
2026-10-20 18:39:42
XRPUSDT 無期限契約の資金調達率の仕組み1. XRPUSDT 無期限スワップの資金調達率は、XRP と USDT 建て融資市場の間のプレミアム インデックスと金利差を使用して 8 時間ごとに計算されます。 2. Binance、Bybit、OKX などの取引所は、デリバティブ API エンドポ...
SOLUSDT 無期限先物で損益分岐点ストップロスを設定する方法
2026-10-23 09:34:18
損益分岐点とストップロスの仕組みを理解する1. 損益分岐点ストップロスは、ポジションが有利に動くにつれて上方に調整され、約定時に純損失がゼロになるように固定する動的な注文です。 2. 取引が事前に定義された利益しきい値 (通常、初期リスクまたはエントリー手数料の 1 倍から 2 倍) に達した場合に...
ETHUSDT取引にBinance Futures Calculatorを使用する方法
2026-10-21 02:00:11
Binance Futures Calculator インターフェイスを理解する1. 計算機は Binance Futures 取引インターフェイス内に直接組み込まれており、注文入力パネルの ETHUSDT 無期限契約ページからアクセスできます。 2. ユーザーがポジションサイズ、エントリー価格、レ...
先物清算前にBTCUSDTマーク価格を確認する方法
2026-10-26 12:20:18
BTCUSDT 先物におけるマーク価格を理解する1. マーク価格は、市場環境が不安定な場合に不当清算を防止するために取引所が使用する計算値です。 2. 指標価格や調達率など、複数の情報源から導き出された公正かつ安定した参照価格を反映しています。 3. 前回の取引価格とは異なり、マーク価格には操作リス...
TRUMPUSDT 無期限契約のレバレッジを調整する方法
2026-10-30 22:19:37
TRUMPUSDT の無期限契約の仕組みを理解する1. TRUMPUSDT は、複数の Tier-1 デリバティブ取引所に上場されているテーマ別無期限先物契約であり、資産の基礎となるファンダメンタルズではなく、米国の政治的物語を中心とした価格センチメントを追跡するように設計されています。 2. プラ...
BTCUSDT先物ポジションを保有する総コストの計算方法
2026-10-26 04:06:35
BTCUSDT先物ポジションの総コスト構成要素1. BTCUSDT 先物ポジションを保持するための総コストには、明示的な料金と暗黙的な料金の両方が含まれます。明示的なコストは取引開始手数料と終了手数料で構成されますが、暗黙的なコストは主に、長期にわたる資金調達率の支払いまたは受け取りによって発生しま...
XRPSDT の資金調達レートと建玉を一緒に監視する方法
2026-10-20 18:39:42
XRPUSDT 無期限契約の資金調達率の仕組み1. XRPUSDT 無期限スワップの資金調達率は、XRP と USDT 建て融資市場の間のプレミアム インデックスと金利差を使用して 8 時間ごとに計算されます。 2. Binance、Bybit、OKX などの取引所は、デリバティブ API エンドポ...
SOLUSDT 無期限先物で損益分岐点ストップロスを設定する方法
2026-10-23 09:34:18
損益分岐点とストップロスの仕組みを理解する1. 損益分岐点ストップロスは、ポジションが有利に動くにつれて上方に調整され、約定時に純損失がゼロになるように固定する動的な注文です。 2. 取引が事前に定義された利益しきい値 (通常、初期リスクまたはエントリー手数料の 1 倍から 2 倍) に達した場合に...
ETHUSDT取引にBinance Futures Calculatorを使用する方法
2026-10-21 02:00:11
Binance Futures Calculator インターフェイスを理解する1. 計算機は Binance Futures 取引インターフェイス内に直接組み込まれており、注文入力パネルの ETHUSDT 無期限契約ページからアクセスできます。 2. ユーザーがポジションサイズ、エントリー価格、レ...
先物清算前にBTCUSDTマーク価格を確認する方法
2026-10-26 12:20:18
BTCUSDT 先物におけるマーク価格を理解する1. マーク価格は、市場環境が不安定な場合に不当清算を防止するために取引所が使用する計算値です。 2. 指標価格や調達率など、複数の情報源から導き出された公正かつ安定した参照価格を反映しています。 3. 前回の取引価格とは異なり、マーク価格には操作リス...
TRUMPUSDT 無期限契約のレバレッジを調整する方法
2026-10-30 22:19:37
TRUMPUSDT の無期限契約の仕組みを理解する1. TRUMPUSDT は、複数の Tier-1 デリバティブ取引所に上場されているテーマ別無期限先物契約であり、資産の基礎となるファンダメンタルズではなく、米国の政治的物語を中心とした価格センチメントを追跡するように設計されています。 2. プラ...
すべての記事を見る














