時価総額: $2.1607T 1.76%
ボリューム(24時間): $86.9861B 19.97%
恐怖と貪欲の指数:

15 - 極度の恐怖

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

言語を選択する

言語を選択する

通貨の選択

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

Solidity の有料機能と非支払い機能の違いは何ですか?

In Solidity, only functions marked `payable` can receive Ether, preventing accidental or malicious fund transfers and ensuring secure contract design.

2025/11/14 13:59

Solidity の関数修飾子を理解する

Solidity では、スマート コントラクト内の関数に、Ether との対話方法を決定する特定の修飾子を割り当てることができます。これらの修飾子は、関数が実行中に資金を受け取ることができるかどうかを決定する上で重要な役割を果たします。支払い可能な機能と支払い不可能な機能の違いは、トランザクションの一部として Ether を受け入れることができるかどうかにあります。

Payable 機能: イーサ送金の受け入れ

1. Payable 関数にはPayable修飾子が明示的にマークされており、呼び出されたときに Ether を受信できるようになります。

  1. ユーザーが支払い可能な機能を呼び出すトランザクションとともに Ether を送信すると、資金が契約の残高に転送されます。
  2. payable 修飾子がないと、Ether を関数に送信しようとするとトランザクションが失敗します。
  3. 有料関数は、クラウドファンディング、寄付、またはユーザーが関数呼び出しを通じて直接資金を寄付するメカニズムなどの機能に不可欠です。
  4. Payable 関数内で、開発者は、受信した金額を保持するmsg.valueを使用して、送信された金額にアクセスできます。

非有料機能: 受信イーサの拒否

1. デフォルトでは、特に指定がない限り、Solidity の機能は支払い対象外です。

  1. トランザクションが支払い不能な機能に Ether を送信しようとすると、偶発的な資金の損失を防ぐためにトランザクション全体が元に戻されます。
  2. この動作により、ユーザーとコントラクト ロジックの両方が意図しない Ether 転送から保護されます。
  3. 支払い不要の関数は、財務入力を必要とせずに状態の変更またはデータの読み取りのみを行う操作に適しています。
  4. 関数が Ether を予期していない場合でも、支払い可能としてマークされていない場合、 msg.value > 0で関数を呼び出すと実行時例外が発生します。

スマートコントラクト設計における実際的な意味

1. 資金を受け入れる必要があるときに機能に支払い不能のラベルを付けると、トークンの購入やステーキング メカニズムなどのコア機能が壊れる可能性があります。

  1. 逆に、不要な関数を支払い可能としてマークすると、特にmsg.valueに関する適切な検証が欠落している場合、攻撃対象領域が増加します。
  2. 開発者は、Ether フローが正しく処理されていることを確認するために、すべての外部向け関数を注意深く監査する必要があります。
  3. 静的アナライザーやテスト フレームワークなどのツールは、展開前に Payable モディファイアーの誤った使用を検出するのに役立ちます。
  4. 複雑な契約では、資金の受け取りと公益事業の機能を区別することで、コードの明瞭さとセキュリティが向上します。

よくある質問

建設業者に報酬を支払うことはできますか?はい、コンストラクターを支払可能としてマークできます。これにより、展開中にコントラクトが Ether を受け入れることができるようになります。デプロイメント トランザクションに値の転送が含まれる場合、元に戻さないようにコンストラクターに支払いを行う必要があります。

Ether で支払い不要の関数を呼び出すとどうなりますか?トランザクションは自動的に元に戻り、状態の変化は発生しません。 Ethereum は、このルールを EVM レベルで強制して、Ether を処理するように設計されていない機能への偶発的な Ether 転送を防ぎます。

契約内のすべての機能をデフォルトで支払う方法はありますか?いいえ、各機能は個別に支払い可能として宣言する必要があります。すべての関数が Ether を受け入れるようにするためのグローバル設定はありません。この設計により、資金受け取りの意図的かつ安全な処理が保証されます。

支払いが不可能な場合、フォールバック関数は Ether を受け取ることができますか?いいえ、イーサを受け入れるには、フォールバック関数であっても支払い可能としてマークする必要があります。支払い不要のフォールバック関数は、関数呼び出しを指定せずにコントラクトに送信される受信 Ether を拒否します。

免責事項: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