コンテンツへスキップ
0%

Ethereumで別のスマートコントラクトを呼び出す方法

Alchemy team headshot

執筆者 Alchemy

2022年10月4日 公開読了時間 1 分

Solidityでは、他のコントラクトの関数を借用するスマートコントラクトを作成することができます。この借用を行うスマートコントラクトを呼び出し元スマートコントラクト、関数を借用される側のスマートコントラクトを呼び出し先スマートコントラクトと呼びます。

この記事では、開発者がいつ他のコントラクトを呼び出すべきかを説明し、サンプルコードによるチュートリアルを紹介します。

他のコントラクトを呼び出す理由

Ethereumがブロックチェーンにもたらした最大の進歩の1つは、オンチェーンでコードをアップロードし実行できるようになったことです。スマートコントラクトと呼ばれるこれらのプログラムは、一度ブロックチェーンにアップロードされると編集できません。誰でもそれらを閲覧でき、正しくコーディングされていれば、所有者同士が互いを知らなくてもスマートコントラクトから操作することが可能です。これにより、スマートコントラクトは事実上再利用可能なライブラリとなります。ある目的のために所有者が意図してコーディングしたスマートコントラクトが、呼び出しを通じて何千もの他者に自分たちのユースケースのために再利用されることがあります。

他のスマートコントラクトを呼び出すもう1つの理由は、プログラミング中に、元のスマートコントラクトが完成前に24,577バイトというサイズ制限に達してしまうことです。これを回避するために、開発者はバイト制限を下回るよう、十分な数の関数を新しいスマートコントラクトへ移動させます。

他のスマートコントラクトを呼び出す例

以下に、あるコントラクトが別のスマートコントラクトを呼び出す方法を説明するための2つのサンプルスマートコントラクトを用意しました。

コントラクトを呼び出し、値を更新する

この最初のコントラクトでは、CalledContractに含まれる値がCallerContractによって更新されます。

呼び出しとともにETHを送る

この2つ目のコントラクトでは、CalledContractReceivesEther内のx値がCallerContractAndSendEtherによって更新されるだけでなく、その呼び出しとともにETHも送信されます。

Solidityについてさらに学ぶには

Solidityについてさらに学びたいですか?Solidity教育プラットフォームであるChainShotを最近買収したことにより、Alchemy Universityは、元々3,000ドルの認定ブートキャンプであった7週間のEthereum開発者クラッシュコースを、一般向けに無料で提供しています。今すぐ席を確保しましょう!

開発全般が初めての方には、Ethereumブートキャンプを始める前の前提知識として、Alchemyの3週間JavaScriptクラッシュコースがおすすめです。

Background gradient

ブロックチェーンで魔法を生み出す

Alchemyは、最も強力なweb3開発者向けプロダクトとツールを、豊富なリソース、コミュニティ、そして卓越したサポートと組み合わせて提供します。