paritytech / polkadot-sdk

The Parity Polkadot Blockchain SDK
https://polkadot.network/
1.8k stars 652 forks source link

Introduce and Implement `VestedTransfer` Trait #5630

Open shawntabrizi opened 3 weeks ago

shawntabrizi commented 3 weeks ago

This PR introduces a VestedTransfer Trait, which handles making a transfer while also applying a vesting schedule to that balance.

This can be used in pallets like the Treasury pallet, where now we can easily introduce a vested_spend extrinsic as an alternative to giving all funds up front.

We implement () for the VestedTransfer trait, which just returns an error, and allows anyone to opt out from needing to use or implement this trait.

This PR also updates the logic of do_vested_transfer to remove the "pre-check" which was needed before we had a default transactional layer in FRAME.

Finally, I also fixed up some bad formatting in the test.rs file.

shawntabrizi commented 3 weeks ago

After this PR, I would like to open a PR to Treasury pallet to enable the option to do a vested_spend, and see how opengov uses it.