feat(x/protocolpool): Stream funds from community pool (#18103)

This commit is contained in:
Likhita Polavarapu
2023-11-06 14:07:34 +00:00
committed by GitHub
parent 9c0256e368
commit 56351179b8
27 changed files with 8727 additions and 236 deletions
+38
View File
@@ -22,6 +22,44 @@ func NewMsgServerImpl(keeper Keeper) types.MsgServer {
return &MsgServer{Keeper: keeper}
}
func (k MsgServer) ClaimBudget(ctx context.Context, msg *types.MsgClaimBudget) (*types.MsgClaimBudgetResponse, error) {
recipient, err := k.Keeper.authKeeper.AddressCodec().StringToBytes(msg.RecipientAddress)
if err != nil {
return nil, sdkerrors.ErrInvalidAddress.Wrapf("invalid recipient address: %s", err)
}
amount, err := k.claimFunds(ctx, recipient)
if err != nil {
return nil, err
}
return &types.MsgClaimBudgetResponse{Amount: amount}, nil
}
func (k MsgServer) SubmitBudgetProposal(ctx context.Context, msg *types.MsgSubmitBudgetProposal) (*types.MsgSubmitBudgetProposalResponse, error) {
if err := k.validateAuthority(msg.GetAuthority()); err != nil {
return nil, err
}
recipient, err := k.Keeper.authKeeper.AddressCodec().StringToBytes(msg.RecipientAddress)
if err != nil {
return nil, err
}
budgetProposal, err := k.validateAndUpdateBudgetProposal(ctx, *msg)
if err != nil {
return nil, err
}
// set budget proposal in state
// Note: If two budgets to the same address are created, the budget would be updated with the new budget.
err = k.BudgetProposal.Set(ctx, recipient, *budgetProposal)
if err != nil {
return nil, err
}
return &types.MsgSubmitBudgetProposalResponse{}, nil
}
func (k MsgServer) FundCommunityPool(ctx context.Context, msg *types.MsgFundCommunityPool) (*types.MsgFundCommunityPoolResponse, error) {
depositor, err := k.authKeeper.AddressCodec().StringToBytes(msg.Depositor)
if err != nil {