Tags: tweag/cooked-validators
Tags
lp/crowdfunding (#130) * 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>