syntax = "proto3"; package dymensionxyz.dymension.streamer; import "gogoproto/gogo.proto"; import "dymension/streamer/distr_info.proto"; option go_package = "github.com/dymensionxyz/dymension/v3/x/streamer/types"; // ReplaceStreamDistributionProposal is a gov Content type for updating a stream // If a ReplaceStreamDistributionProposal passes, the proposal’s records // override the existing DistrRecords set in the module. Each record has a // specified gauge id and weight, and the incentives are distributed to each // gauge according to weight/total_weight. message ReplaceStreamDistributionProposal { option (gogoproto.equal) = true; option (gogoproto.goproto_getters) = false; option (gogoproto.goproto_stringer) = false; string title = 1; string description = 2; uint64 stream_id = 3; repeated DistrRecord records = 4 [ (gogoproto.nullable) = false ]; } // UpdateStreamDistributionProposal is a gov Content type for updating a stream // If a UpdateStreamDistributionProposal passes, all the DistrRecords // in the proposals are edited. An existing DistrRecord is not overridden unless // explicitly included in the proposal. // This differs from an ReplaceStreamDistributionProposal because it only does an // in place update of the DistrRecords for gauges explicitly mentioned in the // proposal. // For example: if the existing DistrRecords were: // [(Gauge 0, 5), (Gauge 1, 6), (Gauge 2, 6)] // An UpdatePoolIncentivesProposal includes // [(Gauge 1, 0), (Gauge 2, 4), (Gauge 3, 10)] // This would delete Gauge 1, Edit Gauge 2, and Add Gauge 3 // The result DistrRecords in state would be: // [(Gauge 0, 5), (Gauge 2, 4), (Gauge 3, 10)] message UpdateStreamDistributionProposal { option (gogoproto.equal) = true; option (gogoproto.goproto_getters) = false; option (gogoproto.goproto_stringer) = false; string title = 1; string description = 2; uint64 stream_id = 3; repeated DistrRecord records = 4 [ (gogoproto.nullable) = false ]; }