These are chat archives for ethereum/tutorials
safeWithdrawalon the Crowdsale contract. So, you'd figure out the transaction data needed to call
safeWithdrawal(use the guide in the DAO tutorial; create the transaction yourself as if you were going to do it as yourself, but instead of signing and transmitting it, just copy the transaction bytecode). Then on the Shareholder Association contract, create a transaction calling
newProposal, setting the
beneficiaryto the Crowdsale contract,
JobDescriptionof "Claim crowdsale funds", and
transactionBytecodeof what you just generated.
vote()for it, and if it's successful, someone can call
executeProposal, which will actually execute the transaction (note the line in that function that has
p.recipient.call.value(p.amount)(transactionBytecode); that's where the Shareholder Association does the transaction, in its own name, so it looks to the Crowdsale contract that the correct address is sending the transaction).