[][src]Trait sunshine_bounty::Trait

pub trait Trait: Trait {
    type Event: From<Event<Self>> + Into<Self::Event>;
    type Currency: Currency<Self::AccountId>;
    type Organization: OrgChecks<u32, Self::AccountId> + ShareGroupChecks<u32, ShareID, Self::AccountId> + GetInnerOuterShareGroups<u32, ShareID, Self::AccountId> + SupervisorPermissions<u32, ShareID, Self::AccountId> + WeightedShareWrapper<u32, u32, Self::AccountId> + WeightedShareIssuanceWrapper<u32, u32, Self::AccountId, Permill> + RegisterShareGroup<u32, ShareID, Self::AccountId, SharesOf<Self>> + OrganizationDNS<u32, Self::AccountId, IpfsReference>;
    type Bank: IDIsAvailable<OnChainTreasuryID> + IDIsAvailable<(OnChainTreasuryID, BankMapID, u32)> + GenerateUniqueID<OnChainTreasuryID> + OnChainBank + RegisterBankAccount<Self::AccountId, WithdrawalPermissions<Self::AccountId>, BalanceOf<Self>> + OwnershipProportionCalculations<Self::AccountId, WithdrawalPermissions<Self::AccountId>, BalanceOf<Self>, Permill> + BankDepositsAndSpends<BalanceOf<Self>> + CheckBankBalances<BalanceOf<Self>> + DepositIntoBank<Self::AccountId, WithdrawalPermissions<Self::AccountId>, IpfsReference, BalanceOf<Self>> + BankReservations<Self::AccountId, WithdrawalPermissions<Self::AccountId>, BalanceOf<Self>, IpfsReference> + BankSpends<Self::AccountId, WithdrawalPermissions<Self::AccountId>, BalanceOf<Self>> + CommitAndTransfer<Self::AccountId, WithdrawalPermissions<Self::AccountId>, BalanceOf<Self>, IpfsReference> + BankStorageInfo<Self::AccountId, WithdrawalPermissions<Self::AccountId>, BalanceOf<Self>> + TermSheetExit<Self::AccountId, BalanceOf<Self>>;
    type VotePetition: IDIsAvailable<u32> + GenerateUniqueID<u32> + GetVoteOutcome + OpenPetition<IpfsReference, Self::BlockNumber> + SignPetition<Self::AccountId, IpfsReference> + UpdatePetition<Self::AccountId, IpfsReference>;
    type VoteYesNo: IDIsAvailable<u32> + GenerateUniqueID<u32> + MintableSignal<Self::AccountId, Self::BlockNumber, Permill> + GetVoteOutcome + ThresholdVote + OpenShareGroupVote<Self::AccountId, Self::BlockNumber, Permill> + ApplyVote + CheckVoteStatus + VoteOnProposal<Self::AccountId, IpfsReference, Self::BlockNumber, Permill>;
    type MinimumBountyCollateralRatio: Get<Permill>;
    type BountyLowerBound: Get<BalanceOf<Self>>;
}

Associated Types

type Event: From<Event<Self>> + Into<Self::Event>

type Currency: Currency<Self::AccountId>

The currency type for on-chain transactions

type Organization: OrgChecks<u32, Self::AccountId> + ShareGroupChecks<u32, ShareID, Self::AccountId> + GetInnerOuterShareGroups<u32, ShareID, Self::AccountId> + SupervisorPermissions<u32, ShareID, Self::AccountId> + WeightedShareWrapper<u32, u32, Self::AccountId> + WeightedShareIssuanceWrapper<u32, u32, Self::AccountId, Permill> + RegisterShareGroup<u32, ShareID, Self::AccountId, SharesOf<Self>> + OrganizationDNS<u32, Self::AccountId, IpfsReference>

This type wraps membership, shares-membership, and shares-atomic

  • it MUST be the same instance inherited by the bank module associated type

type Bank: IDIsAvailable<OnChainTreasuryID> + IDIsAvailable<(OnChainTreasuryID, BankMapID, u32)> + GenerateUniqueID<OnChainTreasuryID> + OnChainBank + RegisterBankAccount<Self::AccountId, WithdrawalPermissions<Self::AccountId>, BalanceOf<Self>> + OwnershipProportionCalculations<Self::AccountId, WithdrawalPermissions<Self::AccountId>, BalanceOf<Self>, Permill> + BankDepositsAndSpends<BalanceOf<Self>> + CheckBankBalances<BalanceOf<Self>> + DepositIntoBank<Self::AccountId, WithdrawalPermissions<Self::AccountId>, IpfsReference, BalanceOf<Self>> + BankReservations<Self::AccountId, WithdrawalPermissions<Self::AccountId>, BalanceOf<Self>, IpfsReference> + BankSpends<Self::AccountId, WithdrawalPermissions<Self::AccountId>, BalanceOf<Self>> + CommitAndTransfer<Self::AccountId, WithdrawalPermissions<Self::AccountId>, BalanceOf<Self>, IpfsReference> + BankStorageInfo<Self::AccountId, WithdrawalPermissions<Self::AccountId>, BalanceOf<Self>> + TermSheetExit<Self::AccountId, BalanceOf<Self>>

type VotePetition: IDIsAvailable<u32> + GenerateUniqueID<u32> + GetVoteOutcome + OpenPetition<IpfsReference, Self::BlockNumber> + SignPetition<Self::AccountId, IpfsReference> + UpdatePetition<Self::AccountId, IpfsReference>

type VoteYesNo: IDIsAvailable<u32> + GenerateUniqueID<u32> + MintableSignal<Self::AccountId, Self::BlockNumber, Permill> + GetVoteOutcome + ThresholdVote + OpenShareGroupVote<Self::AccountId, Self::BlockNumber, Permill> + ApplyVote + CheckVoteStatus + VoteOnProposal<Self::AccountId, IpfsReference, Self::BlockNumber, Permill>

type MinimumBountyCollateralRatio: Get<Permill>

type BountyLowerBound: Get<BalanceOf<Self>>

Loading content...

Implementors

Loading content...