Struct pallet_nftdao::Module [−][src]
Implementations
impl<T: Config + 'static> Module<T>
[src]
pub fn get_nonce() -> u128
[src]
A self-increasing number used to create a dao account.
pub fn dao<K: EncodeLike<T::AccountId>>(
key: K
) -> DAOInfo<T::AccountId, T::BlockNumber, <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance>
[src]
key: K
) -> DAOInfo<T::AccountId, T::BlockNumber, <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance>
A set of daos. dao account => dao info
pub fn member<KArg1, KArg2>(k1: KArg1, k2: KArg2) -> Member where
KArg1: EncodeLike<T::AccountId>,
KArg2: EncodeLike<T::AccountId>,
[src]
KArg1: EncodeLike<T::AccountId>,
KArg2: EncodeLike<T::AccountId>,
pub fn escrow<K: EncodeLike<T::AccountId>>(key: K) -> T::AccountId
[src]
A set of dao’s escrow account. dao account => dao escrows account
pub fn last_proposal_id<K: EncodeLike<T::AccountId>>(key: K) -> Option<u128>
[src]
The last proposalId in each DAO. dao account => proposal id
pub fn proposal<KArg1, KArg2>(
k1: KArg1,
k2: KArg2
) -> Option<Proposal<T::AccountId, <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance, T::Hash>> where
KArg1: EncodeLike<T::AccountId>,
KArg2: EncodeLike<u128>,
[src]
k1: KArg1,
k2: KArg2
) -> Option<Proposal<T::AccountId, <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance, T::Hash>> where
KArg1: EncodeLike<T::AccountId>,
KArg2: EncodeLike<u128>,
pub fn last_queue_index<K: EncodeLike<T::AccountId>>(key: K) -> Option<u128>
[src]
The last proposal queue index in each DAO. dao account => proposal in queue index
pub fn proposal_queue<KArg1, KArg2>(k1: KArg1, k2: KArg2) -> u128 where
KArg1: EncodeLike<T::AccountId>,
KArg2: EncodeLike<u128>,
[src]
KArg1: EncodeLike<T::AccountId>,
KArg2: EncodeLike<u128>,
pub fn vote_member<KArg1, KArg2>(k1: KArg1, k2: KArg2) where
KArg1: EncodeLike<(T::AccountId, u128)>,
KArg2: EncodeLike<T::AccountId>,
[src]
KArg1: EncodeLike<(T::AccountId, u128)>,
KArg2: EncodeLike<T::AccountId>,
impl<T: Config> Module<T>
[src]
Can also be called using Call
.
pub fn create_dao(
origin: T::Origin,
metadata: Vec<u8>,
period_duration: u128,
voting_period: u128,
grace_period: u128,
shares_requested: u128,
proposal_deposit: <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance,
processing_reward: <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance,
dilution_bound: u128
) -> DispatchResult
[src]
origin: T::Origin,
metadata: Vec<u8>,
period_duration: u128,
voting_period: u128,
grace_period: u128,
shares_requested: u128,
proposal_deposit: <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance,
processing_reward: <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance,
dilution_bound: u128
) -> DispatchResult
Create a new DAO.
The dispatch origin of this call must be Signed.
Parameters:
metadata
: The details of DAO, can be a ipfs CID.period_duration
: The duration of each period.voting_period
: How many periods does voting last.grace_period
: How many periods does grace last.shares_requested
: How many shares does the summoner need.shares_requested
: How many shares does the summoner need.proposal_deposit
: How many asset does the sponner need.processing_reward
: How much is the reward for processing the proposal.dilution_bound
: Value that protects members from extreme dilution, default is 3.
NOTE: Calling this function will bypass origin filters.
pub fn submit_proposal(
origin: T::Origin,
dao_account: T::AccountId,
applicant: T::AccountId,
shares_requested: u128,
tribute_offered: <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance,
tribute_nft: Option<(T::Hash, u128)>,
details: Vec<u8>,
action: Option<Vec<u8>>
) -> DispatchResult
[src]
origin: T::Origin,
dao_account: T::AccountId,
applicant: T::AccountId,
shares_requested: u128,
tribute_offered: <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance,
tribute_nft: Option<(T::Hash, u128)>,
details: Vec<u8>,
action: Option<Vec<u8>>
) -> DispatchResult
Submit a new proposal.
The dispatch origin of this call must be Signed.
Parameters:
dao_account
: Account for submitting proposals to that dao.applicant
: Who will act after the proposal is passed.shares_requested
: Share to applicant after the proposal passed.tribute_offered
: Tribute to dao from the person who submitted the proposal.tribute_nft
: Tribute NFT to dao from the person who submitted the proposal.details
: The detailed information of the proposal, which can be ipfs cid with title and description.action
: Operations performed by DAO, such as transfers or purchases.
NOTE: Calling this function will bypass origin filters.
pub fn cancel_proposal(
origin: T::Origin,
dao_account: T::AccountId,
proposal_id: u128
) -> DispatchResult
[src]
origin: T::Origin,
dao_account: T::AccountId,
proposal_id: u128
) -> DispatchResult
Cancel the proposal and return the tribute.
The dispatch origin of this call must be Signed.
Parameters:
dao_account
: The account of the dao where the proposal is to be cancelled.proposal_id
: The id of proposal.
NOTE: Calling this function will bypass origin filters.
pub fn sponsor_proposal(
origin: T::Origin,
dao_account: T::AccountId,
proposal_id: u128
) -> DispatchResult
[src]
origin: T::Origin,
dao_account: T::AccountId,
proposal_id: u128
) -> DispatchResult
Sponsor a proposal and make it into the queue.
The dispatch origin of this call must be Signed.
Parameters:
dao_account
: The account of the dao where the proposal is to be sponsored.proposal_id
: The id of proposal.
NOTE: Calling this function will bypass origin filters.
pub fn vote_proposal(
origin: T::Origin,
dao_account: T::AccountId,
proposal_index: u128,
yes: bool
) -> DispatchResult
[src]
origin: T::Origin,
dao_account: T::AccountId,
proposal_index: u128,
yes: bool
) -> DispatchResult
Vote for the proposal.
The dispatch origin of this call must be Signed.
Parameters:
dao_account
: The account of the dao where the proposal is to be voted.proposal_index
: Proposal indexing in the queue.yes
: true is yes, false is not
NOTE: Calling this function will bypass origin filters.
pub fn process_proposal(
origin: T::Origin,
dao_account: T::AccountId,
proposal_index: u128
) -> DispatchResult
[src]
origin: T::Origin,
dao_account: T::AccountId,
proposal_index: u128
) -> DispatchResult
Processing proposal.
If the proposal fails, the tribute will be returned. After processing the proposal, part of the funds sponsored by the sponsor will be given to the processor as a reward, and part will be returned to the sponsor.
If the proposal includes an action, ProposalExecuted event will be emitted after the action is executed. The ProposalProcessed event will be emitted after the proposal is processed.
Note that, like a stack, the proposal that can be processed must be the one at the beginning of the queue. If you do not process the first one, you will get an error.
The dispatch origin of this call must be Signed.
Parameters:
dao_account
: The account of the dao where the proposal is to be processed.proposal_index
: Proposal indexing in the queue.
NOTE: Calling this function will bypass origin filters.
pub fn ragequit(
origin: T::Origin,
dao_account: T::AccountId,
shares_to_burn: u128
) -> DispatchResult
[src]
origin: T::Origin,
dao_account: T::AccountId,
shares_to_burn: u128
) -> DispatchResult
Members can burn shares and obtain corresponding assets.
The dispatch origin of this call must be Signed.
Parameters:
dao_account
: The account of the dao where the proposal is to be ragequited.shares_to_burn
: How many shares to burn.
NOTE: Calling this function will bypass origin filters.
impl<T: Config> Module<T>
[src]
pub fn account_id() -> T::AccountId
[src]
Account of this pallet.
pub fn dao_id(
summoner_address: &T::AccountId,
details: &[u8]
) -> Result<DAOId, DispatchError>
[src]
summoner_address: &T::AccountId,
details: &[u8]
) -> Result<DAOId, DispatchError>
Convert the hash value to DAOId.
pub fn dao_account_id(dao_id: &DAOId) -> T::AccountId
[src]
Convert the DAOId to dao account.
pub fn dao_escrow_id(dao_id: &DAOId) -> T::AccountId
[src]
Use dao account to generate escrow id (a sub account).
pub fn proposal_id_increment(
dao_account: &T::AccountId
) -> Result<u128, DispatchError>
[src]
dao_account: &T::AccountId
) -> Result<u128, DispatchError>
id plus one
pub fn queue_index_increment(
dao_account: &T::AccountId
) -> Result<u128, DispatchError>
[src]
dao_account: &T::AccountId
) -> Result<u128, DispatchError>
index plus one
pub fn get_current_period(
dao: &DAOInfo<T::AccountId, T::BlockNumber, <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance>
) -> Result<u128, DispatchError>
[src]
dao: &DAOInfo<T::AccountId, T::BlockNumber, <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance>
) -> Result<u128, DispatchError>
dao in the period of the current block
pub fn calculate_starting_period(
dao: &DAOInfo<T::AccountId, T::BlockNumber, <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance>
) -> Result<u128, DispatchError>
[src]
dao: &DAOInfo<T::AccountId, T::BlockNumber, <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance>
) -> Result<u128, DispatchError>
Calculate the period for the proposal to start voting
pub fn add_vote(now_vote: u128, shares: u128) -> Result<u128, DispatchError>
[src]
increase the number of votes with shares.
pub fn run(
dao_account: T::AccountId,
action_data: &[u8]
) -> Result<bool, DispatchError>
[src]
dao_account: T::AccountId,
action_data: &[u8]
) -> Result<bool, DispatchError>
Let dao perform an operation (call).
Trait Implementations
impl<T: Config> Callable<T> for Module<T>
[src]
impl<T: Clone + Config> Clone for Module<T>
[src]
impl<T: Copy + Config> Copy for Module<T>
[src]
impl<T: Config> Debug for Module<T> where
T: Debug,
[src]
T: Debug,
impl<T: Eq + Config> Eq for Module<T>
[src]
impl<T: Config> GetPalletVersion for Module<T>
[src]
fn current_version() -> PalletVersion
[src]
fn storage_version() -> Option<PalletVersion>
[src]
impl<T: Config> IntegrityTest for Module<T>
[src]
pub fn integrity_test()
[src]
impl<T: Config> ModuleErrorMetadata for Module<T>
[src]
impl<T: Config + Config> OffchainWorker<<T as Config>::BlockNumber> for Module<T>
[src]
pub fn offchain_worker(_n: BlockNumber)
[src]
impl<T: Config + Config> OnFinalize<<T as Config>::BlockNumber> for Module<T>
[src]
pub fn on_finalize(_n: BlockNumber)
[src]
impl<T: Config> OnGenesis for Module<T>
[src]
fn on_genesis()
[src]
impl<T: Config + Config> OnInitialize<<T as Config>::BlockNumber> for Module<T>
[src]
pub fn on_initialize(_n: BlockNumber) -> u64
[src]
impl<T: Config> OnRuntimeUpgrade for Module<T>
[src]
fn on_runtime_upgrade() -> Weight
[src]
impl<T: PartialEq + Config> PartialEq<Module<T>> for Module<T>
[src]
impl<T: Config> StructuralEq for Module<T>
[src]
impl<T: Config> StructuralPartialEq for Module<T>
[src]
Auto Trait Implementations
impl<T> RefUnwindSafe for Module<T> where
T: RefUnwindSafe,
T: RefUnwindSafe,
impl<T> Send for Module<T> where
T: Send,
T: Send,
impl<T> Sync for Module<T> where
T: Sync,
T: Sync,
impl<T> Unpin for Module<T> where
T: Unpin,
T: Unpin,
impl<T> UnwindSafe for Module<T> where
T: UnwindSafe,
T: UnwindSafe,
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> CheckedConversion for T
[src]
pub fn checked_from<T>(t: T) -> Option<Self> where
Self: TryFrom<T>,
[src]
Self: TryFrom<T>,
pub fn checked_into<T>(self) -> Option<T> where
Self: TryInto<T>,
[src]
Self: TryInto<T>,
impl<T> DynClone for T where
T: Clone,
[src]
T: Clone,
pub fn __clone_box(&self, Private) -> *mut ()
[src]
impl<Q, K> Equivalent<K> for Q where
K: Borrow<Q> + ?Sized,
Q: Eq + ?Sized,
[src]
K: Borrow<Q> + ?Sized,
Q: Eq + ?Sized,
pub fn equivalent(&self, key: &K) -> bool
[src]
impl<T> From<T> for T
[src]
impl<T> Instrument for T
[src]
pub fn instrument(self, span: Span) -> Instrumented<Self>
[src]
pub fn in_current_span(self) -> Instrumented<Self>
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> IsType<T> for T
[src]
pub fn from_ref(t: &T) -> &T
[src]
pub fn into_ref(&self) -> &T
[src]
pub fn from_mut(t: &mut T) -> &mut T
[src]
pub fn into_mut(&mut self) -> &mut T
[src]
impl<T, Outer> IsWrappedBy<Outer> for T where
T: From<Outer>,
Outer: AsRef<T> + AsMut<T> + From<T>,
[src]
T: From<Outer>,
Outer: AsRef<T> + AsMut<T> + From<T>,
pub fn from_ref(outer: &Outer) -> &T
[src]
Get a reference to the inner from the outer.
pub fn from_mut(outer: &mut Outer) -> &mut T
[src]
Get a mutable reference to the inner from the outer.
impl<T> MaybeDebug for T where
T: Debug,
[src]
T: Debug,
impl<T> MaybeDebug for T where
T: Debug,
[src]
T: Debug,
impl<T> MaybeRefUnwindSafe for T where
T: RefUnwindSafe,
[src]
T: RefUnwindSafe,
impl<T> Member for T where
T: 'static + Send + Sync + Debug + Eq + PartialEq<T> + Clone,
[src]
T: 'static + Send + Sync + Debug + Eq + PartialEq<T> + Clone,
impl<T> Same<T> for T
[src]
type Output = T
Should always be Self
impl<T> SaturatedConversion for T
[src]
pub fn saturated_from<T>(t: T) -> Self where
Self: UniqueSaturatedFrom<T>,
[src]
Self: UniqueSaturatedFrom<T>,
pub fn saturated_into<T>(self) -> T where
Self: UniqueSaturatedInto<T>,
[src]
Self: UniqueSaturatedInto<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<S, T> UncheckedInto<T> for S where
T: UncheckedFrom<S>,
[src]
T: UncheckedFrom<S>,
pub fn unchecked_into(self) -> T
[src]
impl<T, S> UniqueSaturatedInto<T> for S where
T: Bounded,
S: TryInto<T>,
[src]
T: Bounded,
S: TryInto<T>,
pub fn unique_saturated_into(self) -> T
[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
[src]
V: MultiLane<T>,