Lorenz Herzberger a38fe781ba
187 implement rddl claim (#298)
* ignite scaffold map redeem-claim amount issued:bool --module dao --index beneficiary,liquid-tx-hash

* revert: remove autogenerated delete redeem claim logic

* fix: replace deprecated autogenerated sdkerrors with errorsmod

* refactor: rename issued to confirmed on redeem claim

* feat: add claim address param

* test: add test for restricted msg UpdateRedeemClaim

* refactor: update redeem claim key creation and messages

* feat: add SendUpdateRedeemCLaim to util

* feat: add RedeemClaimDecorator for ante package

* ignite scaffold message confirm-redeem-claim id:uint beneficiary:string --module dao

* feat: add handleConfirmRedeemClaim to ante handler

* feat: add handleUpdateRedeemClaim to ante handler

* feat: implement ConfirmRedeemClaim msg handler

* test: add redeem claim test and adjust e2e test suite

* fix: make use of uint to rddl string util in CreateRedeemClaim

* fix: linter and staticcheck errors

* ignite scaffold query redeem-claim-by-liquid-tx-hash liquid-tx-hash --response redeem-claim:RedeemClaim --module dao

* feat: add RedeemClaimByLiquidTXHash store capabilities

* test: add QueryRedeemClaimByLiquidTxHash to e2e test suite

* feat: add RedeemClaimDecorator to ante handler chain

* fix: remove redundant planetmint-go from service path

* fix: linter and staticcheck errors

* fix: go vet errors

* fix: remove unused autogenerated simulation

* fix: broken simulation

* fix: openapi.yml

* revert: remove autogenerated redundant test file that causes data race on pipeline

* feat: burn claim on CreateRedeemClaim

* fix: linter error

* test: fix mock bankkeeper for msg server test

* fix: reissuance test if statement

* chore: removed TODO comment

* fix: typo in redeem claim error msg

* revert: remove autogenerated genesis state

* fix: dao module simulation

* revert: remove unused function

* fix: linter errors

* fix: linter error

---------

Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com>
2024-02-01 09:57:58 +01:00

133 lines
3.7 KiB
Protocol Buffer

syntax = "proto3";
package planetmintgo.dao;
import "planetmintgo/dao/challenge.proto";
import "planetmintgo/dao/mint_request.proto";
import "planetmintgo/dao/distribution_order.proto";
import "planetmintgo/dao/params.proto";
import "amino/amino.proto";
import "gogoproto/gogo.proto";
import "cosmos_proto/cosmos.proto";
import "cosmos/msg/v1/msg.proto";
import "planetmintgo/dao/redeem_claim.proto";
option go_package = "github.com/planetmint/planetmint-go/x/dao/types";
// Msg defines the Msg service.
service Msg {
rpc ReissueRDDLProposal (MsgReissueRDDLProposal) returns (MsgReissueRDDLProposalResponse);
rpc MintToken (MsgMintToken ) returns (MsgMintTokenResponse );
rpc ReissueRDDLResult (MsgReissueRDDLResult ) returns (MsgReissueRDDLResultResponse );
rpc DistributionResult (MsgDistributionResult ) returns (MsgDistributionResultResponse );
rpc DistributionRequest (MsgDistributionRequest) returns (MsgDistributionRequestResponse);
rpc UpdateParams (MsgUpdateParams ) returns (MsgUpdateParamsResponse );
rpc ReportPopResult (MsgReportPopResult ) returns (MsgReportPopResultResponse );
rpc InitPop (MsgInitPop ) returns (MsgInitPopResponse );
rpc CreateRedeemClaim (MsgCreateRedeemClaim ) returns (MsgCreateRedeemClaimResponse );
rpc UpdateRedeemClaim (MsgUpdateRedeemClaim ) returns (MsgUpdateRedeemClaimResponse );
rpc ConfirmRedeemClaim (MsgConfirmRedeemClaim ) returns (MsgConfirmRedeemClaimResponse );
}
message MsgReportPopResult {
string creator = 1;
Challenge challenge = 2;
}
message MsgReportPopResultResponse {}
message MsgReissueRDDLProposal {
string creator = 1;
string proposer = 2;
string command = 3;
int64 blockHeight = 4;
int64 firstIncludedPop = 5;
int64 lastIncludedPop = 6;
}
message MsgReissueRDDLProposalResponse {}
message MsgMintToken {
string creator = 1;
MintRequest mintRequest = 2;
}
message MsgMintTokenResponse {}
message MsgReissueRDDLResult {
string creator = 1;
string proposer = 2;
string txID = 3;
int64 blockHeight = 4;
}
message MsgReissueRDDLResultResponse {}
message MsgDistributionResult {
string creator = 1;
int64 lastPop = 2;
string daoTxID = 3;
string investorTxID = 4;
string popTxID = 5;
string earlyInvestorTxID = 6;
string strategicTxID = 7;
}
message MsgDistributionResultResponse {}
message MsgDistributionRequest {
string creator = 1;
DistributionOrder distribution = 2;
}
message MsgDistributionRequestResponse {}
message MsgUpdateParams {
option (cosmos.msg.v1.signer) = "authority";
// authority is the address that controls the module (defaults to x/gov unless overwritten).
string authority = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
// params defines the x/dao parameters to update.
// NOTE: All parameters must be supplied.
Params params = 2 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true];
}
message MsgUpdateParamsResponse {}
message MsgInitPop {
string creator = 1;
string initiator = 2;
string challenger = 3;
string challengee = 4;
int64 height = 5;
}
message MsgInitPopResponse {}
message MsgCreateRedeemClaim {
string creator = 1;
string beneficiary = 2;
uint64 amount = 3;
}
message MsgCreateRedeemClaimResponse {}
message MsgUpdateRedeemClaim {
string creator = 1;
uint64 id = 2;
string beneficiary = 3;
string liquidTxHash = 4;
}
message MsgUpdateRedeemClaimResponse {}
message MsgConfirmRedeemClaim {
string creator = 1;
uint64 id = 2;
string beneficiary = 3;
}
message MsgConfirmRedeemClaimResponse {}