referrerpolicy=no-referrer-when-downgrade
pallet_tips::pallet

Type Alias Module

Source
pub type Module<T, I = ()> = Pallet<T, I>;
👎Deprecated: use Pallet instead
Expand description

Type alias to Pallet, to be used by construct_runtime.

Generated by pallet attribute macro.

Aliased Type§

struct Module<T, I = ()>(/* private fields */);

Implementations

Source§

impl<T: Config<I>, I: 'static> Pallet<T, I>

Source

pub fn report_awesome( origin: OriginFor<T>, reason: Vec<u8>, who: <<T as Config>::Lookup as StaticLookup>::Source, ) -> DispatchResult

Report something reason that deserves a tip and claim any eventual the finder’s fee.

The dispatch origin for this call must be Signed.

Payment: TipReportDepositBase will be reserved from the origin account, as well as DataDepositPerByte for each byte in reason.

  • reason: The reason for, or the thing that deserves, the tip; generally this will be a UTF-8-encoded URL.
  • who: The account which should be credited for the tip.

Emits NewTip if successful.

§Complexity
  • O(R) where R length of reason.
    • encoding and hashing of ‘reason’
Source

pub fn retract_tip(origin: OriginFor<T>, hash: T::Hash) -> DispatchResult

Retract a prior tip-report from report_awesome, and cancel the process of tipping.

If successful, the original deposit will be unreserved.

The dispatch origin for this call must be Signed and the tip identified by hash must have been reported by the signing account through report_awesome (and not through tip_new).

  • hash: The identity of the open tip for which a tip value is declared. This is formed as the hash of the tuple of the original tip reason and the beneficiary account ID.

Emits TipRetracted if successful.

§Complexity
  • O(1)
    • Depends on the length of T::Hash which is fixed.
Source

pub fn tip_new( origin: OriginFor<T>, reason: Vec<u8>, who: <<T as Config>::Lookup as StaticLookup>::Source, tip_value: BalanceOf<T, I>, ) -> DispatchResult

Give a tip for something new; no finder’s fee will be taken.

The dispatch origin for this call must be Signed and the signing account must be a member of the Tippers set.

  • reason: The reason for, or the thing that deserves, the tip; generally this will be a UTF-8-encoded URL.
  • who: The account which should be credited for the tip.
  • tip_value: The amount of tip that the sender would like to give. The median tip value of active tippers will be given to the who.

Emits NewTip if successful.

§Complexity
  • O(R + T) where R length of reason, T is the number of tippers.
    • O(T): decoding Tipper vec of length T. T is charged as upper bound given by ContainsLengthBound. The actual cost depends on the implementation of T::Tippers.
    • O(R): hashing and encoding of reason of length R
Source

pub fn tip( origin: OriginFor<T>, hash: T::Hash, tip_value: BalanceOf<T, I>, ) -> DispatchResult

Declare a tip value for an already-open tip.

The dispatch origin for this call must be Signed and the signing account must be a member of the Tippers set.

  • hash: The identity of the open tip for which a tip value is declared. This is formed as the hash of the tuple of the hash of the original tip reason and the beneficiary account ID.
  • tip_value: The amount of tip that the sender would like to give. The median tip value of active tippers will be given to the who.

Emits TipClosing if the threshold of tippers has been reached and the countdown period has started.

§Complexity
  • O(T) where T is the number of tippers. decoding Tipper vec of length T, insert tip and check closing, T is charged as upper bound given by ContainsLengthBound. The actual cost depends on the implementation of T::Tippers.

    Actually weight could be lower as it depends on how many tips are in OpenTip but it is weighted as if almost full i.e of length T-1.

Source

pub fn close_tip(origin: OriginFor<T>, hash: T::Hash) -> DispatchResult

Close and payout a tip.

The dispatch origin for this call must be Signed.

The tip identified by hash must have finished its countdown period.

  • hash: The identity of the open tip for which a tip value is declared. This is formed as the hash of the tuple of the original tip reason and the beneficiary account ID.
§Complexity
  • : O(T) where T is the number of tippers. decoding Tipper vec of length T. T is charged as upper bound given by ContainsLengthBound. The actual cost depends on the implementation of T::Tippers.
Source

pub fn slash_tip(origin: OriginFor<T>, hash: T::Hash) -> DispatchResult

Remove and slash an already-open tip.

May only be called from T::RejectOrigin.

As a result, the finder is slashed and the deposits are lost.

Emits TipSlashed if successful.

§Complexity
  • O(1).
Source§

impl<T: Config<I>, I: 'static> Pallet<T, I>

Source

pub fn tips( hash: T::Hash, ) -> Option<OpenTip<T::AccountId, BalanceOf<T, I>, BlockNumberFor<T>, T::Hash>>

Access tips storage from outside

Source

pub fn reasons(hash: T::Hash) -> Option<Vec<u8>>

Access reasons storage from outside

Source

pub fn account_id() -> T::AccountId

The account ID of the treasury pot.

This actually does computation. If you need to keep using it, then make sure you cache the value and only call this once.

Source

pub fn migrate_retract_tip_for_tip_new(module: &[u8], item: &[u8])

Source

pub fn do_try_state() -> Result<(), TryRuntimeError>

Ensure the correctness of the state of this pallet.

This should be valid before and after each state transition of this pallet.

§Invariants:
  1. The number of entries in Tips should be equal to Reasons.
  2. Reasons exists for each Tip[OpenTip.reason].
  3. If OpenTip.finders_fee is true, then OpenTip.deposit should be greater than zero.

Trait Implementations

Source§

impl<T: Config<I>, I: 'static> BeforeAllRuntimeMigrations for Pallet<T, I>

Source§

fn before_all_runtime_migrations() -> Weight

Something that should happen before runtime migrations are executed.
Source§

impl<T, I: 'static> Benchmarking for Pallet<T, I>
where T: Config + Config<I>,

Source§

fn benchmarks(extra: bool) -> Vec<BenchmarkMetadata>

Get the benchmarks available for this pallet. Generally there is one benchmark per extrinsic, so these are sometimes just called “extrinsics”. Read more
Source§

fn run_benchmark( extrinsic: &[u8], c: &[(BenchmarkParameter, u32)], whitelist: &[TrackedStorageKey], verify: bool, internal_repeats: u32, ) -> Result<Vec<BenchmarkResult>, BenchmarkError>

Run the benchmarks for this pallet.
Source§

impl<T: Config<I>, I: 'static> Callable<T> for Pallet<T, I>

Source§

impl<T, I> Clone for Pallet<T, I>

Source§

fn clone(&self) -> Self

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<T, I> Debug for Pallet<T, I>

Source§

fn fmt(&self, fmt: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<T: Config<I>, I: 'static> DispatchViewFunction for Pallet<T, I>

Source§

fn dispatch_view_function<O: Output>( id: &ViewFunctionId, input: &mut &[u8], output: &mut O, ) -> Result<(), ViewFunctionDispatchError>

Source§

impl<T: Config<I>, I: 'static> GetStorageVersion for Pallet<T, I>

Source§

type InCodeStorageVersion = StorageVersion

This type is generated by the pallet macro. Read more
Source§

fn in_code_storage_version() -> Self::InCodeStorageVersion

Returns the in-code storage version as specified in the storage_version attribute, or [NoStorageVersionSet] if the attribute is missing.
Source§

fn on_chain_storage_version() -> StorageVersion

Returns the storage version of the pallet as last set in the actual on-chain storage.
§

fn current_storage_version() -> Self::InCodeStorageVersion

👎Deprecated: This method has been renamed to in_code_storage_version and will be removed after March 2024.
DEPRECATED: Use [Self::current_storage_version] instead. Read more
Source§

impl<T: Config<I>, I: 'static> Hooks<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T, I>

Source§

fn integrity_test()

Check the integrity of this pallet’s configuration. Read more
Source§

fn try_state(_n: BlockNumberFor<T>) -> Result<(), TryRuntimeError>

Execute the sanity checks of this pallet, per block. Read more
§

fn on_initialize(_n: BlockNumber) -> Weight

Block initialization hook. This is called at the very beginning of block execution. Read more
§

fn on_finalize(_n: BlockNumber)

Block finalization hook. This is called at the very end of block execution. Read more
§

fn on_idle(_n: BlockNumber, _remaining_weight: Weight) -> Weight

Hook to consume a block’s idle time. This will run when the block is being finalized (before [Hooks::on_finalize]). Read more
§

fn on_poll(_n: BlockNumber, _weight: &mut WeightMeter)

A hook to run logic after inherent application. Read more
§

fn on_runtime_upgrade() -> Weight

Hook executed when a code change (aka. a “runtime upgrade”) is detected by the FRAME Executive pallet. Read more
§

fn pre_upgrade() -> Result<Vec<u8>, DispatchError>

Execute some pre-checks prior to a runtime upgrade. Read more
§

fn post_upgrade(_state: Vec<u8>) -> Result<(), DispatchError>

Execute some post-checks after a runtime upgrade. Read more
§

fn offchain_worker(_n: BlockNumber)

Implementing this function on a pallet allows you to perform long-running tasks that are dispatched as separate threads, and entirely independent of the main blockchain execution. Read more
Source§

impl<T: Config<I>, I: 'static> IntegrityTest for Pallet<T, I>

Source§

fn integrity_test()

See [Hooks::integrity_test].
Source§

impl<T: Config<I>, I: 'static> OffchainWorker<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T, I>

Source§

fn offchain_worker(n: BlockNumberFor<T>)

This function is being called after every block import (when fully synced). Read more
Source§

impl<T: Config<I>, I: 'static> OnFinalize<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T, I>

Source§

fn on_finalize(n: BlockNumberFor<T>)

See [Hooks::on_finalize].
Source§

impl<T: Config<I>, I: 'static> OnGenesis for Pallet<T, I>

Source§

fn on_genesis()

Something that should happen at genesis.
Source§

impl<T: Config<I>, I: 'static> OnIdle<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T, I>

Source§

fn on_idle(n: BlockNumberFor<T>, remaining_weight: Weight) -> Weight

See [Hooks::on_idle].
Source§

impl<T: Config<I>, I: 'static> OnInitialize<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T, I>

Source§

fn on_initialize(n: BlockNumberFor<T>) -> Weight

See [Hooks::on_initialize].
Source§

impl<T: Config<I>, I: 'static> OnPoll<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T, I>

Source§

fn on_poll(n: BlockNumberFor<T>, weight: &mut WeightMeter)

Code to execute every now and then at the beginning of the block after inherent application. Read more
Source§

impl<T: Config<I>, I: 'static> OnRuntimeUpgrade for Pallet<T, I>

Source§

fn on_runtime_upgrade() -> Weight

See [Hooks::on_runtime_upgrade].
Source§

fn pre_upgrade() -> Result<Vec<u8>, TryRuntimeError>

See [Hooks::pre_upgrade].
Source§

fn post_upgrade(state: Vec<u8>) -> Result<(), TryRuntimeError>

See [Hooks::post_upgrade].
§

fn try_on_runtime_upgrade(checks: bool) -> Result<Weight, DispatchError>

The expected and default behavior of this method is to handle executing pre_upgrade -> on_runtime_upgrade -> post_upgrade hooks for a migration. Read more
Source§

impl<T: Config<I>, I: 'static> PalletInfoAccess for Pallet<T, I>

Source§

fn index() -> usize

Index of the pallet as configured in the runtime.
Source§

fn name() -> &'static str

Name of the pallet as configured in the runtime.
Source§

fn name_hash() -> [u8; 16]

Two128 hash of name.
Source§

fn module_name() -> &'static str

Name of the Rust module containing the pallet.
Source§

fn crate_version() -> CrateVersion

Version of the crate containing the pallet.
Source§

impl<T: Config<I>, I: 'static> PalletsInfoAccess for Pallet<T, I>

Source§

fn count() -> usize

The number of pallets’ information that this type represents. Read more
Source§

fn infos() -> Vec<PalletInfoData>

All of the pallets’ information that this type represents.
Source§

impl<T, I> PartialEq for Pallet<T, I>

Source§

fn eq(&self, other: &Self) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<T: Config<I>, I: 'static> StorageInfoTrait for Pallet<T, I>

Source§

fn storage_info() -> Vec<StorageInfo>

Source§

impl<T: Config<I>, I: 'static> TryDecodeEntireStorage for Pallet<T, I>

Source§

fn try_decode_entire_state() -> Result<usize, Vec<TryDecodeEntireStorageError>>

Decode the entire data under the given storage, returning Ok(bytes_decoded) if success.
Source§

impl<T: Config<I>, I: 'static> TryState<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T, I>

Source§

fn try_state( n: BlockNumberFor<T>, _s: TryStateSelect, ) -> Result<(), TryRuntimeError>

Execute the state checks.
Source§

impl<T: Config<I>, I: 'static> ViewFunctionIdPrefix for Pallet<T, I>

Source§

fn prefix() -> [u8; 16]

Source§

impl<T: Config<I>, I: 'static> WhitelistedStorageKeys for Pallet<T, I>

Source§

fn whitelisted_storage_keys() -> Vec<TrackedStorageKey>

Returns a Vec<TrackedStorageKey> indicating the storage keys that should be whitelisted during benchmarking. This means that those keys will be excluded from the benchmarking performance calculation.
Source§

impl<T, I> Eq for Pallet<T, I>