pub type Crowdloan = Pallet<Runtime>;
Aliased Type§
struct Crowdloan(/* private fields */);
Implementations
Source§impl<T> Pallet<T>where
T: Config,
impl<T> Pallet<T>where
T: Config,
Sourcepub fn create(
origin: <T as Config>::RuntimeOrigin,
index: Id,
cap: <<<T as Config>::Auctioneer as Auctioneer<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number>>::Currency as Currency<<T as Config>::AccountId>>::Balance,
first_period: <<T as Config>::Auctioneer as Auctioneer<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number>>::LeasePeriod,
last_period: <<T as Config>::Auctioneer as Auctioneer<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number>>::LeasePeriod,
end: <<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number,
verifier: Option<MultiSigner>,
) -> Result<(), DispatchError>
pub fn create( origin: <T as Config>::RuntimeOrigin, index: Id, cap: <<<T as Config>::Auctioneer as Auctioneer<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number>>::Currency as Currency<<T as Config>::AccountId>>::Balance, first_period: <<T as Config>::Auctioneer as Auctioneer<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number>>::LeasePeriod, last_period: <<T as Config>::Auctioneer as Auctioneer<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number>>::LeasePeriod, end: <<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number, verifier: Option<MultiSigner>, ) -> Result<(), DispatchError>
Create a new crowdloaning campaign for a parachain slot with the given lease period range.
This applies a lock to your parachain configuration, ensuring that it cannot be changed by the parachain manager.
Sourcepub fn contribute(
origin: <T as Config>::RuntimeOrigin,
index: Id,
value: <<<T as Config>::Auctioneer as Auctioneer<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number>>::Currency as Currency<<T as Config>::AccountId>>::Balance,
signature: Option<MultiSignature>,
) -> Result<(), DispatchError>
pub fn contribute( origin: <T as Config>::RuntimeOrigin, index: Id, value: <<<T as Config>::Auctioneer as Auctioneer<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number>>::Currency as Currency<<T as Config>::AccountId>>::Balance, signature: Option<MultiSignature>, ) -> Result<(), DispatchError>
Contribute to a crowd sale. This will transfer some balance over to fund a parachain slot. It will be withdrawable when the crowdloan has ended and the funds are unused.
Sourcepub fn withdraw(
origin: <T as Config>::RuntimeOrigin,
who: <T as Config>::AccountId,
index: Id,
) -> Result<(), DispatchError>
pub fn withdraw( origin: <T as Config>::RuntimeOrigin, who: <T as Config>::AccountId, index: Id, ) -> Result<(), DispatchError>
Withdraw full balance of a specific contributor.
Origin must be signed, but can come from anyone.
The fund must be either in, or ready for, retirement. For a fund to be in retirement, then the retirement flag must be set. For a fund to be ready for retirement, then:
- it must not already be in retirement;
- the amount of raised funds must be bigger than the free balance of the account;
- and either:
- the block number must be at least
end
; or - the current lease period must be greater than the fund’s
last_period
.
- the block number must be at least
In this case, the fund’s retirement flag is set and its end
is reset to the current
block number.
who
: The account whose contribution should be withdrawn.index
: The parachain to whose crowdloan the contribution was made.
Sourcepub fn refund(
origin: <T as Config>::RuntimeOrigin,
index: Id,
) -> Result<PostDispatchInfo, DispatchErrorWithPostInfo<PostDispatchInfo>>
pub fn refund( origin: <T as Config>::RuntimeOrigin, index: Id, ) -> Result<PostDispatchInfo, DispatchErrorWithPostInfo<PostDispatchInfo>>
Automatically refund contributors of an ended crowdloan.
Due to weight restrictions, this function may need to be called multiple
times to fully refund all users. We will refund RemoveKeysLimit
users at a time.
Origin must be signed, but can come from anyone.
Sourcepub fn dissolve(
origin: <T as Config>::RuntimeOrigin,
index: Id,
) -> Result<(), DispatchError>
pub fn dissolve( origin: <T as Config>::RuntimeOrigin, index: Id, ) -> Result<(), DispatchError>
Remove a fund after the retirement period has ended and all funds have been returned.
Sourcepub fn edit(
origin: <T as Config>::RuntimeOrigin,
index: Id,
cap: <<<T as Config>::Auctioneer as Auctioneer<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number>>::Currency as Currency<<T as Config>::AccountId>>::Balance,
first_period: <<T as Config>::Auctioneer as Auctioneer<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number>>::LeasePeriod,
last_period: <<T as Config>::Auctioneer as Auctioneer<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number>>::LeasePeriod,
end: <<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number,
verifier: Option<MultiSigner>,
) -> Result<(), DispatchError>
pub fn edit( origin: <T as Config>::RuntimeOrigin, index: Id, cap: <<<T as Config>::Auctioneer as Auctioneer<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number>>::Currency as Currency<<T as Config>::AccountId>>::Balance, first_period: <<T as Config>::Auctioneer as Auctioneer<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number>>::LeasePeriod, last_period: <<T as Config>::Auctioneer as Auctioneer<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number>>::LeasePeriod, end: <<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number, verifier: Option<MultiSigner>, ) -> Result<(), DispatchError>
Edit the configuration for an in-progress crowdloan.
Can only be called by Root origin.
Sourcepub fn add_memo(
origin: <T as Config>::RuntimeOrigin,
index: Id,
memo: Vec<u8>,
) -> Result<(), DispatchError>
pub fn add_memo( origin: <T as Config>::RuntimeOrigin, index: Id, memo: Vec<u8>, ) -> Result<(), DispatchError>
Add an optional memo to an existing crowdloan contribution.
Origin must be Signed, and the user must have contributed to the crowdloan.
Sourcepub fn poke(
origin: <T as Config>::RuntimeOrigin,
index: Id,
) -> Result<(), DispatchError>
pub fn poke( origin: <T as Config>::RuntimeOrigin, index: Id, ) -> Result<(), DispatchError>
Poke the fund into NewRaise
Origin must be Signed, and the fund has non-zero raise.
Sourcepub fn contribute_all(
origin: <T as Config>::RuntimeOrigin,
index: Id,
signature: Option<MultiSignature>,
) -> Result<(), DispatchError>
pub fn contribute_all( origin: <T as Config>::RuntimeOrigin, index: Id, signature: Option<MultiSignature>, ) -> Result<(), DispatchError>
Contribute your entire balance to a crowd sale. This will transfer the entire balance of a user over to fund a parachain slot. It will be withdrawable when the crowdloan has ended and the funds are unused.
Source§impl<T> Pallet<T>where
T: Config,
impl<T> Pallet<T>where
T: Config,
Sourcepub fn fund_account_id(index: u32) -> <T as Config>::AccountId
pub fn fund_account_id(index: u32) -> <T as Config>::AccountId
The account ID of the fund pot.
This actually does computation. If you need to keep using it, then make sure you cache the value and only call this once.
pub fn id_from_index(index: u32) -> ChildInfo
pub fn contribution_put( index: u32, who: &<T as Config>::AccountId, balance: &<<<T as Config>::Auctioneer as Auctioneer<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number>>::Currency as Currency<<T as Config>::AccountId>>::Balance, memo: &[u8], )
pub fn contribution_get( index: u32, who: &<T as Config>::AccountId, ) -> (<<<T as Config>::Auctioneer as Auctioneer<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number>>::Currency as Currency<<T as Config>::AccountId>>::Balance, Vec<u8>)
pub fn contribution_kill(index: u32, who: &<T as Config>::AccountId)
pub fn crowdloan_kill(index: u32) -> KillStorageResult
pub fn contribution_iterator( index: u32, ) -> ChildTriePrefixIterator<(<T as Config>::AccountId, (<<<T as Config>::Auctioneer as Auctioneer<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number>>::Currency as Currency<<T as Config>::AccountId>>::Balance, Vec<u8>))>
Trait Implementations
Source§impl<T> BeforeAllRuntimeMigrations for Pallet<T>where
T: Config,
impl<T> BeforeAllRuntimeMigrations for Pallet<T>where
T: Config,
Source§fn before_all_runtime_migrations() -> Weight
fn before_all_runtime_migrations() -> Weight
Source§impl<T> Benchmarking for Pallet<T>
impl<T> Benchmarking for Pallet<T>
Source§fn benchmarks(extra: bool) -> Vec<BenchmarkMetadata>
fn benchmarks(extra: bool) -> Vec<BenchmarkMetadata>
Source§fn run_benchmark(
extrinsic: &[u8],
c: &[(BenchmarkParameter, u32)],
whitelist: &[TrackedStorageKey],
verify: bool,
internal_repeats: u32,
) -> Result<Vec<BenchmarkResult>, BenchmarkError>
fn run_benchmark( extrinsic: &[u8], c: &[(BenchmarkParameter, u32)], whitelist: &[TrackedStorageKey], verify: bool, internal_repeats: u32, ) -> Result<Vec<BenchmarkResult>, BenchmarkError>
Source§impl<T> DispatchViewFunction for Pallet<T>where
T: Config,
impl<T> DispatchViewFunction for Pallet<T>where
T: Config,
fn dispatch_view_function<O>(
id: &ViewFunctionId,
input: &mut &[u8],
output: &mut O,
) -> Result<(), ViewFunctionDispatchError>where
O: Output,
Source§impl<T> GetStorageVersion for Pallet<T>where
T: Config,
impl<T> GetStorageVersion for Pallet<T>where
T: Config,
Source§fn in_code_storage_version() -> <Pallet<T> as GetStorageVersion>::InCodeStorageVersion
fn in_code_storage_version() -> <Pallet<T> as GetStorageVersion>::InCodeStorageVersion
storage_version
attribute, or
NoStorageVersionSet
if the attribute is missing.Source§fn on_chain_storage_version() -> StorageVersion
fn on_chain_storage_version() -> StorageVersion
Source§fn current_storage_version() -> Self::InCodeStorageVersion
fn current_storage_version() -> Self::InCodeStorageVersion
in_code_storage_version
and will be removed after March 2024.Self::current_storage_version
instead. Read moreSource§impl<T> Hooks<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>where
T: Config,
impl<T> Hooks<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>where
T: Config,
Source§fn on_initialize(
num: <<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number,
) -> Weight
fn on_initialize( num: <<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number, ) -> Weight
Source§fn on_finalize(_n: BlockNumber)
fn on_finalize(_n: BlockNumber)
Source§fn on_idle(_n: BlockNumber, _remaining_weight: Weight) -> Weight
fn on_idle(_n: BlockNumber, _remaining_weight: Weight) -> Weight
Hooks::on_finalize
). Read moreSource§fn on_poll(_n: BlockNumber, _weight: &mut WeightMeter)
fn on_poll(_n: BlockNumber, _weight: &mut WeightMeter)
Source§fn on_runtime_upgrade() -> Weight
fn on_runtime_upgrade() -> Weight
Executive
pallet. Read moreSource§fn try_state(_n: BlockNumber) -> Result<(), DispatchError>
fn try_state(_n: BlockNumber) -> Result<(), DispatchError>
Source§fn pre_upgrade() -> Result<Vec<u8>, DispatchError>
fn pre_upgrade() -> Result<Vec<u8>, DispatchError>
Source§fn post_upgrade(_state: Vec<u8>) -> Result<(), DispatchError>
fn post_upgrade(_state: Vec<u8>) -> Result<(), DispatchError>
Source§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
Source§fn integrity_test()
fn integrity_test()
Source§impl<T> IntegrityTest for Pallet<T>where
T: Config,
impl<T> IntegrityTest for Pallet<T>where
T: Config,
Source§impl<T> OffchainWorker<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>where
T: Config,
impl<T> OffchainWorker<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>where
T: Config,
Source§impl<T> OnFinalize<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>where
T: Config,
impl<T> OnFinalize<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>where
T: Config,
Source§fn on_finalize(
n: <<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number,
)
fn on_finalize( n: <<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number, )
Hooks::on_finalize
.Source§impl<T> OnGenesis for Pallet<T>where
T: Config,
impl<T> OnGenesis for Pallet<T>where
T: Config,
Source§fn on_genesis()
fn on_genesis()
Source§impl<T> OnIdle<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>where
T: Config,
impl<T> OnIdle<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>where
T: Config,
Source§impl<T> OnInitialize<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>where
T: Config,
impl<T> OnInitialize<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>where
T: Config,
Source§fn on_initialize(
n: <<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number,
) -> Weight
fn on_initialize( n: <<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number, ) -> Weight
Hooks::on_initialize
.Source§impl<T> OnPoll<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>where
T: Config,
impl<T> OnPoll<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>where
T: Config,
Source§impl<T> OnRuntimeUpgrade for Pallet<T>where
T: Config,
impl<T> OnRuntimeUpgrade for Pallet<T>where
T: Config,
Source§fn on_runtime_upgrade() -> Weight
fn on_runtime_upgrade() -> Weight
Source§fn pre_upgrade() -> Result<Vec<u8>, DispatchError>
fn pre_upgrade() -> Result<Vec<u8>, DispatchError>
Hooks::pre_upgrade
.Source§fn post_upgrade(state: Vec<u8>) -> Result<(), DispatchError>
fn post_upgrade(state: Vec<u8>) -> Result<(), DispatchError>
Hooks::post_upgrade
.Source§fn try_on_runtime_upgrade(checks: bool) -> Result<Weight, DispatchError>
fn try_on_runtime_upgrade(checks: bool) -> Result<Weight, DispatchError>
pre_upgrade
->
on_runtime_upgrade
-> post_upgrade
hooks for a migration. Read moreSource§impl<T> PalletInfoAccess for Pallet<T>where
T: Config,
impl<T> PalletInfoAccess for Pallet<T>where
T: Config,
Source§fn module_name() -> &'static str
fn module_name() -> &'static str
Source§fn crate_version() -> CrateVersion
fn crate_version() -> CrateVersion
Source§impl<T> PalletsInfoAccess for Pallet<T>where
T: Config,
impl<T> PalletsInfoAccess for Pallet<T>where
T: Config,
Source§impl<T> StorageInfoTrait for Pallet<T>where
T: Config,
impl<T> StorageInfoTrait for Pallet<T>where
T: Config,
fn storage_info() -> Vec<StorageInfo>
Source§impl<T> TryDecodeEntireStorage for Pallet<T>where
T: Config,
impl<T> TryDecodeEntireStorage for Pallet<T>where
T: Config,
Source§fn try_decode_entire_state() -> Result<usize, Vec<TryDecodeEntireStorageError>>
fn try_decode_entire_state() -> Result<usize, Vec<TryDecodeEntireStorageError>>
Ok(bytes_decoded)
if success.Source§impl<T> TryState<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>where
T: Config,
impl<T> TryState<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>where
T: Config,
Source§impl<T> WhitelistedStorageKeys for Pallet<T>where
T: Config,
impl<T> WhitelistedStorageKeys for Pallet<T>where
T: Config,
Source§fn whitelisted_storage_keys() -> Vec<TrackedStorageKey>
fn whitelisted_storage_keys() -> Vec<TrackedStorageKey>
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.