Create Shaman Contract for MOLCH v3
Budget: $30 – $250 USD
Create an extension contract for DAO (DAOHaus using molch v3).
the purpose of this contract is to give investors control over their investment fund so project developers can propose expense but cannot vote on spending investors funds. this contracts will expire in xxx days.
Contract 1:
# minting new loot is not possible
# Purpose: Assuming developer brings wealthy investor they can initiate 51% attack =>> such risk is low as only core founders may propose)
Contract 2:
# Shares cannot add new shaman contracts within this periode
# Purpose: Core founders cannot add shaman contract that over-ride their voting restriction
#Contract 3:
#Define who may propose payouts
function submitProposal(bytes proposalData, uint32 expiration, uint256 baalGas, string details) external payable returns (uint256)
if (treasury_Pay_Out_proposal){
if(Proposed_By_Loot){
return "Loot holder cannot propose payouts";
}elseif(proposed_By_Shares{
execute proposal;
}else{
return "requestor can only be share member";
}
}
function submitVote(uint32 id, bool approved) external nonpayable
#Defines who may vote on payouts
if (treasury_Pay_Out_Voting){
if(Voter_Is_Loot){
execute vote;
}elseif(Voter_Is_Share){
return "Share token cannot vote on pay outs";
}else{
return "only members may vote";
}
}
the purpose of this contract is to give investors control over their investment fund so project developers can propose expense but cannot vote on spending investors funds. this contracts will expire in xxx days.
Contract 1:
# minting new loot is not possible
# Purpose: Assuming developer brings wealthy investor they can initiate 51% attack =>> such risk is low as only core founders may propose)
Contract 2:
# Shares cannot add new shaman contracts within this periode
# Purpose: Core founders cannot add shaman contract that over-ride their voting restriction
#Contract 3:
#Define who may propose payouts
function submitProposal(bytes proposalData, uint32 expiration, uint256 baalGas, string details) external payable returns (uint256)
if (treasury_Pay_Out_proposal){
if(Proposed_By_Loot){
return "Loot holder cannot propose payouts";
}elseif(proposed_By_Shares{
execute proposal;
}else{
return "requestor can only be share member";
}
}
function submitVote(uint32 id, bool approved) external nonpayable
#Defines who may vote on payouts
if (treasury_Pay_Out_Voting){
if(Voter_Is_Loot){
execute vote;
}elseif(Voter_Is_Share){
return "Share token cannot vote on pay outs";
}else{
return "only members may vote";
}
}