* wip on crowdfunding contract
* first draft of crowdfunding contract
* wip on testing crowdfunding contract with cooked
* alternative crowdfunding contract/testing without asset class, minting policy
* example traces using cooked
* simplify crowdfunding contract, validator only parameterized by datum/redeemer
* more wip on crowdfunding contract/traces
* draft of crowdfunding contract + traces
* crowdfunding contract minor changes
* wip on extending crowdfunding contract with reward tokens
* subtract fees from validating total amounts, confirm contributor is only person being refunded
* consume utxo when owner refunds project
* wip on extending crowdfunding contract with rewards
* mint tokens during project funding
* minting policy/rewards seem to work, some vulnerabilities to fix
* include minimum contribution
* minted tokens must go to contributors
* parameterizing the reward token, no longer use adjustUnbalTx, other minor changes
* fix minting policy, refactoring, other minor changes in on-chain code
* fix txAllRefund, refactoring, other minor changes in offchain code
* remove simple crowdfunding contract, rename CrowdfundingExt to Crowdfunding
* run ormolu on contract and offchain code
* move tests into new file, add more comprehensive traces
* fix hlint issues
* qualify somewhere
* reorganize imports in CrowdfundingSpec
* import Cooked.Ltl
* addressing carl's comments
* minor changes
* parameterize funding datum with FundingParams
* additional check in minting policy that there is at least one input to the transaction
* fix refund all vulnerability, add trace exhibiting vulnerability with old version
* additional tests regarding minimum contribution
* move min contribution check to validLaunch. can refund even if not above min
* Update examples/tests/CrowdfundingSpec.hs
* make sure owner signs opening transaction
* fix bugs arising from latest changes to main
* remove datum hijacking attack since the attack will succeed but is not a vulnerability
* token name is hash of utxo
* remove PolicyParams
* introduce thread token, two-step transactions
* add comment about preproposal, two-step
* Remove PreProposal state
* use adjustUnbalTx instead of adding minAda explicitly
* give wallets actual human names
* make ormolu happy
* clean up crowdfunding contract
* make changes after discussion with mm
* fix dupTokenAttack
* use tweaks to write partial crowdfunding test
Co-authored-by: Victor Cacciari Miraldo <VictorCMiraldo@users.noreply.github.com>