Struct pallet_nftdao::Module[][src]

pub struct Module<T: Config>(_);

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]

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]

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]

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]

pub fn vote_member<KArg1, KArg2>(k1: KArg1, k2: KArg2) where
    KArg1: EncodeLike<(T::AccountId, u128)>,
    KArg2: EncodeLike<T::AccountId>, 
[src]

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]

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]

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]

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]

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]

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]

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]

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]

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]

id plus one

pub fn queue_index_increment(
    dao_account: &T::AccountId
) -> Result<u128, DispatchError>
[src]

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 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]

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]

Let dao perform an operation (call).

Trait Implementations

impl<T: Config> Callable<T> for Module<T>[src]

type Call = Call<T>

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]

impl<T: Eq + Config> Eq for Module<T>[src]

impl<T: Config> GetPalletVersion for Module<T>[src]

impl<T: Config> IntegrityTest for Module<T>[src]

impl<T: Config> ModuleErrorMetadata for Module<T>[src]

impl<T: Config + Config> OffchainWorker<<T as Config>::BlockNumber> for Module<T>[src]

impl<T: Config + Config> OnFinalize<<T as Config>::BlockNumber> for Module<T>[src]

impl<T: Config> OnGenesis for Module<T>[src]

impl<T: Config + Config> OnInitialize<<T as Config>::BlockNumber> for Module<T>[src]

impl<T: Config> OnRuntimeUpgrade for Module<T>[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

impl<T> Send for Module<T> where
    T: Send

impl<T> Sync for Module<T> where
    T: Sync

impl<T> Unpin for Module<T> where
    T: Unpin

impl<T> UnwindSafe for Module<T> where
    T: UnwindSafe

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> CheckedConversion for T[src]

impl<T> DynClone for T where
    T: Clone
[src]

impl<Q, K> Equivalent<K> for Q where
    K: Borrow<Q> + ?Sized,
    Q: Eq + ?Sized
[src]

impl<T> From<T> for T[src]

impl<T> Instrument for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> IsType<T> for T[src]

impl<T, Outer> IsWrappedBy<Outer> for T where
    T: From<Outer>,
    Outer: AsRef<T> + AsMut<T> + From<T>, 
[src]

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]

impl<T> MaybeDebug for T where
    T: Debug
[src]

impl<T> MaybeRefUnwindSafe for T where
    T: RefUnwindSafe
[src]

impl<T> Member for T where
    T: 'static + Send + Sync + Debug + Eq + PartialEq<T> + Clone
[src]

impl<T> Same<T> for T[src]

type Output = T

Should always be Self

impl<T> SaturatedConversion for T[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<S, T> UncheckedInto<T> for S where
    T: UncheckedFrom<S>, 
[src]

impl<T, S> UniqueSaturatedInto<T> for S where
    T: Bounded,
    S: TryInto<T>, 
[src]

impl<V, T> VZip<V> for T where
    V: MultiLane<T>, 
[src]