Skip to content

Commit

Permalink
feat: add arbitrary proposal to add options
Browse files Browse the repository at this point in the history
  • Loading branch information
DaveVodrazka committed Sep 27, 2024
1 parent 8dce4d7 commit e6eaff3
Show file tree
Hide file tree
Showing 2 changed files with 50 additions and 0 deletions.
49 changes: 49 additions & 0 deletions src/arbitrary_proposal_add_options.cairo
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
use starknet::contract_address::{ContractAddress};

#[starknet::interface]
trait IArbitraryProposalAddOptions<TContractState> {
fn execute_arbitrary_proposal(ref self: TContractState);
}

#[starknet::contract]
pub mod ArbitraryProposalAddOptions {
use konoha::types::{CustomProposalConfig};
use konoha::contract::IGovernanceDispatcher;
use konoha::contract::IGovernanceDispatcherTrait;
use starknet::{ContractAddress, ClassHash, get_contract_address};

#[storage]
struct Storage {
governance_address: ContractAddress,
option_deployer_class_hash: ClassHash,
custom_proposal_added: bool
}

#[constructor]
fn constructor(
ref self: ContractState, gov_addr: ContractAddress, option_deployer_class_hash: ClassHash
) {
self.governance_address.write(gov_addr);
self.option_deployer_class_hash.write(option_deployer_class_hash);
self.custom_proposal_added.write(false);
}

#[abi(embed_v0)]
impl ArbitraryProposalAddOptions of super::IArbitraryProposalAddOptions<ContractState> {
fn execute_arbitrary_proposal(ref self: ContractState) {
assert(!self.custom_proposal_added.read(), 'custom proposal already added');
let add_options = CustomProposalConfig {
target: self.option_deployer_class_hash.read().try_into().unwrap(),
selector: selector!("add_options"),
library_call: true
};

let governance = IGovernanceDispatcher {
contract_address: self.governance_address.read()
};
governance.proposals.add_custom_proposal_config(add_options);

self.custom_proposal_added.write(true);
}
}
}
1 change: 1 addition & 0 deletions src/lib.cairo
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,4 @@ mod traits;
mod types;
mod upgrades;
pub mod vecarm;
mod arbitrary_proposal_add_options;

0 comments on commit e6eaff3

Please sign in to comment.