The plan is to refactor our PublicGoodsFunding.sol so that each project can have a unique address to receive funding directly, rather than through a function call.
The general idea will be for PublicGoodsFunding.sol to expose a createProject() function to be called by our front end. The function will deploy a new instance of Project.sol that users donate directly to by sending ETH (or soon a token) to that project instance's address. For each donation to a project that meets a certain threshold (TBD), the instance will be responsible for calling back to PublicGoodsFunding.sol, which is where we can trigger the NFT mint.
Items
[x] Refactor into factory pattern
[ ] Decide on donation thresholds that will earn a user an NFT
Overview
The plan is to refactor our
PublicGoodsFunding.sol
so that each project can have a unique address to receive funding directly, rather than through a function call.The general idea will be for
PublicGoodsFunding.sol
to expose acreateProject()
function to be called by our front end. The function will deploy a new instance ofProject.sol
that users donate directly to by sending ETH (or soon a token) to that project instance's address. For each donation to a project that meets a certain threshold (TBD), the instance will be responsible for calling back toPublicGoodsFunding.sol
, which is where we can trigger the NFT mint.Items