7章FundraiserFactory

 前章では、Fundraiserコントラクトを作成し、寄付や出金をサポートするための機能を実装した。Fundraiserコントラクトには多くの機能があるが、現時点では、このコントラクトを作成する手段がない。本章では、なじみがあると思われるFactoryパターンを使ってFundraiserの個々のインスタンスを作成するコントラクトを追加する。

 本章では、GitHubリポジトリからUIを取得し、Ganacheにデプロイする手順も見ていく。UIがデプロイされたら、Webブラウザでアプリケーションを起動し、新しいFundraiserインスタンスを作成することで、寄付と資金の引き出しを行うことができる。

7.1 FundraiserFactoryのマイグレーション

 前章のFundraiserコントラクトは、別のコントラクト(FundraiserFactory)によって初期化されることを前提として設計されていたため、マイグレーションを必要としていなかった。しかし、ユーザーがファクトリを操作してFundraiserインスタンスを作成するには、FundraiserFactoryをデプロイする必要がある。

 まず、次のコマンドを使ってtestディレクトリに新しいファイルを作成する。

$ cd fundraiser
$ touch test/fundraiser_factory_test.js

 この新しいファイルにデプロイのテストケースを追加する(リスト7-1)。

リスト7-1:デプロイのテストケースを追加する(fundraiser_factory_test.js)

const FundraiserFactoryContract = artifacts.require("FundraiserFactory"); ...

Get SolidityとEthereumによる実践スマートコントラクト開発 ―Truffle Suiteを用いた開発の基礎からデプロイまで now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.