Skip to content
Snippets Groups Projects

Draft: recurring-transfer

Closed Pascal Engélibert requested to merge recurring-transfer into master

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

Loading
Loading

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
  • 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:

    1. impl Default à la main
    2. 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

    Compare with previous version

  • Replaced by transfer_ud + scheduler pallet

  • closed

Please register or sign in to reply
Loading