Draft: recurring-transfer
Add pallet recurring-transfer
for allowing on-chain recurring transfers.
Il y a encore plein de bouts inutiles de la palette template, je les enlèverai progressivement.
@librelois Il y a une erreur qui me bloque :
66 | #[pallet::storage]
| ^^^^^^^ the trait `std::default::Default` is not implemented for `T`
Avec une aide amusante :
help: consider further restricting this bound
|
33 | #[frame_support::pallet] + std::default::Default
| ^^^^^^^^^^^^^^^^^^^^^^^
Merge request reports
Activity
requested review from @librelois
Puisqu'il n'y a pas encore de CI je mets toute la sortie du compilateur ici :
error[E0277]: the trait bound `T: std::default::Default` is not satisfied --> pallets/recurring-transfer/src/lib.rs:66:15 | 66 | #[pallet::storage] | ^^^^^^^ the trait `std::default::Default` is not implemented for `T` | = note: required because of the requirements on the impl of `std::default::Default` for `RecurringTransfer<T>` = note: required because of the requirements on the impl of `frame_support::traits::Get<RecurringTransfer<T>>` for `GetDefault` = note: required because of the requirements on the impl of `QueryKindTrait<RecurringTransfer<T>, GetDefault>` for `frame_support::pallet_prelude::ValueQuery` = note: required because of the requirements on the impl of `StorageDoubleMapMetadata` for `frame_support::pallet_prelude::StorageDoubleMap<_GeneratedPrefixForStorageRecurringTransfers<T>, frame_support::Blake2_128Concat, u32, frame_support::Blake2_128Concat, u32, RecurringTransfer<T>, frame_support::pallet_prelude::ValueQuery>` = note: required by `frame_support::storage::types::StorageDoubleMapMetadata::NAME` help: consider further restricting this bound | 33 | #[frame_support::pallet] + std::default::Default | ^^^^^^^^^^^^^^^^^^^^^^^ error[E0599]: the function or associated item `insert` exists for struct `frame_support::pallet_prelude::StorageDoubleMap<_GeneratedPrefixForStorageRecurringTransfers<T>, frame_support::Blake2_128Concat, u32, frame_support::Blake2_128Concat, u32, RecurringTransfer<T>, frame_support::pallet_prelude::ValueQuery>`, but its trait bounds were not satisfied --> pallets/recurring-transfer/src/lib.rs:118:38 | 118 | <RecurringTransfers<T>>::insert(0, 0, RecurringTransfer { | ^^^^^^ function or associated item cannot be called on `frame_support::pallet_prelude::StorageDoubleMap<_GeneratedPrefixForStorageRecurringTransfers<T>, frame_support::Blake2_128Concat, u32, frame_support::Blake2_128Concat, u32, RecurringTransfer<T>, frame_support::pallet_prelude::ValueQuery>` due to unsatisfied trait bounds | ::: /home/tuxmain/.cargo/git/checkouts/substrate-7e08433d4c370a21/83808aa/frame/support/src/storage/types/mod.rs:86:1 | 86 | pub struct ValueQuery; | ---------------------- doesn't satisfy `_: QueryKindTrait<RecurringTransfer<T>, GetDefault>` | ::: /home/tuxmain/.cargo/git/checkouts/substrate-7e08433d4c370a21/83808aa/frame/support/src/traits/misc.rs:49:1 | 49 | pub struct GetDefault; | ---------------------- doesn't satisfy `_: frame_support::traits::Get<RecurringTransfer<T>>` | = note: the following trait bounds were not satisfied: `frame_support::pallet_prelude::ValueQuery: QueryKindTrait<RecurringTransfer<T>, GetDefault>` `GetDefault: frame_support::traits::Get<RecurringTransfer<T>>`
@tuxmain dans un premier temps ne modifie pas les runtime stp, ou seulement le runtime gdev, c'est suffisant pour tester en réel :)
Ton erreur viens du fait que Derive(Default) ne fonctionne qui si tout les génériques impl Default. Deux solutions:
- impl Default à la main
- Utiliser OptionQuery au lieu de valueQuery, je te recommande ce choix, ça permet de ne pas avoir besoin de Default.
Aussi j'ai regardé vite fait en diagonale ton code, il faut que tu utilise les génériques BlockNumber et Balance et non pas des u32 directement ;)
added 3 commits
-
1c29b8d7...214cc867 - 2 commits from branch
master
- 2a21b6ac - WIP feat: recurring-transfer
-
1c29b8d7...214cc867 - 2 commits from branch