feat: Move CommunityPool to its own module (#17657)
This commit is contained in:
parent
ddd26b5dfc
commit
9dd34510e2
9
.github/dependabot.yml
vendored
9
.github/dependabot.yml
vendored
@ -215,6 +215,15 @@ updates:
|
||||
labels:
|
||||
- "A:automerge"
|
||||
- dependencies
|
||||
- package-ecosystem: gomod
|
||||
directory: "/x/protocolpool"
|
||||
schedule:
|
||||
interval: weekly
|
||||
day: wednesday
|
||||
time: "03:00"
|
||||
labels:
|
||||
- "A:automerge"
|
||||
- dependencies
|
||||
|
||||
# Dependencies should be up to date on release branch
|
||||
- package-ecosystem: gomod
|
||||
|
||||
2
.github/pr_labeler.yml
vendored
2
.github/pr_labeler.yml
vendored
@ -39,6 +39,8 @@
|
||||
- x/consensus/**/*
|
||||
"C:x/circuit":
|
||||
- x/circuit/**/*
|
||||
"C:x/protocolpool":
|
||||
- x/protocolpool/**/*
|
||||
"C:x/tx":
|
||||
- x/tx/**/*
|
||||
"C:collections":
|
||||
|
||||
31
.github/workflows/test.yml
vendored
31
.github/workflows/test.yml
vendored
@ -790,6 +790,37 @@ jobs:
|
||||
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
|
||||
with:
|
||||
projectBaseDir: x/circuit/
|
||||
|
||||
test-x-protocolpool:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/setup-go@v4
|
||||
with:
|
||||
go-version: "1.21"
|
||||
check-latest: true
|
||||
cache: true
|
||||
cache-dependency-path: x/protocolpool/go.sum
|
||||
- uses: technote-space/get-diff-action@v6.1.2
|
||||
id: git_diff
|
||||
with:
|
||||
PATTERNS: |
|
||||
x/protocolpool/**/*.go
|
||||
x/protocolpool/go.mod
|
||||
x/protocolpool/go.sum
|
||||
- name: tests
|
||||
if: env.GIT_DIFF
|
||||
run: |
|
||||
cd x/protocolpool
|
||||
go test -mod=readonly -timeout 30m -coverprofile=coverage.out -covermode=atomic -tags='norace ledger test_ledger_mock rocksdb_build' ./...
|
||||
- name: sonarcloud
|
||||
if: ${{ env.GIT_DIFF && !github.event.pull_request.draft && env.SONAR_TOKEN != null }}
|
||||
uses: SonarSource/sonarcloud-github-action@master
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
|
||||
with:
|
||||
projectBaseDir: x/protocolpool/
|
||||
|
||||
test-x-feegrant:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
@ -40,6 +40,7 @@ Ref: https://keepachangelog.com/en/1.0.0/
|
||||
|
||||
### Features
|
||||
|
||||
* (x/protocolpool) [#17657](https://github.com/cosmos/cosmos-sdk/pull/17657) Create a new `x/protocolpool` module that is responsible for handling community pool funds. This module is split out into a new module from x/distribution.
|
||||
* (baseapp) [#16581](https://github.com/cosmos/cosmos-sdk/pull/16581) Implement Optimistic Execution as an experimental feature (not enabled by default).
|
||||
* (client/keys) [#17639](https://github.com/cosmos/cosmos-sdk/pull/17639) Allows using and saving public keys encoded as base64
|
||||
* (client) [#17513](https://github.com/cosmos/cosmos-sdk/pull/17513) Allow overwritting `client.toml`. Use `client.CreateClientConfig` in place of `client.ReadFromClientConfig` and provide a custom template and a custom config.
|
||||
@ -61,6 +62,8 @@ Ref: https://keepachangelog.com/en/1.0.0/
|
||||
|
||||
### API Breaking Changes
|
||||
|
||||
* (x/distribution) [#17657](https://github.com/cosmos/cosmos-sdk/pull/17657) The `FundCommunityPool` and `DistributeFromFeePool` keeper methods are now removed from x/distribution.
|
||||
* (x/distribution) [#17657](https://github.com/cosmos/cosmos-sdk/pull/17657) The distribution module keeper now takes a new argument `PoolKeeper` in addition.
|
||||
* (app) [#17838](https://github.com/cosmos/cosmos-sdk/pull/17838) Params module was removed from simapp and all imports of the params module removed throughout the repo.
|
||||
* The Cosmos SDK has migrated aay from using params, if you're app still uses it, then you can leave it plugged into your app
|
||||
* (x/staking) [#17778](https://github.com/cosmos/cosmos-sdk/pull/17778) Use collections for `Params`
|
||||
@ -154,10 +157,15 @@ Ref: https://keepachangelog.com/en/1.0.0/
|
||||
|
||||
### State Machine Breaking
|
||||
|
||||
* (x/distribution) [#17657](https://github.com/cosmos/cosmos-sdk/pull/17657) Migrate community pool funds from x/distribution to x/protocolpool.
|
||||
* (x/distribution) [#17115](https://github.com/cosmos/cosmos-sdk/pull/17115) Migrate `PreviousProposer` to collections.
|
||||
* (x/upgrade) [#16244](https://github.com/cosmos/cosmos-sdk/pull/16244) upgrade module no longer stores the app version but gets and sets the app version stored in the `ParamStore` of baseapp.
|
||||
* (x/staking) [#17655](https://github.com/cosmos/cosmos-sdk/pull/17655) `HistoricalInfo` was replaced with `HistoricalRecord`, it removes the validator set and comet header and only keep what is needed for IBC.
|
||||
|
||||
### Client Breaking Changes
|
||||
|
||||
* (x/distribution) [#17657](https://github.com/cosmos/cosmos-sdk/pull/17657) Deprecate `CommunityPool` and `FundCommunityPool` rpc methods. Use x/protocolpool module's rpc methods instead.
|
||||
|
||||
## [v0.50.0-rc.1](https://github.com/cosmos/cosmos-sdk/releases/tag/v0.50.0-rc.1) - 2023-09-25
|
||||
|
||||
### Features
|
||||
|
||||
33
UPGRADING.md
33
UPGRADING.md
@ -58,6 +58,39 @@ Most of Cosmos SDK modules have migrated to [collections](https://docs.cosmos.ne
|
||||
Many functions have been removed due to this changes as the API can be smaller thanks to collections.
|
||||
For modules that have migrated, verify you are checking against `collections.ErrNotFound` when applicable.
|
||||
|
||||
#### `x/distribution`
|
||||
|
||||
The existing chains using x/distribution module needs to add the new x/protocolpool module.
|
||||
|
||||
#### `x/protocolpool`
|
||||
|
||||
Introducing a new `x/protocolpool` module to handle community pool funds. Its store must be added while upgrading to v0.51.x
|
||||
|
||||
Example:
|
||||
|
||||
```go
|
||||
func (app SimApp) RegisterUpgradeHandlers() {
|
||||
app.UpgradeKeeper.SetUpgradeHandler(
|
||||
UpgradeName,
|
||||
func(ctx sdk.Context, _ upgradetypes.Plan, fromVM module.VersionMap) (module.VersionMap, error) {
|
||||
return app.ModuleManager.RunMigrations(ctx, app.Configurator(), fromVM)
|
||||
},
|
||||
)
|
||||
|
||||
// ...
|
||||
}
|
||||
```
|
||||
|
||||
Add `x/protocolpool` store while upgrading to v0.51.x:
|
||||
|
||||
```go
|
||||
storetypes.StoreUpgrades{
|
||||
Added: []string{
|
||||
protocolpooltypes.ModuleName,
|
||||
},
|
||||
}
|
||||
```
|
||||
|
||||
## [v0.50.x](https://github.com/cosmos/cosmos-sdk/releases/tag/v0.50.0-alpha.0)
|
||||
|
||||
### Migration to CometBFT (Part 2)
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -10179,6 +10179,11 @@ func (x *QueryDelegatorWithdrawAddressResponse) GetWithdrawAddress() string {
|
||||
|
||||
// QueryCommunityPoolRequest is the request type for the Query/CommunityPool RPC
|
||||
// method.
|
||||
//
|
||||
// Deprecated
|
||||
// Since: cosmos-sdk 0.50
|
||||
//
|
||||
// Deprecated: Do not use.
|
||||
type QueryCommunityPoolRequest struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
@ -10207,6 +10212,11 @@ func (*QueryCommunityPoolRequest) Descriptor() ([]byte, []int) {
|
||||
|
||||
// QueryCommunityPoolResponse is the response type for the Query/CommunityPool
|
||||
// RPC method.
|
||||
//
|
||||
// Deprecated
|
||||
// Since: cosmos-sdk 0.50
|
||||
//
|
||||
// Deprecated: Do not use.
|
||||
type QueryCommunityPoolResponse struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
@ -10434,175 +10444,175 @@ var file_cosmos_distribution_v1beta1_query_proto_rawDesc = []byte{
|
||||
0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63,
|
||||
0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72,
|
||||
0x69, 0x6e, 0x67, 0x52, 0x0f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x41, 0x64, 0x64,
|
||||
0x72, 0x65, 0x73, 0x73, 0x3a, 0x08, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x22, 0x1b,
|
||||
0x72, 0x65, 0x73, 0x73, 0x3a, 0x08, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x22, 0x1f,
|
||||
0x0a, 0x19, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79,
|
||||
0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x88, 0x01, 0x0a, 0x1a,
|
||||
0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f,
|
||||
0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6a, 0x0a, 0x04, 0x70, 0x6f,
|
||||
0x6f, 0x6c, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f,
|
||||
0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44,
|
||||
0x65, 0x63, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x38, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x2b,
|
||||
0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f,
|
||||
0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70,
|
||||
0x65, 0x73, 0x2e, 0x44, 0x65, 0x63, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01,
|
||||
0x52, 0x04, 0x70, 0x6f, 0x6f, 0x6c, 0x32, 0xc4, 0x11, 0x0a, 0x05, 0x51, 0x75, 0x65, 0x72, 0x79,
|
||||
0x12, 0x98, 0x01, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x2f, 0x2e, 0x63, 0x6f,
|
||||
0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f,
|
||||
0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50,
|
||||
0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x63,
|
||||
0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69,
|
||||
0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79,
|
||||
0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2b,
|
||||
0x82, 0xd3, 0xe4, 0x93, 0x02, 0x25, 0x12, 0x23, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f,
|
||||
0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x62,
|
||||
0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0xe9, 0x01, 0x0a, 0x19,
|
||||
0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62,
|
||||
0x75, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x42, 0x2e, 0x63, 0x6f, 0x73, 0x6d,
|
||||
0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e,
|
||||
0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x56, 0x61, 0x6c,
|
||||
0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69,
|
||||
0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x43, 0x2e,
|
||||
0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74,
|
||||
0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72,
|
||||
0x79, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69,
|
||||
0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
|
||||
0x73, 0x65, 0x22, 0x43, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3d, 0x12, 0x3b, 0x2f, 0x63, 0x6f, 0x73,
|
||||
0x6d, 0x6f, 0x73, 0x2f, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e,
|
||||
0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74,
|
||||
0x6f, 0x72, 0x73, 0x2f, 0x7b, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61,
|
||||
0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x7d, 0x12, 0x83, 0x02, 0x0a, 0x1b, 0x56, 0x61, 0x6c, 0x69,
|
||||
0x64, 0x61, 0x74, 0x6f, 0x72, 0x4f, 0x75, 0x74, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x69, 0x6e, 0x67,
|
||||
0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x12, 0x44, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73,
|
||||
0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31,
|
||||
0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x56, 0x61, 0x6c, 0x69, 0x64,
|
||||
0x61, 0x74, 0x6f, 0x72, 0x4f, 0x75, 0x74, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52,
|
||||
0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x45, 0x2e,
|
||||
0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74,
|
||||
0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72,
|
||||
0x79, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x4f, 0x75, 0x74, 0x73, 0x74, 0x61,
|
||||
0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70,
|
||||
0x6f, 0x6e, 0x73, 0x65, 0x22, 0x57, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x51, 0x12, 0x4f, 0x2f, 0x63,
|
||||
0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69,
|
||||
0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64,
|
||||
0x61, 0x74, 0x6f, 0x72, 0x73, 0x2f, 0x7b, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72,
|
||||
0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x7d, 0x2f, 0x6f, 0x75, 0x74, 0x73, 0x74, 0x61,
|
||||
0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x12, 0xe2, 0x01,
|
||||
0x0a, 0x13, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x69,
|
||||
0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x3c, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64,
|
||||
0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x3a, 0x02, 0x18, 0x01, 0x22,
|
||||
0x8c, 0x01, 0x0a, 0x1a, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69,
|
||||
0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6a,
|
||||
0x0a, 0x04, 0x70, 0x6f, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63,
|
||||
0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74,
|
||||
0x61, 0x31, 0x2e, 0x44, 0x65, 0x63, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x38, 0xc8, 0xde, 0x1f, 0x00,
|
||||
0xaa, 0xdf, 0x1f, 0x2b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63,
|
||||
0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b,
|
||||
0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x44, 0x65, 0x63, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0xa8,
|
||||
0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x04, 0x70, 0x6f, 0x6f, 0x6c, 0x3a, 0x02, 0x18, 0x01, 0x32, 0xc7,
|
||||
0x11, 0x0a, 0x05, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x98, 0x01, 0x0a, 0x06, 0x50, 0x61, 0x72,
|
||||
0x61, 0x6d, 0x73, 0x12, 0x2f, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73,
|
||||
0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61,
|
||||
0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x71,
|
||||
0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69,
|
||||
0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74,
|
||||
0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65,
|
||||
0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x25, 0x12, 0x23,
|
||||
0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75,
|
||||
0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x61, 0x72,
|
||||
0x61, 0x6d, 0x73, 0x12, 0xe9, 0x01, 0x0a, 0x19, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f,
|
||||
0x72, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66,
|
||||
0x6f, 0x12, 0x42, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72,
|
||||
0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e,
|
||||
0x51, 0x75, 0x65, 0x72, 0x79, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x44, 0x69,
|
||||
0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65,
|
||||
0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x43, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64,
|
||||
0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65,
|
||||
0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74,
|
||||
0x6f, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75,
|
||||
0x65, 0x73, 0x74, 0x1a, 0x3d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73,
|
||||
0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61,
|
||||
0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72,
|
||||
0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
|
||||
0x73, 0x65, 0x22, 0x4e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x48, 0x12, 0x46, 0x2f, 0x63, 0x6f, 0x73,
|
||||
0x6d, 0x6f, 0x73, 0x2f, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e,
|
||||
0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74,
|
||||
0x6f, 0x72, 0x73, 0x2f, 0x7b, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61,
|
||||
0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x7d, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69,
|
||||
0x6f, 0x6e, 0x12, 0xd6, 0x01, 0x0a, 0x10, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72,
|
||||
0x53, 0x6c, 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, 0x39, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73,
|
||||
0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31,
|
||||
0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x56, 0x61, 0x6c, 0x69, 0x64,
|
||||
0x61, 0x74, 0x6f, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65,
|
||||
0x73, 0x74, 0x1a, 0x3a, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74,
|
||||
0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31,
|
||||
0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x53,
|
||||
0x6c, 0x61, 0x73, 0x68, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4b,
|
||||
0x82, 0xd3, 0xe4, 0x93, 0x02, 0x45, 0x12, 0x43, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f,
|
||||
0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x62,
|
||||
0x65, 0x74, 0x61, 0x31, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x2f,
|
||||
0x7b, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65,
|
||||
0x73, 0x73, 0x7d, 0x2f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, 0xed, 0x01, 0x0a, 0x11,
|
||||
0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64,
|
||||
0x73, 0x12, 0x3a, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72,
|
||||
0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e,
|
||||
0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52,
|
||||
0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3b, 0x2e,
|
||||
0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e,
|
||||
0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x43, 0x82, 0xd3, 0xe4, 0x93,
|
||||
0x02, 0x3d, 0x12, 0x3b, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x64, 0x69, 0x73, 0x74,
|
||||
0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31,
|
||||
0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x2f, 0x7b, 0x76, 0x61, 0x6c,
|
||||
0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x7d, 0x12,
|
||||
0x83, 0x02, 0x0a, 0x1b, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x4f, 0x75, 0x74,
|
||||
0x73, 0x74, 0x61, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x12,
|
||||
0x44, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62,
|
||||
0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75,
|
||||
0x65, 0x72, 0x79, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x4f, 0x75, 0x74, 0x73,
|
||||
0x74, 0x61, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x52, 0x65,
|
||||
0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x45, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64,
|
||||
0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65,
|
||||
0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74,
|
||||
0x6f, 0x72, 0x4f, 0x75, 0x74, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x77,
|
||||
0x61, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x57, 0x82, 0xd3,
|
||||
0xe4, 0x93, 0x02, 0x51, 0x12, 0x4f, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x64, 0x69,
|
||||
0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74,
|
||||
0x61, 0x31, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x2f, 0x7b, 0x76,
|
||||
0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73,
|
||||
0x7d, 0x2f, 0x6f, 0x75, 0x74, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x65,
|
||||
0x77, 0x61, 0x72, 0x64, 0x73, 0x12, 0xe2, 0x01, 0x0a, 0x13, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61,
|
||||
0x74, 0x6f, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x3c, 0x2e,
|
||||
0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74,
|
||||
0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72,
|
||||
0x79, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x77, 0x61, 0x72,
|
||||
0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5f, 0x82, 0xd3, 0xe4, 0x93,
|
||||
0x02, 0x59, 0x12, 0x57, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x64, 0x69, 0x73, 0x74,
|
||||
0x79, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73,
|
||||
0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3d, 0x2e, 0x63, 0x6f,
|
||||
0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f,
|
||||
0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x56,
|
||||
0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69,
|
||||
0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4e, 0x82, 0xd3, 0xe4, 0x93,
|
||||
0x02, 0x48, 0x12, 0x46, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x64, 0x69, 0x73, 0x74,
|
||||
0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31,
|
||||
0x2f, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x2f, 0x7b, 0x64, 0x65, 0x6c,
|
||||
0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x7d, 0x2f,
|
||||
0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x2f, 0x7b, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74,
|
||||
0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x7d, 0x12, 0xe8, 0x01, 0x0a, 0x16,
|
||||
0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x52,
|
||||
0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x12, 0x3f, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e,
|
||||
0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62,
|
||||
0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61,
|
||||
0x74, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73,
|
||||
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x40, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73,
|
||||
0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31,
|
||||
0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x6c, 0x65, 0x67,
|
||||
0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64,
|
||||
0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4b, 0x82, 0xd3, 0xe4, 0x93, 0x02,
|
||||
0x45, 0x12, 0x43, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x64, 0x69, 0x73, 0x74, 0x72,
|
||||
0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f,
|
||||
0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x2f, 0x7b, 0x64, 0x65, 0x6c, 0x65,
|
||||
0x67, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x7d, 0x2f, 0x72,
|
||||
0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x12, 0xe2, 0x01, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x67,
|
||||
0x61, 0x74, 0x6f, 0x72, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x3c,
|
||||
0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x2f, 0x7b, 0x76, 0x61, 0x6c,
|
||||
0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x7d, 0x2f,
|
||||
0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0xd6, 0x01, 0x0a, 0x10, 0x56,
|
||||
0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x65, 0x73, 0x12,
|
||||
0x39, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62,
|
||||
0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75,
|
||||
0x65, 0x72, 0x79, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x6c, 0x61, 0x73,
|
||||
0x68, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e, 0x63, 0x6f, 0x73,
|
||||
0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e,
|
||||
0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x56, 0x61,
|
||||
0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x65, 0x73, 0x52, 0x65,
|
||||
0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x45, 0x12, 0x43,
|
||||
0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75,
|
||||
0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x76, 0x61, 0x6c,
|
||||
0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x2f, 0x7b, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74,
|
||||
0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x7d, 0x2f, 0x73, 0x6c, 0x61, 0x73,
|
||||
0x68, 0x65, 0x73, 0x12, 0xed, 0x01, 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69,
|
||||
0x6f, 0x6e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x12, 0x3a, 0x2e, 0x63, 0x6f, 0x73, 0x6d,
|
||||
0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e,
|
||||
0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x6c,
|
||||
0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x52, 0x65,
|
||||
0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3b, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64,
|
||||
0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65,
|
||||
0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74,
|
||||
0x69, 0x6f, 0x6e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
|
||||
0x73, 0x65, 0x22, 0x5f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x59, 0x12, 0x57, 0x2f, 0x63, 0x6f, 0x73,
|
||||
0x6d, 0x6f, 0x73, 0x2f, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e,
|
||||
0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74,
|
||||
0x6f, 0x72, 0x73, 0x2f, 0x7b, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61,
|
||||
0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x7d, 0x2f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x2f,
|
||||
0x7b, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65,
|
||||
0x73, 0x73, 0x7d, 0x12, 0xe8, 0x01, 0x0a, 0x16, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69,
|
||||
0x6f, 0x6e, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x12, 0x3f,
|
||||
0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75,
|
||||
0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65,
|
||||
0x72, 0x79, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x61, 0x6c, 0x69, 0x64,
|
||||
0x61, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3d, 0x2e, 0x63,
|
||||
0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69,
|
||||
0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79,
|
||||
0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74,
|
||||
0x6f, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4e, 0x82, 0xd3, 0xe4,
|
||||
0x93, 0x02, 0x48, 0x12, 0x46, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x64, 0x69, 0x73,
|
||||
0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61,
|
||||
0x31, 0x2f, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x2f, 0x7b, 0x64, 0x65,
|
||||
0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x7d,
|
||||
0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0xf7, 0x01, 0x0a, 0x18,
|
||||
0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61,
|
||||
0x77, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x41, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f,
|
||||
0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76,
|
||||
0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x6c, 0x65,
|
||||
0x67, 0x61, 0x74, 0x6f, 0x72, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x41, 0x64, 0x64,
|
||||
0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x42, 0x2e, 0x63, 0x6f,
|
||||
0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f,
|
||||
0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44,
|
||||
0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77,
|
||||
0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
|
||||
0x54, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4e, 0x12, 0x4c, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73,
|
||||
0x2f, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31,
|
||||
0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x73,
|
||||
0x2f, 0x7b, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72,
|
||||
0x65, 0x73, 0x73, 0x7d, 0x2f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x5f, 0x61, 0x64,
|
||||
0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0xb5, 0x01, 0x0a, 0x0d, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e,
|
||||
0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x36, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73,
|
||||
0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31,
|
||||
0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x6f, 0x6d, 0x6d, 0x75,
|
||||
0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
|
||||
0x37, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62,
|
||||
0x72, 0x79, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x74, 0x61,
|
||||
0x6c, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
|
||||
0x40, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62,
|
||||
0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75,
|
||||
0x65, 0x72, 0x79, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x74,
|
||||
0x61, 0x6c, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
|
||||
0x65, 0x22, 0x4b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x45, 0x12, 0x43, 0x2f, 0x63, 0x6f, 0x73, 0x6d,
|
||||
0x6f, 0x73, 0x2f, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
|
||||
0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f,
|
||||
0x72, 0x73, 0x2f, 0x7b, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64,
|
||||
0x64, 0x72, 0x65, 0x73, 0x73, 0x7d, 0x2f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x12, 0xe2,
|
||||
0x01, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x61, 0x6c, 0x69,
|
||||
0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x3c, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e,
|
||||
0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62,
|
||||
0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61,
|
||||
0x74, 0x6f, 0x72, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x65, 0x71,
|
||||
0x75, 0x65, 0x73, 0x74, 0x1a, 0x3d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69,
|
||||
0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74,
|
||||
0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f,
|
||||
0x72, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
|
||||
0x6e, 0x73, 0x65, 0x22, 0x4e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x48, 0x12, 0x46, 0x2f, 0x63, 0x6f,
|
||||
0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f,
|
||||
0x6e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61,
|
||||
0x74, 0x6f, 0x72, 0x73, 0x2f, 0x7b, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x5f,
|
||||
0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x7d, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74,
|
||||
0x6f, 0x72, 0x73, 0x12, 0xf7, 0x01, 0x0a, 0x18, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f,
|
||||
0x72, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73,
|
||||
0x12, 0x41, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69,
|
||||
0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51,
|
||||
0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x57, 0x69, 0x74,
|
||||
0x68, 0x64, 0x72, 0x61, 0x77, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75,
|
||||
0x65, 0x73, 0x74, 0x1a, 0x42, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73,
|
||||
0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61,
|
||||
0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72,
|
||||
0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52,
|
||||
0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x54, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4e, 0x12,
|
||||
0x4c, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62,
|
||||
0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x64, 0x65,
|
||||
0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x2f, 0x7b, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61,
|
||||
0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x7d, 0x2f, 0x77, 0x69, 0x74,
|
||||
0x68, 0x64, 0x72, 0x61, 0x77, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0xb8, 0x01,
|
||||
0x0a, 0x0d, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x12,
|
||||
0x36, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62,
|
||||
0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75,
|
||||
0x65, 0x72, 0x79, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c,
|
||||
0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x33, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d,
|
||||
0x12, 0x2b, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69,
|
||||
0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x63,
|
||||
0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x42, 0xfd, 0x01,
|
||||
0x0a, 0x1f, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73,
|
||||
0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61,
|
||||
0x31, 0x42, 0x0a, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a,
|
||||
0x40, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70,
|
||||
0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62,
|
||||
0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x64, 0x69,
|
||||
0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61,
|
||||
0x31, 0xa2, 0x02, 0x03, 0x43, 0x44, 0x58, 0xaa, 0x02, 0x1b, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73,
|
||||
0x2e, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x56, 0x31,
|
||||
0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x1b, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x44,
|
||||
0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5c, 0x56, 0x31, 0x62, 0x65,
|
||||
0x74, 0x61, 0x31, 0xe2, 0x02, 0x27, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x44, 0x69, 0x73,
|
||||
0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61,
|
||||
0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x1d,
|
||||
0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75,
|
||||
0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70,
|
||||
0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73,
|
||||
0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31,
|
||||
0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x6f, 0x6d, 0x6d, 0x75,
|
||||
0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
|
||||
0x22, 0x36, 0x88, 0x02, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x12, 0x2b, 0x2f, 0x63, 0x6f,
|
||||
0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f,
|
||||
0x6e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e,
|
||||
0x69, 0x74, 0x79, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x42, 0xfd, 0x01, 0x0a, 0x1f, 0x63, 0x6f, 0x6d,
|
||||
0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75,
|
||||
0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x0a, 0x51, 0x75,
|
||||
0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x40, 0x63, 0x6f, 0x73, 0x6d,
|
||||
0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73,
|
||||
0x6d, 0x6f, 0x73, 0x2f, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e,
|
||||
0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62,
|
||||
0x75, 0x74, 0x69, 0x6f, 0x6e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43,
|
||||
0x44, 0x58, 0xaa, 0x02, 0x1b, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x44, 0x69, 0x73, 0x74,
|
||||
0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31,
|
||||
0xca, 0x02, 0x1b, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69,
|
||||
0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02,
|
||||
0x27, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75,
|
||||
0x74, 0x69, 0x6f, 0x6e, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42,
|
||||
0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x1d, 0x43, 0x6f, 0x73, 0x6d, 0x6f,
|
||||
0x73, 0x3a, 0x3a, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x3a,
|
||||
0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
}
|
||||
|
||||
var (
|
||||
|
||||
@ -54,7 +54,11 @@ type QueryClient interface {
|
||||
DelegatorValidators(ctx context.Context, in *QueryDelegatorValidatorsRequest, opts ...grpc.CallOption) (*QueryDelegatorValidatorsResponse, error)
|
||||
// DelegatorWithdrawAddress queries withdraw address of a delegator.
|
||||
DelegatorWithdrawAddress(ctx context.Context, in *QueryDelegatorWithdrawAddressRequest, opts ...grpc.CallOption) (*QueryDelegatorWithdrawAddressResponse, error)
|
||||
// Deprecated: Do not use.
|
||||
// CommunityPool queries the community pool coins.
|
||||
//
|
||||
// Deprecated: Prefer to use x/protocolpool module's CommunityPool rpc method.
|
||||
// Since: cosmos-sdk 0.50
|
||||
CommunityPool(ctx context.Context, in *QueryCommunityPoolRequest, opts ...grpc.CallOption) (*QueryCommunityPoolResponse, error)
|
||||
}
|
||||
|
||||
@ -147,6 +151,7 @@ func (c *queryClient) DelegatorWithdrawAddress(ctx context.Context, in *QueryDel
|
||||
return out, nil
|
||||
}
|
||||
|
||||
// Deprecated: Do not use.
|
||||
func (c *queryClient) CommunityPool(ctx context.Context, in *QueryCommunityPoolRequest, opts ...grpc.CallOption) (*QueryCommunityPoolResponse, error) {
|
||||
out := new(QueryCommunityPoolResponse)
|
||||
err := c.cc.Invoke(ctx, Query_CommunityPool_FullMethodName, in, out, opts...)
|
||||
@ -179,7 +184,11 @@ type QueryServer interface {
|
||||
DelegatorValidators(context.Context, *QueryDelegatorValidatorsRequest) (*QueryDelegatorValidatorsResponse, error)
|
||||
// DelegatorWithdrawAddress queries withdraw address of a delegator.
|
||||
DelegatorWithdrawAddress(context.Context, *QueryDelegatorWithdrawAddressRequest) (*QueryDelegatorWithdrawAddressResponse, error)
|
||||
// Deprecated: Do not use.
|
||||
// CommunityPool queries the community pool coins.
|
||||
//
|
||||
// Deprecated: Prefer to use x/protocolpool module's CommunityPool rpc method.
|
||||
// Since: cosmos-sdk 0.50
|
||||
CommunityPool(context.Context, *QueryCommunityPoolRequest) (*QueryCommunityPoolResponse, error)
|
||||
mustEmbedUnimplementedQueryServer()
|
||||
}
|
||||
|
||||
@ -6720,6 +6720,11 @@ func (x *MsgWithdrawValidatorCommissionResponse) GetAmount() []*v1beta1.Coin {
|
||||
|
||||
// MsgFundCommunityPool allows an account to directly
|
||||
// fund the community pool.
|
||||
//
|
||||
// Deprecated: Use x/protocolpool module's MsgFundCommunityPool instead.
|
||||
// Since: cosmos-sdk 0.50
|
||||
//
|
||||
// Deprecated: Do not use.
|
||||
type MsgFundCommunityPool struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
@ -6764,6 +6769,11 @@ func (x *MsgFundCommunityPool) GetDepositor() string {
|
||||
}
|
||||
|
||||
// MsgFundCommunityPoolResponse defines the Msg/FundCommunityPool response type.
|
||||
//
|
||||
// Deprecated
|
||||
// Since: cosmos-sdk 0.50
|
||||
//
|
||||
// Deprecated: Do not use.
|
||||
type MsgFundCommunityPoolResponse struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
@ -6870,11 +6880,10 @@ func (*MsgUpdateParamsResponse) Descriptor() ([]byte, []int) {
|
||||
return file_cosmos_distribution_v1beta1_tx_proto_rawDescGZIP(), []int{9}
|
||||
}
|
||||
|
||||
// MsgCommunityPoolSpend defines a message for sending tokens from the community
|
||||
// pool to another account. This message is typically executed via a governance
|
||||
// proposal with the governance module being the executing authority.
|
||||
// Deprecated: Use x/protocolpool module's MsgCommunityPoolSpend instead
|
||||
// Since: cosmos-sdk 0.50
|
||||
//
|
||||
// Since: cosmos-sdk 0.47
|
||||
// Deprecated: Do not use.
|
||||
type MsgCommunityPoolSpend struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
@ -6930,7 +6939,10 @@ func (x *MsgCommunityPoolSpend) GetAmount() []*v1beta1.Coin {
|
||||
// MsgCommunityPoolSpendResponse defines the response to executing a
|
||||
// MsgCommunityPoolSpend message.
|
||||
//
|
||||
// Since: cosmos-sdk 0.47
|
||||
// Deprecated
|
||||
// Since: cosmos-sdk 0.50
|
||||
//
|
||||
// Deprecated: Do not use.
|
||||
type MsgCommunityPoolSpendResponse struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
@ -7125,7 +7137,7 @@ var file_cosmos_distribution_v1beta1_tx_proto_rawDesc = []byte{
|
||||
0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e,
|
||||
0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x0c, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79,
|
||||
0x5f, 0x63, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f,
|
||||
0x75, 0x6e, 0x74, 0x22, 0x85, 0x02, 0x0a, 0x14, 0x4d, 0x73, 0x67, 0x46, 0x75, 0x6e, 0x64, 0x43,
|
||||
0x75, 0x6e, 0x74, 0x22, 0x87, 0x02, 0x0a, 0x14, 0x4d, 0x73, 0x67, 0x46, 0x75, 0x6e, 0x64, 0x43,
|
||||
0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x79, 0x0a, 0x06,
|
||||
0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63,
|
||||
0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74,
|
||||
@ -7138,152 +7150,153 @@ var file_cosmos_distribution_v1beta1_tx_proto_rawDesc = []byte{
|
||||
0x69, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14,
|
||||
0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74,
|
||||
0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x3a,
|
||||
0x3a, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x82, 0xe7, 0xb0, 0x2a, 0x09, 0x64, 0x65,
|
||||
0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x8a, 0xe7, 0xb0, 0x2a, 0x1f, 0x63, 0x6f, 0x73, 0x6d,
|
||||
0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x46, 0x75, 0x6e, 0x64, 0x43, 0x6f,
|
||||
0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x22, 0x1e, 0x0a, 0x1c, 0x4d,
|
||||
0x73, 0x67, 0x46, 0x75, 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50,
|
||||
0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xcd, 0x01, 0x0a, 0x0f,
|
||||
0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12,
|
||||
0x36, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01,
|
||||
0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41,
|
||||
0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x61, 0x75,
|
||||
0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x46, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d,
|
||||
0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73,
|
||||
0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31,
|
||||
0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x42, 0x09, 0xc8, 0xde,
|
||||
0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x3a,
|
||||
0x3a, 0x82, 0xe7, 0xb0, 0x2a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x8a,
|
||||
0xe7, 0xb0, 0x2a, 0x27, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x64,
|
||||
0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x4d, 0x73, 0x67, 0x55,
|
||||
0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x19, 0x0a, 0x17, 0x4d,
|
||||
0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65,
|
||||
0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xa3, 0x02, 0x0a, 0x15, 0x4d, 0x73, 0x67, 0x43, 0x6f,
|
||||
0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x70, 0x65, 0x6e, 0x64,
|
||||
0x12, 0x36, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20,
|
||||
0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e,
|
||||
0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x61,
|
||||
0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x63, 0x69,
|
||||
0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x63,
|
||||
0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x79, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74,
|
||||
0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e,
|
||||
0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69,
|
||||
0x6e, 0x42, 0x46, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75,
|
||||
0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73,
|
||||
0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f,
|
||||
0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x0c, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x5f, 0x63,
|
||||
0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e,
|
||||
0x74, 0x3a, 0x39, 0x82, 0xe7, 0xb0, 0x2a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74,
|
||||
0x79, 0x8a, 0xe7, 0xb0, 0x2a, 0x26, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b,
|
||||
0x2f, 0x64, 0x69, 0x73, 0x74, 0x72, 0x2f, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e,
|
||||
0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x22, 0x1f, 0x0a, 0x1d,
|
||||
0x4d, 0x73, 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c,
|
||||
0x53, 0x70, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xe5, 0x02,
|
||||
0x0a, 0x1e, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x56, 0x61, 0x6c, 0x69,
|
||||
0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x50, 0x6f, 0x6f, 0x6c,
|
||||
0x12, 0x36, 0x0a, 0x09, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20,
|
||||
0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e,
|
||||
0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x64,
|
||||
0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x12, 0x4e, 0x0a, 0x11, 0x76, 0x61, 0x6c, 0x69,
|
||||
0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20,
|
||||
0x01, 0x28, 0x09, 0x42, 0x21, 0xd2, 0xb4, 0x2d, 0x1d, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e,
|
||||
0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73,
|
||||
0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x10, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f,
|
||||
0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x79, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75,
|
||||
0x6e, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f,
|
||||
0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43,
|
||||
0x6f, 0x69, 0x6e, 0x42, 0x46, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74,
|
||||
0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63,
|
||||
0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e,
|
||||
0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x0c, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79,
|
||||
0x5f, 0x63, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f,
|
||||
0x75, 0x6e, 0x74, 0x3a, 0x40, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x82, 0xe7, 0xb0,
|
||||
0x2a, 0x09, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x8a, 0xe7, 0xb0, 0x2a, 0x25,
|
||||
0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x64, 0x69, 0x73, 0x74, 0x72,
|
||||
0x2f, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x56, 0x61, 0x6c, 0x52, 0x65,
|
||||
0x77, 0x61, 0x72, 0x64, 0x73, 0x22, 0x28, 0x0a, 0x26, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x70, 0x6f,
|
||||
0x73, 0x69, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61,
|
||||
0x72, 0x64, 0x73, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32,
|
||||
0xec, 0x07, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x84, 0x01, 0x0a, 0x12, 0x53, 0x65, 0x74, 0x57,
|
||||
0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x32,
|
||||
0x3c, 0x18, 0x01, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x82, 0xe7, 0xb0, 0x2a, 0x09,
|
||||
0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x8a, 0xe7, 0xb0, 0x2a, 0x1f, 0x63, 0x6f,
|
||||
0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x46, 0x75, 0x6e, 0x64,
|
||||
0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x22, 0x22, 0x0a,
|
||||
0x1c, 0x4d, 0x73, 0x67, 0x46, 0x75, 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74,
|
||||
0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x3a, 0x02, 0x18,
|
||||
0x01, 0x22, 0xcd, 0x01, 0x0a, 0x0f, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50,
|
||||
0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x36, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69,
|
||||
0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f,
|
||||
0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69,
|
||||
0x6e, 0x67, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x46, 0x0a,
|
||||
0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e,
|
||||
0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74,
|
||||
0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x72, 0x61,
|
||||
0x6d, 0x73, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x70,
|
||||
0x61, 0x72, 0x61, 0x6d, 0x73, 0x3a, 0x3a, 0x82, 0xe7, 0xb0, 0x2a, 0x09, 0x61, 0x75, 0x74, 0x68,
|
||||
0x6f, 0x72, 0x69, 0x74, 0x79, 0x8a, 0xe7, 0xb0, 0x2a, 0x27, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73,
|
||||
0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f,
|
||||
0x6e, 0x2f, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d,
|
||||
0x73, 0x22, 0x19, 0x0a, 0x17, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61,
|
||||
0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xa5, 0x02, 0x0a,
|
||||
0x15, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f,
|
||||
0x6c, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x12, 0x36, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72,
|
||||
0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63,
|
||||
0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72,
|
||||
0x69, 0x6e, 0x67, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x1c,
|
||||
0x0a, 0x09, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28,
|
||||
0x09, 0x52, 0x09, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x79, 0x0a, 0x06,
|
||||
0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63,
|
||||
0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74,
|
||||
0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x46, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f,
|
||||
0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d,
|
||||
0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79,
|
||||
0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x0c, 0x6c, 0x65,
|
||||
0x67, 0x61, 0x63, 0x79, 0x5f, 0x63, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52,
|
||||
0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x3b, 0x18, 0x01, 0x82, 0xe7, 0xb0, 0x2a, 0x09,
|
||||
0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x8a, 0xe7, 0xb0, 0x2a, 0x26, 0x63, 0x6f,
|
||||
0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x64, 0x69, 0x73, 0x74, 0x72, 0x2f, 0x4d,
|
||||
0x73, 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x53,
|
||||
0x70, 0x65, 0x6e, 0x64, 0x22, 0x23, 0x0a, 0x1d, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x75,
|
||||
0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73,
|
||||
0x70, 0x6f, 0x6e, 0x73, 0x65, 0x3a, 0x02, 0x18, 0x01, 0x22, 0xe5, 0x02, 0x0a, 0x1e, 0x4d, 0x73,
|
||||
0x67, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f,
|
||||
0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x36, 0x0a, 0x09,
|
||||
0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42,
|
||||
0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72,
|
||||
0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x64, 0x65, 0x70, 0x6f, 0x73,
|
||||
0x69, 0x74, 0x6f, 0x72, 0x12, 0x4e, 0x0a, 0x11, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f,
|
||||
0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42,
|
||||
0x21, 0xd2, 0xb4, 0x2d, 0x1d, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x56, 0x61, 0x6c, 0x69,
|
||||
0x64, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69,
|
||||
0x6e, 0x67, 0x52, 0x10, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64,
|
||||
0x72, 0x65, 0x73, 0x73, 0x12, 0x79, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03,
|
||||
0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61,
|
||||
0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42,
|
||||
0x46, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e,
|
||||
0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f,
|
||||
0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e,
|
||||
0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x0c, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x5f, 0x63, 0x6f, 0x69,
|
||||
0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a,
|
||||
0x40, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x82, 0xe7, 0xb0, 0x2a, 0x09, 0x64, 0x65,
|
||||
0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x8a, 0xe7, 0xb0, 0x2a, 0x25, 0x63, 0x6f, 0x73, 0x6d,
|
||||
0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x64, 0x69, 0x73, 0x74, 0x72, 0x2f, 0x4d, 0x73, 0x67,
|
||||
0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x56, 0x61, 0x6c, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64,
|
||||
0x73, 0x22, 0x28, 0x0a, 0x26, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x56,
|
||||
0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x50,
|
||||
0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xf1, 0x07, 0x0a, 0x03,
|
||||
0x4d, 0x73, 0x67, 0x12, 0x84, 0x01, 0x0a, 0x12, 0x53, 0x65, 0x74, 0x57, 0x69, 0x74, 0x68, 0x64,
|
||||
0x72, 0x61, 0x77, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x32, 0x2e, 0x63, 0x6f, 0x73,
|
||||
0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e,
|
||||
0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x57,
|
||||
0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x1a, 0x3a,
|
||||
0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75,
|
||||
0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67,
|
||||
0x53, 0x65, 0x74, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x41, 0x64, 0x64, 0x72, 0x65,
|
||||
0x73, 0x73, 0x1a, 0x3a, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74,
|
||||
0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31,
|
||||
0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x41,
|
||||
0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x93,
|
||||
0x01, 0x0a, 0x17, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x44, 0x65, 0x6c, 0x65, 0x67,
|
||||
0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x37, 0x2e, 0x63, 0x6f, 0x73,
|
||||
0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e,
|
||||
0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68,
|
||||
0x64, 0x72, 0x61, 0x77, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x77,
|
||||
0x61, 0x72, 0x64, 0x1a, 0x3f, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73,
|
||||
0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61,
|
||||
0x31, 0x2e, 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x44, 0x65, 0x6c,
|
||||
0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70,
|
||||
0x6f, 0x6e, 0x73, 0x65, 0x12, 0x9f, 0x01, 0x0a, 0x1b, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61,
|
||||
0x77, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73,
|
||||
0x73, 0x69, 0x6f, 0x6e, 0x12, 0x3b, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69,
|
||||
0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74,
|
||||
0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x56, 0x61,
|
||||
0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f,
|
||||
0x6e, 0x1a, 0x43, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72,
|
||||
0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e,
|
||||
0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x56, 0x61, 0x6c, 0x69, 0x64,
|
||||
0x61, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65,
|
||||
0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x81, 0x01, 0x0a, 0x11, 0x46, 0x75, 0x6e, 0x64, 0x43,
|
||||
0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x31, 0x2e, 0x63,
|
||||
0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69,
|
||||
0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x46, 0x75,
|
||||
0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x1a,
|
||||
0x39, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62,
|
||||
0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x93, 0x01, 0x0a, 0x17, 0x57,
|
||||
0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72,
|
||||
0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x37, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e,
|
||||
0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62,
|
||||
0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77,
|
||||
0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x1a,
|
||||
0x3f, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62,
|
||||
0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73,
|
||||
0x67, 0x46, 0x75, 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f,
|
||||
0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x72, 0x0a, 0x0c, 0x55, 0x70,
|
||||
0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x2c, 0x2e, 0x63, 0x6f, 0x73,
|
||||
0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e,
|
||||
0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61,
|
||||
0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x34, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f,
|
||||
0x67, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74,
|
||||
0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
|
||||
0x12, 0x9f, 0x01, 0x0a, 0x1b, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x56, 0x61, 0x6c,
|
||||
0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e,
|
||||
0x12, 0x3b, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69,
|
||||
0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d,
|
||||
0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61,
|
||||
0x74, 0x6f, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0x43, 0x2e,
|
||||
0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74,
|
||||
0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x57,
|
||||
0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72,
|
||||
0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
|
||||
0x73, 0x65, 0x12, 0x86, 0x01, 0x0a, 0x11, 0x46, 0x75, 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75,
|
||||
0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x31, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f,
|
||||
0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76,
|
||||
0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
|
||||
0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x84,
|
||||
0x01, 0x0a, 0x12, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c,
|
||||
0x53, 0x70, 0x65, 0x6e, 0x64, 0x12, 0x32, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64,
|
||||
0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65,
|
||||
0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79,
|
||||
0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x1a, 0x3a, 0x2e, 0x63, 0x6f, 0x73, 0x6d,
|
||||
0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x46, 0x75, 0x6e, 0x64, 0x43, 0x6f,
|
||||
0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x1a, 0x39, 0x2e, 0x63, 0x6f,
|
||||
0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f,
|
||||
0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x46, 0x75, 0x6e,
|
||||
0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65,
|
||||
0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x88, 0x02, 0x01, 0x12, 0x72, 0x0a, 0x0c, 0x55,
|
||||
0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x2c, 0x2e, 0x63, 0x6f,
|
||||
0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f,
|
||||
0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64,
|
||||
0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x34, 0x2e, 0x63, 0x6f, 0x73, 0x6d,
|
||||
0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e,
|
||||
0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x75,
|
||||
0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73,
|
||||
0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x9f, 0x01, 0x0a, 0x1b, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69,
|
||||
0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64,
|
||||
0x73, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x3b, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64,
|
||||
0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74,
|
||||
0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
|
||||
0x84, 0x01, 0x0a, 0x12, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f,
|
||||
0x6c, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x12, 0x32, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e,
|
||||
0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62,
|
||||
0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74,
|
||||
0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x1a, 0x3a, 0x2e, 0x63, 0x6f, 0x73,
|
||||
0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e,
|
||||
0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x6d, 0x6d,
|
||||
0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x52, 0x65,
|
||||
0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x9f, 0x01, 0x0a, 0x1b, 0x44, 0x65, 0x70, 0x6f, 0x73,
|
||||
0x69, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72,
|
||||
0x64, 0x73, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x3b, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e,
|
||||
0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62,
|
||||
0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x56,
|
||||
0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x50,
|
||||
0x6f, 0x6f, 0x6c, 0x1a, 0x43, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73,
|
||||
0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61,
|
||||
0x31, 0x2e, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x56, 0x61, 0x6c, 0x69,
|
||||
0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x50, 0x6f, 0x6f, 0x6c,
|
||||
0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x1a, 0x05, 0x80, 0xe7, 0xb0, 0x2a, 0x01, 0x42,
|
||||
0xfe, 0x01, 0x0a, 0x1f, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64,
|
||||
0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65,
|
||||
0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x56, 0x61,
|
||||
0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x50, 0x6f,
|
||||
0x6f, 0x6c, 0x1a, 0x43, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74,
|
||||
0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31,
|
||||
0x2e, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64,
|
||||
0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x50, 0x6f, 0x6f, 0x6c, 0x52,
|
||||
0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x1a, 0x05, 0x80, 0xe7, 0xb0, 0x2a, 0x01, 0x42, 0xfe,
|
||||
0x01, 0x0a, 0x1f, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69,
|
||||
0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74,
|
||||
0x61, 0x31, 0x42, 0x07, 0x54, 0x78, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x40, 0x63,
|
||||
0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f,
|
||||
0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74,
|
||||
0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x64, 0x69, 0x73, 0x74,
|
||||
0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2,
|
||||
0x02, 0x03, 0x43, 0x44, 0x58, 0xaa, 0x02, 0x1b, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x44,
|
||||
0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x56, 0x31, 0x62, 0x65,
|
||||
0x74, 0x61, 0x31, 0xca, 0x02, 0x1b, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x44, 0x69, 0x73,
|
||||
0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61,
|
||||
0x31, 0xe2, 0x02, 0x27, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x44, 0x69, 0x73, 0x74, 0x72,
|
||||
0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c,
|
||||
0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x1d, 0x43, 0x6f,
|
||||
0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69,
|
||||
0x6f, 0x6e, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa8, 0xe2, 0x1e, 0x01, 0x62,
|
||||
0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
0x74, 0x61, 0x31, 0x42, 0x07, 0x54, 0x78, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x40,
|
||||
0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69,
|
||||
0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75,
|
||||
0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x64, 0x69, 0x73,
|
||||
0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31,
|
||||
0xa2, 0x02, 0x03, 0x43, 0x44, 0x58, 0xaa, 0x02, 0x1b, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e,
|
||||
0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x56, 0x31, 0x62,
|
||||
0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x1b, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x44, 0x69,
|
||||
0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74,
|
||||
0x61, 0x31, 0xe2, 0x02, 0x27, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x44, 0x69, 0x73, 0x74,
|
||||
0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31,
|
||||
0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x1d, 0x43,
|
||||
0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74,
|
||||
0x69, 0x6f, 0x6e, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa8, 0xe2, 0x1e, 0x01,
|
||||
0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
}
|
||||
|
||||
var (
|
||||
|
||||
@ -41,8 +41,12 @@ type MsgClient interface {
|
||||
// WithdrawValidatorCommission defines a method to withdraw the
|
||||
// full commission to the validator address.
|
||||
WithdrawValidatorCommission(ctx context.Context, in *MsgWithdrawValidatorCommission, opts ...grpc.CallOption) (*MsgWithdrawValidatorCommissionResponse, error)
|
||||
// Deprecated: Do not use.
|
||||
// FundCommunityPool defines a method to allow an account to directly
|
||||
// fund the community pool.
|
||||
//
|
||||
// Deprecated: Use x/protocolpool module's FundCommunityPool instead.
|
||||
// Since: cosmos-sdk 0.50
|
||||
FundCommunityPool(ctx context.Context, in *MsgFundCommunityPool, opts ...grpc.CallOption) (*MsgFundCommunityPoolResponse, error)
|
||||
// UpdateParams defines a governance operation for updating the x/distribution
|
||||
// module parameters. The authority is defined in the keeper.
|
||||
@ -54,7 +58,8 @@ type MsgClient interface {
|
||||
// could be the governance module itself. The authority is defined in the
|
||||
// keeper.
|
||||
//
|
||||
// Since: cosmos-sdk 0.47
|
||||
// Deprecated: Use x/protocolpool module's CommunityPoolSpend instead.
|
||||
// Since: cosmos-sdk 0.50
|
||||
CommunityPoolSpend(ctx context.Context, in *MsgCommunityPoolSpend, opts ...grpc.CallOption) (*MsgCommunityPoolSpendResponse, error)
|
||||
// DepositValidatorRewardsPool defines a method to provide additional rewards
|
||||
// to delegators to a specific validator.
|
||||
@ -98,6 +103,7 @@ func (c *msgClient) WithdrawValidatorCommission(ctx context.Context, in *MsgWith
|
||||
return out, nil
|
||||
}
|
||||
|
||||
// Deprecated: Do not use.
|
||||
func (c *msgClient) FundCommunityPool(ctx context.Context, in *MsgFundCommunityPool, opts ...grpc.CallOption) (*MsgFundCommunityPoolResponse, error) {
|
||||
out := new(MsgFundCommunityPoolResponse)
|
||||
err := c.cc.Invoke(ctx, Msg_FundCommunityPool_FullMethodName, in, out, opts...)
|
||||
@ -147,8 +153,12 @@ type MsgServer interface {
|
||||
// WithdrawValidatorCommission defines a method to withdraw the
|
||||
// full commission to the validator address.
|
||||
WithdrawValidatorCommission(context.Context, *MsgWithdrawValidatorCommission) (*MsgWithdrawValidatorCommissionResponse, error)
|
||||
// Deprecated: Do not use.
|
||||
// FundCommunityPool defines a method to allow an account to directly
|
||||
// fund the community pool.
|
||||
//
|
||||
// Deprecated: Use x/protocolpool module's FundCommunityPool instead.
|
||||
// Since: cosmos-sdk 0.50
|
||||
FundCommunityPool(context.Context, *MsgFundCommunityPool) (*MsgFundCommunityPoolResponse, error)
|
||||
// UpdateParams defines a governance operation for updating the x/distribution
|
||||
// module parameters. The authority is defined in the keeper.
|
||||
@ -160,7 +170,8 @@ type MsgServer interface {
|
||||
// could be the governance module itself. The authority is defined in the
|
||||
// keeper.
|
||||
//
|
||||
// Since: cosmos-sdk 0.47
|
||||
// Deprecated: Use x/protocolpool module's CommunityPoolSpend instead.
|
||||
// Since: cosmos-sdk 0.50
|
||||
CommunityPoolSpend(context.Context, *MsgCommunityPoolSpend) (*MsgCommunityPoolSpendResponse, error)
|
||||
// DepositValidatorRewardsPool defines a method to provide additional rewards
|
||||
// to delegators to a specific validator.
|
||||
|
||||
581
api/cosmos/protocolpool/module/v1/module.pulsar.go
Normal file
581
api/cosmos/protocolpool/module/v1/module.pulsar.go
Normal file
@ -0,0 +1,581 @@
|
||||
// Code generated by protoc-gen-go-pulsar. DO NOT EDIT.
|
||||
package modulev1
|
||||
|
||||
import (
|
||||
_ "cosmossdk.io/api/cosmos/app/v1alpha1"
|
||||
fmt "fmt"
|
||||
runtime "github.com/cosmos/cosmos-proto/runtime"
|
||||
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
||||
protoiface "google.golang.org/protobuf/runtime/protoiface"
|
||||
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
||||
io "io"
|
||||
reflect "reflect"
|
||||
sync "sync"
|
||||
)
|
||||
|
||||
var (
|
||||
md_Module protoreflect.MessageDescriptor
|
||||
fd_Module_authority protoreflect.FieldDescriptor
|
||||
)
|
||||
|
||||
func init() {
|
||||
file_cosmos_protocolpool_module_v1_module_proto_init()
|
||||
md_Module = File_cosmos_protocolpool_module_v1_module_proto.Messages().ByName("Module")
|
||||
fd_Module_authority = md_Module.Fields().ByName("authority")
|
||||
}
|
||||
|
||||
var _ protoreflect.Message = (*fastReflection_Module)(nil)
|
||||
|
||||
type fastReflection_Module Module
|
||||
|
||||
func (x *Module) ProtoReflect() protoreflect.Message {
|
||||
return (*fastReflection_Module)(x)
|
||||
}
|
||||
|
||||
func (x *Module) slowProtoReflect() protoreflect.Message {
|
||||
mi := &file_cosmos_protocolpool_module_v1_module_proto_msgTypes[0]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
var _fastReflection_Module_messageType fastReflection_Module_messageType
|
||||
var _ protoreflect.MessageType = fastReflection_Module_messageType{}
|
||||
|
||||
type fastReflection_Module_messageType struct{}
|
||||
|
||||
func (x fastReflection_Module_messageType) Zero() protoreflect.Message {
|
||||
return (*fastReflection_Module)(nil)
|
||||
}
|
||||
func (x fastReflection_Module_messageType) New() protoreflect.Message {
|
||||
return new(fastReflection_Module)
|
||||
}
|
||||
func (x fastReflection_Module_messageType) Descriptor() protoreflect.MessageDescriptor {
|
||||
return md_Module
|
||||
}
|
||||
|
||||
// Descriptor returns message descriptor, which contains only the protobuf
|
||||
// type information for the message.
|
||||
func (x *fastReflection_Module) Descriptor() protoreflect.MessageDescriptor {
|
||||
return md_Module
|
||||
}
|
||||
|
||||
// Type returns the message type, which encapsulates both Go and protobuf
|
||||
// type information. If the Go type information is not needed,
|
||||
// it is recommended that the message descriptor be used instead.
|
||||
func (x *fastReflection_Module) Type() protoreflect.MessageType {
|
||||
return _fastReflection_Module_messageType
|
||||
}
|
||||
|
||||
// New returns a newly allocated and mutable empty message.
|
||||
func (x *fastReflection_Module) New() protoreflect.Message {
|
||||
return new(fastReflection_Module)
|
||||
}
|
||||
|
||||
// Interface unwraps the message reflection interface and
|
||||
// returns the underlying ProtoMessage interface.
|
||||
func (x *fastReflection_Module) Interface() protoreflect.ProtoMessage {
|
||||
return (*Module)(x)
|
||||
}
|
||||
|
||||
// Range iterates over every populated field in an undefined order,
|
||||
// calling f for each field descriptor and value encountered.
|
||||
// Range returns immediately if f returns false.
|
||||
// While iterating, mutating operations may only be performed
|
||||
// on the current field descriptor.
|
||||
func (x *fastReflection_Module) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) {
|
||||
if x.Authority != "" {
|
||||
value := protoreflect.ValueOfString(x.Authority)
|
||||
if !f(fd_Module_authority, value) {
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Has reports whether a field is populated.
|
||||
//
|
||||
// Some fields have the property of nullability where it is possible to
|
||||
// distinguish between the default value of a field and whether the field
|
||||
// was explicitly populated with the default value. Singular message fields,
|
||||
// member fields of a oneof, and proto2 scalar fields are nullable. Such
|
||||
// fields are populated only if explicitly set.
|
||||
//
|
||||
// In other cases (aside from the nullable cases above),
|
||||
// a proto3 scalar field is populated if it contains a non-zero value, and
|
||||
// a repeated field is populated if it is non-empty.
|
||||
func (x *fastReflection_Module) Has(fd protoreflect.FieldDescriptor) bool {
|
||||
switch fd.FullName() {
|
||||
case "cosmos.protocolpool.module.v1.Module.authority":
|
||||
return x.Authority != ""
|
||||
default:
|
||||
if fd.IsExtension() {
|
||||
panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.protocolpool.module.v1.Module"))
|
||||
}
|
||||
panic(fmt.Errorf("message cosmos.protocolpool.module.v1.Module does not contain field %s", fd.FullName()))
|
||||
}
|
||||
}
|
||||
|
||||
// Clear clears the field such that a subsequent Has call reports false.
|
||||
//
|
||||
// Clearing an extension field clears both the extension type and value
|
||||
// associated with the given field number.
|
||||
//
|
||||
// Clear is a mutating operation and unsafe for concurrent use.
|
||||
func (x *fastReflection_Module) Clear(fd protoreflect.FieldDescriptor) {
|
||||
switch fd.FullName() {
|
||||
case "cosmos.protocolpool.module.v1.Module.authority":
|
||||
x.Authority = ""
|
||||
default:
|
||||
if fd.IsExtension() {
|
||||
panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.protocolpool.module.v1.Module"))
|
||||
}
|
||||
panic(fmt.Errorf("message cosmos.protocolpool.module.v1.Module does not contain field %s", fd.FullName()))
|
||||
}
|
||||
}
|
||||
|
||||
// Get retrieves the value for a field.
|
||||
//
|
||||
// For unpopulated scalars, it returns the default value, where
|
||||
// the default value of a bytes scalar is guaranteed to be a copy.
|
||||
// For unpopulated composite types, it returns an empty, read-only view
|
||||
// of the value; to obtain a mutable reference, use Mutable.
|
||||
func (x *fastReflection_Module) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value {
|
||||
switch descriptor.FullName() {
|
||||
case "cosmos.protocolpool.module.v1.Module.authority":
|
||||
value := x.Authority
|
||||
return protoreflect.ValueOfString(value)
|
||||
default:
|
||||
if descriptor.IsExtension() {
|
||||
panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.protocolpool.module.v1.Module"))
|
||||
}
|
||||
panic(fmt.Errorf("message cosmos.protocolpool.module.v1.Module does not contain field %s", descriptor.FullName()))
|
||||
}
|
||||
}
|
||||
|
||||
// Set stores the value for a field.
|
||||
//
|
||||
// For a field belonging to a oneof, it implicitly clears any other field
|
||||
// that may be currently set within the same oneof.
|
||||
// For extension fields, it implicitly stores the provided ExtensionType.
|
||||
// When setting a composite type, it is unspecified whether the stored value
|
||||
// aliases the source's memory in any way. If the composite value is an
|
||||
// empty, read-only value, then it panics.
|
||||
//
|
||||
// Set is a mutating operation and unsafe for concurrent use.
|
||||
func (x *fastReflection_Module) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) {
|
||||
switch fd.FullName() {
|
||||
case "cosmos.protocolpool.module.v1.Module.authority":
|
||||
x.Authority = value.Interface().(string)
|
||||
default:
|
||||
if fd.IsExtension() {
|
||||
panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.protocolpool.module.v1.Module"))
|
||||
}
|
||||
panic(fmt.Errorf("message cosmos.protocolpool.module.v1.Module does not contain field %s", fd.FullName()))
|
||||
}
|
||||
}
|
||||
|
||||
// Mutable returns a mutable reference to a composite type.
|
||||
//
|
||||
// If the field is unpopulated, it may allocate a composite value.
|
||||
// For a field belonging to a oneof, it implicitly clears any other field
|
||||
// that may be currently set within the same oneof.
|
||||
// For extension fields, it implicitly stores the provided ExtensionType
|
||||
// if not already stored.
|
||||
// It panics if the field does not contain a composite type.
|
||||
//
|
||||
// Mutable is a mutating operation and unsafe for concurrent use.
|
||||
func (x *fastReflection_Module) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value {
|
||||
switch fd.FullName() {
|
||||
case "cosmos.protocolpool.module.v1.Module.authority":
|
||||
panic(fmt.Errorf("field authority of message cosmos.protocolpool.module.v1.Module is not mutable"))
|
||||
default:
|
||||
if fd.IsExtension() {
|
||||
panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.protocolpool.module.v1.Module"))
|
||||
}
|
||||
panic(fmt.Errorf("message cosmos.protocolpool.module.v1.Module does not contain field %s", fd.FullName()))
|
||||
}
|
||||
}
|
||||
|
||||
// NewField returns a new value that is assignable to the field
|
||||
// for the given descriptor. For scalars, this returns the default value.
|
||||
// For lists, maps, and messages, this returns a new, empty, mutable value.
|
||||
func (x *fastReflection_Module) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value {
|
||||
switch fd.FullName() {
|
||||
case "cosmos.protocolpool.module.v1.Module.authority":
|
||||
return protoreflect.ValueOfString("")
|
||||
default:
|
||||
if fd.IsExtension() {
|
||||
panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.protocolpool.module.v1.Module"))
|
||||
}
|
||||
panic(fmt.Errorf("message cosmos.protocolpool.module.v1.Module does not contain field %s", fd.FullName()))
|
||||
}
|
||||
}
|
||||
|
||||
// WhichOneof reports which field within the oneof is populated,
|
||||
// returning nil if none are populated.
|
||||
// It panics if the oneof descriptor does not belong to this message.
|
||||
func (x *fastReflection_Module) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor {
|
||||
switch d.FullName() {
|
||||
default:
|
||||
panic(fmt.Errorf("%s is not a oneof field in cosmos.protocolpool.module.v1.Module", d.FullName()))
|
||||
}
|
||||
panic("unreachable")
|
||||
}
|
||||
|
||||
// GetUnknown retrieves the entire list of unknown fields.
|
||||
// The caller may only mutate the contents of the RawFields
|
||||
// if the mutated bytes are stored back into the message with SetUnknown.
|
||||
func (x *fastReflection_Module) GetUnknown() protoreflect.RawFields {
|
||||
return x.unknownFields
|
||||
}
|
||||
|
||||
// SetUnknown stores an entire list of unknown fields.
|
||||
// The raw fields must be syntactically valid according to the wire format.
|
||||
// An implementation may panic if this is not the case.
|
||||
// Once stored, the caller must not mutate the content of the RawFields.
|
||||
// An empty RawFields may be passed to clear the fields.
|
||||
//
|
||||
// SetUnknown is a mutating operation and unsafe for concurrent use.
|
||||
func (x *fastReflection_Module) SetUnknown(fields protoreflect.RawFields) {
|
||||
x.unknownFields = fields
|
||||
}
|
||||
|
||||
// IsValid reports whether the message is valid.
|
||||
//
|
||||
// An invalid message is an empty, read-only value.
|
||||
//
|
||||
// An invalid message often corresponds to a nil pointer of the concrete
|
||||
// message type, but the details are implementation dependent.
|
||||
// Validity is not part of the protobuf data model, and may not
|
||||
// be preserved in marshaling or other operations.
|
||||
func (x *fastReflection_Module) IsValid() bool {
|
||||
return x != nil
|
||||
}
|
||||
|
||||
// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations.
|
||||
// This method may return nil.
|
||||
//
|
||||
// The returned methods type is identical to
|
||||
// "google.golang.org/protobuf/runtime/protoiface".Methods.
|
||||
// Consult the protoiface package documentation for details.
|
||||
func (x *fastReflection_Module) ProtoMethods() *protoiface.Methods {
|
||||
size := func(input protoiface.SizeInput) protoiface.SizeOutput {
|
||||
x := input.Message.Interface().(*Module)
|
||||
if x == nil {
|
||||
return protoiface.SizeOutput{
|
||||
NoUnkeyedLiterals: input.NoUnkeyedLiterals,
|
||||
Size: 0,
|
||||
}
|
||||
}
|
||||
options := runtime.SizeInputToOptions(input)
|
||||
_ = options
|
||||
var n int
|
||||
var l int
|
||||
_ = l
|
||||
l = len(x.Authority)
|
||||
if l > 0 {
|
||||
n += 1 + l + runtime.Sov(uint64(l))
|
||||
}
|
||||
if x.unknownFields != nil {
|
||||
n += len(x.unknownFields)
|
||||
}
|
||||
return protoiface.SizeOutput{
|
||||
NoUnkeyedLiterals: input.NoUnkeyedLiterals,
|
||||
Size: n,
|
||||
}
|
||||
}
|
||||
|
||||
marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) {
|
||||
x := input.Message.Interface().(*Module)
|
||||
if x == nil {
|
||||
return protoiface.MarshalOutput{
|
||||
NoUnkeyedLiterals: input.NoUnkeyedLiterals,
|
||||
Buf: input.Buf,
|
||||
}, nil
|
||||
}
|
||||
options := runtime.MarshalInputToOptions(input)
|
||||
_ = options
|
||||
size := options.Size(x)
|
||||
dAtA := make([]byte, size)
|
||||
i := len(dAtA)
|
||||
_ = i
|
||||
var l int
|
||||
_ = l
|
||||
if x.unknownFields != nil {
|
||||
i -= len(x.unknownFields)
|
||||
copy(dAtA[i:], x.unknownFields)
|
||||
}
|
||||
if len(x.Authority) > 0 {
|
||||
i -= len(x.Authority)
|
||||
copy(dAtA[i:], x.Authority)
|
||||
i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Authority)))
|
||||
i--
|
||||
dAtA[i] = 0xa
|
||||
}
|
||||
if input.Buf != nil {
|
||||
input.Buf = append(input.Buf, dAtA...)
|
||||
} else {
|
||||
input.Buf = dAtA
|
||||
}
|
||||
return protoiface.MarshalOutput{
|
||||
NoUnkeyedLiterals: input.NoUnkeyedLiterals,
|
||||
Buf: input.Buf,
|
||||
}, nil
|
||||
}
|
||||
unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) {
|
||||
x := input.Message.Interface().(*Module)
|
||||
if x == nil {
|
||||
return protoiface.UnmarshalOutput{
|
||||
NoUnkeyedLiterals: input.NoUnkeyedLiterals,
|
||||
Flags: input.Flags,
|
||||
}, nil
|
||||
}
|
||||
options := runtime.UnmarshalInputToOptions(input)
|
||||
_ = options
|
||||
dAtA := input.Buf
|
||||
l := len(dAtA)
|
||||
iNdEx := 0
|
||||
for iNdEx < l {
|
||||
preIndex := iNdEx
|
||||
var wire uint64
|
||||
for shift := uint(0); ; shift += 7 {
|
||||
if shift >= 64 {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow
|
||||
}
|
||||
if iNdEx >= l {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
|
||||
}
|
||||
b := dAtA[iNdEx]
|
||||
iNdEx++
|
||||
wire |= uint64(b&0x7F) << shift
|
||||
if b < 0x80 {
|
||||
break
|
||||
}
|
||||
}
|
||||
fieldNum := int32(wire >> 3)
|
||||
wireType := int(wire & 0x7)
|
||||
if wireType == 4 {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: Module: wiretype end group for non-group")
|
||||
}
|
||||
if fieldNum <= 0 {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: Module: illegal tag %d (wire type %d)", fieldNum, wire)
|
||||
}
|
||||
switch fieldNum {
|
||||
case 1:
|
||||
if wireType != 2 {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Authority", wireType)
|
||||
}
|
||||
var stringLen uint64
|
||||
for shift := uint(0); ; shift += 7 {
|
||||
if shift >= 64 {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow
|
||||
}
|
||||
if iNdEx >= l {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
|
||||
}
|
||||
b := dAtA[iNdEx]
|
||||
iNdEx++
|
||||
stringLen |= uint64(b&0x7F) << shift
|
||||
if b < 0x80 {
|
||||
break
|
||||
}
|
||||
}
|
||||
intStringLen := int(stringLen)
|
||||
if intStringLen < 0 {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
|
||||
}
|
||||
postIndex := iNdEx + intStringLen
|
||||
if postIndex < 0 {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
|
||||
}
|
||||
if postIndex > l {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
|
||||
}
|
||||
x.Authority = string(dAtA[iNdEx:postIndex])
|
||||
iNdEx = postIndex
|
||||
default:
|
||||
iNdEx = preIndex
|
||||
skippy, err := runtime.Skip(dAtA[iNdEx:])
|
||||
if err != nil {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
|
||||
}
|
||||
if (skippy < 0) || (iNdEx+skippy) < 0 {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
|
||||
}
|
||||
if (iNdEx + skippy) > l {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
|
||||
}
|
||||
if !options.DiscardUnknown {
|
||||
x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
|
||||
}
|
||||
iNdEx += skippy
|
||||
}
|
||||
}
|
||||
|
||||
if iNdEx > l {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
|
||||
}
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil
|
||||
}
|
||||
return &protoiface.Methods{
|
||||
NoUnkeyedLiterals: struct{}{},
|
||||
Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown,
|
||||
Size: size,
|
||||
Marshal: marshal,
|
||||
Unmarshal: unmarshal,
|
||||
Merge: nil,
|
||||
CheckInitialized: nil,
|
||||
}
|
||||
}
|
||||
|
||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// versions:
|
||||
// protoc-gen-go v1.27.0
|
||||
// protoc (unknown)
|
||||
// source: cosmos/protocolpool/module/v1/module.proto
|
||||
|
||||
const (
|
||||
// Verify that this generated code is sufficiently up-to-date.
|
||||
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
|
||||
// Verify that runtime/protoimpl is sufficiently up-to-date.
|
||||
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
|
||||
)
|
||||
|
||||
// Module is the config object of the consensus module.
|
||||
type Module struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
unknownFields protoimpl.UnknownFields
|
||||
|
||||
// authority defines the custom module authority. If not set, defaults to the governance module.
|
||||
Authority string `protobuf:"bytes,1,opt,name=authority,proto3" json:"authority,omitempty"`
|
||||
}
|
||||
|
||||
func (x *Module) Reset() {
|
||||
*x = Module{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_cosmos_protocolpool_module_v1_module_proto_msgTypes[0]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
}
|
||||
|
||||
func (x *Module) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*Module) ProtoMessage() {}
|
||||
|
||||
// Deprecated: Use Module.ProtoReflect.Descriptor instead.
|
||||
func (*Module) Descriptor() ([]byte, []int) {
|
||||
return file_cosmos_protocolpool_module_v1_module_proto_rawDescGZIP(), []int{0}
|
||||
}
|
||||
|
||||
func (x *Module) GetAuthority() string {
|
||||
if x != nil {
|
||||
return x.Authority
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
var File_cosmos_protocolpool_module_v1_module_proto protoreflect.FileDescriptor
|
||||
|
||||
var file_cosmos_protocolpool_module_v1_module_proto_rawDesc = []byte{
|
||||
0x0a, 0x2a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f,
|
||||
0x6c, 0x70, 0x6f, 0x6f, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2f, 0x76, 0x31, 0x2f,
|
||||
0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1d, 0x63, 0x6f,
|
||||
0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x70, 0x6f, 0x6f,
|
||||
0x6c, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x1a, 0x20, 0x63, 0x6f, 0x73,
|
||||
0x6d, 0x6f, 0x73, 0x2f, 0x61, 0x70, 0x70, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31,
|
||||
0x2f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x4b, 0x0a,
|
||||
0x06, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f,
|
||||
0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68,
|
||||
0x6f, 0x72, 0x69, 0x74, 0x79, 0x3a, 0x23, 0xba, 0xc0, 0x96, 0xda, 0x01, 0x1d, 0x0a, 0x1b, 0x63,
|
||||
0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x78, 0x2f, 0x70, 0x72,
|
||||
0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x70, 0x6f, 0x6f, 0x6c, 0x42, 0x80, 0x02, 0x0a, 0x21, 0x63,
|
||||
0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63,
|
||||
0x6f, 0x6c, 0x70, 0x6f, 0x6f, 0x6c, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31,
|
||||
0x42, 0x0b, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a,
|
||||
0x37, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70,
|
||||
0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f,
|
||||
0x6c, 0x70, 0x6f, 0x6f, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2f, 0x76, 0x31, 0x3b,
|
||||
0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x50, 0x4d, 0xaa, 0x02,
|
||||
0x1d, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c,
|
||||
0x70, 0x6f, 0x6f, 0x6c, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x56, 0x31, 0xca, 0x02,
|
||||
0x1d, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c,
|
||||
0x70, 0x6f, 0x6f, 0x6c, 0x5c, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x5c, 0x56, 0x31, 0xe2, 0x02,
|
||||
0x29, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c,
|
||||
0x70, 0x6f, 0x6f, 0x6c, 0x5c, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x5c, 0x56, 0x31, 0x5c, 0x47,
|
||||
0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x20, 0x43, 0x6f, 0x73,
|
||||
0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x70, 0x6f, 0x6f,
|
||||
0x6c, 0x3a, 0x3a, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70,
|
||||
0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
}
|
||||
|
||||
var (
|
||||
file_cosmos_protocolpool_module_v1_module_proto_rawDescOnce sync.Once
|
||||
file_cosmos_protocolpool_module_v1_module_proto_rawDescData = file_cosmos_protocolpool_module_v1_module_proto_rawDesc
|
||||
)
|
||||
|
||||
func file_cosmos_protocolpool_module_v1_module_proto_rawDescGZIP() []byte {
|
||||
file_cosmos_protocolpool_module_v1_module_proto_rawDescOnce.Do(func() {
|
||||
file_cosmos_protocolpool_module_v1_module_proto_rawDescData = protoimpl.X.CompressGZIP(file_cosmos_protocolpool_module_v1_module_proto_rawDescData)
|
||||
})
|
||||
return file_cosmos_protocolpool_module_v1_module_proto_rawDescData
|
||||
}
|
||||
|
||||
var file_cosmos_protocolpool_module_v1_module_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
|
||||
var file_cosmos_protocolpool_module_v1_module_proto_goTypes = []interface{}{
|
||||
(*Module)(nil), // 0: cosmos.protocolpool.module.v1.Module
|
||||
}
|
||||
var file_cosmos_protocolpool_module_v1_module_proto_depIdxs = []int32{
|
||||
0, // [0:0] is the sub-list for method output_type
|
||||
0, // [0:0] is the sub-list for method input_type
|
||||
0, // [0:0] is the sub-list for extension type_name
|
||||
0, // [0:0] is the sub-list for extension extendee
|
||||
0, // [0:0] is the sub-list for field type_name
|
||||
}
|
||||
|
||||
func init() { file_cosmos_protocolpool_module_v1_module_proto_init() }
|
||||
func file_cosmos_protocolpool_module_v1_module_proto_init() {
|
||||
if File_cosmos_protocolpool_module_v1_module_proto != nil {
|
||||
return
|
||||
}
|
||||
if !protoimpl.UnsafeEnabled {
|
||||
file_cosmos_protocolpool_module_v1_module_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*Module); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
return &v.sizeCache
|
||||
case 2:
|
||||
return &v.unknownFields
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
}
|
||||
}
|
||||
type x struct{}
|
||||
out := protoimpl.TypeBuilder{
|
||||
File: protoimpl.DescBuilder{
|
||||
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
||||
RawDescriptor: file_cosmos_protocolpool_module_v1_module_proto_rawDesc,
|
||||
NumEnums: 0,
|
||||
NumMessages: 1,
|
||||
NumExtensions: 0,
|
||||
NumServices: 0,
|
||||
},
|
||||
GoTypes: file_cosmos_protocolpool_module_v1_module_proto_goTypes,
|
||||
DependencyIndexes: file_cosmos_protocolpool_module_v1_module_proto_depIdxs,
|
||||
MessageInfos: file_cosmos_protocolpool_module_v1_module_proto_msgTypes,
|
||||
}.Build()
|
||||
File_cosmos_protocolpool_module_v1_module_proto = out.File
|
||||
file_cosmos_protocolpool_module_v1_module_proto_rawDesc = nil
|
||||
file_cosmos_protocolpool_module_v1_module_proto_goTypes = nil
|
||||
file_cosmos_protocolpool_module_v1_module_proto_depIdxs = nil
|
||||
}
|
||||
1077
api/cosmos/protocolpool/v1/query.pulsar.go
Normal file
1077
api/cosmos/protocolpool/v1/query.pulsar.go
Normal file
File diff suppressed because it is too large
Load Diff
113
api/cosmos/protocolpool/v1/query_grpc.pb.go
Normal file
113
api/cosmos/protocolpool/v1/query_grpc.pb.go
Normal file
@ -0,0 +1,113 @@
|
||||
// Since: cosmos-sdk 0.50
|
||||
|
||||
// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
|
||||
// versions:
|
||||
// - protoc-gen-go-grpc v1.3.0
|
||||
// - protoc (unknown)
|
||||
// source: cosmos/protocolpool/v1/query.proto
|
||||
|
||||
package protocolpoolv1
|
||||
|
||||
import (
|
||||
context "context"
|
||||
grpc "google.golang.org/grpc"
|
||||
codes "google.golang.org/grpc/codes"
|
||||
status "google.golang.org/grpc/status"
|
||||
)
|
||||
|
||||
// This is a compile-time assertion to ensure that this generated file
|
||||
// is compatible with the grpc package it is being compiled against.
|
||||
// Requires gRPC-Go v1.32.0 or later.
|
||||
const _ = grpc.SupportPackageIsVersion7
|
||||
|
||||
const (
|
||||
Query_CommunityPool_FullMethodName = "/cosmos.protocolpool.v1.Query/CommunityPool"
|
||||
)
|
||||
|
||||
// QueryClient is the client API for Query service.
|
||||
//
|
||||
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
|
||||
type QueryClient interface {
|
||||
// CommunityPool queries the community pool coins.
|
||||
CommunityPool(ctx context.Context, in *QueryCommunityPoolRequest, opts ...grpc.CallOption) (*QueryCommunityPoolResponse, error)
|
||||
}
|
||||
|
||||
type queryClient struct {
|
||||
cc grpc.ClientConnInterface
|
||||
}
|
||||
|
||||
func NewQueryClient(cc grpc.ClientConnInterface) QueryClient {
|
||||
return &queryClient{cc}
|
||||
}
|
||||
|
||||
func (c *queryClient) CommunityPool(ctx context.Context, in *QueryCommunityPoolRequest, opts ...grpc.CallOption) (*QueryCommunityPoolResponse, error) {
|
||||
out := new(QueryCommunityPoolResponse)
|
||||
err := c.cc.Invoke(ctx, Query_CommunityPool_FullMethodName, in, out, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
// QueryServer is the server API for Query service.
|
||||
// All implementations must embed UnimplementedQueryServer
|
||||
// for forward compatibility
|
||||
type QueryServer interface {
|
||||
// CommunityPool queries the community pool coins.
|
||||
CommunityPool(context.Context, *QueryCommunityPoolRequest) (*QueryCommunityPoolResponse, error)
|
||||
mustEmbedUnimplementedQueryServer()
|
||||
}
|
||||
|
||||
// UnimplementedQueryServer must be embedded to have forward compatible implementations.
|
||||
type UnimplementedQueryServer struct {
|
||||
}
|
||||
|
||||
func (UnimplementedQueryServer) CommunityPool(context.Context, *QueryCommunityPoolRequest) (*QueryCommunityPoolResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method CommunityPool not implemented")
|
||||
}
|
||||
func (UnimplementedQueryServer) mustEmbedUnimplementedQueryServer() {}
|
||||
|
||||
// UnsafeQueryServer may be embedded to opt out of forward compatibility for this service.
|
||||
// Use of this interface is not recommended, as added methods to QueryServer will
|
||||
// result in compilation errors.
|
||||
type UnsafeQueryServer interface {
|
||||
mustEmbedUnimplementedQueryServer()
|
||||
}
|
||||
|
||||
func RegisterQueryServer(s grpc.ServiceRegistrar, srv QueryServer) {
|
||||
s.RegisterService(&Query_ServiceDesc, srv)
|
||||
}
|
||||
|
||||
func _Query_CommunityPool_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(QueryCommunityPoolRequest)
|
||||
if err := dec(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if interceptor == nil {
|
||||
return srv.(QueryServer).CommunityPool(ctx, in)
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: Query_CommunityPool_FullMethodName,
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(QueryServer).CommunityPool(ctx, req.(*QueryCommunityPoolRequest))
|
||||
}
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
// Query_ServiceDesc is the grpc.ServiceDesc for Query service.
|
||||
// It's only intended for direct use with grpc.RegisterService,
|
||||
// and not to be introspected or modified (even as a copy)
|
||||
var Query_ServiceDesc = grpc.ServiceDesc{
|
||||
ServiceName: "cosmos.protocolpool.v1.Query",
|
||||
HandlerType: (*QueryServer)(nil),
|
||||
Methods: []grpc.MethodDesc{
|
||||
{
|
||||
MethodName: "CommunityPool",
|
||||
Handler: _Query_CommunityPool_Handler,
|
||||
},
|
||||
},
|
||||
Streams: []grpc.StreamDesc{},
|
||||
Metadata: "cosmos/protocolpool/v1/query.proto",
|
||||
}
|
||||
2269
api/cosmos/protocolpool/v1/tx.pulsar.go
Normal file
2269
api/cosmos/protocolpool/v1/tx.pulsar.go
Normal file
File diff suppressed because it is too large
Load Diff
168
api/cosmos/protocolpool/v1/tx_grpc.pb.go
Normal file
168
api/cosmos/protocolpool/v1/tx_grpc.pb.go
Normal file
@ -0,0 +1,168 @@
|
||||
// Since: cosmos-sdk 0.50
|
||||
|
||||
// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
|
||||
// versions:
|
||||
// - protoc-gen-go-grpc v1.3.0
|
||||
// - protoc (unknown)
|
||||
// source: cosmos/protocolpool/v1/tx.proto
|
||||
|
||||
package protocolpoolv1
|
||||
|
||||
import (
|
||||
context "context"
|
||||
grpc "google.golang.org/grpc"
|
||||
codes "google.golang.org/grpc/codes"
|
||||
status "google.golang.org/grpc/status"
|
||||
)
|
||||
|
||||
// This is a compile-time assertion to ensure that this generated file
|
||||
// is compatible with the grpc package it is being compiled against.
|
||||
// Requires gRPC-Go v1.32.0 or later.
|
||||
const _ = grpc.SupportPackageIsVersion7
|
||||
|
||||
const (
|
||||
Msg_FundCommunityPool_FullMethodName = "/cosmos.protocolpool.v1.Msg/FundCommunityPool"
|
||||
Msg_CommunityPoolSpend_FullMethodName = "/cosmos.protocolpool.v1.Msg/CommunityPoolSpend"
|
||||
)
|
||||
|
||||
// MsgClient is the client API for Msg service.
|
||||
//
|
||||
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
|
||||
type MsgClient interface {
|
||||
// FundCommunityPool defines a method to allow an account to directly
|
||||
// fund the community pool.
|
||||
//
|
||||
// Since: cosmos-sdk 0.50
|
||||
FundCommunityPool(ctx context.Context, in *MsgFundCommunityPool, opts ...grpc.CallOption) (*MsgFundCommunityPoolResponse, error)
|
||||
// CommunityPoolSpend defines a governance operation for sending tokens from
|
||||
// the community pool in the x/protocolpool module to another account, which
|
||||
// could be the governance module itself. The authority is defined in the
|
||||
// keeper.
|
||||
//
|
||||
// Since: cosmos-sdk 0.50
|
||||
CommunityPoolSpend(ctx context.Context, in *MsgCommunityPoolSpend, opts ...grpc.CallOption) (*MsgCommunityPoolSpendResponse, error)
|
||||
}
|
||||
|
||||
type msgClient struct {
|
||||
cc grpc.ClientConnInterface
|
||||
}
|
||||
|
||||
func NewMsgClient(cc grpc.ClientConnInterface) MsgClient {
|
||||
return &msgClient{cc}
|
||||
}
|
||||
|
||||
func (c *msgClient) FundCommunityPool(ctx context.Context, in *MsgFundCommunityPool, opts ...grpc.CallOption) (*MsgFundCommunityPoolResponse, error) {
|
||||
out := new(MsgFundCommunityPoolResponse)
|
||||
err := c.cc.Invoke(ctx, Msg_FundCommunityPool_FullMethodName, in, out, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
func (c *msgClient) CommunityPoolSpend(ctx context.Context, in *MsgCommunityPoolSpend, opts ...grpc.CallOption) (*MsgCommunityPoolSpendResponse, error) {
|
||||
out := new(MsgCommunityPoolSpendResponse)
|
||||
err := c.cc.Invoke(ctx, Msg_CommunityPoolSpend_FullMethodName, in, out, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
// MsgServer is the server API for Msg service.
|
||||
// All implementations must embed UnimplementedMsgServer
|
||||
// for forward compatibility
|
||||
type MsgServer interface {
|
||||
// FundCommunityPool defines a method to allow an account to directly
|
||||
// fund the community pool.
|
||||
//
|
||||
// Since: cosmos-sdk 0.50
|
||||
FundCommunityPool(context.Context, *MsgFundCommunityPool) (*MsgFundCommunityPoolResponse, error)
|
||||
// CommunityPoolSpend defines a governance operation for sending tokens from
|
||||
// the community pool in the x/protocolpool module to another account, which
|
||||
// could be the governance module itself. The authority is defined in the
|
||||
// keeper.
|
||||
//
|
||||
// Since: cosmos-sdk 0.50
|
||||
CommunityPoolSpend(context.Context, *MsgCommunityPoolSpend) (*MsgCommunityPoolSpendResponse, error)
|
||||
mustEmbedUnimplementedMsgServer()
|
||||
}
|
||||
|
||||
// UnimplementedMsgServer must be embedded to have forward compatible implementations.
|
||||
type UnimplementedMsgServer struct {
|
||||
}
|
||||
|
||||
func (UnimplementedMsgServer) FundCommunityPool(context.Context, *MsgFundCommunityPool) (*MsgFundCommunityPoolResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method FundCommunityPool not implemented")
|
||||
}
|
||||
func (UnimplementedMsgServer) CommunityPoolSpend(context.Context, *MsgCommunityPoolSpend) (*MsgCommunityPoolSpendResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method CommunityPoolSpend not implemented")
|
||||
}
|
||||
func (UnimplementedMsgServer) mustEmbedUnimplementedMsgServer() {}
|
||||
|
||||
// UnsafeMsgServer may be embedded to opt out of forward compatibility for this service.
|
||||
// Use of this interface is not recommended, as added methods to MsgServer will
|
||||
// result in compilation errors.
|
||||
type UnsafeMsgServer interface {
|
||||
mustEmbedUnimplementedMsgServer()
|
||||
}
|
||||
|
||||
func RegisterMsgServer(s grpc.ServiceRegistrar, srv MsgServer) {
|
||||
s.RegisterService(&Msg_ServiceDesc, srv)
|
||||
}
|
||||
|
||||
func _Msg_FundCommunityPool_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(MsgFundCommunityPool)
|
||||
if err := dec(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if interceptor == nil {
|
||||
return srv.(MsgServer).FundCommunityPool(ctx, in)
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: Msg_FundCommunityPool_FullMethodName,
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(MsgServer).FundCommunityPool(ctx, req.(*MsgFundCommunityPool))
|
||||
}
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
func _Msg_CommunityPoolSpend_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(MsgCommunityPoolSpend)
|
||||
if err := dec(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if interceptor == nil {
|
||||
return srv.(MsgServer).CommunityPoolSpend(ctx, in)
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: Msg_CommunityPoolSpend_FullMethodName,
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(MsgServer).CommunityPoolSpend(ctx, req.(*MsgCommunityPoolSpend))
|
||||
}
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
// Msg_ServiceDesc is the grpc.ServiceDesc for Msg service.
|
||||
// It's only intended for direct use with grpc.RegisterService,
|
||||
// and not to be introspected or modified (even as a copy)
|
||||
var Msg_ServiceDesc = grpc.ServiceDesc{
|
||||
ServiceName: "cosmos.protocolpool.v1.Msg",
|
||||
HandlerType: (*MsgServer)(nil),
|
||||
Methods: []grpc.MethodDesc{
|
||||
{
|
||||
MethodName: "FundCommunityPool",
|
||||
Handler: _Msg_FundCommunityPool_Handler,
|
||||
},
|
||||
{
|
||||
MethodName: "CommunityPoolSpend",
|
||||
Handler: _Msg_CommunityPoolSpend_Handler,
|
||||
},
|
||||
},
|
||||
Streams: []grpc.StreamDesc{},
|
||||
Metadata: "cosmos/protocolpool/v1/tx.proto",
|
||||
}
|
||||
@ -13,6 +13,7 @@ COPY collections/go.mod collections/go.sum /work/collections/
|
||||
COPY store/go.mod store/go.sum /work/store/
|
||||
COPY log/go.mod log/go.sum /work/log/
|
||||
COPY x/tx/go.mod x/tx/go.sum /work/x/tx/
|
||||
COPY x/protocolpool/go.mod x/protocolpool/go.sum /work/x/protocolpool/
|
||||
RUN go mod download
|
||||
|
||||
COPY ./ /work
|
||||
|
||||
5
go.mod
5
go.mod
@ -13,6 +13,7 @@ require (
|
||||
cosmossdk.io/log v1.2.1
|
||||
cosmossdk.io/math v1.1.3-rc.1
|
||||
cosmossdk.io/store v1.0.0-rc.0
|
||||
cosmossdk.io/x/protocolpool v0.0.0-20230925135524-a1bc045b3190
|
||||
cosmossdk.io/x/tx v0.10.0
|
||||
github.com/99designs/keyring v1.2.1
|
||||
github.com/bgentry/speakeasy v0.1.1-0.20220910012023-760eaf8b6816
|
||||
@ -59,7 +60,7 @@ require (
|
||||
golang.org/x/crypto v0.13.0
|
||||
golang.org/x/exp v0.0.0-20230817173708-d852ddb80c63
|
||||
golang.org/x/sync v0.3.0
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20230803162519-f966b187b2e5
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20230822172742-b8732ec3820d
|
||||
google.golang.org/grpc v1.58.2
|
||||
google.golang.org/protobuf v1.31.0
|
||||
gotest.tools/v3 v3.5.1
|
||||
@ -166,9 +167,11 @@ require (
|
||||
// replace (
|
||||
// <temporary replace>
|
||||
// )
|
||||
replace cosmossdk.io/api => ./api
|
||||
|
||||
// Below are the long-lived replace of the Cosmos SDK
|
||||
replace (
|
||||
cosmossdk.io/x/protocolpool => ./x/protocolpool
|
||||
// use cosmos fork of keyring
|
||||
github.com/99designs/keyring => github.com/cosmos/keyring v1.2.0
|
||||
// dgrijalva/jwt-go is deprecated and doesn't receive security updates.
|
||||
|
||||
6
go.sum
6
go.sum
@ -35,8 +35,6 @@ cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohl
|
||||
cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs=
|
||||
cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0=
|
||||
cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo=
|
||||
cosmossdk.io/api v0.7.1 h1:PNQ1xN8+/0hj/sSD0ANqjkgfXFys+bZ5L8Hg7uzoUTU=
|
||||
cosmossdk.io/api v0.7.1/go.mod h1:ure9edhcROIHsngavM6mBLilMGFnfjhV/AaYhEMUkdo=
|
||||
cosmossdk.io/collections v0.4.0 h1:PFmwj2W8szgpD5nOd8GWH6AbYNi1f2J6akWXJ7P5t9s=
|
||||
cosmossdk.io/collections v0.4.0/go.mod h1:oa5lUING2dP+gdDquow+QjlF45eL1t4TJDypgGd+tv0=
|
||||
cosmossdk.io/core v0.12.0 h1:aFuvkG6eDv0IQC+UDjx86wxNWVAxdCFk7OABJ1Vh4RU=
|
||||
@ -1204,8 +1202,8 @@ google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6D
|
||||
google.golang.org/genproto v0.0.0-20220314164441-57ef72a4c106/go.mod h1:hAL49I2IFola2sVEjAn7MEwsja0xp51I0tlGAf9hz4E=
|
||||
google.golang.org/genproto v0.0.0-20230913181813-007df8e322eb h1:XFBgcDwm7irdHTbz4Zk2h7Mh+eis4nfJEFQFYzJzuIA=
|
||||
google.golang.org/genproto v0.0.0-20230913181813-007df8e322eb/go.mod h1:yZTlhN0tQnXo3h00fuXNCxJdLdIdnVFVBaRJ5LWBbw4=
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20230803162519-f966b187b2e5 h1:nIgk/EEq3/YlnmVVXVnm14rC2oxgs1o0ong4sD/rd44=
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20230803162519-f966b187b2e5/go.mod h1:5DZzOUPCLYL3mNkQ0ms0F3EuUNZ7py1Bqeq6sxzI7/Q=
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20230822172742-b8732ec3820d h1:DoPTO70H+bcDXcd39vOqb2viZxgqeBeSGtZ55yZU4/Q=
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20230822172742-b8732ec3820d/go.mod h1:KjSP20unUpOx5kyQUFa7k4OJg0qeJ7DEZflGDu2p6Bk=
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20230920204549-e6e6cdab5c13 h1:N3bU/SQDCDyD6R528GJ/PwW9KjYcJA3dgyH+MovAkIM=
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20230920204549-e6e6cdab5c13/go.mod h1:KSqppvjFjtoCI+KGd4PELB0qLNxdJHRGqRI09mB6pQA=
|
||||
google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs=
|
||||
|
||||
@ -123,31 +123,6 @@ message FeePool {
|
||||
];
|
||||
}
|
||||
|
||||
// CommunityPoolSpendProposal details a proposal for use of community funds,
|
||||
// together with how many coins are proposed to be spent, and to which
|
||||
// recipient account.
|
||||
//
|
||||
// Deprecated: Do not use. As of the Cosmos SDK release v0.47.x, there is no
|
||||
// longer a need for an explicit CommunityPoolSpendProposal. To spend community
|
||||
// pool funds, a simple MsgCommunityPoolSpend can be invoked from the x/gov
|
||||
// module via a v1 governance proposal.
|
||||
message CommunityPoolSpendProposal {
|
||||
option deprecated = true;
|
||||
option (gogoproto.equal) = false;
|
||||
option (gogoproto.goproto_getters) = false;
|
||||
option (cosmos_proto.implements_interface) = "cosmos.gov.v1beta1.Content";
|
||||
|
||||
string title = 1;
|
||||
string description = 2;
|
||||
string recipient = 3;
|
||||
repeated cosmos.base.v1beta1.Coin amount = 4 [
|
||||
(gogoproto.nullable) = false,
|
||||
(amino.dont_omitempty) = true,
|
||||
(amino.encoding) = "legacy_coins",
|
||||
(gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"
|
||||
];
|
||||
}
|
||||
|
||||
// DelegatorStartingInfo represents the starting info for a delegator reward
|
||||
// period. It tracks the previous validator period, the delegation's amount of
|
||||
// staking token, and the creation height (to check later on if any slashes have
|
||||
@ -179,16 +154,3 @@ message DelegationDelegatorReward {
|
||||
(amino.dont_omitempty) = true
|
||||
];
|
||||
}
|
||||
|
||||
// CommunityPoolSpendProposalWithDeposit defines a CommunityPoolSpendProposal
|
||||
// with a deposit
|
||||
message CommunityPoolSpendProposalWithDeposit {
|
||||
option (gogoproto.goproto_getters) = false;
|
||||
option (cosmos_proto.implements_interface) = "cosmos.gov.v1beta1.Content";
|
||||
|
||||
string title = 1;
|
||||
string description = 2;
|
||||
string recipient = 3;
|
||||
string amount = 4;
|
||||
string deposit = 5;
|
||||
}
|
||||
|
||||
@ -67,7 +67,11 @@ service Query {
|
||||
}
|
||||
|
||||
// CommunityPool queries the community pool coins.
|
||||
//
|
||||
// Deprecated: Prefer to use x/protocolpool module's CommunityPool rpc method.
|
||||
// Since: cosmos-sdk 0.50
|
||||
rpc CommunityPool(QueryCommunityPoolRequest) returns (QueryCommunityPoolResponse) {
|
||||
option deprecated = true;
|
||||
option (google.api.http).get = "/cosmos/distribution/v1beta1/community_pool";
|
||||
}
|
||||
}
|
||||
@ -241,11 +245,20 @@ message QueryDelegatorWithdrawAddressResponse {
|
||||
|
||||
// QueryCommunityPoolRequest is the request type for the Query/CommunityPool RPC
|
||||
// method.
|
||||
message QueryCommunityPoolRequest {}
|
||||
//
|
||||
// Deprecated
|
||||
// Since: cosmos-sdk 0.50
|
||||
message QueryCommunityPoolRequest {
|
||||
option deprecated = true;
|
||||
}
|
||||
|
||||
// QueryCommunityPoolResponse is the response type for the Query/CommunityPool
|
||||
// RPC method.
|
||||
//
|
||||
// Deprecated
|
||||
// Since: cosmos-sdk 0.50
|
||||
message QueryCommunityPoolResponse {
|
||||
option deprecated = true;
|
||||
// pool defines community pool's coins.
|
||||
repeated cosmos.base.v1beta1.DecCoin pool = 1 [
|
||||
(gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.DecCoins",
|
||||
|
||||
@ -29,7 +29,12 @@ service Msg {
|
||||
|
||||
// FundCommunityPool defines a method to allow an account to directly
|
||||
// fund the community pool.
|
||||
rpc FundCommunityPool(MsgFundCommunityPool) returns (MsgFundCommunityPoolResponse);
|
||||
//
|
||||
// Deprecated: Use x/protocolpool module's FundCommunityPool instead.
|
||||
// Since: cosmos-sdk 0.50
|
||||
rpc FundCommunityPool(MsgFundCommunityPool) returns (MsgFundCommunityPoolResponse) {
|
||||
option deprecated = true;
|
||||
};
|
||||
|
||||
// UpdateParams defines a governance operation for updating the x/distribution
|
||||
// module parameters. The authority is defined in the keeper.
|
||||
@ -42,7 +47,8 @@ service Msg {
|
||||
// could be the governance module itself. The authority is defined in the
|
||||
// keeper.
|
||||
//
|
||||
// Since: cosmos-sdk 0.47
|
||||
// Deprecated: Use x/protocolpool module's CommunityPoolSpend instead.
|
||||
// Since: cosmos-sdk 0.50
|
||||
rpc CommunityPoolSpend(MsgCommunityPoolSpend) returns (MsgCommunityPoolSpendResponse);
|
||||
|
||||
// DepositValidatorRewardsPool defines a method to provide additional rewards
|
||||
@ -120,7 +126,11 @@ message MsgWithdrawValidatorCommissionResponse {
|
||||
|
||||
// MsgFundCommunityPool allows an account to directly
|
||||
// fund the community pool.
|
||||
//
|
||||
// Deprecated: Use x/protocolpool module's MsgFundCommunityPool instead.
|
||||
// Since: cosmos-sdk 0.50
|
||||
message MsgFundCommunityPool {
|
||||
option deprecated = true;
|
||||
option (cosmos.msg.v1.signer) = "depositor";
|
||||
option (amino.name) = "cosmos-sdk/MsgFundCommunityPool";
|
||||
|
||||
@ -137,7 +147,12 @@ message MsgFundCommunityPool {
|
||||
}
|
||||
|
||||
// MsgFundCommunityPoolResponse defines the Msg/FundCommunityPool response type.
|
||||
message MsgFundCommunityPoolResponse {}
|
||||
//
|
||||
// Deprecated
|
||||
// Since: cosmos-sdk 0.50
|
||||
message MsgFundCommunityPoolResponse {
|
||||
option deprecated = true;
|
||||
}
|
||||
|
||||
// MsgUpdateParams is the Msg/UpdateParams request type.
|
||||
//
|
||||
@ -164,9 +179,11 @@ message MsgUpdateParamsResponse {}
|
||||
// MsgCommunityPoolSpend defines a message for sending tokens from the community
|
||||
// pool to another account. This message is typically executed via a governance
|
||||
// proposal with the governance module being the executing authority.
|
||||
//
|
||||
// Since: cosmos-sdk 0.47
|
||||
|
||||
// Deprecated: Use x/protocolpool module's MsgCommunityPoolSpend instead
|
||||
// Since: cosmos-sdk 0.50
|
||||
message MsgCommunityPoolSpend {
|
||||
option deprecated = true;
|
||||
option (cosmos.msg.v1.signer) = "authority";
|
||||
option (amino.name) = "cosmos-sdk/distr/MsgCommunityPoolSpend";
|
||||
|
||||
@ -184,8 +201,11 @@ message MsgCommunityPoolSpend {
|
||||
// MsgCommunityPoolSpendResponse defines the response to executing a
|
||||
// MsgCommunityPoolSpend message.
|
||||
//
|
||||
// Since: cosmos-sdk 0.47
|
||||
message MsgCommunityPoolSpendResponse {}
|
||||
// Deprecated
|
||||
// Since: cosmos-sdk 0.50
|
||||
message MsgCommunityPoolSpendResponse {
|
||||
option deprecated = true;
|
||||
}
|
||||
|
||||
// DepositValidatorRewardsPool defines the request structure to provide
|
||||
// additional rewards to delegators from a specific validator.
|
||||
|
||||
15
proto/cosmos/protocolpool/module/v1/module.proto
Normal file
15
proto/cosmos/protocolpool/module/v1/module.proto
Normal file
@ -0,0 +1,15 @@
|
||||
syntax = "proto3";
|
||||
|
||||
package cosmos.protocolpool.module.v1;
|
||||
|
||||
import "cosmos/app/v1alpha1/module.proto";
|
||||
|
||||
// Module is the config object of the consensus module.
|
||||
message Module {
|
||||
option (cosmos.app.v1alpha1.module) = {
|
||||
go_import: "cosmossdk.io/x/protocolpool"
|
||||
};
|
||||
|
||||
// authority defines the custom module authority. If not set, defaults to the governance module.
|
||||
string authority = 1;
|
||||
}
|
||||
29
proto/cosmos/protocolpool/v1/query.proto
Normal file
29
proto/cosmos/protocolpool/v1/query.proto
Normal file
@ -0,0 +1,29 @@
|
||||
// Since: cosmos-sdk 0.50
|
||||
syntax = "proto3";
|
||||
package cosmos.protocolpool.v1;
|
||||
|
||||
option go_package = "cosmossdk.io/x/protocolpool/types";
|
||||
|
||||
import "gogoproto/gogo.proto";
|
||||
import "google/api/annotations.proto";
|
||||
import "cosmos/base/v1beta1/coin.proto";
|
||||
|
||||
// Query defines the gRPC querier service for community pool module.
|
||||
service Query {
|
||||
// CommunityPool queries the community pool coins.
|
||||
rpc CommunityPool(QueryCommunityPoolRequest) returns (QueryCommunityPoolResponse) {
|
||||
option (google.api.http).get = "/cosmos/protocolpool/v1/community_pool";
|
||||
}
|
||||
}
|
||||
|
||||
// QueryCommunityPoolRequest is the request type for the Query/CommunityPool RPC
|
||||
// method.
|
||||
message QueryCommunityPoolRequest {}
|
||||
|
||||
// QueryCommunityPoolResponse is the response type for the Query/CommunityPool
|
||||
// RPC method.
|
||||
message QueryCommunityPoolResponse {
|
||||
// pool defines community pool's coins.
|
||||
repeated cosmos.base.v1beta1.DecCoin pool = 1
|
||||
[(gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.DecCoins", (gogoproto.nullable) = false];
|
||||
}
|
||||
65
proto/cosmos/protocolpool/v1/tx.proto
Normal file
65
proto/cosmos/protocolpool/v1/tx.proto
Normal file
@ -0,0 +1,65 @@
|
||||
// Since: cosmos-sdk 0.50
|
||||
syntax = "proto3";
|
||||
package cosmos.protocolpool.v1;
|
||||
|
||||
option go_package = "cosmossdk.io/x/protocolpool/types";
|
||||
|
||||
import "gogoproto/gogo.proto";
|
||||
import "cosmos/base/v1beta1/coin.proto";
|
||||
import "cosmos_proto/cosmos.proto";
|
||||
import "cosmos/msg/v1/msg.proto";
|
||||
|
||||
// Msg defines the pool Msg service.
|
||||
service Msg {
|
||||
option (cosmos.msg.v1.service) = true;
|
||||
|
||||
// FundCommunityPool defines a method to allow an account to directly
|
||||
// fund the community pool.
|
||||
//
|
||||
// Since: cosmos-sdk 0.50
|
||||
rpc FundCommunityPool(MsgFundCommunityPool) returns (MsgFundCommunityPoolResponse);
|
||||
|
||||
// CommunityPoolSpend defines a governance operation for sending tokens from
|
||||
// the community pool in the x/protocolpool module to another account, which
|
||||
// could be the governance module itself. The authority is defined in the
|
||||
// keeper.
|
||||
//
|
||||
// Since: cosmos-sdk 0.50
|
||||
rpc CommunityPoolSpend(MsgCommunityPoolSpend) returns (MsgCommunityPoolSpendResponse);
|
||||
}
|
||||
|
||||
// MsgFundCommunityPool allows an account to directly
|
||||
// fund the community pool.
|
||||
message MsgFundCommunityPool {
|
||||
option (cosmos.msg.v1.signer) = "depositor";
|
||||
option (gogoproto.equal) = false;
|
||||
option (gogoproto.goproto_getters) = false;
|
||||
|
||||
repeated cosmos.base.v1beta1.Coin amount = 1
|
||||
[(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"];
|
||||
string depositor = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
}
|
||||
|
||||
// MsgFundCommunityPoolResponse defines the Msg/FundCommunityPool response type.
|
||||
message MsgFundCommunityPoolResponse {}
|
||||
|
||||
// MsgCommunityPoolSpend defines a message for sending tokens from the community
|
||||
// pool to another account. This message is typically executed via a governance
|
||||
// proposal with the governance module being the executing authority.
|
||||
//
|
||||
// Since: cosmos-sdk 0.50
|
||||
message MsgCommunityPoolSpend {
|
||||
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"];
|
||||
string recipient = 2;
|
||||
repeated cosmos.base.v1beta1.Coin amount = 3
|
||||
[(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"];
|
||||
}
|
||||
|
||||
// MsgCommunityPoolSpendResponse defines the response to executing a
|
||||
// MsgCommunityPoolSpend message.
|
||||
//
|
||||
// Since: cosmos-sdk 0.50
|
||||
message MsgCommunityPoolSpendResponse {}
|
||||
@ -27,3 +27,4 @@ $mockgen_cmd -source=x/genutil/types/expected_keepers.go -package testutil -dest
|
||||
$mockgen_cmd -source=x/gov/testutil/expected_keepers.go -package testutil -destination x/gov/testutil/expected_keepers_mocks.go
|
||||
$mockgen_cmd -source=x/staking/types/expected_keepers.go -package testutil -destination x/staking/testutil/expected_keepers_mocks.go
|
||||
$mockgen_cmd -source=x/auth/vesting/types/expected_keepers.go -package testutil -destination x/auth/vesting/testutil/expected_keepers_mocks.go
|
||||
$mockgen_cmd -source=x/protocolpool/types/expected_keepers.go -package testutil -destination x/protocolpool/testutil/expected_keepers_mocks.go
|
||||
|
||||
@ -27,6 +27,9 @@ import (
|
||||
"cosmossdk.io/x/nft"
|
||||
nftkeeper "cosmossdk.io/x/nft/keeper"
|
||||
nftmodule "cosmossdk.io/x/nft/module"
|
||||
"cosmossdk.io/x/protocolpool"
|
||||
poolkeeper "cosmossdk.io/x/protocolpool/keeper"
|
||||
pooltypes "cosmossdk.io/x/protocolpool/types"
|
||||
"cosmossdk.io/x/tx/signing"
|
||||
"cosmossdk.io/x/upgrade"
|
||||
upgradekeeper "cosmossdk.io/x/upgrade/keeper"
|
||||
@ -113,6 +116,7 @@ var (
|
||||
maccPerms = map[string][]string{
|
||||
authtypes.FeeCollectorName: nil,
|
||||
distrtypes.ModuleName: nil,
|
||||
pooltypes.ModuleName: nil,
|
||||
minttypes.ModuleName: {authtypes.Minter},
|
||||
stakingtypes.BondedPoolName: {authtypes.Burner, authtypes.Staking},
|
||||
stakingtypes.NotBondedPoolName: {authtypes.Burner, authtypes.Staking},
|
||||
@ -157,6 +161,7 @@ type SimApp struct {
|
||||
NFTKeeper nftkeeper.Keeper
|
||||
ConsensusParamsKeeper consensusparamkeeper.Keeper
|
||||
CircuitKeeper circuitkeeper.Keeper
|
||||
PoolKeeper poolkeeper.Keeper
|
||||
|
||||
// the module manager
|
||||
ModuleManager *module.Manager
|
||||
@ -249,7 +254,7 @@ func NewSimApp(
|
||||
minttypes.StoreKey, distrtypes.StoreKey, slashingtypes.StoreKey,
|
||||
govtypes.StoreKey, consensusparamtypes.StoreKey, upgradetypes.StoreKey, feegrant.StoreKey,
|
||||
evidencetypes.StoreKey, circuittypes.StoreKey,
|
||||
authzkeeper.StoreKey, nftkeeper.StoreKey, group.StoreKey,
|
||||
authzkeeper.StoreKey, nftkeeper.StoreKey, group.StoreKey, pooltypes.StoreKey,
|
||||
)
|
||||
|
||||
// register streaming services
|
||||
@ -286,7 +291,9 @@ func NewSimApp(
|
||||
)
|
||||
app.MintKeeper = mintkeeper.NewKeeper(appCodec, runtime.NewKVStoreService(keys[minttypes.StoreKey]), app.StakingKeeper, app.AccountKeeper, app.BankKeeper, authtypes.FeeCollectorName, authtypes.NewModuleAddress(govtypes.ModuleName).String())
|
||||
|
||||
app.DistrKeeper = distrkeeper.NewKeeper(appCodec, runtime.NewKVStoreService(keys[distrtypes.StoreKey]), app.AccountKeeper, app.BankKeeper, app.StakingKeeper, authtypes.FeeCollectorName, authtypes.NewModuleAddress(govtypes.ModuleName).String())
|
||||
app.PoolKeeper = poolkeeper.NewKeeper(appCodec, runtime.NewKVStoreService(keys[pooltypes.StoreKey]), app.AccountKeeper, app.BankKeeper, authtypes.NewModuleAddress(govtypes.ModuleName).String())
|
||||
|
||||
app.DistrKeeper = distrkeeper.NewKeeper(appCodec, runtime.NewKVStoreService(keys[distrtypes.StoreKey]), app.AccountKeeper, app.BankKeeper, app.StakingKeeper, app.PoolKeeper, authtypes.FeeCollectorName, authtypes.NewModuleAddress(govtypes.ModuleName).String())
|
||||
|
||||
app.SlashingKeeper = slashingkeeper.NewKeeper(
|
||||
appCodec, legacyAmino, runtime.NewKVStoreService(keys[slashingtypes.StoreKey]), app.StakingKeeper, authtypes.NewModuleAddress(govtypes.ModuleName).String(),
|
||||
@ -337,7 +344,7 @@ func NewSimApp(
|
||||
*/
|
||||
govKeeper := govkeeper.NewKeeper(
|
||||
appCodec, runtime.NewKVStoreService(keys[govtypes.StoreKey]), app.AccountKeeper, app.BankKeeper,
|
||||
app.StakingKeeper, app.DistrKeeper, app.MsgServiceRouter(), govConfig, authtypes.NewModuleAddress(govtypes.ModuleName).String(),
|
||||
app.StakingKeeper, app.PoolKeeper, app.MsgServiceRouter(), govConfig, authtypes.NewModuleAddress(govtypes.ModuleName).String(),
|
||||
)
|
||||
|
||||
// Set legacy router for backwards compatibility with gov v1beta1
|
||||
@ -376,10 +383,10 @@ func NewSimApp(
|
||||
bank.NewAppModule(appCodec, app.BankKeeper, app.AccountKeeper),
|
||||
crisis.NewAppModule(app.CrisisKeeper, skipGenesisInvariants),
|
||||
feegrantmodule.NewAppModule(appCodec, app.AccountKeeper, app.BankKeeper, app.FeeGrantKeeper, app.interfaceRegistry),
|
||||
gov.NewAppModule(appCodec, &app.GovKeeper, app.AccountKeeper, app.BankKeeper),
|
||||
gov.NewAppModule(appCodec, &app.GovKeeper, app.AccountKeeper, app.BankKeeper, app.PoolKeeper),
|
||||
mint.NewAppModule(appCodec, app.MintKeeper, app.AccountKeeper, nil),
|
||||
slashing.NewAppModule(appCodec, app.SlashingKeeper, app.AccountKeeper, app.BankKeeper, app.StakingKeeper, app.interfaceRegistry),
|
||||
distr.NewAppModule(appCodec, app.DistrKeeper, app.AccountKeeper, app.BankKeeper, app.StakingKeeper),
|
||||
distr.NewAppModule(appCodec, app.DistrKeeper, app.AccountKeeper, app.BankKeeper, app.StakingKeeper, app.PoolKeeper),
|
||||
staking.NewAppModule(appCodec, app.StakingKeeper, app.AccountKeeper, app.BankKeeper),
|
||||
upgrade.NewAppModule(app.UpgradeKeeper, app.AccountKeeper.AddressCodec()),
|
||||
evidence.NewAppModule(app.EvidenceKeeper),
|
||||
@ -388,6 +395,7 @@ func NewSimApp(
|
||||
nftmodule.NewAppModule(appCodec, app.NFTKeeper, app.AccountKeeper, app.BankKeeper, app.interfaceRegistry),
|
||||
consensus.NewAppModule(appCodec, app.ConsensusParamsKeeper),
|
||||
circuit.NewAppModule(appCodec, app.CircuitKeeper),
|
||||
protocolpool.NewAppModule(appCodec, app.PoolKeeper, app.AccountKeeper, app.BankKeeper),
|
||||
)
|
||||
|
||||
// BasicModuleManager defines the module BasicManager is in charge of setting up basic,
|
||||
@ -439,7 +447,7 @@ func NewSimApp(
|
||||
distrtypes.ModuleName, stakingtypes.ModuleName, slashingtypes.ModuleName, govtypes.ModuleName,
|
||||
minttypes.ModuleName, crisistypes.ModuleName, genutiltypes.ModuleName, evidencetypes.ModuleName, authz.ModuleName,
|
||||
feegrant.ModuleName, nft.ModuleName, group.ModuleName, upgradetypes.ModuleName,
|
||||
vestingtypes.ModuleName, consensusparamtypes.ModuleName, circuittypes.ModuleName,
|
||||
vestingtypes.ModuleName, consensusparamtypes.ModuleName, circuittypes.ModuleName, pooltypes.ModuleName,
|
||||
}
|
||||
app.ModuleManager.SetOrderInitGenesis(genesisModuleOrder...)
|
||||
app.ModuleManager.SetOrderExportGenesis(genesisModuleOrder...)
|
||||
|
||||
@ -21,6 +21,7 @@ import (
|
||||
groupmodulev1 "cosmossdk.io/api/cosmos/group/module/v1"
|
||||
mintmodulev1 "cosmossdk.io/api/cosmos/mint/module/v1"
|
||||
nftmodulev1 "cosmossdk.io/api/cosmos/nft/module/v1"
|
||||
poolmodulev1 "cosmossdk.io/api/cosmos/protocolpool/module/v1"
|
||||
slashingmodulev1 "cosmossdk.io/api/cosmos/slashing/module/v1"
|
||||
stakingmodulev1 "cosmossdk.io/api/cosmos/staking/module/v1"
|
||||
txconfigv1 "cosmossdk.io/api/cosmos/tx/config/v1"
|
||||
@ -35,8 +36,10 @@ import (
|
||||
"cosmossdk.io/x/feegrant"
|
||||
_ "cosmossdk.io/x/feegrant/module" // import for side-effects
|
||||
"cosmossdk.io/x/nft"
|
||||
_ "cosmossdk.io/x/nft/module" // import for side-effects
|
||||
_ "cosmossdk.io/x/upgrade" // import for side-effects
|
||||
_ "cosmossdk.io/x/nft/module" // import for side-effects
|
||||
_ "cosmossdk.io/x/protocolpool" // import for side-effects
|
||||
pooltypes "cosmossdk.io/x/protocolpool/types"
|
||||
_ "cosmossdk.io/x/upgrade" // import for side-effects
|
||||
upgradetypes "cosmossdk.io/x/upgrade/types"
|
||||
|
||||
"github.com/cosmos/cosmos-sdk/runtime"
|
||||
@ -75,6 +78,7 @@ var (
|
||||
moduleAccPerms = []*authmodulev1.ModuleAccountPermission{
|
||||
{Account: authtypes.FeeCollectorName},
|
||||
{Account: distrtypes.ModuleName},
|
||||
{Account: pooltypes.ModuleName},
|
||||
{Account: minttypes.ModuleName, Permissions: []string{authtypes.Minter}},
|
||||
{Account: stakingtypes.BondedPoolName, Permissions: []string{authtypes.Burner, stakingtypes.ModuleName}},
|
||||
{Account: stakingtypes.NotBondedPoolName, Permissions: []string{authtypes.Burner, stakingtypes.ModuleName}},
|
||||
@ -92,6 +96,7 @@ var (
|
||||
nft.ModuleName,
|
||||
// We allow the following module accounts to receive funds:
|
||||
// govtypes.ModuleName
|
||||
// pooltypes.ModuleName
|
||||
}
|
||||
|
||||
// application configuration (used by depinject)
|
||||
@ -251,6 +256,10 @@ var (
|
||||
Name: circuittypes.ModuleName,
|
||||
Config: appconfig.WrapAny(&circuitmodulev1.Module{}),
|
||||
},
|
||||
{
|
||||
Name: pooltypes.ModuleName,
|
||||
Config: appconfig.WrapAny(&poolmodulev1.Module{}),
|
||||
},
|
||||
},
|
||||
}),
|
||||
depinject.Supply(
|
||||
|
||||
@ -16,6 +16,8 @@ import (
|
||||
evidencekeeper "cosmossdk.io/x/evidence/keeper"
|
||||
feegrantkeeper "cosmossdk.io/x/feegrant/keeper"
|
||||
nftkeeper "cosmossdk.io/x/nft/keeper"
|
||||
_ "cosmossdk.io/x/protocolpool"
|
||||
poolkeeper "cosmossdk.io/x/protocolpool/keeper"
|
||||
upgradekeeper "cosmossdk.io/x/upgrade/keeper"
|
||||
|
||||
"github.com/cosmos/cosmos-sdk/baseapp"
|
||||
@ -80,6 +82,7 @@ type SimApp struct {
|
||||
NFTKeeper nftkeeper.Keeper
|
||||
ConsensusParamsKeeper consensuskeeper.Keeper
|
||||
CircuitBreakerKeeper circuitkeeper.Keeper
|
||||
PoolKeeper poolkeeper.Keeper
|
||||
|
||||
// simulation manager
|
||||
sm *module.SimulationManager
|
||||
@ -181,6 +184,7 @@ func NewSimApp(
|
||||
&app.NFTKeeper,
|
||||
&app.ConsensusParamsKeeper,
|
||||
&app.CircuitBreakerKeeper,
|
||||
&app.PoolKeeper,
|
||||
); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
@ -16,6 +16,7 @@ require (
|
||||
cosmossdk.io/x/evidence v0.0.0-20230613133644-0a778132a60f
|
||||
cosmossdk.io/x/feegrant v0.0.0-20230613133644-0a778132a60f
|
||||
cosmossdk.io/x/nft v0.0.0-20230613133644-0a778132a60f
|
||||
cosmossdk.io/x/protocolpool v0.0.0-20230925135524-a1bc045b3190
|
||||
cosmossdk.io/x/tx v0.10.0
|
||||
cosmossdk.io/x/upgrade v0.0.0-20230613133644-0a778132a60f
|
||||
github.com/cometbft/cometbft v0.38.0
|
||||
@ -178,7 +179,7 @@ require (
|
||||
google.golang.org/api v0.134.0 // indirect
|
||||
google.golang.org/appengine v1.6.7 // indirect
|
||||
google.golang.org/genproto v0.0.0-20230913181813-007df8e322eb // indirect
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20230803162519-f966b187b2e5 // indirect
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20230822172742-b8732ec3820d // indirect
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20230920204549-e6e6cdab5c13 // indirect
|
||||
google.golang.org/grpc v1.58.2 // indirect
|
||||
gopkg.in/ini.v1 v1.67.0 // indirect
|
||||
@ -195,6 +196,7 @@ require (
|
||||
// replace (
|
||||
// <temporary replace>
|
||||
// )
|
||||
replace cosmossdk.io/api => ../api
|
||||
|
||||
// SimApp on main always tests the latest extracted SDK modules importing the sdk
|
||||
replace (
|
||||
@ -204,6 +206,7 @@ replace (
|
||||
cosmossdk.io/x/evidence => ../x/evidence
|
||||
cosmossdk.io/x/feegrant => ../x/feegrant
|
||||
cosmossdk.io/x/nft => ../x/nft
|
||||
cosmossdk.io/x/protocolpool => ../x/protocolpool
|
||||
cosmossdk.io/x/upgrade => ../x/upgrade
|
||||
)
|
||||
|
||||
|
||||
@ -187,8 +187,6 @@ cloud.google.com/go/webrisk v1.4.0/go.mod h1:Hn8X6Zr+ziE2aNd8SliSDWpEnSS1u4R9+xX
|
||||
cloud.google.com/go/webrisk v1.5.0/go.mod h1:iPG6fr52Tv7sGk0H6qUFzmL3HHZev1htXuWDEEsqMTg=
|
||||
cloud.google.com/go/workflows v1.6.0/go.mod h1:6t9F5h/unJz41YqfBmqSASJSXccBLtD1Vwf+KmJENM0=
|
||||
cloud.google.com/go/workflows v1.7.0/go.mod h1:JhSrZuVZWuiDfKEFxU0/F1PQjmpnpcoISEXH2bcHC3M=
|
||||
cosmossdk.io/api v0.7.1 h1:PNQ1xN8+/0hj/sSD0ANqjkgfXFys+bZ5L8Hg7uzoUTU=
|
||||
cosmossdk.io/api v0.7.1/go.mod h1:ure9edhcROIHsngavM6mBLilMGFnfjhV/AaYhEMUkdo=
|
||||
cosmossdk.io/collections v0.4.0 h1:PFmwj2W8szgpD5nOd8GWH6AbYNi1f2J6akWXJ7P5t9s=
|
||||
cosmossdk.io/collections v0.4.0/go.mod h1:oa5lUING2dP+gdDquow+QjlF45eL1t4TJDypgGd+tv0=
|
||||
cosmossdk.io/core v0.12.0 h1:aFuvkG6eDv0IQC+UDjx86wxNWVAxdCFk7OABJ1Vh4RU=
|
||||
@ -1593,8 +1591,8 @@ google.golang.org/genproto v0.0.0-20221014213838-99cd37c6964a/go.mod h1:1vXfmgAz
|
||||
google.golang.org/genproto v0.0.0-20221025140454-527a21cfbd71/go.mod h1:9qHF0xnpdSfF6knlcsnpzUu5y+rpwgbvsyGAZPBMg4s=
|
||||
google.golang.org/genproto v0.0.0-20230913181813-007df8e322eb h1:XFBgcDwm7irdHTbz4Zk2h7Mh+eis4nfJEFQFYzJzuIA=
|
||||
google.golang.org/genproto v0.0.0-20230913181813-007df8e322eb/go.mod h1:yZTlhN0tQnXo3h00fuXNCxJdLdIdnVFVBaRJ5LWBbw4=
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20230803162519-f966b187b2e5 h1:nIgk/EEq3/YlnmVVXVnm14rC2oxgs1o0ong4sD/rd44=
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20230803162519-f966b187b2e5/go.mod h1:5DZzOUPCLYL3mNkQ0ms0F3EuUNZ7py1Bqeq6sxzI7/Q=
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20230822172742-b8732ec3820d h1:DoPTO70H+bcDXcd39vOqb2viZxgqeBeSGtZ55yZU4/Q=
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20230822172742-b8732ec3820d/go.mod h1:KjSP20unUpOx5kyQUFa7k4OJg0qeJ7DEZflGDu2p6Bk=
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20230920204549-e6e6cdab5c13 h1:N3bU/SQDCDyD6R528GJ/PwW9KjYcJA3dgyH+MovAkIM=
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20230920204549-e6e6cdab5c13/go.mod h1:KSqppvjFjtoCI+KGd4PELB0qLNxdJHRGqRI09mB6pQA=
|
||||
google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs=
|
||||
|
||||
@ -16,9 +16,6 @@ schema = 3
|
||||
[mod."cloud.google.com/go/storage"]
|
||||
version = "v1.31.0"
|
||||
hash = "sha256-d59Q6JjMga6/7d1TtFW9GuAq+6O2U4LhNesz3Knmo0E="
|
||||
[mod."cosmossdk.io/api"]
|
||||
version = "v0.7.1"
|
||||
hash = "sha256-ot0ArFrnMTt5K82I4rEf0wtQvHMTHKG6dRWP5oXU3Tk="
|
||||
[mod."cosmossdk.io/collections"]
|
||||
version = "v0.4.0"
|
||||
hash = "sha256-minFyzgO/D+Oda4E3B1qvOAN5qd65SjS6nmjca4cp/8="
|
||||
@ -490,8 +487,8 @@ schema = 3
|
||||
version = "v0.0.0-20230913181813-007df8e322eb"
|
||||
hash = "sha256-0lXldjgjAjpPBID24a5hbRDJmuIxduVrAG98KwfbZLI="
|
||||
[mod."google.golang.org/genproto/googleapis/api"]
|
||||
version = "v0.0.0-20230803162519-f966b187b2e5"
|
||||
hash = "sha256-J5jdWPiLpWSEVkEghxbQaCb1CG0HqodshHOr/7yw1x0="
|
||||
version = "v0.0.0-20230822172742-b8732ec3820d"
|
||||
hash = "sha256-qd9dJezVHNJZNMkywXapT1rsyD+lb25AU8aG8NJlhm4="
|
||||
[mod."google.golang.org/genproto/googleapis/rpc"]
|
||||
version = "v0.0.0-20230920204549-e6e6cdab5c13"
|
||||
hash = "sha256-bSfeQfAT395BTmxnVAaNzw+ZX3VpBEgrfn9yn/azUX8="
|
||||
|
||||
@ -4,7 +4,7 @@ import (
|
||||
"context"
|
||||
|
||||
storetypes "cosmossdk.io/store/types"
|
||||
circuittypes "cosmossdk.io/x/circuit/types"
|
||||
protocolpooltypes "cosmossdk.io/x/protocolpool/types"
|
||||
upgradetypes "cosmossdk.io/x/upgrade/types"
|
||||
|
||||
"github.com/cosmos/cosmos-sdk/types/module"
|
||||
@ -15,8 +15,8 @@ import (
|
||||
//
|
||||
// NOTE: This upgrade defines a reference implementation of what an upgrade
|
||||
// could look like when an application is migrating from Cosmos SDK version
|
||||
// v0.47.x to v0.50.x.
|
||||
const UpgradeName = "v047-to-v050"
|
||||
// v0.50.x to v0.51.x.
|
||||
const UpgradeName = "v050-to-v051"
|
||||
|
||||
func (app SimApp) RegisterUpgradeHandlers() {
|
||||
app.UpgradeKeeper.SetUpgradeHandler(
|
||||
@ -34,7 +34,7 @@ func (app SimApp) RegisterUpgradeHandlers() {
|
||||
if upgradeInfo.Name == UpgradeName && !app.UpgradeKeeper.IsSkipHeight(upgradeInfo.Height) {
|
||||
storeUpgrades := storetypes.StoreUpgrades{
|
||||
Added: []string{
|
||||
circuittypes.ModuleName,
|
||||
protocolpooltypes.ModuleName,
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
@ -458,48 +458,3 @@ func (s *GRPCQueryTestSuite) TestQueryWithdrawAddressGRPC() {
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func (s *GRPCQueryTestSuite) TestQueryValidatorCommunityPoolGRPC() {
|
||||
val := s.network.Validators[0]
|
||||
baseURL := val.APIAddress
|
||||
|
||||
communityPool, err := sdk.ParseDecCoins("0.4stake")
|
||||
s.Require().NoError(err)
|
||||
|
||||
testCases := []struct {
|
||||
name string
|
||||
url string
|
||||
headers map[string]string
|
||||
expErr bool
|
||||
respType proto.Message
|
||||
expected proto.Message
|
||||
}{
|
||||
{
|
||||
"gRPC request params with wrong validator address",
|
||||
fmt.Sprintf("%s/cosmos/distribution/v1beta1/community_pool", baseURL),
|
||||
map[string]string{
|
||||
grpctypes.GRPCBlockHeightHeader: "2",
|
||||
},
|
||||
false,
|
||||
&types.QueryCommunityPoolResponse{},
|
||||
&types.QueryCommunityPoolResponse{
|
||||
Pool: communityPool,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
for _, tc := range testCases {
|
||||
tc := tc
|
||||
resp, err := sdktestutil.GetRequestWithHeaders(tc.url, tc.headers)
|
||||
|
||||
s.Run(tc.name, func() {
|
||||
if tc.expErr {
|
||||
s.Require().Error(err)
|
||||
} else {
|
||||
s.Require().NoError(err)
|
||||
s.Require().NoError(val.ClientCtx.Codec.UnmarshalJSON(resp, tc.respType))
|
||||
s.Require().Equal(tc.expected.String(), tc.respType.String())
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
@ -328,58 +328,3 @@ func (s *E2ETestSuite) TestNewSetWithdrawAddrCmd() {
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func (s *E2ETestSuite) TestNewFundCommunityPoolCmd() {
|
||||
val := s.network.Validators[0]
|
||||
|
||||
testCases := []struct {
|
||||
name string
|
||||
args []string
|
||||
expectErr bool
|
||||
expectedCode uint32
|
||||
respType proto.Message
|
||||
}{
|
||||
{
|
||||
"invalid funding amount",
|
||||
[]string{
|
||||
"-43foocoin",
|
||||
fmt.Sprintf("--%s=%s", flags.FlagFrom, val.Address.String()),
|
||||
fmt.Sprintf("--%s=true", flags.FlagSkipConfirmation),
|
||||
fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastSync),
|
||||
fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin(s.cfg.BondDenom, math.NewInt(10))).String()),
|
||||
},
|
||||
true, 0, nil,
|
||||
},
|
||||
{
|
||||
"valid transaction",
|
||||
[]string{
|
||||
sdk.NewCoins(sdk.NewCoin(s.cfg.BondDenom, math.NewInt(5431))).String(),
|
||||
fmt.Sprintf("--%s=%s", flags.FlagFrom, val.Address.String()),
|
||||
fmt.Sprintf("--%s=true", flags.FlagSkipConfirmation),
|
||||
fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastSync),
|
||||
fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin(s.cfg.BondDenom, math.NewInt(10))).String()),
|
||||
},
|
||||
false, 0, &sdk.TxResponse{},
|
||||
},
|
||||
}
|
||||
|
||||
for _, tc := range testCases {
|
||||
tc := tc
|
||||
|
||||
s.Run(tc.name, func() {
|
||||
cmd := cli.NewFundCommunityPoolCmd(address.NewBech32Codec("cosmos"))
|
||||
clientCtx := val.ClientCtx
|
||||
|
||||
out, err := clitestutil.ExecTestCLICmd(clientCtx, cmd, tc.args)
|
||||
if tc.expectErr {
|
||||
s.Require().Error(err)
|
||||
} else {
|
||||
s.Require().NoError(err)
|
||||
s.Require().NoError(clientCtx.Codec.UnmarshalJSON(out.Bytes(), tc.respType), out.String())
|
||||
|
||||
txResp := tc.respType.(*sdk.TxResponse)
|
||||
s.Require().NoError(clitestutil.CheckTxCode(s.network, clientCtx, txResp.TxHash, tc.expectedCode))
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
@ -15,6 +15,7 @@ require (
|
||||
cosmossdk.io/x/evidence v0.0.0-20230613133644-0a778132a60f
|
||||
cosmossdk.io/x/feegrant v0.0.0-20230613133644-0a778132a60f
|
||||
cosmossdk.io/x/nft v0.0.0-20230613133644-0a778132a60f // indirect
|
||||
cosmossdk.io/x/protocolpool v0.0.0-20230925135524-a1bc045b3190
|
||||
cosmossdk.io/x/tx v0.10.0
|
||||
cosmossdk.io/x/upgrade v0.0.0-20230613133644-0a778132a60f
|
||||
github.com/cometbft/cometbft v0.38.0
|
||||
@ -179,7 +180,7 @@ require (
|
||||
google.golang.org/api v0.134.0 // indirect
|
||||
google.golang.org/appengine v1.6.7 // indirect
|
||||
google.golang.org/genproto v0.0.0-20230913181813-007df8e322eb // indirect
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20230803162519-f966b187b2e5 // indirect
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20230822172742-b8732ec3820d // indirect
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20230920204549-e6e6cdab5c13 // indirect
|
||||
gopkg.in/ini.v1 v1.67.0 // indirect
|
||||
gopkg.in/yaml.v2 v2.4.0 // indirect
|
||||
@ -193,6 +194,7 @@ require (
|
||||
// replace (
|
||||
// <temporary replace>
|
||||
// )
|
||||
replace cosmossdk.io/api => ../api
|
||||
|
||||
// SimApp on main always tests the latest extracted SDK modules importing the sdk
|
||||
replace (
|
||||
@ -201,6 +203,7 @@ replace (
|
||||
cosmossdk.io/x/evidence => ../x/evidence
|
||||
cosmossdk.io/x/feegrant => ../x/feegrant
|
||||
cosmossdk.io/x/nft => ../x/nft
|
||||
cosmossdk.io/x/protocolpool => ../x/protocolpool
|
||||
cosmossdk.io/x/upgrade => ../x/upgrade
|
||||
)
|
||||
|
||||
|
||||
@ -187,8 +187,6 @@ cloud.google.com/go/webrisk v1.4.0/go.mod h1:Hn8X6Zr+ziE2aNd8SliSDWpEnSS1u4R9+xX
|
||||
cloud.google.com/go/webrisk v1.5.0/go.mod h1:iPG6fr52Tv7sGk0H6qUFzmL3HHZev1htXuWDEEsqMTg=
|
||||
cloud.google.com/go/workflows v1.6.0/go.mod h1:6t9F5h/unJz41YqfBmqSASJSXccBLtD1Vwf+KmJENM0=
|
||||
cloud.google.com/go/workflows v1.7.0/go.mod h1:JhSrZuVZWuiDfKEFxU0/F1PQjmpnpcoISEXH2bcHC3M=
|
||||
cosmossdk.io/api v0.7.1 h1:PNQ1xN8+/0hj/sSD0ANqjkgfXFys+bZ5L8Hg7uzoUTU=
|
||||
cosmossdk.io/api v0.7.1/go.mod h1:ure9edhcROIHsngavM6mBLilMGFnfjhV/AaYhEMUkdo=
|
||||
cosmossdk.io/collections v0.4.0 h1:PFmwj2W8szgpD5nOd8GWH6AbYNi1f2J6akWXJ7P5t9s=
|
||||
cosmossdk.io/collections v0.4.0/go.mod h1:oa5lUING2dP+gdDquow+QjlF45eL1t4TJDypgGd+tv0=
|
||||
cosmossdk.io/core v0.12.0 h1:aFuvkG6eDv0IQC+UDjx86wxNWVAxdCFk7OABJ1Vh4RU=
|
||||
@ -1596,8 +1594,8 @@ google.golang.org/genproto v0.0.0-20221014213838-99cd37c6964a/go.mod h1:1vXfmgAz
|
||||
google.golang.org/genproto v0.0.0-20221025140454-527a21cfbd71/go.mod h1:9qHF0xnpdSfF6knlcsnpzUu5y+rpwgbvsyGAZPBMg4s=
|
||||
google.golang.org/genproto v0.0.0-20230913181813-007df8e322eb h1:XFBgcDwm7irdHTbz4Zk2h7Mh+eis4nfJEFQFYzJzuIA=
|
||||
google.golang.org/genproto v0.0.0-20230913181813-007df8e322eb/go.mod h1:yZTlhN0tQnXo3h00fuXNCxJdLdIdnVFVBaRJ5LWBbw4=
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20230803162519-f966b187b2e5 h1:nIgk/EEq3/YlnmVVXVnm14rC2oxgs1o0ong4sD/rd44=
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20230803162519-f966b187b2e5/go.mod h1:5DZzOUPCLYL3mNkQ0ms0F3EuUNZ7py1Bqeq6sxzI7/Q=
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20230822172742-b8732ec3820d h1:DoPTO70H+bcDXcd39vOqb2viZxgqeBeSGtZ55yZU4/Q=
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20230822172742-b8732ec3820d/go.mod h1:KjSP20unUpOx5kyQUFa7k4OJg0qeJ7DEZflGDu2p6Bk=
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20230920204549-e6e6cdab5c13 h1:N3bU/SQDCDyD6R528GJ/PwW9KjYcJA3dgyH+MovAkIM=
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20230920204549-e6e6cdab5c13/go.mod h1:KSqppvjFjtoCI+KGd4PELB0qLNxdJHRGqRI09mB6pQA=
|
||||
google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs=
|
||||
|
||||
@ -11,6 +11,7 @@ import (
|
||||
"cosmossdk.io/depinject"
|
||||
"cosmossdk.io/log"
|
||||
sdkmath "cosmossdk.io/math"
|
||||
_ "cosmossdk.io/x/protocolpool"
|
||||
|
||||
"github.com/cosmos/cosmos-sdk/baseapp"
|
||||
"github.com/cosmos/cosmos-sdk/crypto/keys/secp256k1"
|
||||
@ -123,6 +124,7 @@ func createTestSuite(t *testing.T, genesisAccounts []authtypes.GenesisAccount) s
|
||||
configurator.BankModule(),
|
||||
configurator.GovModule(),
|
||||
configurator.DistributionModule(),
|
||||
configurator.ProtocolPoolModule(),
|
||||
),
|
||||
depinject.Supply(log.NewNopLogger()),
|
||||
),
|
||||
|
||||
@ -425,16 +425,12 @@ func TestGRPCCommunityPool(t *testing.T) {
|
||||
t.Parallel()
|
||||
f := initFixture(t)
|
||||
|
||||
assert.NilError(t, f.distrKeeper.FeePool.Set(f.sdkCtx, types.FeePool{
|
||||
CommunityPool: sdk.NewDecCoins(sdk.DecCoin{Denom: sdk.DefaultBondDenom, Amount: math.LegacyNewDec(0)}),
|
||||
}))
|
||||
|
||||
qr := f.app.QueryHelper()
|
||||
queryClient := types.NewQueryClient(qr)
|
||||
|
||||
var (
|
||||
req *types.QueryCommunityPoolRequest
|
||||
expPool *types.QueryCommunityPoolResponse
|
||||
req *types.QueryCommunityPoolRequest //nolint:staticcheck // we're using a deprecated call
|
||||
expPool *types.QueryCommunityPoolResponse //nolint:staticcheck // we're using a deprecated call
|
||||
)
|
||||
|
||||
testCases := []struct {
|
||||
@ -444,8 +440,8 @@ func TestGRPCCommunityPool(t *testing.T) {
|
||||
{
|
||||
name: "valid request empty community pool",
|
||||
malleate: func() {
|
||||
req = &types.QueryCommunityPoolRequest{}
|
||||
expPool = &types.QueryCommunityPoolResponse{}
|
||||
req = &types.QueryCommunityPoolRequest{} //nolint:staticcheck // we're using a deprecated call
|
||||
expPool = &types.QueryCommunityPoolResponse{} //nolint:staticcheck // we're using a deprecated call
|
||||
},
|
||||
},
|
||||
{
|
||||
@ -455,11 +451,11 @@ func TestGRPCCommunityPool(t *testing.T) {
|
||||
assert.NilError(t, f.bankKeeper.MintCoins(f.sdkCtx, types.ModuleName, amount))
|
||||
assert.NilError(t, f.bankKeeper.SendCoinsFromModuleToAccount(f.sdkCtx, types.ModuleName, f.addr, amount))
|
||||
|
||||
err := f.distrKeeper.FundCommunityPool(f.sdkCtx, amount, f.addr)
|
||||
err := f.poolKeeper.FundCommunityPool(f.sdkCtx, amount, f.addr)
|
||||
assert.Assert(t, err == nil)
|
||||
req = &types.QueryCommunityPoolRequest{}
|
||||
req = &types.QueryCommunityPoolRequest{} //nolint:staticcheck // we're using a deprecated call
|
||||
|
||||
expPool = &types.QueryCommunityPoolResponse{Pool: sdk.NewDecCoinsFromCoins(amount...)}
|
||||
expPool = &types.QueryCommunityPoolResponse{Pool: sdk.NewDecCoinsFromCoins(amount...)} //nolint:staticcheck // we're using a deprecated call
|
||||
},
|
||||
},
|
||||
}
|
||||
@ -469,7 +465,7 @@ func TestGRPCCommunityPool(t *testing.T) {
|
||||
t.Run(fmt.Sprintf("Case %s", tc.name), func(t *testing.T) {
|
||||
testCase.malleate()
|
||||
|
||||
pool, err := queryClient.CommunityPool(f.sdkCtx, req)
|
||||
pool, err := queryClient.CommunityPool(f.sdkCtx, req) //nolint:staticcheck // we're using a deprecated call
|
||||
|
||||
assert.NilError(t, err)
|
||||
assert.DeepEqual(t, expPool, pool)
|
||||
|
||||
@ -13,6 +13,9 @@ import (
|
||||
"cosmossdk.io/log"
|
||||
"cosmossdk.io/math"
|
||||
storetypes "cosmossdk.io/store/types"
|
||||
"cosmossdk.io/x/protocolpool"
|
||||
poolkeeper "cosmossdk.io/x/protocolpool/keeper"
|
||||
pooltypes "cosmossdk.io/x/protocolpool/types"
|
||||
|
||||
"github.com/cosmos/cosmos-sdk/codec"
|
||||
addresscodec "github.com/cosmos/cosmos-sdk/codec/address"
|
||||
@ -52,19 +55,20 @@ type fixture struct {
|
||||
bankKeeper bankkeeper.Keeper
|
||||
distrKeeper distrkeeper.Keeper
|
||||
stakingKeeper *stakingkeeper.Keeper
|
||||
poolKeeper poolkeeper.Keeper
|
||||
|
||||
addr sdk.AccAddress
|
||||
valAddr sdk.ValAddress
|
||||
}
|
||||
|
||||
func initFixture(tb testing.TB) *fixture {
|
||||
tb.Helper()
|
||||
func initFixture(t *testing.T) *fixture {
|
||||
t.Helper()
|
||||
keys := storetypes.NewKVStoreKeys(
|
||||
authtypes.StoreKey, banktypes.StoreKey, distrtypes.StoreKey, stakingtypes.StoreKey,
|
||||
authtypes.StoreKey, banktypes.StoreKey, distrtypes.StoreKey, pooltypes.StoreKey, stakingtypes.StoreKey,
|
||||
)
|
||||
cdc := moduletestutil.MakeTestEncodingConfig(auth.AppModuleBasic{}, distribution.AppModuleBasic{}).Codec
|
||||
cdc := moduletestutil.MakeTestEncodingConfig(auth.AppModuleBasic{}, distribution.AppModuleBasic{}, protocolpool.AppModuleBasic{}).Codec
|
||||
|
||||
logger := log.NewTestLogger(tb)
|
||||
logger := log.NewTestLogger(t)
|
||||
cms := integration.CreateMultiStore(keys, logger)
|
||||
|
||||
newCtx := sdk.NewContext(cms, true, logger)
|
||||
@ -72,6 +76,7 @@ func initFixture(tb testing.TB) *fixture {
|
||||
authority := authtypes.NewModuleAddress("gov")
|
||||
|
||||
maccPerms := map[string][]string{
|
||||
pooltypes.ModuleName: {},
|
||||
distrtypes.ModuleName: {authtypes.Minter},
|
||||
stakingtypes.BondedPoolName: {authtypes.Burner, authtypes.Staking},
|
||||
stakingtypes.NotBondedPoolName: {authtypes.Burner, authtypes.Staking},
|
||||
@ -100,16 +105,21 @@ func initFixture(tb testing.TB) *fixture {
|
||||
)
|
||||
|
||||
stakingKeeper := stakingkeeper.NewKeeper(cdc, runtime.NewKVStoreService(keys[stakingtypes.StoreKey]), accountKeeper, bankKeeper, authority.String(), addresscodec.NewBech32Codec(sdk.Bech32PrefixValAddr), addresscodec.NewBech32Codec(sdk.Bech32PrefixConsAddr))
|
||||
require.NoError(tb, stakingKeeper.Params.Set(newCtx, stakingtypes.DefaultParams()))
|
||||
require.NoError(t, stakingKeeper.Params.Set(newCtx, stakingtypes.DefaultParams()))
|
||||
|
||||
poolKeeper := poolkeeper.NewKeeper(
|
||||
cdc, runtime.NewKVStoreService(keys[pooltypes.StoreKey]), accountKeeper, bankKeeper, authority.String(),
|
||||
)
|
||||
|
||||
distrKeeper := distrkeeper.NewKeeper(
|
||||
cdc, runtime.NewKVStoreService(keys[distrtypes.StoreKey]), accountKeeper, bankKeeper, stakingKeeper, distrtypes.ModuleName, authority.String(),
|
||||
cdc, runtime.NewKVStoreService(keys[distrtypes.StoreKey]), accountKeeper, bankKeeper, stakingKeeper, poolKeeper, distrtypes.ModuleName, authority.String(),
|
||||
)
|
||||
|
||||
authModule := auth.NewAppModule(cdc, accountKeeper, authsims.RandomGenesisAccounts)
|
||||
bankModule := bank.NewAppModule(cdc, bankKeeper, accountKeeper)
|
||||
stakingModule := staking.NewAppModule(cdc, stakingKeeper, accountKeeper, bankKeeper)
|
||||
distrModule := distribution.NewAppModule(cdc, distrKeeper, accountKeeper, bankKeeper, stakingKeeper)
|
||||
distrModule := distribution.NewAppModule(cdc, distrKeeper, accountKeeper, bankKeeper, stakingKeeper, poolKeeper)
|
||||
poolModule := protocolpool.NewAppModule(cdc, poolKeeper, accountKeeper, bankKeeper)
|
||||
|
||||
addr := sdk.AccAddress(PKS[0].Address())
|
||||
valAddr := sdk.ValAddress(addr)
|
||||
@ -135,6 +145,7 @@ func initFixture(tb testing.TB) *fixture {
|
||||
banktypes.ModuleName: bankModule,
|
||||
stakingtypes.ModuleName: stakingModule,
|
||||
distrtypes.ModuleName: distrModule,
|
||||
pooltypes.ModuleName: poolModule,
|
||||
})
|
||||
|
||||
sdkCtx := sdk.UnwrapSDKContext(integrationApp.Context())
|
||||
@ -152,6 +163,7 @@ func initFixture(tb testing.TB) *fixture {
|
||||
bankKeeper: bankKeeper,
|
||||
distrKeeper: distrKeeper,
|
||||
stakingKeeper: stakingKeeper,
|
||||
poolKeeper: poolKeeper,
|
||||
addr: addr,
|
||||
valAddr: valAddr,
|
||||
}
|
||||
@ -573,33 +585,30 @@ func TestMsgFundCommunityPool(t *testing.T) {
|
||||
t.Parallel()
|
||||
f := initFixture(t)
|
||||
|
||||
// reset fee pool
|
||||
initPool := distrtypes.InitialFeePool()
|
||||
require.NoError(t, f.distrKeeper.FeePool.Set(f.sdkCtx, initPool))
|
||||
|
||||
initTokens := f.stakingKeeper.TokensFromConsensusPower(f.sdkCtx, int64(100))
|
||||
err := f.bankKeeper.MintCoins(f.sdkCtx, distrtypes.ModuleName, sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, initTokens)))
|
||||
require.NoError(t, err)
|
||||
|
||||
addr := sdk.AccAddress(PKS[0].Address())
|
||||
addr2 := sdk.AccAddress(PKS[1].Address())
|
||||
amount := sdk.NewCoins(sdk.NewInt64Coin("stake", 100))
|
||||
|
||||
poolAcc := f.accountKeeper.GetModuleAccount(f.sdkCtx, pooltypes.ModuleName)
|
||||
|
||||
// check that the pool account balance is empty
|
||||
assert.Assert(t, f.bankKeeper.GetAllBalances(f.sdkCtx, poolAcc.GetAddress()).Empty())
|
||||
|
||||
// fund the account by minting and sending amount from distribution module to addr
|
||||
err = f.bankKeeper.MintCoins(f.sdkCtx, distrtypes.ModuleName, amount)
|
||||
err := f.bankKeeper.MintCoins(f.sdkCtx, distrtypes.ModuleName, amount)
|
||||
assert.NilError(t, err)
|
||||
err = f.bankKeeper.SendCoinsFromModuleToAccount(f.sdkCtx, distrtypes.ModuleName, addr, amount)
|
||||
assert.NilError(t, err)
|
||||
|
||||
testCases := []struct {
|
||||
name string
|
||||
msg *distrtypes.MsgFundCommunityPool
|
||||
msg *distrtypes.MsgFundCommunityPool //nolint:staticcheck // we're using a deprecated call
|
||||
expErr bool
|
||||
expErrMsg string
|
||||
}{
|
||||
{
|
||||
name: "no depositor address",
|
||||
msg: &distrtypes.MsgFundCommunityPool{
|
||||
msg: &distrtypes.MsgFundCommunityPool{ //nolint:staticcheck // we're using a deprecated call
|
||||
Amount: sdk.NewCoins(sdk.NewCoin("stake", math.NewInt(100))),
|
||||
Depositor: emptyDelAddr.String(),
|
||||
},
|
||||
@ -608,7 +617,7 @@ func TestMsgFundCommunityPool(t *testing.T) {
|
||||
},
|
||||
{
|
||||
name: "invalid coin",
|
||||
msg: &distrtypes.MsgFundCommunityPool{
|
||||
msg: &distrtypes.MsgFundCommunityPool{ //nolint:staticcheck // we're using a deprecated call
|
||||
Amount: sdk.Coins{sdk.NewInt64Coin("stake", 10), sdk.NewInt64Coin("stake", 10)},
|
||||
Depositor: addr.String(),
|
||||
},
|
||||
@ -617,7 +626,7 @@ func TestMsgFundCommunityPool(t *testing.T) {
|
||||
},
|
||||
{
|
||||
name: "depositor address with no funds",
|
||||
msg: &distrtypes.MsgFundCommunityPool{
|
||||
msg: &distrtypes.MsgFundCommunityPool{ //nolint:staticcheck // we're using a deprecated call
|
||||
Amount: sdk.NewCoins(sdk.NewCoin("stake", math.NewInt(100))),
|
||||
Depositor: addr2.String(),
|
||||
},
|
||||
@ -626,7 +635,7 @@ func TestMsgFundCommunityPool(t *testing.T) {
|
||||
},
|
||||
{
|
||||
name: "valid message",
|
||||
msg: &distrtypes.MsgFundCommunityPool{
|
||||
msg: &distrtypes.MsgFundCommunityPool{ //nolint:staticcheck // we're using a deprecated call
|
||||
Amount: sdk.NewCoins(sdk.NewCoin("stake", math.NewInt(100))),
|
||||
Depositor: addr.String(),
|
||||
},
|
||||
@ -648,14 +657,14 @@ func TestMsgFundCommunityPool(t *testing.T) {
|
||||
assert.Assert(t, res != nil)
|
||||
|
||||
// check the result
|
||||
result := distrtypes.MsgFundCommunityPool{}
|
||||
result := distrtypes.MsgFundCommunityPool{} //nolint:staticcheck // we're using a deprecated call
|
||||
err = f.cdc.Unmarshal(res.Value, &result)
|
||||
assert.NilError(t, err)
|
||||
|
||||
// query the community pool funds
|
||||
feePool, err := f.distrKeeper.FeePool.Get(f.sdkCtx)
|
||||
require.NoError(t, err)
|
||||
assert.DeepEqual(t, initPool.CommunityPool.Add(sdk.NewDecCoinsFromCoins(amount...)...), feePool.CommunityPool)
|
||||
poolBal := f.bankKeeper.GetAllBalances(f.sdkCtx, poolAcc.GetAddress())
|
||||
assert.Assert(t, poolBal.Equal(amount))
|
||||
|
||||
assert.Assert(t, f.bankKeeper.GetAllBalances(f.sdkCtx, addr).Empty())
|
||||
}
|
||||
})
|
||||
@ -806,27 +815,31 @@ func TestMsgCommunityPoolSpend(t *testing.T) {
|
||||
t.Parallel()
|
||||
f := initFixture(t)
|
||||
|
||||
require.NoError(t, f.distrKeeper.Params.Set(f.sdkCtx, distrtypes.DefaultParams()))
|
||||
initialFeePool := sdk.NewDecCoins(sdk.DecCoin{Denom: "stake", Amount: math.LegacyNewDec(10000)})
|
||||
require.NoError(t, f.distrKeeper.FeePool.Set(f.sdkCtx, distrtypes.FeePool{
|
||||
CommunityPool: initialFeePool,
|
||||
}))
|
||||
|
||||
initTokens := f.stakingKeeper.TokensFromConsensusPower(f.sdkCtx, int64(100))
|
||||
err := f.bankKeeper.MintCoins(f.sdkCtx, distrtypes.ModuleName, sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, initTokens)))
|
||||
require.NoError(t, err)
|
||||
|
||||
// fund pool module account
|
||||
amount := sdk.NewCoins(sdk.NewInt64Coin("stake", 100))
|
||||
poolAcc := f.accountKeeper.GetModuleAccount(f.sdkCtx, pooltypes.ModuleName)
|
||||
err = f.bankKeeper.SendCoinsFromModuleToModule(f.sdkCtx, distrtypes.ModuleName, poolAcc.GetName(), amount)
|
||||
require.NoError(t, err)
|
||||
|
||||
// query the community pool to verify it has been updated with balance
|
||||
poolBal := f.bankKeeper.GetAllBalances(f.sdkCtx, poolAcc.GetAddress())
|
||||
assert.Assert(t, poolBal.Equal(amount))
|
||||
|
||||
recipient := sdk.AccAddress([]byte("addr1"))
|
||||
|
||||
testCases := []struct {
|
||||
name string
|
||||
msg *distrtypes.MsgCommunityPoolSpend
|
||||
msg *distrtypes.MsgCommunityPoolSpend //nolint:staticcheck // we're using a deprecated call
|
||||
expErr bool
|
||||
expErrMsg string
|
||||
}{
|
||||
{
|
||||
name: "invalid authority",
|
||||
msg: &distrtypes.MsgCommunityPoolSpend{
|
||||
msg: &distrtypes.MsgCommunityPoolSpend{ //nolint:staticcheck // we're using a deprecated call
|
||||
Authority: "invalid",
|
||||
Recipient: recipient.String(),
|
||||
Amount: sdk.NewCoins(sdk.NewCoin("stake", math.NewInt(100))),
|
||||
@ -836,7 +849,7 @@ func TestMsgCommunityPoolSpend(t *testing.T) {
|
||||
},
|
||||
{
|
||||
name: "invalid recipient",
|
||||
msg: &distrtypes.MsgCommunityPoolSpend{
|
||||
msg: &distrtypes.MsgCommunityPoolSpend{ //nolint:staticcheck // we're using a deprecated call
|
||||
Authority: f.distrKeeper.GetAuthority(),
|
||||
Recipient: "invalid",
|
||||
Amount: sdk.NewCoins(sdk.NewCoin("stake", math.NewInt(100))),
|
||||
@ -846,7 +859,7 @@ func TestMsgCommunityPoolSpend(t *testing.T) {
|
||||
},
|
||||
{
|
||||
name: "valid message",
|
||||
msg: &distrtypes.MsgCommunityPoolSpend{
|
||||
msg: &distrtypes.MsgCommunityPoolSpend{ //nolint:staticcheck // we're using a deprecated call
|
||||
Authority: f.distrKeeper.GetAuthority(),
|
||||
Recipient: recipient.String(),
|
||||
Amount: sdk.NewCoins(sdk.NewCoin("stake", math.NewInt(100))),
|
||||
@ -869,16 +882,14 @@ func TestMsgCommunityPoolSpend(t *testing.T) {
|
||||
assert.Assert(t, res != nil)
|
||||
|
||||
// check the result
|
||||
result := distrtypes.MsgCommunityPoolSpend{}
|
||||
result := distrtypes.MsgCommunityPoolSpend{} //nolint:staticcheck // we're using a deprecated call
|
||||
err = f.cdc.Unmarshal(res.Value, &result)
|
||||
assert.NilError(t, err)
|
||||
|
||||
// query the community pool to verify it has been updated
|
||||
communityPool, err := f.distrKeeper.FeePool.Get(f.sdkCtx)
|
||||
require.NoError(t, err)
|
||||
newPool, negative := initialFeePool.SafeSub(sdk.NewDecCoinsFromCoins(tc.msg.Amount...))
|
||||
assert.Assert(t, negative == false)
|
||||
assert.DeepEqual(t, communityPool.CommunityPool, newPool)
|
||||
poolBal := f.bankKeeper.GetAllBalances(f.sdkCtx, poolAcc.GetAddress())
|
||||
assert.Assert(t, poolBal.Empty())
|
||||
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@ -24,9 +24,6 @@ import (
|
||||
bankkeeper "github.com/cosmos/cosmos-sdk/x/bank/keeper"
|
||||
banktypes "github.com/cosmos/cosmos-sdk/x/bank/types"
|
||||
_ "github.com/cosmos/cosmos-sdk/x/consensus"
|
||||
_ "github.com/cosmos/cosmos-sdk/x/distribution"
|
||||
distrkeeper "github.com/cosmos/cosmos-sdk/x/distribution/keeper"
|
||||
disttypes "github.com/cosmos/cosmos-sdk/x/distribution/types"
|
||||
"github.com/cosmos/cosmos-sdk/x/gov"
|
||||
"github.com/cosmos/cosmos-sdk/x/gov/keeper"
|
||||
"github.com/cosmos/cosmos-sdk/x/gov/types"
|
||||
@ -41,7 +38,6 @@ type suite struct {
|
||||
app *runtime.App
|
||||
AccountKeeper authkeeper.AccountKeeper
|
||||
BankKeeper bankkeeper.Keeper
|
||||
DistrKeeper distrkeeper.Keeper
|
||||
GovKeeper *keeper.Keeper
|
||||
StakingKeeper *stakingkeeper.Keeper
|
||||
appBuilder *runtime.AppBuilder
|
||||
@ -52,9 +48,9 @@ var appConfig = configurator.NewAppConfig(
|
||||
configurator.StakingModule(),
|
||||
configurator.BankModule(),
|
||||
configurator.GovModule(),
|
||||
configurator.DistributionModule(),
|
||||
configurator.MintModule(),
|
||||
configurator.ConsensusModule(),
|
||||
configurator.ProtocolPoolModule(),
|
||||
)
|
||||
|
||||
func TestImportExportQueues(t *testing.T) {
|
||||
@ -67,7 +63,7 @@ func TestImportExportQueues(t *testing.T) {
|
||||
depinject.Supply(log.NewNopLogger()),
|
||||
),
|
||||
simtestutil.DefaultStartUpConfig(),
|
||||
&s1.AccountKeeper, &s1.BankKeeper, &s1.DistrKeeper, &s1.GovKeeper, &s1.StakingKeeper, &s1.cdc, &s1.appBuilder,
|
||||
&s1.AccountKeeper, &s1.BankKeeper, &s1.GovKeeper, &s1.StakingKeeper, &s1.cdc, &s1.appBuilder,
|
||||
)
|
||||
assert.NilError(t, err)
|
||||
|
||||
@ -105,7 +101,6 @@ func TestImportExportQueues(t *testing.T) {
|
||||
authGenState := s1.AccountKeeper.ExportGenesis(ctx)
|
||||
bankGenState := s1.BankKeeper.ExportGenesis(ctx)
|
||||
stakingGenState := s1.StakingKeeper.ExportGenesis(ctx)
|
||||
distributionGenState := s1.DistrKeeper.ExportGenesis(ctx)
|
||||
|
||||
// export the state and import it into a new app
|
||||
govGenState, _ := gov.ExportGenesis(ctx, s1.GovKeeper)
|
||||
@ -115,7 +110,6 @@ func TestImportExportQueues(t *testing.T) {
|
||||
genesisState[banktypes.ModuleName] = s1.cdc.MustMarshalJSON(bankGenState)
|
||||
genesisState[types.ModuleName] = s1.cdc.MustMarshalJSON(govGenState)
|
||||
genesisState[stakingtypes.ModuleName] = s1.cdc.MustMarshalJSON(stakingGenState)
|
||||
genesisState[disttypes.ModuleName] = s1.cdc.MustMarshalJSON(distributionGenState)
|
||||
|
||||
stateBytes, err := json.MarshalIndent(genesisState, "", " ")
|
||||
assert.NilError(t, err)
|
||||
@ -130,7 +124,7 @@ func TestImportExportQueues(t *testing.T) {
|
||||
depinject.Supply(log.NewNopLogger()),
|
||||
),
|
||||
conf2,
|
||||
&s2.AccountKeeper, &s2.BankKeeper, &s2.DistrKeeper, &s2.GovKeeper, &s2.StakingKeeper, &s2.cdc, &s2.appBuilder,
|
||||
&s2.AccountKeeper, &s2.BankKeeper, &s2.GovKeeper, &s2.StakingKeeper, &s2.cdc, &s2.appBuilder,
|
||||
)
|
||||
assert.NilError(t, err)
|
||||
|
||||
|
||||
@ -8,6 +8,8 @@ import (
|
||||
"cosmossdk.io/core/appmodule"
|
||||
"cosmossdk.io/log"
|
||||
storetypes "cosmossdk.io/store/types"
|
||||
poolkeeper "cosmossdk.io/x/protocolpool/keeper"
|
||||
pooltypes "cosmossdk.io/x/protocolpool/types"
|
||||
|
||||
"github.com/cosmos/cosmos-sdk/baseapp"
|
||||
addresscodec "github.com/cosmos/cosmos-sdk/codec/address"
|
||||
@ -22,9 +24,6 @@ import (
|
||||
"github.com/cosmos/cosmos-sdk/x/bank"
|
||||
bankkeeper "github.com/cosmos/cosmos-sdk/x/bank/keeper"
|
||||
banktypes "github.com/cosmos/cosmos-sdk/x/bank/types"
|
||||
"github.com/cosmos/cosmos-sdk/x/distribution"
|
||||
distrkeeper "github.com/cosmos/cosmos-sdk/x/distribution/keeper"
|
||||
distrtypes "github.com/cosmos/cosmos-sdk/x/distribution/types"
|
||||
"github.com/cosmos/cosmos-sdk/x/gov"
|
||||
"github.com/cosmos/cosmos-sdk/x/gov/keeper"
|
||||
"github.com/cosmos/cosmos-sdk/x/gov/types"
|
||||
@ -50,7 +49,7 @@ type fixture struct {
|
||||
func initFixture(tb testing.TB) *fixture {
|
||||
tb.Helper()
|
||||
keys := storetypes.NewKVStoreKeys(
|
||||
authtypes.StoreKey, banktypes.StoreKey, distrtypes.StoreKey, stakingtypes.StoreKey, types.StoreKey,
|
||||
authtypes.StoreKey, banktypes.StoreKey, stakingtypes.StoreKey, pooltypes.StoreKey, types.StoreKey,
|
||||
)
|
||||
cdc := moduletestutil.MakeTestEncodingConfig(auth.AppModuleBasic{}, bank.AppModuleBasic{}, gov.AppModuleBasic{}).Codec
|
||||
|
||||
@ -62,7 +61,7 @@ func initFixture(tb testing.TB) *fixture {
|
||||
authority := authtypes.NewModuleAddress(types.ModuleName)
|
||||
|
||||
maccPerms := map[string][]string{
|
||||
distrtypes.ModuleName: nil,
|
||||
pooltypes.ModuleName: {},
|
||||
minttypes.ModuleName: {authtypes.Minter},
|
||||
stakingtypes.BondedPoolName: {authtypes.Burner, authtypes.Staking},
|
||||
stakingtypes.NotBondedPoolName: {authtypes.Burner, authtypes.Staking},
|
||||
@ -93,12 +92,11 @@ func initFixture(tb testing.TB) *fixture {
|
||||
|
||||
stakingKeeper := stakingkeeper.NewKeeper(cdc, runtime.NewKVStoreService(keys[stakingtypes.StoreKey]), accountKeeper, bankKeeper, authority.String(), addresscodec.NewBech32Codec(sdk.Bech32PrefixValAddr), addresscodec.NewBech32Codec(sdk.Bech32PrefixConsAddr))
|
||||
|
||||
poolKeeper := poolkeeper.NewKeeper(cdc, runtime.NewKVStoreService(keys[pooltypes.StoreKey]), accountKeeper, bankKeeper, authority.String())
|
||||
|
||||
// set default staking params
|
||||
err := stakingKeeper.Params.Set(newCtx, stakingtypes.DefaultParams())
|
||||
assert.NilError(tb, err)
|
||||
distrKeeper := distrkeeper.NewKeeper(
|
||||
cdc, runtime.NewKVStoreService(keys[distrtypes.StoreKey]), accountKeeper, bankKeeper, stakingKeeper, distrtypes.ModuleName, authority.String(),
|
||||
)
|
||||
|
||||
// Create MsgServiceRouter, but don't populate it before creating the gov
|
||||
// keeper.
|
||||
@ -111,7 +109,7 @@ func initFixture(tb testing.TB) *fixture {
|
||||
accountKeeper,
|
||||
bankKeeper,
|
||||
stakingKeeper,
|
||||
distrKeeper,
|
||||
poolKeeper,
|
||||
router,
|
||||
types.DefaultConfig(),
|
||||
authority.String(),
|
||||
@ -126,13 +124,11 @@ func initFixture(tb testing.TB) *fixture {
|
||||
authModule := auth.NewAppModule(cdc, accountKeeper, authsims.RandomGenesisAccounts)
|
||||
bankModule := bank.NewAppModule(cdc, bankKeeper, accountKeeper)
|
||||
stakingModule := staking.NewAppModule(cdc, stakingKeeper, accountKeeper, bankKeeper)
|
||||
distrModule := distribution.NewAppModule(cdc, distrKeeper, accountKeeper, bankKeeper, stakingKeeper)
|
||||
govModule := gov.NewAppModule(cdc, govKeeper, accountKeeper, bankKeeper)
|
||||
govModule := gov.NewAppModule(cdc, govKeeper, accountKeeper, bankKeeper, poolKeeper)
|
||||
|
||||
integrationApp := integration.NewIntegrationApp(newCtx, logger, keys, cdc, map[string]appmodule.AppModule{
|
||||
authtypes.ModuleName: authModule,
|
||||
banktypes.ModuleName: bankModule,
|
||||
distrtypes.ModuleName: distrModule,
|
||||
stakingtypes.ModuleName: stakingModule,
|
||||
types.ModuleName: govModule,
|
||||
})
|
||||
|
||||
@ -7,12 +7,12 @@ import (
|
||||
|
||||
"cosmossdk.io/depinject"
|
||||
"cosmossdk.io/log"
|
||||
_ "cosmossdk.io/x/protocolpool"
|
||||
|
||||
"github.com/cosmos/cosmos-sdk/testutil/configurator"
|
||||
simtestutil "github.com/cosmos/cosmos-sdk/testutil/sims"
|
||||
authkeeper "github.com/cosmos/cosmos-sdk/x/auth/keeper"
|
||||
authtypes "github.com/cosmos/cosmos-sdk/x/auth/types"
|
||||
_ "github.com/cosmos/cosmos-sdk/x/distribution"
|
||||
"github.com/cosmos/cosmos-sdk/x/gov/types"
|
||||
_ "github.com/cosmos/cosmos-sdk/x/mint"
|
||||
)
|
||||
@ -26,8 +26,8 @@ func TestItCreatesModuleAccountOnInitBlock(t *testing.T) {
|
||||
configurator.StakingModule(),
|
||||
configurator.BankModule(),
|
||||
configurator.GovModule(),
|
||||
configurator.DistributionModule(),
|
||||
configurator.ConsensusModule(),
|
||||
configurator.ProtocolPoolModule(),
|
||||
),
|
||||
depinject.Supply(log.NewNopLogger()),
|
||||
),
|
||||
|
||||
@ -127,9 +127,7 @@ var (
|
||||
GenType(&disttypes.MsgWithdrawDelegatorReward{}, &distapi.MsgWithdrawDelegatorReward{}, GenOpts),
|
||||
GenType(&disttypes.MsgWithdrawValidatorCommission{}, &distapi.MsgWithdrawValidatorCommission{}, GenOpts),
|
||||
GenType(&disttypes.MsgSetWithdrawAddress{}, &distapi.MsgSetWithdrawAddress{}, GenOpts),
|
||||
GenType(&disttypes.MsgFundCommunityPool{}, &distapi.MsgFundCommunityPool{}, GenOpts),
|
||||
GenType(&disttypes.MsgUpdateParams{}, &distapi.MsgUpdateParams{}, GenOpts.WithDisallowNil()),
|
||||
GenType(&disttypes.MsgCommunityPoolSpend{}, &distapi.MsgCommunityPoolSpend{}, GenOpts),
|
||||
GenType(&disttypes.MsgDepositValidatorRewardsPool{}, &distapi.MsgDepositValidatorRewardsPool{}, GenOpts),
|
||||
|
||||
// evidence
|
||||
|
||||
@ -267,10 +267,6 @@ func TestAminoJSON_LegacyParity(t *testing.T) {
|
||||
gogo: &disttypes.DelegationDelegatorReward{},
|
||||
pulsar: &distapi.DelegationDelegatorReward{},
|
||||
},
|
||||
"distribution/community_pool_spend_proposal_with_deposit": {
|
||||
gogo: &disttypes.CommunityPoolSpendProposalWithDeposit{},
|
||||
pulsar: &distapi.CommunityPoolSpendProposalWithDeposit{},
|
||||
},
|
||||
"distribution/msg_withdraw_delegator_reward": {
|
||||
gogo: &disttypes.MsgWithdrawDelegatorReward{DelegatorAddress: "foo"},
|
||||
pulsar: &distapi.MsgWithdrawDelegatorReward{DelegatorAddress: "foo"},
|
||||
|
||||
@ -18,9 +18,12 @@ replace (
|
||||
cosmossdk.io/x/evidence => ../../../x/evidence
|
||||
cosmossdk.io/x/feegrant => ../../../x/feegrant
|
||||
cosmossdk.io/x/nft => ../../../x/nft
|
||||
cosmossdk.io/x/protocolpool => ../../../x/protocolpool
|
||||
cosmossdk.io/x/upgrade => ../../../x/upgrade
|
||||
)
|
||||
|
||||
replace cosmossdk.io/api => ../../../api
|
||||
|
||||
require (
|
||||
cosmossdk.io/log v1.2.1
|
||||
cosmossdk.io/math v1.1.3-rc.1
|
||||
@ -49,6 +52,7 @@ require (
|
||||
cosmossdk.io/x/evidence v0.0.0-20230613133644-0a778132a60f // indirect
|
||||
cosmossdk.io/x/feegrant v0.0.0-20230613133644-0a778132a60f // indirect
|
||||
cosmossdk.io/x/nft v0.0.0-20230613133644-0a778132a60f // indirect
|
||||
cosmossdk.io/x/protocolpool v0.0.0-20230925135524-a1bc045b3190 // indirect
|
||||
cosmossdk.io/x/tx v0.10.0 // indirect
|
||||
cosmossdk.io/x/upgrade v0.0.0-20230613133644-0a778132a60f // indirect
|
||||
filippo.io/edwards25519 v1.0.0 // indirect
|
||||
@ -198,7 +202,7 @@ require (
|
||||
google.golang.org/api v0.134.0 // indirect
|
||||
google.golang.org/appengine v1.6.7 // indirect
|
||||
google.golang.org/genproto v0.0.0-20230913181813-007df8e322eb // indirect
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20230803162519-f966b187b2e5 // indirect
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20230822172742-b8732ec3820d // indirect
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20230920204549-e6e6cdab5c13 // indirect
|
||||
google.golang.org/protobuf v1.31.0 // indirect
|
||||
gopkg.in/ini.v1 v1.67.0 // indirect
|
||||
|
||||
@ -187,8 +187,6 @@ cloud.google.com/go/webrisk v1.4.0/go.mod h1:Hn8X6Zr+ziE2aNd8SliSDWpEnSS1u4R9+xX
|
||||
cloud.google.com/go/webrisk v1.5.0/go.mod h1:iPG6fr52Tv7sGk0H6qUFzmL3HHZev1htXuWDEEsqMTg=
|
||||
cloud.google.com/go/workflows v1.6.0/go.mod h1:6t9F5h/unJz41YqfBmqSASJSXccBLtD1Vwf+KmJENM0=
|
||||
cloud.google.com/go/workflows v1.7.0/go.mod h1:JhSrZuVZWuiDfKEFxU0/F1PQjmpnpcoISEXH2bcHC3M=
|
||||
cosmossdk.io/api v0.7.1 h1:PNQ1xN8+/0hj/sSD0ANqjkgfXFys+bZ5L8Hg7uzoUTU=
|
||||
cosmossdk.io/api v0.7.1/go.mod h1:ure9edhcROIHsngavM6mBLilMGFnfjhV/AaYhEMUkdo=
|
||||
cosmossdk.io/collections v0.4.0 h1:PFmwj2W8szgpD5nOd8GWH6AbYNi1f2J6akWXJ7P5t9s=
|
||||
cosmossdk.io/collections v0.4.0/go.mod h1:oa5lUING2dP+gdDquow+QjlF45eL1t4TJDypgGd+tv0=
|
||||
cosmossdk.io/core v0.12.0 h1:aFuvkG6eDv0IQC+UDjx86wxNWVAxdCFk7OABJ1Vh4RU=
|
||||
@ -1591,8 +1589,8 @@ google.golang.org/genproto v0.0.0-20221014213838-99cd37c6964a/go.mod h1:1vXfmgAz
|
||||
google.golang.org/genproto v0.0.0-20221025140454-527a21cfbd71/go.mod h1:9qHF0xnpdSfF6knlcsnpzUu5y+rpwgbvsyGAZPBMg4s=
|
||||
google.golang.org/genproto v0.0.0-20230913181813-007df8e322eb h1:XFBgcDwm7irdHTbz4Zk2h7Mh+eis4nfJEFQFYzJzuIA=
|
||||
google.golang.org/genproto v0.0.0-20230913181813-007df8e322eb/go.mod h1:yZTlhN0tQnXo3h00fuXNCxJdLdIdnVFVBaRJ5LWBbw4=
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20230803162519-f966b187b2e5 h1:nIgk/EEq3/YlnmVVXVnm14rC2oxgs1o0ong4sD/rd44=
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20230803162519-f966b187b2e5/go.mod h1:5DZzOUPCLYL3mNkQ0ms0F3EuUNZ7py1Bqeq6sxzI7/Q=
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20230822172742-b8732ec3820d h1:DoPTO70H+bcDXcd39vOqb2viZxgqeBeSGtZ55yZU4/Q=
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20230822172742-b8732ec3820d/go.mod h1:KjSP20unUpOx5kyQUFa7k4OJg0qeJ7DEZflGDu2p6Bk=
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20230920204549-e6e6cdab5c13 h1:N3bU/SQDCDyD6R528GJ/PwW9KjYcJA3dgyH+MovAkIM=
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20230920204549-e6e6cdab5c13/go.mod h1:KSqppvjFjtoCI+KGd4PELB0qLNxdJHRGqRI09mB6pQA=
|
||||
google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs=
|
||||
|
||||
@ -17,6 +17,7 @@ import (
|
||||
mintmodulev1 "cosmossdk.io/api/cosmos/mint/module/v1"
|
||||
nftmodulev1 "cosmossdk.io/api/cosmos/nft/module/v1"
|
||||
paramsmodulev1 "cosmossdk.io/api/cosmos/params/module/v1"
|
||||
poolmodulev1 "cosmossdk.io/api/cosmos/protocolpool/module/v1"
|
||||
slashingmodulev1 "cosmossdk.io/api/cosmos/slashing/module/v1"
|
||||
stakingmodulev1 "cosmossdk.io/api/cosmos/staking/module/v1"
|
||||
txconfigv1 "cosmossdk.io/api/cosmos/tx/config/v1"
|
||||
@ -154,6 +155,7 @@ func AuthModule() ModuleOption {
|
||||
{Account: "not_bonded_tokens_pool", Permissions: []string{"burner", "staking"}},
|
||||
{Account: "gov", Permissions: []string{"burner"}},
|
||||
{Account: "nft"},
|
||||
{Account: "protocolpool"},
|
||||
},
|
||||
}),
|
||||
}
|
||||
@ -310,6 +312,15 @@ func CircuitModule() ModuleOption {
|
||||
}
|
||||
}
|
||||
|
||||
func ProtocolPoolModule() ModuleOption {
|
||||
return func(config *Config) {
|
||||
config.ModuleConfigs["protocolpool"] = &appv1alpha1.ModuleConfig{
|
||||
Name: "protocolpool",
|
||||
Config: appconfig.WrapAny(&poolmodulev1.Module{}),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func OmitInitGenesis() ModuleOption {
|
||||
return func(config *Config) {
|
||||
config.setInitGenesis = false
|
||||
|
||||
@ -18,7 +18,7 @@ require (
|
||||
github.com/grpc-ecosystem/grpc-gateway v1.16.0
|
||||
github.com/spf13/cobra v1.7.0
|
||||
github.com/stretchr/testify v1.8.4
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20230803162519-f966b187b2e5
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20230822172742-b8732ec3820d
|
||||
google.golang.org/grpc v1.58.2
|
||||
)
|
||||
|
||||
@ -153,3 +153,5 @@ require (
|
||||
)
|
||||
|
||||
replace github.com/cosmos/cosmos-sdk => ../../.
|
||||
|
||||
replace cosmossdk.io/api => ../../api
|
||||
|
||||
@ -35,8 +35,6 @@ cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohl
|
||||
cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs=
|
||||
cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0=
|
||||
cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo=
|
||||
cosmossdk.io/api v0.7.1 h1:PNQ1xN8+/0hj/sSD0ANqjkgfXFys+bZ5L8Hg7uzoUTU=
|
||||
cosmossdk.io/api v0.7.1/go.mod h1:ure9edhcROIHsngavM6mBLilMGFnfjhV/AaYhEMUkdo=
|
||||
cosmossdk.io/collections v0.4.0 h1:PFmwj2W8szgpD5nOd8GWH6AbYNi1f2J6akWXJ7P5t9s=
|
||||
cosmossdk.io/collections v0.4.0/go.mod h1:oa5lUING2dP+gdDquow+QjlF45eL1t4TJDypgGd+tv0=
|
||||
cosmossdk.io/core v0.12.0 h1:aFuvkG6eDv0IQC+UDjx86wxNWVAxdCFk7OABJ1Vh4RU=
|
||||
@ -51,6 +49,8 @@ cosmossdk.io/math v1.1.3-rc.1 h1:NebCNWDqb1MJRNfvxr4YY7d8FSYgkuB3L75K6xvM+Zo=
|
||||
cosmossdk.io/math v1.1.3-rc.1/go.mod h1:l2Gnda87F0su8a/7FEKJfFdJrM0JZRXQaohlgJeyQh0=
|
||||
cosmossdk.io/store v1.0.0-rc.0 h1:9DwOjuUYxDtYxn/REkTxGQAmxlIGfRroB35MQ8TrxF4=
|
||||
cosmossdk.io/store v1.0.0-rc.0/go.mod h1:FtBDOJmwtOZfmKKF65bKZbTYgS3bDNjjo3nP76dAegk=
|
||||
cosmossdk.io/x/protocolpool v0.0.0-20230925135524-a1bc045b3190 h1:XQJj9Dv9Gtze0l2TF79BU5lkP6MkUveTUuKICmxoz+o=
|
||||
cosmossdk.io/x/protocolpool v0.0.0-20230925135524-a1bc045b3190/go.mod h1:7WUGupOvmlHJoIMBz1JbObQxeo6/TDiuDBxmtod8HRg=
|
||||
cosmossdk.io/x/tx v0.10.0 h1:LxWF/hksVDbeQmFj4voLM5ZCHyVZ1cCNIqKenfH9plc=
|
||||
cosmossdk.io/x/tx v0.10.0/go.mod h1:MKo9/b5wsoL8dd9y9pvD2yOP1CMvzHIWYxi1l2oLPFo=
|
||||
dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
|
||||
@ -1170,8 +1170,8 @@ google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6D
|
||||
google.golang.org/genproto v0.0.0-20220314164441-57ef72a4c106/go.mod h1:hAL49I2IFola2sVEjAn7MEwsja0xp51I0tlGAf9hz4E=
|
||||
google.golang.org/genproto v0.0.0-20230913181813-007df8e322eb h1:XFBgcDwm7irdHTbz4Zk2h7Mh+eis4nfJEFQFYzJzuIA=
|
||||
google.golang.org/genproto v0.0.0-20230913181813-007df8e322eb/go.mod h1:yZTlhN0tQnXo3h00fuXNCxJdLdIdnVFVBaRJ5LWBbw4=
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20230803162519-f966b187b2e5 h1:nIgk/EEq3/YlnmVVXVnm14rC2oxgs1o0ong4sD/rd44=
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20230803162519-f966b187b2e5/go.mod h1:5DZzOUPCLYL3mNkQ0ms0F3EuUNZ7py1Bqeq6sxzI7/Q=
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20230822172742-b8732ec3820d h1:DoPTO70H+bcDXcd39vOqb2viZxgqeBeSGtZ55yZU4/Q=
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20230822172742-b8732ec3820d/go.mod h1:KjSP20unUpOx5kyQUFa7k4OJg0qeJ7DEZflGDu2p6Bk=
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20230920204549-e6e6cdab5c13 h1:N3bU/SQDCDyD6R528GJ/PwW9KjYcJA3dgyH+MovAkIM=
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20230920204549-e6e6cdab5c13/go.mod h1:KSqppvjFjtoCI+KGd4PELB0qLNxdJHRGqRI09mB6pQA=
|
||||
google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs=
|
||||
|
||||
@ -41,7 +41,6 @@ func NewTxCmd(valAc, ac address.Codec) *cobra.Command {
|
||||
NewWithdrawRewardsCmd(valAc, ac),
|
||||
NewWithdrawAllRewardsCmd(valAc, ac),
|
||||
NewSetWithdrawAddrCmd(ac),
|
||||
NewFundCommunityPoolCmd(ac),
|
||||
NewDepositValidatorRewardsPoolCmd(valAc, ac),
|
||||
)
|
||||
|
||||
@ -228,46 +227,6 @@ $ %s tx distribution set-withdraw-addr %s1gghjut3ccd8ay0zduzj64hwre2fxs9ld75ru9p
|
||||
return cmd
|
||||
}
|
||||
|
||||
// NewFundCommunityPoolCmd returns a CLI command handler for creating a MsgFundCommunityPool transaction.
|
||||
func NewFundCommunityPoolCmd(ac address.Codec) *cobra.Command {
|
||||
cmd := &cobra.Command{
|
||||
Use: "fund-community-pool [amount]",
|
||||
Args: cobra.ExactArgs(1),
|
||||
Short: "Funds the community pool with the specified amount",
|
||||
Long: strings.TrimSpace(
|
||||
fmt.Sprintf(`Funds the community pool with the specified amount
|
||||
|
||||
Example:
|
||||
$ %s tx distribution fund-community-pool 100uatom --from mykey
|
||||
`,
|
||||
version.AppName,
|
||||
),
|
||||
),
|
||||
RunE: func(cmd *cobra.Command, args []string) error {
|
||||
clientCtx, err := client.GetClientTxContext(cmd)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
depositorAddr, err := ac.BytesToString(clientCtx.GetFromAddress())
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
amount, err := sdk.ParseCoinsNormalized(args[0])
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
msg := types.NewMsgFundCommunityPool(amount, depositorAddr)
|
||||
|
||||
return tx.GenerateOrBroadcastTxCLI(clientCtx, cmd.Flags(), msg)
|
||||
},
|
||||
}
|
||||
|
||||
flags.AddTxFlagsToCmd(cmd)
|
||||
|
||||
return cmd
|
||||
}
|
||||
|
||||
// NewDepositValidatorRewardsPoolCmd returns a CLI command handler for creating
|
||||
// a MsgDepositValidatorRewardsPool transaction.
|
||||
func NewDepositValidatorRewardsPoolCmd(valCodec, ac address.Codec) *cobra.Command {
|
||||
|
||||
@ -252,53 +252,3 @@ func (s *CLITestSuite) TestTxSetWithdrawAddrCmd() {
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func (s *CLITestSuite) TestTxFundCommunityPoolCmd() {
|
||||
val := testutil.CreateKeyringAccounts(s.T(), s.kr, 1)
|
||||
|
||||
testCases := []struct {
|
||||
name string
|
||||
args []string
|
||||
expectErr bool
|
||||
respType proto.Message
|
||||
}{
|
||||
{
|
||||
"invalid funding amount",
|
||||
[]string{
|
||||
"-43foocoin",
|
||||
fmt.Sprintf("--%s=%s", flags.FlagFrom, val[0].Address.String()),
|
||||
fmt.Sprintf("--%s=true", flags.FlagSkipConfirmation),
|
||||
fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastSync),
|
||||
fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin("stake", sdkmath.NewInt(10))).String()),
|
||||
},
|
||||
true, nil,
|
||||
},
|
||||
{
|
||||
"valid transaction",
|
||||
[]string{
|
||||
sdk.NewCoins(sdk.NewCoin("stake", sdkmath.NewInt(5431))).String(),
|
||||
fmt.Sprintf("--%s=%s", flags.FlagFrom, val[0].Address.String()),
|
||||
fmt.Sprintf("--%s=true", flags.FlagSkipConfirmation),
|
||||
fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastSync),
|
||||
fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin("stake", sdkmath.NewInt(10))).String()),
|
||||
},
|
||||
false, &sdk.TxResponse{},
|
||||
},
|
||||
}
|
||||
|
||||
for _, tc := range testCases {
|
||||
tc := tc
|
||||
|
||||
s.Run(tc.name, func() {
|
||||
cmd := cli.NewFundCommunityPoolCmd(addresscodec.NewBech32Codec("cosmos"))
|
||||
|
||||
out, err := clitestutil.ExecTestCLICmd(s.clientCtx, cmd, tc.args)
|
||||
if tc.expectErr {
|
||||
s.Require().Error(err)
|
||||
} else {
|
||||
s.Require().NoError(err)
|
||||
s.Require().NoError(s.clientCtx.Codec.UnmarshalJSON(out.Bytes(), tc.respType), out.String())
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
@ -37,6 +37,7 @@ func TestAllocateTokensToValidatorWithCommission(t *testing.T) {
|
||||
bankKeeper := distrtestutil.NewMockBankKeeper(ctrl)
|
||||
stakingKeeper := distrtestutil.NewMockStakingKeeper(ctrl)
|
||||
accountKeeper := distrtestutil.NewMockAccountKeeper(ctrl)
|
||||
poolKeeper := distrtestutil.NewMockPoolKeeper(ctrl)
|
||||
|
||||
valCodec := address.NewBech32Codec("cosmosvaloper")
|
||||
|
||||
@ -49,6 +50,7 @@ func TestAllocateTokensToValidatorWithCommission(t *testing.T) {
|
||||
accountKeeper,
|
||||
bankKeeper,
|
||||
stakingKeeper,
|
||||
poolKeeper,
|
||||
"fee_collector",
|
||||
authtypes.NewModuleAddress("gov").String(),
|
||||
)
|
||||
@ -94,6 +96,7 @@ func TestAllocateTokensToManyValidators(t *testing.T) {
|
||||
bankKeeper := distrtestutil.NewMockBankKeeper(ctrl)
|
||||
stakingKeeper := distrtestutil.NewMockStakingKeeper(ctrl)
|
||||
accountKeeper := distrtestutil.NewMockAccountKeeper(ctrl)
|
||||
poolKeeper := distrtestutil.NewMockPoolKeeper(ctrl)
|
||||
|
||||
feeCollectorAcc := authtypes.NewEmptyModuleAccount("fee_collector")
|
||||
accountKeeper.EXPECT().GetModuleAddress("distribution").Return(distrAcc.GetAddress())
|
||||
@ -106,6 +109,7 @@ func TestAllocateTokensToManyValidators(t *testing.T) {
|
||||
accountKeeper,
|
||||
bankKeeper,
|
||||
stakingKeeper,
|
||||
poolKeeper,
|
||||
"fee_collector",
|
||||
authtypes.NewModuleAddress("gov").String(),
|
||||
)
|
||||
@ -222,6 +226,7 @@ func TestAllocateTokensTruncation(t *testing.T) {
|
||||
bankKeeper := distrtestutil.NewMockBankKeeper(ctrl)
|
||||
stakingKeeper := distrtestutil.NewMockStakingKeeper(ctrl)
|
||||
accountKeeper := distrtestutil.NewMockAccountKeeper(ctrl)
|
||||
poolKeeper := distrtestutil.NewMockPoolKeeper(ctrl)
|
||||
|
||||
feeCollectorAcc := authtypes.NewEmptyModuleAccount("fee_collector")
|
||||
accountKeeper.EXPECT().GetModuleAddress("distribution").Return(distrAcc.GetAddress())
|
||||
@ -234,6 +239,7 @@ func TestAllocateTokensTruncation(t *testing.T) {
|
||||
accountKeeper,
|
||||
bankKeeper,
|
||||
stakingKeeper,
|
||||
poolKeeper,
|
||||
"fee_collector",
|
||||
authtypes.NewModuleAddress("gov").String(),
|
||||
)
|
||||
|
||||
@ -35,6 +35,7 @@ func TestCalculateRewardsBasic(t *testing.T) {
|
||||
bankKeeper := distrtestutil.NewMockBankKeeper(ctrl)
|
||||
stakingKeeper := distrtestutil.NewMockStakingKeeper(ctrl)
|
||||
accountKeeper := distrtestutil.NewMockAccountKeeper(ctrl)
|
||||
poolKeeper := distrtestutil.NewMockPoolKeeper(ctrl)
|
||||
|
||||
accountKeeper.EXPECT().GetModuleAddress("distribution").Return(distrAcc.GetAddress())
|
||||
stakingKeeper.EXPECT().ValidatorAddressCodec().Return(address.NewBech32Codec(sdk.Bech32PrefixValAddr)).AnyTimes()
|
||||
@ -46,6 +47,7 @@ func TestCalculateRewardsBasic(t *testing.T) {
|
||||
accountKeeper,
|
||||
bankKeeper,
|
||||
stakingKeeper,
|
||||
poolKeeper,
|
||||
"fee_collector",
|
||||
authtypes.NewModuleAddress("gov").String(),
|
||||
)
|
||||
@ -135,6 +137,7 @@ func TestCalculateRewardsAfterSlash(t *testing.T) {
|
||||
bankKeeper := distrtestutil.NewMockBankKeeper(ctrl)
|
||||
stakingKeeper := distrtestutil.NewMockStakingKeeper(ctrl)
|
||||
accountKeeper := distrtestutil.NewMockAccountKeeper(ctrl)
|
||||
poolKeeper := distrtestutil.NewMockPoolKeeper(ctrl)
|
||||
|
||||
accountKeeper.EXPECT().GetModuleAddress("distribution").Return(distrAcc.GetAddress())
|
||||
stakingKeeper.EXPECT().ValidatorAddressCodec().Return(address.NewBech32Codec(sdk.Bech32PrefixValAddr)).AnyTimes()
|
||||
@ -146,6 +149,7 @@ func TestCalculateRewardsAfterSlash(t *testing.T) {
|
||||
accountKeeper,
|
||||
bankKeeper,
|
||||
stakingKeeper,
|
||||
poolKeeper,
|
||||
"fee_collector",
|
||||
authtypes.NewModuleAddress("gov").String(),
|
||||
)
|
||||
@ -238,6 +242,7 @@ func TestCalculateRewardsAfterManySlashes(t *testing.T) {
|
||||
bankKeeper := distrtestutil.NewMockBankKeeper(ctrl)
|
||||
stakingKeeper := distrtestutil.NewMockStakingKeeper(ctrl)
|
||||
accountKeeper := distrtestutil.NewMockAccountKeeper(ctrl)
|
||||
poolKeeper := distrtestutil.NewMockPoolKeeper(ctrl)
|
||||
|
||||
accountKeeper.EXPECT().GetModuleAddress("distribution").Return(distrAcc.GetAddress())
|
||||
stakingKeeper.EXPECT().ValidatorAddressCodec().Return(address.NewBech32Codec(sdk.Bech32PrefixValAddr)).AnyTimes()
|
||||
@ -249,6 +254,7 @@ func TestCalculateRewardsAfterManySlashes(t *testing.T) {
|
||||
accountKeeper,
|
||||
bankKeeper,
|
||||
stakingKeeper,
|
||||
poolKeeper,
|
||||
"fee_collector",
|
||||
authtypes.NewModuleAddress("gov").String(),
|
||||
)
|
||||
@ -362,6 +368,7 @@ func TestCalculateRewardsMultiDelegator(t *testing.T) {
|
||||
bankKeeper := distrtestutil.NewMockBankKeeper(ctrl)
|
||||
stakingKeeper := distrtestutil.NewMockStakingKeeper(ctrl)
|
||||
accountKeeper := distrtestutil.NewMockAccountKeeper(ctrl)
|
||||
poolKeeper := distrtestutil.NewMockPoolKeeper(ctrl)
|
||||
|
||||
accountKeeper.EXPECT().GetModuleAddress("distribution").Return(distrAcc.GetAddress())
|
||||
stakingKeeper.EXPECT().ValidatorAddressCodec().Return(address.NewBech32Codec(sdk.Bech32PrefixValAddr)).AnyTimes()
|
||||
@ -373,6 +380,7 @@ func TestCalculateRewardsMultiDelegator(t *testing.T) {
|
||||
accountKeeper,
|
||||
bankKeeper,
|
||||
stakingKeeper,
|
||||
poolKeeper,
|
||||
"fee_collector",
|
||||
authtypes.NewModuleAddress("gov").String(),
|
||||
)
|
||||
@ -459,6 +467,7 @@ func TestWithdrawDelegationRewardsBasic(t *testing.T) {
|
||||
bankKeeper := distrtestutil.NewMockBankKeeper(ctrl)
|
||||
stakingKeeper := distrtestutil.NewMockStakingKeeper(ctrl)
|
||||
accountKeeper := distrtestutil.NewMockAccountKeeper(ctrl)
|
||||
poolKeeper := distrtestutil.NewMockPoolKeeper(ctrl)
|
||||
|
||||
accountKeeper.EXPECT().GetModuleAddress("distribution").Return(distrAcc.GetAddress())
|
||||
stakingKeeper.EXPECT().ValidatorAddressCodec().Return(address.NewBech32Codec(sdk.Bech32PrefixValAddr)).AnyTimes()
|
||||
@ -470,6 +479,7 @@ func TestWithdrawDelegationRewardsBasic(t *testing.T) {
|
||||
accountKeeper,
|
||||
bankKeeper,
|
||||
stakingKeeper,
|
||||
poolKeeper,
|
||||
"fee_collector",
|
||||
authtypes.NewModuleAddress("gov").String(),
|
||||
)
|
||||
@ -534,6 +544,7 @@ func TestCalculateRewardsAfterManySlashesInSameBlock(t *testing.T) {
|
||||
bankKeeper := distrtestutil.NewMockBankKeeper(ctrl)
|
||||
stakingKeeper := distrtestutil.NewMockStakingKeeper(ctrl)
|
||||
accountKeeper := distrtestutil.NewMockAccountKeeper(ctrl)
|
||||
poolKeeper := distrtestutil.NewMockPoolKeeper(ctrl)
|
||||
|
||||
accountKeeper.EXPECT().GetModuleAddress("distribution").Return(distrAcc.GetAddress())
|
||||
stakingKeeper.EXPECT().ValidatorAddressCodec().Return(address.NewBech32Codec(sdk.Bech32PrefixValAddr)).AnyTimes()
|
||||
@ -545,6 +556,7 @@ func TestCalculateRewardsAfterManySlashesInSameBlock(t *testing.T) {
|
||||
accountKeeper,
|
||||
bankKeeper,
|
||||
stakingKeeper,
|
||||
poolKeeper,
|
||||
"fee_collector",
|
||||
authtypes.NewModuleAddress("gov").String(),
|
||||
)
|
||||
@ -650,6 +662,7 @@ func TestCalculateRewardsMultiDelegatorMultiSlash(t *testing.T) {
|
||||
bankKeeper := distrtestutil.NewMockBankKeeper(ctrl)
|
||||
stakingKeeper := distrtestutil.NewMockStakingKeeper(ctrl)
|
||||
accountKeeper := distrtestutil.NewMockAccountKeeper(ctrl)
|
||||
poolKeeper := distrtestutil.NewMockPoolKeeper(ctrl)
|
||||
|
||||
accountKeeper.EXPECT().GetModuleAddress("distribution").Return(distrAcc.GetAddress())
|
||||
stakingKeeper.EXPECT().ValidatorAddressCodec().Return(address.NewBech32Codec(sdk.Bech32PrefixValAddr)).AnyTimes()
|
||||
@ -661,6 +674,7 @@ func TestCalculateRewardsMultiDelegatorMultiSlash(t *testing.T) {
|
||||
accountKeeper,
|
||||
bankKeeper,
|
||||
stakingKeeper,
|
||||
poolKeeper,
|
||||
"fee_collector",
|
||||
authtypes.NewModuleAddress("gov").String(),
|
||||
)
|
||||
@ -787,6 +801,7 @@ func TestCalculateRewardsMultiDelegatorMultWithdraw(t *testing.T) {
|
||||
bankKeeper := distrtestutil.NewMockBankKeeper(ctrl)
|
||||
stakingKeeper := distrtestutil.NewMockStakingKeeper(ctrl)
|
||||
accountKeeper := distrtestutil.NewMockAccountKeeper(ctrl)
|
||||
poolKeeper := distrtestutil.NewMockPoolKeeper(ctrl)
|
||||
|
||||
accountKeeper.EXPECT().GetModuleAddress("distribution").Return(distrAcc.GetAddress())
|
||||
stakingKeeper.EXPECT().ValidatorAddressCodec().Return(address.NewBech32Codec(sdk.Bech32PrefixValAddr)).AnyTimes()
|
||||
@ -798,6 +813,7 @@ func TestCalculateRewardsMultiDelegatorMultWithdraw(t *testing.T) {
|
||||
accountKeeper,
|
||||
bankKeeper,
|
||||
stakingKeeper,
|
||||
poolKeeper,
|
||||
"fee_collector",
|
||||
authtypes.NewModuleAddress("gov").String(),
|
||||
)
|
||||
@ -986,6 +1002,7 @@ func Test100PercentCommissionReward(t *testing.T) {
|
||||
bankKeeper := distrtestutil.NewMockBankKeeper(ctrl)
|
||||
stakingKeeper := distrtestutil.NewMockStakingKeeper(ctrl)
|
||||
accountKeeper := distrtestutil.NewMockAccountKeeper(ctrl)
|
||||
poolKeeper := distrtestutil.NewMockPoolKeeper(ctrl)
|
||||
|
||||
accountKeeper.EXPECT().GetModuleAddress("distribution").Return(distrAcc.GetAddress())
|
||||
stakingKeeper.EXPECT().ValidatorAddressCodec().Return(address.NewBech32Codec(sdk.Bech32PrefixValAddr)).AnyTimes()
|
||||
@ -997,6 +1014,7 @@ func Test100PercentCommissionReward(t *testing.T) {
|
||||
accountKeeper,
|
||||
bankKeeper,
|
||||
stakingKeeper,
|
||||
poolKeeper,
|
||||
"fee_collector",
|
||||
authtypes.NewModuleAddress("gov").String(),
|
||||
)
|
||||
|
||||
@ -1,34 +0,0 @@
|
||||
package keeper
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
sdk "github.com/cosmos/cosmos-sdk/types"
|
||||
"github.com/cosmos/cosmos-sdk/x/distribution/types"
|
||||
)
|
||||
|
||||
// DistributeFromFeePool distributes funds from the distribution module account to
|
||||
// a receiver address while updating the community pool
|
||||
func (k Keeper) DistributeFromFeePool(ctx context.Context, amount sdk.Coins, receiveAddr sdk.AccAddress) error {
|
||||
feePool, err := k.FeePool.Get(ctx)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// NOTE the community pool isn't a module account, however its coins
|
||||
// are held in the distribution module account. Thus the community pool
|
||||
// must be reduced separately from the SendCoinsFromModuleToAccount call
|
||||
newPool, negative := feePool.CommunityPool.SafeSub(sdk.NewDecCoinsFromCoins(amount...))
|
||||
if negative {
|
||||
return types.ErrBadDistribution
|
||||
}
|
||||
|
||||
feePool.CommunityPool = newPool
|
||||
|
||||
err = k.bankKeeper.SendCoinsFromModuleToAccount(ctx, types.ModuleName, receiveAddr, amount)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return k.FeePool.Set(ctx, feePool)
|
||||
}
|
||||
@ -353,12 +353,13 @@ func (k Querier) DelegatorWithdrawAddress(ctx context.Context, req *types.QueryD
|
||||
return &types.QueryDelegatorWithdrawAddressResponse{WithdrawAddress: withdrawAddr.String()}, nil
|
||||
}
|
||||
|
||||
// Deprecated: DO NOT USE
|
||||
// This method uses deprecated query request. Use CommunityPool from x/protocolpool module instead.
|
||||
// CommunityPool queries the community pool coins
|
||||
func (k Querier) CommunityPool(ctx context.Context, req *types.QueryCommunityPoolRequest) (*types.QueryCommunityPoolResponse, error) {
|
||||
pool, err := k.FeePool.Get(ctx)
|
||||
pool, err := k.poolKeeper.GetCommunityPool(ctx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return &types.QueryCommunityPoolResponse{Pool: pool.CommunityPool}, nil
|
||||
return &types.QueryCommunityPoolResponse{Pool: sdk.NewDecCoinsFromCoins(pool...)}, nil
|
||||
}
|
||||
|
||||
@ -25,6 +25,8 @@ type Keeper struct {
|
||||
authKeeper types.AccountKeeper
|
||||
bankKeeper types.BankKeeper
|
||||
stakingKeeper types.StakingKeeper
|
||||
poolKeeper types.PoolKeeper // TODO: Needs to be removed in v0.53
|
||||
|
||||
// the address capable of executing a MsgUpdateParams message. Typically, this
|
||||
// should be the x/gov module account.
|
||||
authority string
|
||||
@ -54,7 +56,7 @@ type Keeper struct {
|
||||
// NewKeeper creates a new distribution Keeper instance
|
||||
func NewKeeper(
|
||||
cdc codec.BinaryCodec, storeService store.KVStoreService,
|
||||
ak types.AccountKeeper, bk types.BankKeeper, sk types.StakingKeeper,
|
||||
ak types.AccountKeeper, bk types.BankKeeper, sk types.StakingKeeper, pk types.PoolKeeper,
|
||||
feeCollectorName, authority string,
|
||||
) Keeper {
|
||||
// ensure distribution module account is set
|
||||
@ -69,6 +71,7 @@ func NewKeeper(
|
||||
authKeeper: ak,
|
||||
bankKeeper: bk,
|
||||
stakingKeeper: sk,
|
||||
poolKeeper: pk,
|
||||
feeCollectorName: feeCollectorName,
|
||||
authority: authority,
|
||||
Params: collections.NewItem(sb, types.ParamsKey, "params", codec.CollValue[types.Params](cdc)),
|
||||
@ -270,21 +273,3 @@ func (k Keeper) GetTotalRewards(ctx context.Context) (totalRewards sdk.DecCoins)
|
||||
|
||||
return totalRewards
|
||||
}
|
||||
|
||||
// FundCommunityPool allows an account to directly fund the community fund pool.
|
||||
// The amount is first added to the distribution module account and then directly
|
||||
// added to the pool. An error is returned if the amount cannot be sent to the
|
||||
// module account.
|
||||
func (k Keeper) FundCommunityPool(ctx context.Context, amount sdk.Coins, sender sdk.AccAddress) error {
|
||||
if err := k.bankKeeper.SendCoinsFromAccountToModule(ctx, sender, types.ModuleName, amount); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
feePool, err := k.FeePool.Get(ctx)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
feePool.CommunityPool = feePool.CommunityPool.Add(sdk.NewDecCoinsFromCoins(amount...)...)
|
||||
return k.FeePool.Set(ctx, feePool)
|
||||
}
|
||||
|
||||
@ -38,6 +38,7 @@ func TestSetWithdrawAddr(t *testing.T) {
|
||||
bankKeeper := distrtestutil.NewMockBankKeeper(ctrl)
|
||||
stakingKeeper := distrtestutil.NewMockStakingKeeper(ctrl)
|
||||
accountKeeper := distrtestutil.NewMockAccountKeeper(ctrl)
|
||||
poolKeeper := distrtestutil.NewMockPoolKeeper(ctrl)
|
||||
|
||||
accountKeeper.EXPECT().GetModuleAddress("distribution").Return(distrAcc.GetAddress())
|
||||
|
||||
@ -50,6 +51,7 @@ func TestSetWithdrawAddr(t *testing.T) {
|
||||
accountKeeper,
|
||||
bankKeeper,
|
||||
stakingKeeper,
|
||||
poolKeeper,
|
||||
"fee_collector",
|
||||
authtypes.NewModuleAddress("gov").String(),
|
||||
)
|
||||
@ -87,6 +89,7 @@ func TestWithdrawValidatorCommission(t *testing.T) {
|
||||
bankKeeper := distrtestutil.NewMockBankKeeper(ctrl)
|
||||
stakingKeeper := distrtestutil.NewMockStakingKeeper(ctrl)
|
||||
accountKeeper := distrtestutil.NewMockAccountKeeper(ctrl)
|
||||
poolKeeper := distrtestutil.NewMockPoolKeeper(ctrl)
|
||||
|
||||
accountKeeper.EXPECT().GetModuleAddress("distribution").Return(distrAcc.GetAddress())
|
||||
|
||||
@ -101,6 +104,7 @@ func TestWithdrawValidatorCommission(t *testing.T) {
|
||||
accountKeeper,
|
||||
bankKeeper,
|
||||
stakingKeeper,
|
||||
poolKeeper,
|
||||
"fee_collector",
|
||||
authtypes.NewModuleAddress("gov").String(),
|
||||
)
|
||||
@ -144,6 +148,7 @@ func TestGetTotalRewards(t *testing.T) {
|
||||
bankKeeper := distrtestutil.NewMockBankKeeper(ctrl)
|
||||
stakingKeeper := distrtestutil.NewMockStakingKeeper(ctrl)
|
||||
accountKeeper := distrtestutil.NewMockAccountKeeper(ctrl)
|
||||
poolKeeper := distrtestutil.NewMockPoolKeeper(ctrl)
|
||||
|
||||
accountKeeper.EXPECT().GetModuleAddress("distribution").Return(distrAcc.GetAddress())
|
||||
|
||||
@ -153,6 +158,7 @@ func TestGetTotalRewards(t *testing.T) {
|
||||
accountKeeper,
|
||||
bankKeeper,
|
||||
stakingKeeper,
|
||||
poolKeeper,
|
||||
"fee_collector",
|
||||
authtypes.NewModuleAddress("gov").String(),
|
||||
)
|
||||
@ -170,45 +176,3 @@ func TestGetTotalRewards(t *testing.T) {
|
||||
|
||||
require.Equal(t, expectedRewards, totalRewards)
|
||||
}
|
||||
|
||||
func TestFundCommunityPool(t *testing.T) {
|
||||
ctrl := gomock.NewController(t)
|
||||
key := storetypes.NewKVStoreKey(types.StoreKey)
|
||||
storeService := runtime.NewKVStoreService(key)
|
||||
testCtx := testutil.DefaultContextWithDB(t, key, storetypes.NewTransientStoreKey("transient_test"))
|
||||
encCfg := moduletestutil.MakeTestEncodingConfig(distribution.AppModuleBasic{})
|
||||
ctx := testCtx.Ctx.WithBlockHeader(cmtproto.Header{Time: time.Now()})
|
||||
addrs := simtestutil.CreateIncrementalAccounts(1)
|
||||
|
||||
bankKeeper := distrtestutil.NewMockBankKeeper(ctrl)
|
||||
stakingKeeper := distrtestutil.NewMockStakingKeeper(ctrl)
|
||||
accountKeeper := distrtestutil.NewMockAccountKeeper(ctrl)
|
||||
|
||||
accountKeeper.EXPECT().GetModuleAddress("distribution").Return(distrAcc.GetAddress())
|
||||
|
||||
distrKeeper := keeper.NewKeeper(
|
||||
encCfg.Codec,
|
||||
storeService,
|
||||
accountKeeper,
|
||||
bankKeeper,
|
||||
stakingKeeper,
|
||||
"fee_collector",
|
||||
authtypes.NewModuleAddress("gov").String(),
|
||||
)
|
||||
|
||||
// reset fee pool
|
||||
require.NoError(t, distrKeeper.FeePool.Set(ctx, types.InitialFeePool()))
|
||||
|
||||
initPool, err := distrKeeper.FeePool.Get(ctx)
|
||||
require.NoError(t, err)
|
||||
require.Empty(t, initPool.CommunityPool)
|
||||
|
||||
amount := sdk.NewCoins(sdk.NewInt64Coin("stake", 100))
|
||||
bankKeeper.EXPECT().SendCoinsFromAccountToModule(gomock.Any(), addrs[0], "distribution", amount).Return(nil)
|
||||
err = distrKeeper.FundCommunityPool(ctx, amount, addrs[0])
|
||||
require.NoError(t, err)
|
||||
|
||||
feePool, err := distrKeeper.FeePool.Get(ctx)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, initPool.CommunityPool.Add(sdk.NewDecCoinsFromCoins(amount...)...), feePool.CommunityPool)
|
||||
}
|
||||
|
||||
@ -1,8 +1,12 @@
|
||||
package keeper
|
||||
|
||||
import (
|
||||
pooltypes "cosmossdk.io/x/protocolpool/types"
|
||||
|
||||
sdk "github.com/cosmos/cosmos-sdk/types"
|
||||
"github.com/cosmos/cosmos-sdk/x/distribution/migrations/funds"
|
||||
v4 "github.com/cosmos/cosmos-sdk/x/distribution/migrations/v4"
|
||||
"github.com/cosmos/cosmos-sdk/x/distribution/types"
|
||||
)
|
||||
|
||||
// Migrator is a struct for handling in-place store migrations.
|
||||
@ -31,3 +35,19 @@ func (m Migrator) Migrate2to3(ctx sdk.Context) error {
|
||||
func (m Migrator) Migrate3to4(ctx sdk.Context) error {
|
||||
return v4.MigrateStore(ctx, m.keeper.storeService, m.keeper.cdc)
|
||||
}
|
||||
|
||||
func (m Migrator) MigrateFundsToPool(ctx sdk.Context) error {
|
||||
macc := m.keeper.GetDistributionAccount(ctx)
|
||||
poolMacc := m.keeper.authKeeper.GetModuleAccount(ctx, pooltypes.ModuleName)
|
||||
|
||||
feePool, err := m.keeper.FeePool.Get(ctx)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
err = funds.MigrateFunds(ctx, m.keeper.bankKeeper, feePool, macc, poolMacc)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
// return FeePool as empty (since FeePool funds are migrated to pool module account)
|
||||
return m.keeper.FeePool.Set(ctx, types.FeePool{})
|
||||
}
|
||||
|
||||
@ -101,6 +101,8 @@ func (k msgServer) WithdrawValidatorCommission(ctx context.Context, msg *types.M
|
||||
return &types.MsgWithdrawValidatorCommissionResponse{Amount: amount}, nil
|
||||
}
|
||||
|
||||
// Deprecated: DO NOT USE
|
||||
// This method uses deprecated message request. Use FundCommunityPool from x/protocolpool module instead.
|
||||
func (k msgServer) FundCommunityPool(ctx context.Context, msg *types.MsgFundCommunityPool) (*types.MsgFundCommunityPoolResponse, error) {
|
||||
depositor, err := k.authKeeper.AddressCodec().StringToBytes(msg.Depositor)
|
||||
if err != nil {
|
||||
@ -111,7 +113,7 @@ func (k msgServer) FundCommunityPool(ctx context.Context, msg *types.MsgFundComm
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if err := k.Keeper.FundCommunityPool(ctx, msg.Amount, depositor); err != nil {
|
||||
if err := k.poolKeeper.FundCommunityPool(ctx, msg.Amount, depositor); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
@ -139,6 +141,8 @@ func (k msgServer) UpdateParams(ctx context.Context, msg *types.MsgUpdateParams)
|
||||
return &types.MsgUpdateParamsResponse{}, nil
|
||||
}
|
||||
|
||||
// Deprecated: DO NOT USE
|
||||
// This method uses deprecated message request. Use CommunityPoolSpend from x/protocolpool module instead.
|
||||
func (k msgServer) CommunityPoolSpend(ctx context.Context, msg *types.MsgCommunityPoolSpend) (*types.MsgCommunityPoolSpendResponse, error) {
|
||||
if err := k.validateAuthority(msg.Authority); err != nil {
|
||||
return nil, err
|
||||
@ -153,11 +157,7 @@ func (k msgServer) CommunityPoolSpend(ctx context.Context, msg *types.MsgCommuni
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if k.bankKeeper.BlockedAddr(recipient) {
|
||||
return nil, errors.Wrapf(sdkerrors.ErrUnauthorized, "%s is not allowed to receive external funds", msg.Recipient)
|
||||
}
|
||||
|
||||
if err := k.DistributeFromFeePool(ctx, msg.Amount, recipient); err != nil {
|
||||
if err := k.poolKeeper.DistributeFromFeePool(ctx, msg.Amount, recipient); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
|
||||
30
x/distribution/migrations/funds/migrate.go
Normal file
30
x/distribution/migrations/funds/migrate.go
Normal file
@ -0,0 +1,30 @@
|
||||
package funds
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
sdk "github.com/cosmos/cosmos-sdk/types"
|
||||
"github.com/cosmos/cosmos-sdk/x/distribution/types"
|
||||
)
|
||||
|
||||
// MigrateFunds migrates the distribution module funds to pool module
|
||||
func MigrateFunds(ctx sdk.Context, bankKeeper types.BankKeeper, feePool types.FeePool, macc, poolMacc sdk.ModuleAccountI) error {
|
||||
poolBal := sdk.NormalizeCoins(feePool.CommunityPool)
|
||||
distrbalances := bankKeeper.GetAllBalances(ctx, macc.GetAddress())
|
||||
if distrbalances.IsZero() || distrbalances.IsAllLT(poolBal) {
|
||||
return fmt.Errorf("%s module account balance is less than FeePool balance", macc.GetName())
|
||||
}
|
||||
|
||||
// transfer feepool funds from the distribution module account to pool module account
|
||||
err := bankKeeper.SendCoinsFromModuleToModule(ctx, macc.GetName(), poolMacc.GetName(), poolBal)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// check the migrated balance from pool module account is same as fee pool balance
|
||||
balances := bankKeeper.GetAllBalances(ctx, poolMacc.GetAddress())
|
||||
if !balances.Equal(poolBal) {
|
||||
return fmt.Errorf("pool module account balance is not same as FeePool balance after migration")
|
||||
}
|
||||
return nil
|
||||
}
|
||||
120
x/distribution/migrations/funds/migrate_test.go
Normal file
120
x/distribution/migrations/funds/migrate_test.go
Normal file
@ -0,0 +1,120 @@
|
||||
package funds_test
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/golang/mock/gomock"
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
"cosmossdk.io/log"
|
||||
storetypes "cosmossdk.io/store/types"
|
||||
pooltypes "cosmossdk.io/x/protocolpool/types"
|
||||
|
||||
addresscodec "github.com/cosmos/cosmos-sdk/codec/address"
|
||||
"github.com/cosmos/cosmos-sdk/runtime"
|
||||
"github.com/cosmos/cosmos-sdk/testutil/integration"
|
||||
sdk "github.com/cosmos/cosmos-sdk/types"
|
||||
moduletestutil "github.com/cosmos/cosmos-sdk/types/module/testutil"
|
||||
"github.com/cosmos/cosmos-sdk/x/auth"
|
||||
authkeeper "github.com/cosmos/cosmos-sdk/x/auth/keeper"
|
||||
authtypes "github.com/cosmos/cosmos-sdk/x/auth/types"
|
||||
"github.com/cosmos/cosmos-sdk/x/bank"
|
||||
bankkeeper "github.com/cosmos/cosmos-sdk/x/bank/keeper"
|
||||
banktypes "github.com/cosmos/cosmos-sdk/x/bank/types"
|
||||
"github.com/cosmos/cosmos-sdk/x/distribution"
|
||||
"github.com/cosmos/cosmos-sdk/x/distribution/keeper"
|
||||
"github.com/cosmos/cosmos-sdk/x/distribution/migrations/funds"
|
||||
distrtestutil "github.com/cosmos/cosmos-sdk/x/distribution/testutil"
|
||||
disttypes "github.com/cosmos/cosmos-sdk/x/distribution/types"
|
||||
)
|
||||
|
||||
func TestFundsMigration(t *testing.T) {
|
||||
keys := storetypes.NewKVStoreKeys(
|
||||
authtypes.StoreKey, banktypes.StoreKey, disttypes.StoreKey,
|
||||
)
|
||||
logger := log.NewTestLogger(t)
|
||||
cms := integration.CreateMultiStore(keys, logger)
|
||||
encCfg := moduletestutil.MakeTestEncodingConfig(auth.AppModuleBasic{}, bank.AppModuleBasic{}, distribution.AppModuleBasic{})
|
||||
ctx := sdk.NewContext(cms, true, logger)
|
||||
|
||||
maccPerms := map[string][]string{
|
||||
pooltypes.ModuleName: nil,
|
||||
disttypes.ModuleName: {authtypes.Minter},
|
||||
}
|
||||
|
||||
authority := authtypes.NewModuleAddress("gov")
|
||||
|
||||
// create account keeper
|
||||
accountKeeper := authkeeper.NewAccountKeeper(
|
||||
encCfg.Codec,
|
||||
runtime.NewKVStoreService(keys[authtypes.StoreKey]),
|
||||
authtypes.ProtoBaseAccount,
|
||||
maccPerms,
|
||||
addresscodec.NewBech32Codec(sdk.Bech32MainPrefix),
|
||||
sdk.Bech32MainPrefix,
|
||||
authority.String(),
|
||||
)
|
||||
|
||||
// create bank keeper
|
||||
bankKeeper := bankkeeper.NewBaseKeeper(
|
||||
encCfg.Codec,
|
||||
runtime.NewKVStoreService(keys[banktypes.StoreKey]),
|
||||
accountKeeper,
|
||||
map[string]bool{},
|
||||
authority.String(),
|
||||
log.NewNopLogger(),
|
||||
)
|
||||
|
||||
// gomock initializations
|
||||
ctrl := gomock.NewController(t)
|
||||
stakingKeeper := distrtestutil.NewMockStakingKeeper(ctrl)
|
||||
poolKeeper := distrtestutil.NewMockPoolKeeper(ctrl)
|
||||
|
||||
// create distribution keeper
|
||||
distrKeeper := keeper.NewKeeper(
|
||||
encCfg.Codec,
|
||||
runtime.NewKVStoreService(keys[disttypes.StoreKey]),
|
||||
accountKeeper,
|
||||
bankKeeper,
|
||||
stakingKeeper,
|
||||
poolKeeper,
|
||||
disttypes.ModuleName,
|
||||
authority.String(),
|
||||
)
|
||||
|
||||
// Set feepool
|
||||
poolAmount := sdk.NewInt64Coin("test", 100000)
|
||||
feepool := disttypes.FeePool{
|
||||
CommunityPool: sdk.NewDecCoinsFromCoins(poolAmount),
|
||||
}
|
||||
err := distrKeeper.FeePool.Set(ctx, feepool)
|
||||
require.NoError(t, err)
|
||||
|
||||
distrAcc := authtypes.NewEmptyModuleAccount(disttypes.ModuleName)
|
||||
|
||||
// mint coins in distribution module account
|
||||
distrModBal := sdk.NewCoins(sdk.NewInt64Coin("test", 10000000))
|
||||
err = bankKeeper.MintCoins(ctx, distrAcc.GetName(), distrModBal)
|
||||
require.NoError(t, err)
|
||||
|
||||
// Set pool module account
|
||||
poolAcc := authtypes.NewEmptyModuleAccount(pooltypes.ModuleName)
|
||||
|
||||
// migrate feepool funds from distribution module account to pool module accout
|
||||
err = funds.MigrateFunds(ctx, bankKeeper, feepool, distrAcc, poolAcc)
|
||||
require.NoError(t, err)
|
||||
|
||||
// set distrbution feepool as empty (since migration)
|
||||
err = distrKeeper.FeePool.Set(ctx, disttypes.FeePool{})
|
||||
require.NoError(t, err)
|
||||
|
||||
// check pool module account balance equals pool amount
|
||||
poolMAccBal := bankKeeper.GetAllBalances(ctx, poolAcc.GetAddress())
|
||||
require.Equal(t, poolMAccBal, sdk.Coins{poolAmount})
|
||||
|
||||
distrAccBal := bankKeeper.GetAllBalances(ctx, distrAcc.GetAddress())
|
||||
// check distribution module account balance is not same after migration
|
||||
require.NotEqual(t, distrModBal, distrAccBal)
|
||||
// check distribution module account balance is same as (current distrAccBal+poolAmount)
|
||||
require.Equal(t, distrModBal, distrAccBal.Add(poolAmount))
|
||||
}
|
||||
@ -29,7 +29,7 @@ import (
|
||||
)
|
||||
|
||||
// ConsensusVersion defines the current x/distribution module consensus version.
|
||||
const ConsensusVersion = 4
|
||||
const ConsensusVersion = 5
|
||||
|
||||
var (
|
||||
_ module.AppModuleBasic = AppModule{}
|
||||
@ -99,12 +99,13 @@ type AppModule struct {
|
||||
accountKeeper types.AccountKeeper
|
||||
bankKeeper types.BankKeeper
|
||||
stakingKeeper types.StakingKeeper
|
||||
poolKeeper types.PoolKeeper
|
||||
}
|
||||
|
||||
// NewAppModule creates a new AppModule object
|
||||
func NewAppModule(
|
||||
cdc codec.Codec, keeper keeper.Keeper, accountKeeper types.AccountKeeper,
|
||||
bankKeeper types.BankKeeper, stakingKeeper types.StakingKeeper,
|
||||
bankKeeper types.BankKeeper, stakingKeeper types.StakingKeeper, poolKeeper types.PoolKeeper,
|
||||
) AppModule {
|
||||
return AppModule{
|
||||
AppModuleBasic: AppModuleBasic{cdc: cdc, ac: accountKeeper.AddressCodec()},
|
||||
@ -112,6 +113,7 @@ func NewAppModule(
|
||||
accountKeeper: accountKeeper,
|
||||
bankKeeper: bankKeeper,
|
||||
stakingKeeper: stakingKeeper,
|
||||
poolKeeper: poolKeeper,
|
||||
}
|
||||
}
|
||||
|
||||
@ -143,6 +145,10 @@ func (am AppModule) RegisterServices(cfg module.Configurator) {
|
||||
if err := cfg.RegisterMigration(types.ModuleName, 3, m.Migrate3to4); err != nil {
|
||||
panic(fmt.Sprintf("failed to migrate x/%s from version 3 to 4: %v", types.ModuleName, err))
|
||||
}
|
||||
|
||||
if err := cfg.RegisterMigration(types.ModuleName, 4, m.MigrateFundsToPool); err != nil {
|
||||
panic(fmt.Sprintf("failed to migrate funds from x/%s to x/protocolpool module", types.ModuleName))
|
||||
}
|
||||
}
|
||||
|
||||
// InitGenesis performs genesis initialization for the distribution module. It returns
|
||||
@ -214,6 +220,7 @@ type ModuleInputs struct {
|
||||
AccountKeeper types.AccountKeeper
|
||||
BankKeeper types.BankKeeper
|
||||
StakingKeeper types.StakingKeeper
|
||||
PoolKeeper types.PoolKeeper
|
||||
}
|
||||
|
||||
type ModuleOutputs struct {
|
||||
@ -242,11 +249,12 @@ func ProvideModule(in ModuleInputs) ModuleOutputs {
|
||||
in.AccountKeeper,
|
||||
in.BankKeeper,
|
||||
in.StakingKeeper,
|
||||
in.PoolKeeper,
|
||||
feeCollectorName,
|
||||
authority.String(),
|
||||
)
|
||||
|
||||
m := NewAppModule(in.Cdc, k, in.AccountKeeper, in.BankKeeper, in.StakingKeeper)
|
||||
m := NewAppModule(in.Cdc, k, in.AccountKeeper, in.BankKeeper, in.StakingKeeper, in.PoolKeeper)
|
||||
|
||||
return ModuleOutputs{
|
||||
DistrKeeper: k,
|
||||
|
||||
@ -24,12 +24,10 @@ const (
|
||||
OpWeightMsgSetWithdrawAddress = "op_weight_msg_set_withdraw_address"
|
||||
OpWeightMsgWithdrawDelegationReward = "op_weight_msg_withdraw_delegation_reward"
|
||||
OpWeightMsgWithdrawValidatorCommission = "op_weight_msg_withdraw_validator_commission"
|
||||
OpWeightMsgFundCommunityPool = "op_weight_msg_fund_community_pool"
|
||||
|
||||
DefaultWeightMsgSetWithdrawAddress int = 50
|
||||
DefaultWeightMsgWithdrawDelegationReward int = 50
|
||||
DefaultWeightMsgWithdrawValidatorCommission int = 50
|
||||
DefaultWeightMsgFundCommunityPool int = 50
|
||||
)
|
||||
|
||||
// WeightedOperations returns all the operations from the module with their respective weights
|
||||
@ -57,11 +55,6 @@ func WeightedOperations(
|
||||
weightMsgWithdrawValidatorCommission = DefaultWeightMsgWithdrawValidatorCommission
|
||||
})
|
||||
|
||||
var weightMsgFundCommunityPool int
|
||||
appParams.GetOrGenerate(OpWeightMsgFundCommunityPool, &weightMsgFundCommunityPool, nil, func(_ *rand.Rand) {
|
||||
weightMsgFundCommunityPool = DefaultWeightMsgFundCommunityPool
|
||||
})
|
||||
|
||||
return simulation.WeightedOperations{
|
||||
simulation.NewWeightedOperation(
|
||||
weightMsgSetWithdrawAddress,
|
||||
@ -75,10 +68,6 @@ func WeightedOperations(
|
||||
weightMsgWithdrawValidatorCommission,
|
||||
SimulateMsgWithdrawValidatorCommission(txConfig, ak, bk, k, sk),
|
||||
),
|
||||
simulation.NewWeightedOperation(
|
||||
weightMsgFundCommunityPool,
|
||||
SimulateMsgFundCommunityPool(txConfig, ak, bk, k, sk),
|
||||
),
|
||||
}
|
||||
}
|
||||
|
||||
@ -231,50 +220,3 @@ func SimulateMsgWithdrawValidatorCommission(txConfig client.TxConfig, ak types.A
|
||||
return simulation.GenAndDeliverTxWithRandFees(txCtx)
|
||||
}
|
||||
}
|
||||
|
||||
// SimulateMsgFundCommunityPool simulates MsgFundCommunityPool execution where
|
||||
// a random account sends a random amount of its funds to the community pool.
|
||||
func SimulateMsgFundCommunityPool(txConfig client.TxConfig, ak types.AccountKeeper, bk types.BankKeeper, k keeper.Keeper, sk types.StakingKeeper) simtypes.Operation {
|
||||
return func(
|
||||
r *rand.Rand, app *baseapp.BaseApp, ctx sdk.Context, accs []simtypes.Account, chainID string,
|
||||
) (simtypes.OperationMsg, []simtypes.FutureOperation, error) {
|
||||
funder, _ := simtypes.RandomAcc(r, accs)
|
||||
|
||||
account := ak.GetAccount(ctx, funder.Address)
|
||||
spendable := bk.SpendableCoins(ctx, account.GetAddress())
|
||||
|
||||
fundAmount := simtypes.RandSubsetCoins(r, spendable)
|
||||
if fundAmount.Empty() {
|
||||
return simtypes.NoOpMsg(types.ModuleName, sdk.MsgTypeURL(&types.MsgFundCommunityPool{}), "fund amount is empty"), nil, nil
|
||||
}
|
||||
|
||||
var (
|
||||
fees sdk.Coins
|
||||
err error
|
||||
)
|
||||
|
||||
coins, hasNeg := spendable.SafeSub(fundAmount...)
|
||||
if !hasNeg {
|
||||
fees, err = simtypes.RandomFees(r, coins)
|
||||
if err != nil {
|
||||
return simtypes.NoOpMsg(types.ModuleName, sdk.MsgTypeURL(&types.MsgFundCommunityPool{}), "unable to generate fees"), nil, err
|
||||
}
|
||||
}
|
||||
|
||||
msg := types.NewMsgFundCommunityPool(fundAmount, funder.Address.String())
|
||||
|
||||
txCtx := simulation.OperationInput{
|
||||
R: r,
|
||||
App: app,
|
||||
TxGen: txConfig,
|
||||
Cdc: nil,
|
||||
Msg: msg,
|
||||
Context: ctx,
|
||||
SimAccount: funder,
|
||||
AccountKeeper: ak,
|
||||
ModuleName: types.ModuleName,
|
||||
}
|
||||
|
||||
return simulation.GenAndDeliverTx(txCtx, fees)
|
||||
}
|
||||
}
|
||||
|
||||
@ -51,7 +51,6 @@ func (suite *SimTestSuite) TestWeightedOperations() {
|
||||
{simulation.DefaultWeightMsgSetWithdrawAddress, types.ModuleName, sdk.MsgTypeURL(&types.MsgSetWithdrawAddress{})},
|
||||
{simulation.DefaultWeightMsgWithdrawDelegationReward, types.ModuleName, sdk.MsgTypeURL(&types.MsgWithdrawDelegatorReward{})},
|
||||
{simulation.DefaultWeightMsgWithdrawValidatorCommission, types.ModuleName, sdk.MsgTypeURL(&types.MsgWithdrawValidatorCommission{})},
|
||||
{simulation.DefaultWeightMsgFundCommunityPool, types.ModuleName, sdk.MsgTypeURL(&types.MsgFundCommunityPool{})},
|
||||
}
|
||||
|
||||
for i, w := range weightedOps {
|
||||
@ -210,35 +209,6 @@ func (suite *SimTestSuite) testSimulateMsgWithdrawValidatorCommission(tokenName
|
||||
}
|
||||
}
|
||||
|
||||
// TestSimulateMsgFundCommunityPool tests the normal scenario of a valid message of type TypeMsgFundCommunityPool.
|
||||
// Abonormal scenarios, where the message is created by an errors, are not tested here.
|
||||
func (suite *SimTestSuite) TestSimulateMsgFundCommunityPool() {
|
||||
// setup 3 accounts
|
||||
s := rand.NewSource(1)
|
||||
r := rand.New(s)
|
||||
accounts := suite.getTestingAccounts(r, 3)
|
||||
|
||||
_, err := suite.app.FinalizeBlock(&abci.RequestFinalizeBlock{
|
||||
Height: suite.app.LastBlockHeight() + 1,
|
||||
Hash: suite.app.LastCommitID().Hash,
|
||||
})
|
||||
suite.Require().NoError(err)
|
||||
|
||||
// execute operation
|
||||
op := simulation.SimulateMsgFundCommunityPool(suite.txConfig, suite.accountKeeper, suite.bankKeeper, suite.distrKeeper, suite.stakingKeeper)
|
||||
operationMsg, futureOperations, err := op(r, suite.app.BaseApp, suite.ctx, accounts, "")
|
||||
suite.Require().NoError(err)
|
||||
|
||||
var msg types.MsgFundCommunityPool
|
||||
err = proto.Unmarshal(operationMsg.Msg, &msg)
|
||||
suite.Require().NoError(err)
|
||||
suite.Require().True(operationMsg.OK)
|
||||
suite.Require().Equal("4896096stake", msg.Amount.String())
|
||||
suite.Require().Equal("cosmos1ghekyjucln7y67ntx7cf27m9dpuxxemn4c8g4r", msg.Depositor)
|
||||
suite.Require().Equal(sdk.MsgTypeURL(&types.MsgFundCommunityPool{}), sdk.MsgTypeURL(&msg))
|
||||
suite.Require().Len(futureOperations, 0)
|
||||
}
|
||||
|
||||
type SimTestSuite struct {
|
||||
suite.Suite
|
||||
|
||||
|
||||
@ -1,6 +1,8 @@
|
||||
package testutil
|
||||
|
||||
import (
|
||||
_ "cosmossdk.io/x/protocolpool" // import as blank for app wiring
|
||||
|
||||
"github.com/cosmos/cosmos-sdk/testutil/configurator"
|
||||
_ "github.com/cosmos/cosmos-sdk/x/auth" // import as blank for app wiring
|
||||
_ "github.com/cosmos/cosmos-sdk/x/auth/tx/config" // import as blank for app wiring
|
||||
@ -21,4 +23,5 @@ var AppConfig = configurator.NewAppConfig(
|
||||
configurator.GenutilModule(),
|
||||
configurator.DistributionModule(),
|
||||
configurator.MintModule(),
|
||||
configurator.ProtocolPoolModule(),
|
||||
)
|
||||
|
||||
@ -156,6 +156,20 @@ func (mr *MockBankKeeperMockRecorder) GetAllBalances(ctx, addr interface{}) *gom
|
||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAllBalances", reflect.TypeOf((*MockBankKeeper)(nil).GetAllBalances), ctx, addr)
|
||||
}
|
||||
|
||||
// MintCoins mocks base method.
|
||||
func (m *MockBankKeeper) MintCoins(ctx context.Context, moduleName string, amt types.Coins) error {
|
||||
m.ctrl.T.Helper()
|
||||
ret := m.ctrl.Call(m, "MintCoins", ctx, moduleName, amt)
|
||||
ret0, _ := ret[0].(error)
|
||||
return ret0
|
||||
}
|
||||
|
||||
// MintCoins indicates an expected call of MintCoins.
|
||||
func (mr *MockBankKeeperMockRecorder) MintCoins(ctx, moduleName, amt interface{}) *gomock.Call {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "MintCoins", reflect.TypeOf((*MockBankKeeper)(nil).MintCoins), ctx, moduleName, amt)
|
||||
}
|
||||
|
||||
// SendCoinsFromAccountToModule mocks base method.
|
||||
func (m *MockBankKeeper) SendCoinsFromAccountToModule(ctx context.Context, senderAddr types.AccAddress, recipientModule string, amt types.Coins) error {
|
||||
m.ctrl.T.Helper()
|
||||
@ -212,6 +226,72 @@ func (mr *MockBankKeeperMockRecorder) SpendableCoins(ctx, addr interface{}) *gom
|
||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SpendableCoins", reflect.TypeOf((*MockBankKeeper)(nil).SpendableCoins), ctx, addr)
|
||||
}
|
||||
|
||||
// MockPoolKeeper is a mock of PoolKeeper interface.
|
||||
type MockPoolKeeper struct {
|
||||
ctrl *gomock.Controller
|
||||
recorder *MockPoolKeeperMockRecorder
|
||||
}
|
||||
|
||||
// MockPoolKeeperMockRecorder is the mock recorder for MockPoolKeeper.
|
||||
type MockPoolKeeperMockRecorder struct {
|
||||
mock *MockPoolKeeper
|
||||
}
|
||||
|
||||
// NewMockPoolKeeper creates a new mock instance.
|
||||
func NewMockPoolKeeper(ctrl *gomock.Controller) *MockPoolKeeper {
|
||||
mock := &MockPoolKeeper{ctrl: ctrl}
|
||||
mock.recorder = &MockPoolKeeperMockRecorder{mock}
|
||||
return mock
|
||||
}
|
||||
|
||||
// EXPECT returns an object that allows the caller to indicate expected use.
|
||||
func (m *MockPoolKeeper) EXPECT() *MockPoolKeeperMockRecorder {
|
||||
return m.recorder
|
||||
}
|
||||
|
||||
// DistributeFromFeePool mocks base method.
|
||||
func (m *MockPoolKeeper) DistributeFromFeePool(ctx context.Context, amount types.Coins, receiveAddr types.AccAddress) error {
|
||||
m.ctrl.T.Helper()
|
||||
ret := m.ctrl.Call(m, "DistributeFromFeePool", ctx, amount, receiveAddr)
|
||||
ret0, _ := ret[0].(error)
|
||||
return ret0
|
||||
}
|
||||
|
||||
// DistributeFromFeePool indicates an expected call of DistributeFromFeePool.
|
||||
func (mr *MockPoolKeeperMockRecorder) DistributeFromFeePool(ctx, amount, receiveAddr interface{}) *gomock.Call {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DistributeFromFeePool", reflect.TypeOf((*MockPoolKeeper)(nil).DistributeFromFeePool), ctx, amount, receiveAddr)
|
||||
}
|
||||
|
||||
// FundCommunityPool mocks base method.
|
||||
func (m *MockPoolKeeper) FundCommunityPool(ctx context.Context, amount types.Coins, sender types.AccAddress) error {
|
||||
m.ctrl.T.Helper()
|
||||
ret := m.ctrl.Call(m, "FundCommunityPool", ctx, amount, sender)
|
||||
ret0, _ := ret[0].(error)
|
||||
return ret0
|
||||
}
|
||||
|
||||
// FundCommunityPool indicates an expected call of FundCommunityPool.
|
||||
func (mr *MockPoolKeeperMockRecorder) FundCommunityPool(ctx, amount, sender interface{}) *gomock.Call {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "FundCommunityPool", reflect.TypeOf((*MockPoolKeeper)(nil).FundCommunityPool), ctx, amount, sender)
|
||||
}
|
||||
|
||||
// GetCommunityPool mocks base method.
|
||||
func (m *MockPoolKeeper) GetCommunityPool(ctx context.Context) (types.Coins, error) {
|
||||
m.ctrl.T.Helper()
|
||||
ret := m.ctrl.Call(m, "GetCommunityPool", ctx)
|
||||
ret0, _ := ret[0].(types.Coins)
|
||||
ret1, _ := ret[1].(error)
|
||||
return ret0, ret1
|
||||
}
|
||||
|
||||
// GetCommunityPool indicates an expected call of GetCommunityPool.
|
||||
func (mr *MockPoolKeeperMockRecorder) GetCommunityPool(ctx interface{}) *gomock.Call {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetCommunityPool", reflect.TypeOf((*MockPoolKeeper)(nil).GetCommunityPool), ctx)
|
||||
}
|
||||
|
||||
// MockStakingKeeper is a mock of StakingKeeper interface.
|
||||
type MockStakingKeeper struct {
|
||||
ctrl *gomock.Controller
|
||||
|
||||
@ -15,9 +15,7 @@ func RegisterLegacyAminoCodec(cdc *codec.LegacyAmino) {
|
||||
legacy.RegisterAminoMsg(cdc, &MsgWithdrawDelegatorReward{}, "cosmos-sdk/MsgWithdrawDelegationReward")
|
||||
legacy.RegisterAminoMsg(cdc, &MsgWithdrawValidatorCommission{}, "cosmos-sdk/MsgWithdrawValCommission")
|
||||
legacy.RegisterAminoMsg(cdc, &MsgSetWithdrawAddress{}, "cosmos-sdk/MsgModifyWithdrawAddress")
|
||||
legacy.RegisterAminoMsg(cdc, &MsgFundCommunityPool{}, "cosmos-sdk/MsgFundCommunityPool")
|
||||
legacy.RegisterAminoMsg(cdc, &MsgUpdateParams{}, "cosmos-sdk/distribution/MsgUpdateParams")
|
||||
legacy.RegisterAminoMsg(cdc, &MsgCommunityPoolSpend{}, "cosmos-sdk/distr/MsgCommunityPoolSpend")
|
||||
legacy.RegisterAminoMsg(cdc, &MsgDepositValidatorRewardsPool{}, "cosmos-sdk/distr/MsgDepositValRewards")
|
||||
|
||||
cdc.RegisterConcrete(Params{}, "cosmos-sdk/x/distribution/Params", nil)
|
||||
@ -29,9 +27,7 @@ func RegisterInterfaces(registry types.InterfaceRegistry) {
|
||||
&MsgWithdrawDelegatorReward{},
|
||||
&MsgWithdrawValidatorCommission{},
|
||||
&MsgSetWithdrawAddress{},
|
||||
&MsgFundCommunityPool{},
|
||||
&MsgUpdateParams{},
|
||||
&MsgCommunityPoolSpend{},
|
||||
&MsgDepositValidatorRewardsPool{},
|
||||
)
|
||||
|
||||
|
||||
@ -431,56 +431,6 @@ func (m *FeePool) GetCommunityPool() github_com_cosmos_cosmos_sdk_types.DecCoins
|
||||
return nil
|
||||
}
|
||||
|
||||
// CommunityPoolSpendProposal details a proposal for use of community funds,
|
||||
// together with how many coins are proposed to be spent, and to which
|
||||
// recipient account.
|
||||
//
|
||||
// Deprecated: Do not use. As of the Cosmos SDK release v0.47.x, there is no
|
||||
// longer a need for an explicit CommunityPoolSpendProposal. To spend community
|
||||
// pool funds, a simple MsgCommunityPoolSpend can be invoked from the x/gov
|
||||
// module via a v1 governance proposal.
|
||||
//
|
||||
// Deprecated: Do not use.
|
||||
type CommunityPoolSpendProposal struct {
|
||||
Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"`
|
||||
Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
|
||||
Recipient string `protobuf:"bytes,3,opt,name=recipient,proto3" json:"recipient,omitempty"`
|
||||
Amount github_com_cosmos_cosmos_sdk_types.Coins `protobuf:"bytes,4,rep,name=amount,proto3,castrepeated=github.com/cosmos/cosmos-sdk/types.Coins" json:"amount"`
|
||||
}
|
||||
|
||||
func (m *CommunityPoolSpendProposal) Reset() { *m = CommunityPoolSpendProposal{} }
|
||||
func (m *CommunityPoolSpendProposal) String() string { return proto.CompactTextString(m) }
|
||||
func (*CommunityPoolSpendProposal) ProtoMessage() {}
|
||||
func (*CommunityPoolSpendProposal) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_cd78a31ea281a992, []int{8}
|
||||
}
|
||||
func (m *CommunityPoolSpendProposal) XXX_Unmarshal(b []byte) error {
|
||||
return m.Unmarshal(b)
|
||||
}
|
||||
func (m *CommunityPoolSpendProposal) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
if deterministic {
|
||||
return xxx_messageInfo_CommunityPoolSpendProposal.Marshal(b, m, deterministic)
|
||||
} else {
|
||||
b = b[:cap(b)]
|
||||
n, err := m.MarshalToSizedBuffer(b)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return b[:n], nil
|
||||
}
|
||||
}
|
||||
func (m *CommunityPoolSpendProposal) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_CommunityPoolSpendProposal.Merge(m, src)
|
||||
}
|
||||
func (m *CommunityPoolSpendProposal) XXX_Size() int {
|
||||
return m.Size()
|
||||
}
|
||||
func (m *CommunityPoolSpendProposal) XXX_DiscardUnknown() {
|
||||
xxx_messageInfo_CommunityPoolSpendProposal.DiscardUnknown(m)
|
||||
}
|
||||
|
||||
var xxx_messageInfo_CommunityPoolSpendProposal proto.InternalMessageInfo
|
||||
|
||||
// DelegatorStartingInfo represents the starting info for a delegator reward
|
||||
// period. It tracks the previous validator period, the delegation's amount of
|
||||
// staking token, and the creation height (to check later on if any slashes have
|
||||
@ -497,7 +447,7 @@ func (m *DelegatorStartingInfo) Reset() { *m = DelegatorStartingInfo{} }
|
||||
func (m *DelegatorStartingInfo) String() string { return proto.CompactTextString(m) }
|
||||
func (*DelegatorStartingInfo) ProtoMessage() {}
|
||||
func (*DelegatorStartingInfo) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_cd78a31ea281a992, []int{9}
|
||||
return fileDescriptor_cd78a31ea281a992, []int{8}
|
||||
}
|
||||
func (m *DelegatorStartingInfo) XXX_Unmarshal(b []byte) error {
|
||||
return m.Unmarshal(b)
|
||||
@ -551,7 +501,7 @@ func (m *DelegationDelegatorReward) Reset() { *m = DelegationDelegatorRe
|
||||
func (m *DelegationDelegatorReward) String() string { return proto.CompactTextString(m) }
|
||||
func (*DelegationDelegatorReward) ProtoMessage() {}
|
||||
func (*DelegationDelegatorReward) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_cd78a31ea281a992, []int{10}
|
||||
return fileDescriptor_cd78a31ea281a992, []int{9}
|
||||
}
|
||||
func (m *DelegationDelegatorReward) XXX_Unmarshal(b []byte) error {
|
||||
return m.Unmarshal(b)
|
||||
@ -580,49 +530,6 @@ func (m *DelegationDelegatorReward) XXX_DiscardUnknown() {
|
||||
|
||||
var xxx_messageInfo_DelegationDelegatorReward proto.InternalMessageInfo
|
||||
|
||||
// CommunityPoolSpendProposalWithDeposit defines a CommunityPoolSpendProposal
|
||||
// with a deposit
|
||||
type CommunityPoolSpendProposalWithDeposit struct {
|
||||
Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"`
|
||||
Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
|
||||
Recipient string `protobuf:"bytes,3,opt,name=recipient,proto3" json:"recipient,omitempty"`
|
||||
Amount string `protobuf:"bytes,4,opt,name=amount,proto3" json:"amount,omitempty"`
|
||||
Deposit string `protobuf:"bytes,5,opt,name=deposit,proto3" json:"deposit,omitempty"`
|
||||
}
|
||||
|
||||
func (m *CommunityPoolSpendProposalWithDeposit) Reset() { *m = CommunityPoolSpendProposalWithDeposit{} }
|
||||
func (m *CommunityPoolSpendProposalWithDeposit) String() string { return proto.CompactTextString(m) }
|
||||
func (*CommunityPoolSpendProposalWithDeposit) ProtoMessage() {}
|
||||
func (*CommunityPoolSpendProposalWithDeposit) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_cd78a31ea281a992, []int{11}
|
||||
}
|
||||
func (m *CommunityPoolSpendProposalWithDeposit) XXX_Unmarshal(b []byte) error {
|
||||
return m.Unmarshal(b)
|
||||
}
|
||||
func (m *CommunityPoolSpendProposalWithDeposit) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
if deterministic {
|
||||
return xxx_messageInfo_CommunityPoolSpendProposalWithDeposit.Marshal(b, m, deterministic)
|
||||
} else {
|
||||
b = b[:cap(b)]
|
||||
n, err := m.MarshalToSizedBuffer(b)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return b[:n], nil
|
||||
}
|
||||
}
|
||||
func (m *CommunityPoolSpendProposalWithDeposit) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_CommunityPoolSpendProposalWithDeposit.Merge(m, src)
|
||||
}
|
||||
func (m *CommunityPoolSpendProposalWithDeposit) XXX_Size() int {
|
||||
return m.Size()
|
||||
}
|
||||
func (m *CommunityPoolSpendProposalWithDeposit) XXX_DiscardUnknown() {
|
||||
xxx_messageInfo_CommunityPoolSpendProposalWithDeposit.DiscardUnknown(m)
|
||||
}
|
||||
|
||||
var xxx_messageInfo_CommunityPoolSpendProposalWithDeposit proto.InternalMessageInfo
|
||||
|
||||
func init() {
|
||||
proto.RegisterType((*Params)(nil), "cosmos.distribution.v1beta1.Params")
|
||||
proto.RegisterType((*ValidatorHistoricalRewards)(nil), "cosmos.distribution.v1beta1.ValidatorHistoricalRewards")
|
||||
@ -632,10 +539,8 @@ func init() {
|
||||
proto.RegisterType((*ValidatorSlashEvent)(nil), "cosmos.distribution.v1beta1.ValidatorSlashEvent")
|
||||
proto.RegisterType((*ValidatorSlashEvents)(nil), "cosmos.distribution.v1beta1.ValidatorSlashEvents")
|
||||
proto.RegisterType((*FeePool)(nil), "cosmos.distribution.v1beta1.FeePool")
|
||||
proto.RegisterType((*CommunityPoolSpendProposal)(nil), "cosmos.distribution.v1beta1.CommunityPoolSpendProposal")
|
||||
proto.RegisterType((*DelegatorStartingInfo)(nil), "cosmos.distribution.v1beta1.DelegatorStartingInfo")
|
||||
proto.RegisterType((*DelegationDelegatorReward)(nil), "cosmos.distribution.v1beta1.DelegationDelegatorReward")
|
||||
proto.RegisterType((*CommunityPoolSpendProposalWithDeposit)(nil), "cosmos.distribution.v1beta1.CommunityPoolSpendProposalWithDeposit")
|
||||
}
|
||||
|
||||
func init() {
|
||||
@ -643,71 +548,61 @@ func init() {
|
||||
}
|
||||
|
||||
var fileDescriptor_cd78a31ea281a992 = []byte{
|
||||
// 1012 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x56, 0x41, 0x6f, 0x1b, 0x45,
|
||||
0x14, 0xf6, 0x34, 0x89, 0xd3, 0x4c, 0xdb, 0x84, 0x4e, 0x9c, 0xd4, 0x71, 0x8b, 0x6d, 0x56, 0xaa,
|
||||
0x30, 0x81, 0xd8, 0xa4, 0x48, 0x08, 0xe5, 0xd6, 0xd8, 0xad, 0x40, 0x2a, 0x34, 0xda, 0x20, 0x90,
|
||||
0xe0, 0xb0, 0x1a, 0xef, 0x4e, 0xec, 0x21, 0xbb, 0x33, 0xcb, 0xcc, 0xd8, 0x49, 0x0e, 0xdc, 0x03,
|
||||
0x07, 0xe0, 0x06, 0xea, 0xa9, 0x82, 0x4b, 0xc5, 0x29, 0x87, 0xfc, 0x88, 0x8a, 0x53, 0x55, 0x10,
|
||||
0x42, 0x1c, 0x02, 0x24, 0x87, 0x20, 0x7e, 0x05, 0x9a, 0x9d, 0xf1, 0xae, 0x13, 0x42, 0x81, 0x22,
|
||||
0x8b, 0x4b, 0x94, 0x79, 0x6f, 0xf6, 0x7d, 0xdf, 0xf7, 0xe6, 0x9b, 0x37, 0x86, 0x75, 0x9f, 0xcb,
|
||||
0x88, 0xcb, 0x46, 0x40, 0xa5, 0x12, 0xb4, 0xdd, 0x53, 0x94, 0xb3, 0x46, 0x7f, 0xb9, 0x4d, 0x14,
|
||||
0x5e, 0x3e, 0x11, 0xac, 0xc7, 0x82, 0x2b, 0x8e, 0xae, 0x9a, 0xfd, 0xf5, 0x13, 0x29, 0xbb, 0xbf,
|
||||
0x54, 0xe8, 0xf0, 0x0e, 0x4f, 0xf6, 0x35, 0xf4, 0x7f, 0xe6, 0x93, 0x52, 0xd9, 0x42, 0xb4, 0xb1,
|
||||
0x24, 0x69, 0x69, 0x9f, 0x53, 0x5b, 0xb2, 0xb4, 0x60, 0xf2, 0x9e, 0xf9, 0xd0, 0xd6, 0x37, 0xa9,
|
||||
0xcb, 0x38, 0xa2, 0x8c, 0x37, 0x92, 0xbf, 0x26, 0xe4, 0xdc, 0x1b, 0x83, 0xf9, 0x35, 0x2c, 0x70,
|
||||
0x24, 0xd1, 0xfb, 0xf0, 0x92, 0xcf, 0xa3, 0xa8, 0xc7, 0xa8, 0xda, 0xf1, 0x14, 0xde, 0x2e, 0x82,
|
||||
0x2a, 0xa8, 0x4d, 0xad, 0xbe, 0xfa, 0xf0, 0xa0, 0x92, 0xfb, 0xe9, 0xa0, 0x62, 0xa9, 0xca, 0x60,
|
||||
0xb3, 0x4e, 0x79, 0x23, 0xc2, 0xaa, 0x5b, 0xbf, 0x43, 0x3a, 0xd8, 0xdf, 0x69, 0x11, 0xff, 0xf1,
|
||||
0xfe, 0x12, 0xb4, 0x48, 0x2d, 0xe2, 0x3f, 0x38, 0xde, 0x5b, 0x04, 0xee, 0xc5, 0xb4, 0xd8, 0xdb,
|
||||
0x78, 0x1b, 0x7d, 0x00, 0x0b, 0x9a, 0xb0, 0x66, 0x15, 0x73, 0x49, 0x84, 0x27, 0xc8, 0x16, 0x16,
|
||||
0x41, 0xf1, 0x5c, 0x82, 0xf1, 0xda, 0xd3, 0x61, 0x14, 0x81, 0x8b, 0x74, 0xd5, 0x35, 0x5b, 0xd4,
|
||||
0x4d, 0x6a, 0xa2, 0x10, 0xce, 0xb5, 0x39, 0xeb, 0xc9, 0x3f, 0x81, 0x8d, 0xfd, 0x47, 0xb0, 0xd9,
|
||||
0xa4, 0xec, 0x29, 0xb4, 0x1b, 0x70, 0x6e, 0x8b, 0xaa, 0x6e, 0x20, 0xf0, 0x96, 0x87, 0x83, 0x40,
|
||||
0x78, 0x84, 0xe1, 0x76, 0x48, 0x82, 0xe2, 0x78, 0x15, 0xd4, 0xce, 0xbb, 0xb3, 0x83, 0xe4, 0xcd,
|
||||
0x20, 0x10, 0xb7, 0x4c, 0x6a, 0xe5, 0xfa, 0x27, 0xc7, 0x7b, 0x8b, 0x55, 0x03, 0xb0, 0x24, 0x83,
|
||||
0xcd, 0xc6, 0xf6, 0x49, 0xc7, 0x98, 0x13, 0x71, 0x7e, 0x00, 0xb0, 0xf4, 0x0e, 0x0e, 0x69, 0x80,
|
||||
0x15, 0x17, 0xaf, 0x53, 0xa9, 0xb8, 0xa0, 0x3e, 0x0e, 0x0d, 0xb0, 0x44, 0x9f, 0x02, 0x78, 0xc5,
|
||||
0xef, 0x45, 0xbd, 0x10, 0x2b, 0xda, 0x27, 0x56, 0xa4, 0x27, 0xb0, 0xa2, 0xbc, 0x08, 0xaa, 0x63,
|
||||
0xb5, 0x0b, 0x37, 0xae, 0x59, 0x3f, 0xd6, 0x75, 0x97, 0x06, 0xbe, 0xd2, 0x8a, 0x9a, 0x9c, 0x32,
|
||||
0xd3, 0x88, 0x6f, 0x7e, 0xae, 0xbc, 0xd8, 0xa1, 0xaa, 0xdb, 0x6b, 0xd7, 0x7d, 0x1e, 0x59, 0xbf,
|
||||
0x34, 0x86, 0xa8, 0xa9, 0x9d, 0x98, 0xc8, 0xc1, 0x37, 0xd2, 0x9c, 0xed, 0x5c, 0x06, 0x6b, 0xc8,
|
||||
0xb8, 0x1a, 0x14, 0x3d, 0x0f, 0x67, 0x04, 0xd9, 0x20, 0x82, 0x30, 0x9f, 0x78, 0x3e, 0xef, 0x31,
|
||||
0x95, 0x9c, 0xef, 0x25, 0x77, 0x3a, 0x0d, 0x37, 0x75, 0xd4, 0xf9, 0x1a, 0xc0, 0x2b, 0xa9, 0xb0,
|
||||
0x66, 0x4f, 0x08, 0xc2, 0xd4, 0x40, 0x55, 0x0c, 0x27, 0x8d, 0x12, 0x39, 0x62, 0x11, 0x03, 0x18,
|
||||
0x34, 0x0f, 0xf3, 0x31, 0x11, 0x94, 0x1b, 0x37, 0x8e, 0xbb, 0x76, 0xe5, 0x7c, 0x09, 0x60, 0x39,
|
||||
0x65, 0x79, 0xd3, 0xb7, 0x9a, 0x49, 0xd0, 0xe4, 0x51, 0x44, 0xa5, 0xa4, 0x9c, 0xa1, 0x3e, 0x84,
|
||||
0x7e, 0xba, 0x1a, 0x31, 0xdf, 0x21, 0x24, 0xe7, 0x33, 0x00, 0xaf, 0xa6, 0xd4, 0xee, 0xf6, 0x94,
|
||||
0x54, 0x98, 0x05, 0x94, 0x75, 0xfe, 0xb7, 0x26, 0x6a, 0x46, 0xb3, 0x29, 0xa3, 0xf5, 0x10, 0xcb,
|
||||
0xee, 0xad, 0x3e, 0x61, 0x0a, 0xbd, 0x00, 0x9f, 0xe9, 0x0f, 0xc2, 0x9e, 0x6d, 0x33, 0x48, 0xda,
|
||||
0x3c, 0x93, 0xc6, 0xd7, 0x92, 0x30, 0x7a, 0x13, 0x9e, 0xdf, 0x10, 0xd8, 0xd7, 0x37, 0xc0, 0xce,
|
||||
0x85, 0xe5, 0x7f, 0x7d, 0x55, 0xdd, 0xb4, 0x84, 0xf3, 0x31, 0x80, 0x85, 0x33, 0x18, 0x49, 0xf4,
|
||||
0x21, 0x9c, 0xcf, 0x28, 0x49, 0x9d, 0xf0, 0x48, 0x92, 0xb1, 0xbd, 0x7a, 0xb9, 0xfe, 0x84, 0xa9,
|
||||
0x5c, 0x3f, 0xa3, 0xe4, 0xea, 0x94, 0xe6, 0x69, 0x1a, 0x52, 0xe8, 0x9f, 0x01, 0xe9, 0xec, 0x02,
|
||||
0x38, 0x79, 0x9b, 0x90, 0x35, 0xce, 0x43, 0xf4, 0x11, 0x9c, 0xce, 0xe6, 0x6c, 0xcc, 0x79, 0x38,
|
||||
0xe2, 0x23, 0xca, 0xa6, 0xba, 0x86, 0x77, 0xbe, 0x38, 0x07, 0x4b, 0xcd, 0xe1, 0xc8, 0x7a, 0x4c,
|
||||
0x58, 0x60, 0x86, 0x1a, 0x0e, 0x51, 0x01, 0x4e, 0x28, 0xaa, 0x42, 0x62, 0xa6, 0xbf, 0x6b, 0x16,
|
||||
0xa8, 0x0a, 0x2f, 0x04, 0x44, 0xfa, 0x82, 0xc6, 0xd9, 0xe9, 0xb8, 0xc3, 0x21, 0x74, 0x0d, 0x4e,
|
||||
0x09, 0xe2, 0xd3, 0x98, 0x12, 0xa6, 0xcc, 0xa0, 0x75, 0xb3, 0x00, 0xda, 0x81, 0x79, 0x1c, 0x25,
|
||||
0x03, 0x61, 0x3c, 0xd1, 0xba, 0x70, 0xa6, 0xd6, 0x44, 0xe8, 0x6d, 0x2b, 0xb4, 0xf6, 0x0f, 0x84,
|
||||
0x26, 0x2a, 0xef, 0x1d, 0xef, 0x2d, 0x5e, 0x0c, 0x13, 0x3b, 0x78, 0x7e, 0x26, 0xdb, 0x02, 0xae,
|
||||
0xd4, 0x76, 0xef, 0x57, 0x72, 0xbf, 0xdd, 0xaf, 0xe4, 0xbe, 0xdd, 0x5f, 0x2a, 0x59, 0xd4, 0x0e,
|
||||
0xef, 0x0f, 0x81, 0x32, 0xa5, 0x39, 0x03, 0xe7, 0x7b, 0x00, 0xe7, 0x5a, 0x44, 0x57, 0xd2, 0xa7,
|
||||
0xa7, 0xb0, 0x50, 0x94, 0x75, 0xde, 0x60, 0x1b, 0xc9, 0x60, 0x8b, 0x05, 0xe9, 0x53, 0xae, 0x1f,
|
||||
0x95, 0x61, 0x0f, 0x4f, 0x0f, 0xc2, 0xd6, 0xc2, 0x77, 0xe0, 0x84, 0x54, 0x78, 0x93, 0x58, 0xff,
|
||||
0x3e, 0xed, 0xdb, 0x69, 0x8a, 0xa0, 0x16, 0xcc, 0x77, 0x09, 0xed, 0x74, 0x4d, 0x43, 0xc7, 0x57,
|
||||
0x5f, 0xfa, 0xfd, 0xa0, 0x32, 0xe3, 0x0b, 0xa2, 0x87, 0x2d, 0xf3, 0x4c, 0xea, 0xab, 0xe3, 0xbd,
|
||||
0xc5, 0xd3, 0x31, 0xdb, 0x00, 0xb3, 0x70, 0x7e, 0x05, 0x70, 0xc1, 0xca, 0xa2, 0x9c, 0xa5, 0x02,
|
||||
0xed, 0xf3, 0xf5, 0x16, 0xbc, 0x9c, 0x5d, 0x06, 0xfd, 0x7e, 0x11, 0x29, 0xed, 0xcb, 0xff, 0xdc,
|
||||
0xe3, 0xfd, 0xa5, 0x67, 0x2d, 0xb5, 0x6c, 0x0e, 0x9a, 0x2d, 0xeb, 0x4a, 0xe8, 0x71, 0x93, 0xdd,
|
||||
0x6d, 0x1b, 0x47, 0x0c, 0xe6, 0xd3, 0xa7, 0x7d, 0x94, 0xae, 0xb6, 0x28, 0x2b, 0xe3, 0xfa, 0x78,
|
||||
0x9d, 0xef, 0x00, 0xbc, 0xfe, 0xd7, 0xa6, 0x7e, 0x97, 0xaa, 0x6e, 0x8b, 0xc4, 0x5c, 0x52, 0x35,
|
||||
0x22, 0x7f, 0xcf, 0x0f, 0xf9, 0x5b, 0xa7, 0xec, 0x0a, 0x15, 0xe1, 0x64, 0x60, 0x80, 0x8b, 0x13,
|
||||
0x49, 0x62, 0xb0, 0x5c, 0x71, 0x76, 0xff, 0xd6, 0x92, 0xab, 0x77, 0x1f, 0x1c, 0x96, 0xc1, 0xc3,
|
||||
0xc3, 0x32, 0x78, 0x74, 0x58, 0x06, 0xbf, 0x1c, 0x96, 0xc1, 0xe7, 0x47, 0xe5, 0xdc, 0xa3, 0xa3,
|
||||
0x72, 0xee, 0xc7, 0xa3, 0x72, 0xee, 0xbd, 0xe5, 0x27, 0xf6, 0xec, 0xd4, 0x2f, 0x8a, 0xa4, 0x85,
|
||||
0xed, 0x7c, 0xf2, 0xa3, 0xef, 0x95, 0x3f, 0x02, 0x00, 0x00, 0xff, 0xff, 0x78, 0xae, 0xbc, 0xbc,
|
||||
0xa7, 0x0a, 0x00, 0x00,
|
||||
// 854 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x56, 0xcf, 0x6f, 0x1b, 0x45,
|
||||
0x14, 0xf6, 0x10, 0xe3, 0xb6, 0x03, 0x4d, 0xe8, 0xc6, 0x6e, 0x5d, 0x17, 0xd6, 0x66, 0x25, 0x44,
|
||||
0x08, 0x64, 0x8d, 0x8b, 0x84, 0x50, 0x6f, 0xb5, 0x5d, 0x04, 0x52, 0xa1, 0xd6, 0x06, 0x71, 0x80,
|
||||
0xc3, 0x6a, 0xbc, 0x3b, 0x59, 0x0f, 0xd9, 0x9d, 0x31, 0x33, 0xb3, 0x4e, 0x72, 0xe0, 0x1e, 0x38,
|
||||
0x00, 0x47, 0xc4, 0x09, 0xc1, 0x25, 0xe2, 0x94, 0x43, 0xfe, 0x88, 0x1c, 0xa3, 0x08, 0x21, 0xc4,
|
||||
0x21, 0x80, 0x73, 0x88, 0xc4, 0x5f, 0x81, 0x66, 0x67, 0xbc, 0x4e, 0x42, 0x14, 0x89, 0x20, 0xab,
|
||||
0x97, 0x28, 0xfb, 0xde, 0xcc, 0xf7, 0x7d, 0xef, 0xe7, 0x18, 0xba, 0x01, 0x13, 0x09, 0x13, 0xcd,
|
||||
0x90, 0x08, 0xc9, 0x49, 0x3f, 0x95, 0x84, 0xd1, 0xe6, 0xa8, 0xd5, 0xc7, 0x12, 0xb5, 0xce, 0x18,
|
||||
0xdd, 0x21, 0x67, 0x92, 0x59, 0xf7, 0xf4, 0x79, 0xf7, 0x8c, 0xcb, 0x9c, 0xaf, 0x95, 0x23, 0x16,
|
||||
0xb1, 0xec, 0x5c, 0x53, 0xfd, 0xa7, 0xaf, 0xd4, 0x6c, 0x43, 0xd1, 0x47, 0x02, 0xe7, 0xd0, 0x01,
|
||||
0x23, 0x06, 0xb2, 0x76, 0x57, 0xfb, 0x7d, 0x7d, 0xd1, 0xe0, 0x6b, 0xd7, 0x2d, 0x94, 0x10, 0xca,
|
||||
0x9a, 0xd9, 0x5f, 0x6d, 0x72, 0xbe, 0x9f, 0x83, 0xa5, 0x1e, 0xe2, 0x28, 0x11, 0xd6, 0xa7, 0xf0,
|
||||
0x66, 0xc0, 0x92, 0x24, 0xa5, 0x44, 0x6e, 0xf9, 0x12, 0x6d, 0x56, 0x41, 0x03, 0x2c, 0xdd, 0x68,
|
||||
0xbf, 0xbd, 0x7f, 0x54, 0x2f, 0xfc, 0x7e, 0x54, 0x37, 0x52, 0x45, 0xb8, 0xee, 0x12, 0xd6, 0x4c,
|
||||
0x90, 0x1c, 0xb8, 0x8f, 0x71, 0x84, 0x82, 0xad, 0x2e, 0x0e, 0x0e, 0xf7, 0x56, 0xa0, 0x61, 0xea,
|
||||
0xe2, 0x60, 0xe7, 0x64, 0x77, 0x19, 0x78, 0xcf, 0xe7, 0x60, 0x1f, 0xa1, 0x4d, 0xeb, 0x33, 0x58,
|
||||
0x56, 0x82, 0x95, 0xaa, 0x21, 0x13, 0x98, 0xfb, 0x1c, 0x6f, 0x20, 0x1e, 0x56, 0x9f, 0xc9, 0x38,
|
||||
0xde, 0xb9, 0x1a, 0x47, 0x15, 0x78, 0x96, 0x42, 0xed, 0x19, 0x50, 0x2f, 0xc3, 0xb4, 0x62, 0x58,
|
||||
0xe9, 0x33, 0x9a, 0x8a, 0x7f, 0x91, 0xcd, 0xfd, 0x4f, 0xb2, 0xc5, 0x0c, 0xf6, 0x1c, 0xdb, 0x7d,
|
||||
0x58, 0xd9, 0x20, 0x72, 0x10, 0x72, 0xb4, 0xe1, 0xa3, 0x30, 0xe4, 0x3e, 0xa6, 0xa8, 0x1f, 0xe3,
|
||||
0xb0, 0x5a, 0x6c, 0x80, 0xa5, 0xeb, 0xde, 0xe2, 0xc4, 0xf9, 0x30, 0x0c, 0xf9, 0x23, 0xed, 0x7a,
|
||||
0xf0, 0xca, 0x57, 0x27, 0xbb, 0xcb, 0x0d, 0x4d, 0xb0, 0x22, 0xc2, 0xf5, 0xe6, 0xe6, 0xd9, 0x8e,
|
||||
0xd1, 0x15, 0x71, 0x7e, 0x05, 0xb0, 0xf6, 0x31, 0x8a, 0x49, 0x88, 0x24, 0xe3, 0xef, 0x11, 0x21,
|
||||
0x19, 0x27, 0x01, 0x8a, 0x35, 0xb1, 0xb0, 0xbe, 0x06, 0xf0, 0x4e, 0x90, 0x26, 0x69, 0x8c, 0x24,
|
||||
0x19, 0x61, 0x13, 0xa4, 0xcf, 0x91, 0x24, 0xac, 0x0a, 0x1a, 0x73, 0x4b, 0xcf, 0xdd, 0x7f, 0xd1,
|
||||
0xf4, 0xa3, 0xab, 0xb2, 0x34, 0xe9, 0x2b, 0x15, 0x51, 0x87, 0x11, 0xaa, 0x13, 0xf1, 0xf3, 0x1f,
|
||||
0xf5, 0xd7, 0x23, 0x22, 0x07, 0x69, 0xdf, 0x0d, 0x58, 0x62, 0xfa, 0xa5, 0x79, 0x4a, 0x9a, 0xdc,
|
||||
0x1a, 0x62, 0x31, 0xb9, 0x23, 0x74, 0x6d, 0x2b, 0x53, 0x5a, 0x2d, 0xc6, 0x53, 0xa4, 0xd6, 0xab,
|
||||
0x70, 0x81, 0xe3, 0x35, 0xcc, 0x31, 0x0d, 0xb0, 0x1f, 0xb0, 0x94, 0xca, 0xac, 0xbe, 0x37, 0xbd,
|
||||
0xf9, 0xdc, 0xdc, 0x51, 0x56, 0xe7, 0x27, 0x00, 0xef, 0xe4, 0x81, 0x75, 0x52, 0xce, 0x31, 0x95,
|
||||
0x93, 0xa8, 0x86, 0xf0, 0x9a, 0x8e, 0x44, 0xcc, 0x38, 0x88, 0x09, 0x8d, 0x75, 0x1b, 0x96, 0x86,
|
||||
0x98, 0x13, 0xa6, 0xbb, 0xb1, 0xe8, 0x99, 0x2f, 0xe7, 0x3b, 0x00, 0xed, 0x5c, 0xe5, 0xc3, 0xc0,
|
||||
0xc4, 0x8c, 0xc3, 0x0e, 0x4b, 0x12, 0x22, 0x04, 0x61, 0xd4, 0x1a, 0x41, 0x18, 0xe4, 0x5f, 0x33,
|
||||
0xd6, 0x7b, 0x8a, 0xc9, 0xf9, 0x06, 0xc0, 0x7b, 0xb9, 0xb4, 0x27, 0xa9, 0x14, 0x12, 0xd1, 0x90,
|
||||
0xd0, 0xe8, 0xa9, 0x25, 0x51, 0x29, 0x5a, 0xcc, 0x15, 0xad, 0xc6, 0x48, 0x0c, 0x1e, 0x8d, 0x30,
|
||||
0x95, 0xd6, 0x6b, 0xf0, 0x85, 0xd1, 0xc4, 0xec, 0x9b, 0x34, 0x83, 0x2c, 0xcd, 0x0b, 0xb9, 0xbd,
|
||||
0x97, 0x99, 0xad, 0x0f, 0xe0, 0xf5, 0x35, 0x8e, 0x02, 0x35, 0x01, 0x66, 0x2f, 0xb4, 0xfe, 0xf3,
|
||||
0xa8, 0x7a, 0x39, 0x84, 0xf3, 0x25, 0x80, 0xe5, 0x0b, 0x14, 0x09, 0xeb, 0x73, 0x78, 0x7b, 0x2a,
|
||||
0x49, 0x28, 0x87, 0x8f, 0x33, 0x8f, 0xc9, 0xd5, 0x9b, 0xee, 0x25, 0x5b, 0xd9, 0xbd, 0x00, 0xb2,
|
||||
0x7d, 0x43, 0xe9, 0xd4, 0x09, 0x29, 0x8f, 0x2e, 0xa0, 0x74, 0xb6, 0x01, 0xbc, 0xf6, 0x2e, 0xc6,
|
||||
0x3d, 0xc6, 0x62, 0xeb, 0x0b, 0x38, 0x3f, 0xdd, 0xb3, 0x43, 0xc6, 0xe2, 0x19, 0x97, 0x68, 0xba,
|
||||
0xd5, 0x15, 0xbd, 0xf3, 0x0b, 0x80, 0x95, 0x2e, 0x8e, 0x71, 0x94, 0x69, 0x94, 0x88, 0x4b, 0x42,
|
||||
0xa3, 0xf7, 0xe9, 0x5a, 0x36, 0xbe, 0x43, 0x8e, 0x47, 0x84, 0xa9, 0xd5, 0x79, 0xba, 0x52, 0xf3,
|
||||
0x13, 0xb3, 0x29, 0xd4, 0x63, 0xf8, 0xac, 0x90, 0x68, 0x1d, 0x9b, 0x2a, 0x5d, 0xf5, 0x85, 0xd0,
|
||||
0x20, 0x56, 0x17, 0x96, 0x06, 0x98, 0x44, 0x03, 0x99, 0xed, 0xe7, 0x62, 0xfb, 0x8d, 0xbf, 0x8f,
|
||||
0xea, 0x0b, 0x01, 0xc7, 0x6a, 0xa5, 0x50, 0x5f, 0xbb, 0x7e, 0x3c, 0xd9, 0x5d, 0x3e, 0x6f, 0xd3,
|
||||
0x20, 0xe6, 0xae, 0xf3, 0x17, 0x80, 0x77, 0x4d, 0x58, 0x84, 0xd1, 0x3c, 0x40, 0xb3, 0xa4, 0x3f,
|
||||
0x84, 0xb7, 0xa6, 0x25, 0x57, 0x5b, 0x1a, 0x0b, 0x61, 0xde, 0xb7, 0x97, 0x0f, 0xf7, 0x56, 0x5e,
|
||||
0x32, 0xd2, 0xa6, 0xd3, 0xae, 0x8f, 0xac, 0x4a, 0xae, 0x86, 0x6a, 0xda, 0xc1, 0xc6, 0x6e, 0x51,
|
||||
0x58, 0xca, 0x1f, 0xb0, 0x59, 0xd6, 0xce, 0xb0, 0x3c, 0x28, 0x6e, 0xff, 0x50, 0x2f, 0xb4, 0x9f,
|
||||
0xec, 0x8c, 0x6d, 0xb0, 0x3f, 0xb6, 0xc1, 0xc1, 0xd8, 0x06, 0x7f, 0x8e, 0x6d, 0xf0, 0xed, 0xb1,
|
||||
0x5d, 0x38, 0x38, 0xb6, 0x0b, 0xbf, 0x1d, 0xdb, 0x85, 0x4f, 0x5a, 0x97, 0xa2, 0x9f, 0x7b, 0x61,
|
||||
0x32, 0xb2, 0x7e, 0x29, 0xfb, 0x11, 0xf0, 0xd6, 0x3f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x1f, 0xc6,
|
||||
0x8b, 0x82, 0xb7, 0x08, 0x00, 0x00,
|
||||
}
|
||||
|
||||
func (this *Params) Equal(that interface{}) bool {
|
||||
@ -1012,42 +907,6 @@ func (this *DelegationDelegatorReward) Equal(that interface{}) bool {
|
||||
}
|
||||
return true
|
||||
}
|
||||
func (this *CommunityPoolSpendProposalWithDeposit) Equal(that interface{}) bool {
|
||||
if that == nil {
|
||||
return this == nil
|
||||
}
|
||||
|
||||
that1, ok := that.(*CommunityPoolSpendProposalWithDeposit)
|
||||
if !ok {
|
||||
that2, ok := that.(CommunityPoolSpendProposalWithDeposit)
|
||||
if ok {
|
||||
that1 = &that2
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
}
|
||||
if that1 == nil {
|
||||
return this == nil
|
||||
} else if this == nil {
|
||||
return false
|
||||
}
|
||||
if this.Title != that1.Title {
|
||||
return false
|
||||
}
|
||||
if this.Description != that1.Description {
|
||||
return false
|
||||
}
|
||||
if this.Recipient != that1.Recipient {
|
||||
return false
|
||||
}
|
||||
if this.Amount != that1.Amount {
|
||||
return false
|
||||
}
|
||||
if this.Deposit != that1.Deposit {
|
||||
return false
|
||||
}
|
||||
return true
|
||||
}
|
||||
func (m *Params) Marshal() (dAtA []byte, err error) {
|
||||
size := m.Size()
|
||||
dAtA = make([]byte, size)
|
||||
@ -1381,64 +1240,6 @@ func (m *FeePool) MarshalToSizedBuffer(dAtA []byte) (int, error) {
|
||||
return len(dAtA) - i, nil
|
||||
}
|
||||
|
||||
func (m *CommunityPoolSpendProposal) Marshal() (dAtA []byte, err error) {
|
||||
size := m.Size()
|
||||
dAtA = make([]byte, size)
|
||||
n, err := m.MarshalToSizedBuffer(dAtA[:size])
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return dAtA[:n], nil
|
||||
}
|
||||
|
||||
func (m *CommunityPoolSpendProposal) MarshalTo(dAtA []byte) (int, error) {
|
||||
size := m.Size()
|
||||
return m.MarshalToSizedBuffer(dAtA[:size])
|
||||
}
|
||||
|
||||
func (m *CommunityPoolSpendProposal) MarshalToSizedBuffer(dAtA []byte) (int, error) {
|
||||
i := len(dAtA)
|
||||
_ = i
|
||||
var l int
|
||||
_ = l
|
||||
if len(m.Amount) > 0 {
|
||||
for iNdEx := len(m.Amount) - 1; iNdEx >= 0; iNdEx-- {
|
||||
{
|
||||
size, err := m.Amount[iNdEx].MarshalToSizedBuffer(dAtA[:i])
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
i -= size
|
||||
i = encodeVarintDistribution(dAtA, i, uint64(size))
|
||||
}
|
||||
i--
|
||||
dAtA[i] = 0x22
|
||||
}
|
||||
}
|
||||
if len(m.Recipient) > 0 {
|
||||
i -= len(m.Recipient)
|
||||
copy(dAtA[i:], m.Recipient)
|
||||
i = encodeVarintDistribution(dAtA, i, uint64(len(m.Recipient)))
|
||||
i--
|
||||
dAtA[i] = 0x1a
|
||||
}
|
||||
if len(m.Description) > 0 {
|
||||
i -= len(m.Description)
|
||||
copy(dAtA[i:], m.Description)
|
||||
i = encodeVarintDistribution(dAtA, i, uint64(len(m.Description)))
|
||||
i--
|
||||
dAtA[i] = 0x12
|
||||
}
|
||||
if len(m.Title) > 0 {
|
||||
i -= len(m.Title)
|
||||
copy(dAtA[i:], m.Title)
|
||||
i = encodeVarintDistribution(dAtA, i, uint64(len(m.Title)))
|
||||
i--
|
||||
dAtA[i] = 0xa
|
||||
}
|
||||
return len(dAtA) - i, nil
|
||||
}
|
||||
|
||||
func (m *DelegatorStartingInfo) Marshal() (dAtA []byte, err error) {
|
||||
size := m.Size()
|
||||
dAtA = make([]byte, size)
|
||||
@ -1526,64 +1327,6 @@ func (m *DelegationDelegatorReward) MarshalToSizedBuffer(dAtA []byte) (int, erro
|
||||
return len(dAtA) - i, nil
|
||||
}
|
||||
|
||||
func (m *CommunityPoolSpendProposalWithDeposit) Marshal() (dAtA []byte, err error) {
|
||||
size := m.Size()
|
||||
dAtA = make([]byte, size)
|
||||
n, err := m.MarshalToSizedBuffer(dAtA[:size])
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return dAtA[:n], nil
|
||||
}
|
||||
|
||||
func (m *CommunityPoolSpendProposalWithDeposit) MarshalTo(dAtA []byte) (int, error) {
|
||||
size := m.Size()
|
||||
return m.MarshalToSizedBuffer(dAtA[:size])
|
||||
}
|
||||
|
||||
func (m *CommunityPoolSpendProposalWithDeposit) MarshalToSizedBuffer(dAtA []byte) (int, error) {
|
||||
i := len(dAtA)
|
||||
_ = i
|
||||
var l int
|
||||
_ = l
|
||||
if len(m.Deposit) > 0 {
|
||||
i -= len(m.Deposit)
|
||||
copy(dAtA[i:], m.Deposit)
|
||||
i = encodeVarintDistribution(dAtA, i, uint64(len(m.Deposit)))
|
||||
i--
|
||||
dAtA[i] = 0x2a
|
||||
}
|
||||
if len(m.Amount) > 0 {
|
||||
i -= len(m.Amount)
|
||||
copy(dAtA[i:], m.Amount)
|
||||
i = encodeVarintDistribution(dAtA, i, uint64(len(m.Amount)))
|
||||
i--
|
||||
dAtA[i] = 0x22
|
||||
}
|
||||
if len(m.Recipient) > 0 {
|
||||
i -= len(m.Recipient)
|
||||
copy(dAtA[i:], m.Recipient)
|
||||
i = encodeVarintDistribution(dAtA, i, uint64(len(m.Recipient)))
|
||||
i--
|
||||
dAtA[i] = 0x1a
|
||||
}
|
||||
if len(m.Description) > 0 {
|
||||
i -= len(m.Description)
|
||||
copy(dAtA[i:], m.Description)
|
||||
i = encodeVarintDistribution(dAtA, i, uint64(len(m.Description)))
|
||||
i--
|
||||
dAtA[i] = 0x12
|
||||
}
|
||||
if len(m.Title) > 0 {
|
||||
i -= len(m.Title)
|
||||
copy(dAtA[i:], m.Title)
|
||||
i = encodeVarintDistribution(dAtA, i, uint64(len(m.Title)))
|
||||
i--
|
||||
dAtA[i] = 0xa
|
||||
}
|
||||
return len(dAtA) - i, nil
|
||||
}
|
||||
|
||||
func encodeVarintDistribution(dAtA []byte, offset int, v uint64) int {
|
||||
offset -= sovDistribution(v)
|
||||
base := offset
|
||||
@ -1723,33 +1466,6 @@ func (m *FeePool) Size() (n int) {
|
||||
return n
|
||||
}
|
||||
|
||||
func (m *CommunityPoolSpendProposal) Size() (n int) {
|
||||
if m == nil {
|
||||
return 0
|
||||
}
|
||||
var l int
|
||||
_ = l
|
||||
l = len(m.Title)
|
||||
if l > 0 {
|
||||
n += 1 + l + sovDistribution(uint64(l))
|
||||
}
|
||||
l = len(m.Description)
|
||||
if l > 0 {
|
||||
n += 1 + l + sovDistribution(uint64(l))
|
||||
}
|
||||
l = len(m.Recipient)
|
||||
if l > 0 {
|
||||
n += 1 + l + sovDistribution(uint64(l))
|
||||
}
|
||||
if len(m.Amount) > 0 {
|
||||
for _, e := range m.Amount {
|
||||
l = e.Size()
|
||||
n += 1 + l + sovDistribution(uint64(l))
|
||||
}
|
||||
}
|
||||
return n
|
||||
}
|
||||
|
||||
func (m *DelegatorStartingInfo) Size() (n int) {
|
||||
if m == nil {
|
||||
return 0
|
||||
@ -1786,35 +1502,6 @@ func (m *DelegationDelegatorReward) Size() (n int) {
|
||||
return n
|
||||
}
|
||||
|
||||
func (m *CommunityPoolSpendProposalWithDeposit) Size() (n int) {
|
||||
if m == nil {
|
||||
return 0
|
||||
}
|
||||
var l int
|
||||
_ = l
|
||||
l = len(m.Title)
|
||||
if l > 0 {
|
||||
n += 1 + l + sovDistribution(uint64(l))
|
||||
}
|
||||
l = len(m.Description)
|
||||
if l > 0 {
|
||||
n += 1 + l + sovDistribution(uint64(l))
|
||||
}
|
||||
l = len(m.Recipient)
|
||||
if l > 0 {
|
||||
n += 1 + l + sovDistribution(uint64(l))
|
||||
}
|
||||
l = len(m.Amount)
|
||||
if l > 0 {
|
||||
n += 1 + l + sovDistribution(uint64(l))
|
||||
}
|
||||
l = len(m.Deposit)
|
||||
if l > 0 {
|
||||
n += 1 + l + sovDistribution(uint64(l))
|
||||
}
|
||||
return n
|
||||
}
|
||||
|
||||
func sovDistribution(x uint64) (n int) {
|
||||
return (math_bits.Len64(x|1) + 6) / 7
|
||||
}
|
||||
@ -2638,186 +2325,6 @@ func (m *FeePool) Unmarshal(dAtA []byte) error {
|
||||
}
|
||||
return nil
|
||||
}
|
||||
func (m *CommunityPoolSpendProposal) Unmarshal(dAtA []byte) error {
|
||||
l := len(dAtA)
|
||||
iNdEx := 0
|
||||
for iNdEx < l {
|
||||
preIndex := iNdEx
|
||||
var wire uint64
|
||||
for shift := uint(0); ; shift += 7 {
|
||||
if shift >= 64 {
|
||||
return ErrIntOverflowDistribution
|
||||
}
|
||||
if iNdEx >= l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
b := dAtA[iNdEx]
|
||||
iNdEx++
|
||||
wire |= uint64(b&0x7F) << shift
|
||||
if b < 0x80 {
|
||||
break
|
||||
}
|
||||
}
|
||||
fieldNum := int32(wire >> 3)
|
||||
wireType := int(wire & 0x7)
|
||||
if wireType == 4 {
|
||||
return fmt.Errorf("proto: CommunityPoolSpendProposal: wiretype end group for non-group")
|
||||
}
|
||||
if fieldNum <= 0 {
|
||||
return fmt.Errorf("proto: CommunityPoolSpendProposal: illegal tag %d (wire type %d)", fieldNum, wire)
|
||||
}
|
||||
switch fieldNum {
|
||||
case 1:
|
||||
if wireType != 2 {
|
||||
return fmt.Errorf("proto: wrong wireType = %d for field Title", wireType)
|
||||
}
|
||||
var stringLen uint64
|
||||
for shift := uint(0); ; shift += 7 {
|
||||
if shift >= 64 {
|
||||
return ErrIntOverflowDistribution
|
||||
}
|
||||
if iNdEx >= l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
b := dAtA[iNdEx]
|
||||
iNdEx++
|
||||
stringLen |= uint64(b&0x7F) << shift
|
||||
if b < 0x80 {
|
||||
break
|
||||
}
|
||||
}
|
||||
intStringLen := int(stringLen)
|
||||
if intStringLen < 0 {
|
||||
return ErrInvalidLengthDistribution
|
||||
}
|
||||
postIndex := iNdEx + intStringLen
|
||||
if postIndex < 0 {
|
||||
return ErrInvalidLengthDistribution
|
||||
}
|
||||
if postIndex > l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
m.Title = string(dAtA[iNdEx:postIndex])
|
||||
iNdEx = postIndex
|
||||
case 2:
|
||||
if wireType != 2 {
|
||||
return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType)
|
||||
}
|
||||
var stringLen uint64
|
||||
for shift := uint(0); ; shift += 7 {
|
||||
if shift >= 64 {
|
||||
return ErrIntOverflowDistribution
|
||||
}
|
||||
if iNdEx >= l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
b := dAtA[iNdEx]
|
||||
iNdEx++
|
||||
stringLen |= uint64(b&0x7F) << shift
|
||||
if b < 0x80 {
|
||||
break
|
||||
}
|
||||
}
|
||||
intStringLen := int(stringLen)
|
||||
if intStringLen < 0 {
|
||||
return ErrInvalidLengthDistribution
|
||||
}
|
||||
postIndex := iNdEx + intStringLen
|
||||
if postIndex < 0 {
|
||||
return ErrInvalidLengthDistribution
|
||||
}
|
||||
if postIndex > l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
m.Description = string(dAtA[iNdEx:postIndex])
|
||||
iNdEx = postIndex
|
||||
case 3:
|
||||
if wireType != 2 {
|
||||
return fmt.Errorf("proto: wrong wireType = %d for field Recipient", wireType)
|
||||
}
|
||||
var stringLen uint64
|
||||
for shift := uint(0); ; shift += 7 {
|
||||
if shift >= 64 {
|
||||
return ErrIntOverflowDistribution
|
||||
}
|
||||
if iNdEx >= l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
b := dAtA[iNdEx]
|
||||
iNdEx++
|
||||
stringLen |= uint64(b&0x7F) << shift
|
||||
if b < 0x80 {
|
||||
break
|
||||
}
|
||||
}
|
||||
intStringLen := int(stringLen)
|
||||
if intStringLen < 0 {
|
||||
return ErrInvalidLengthDistribution
|
||||
}
|
||||
postIndex := iNdEx + intStringLen
|
||||
if postIndex < 0 {
|
||||
return ErrInvalidLengthDistribution
|
||||
}
|
||||
if postIndex > l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
m.Recipient = string(dAtA[iNdEx:postIndex])
|
||||
iNdEx = postIndex
|
||||
case 4:
|
||||
if wireType != 2 {
|
||||
return fmt.Errorf("proto: wrong wireType = %d for field Amount", wireType)
|
||||
}
|
||||
var msglen int
|
||||
for shift := uint(0); ; shift += 7 {
|
||||
if shift >= 64 {
|
||||
return ErrIntOverflowDistribution
|
||||
}
|
||||
if iNdEx >= l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
b := dAtA[iNdEx]
|
||||
iNdEx++
|
||||
msglen |= int(b&0x7F) << shift
|
||||
if b < 0x80 {
|
||||
break
|
||||
}
|
||||
}
|
||||
if msglen < 0 {
|
||||
return ErrInvalidLengthDistribution
|
||||
}
|
||||
postIndex := iNdEx + msglen
|
||||
if postIndex < 0 {
|
||||
return ErrInvalidLengthDistribution
|
||||
}
|
||||
if postIndex > l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
m.Amount = append(m.Amount, types.Coin{})
|
||||
if err := m.Amount[len(m.Amount)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
|
||||
return err
|
||||
}
|
||||
iNdEx = postIndex
|
||||
default:
|
||||
iNdEx = preIndex
|
||||
skippy, err := skipDistribution(dAtA[iNdEx:])
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if (skippy < 0) || (iNdEx+skippy) < 0 {
|
||||
return ErrInvalidLengthDistribution
|
||||
}
|
||||
if (iNdEx + skippy) > l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
iNdEx += skippy
|
||||
}
|
||||
}
|
||||
|
||||
if iNdEx > l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
return nil
|
||||
}
|
||||
func (m *DelegatorStartingInfo) Unmarshal(dAtA []byte) error {
|
||||
l := len(dAtA)
|
||||
iNdEx := 0
|
||||
@ -3056,216 +2563,6 @@ func (m *DelegationDelegatorReward) Unmarshal(dAtA []byte) error {
|
||||
}
|
||||
return nil
|
||||
}
|
||||
func (m *CommunityPoolSpendProposalWithDeposit) Unmarshal(dAtA []byte) error {
|
||||
l := len(dAtA)
|
||||
iNdEx := 0
|
||||
for iNdEx < l {
|
||||
preIndex := iNdEx
|
||||
var wire uint64
|
||||
for shift := uint(0); ; shift += 7 {
|
||||
if shift >= 64 {
|
||||
return ErrIntOverflowDistribution
|
||||
}
|
||||
if iNdEx >= l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
b := dAtA[iNdEx]
|
||||
iNdEx++
|
||||
wire |= uint64(b&0x7F) << shift
|
||||
if b < 0x80 {
|
||||
break
|
||||
}
|
||||
}
|
||||
fieldNum := int32(wire >> 3)
|
||||
wireType := int(wire & 0x7)
|
||||
if wireType == 4 {
|
||||
return fmt.Errorf("proto: CommunityPoolSpendProposalWithDeposit: wiretype end group for non-group")
|
||||
}
|
||||
if fieldNum <= 0 {
|
||||
return fmt.Errorf("proto: CommunityPoolSpendProposalWithDeposit: illegal tag %d (wire type %d)", fieldNum, wire)
|
||||
}
|
||||
switch fieldNum {
|
||||
case 1:
|
||||
if wireType != 2 {
|
||||
return fmt.Errorf("proto: wrong wireType = %d for field Title", wireType)
|
||||
}
|
||||
var stringLen uint64
|
||||
for shift := uint(0); ; shift += 7 {
|
||||
if shift >= 64 {
|
||||
return ErrIntOverflowDistribution
|
||||
}
|
||||
if iNdEx >= l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
b := dAtA[iNdEx]
|
||||
iNdEx++
|
||||
stringLen |= uint64(b&0x7F) << shift
|
||||
if b < 0x80 {
|
||||
break
|
||||
}
|
||||
}
|
||||
intStringLen := int(stringLen)
|
||||
if intStringLen < 0 {
|
||||
return ErrInvalidLengthDistribution
|
||||
}
|
||||
postIndex := iNdEx + intStringLen
|
||||
if postIndex < 0 {
|
||||
return ErrInvalidLengthDistribution
|
||||
}
|
||||
if postIndex > l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
m.Title = string(dAtA[iNdEx:postIndex])
|
||||
iNdEx = postIndex
|
||||
case 2:
|
||||
if wireType != 2 {
|
||||
return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType)
|
||||
}
|
||||
var stringLen uint64
|
||||
for shift := uint(0); ; shift += 7 {
|
||||
if shift >= 64 {
|
||||
return ErrIntOverflowDistribution
|
||||
}
|
||||
if iNdEx >= l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
b := dAtA[iNdEx]
|
||||
iNdEx++
|
||||
stringLen |= uint64(b&0x7F) << shift
|
||||
if b < 0x80 {
|
||||
break
|
||||
}
|
||||
}
|
||||
intStringLen := int(stringLen)
|
||||
if intStringLen < 0 {
|
||||
return ErrInvalidLengthDistribution
|
||||
}
|
||||
postIndex := iNdEx + intStringLen
|
||||
if postIndex < 0 {
|
||||
return ErrInvalidLengthDistribution
|
||||
}
|
||||
if postIndex > l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
m.Description = string(dAtA[iNdEx:postIndex])
|
||||
iNdEx = postIndex
|
||||
case 3:
|
||||
if wireType != 2 {
|
||||
return fmt.Errorf("proto: wrong wireType = %d for field Recipient", wireType)
|
||||
}
|
||||
var stringLen uint64
|
||||
for shift := uint(0); ; shift += 7 {
|
||||
if shift >= 64 {
|
||||
return ErrIntOverflowDistribution
|
||||
}
|
||||
if iNdEx >= l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
b := dAtA[iNdEx]
|
||||
iNdEx++
|
||||
stringLen |= uint64(b&0x7F) << shift
|
||||
if b < 0x80 {
|
||||
break
|
||||
}
|
||||
}
|
||||
intStringLen := int(stringLen)
|
||||
if intStringLen < 0 {
|
||||
return ErrInvalidLengthDistribution
|
||||
}
|
||||
postIndex := iNdEx + intStringLen
|
||||
if postIndex < 0 {
|
||||
return ErrInvalidLengthDistribution
|
||||
}
|
||||
if postIndex > l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
m.Recipient = string(dAtA[iNdEx:postIndex])
|
||||
iNdEx = postIndex
|
||||
case 4:
|
||||
if wireType != 2 {
|
||||
return fmt.Errorf("proto: wrong wireType = %d for field Amount", wireType)
|
||||
}
|
||||
var stringLen uint64
|
||||
for shift := uint(0); ; shift += 7 {
|
||||
if shift >= 64 {
|
||||
return ErrIntOverflowDistribution
|
||||
}
|
||||
if iNdEx >= l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
b := dAtA[iNdEx]
|
||||
iNdEx++
|
||||
stringLen |= uint64(b&0x7F) << shift
|
||||
if b < 0x80 {
|
||||
break
|
||||
}
|
||||
}
|
||||
intStringLen := int(stringLen)
|
||||
if intStringLen < 0 {
|
||||
return ErrInvalidLengthDistribution
|
||||
}
|
||||
postIndex := iNdEx + intStringLen
|
||||
if postIndex < 0 {
|
||||
return ErrInvalidLengthDistribution
|
||||
}
|
||||
if postIndex > l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
m.Amount = string(dAtA[iNdEx:postIndex])
|
||||
iNdEx = postIndex
|
||||
case 5:
|
||||
if wireType != 2 {
|
||||
return fmt.Errorf("proto: wrong wireType = %d for field Deposit", wireType)
|
||||
}
|
||||
var stringLen uint64
|
||||
for shift := uint(0); ; shift += 7 {
|
||||
if shift >= 64 {
|
||||
return ErrIntOverflowDistribution
|
||||
}
|
||||
if iNdEx >= l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
b := dAtA[iNdEx]
|
||||
iNdEx++
|
||||
stringLen |= uint64(b&0x7F) << shift
|
||||
if b < 0x80 {
|
||||
break
|
||||
}
|
||||
}
|
||||
intStringLen := int(stringLen)
|
||||
if intStringLen < 0 {
|
||||
return ErrInvalidLengthDistribution
|
||||
}
|
||||
postIndex := iNdEx + intStringLen
|
||||
if postIndex < 0 {
|
||||
return ErrInvalidLengthDistribution
|
||||
}
|
||||
if postIndex > l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
m.Deposit = string(dAtA[iNdEx:postIndex])
|
||||
iNdEx = postIndex
|
||||
default:
|
||||
iNdEx = preIndex
|
||||
skippy, err := skipDistribution(dAtA[iNdEx:])
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if (skippy < 0) || (iNdEx+skippy) < 0 {
|
||||
return ErrInvalidLengthDistribution
|
||||
}
|
||||
if (iNdEx + skippy) > l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
iNdEx += skippy
|
||||
}
|
||||
}
|
||||
|
||||
if iNdEx > l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
return nil
|
||||
}
|
||||
func skipDistribution(dAtA []byte) (n int, err error) {
|
||||
l := len(dAtA)
|
||||
iNdEx := 0
|
||||
|
||||
@ -21,6 +21,7 @@ type AccountKeeper interface {
|
||||
|
||||
// BankKeeper defines the expected interface needed to retrieve account balances.
|
||||
type BankKeeper interface {
|
||||
MintCoins(ctx context.Context, moduleName string, amt sdk.Coins) error
|
||||
GetAllBalances(ctx context.Context, addr sdk.AccAddress) sdk.Coins
|
||||
|
||||
SpendableCoins(ctx context.Context, addr sdk.AccAddress) sdk.Coins
|
||||
@ -32,6 +33,13 @@ type BankKeeper interface {
|
||||
BlockedAddr(addr sdk.AccAddress) bool
|
||||
}
|
||||
|
||||
// PoolKeeper defines the expected interface needed to fund & distribute pool balances.
|
||||
type PoolKeeper interface {
|
||||
FundCommunityPool(ctx context.Context, amount sdk.Coins, sender sdk.AccAddress) error
|
||||
DistributeFromFeePool(ctx context.Context, amount sdk.Coins, receiveAddr sdk.AccAddress) error
|
||||
GetCommunityPool(ctx context.Context) (sdk.Coins, error)
|
||||
}
|
||||
|
||||
// StakingKeeper expected staking keeper (noalias)
|
||||
type StakingKeeper interface {
|
||||
ValidatorAddressCodec() address.Codec
|
||||
|
||||
@ -11,6 +11,7 @@ var (
|
||||
_ sdk.Msg = (*MsgWithdrawValidatorCommission)(nil)
|
||||
_ sdk.Msg = (*MsgUpdateParams)(nil)
|
||||
_ sdk.Msg = (*MsgCommunityPoolSpend)(nil)
|
||||
_ sdk.Msg = (*MsgFundCommunityPool)(nil)
|
||||
_ sdk.Msg = (*MsgDepositValidatorRewardsPool)(nil)
|
||||
)
|
||||
|
||||
|
||||
@ -869,6 +869,11 @@ var xxx_messageInfo_QueryDelegatorWithdrawAddressResponse proto.InternalMessageI
|
||||
|
||||
// QueryCommunityPoolRequest is the request type for the Query/CommunityPool RPC
|
||||
// method.
|
||||
//
|
||||
// Deprecated
|
||||
// Since: cosmos-sdk 0.50
|
||||
//
|
||||
// Deprecated: Do not use.
|
||||
type QueryCommunityPoolRequest struct {
|
||||
}
|
||||
|
||||
@ -907,6 +912,11 @@ var xxx_messageInfo_QueryCommunityPoolRequest proto.InternalMessageInfo
|
||||
|
||||
// QueryCommunityPoolResponse is the response type for the Query/CommunityPool
|
||||
// RPC method.
|
||||
//
|
||||
// Deprecated
|
||||
// Since: cosmos-sdk 0.50
|
||||
//
|
||||
// Deprecated: Do not use.
|
||||
type QueryCommunityPoolResponse struct {
|
||||
// pool defines community pool's coins.
|
||||
Pool github_com_cosmos_cosmos_sdk_types.DecCoins `protobuf:"bytes,1,rep,name=pool,proto3,castrepeated=github.com/cosmos/cosmos-sdk/types.DecCoins" json:"pool"`
|
||||
@ -980,87 +990,87 @@ func init() {
|
||||
}
|
||||
|
||||
var fileDescriptor_5efd02cbc06efdc9 = []byte{
|
||||
// 1269 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x58, 0x4f, 0x6c, 0x1b, 0xc5,
|
||||
0x17, 0xce, 0xb8, 0x69, 0xfa, 0xcb, 0xeb, 0xaf, 0x24, 0x9e, 0x46, 0xc8, 0xd9, 0xa4, 0x4e, 0x70,
|
||||
0x68, 0x13, 0x35, 0x8a, 0xb7, 0x49, 0xa4, 0x52, 0x12, 0x2a, 0x88, 0x9d, 0x84, 0xa2, 0x46, 0x69,
|
||||
0xeb, 0x16, 0x22, 0x40, 0x95, 0xb5, 0xf6, 0x6e, 0x36, 0x0b, 0xf6, 0x8e, 0xb3, 0xb3, 0x8e, 0x89,
|
||||
0xaa, 0x5e, 0xca, 0xa5, 0xf4, 0x84, 0xe0, 0xc2, 0x91, 0x23, 0xe2, 0xc4, 0xa1, 0x9c, 0xe1, 0xc0,
|
||||
0xa1, 0xc7, 0xaa, 0x48, 0x88, 0x13, 0xa0, 0x04, 0x89, 0x72, 0x00, 0x71, 0xe3, 0x8a, 0x76, 0x66,
|
||||
0xd6, 0xde, 0xb5, 0xd7, 0xeb, 0x7f, 0xf2, 0x25, 0xb1, 0x66, 0xe7, 0x7d, 0xdf, 0xfb, 0xde, 0x7b,
|
||||
0x33, 0xfb, 0xd9, 0x30, 0x9b, 0x27, 0xb4, 0x48, 0xa8, 0xac, 0x1a, 0xd4, 0xb6, 0x8c, 0x5c, 0xd9,
|
||||
0x36, 0x88, 0x29, 0x1f, 0x2c, 0xe6, 0x34, 0x5b, 0x59, 0x94, 0xf7, 0xcb, 0x9a, 0x75, 0x98, 0x2c,
|
||||
0x59, 0xc4, 0x26, 0x78, 0x82, 0x6f, 0x4c, 0x7a, 0x37, 0x26, 0xc5, 0x46, 0xe9, 0xa2, 0x40, 0xc9,
|
||||
0x29, 0x54, 0xe3, 0x51, 0x55, 0x8c, 0x92, 0xa2, 0x1b, 0xa6, 0xc2, 0x76, 0x33, 0x20, 0x69, 0x4c,
|
||||
0x27, 0x3a, 0x61, 0x1f, 0x65, 0xe7, 0x93, 0x58, 0x9d, 0xd4, 0x09, 0xd1, 0x0b, 0x9a, 0xac, 0x94,
|
||||
0x0c, 0x59, 0x31, 0x4d, 0x62, 0xb3, 0x10, 0x2a, 0x9e, 0xc6, 0xbd, 0xf8, 0x2e, 0x72, 0x9e, 0x18,
|
||||
0x2e, 0x66, 0x32, 0x4c, 0x85, 0x2f, 0x63, 0xbe, 0x7f, 0x9c, 0xef, 0xcf, 0xf2, 0x34, 0x84, 0x32,
|
||||
0xfe, 0x28, 0xaa, 0x14, 0x0d, 0x93, 0xc8, 0xec, 0x2f, 0x5f, 0x4a, 0x8c, 0x01, 0xbe, 0xe5, 0x68,
|
||||
0xba, 0xa9, 0x58, 0x4a, 0x91, 0x66, 0xb4, 0xfd, 0xb2, 0x46, 0xed, 0xc4, 0x5d, 0x38, 0xeb, 0x5b,
|
||||
0xa5, 0x25, 0x62, 0x52, 0x0d, 0x6f, 0xc2, 0x50, 0x89, 0xad, 0xc4, 0xd0, 0x34, 0x9a, 0x3b, 0xbd,
|
||||
0x34, 0x93, 0x0c, 0x29, 0x5c, 0x92, 0x07, 0xa7, 0x86, 0x9f, 0xfc, 0x32, 0x35, 0xf0, 0xd5, 0x1f,
|
||||
0xdf, 0x5c, 0x44, 0x19, 0x11, 0x9d, 0xa8, 0xc0, 0x79, 0x06, 0xff, 0x8e, 0x52, 0x30, 0x54, 0xc5,
|
||||
0x26, 0xd6, 0xba, 0x27, 0xfe, 0x2d, 0x73, 0x97, 0x88, 0x3c, 0xf0, 0x36, 0x44, 0x0f, 0xdc, 0x3d,
|
||||
0x59, 0x45, 0x55, 0x2d, 0x8d, 0x72, 0xee, 0xe1, 0xd4, 0x4b, 0xcf, 0x1e, 0x2f, 0x9c, 0x13, 0xf4,
|
||||
0x55, 0x9c, 0x35, 0xbe, 0xe5, 0xb6, 0x6d, 0x19, 0xa6, 0x9e, 0x19, 0x3d, 0xa8, 0x5b, 0x4f, 0xfc,
|
||||
0x1d, 0x81, 0x0b, 0xad, 0x98, 0x85, 0xd6, 0x2d, 0x18, 0x25, 0x25, 0xcd, 0xea, 0x8e, 0x79, 0xc4,
|
||||
0x0d, 0x15, 0xcb, 0xf8, 0x01, 0x82, 0x28, 0xd5, 0x0a, 0xbb, 0xd9, 0x1c, 0x31, 0xd5, 0xac, 0xa5,
|
||||
0x55, 0x14, 0x4b, 0xa5, 0xb1, 0xc8, 0xf4, 0x89, 0xb9, 0xd3, 0x4b, 0x93, 0x6e, 0x15, 0x9d, 0x09,
|
||||
0xa8, 0x56, 0x6f, 0x5d, 0xcb, 0xa7, 0x89, 0x61, 0xa6, 0xae, 0x38, 0xe5, 0xfb, 0xfa, 0xd7, 0xa9,
|
||||
0x79, 0xdd, 0xb0, 0xf7, 0xca, 0xb9, 0x64, 0x9e, 0x14, 0x45, 0x53, 0xc5, 0xbf, 0x05, 0xaa, 0x7e,
|
||||
0x28, 0xdb, 0x87, 0x25, 0x8d, 0xba, 0x31, 0x94, 0x57, 0x7b, 0xc4, 0x21, 0x4c, 0x11, 0x53, 0xcd,
|
||||
0x70, 0x3a, 0xbc, 0x0f, 0x90, 0x27, 0xc5, 0xa2, 0x41, 0xa9, 0x41, 0xcc, 0xd8, 0x89, 0x36, 0xc8,
|
||||
0x97, 0xbb, 0x20, 0xcf, 0x78, 0x48, 0x12, 0x87, 0x30, 0xeb, 0xaf, 0xf7, 0x8d, 0xb2, 0x4d, 0x6d,
|
||||
0xc5, 0x54, 0x9d, 0x2a, 0xf1, 0xb4, 0xfa, 0xd5, 0xeb, 0x4f, 0x10, 0xcc, 0xb5, 0xe6, 0x16, 0xdd,
|
||||
0xbe, 0x0b, 0xa7, 0xdc, 0xa6, 0xf0, 0xd1, 0xbe, 0x12, 0x3a, 0xda, 0x21, 0x90, 0xde, 0x79, 0x77,
|
||||
0x31, 0x13, 0xfb, 0x30, 0xe5, 0x4f, 0x25, 0x5d, 0x2d, 0x51, 0xbf, 0xe4, 0x3f, 0x42, 0x30, 0xdd,
|
||||
0x9c, 0x53, 0xc8, 0xde, 0xf5, 0x4d, 0x04, 0x57, 0xbe, 0xda, 0x9e, 0xf2, 0xb5, 0x7c, 0xbe, 0x5c,
|
||||
0x2c, 0x17, 0x14, 0x5b, 0x53, 0x6b, 0xc0, 0x5e, 0xf1, 0xde, 0x31, 0x78, 0x14, 0x81, 0x49, 0x7f,
|
||||
0x32, 0xb7, 0x0b, 0x0a, 0xdd, 0xd3, 0xfa, 0xd5, 0x7c, 0x3c, 0x0b, 0x23, 0xd4, 0x56, 0x2c, 0xdb,
|
||||
0x30, 0xf5, 0xec, 0x9e, 0x66, 0xe8, 0x7b, 0x76, 0x2c, 0x32, 0x8d, 0xe6, 0x06, 0x33, 0x2f, 0xb8,
|
||||
0xcb, 0xd7, 0xd8, 0x2a, 0x9e, 0x81, 0x33, 0x1a, 0x6b, 0x9f, 0xbb, 0xed, 0x04, 0xdb, 0xf6, 0x7f,
|
||||
0xbe, 0x28, 0x36, 0x6d, 0x02, 0xd4, 0xae, 0xfa, 0xd8, 0x20, 0x2b, 0xd3, 0x05, 0xdf, 0xc1, 0xe1,
|
||||
0x6f, 0x93, 0xda, 0xcd, 0xa7, 0x6b, 0x42, 0x59, 0xc6, 0x13, 0xb9, 0x32, 0xf8, 0xf0, 0xcb, 0xa9,
|
||||
0x81, 0xc4, 0x77, 0x08, 0xce, 0x35, 0x29, 0x86, 0x68, 0xcb, 0xdb, 0x70, 0x8a, 0xf2, 0xa5, 0x18,
|
||||
0x62, 0xa7, 0xf4, 0x52, 0x7b, 0x3d, 0x61, 0x38, 0x1b, 0x07, 0x9a, 0x69, 0xfb, 0xa6, 0x50, 0x60,
|
||||
0xe1, 0x37, 0x7d, 0x32, 0x22, 0x4c, 0xc6, 0x6c, 0x4b, 0x19, 0x3c, 0x27, 0xaf, 0x8e, 0xc4, 0xf7,
|
||||
0xae, 0x82, 0x75, 0xad, 0xa0, 0xe9, 0x6c, 0xad, 0xee, 0x30, 0x6f, 0x40, 0x54, 0xe5, 0xcf, 0x1a,
|
||||
0xfa, 0x19, 0x7b, 0xf6, 0x78, 0x61, 0x4c, 0x90, 0xd6, 0xb5, 0xb1, 0x1a, 0xe2, 0xb6, 0x31, 0x70,
|
||||
0x2c, 0x22, 0x5d, 0x8f, 0xc5, 0xca, 0xff, 0x9c, 0x06, 0x3c, 0x77, 0x9a, 0xf0, 0x19, 0x82, 0x78,
|
||||
0x33, 0x09, 0xa2, 0x0b, 0x25, 0xef, 0x9d, 0xd0, 0xcf, 0x8b, 0xba, 0x7a, 0x4d, 0x94, 0x21, 0x51,
|
||||
0x97, 0xd3, 0x1d, 0x62, 0x2b, 0x85, 0xbe, 0xd4, 0xd6, 0x53, 0x8b, 0x7f, 0x10, 0xcc, 0x84, 0xf2,
|
||||
0x8a, 0x82, 0xbc, 0x5f, 0x5f, 0x90, 0xcb, 0xa1, 0x63, 0x59, 0x43, 0x5b, 0x77, 0xb9, 0x39, 0x62,
|
||||
0xd0, 0x15, 0x89, 0x0b, 0x70, 0xd2, 0x76, 0x48, 0xfb, 0xfc, 0x52, 0xe4, 0x24, 0x09, 0x4b, 0x5c,
|
||||
0xc8, 0xd5, 0xcc, 0xaa, 0x23, 0xd4, 0xbf, 0x32, 0x6f, 0x89, 0x0b, 0x39, 0x90, 0x53, 0x94, 0x38,
|
||||
0x0e, 0x50, 0x1d, 0x5a, 0x5e, 0xe5, 0xe1, 0x8c, 0x67, 0xc5, 0x83, 0x56, 0x81, 0x97, 0xfd, 0x68,
|
||||
0x3b, 0x86, 0xbd, 0xa7, 0x5a, 0x4a, 0x45, 0x10, 0xf7, 0x4d, 0xc6, 0x81, 0x30, 0x6f, 0xcd, 0x89,
|
||||
0x85, 0x96, 0x34, 0x8c, 0x56, 0xc4, 0xa3, 0xb6, 0x89, 0x47, 0x2a, 0x7e, 0x30, 0x0f, 0xef, 0x04,
|
||||
0x8c, 0x33, 0x5e, 0xe7, 0x6d, 0x53, 0x36, 0x0d, 0xfb, 0xf0, 0x26, 0x21, 0x05, 0xd7, 0xb0, 0x3e,
|
||||
0x44, 0x20, 0x05, 0x3d, 0x15, 0xa9, 0x7c, 0x00, 0x83, 0x25, 0x42, 0x0a, 0x7d, 0x3e, 0xc7, 0x8c,
|
||||
0x63, 0xe9, 0x87, 0x28, 0x9c, 0x64, 0xa9, 0xe0, 0x2f, 0x10, 0x0c, 0x71, 0x13, 0x8c, 0xe5, 0xd0,
|
||||
0x93, 0xd2, 0xe8, 0xc0, 0xa5, 0x4b, 0xed, 0x07, 0x70, 0x8d, 0x89, 0xf9, 0x07, 0x3f, 0xfe, 0xfe,
|
||||
0x79, 0xe4, 0x3c, 0x9e, 0x91, 0xc3, 0xbe, 0x30, 0x70, 0x07, 0x8e, 0xff, 0x44, 0x30, 0xde, 0xd4,
|
||||
0x03, 0xe3, 0x54, 0x6b, 0xf2, 0x56, 0xd6, 0x5d, 0x4a, 0xf7, 0x84, 0x21, 0x34, 0xa5, 0x99, 0xa6,
|
||||
0xab, 0x78, 0x35, 0x54, 0x53, 0xed, 0x7c, 0xc8, 0xf7, 0x1a, 0x5e, 0x17, 0xf7, 0xf1, 0xc7, 0x11,
|
||||
0x98, 0x08, 0x31, 0x6c, 0x78, 0xbd, 0x83, 0x4c, 0x9b, 0xda, 0x57, 0x69, 0xa3, 0x47, 0x14, 0xa1,
|
||||
0x78, 0x87, 0x29, 0xbe, 0x85, 0x6f, 0xf4, 0xa0, 0x58, 0x26, 0x35, 0x7c, 0xf7, 0xbb, 0x06, 0x3e,
|
||||
0x42, 0x70, 0x36, 0xc0, 0x0a, 0xe2, 0xd7, 0x3a, 0xc8, 0xbb, 0xc1, 0xb5, 0x4a, 0x57, 0xbb, 0x8c,
|
||||
0x16, 0x6a, 0xb7, 0x99, 0xda, 0x6b, 0x78, 0xb3, 0x17, 0xb5, 0x35, 0x9f, 0x89, 0x7f, 0x42, 0x30,
|
||||
0x5a, 0xef, 0xaa, 0xf0, 0xab, 0x1d, 0xe4, 0xe8, 0xb7, 0xa5, 0xd2, 0x4a, 0x37, 0xa1, 0x42, 0xdb,
|
||||
0x75, 0xa6, 0x6d, 0x03, 0xa7, 0x7b, 0xd1, 0xe6, 0x5a, 0xb7, 0xbf, 0x10, 0x44, 0x1b, 0x9c, 0x0a,
|
||||
0x6e, 0x23, 0xbd, 0x66, 0x0e, 0x4d, 0x5a, 0xed, 0x2a, 0x56, 0x68, 0xcb, 0x32, 0x6d, 0xef, 0xe2,
|
||||
0x9d, 0x50, 0x6d, 0xd5, 0x97, 0x08, 0x95, 0xef, 0x35, 0xbc, 0x83, 0xee, 0xcb, 0x62, 0x32, 0x03,
|
||||
0xcf, 0xec, 0x73, 0x04, 0x2f, 0x06, 0xbb, 0x11, 0xfc, 0x7a, 0x27, 0x89, 0x07, 0xf8, 0x27, 0xe9,
|
||||
0x8d, 0xee, 0x01, 0x3a, 0x6a, 0x6d, 0x7b, 0xf2, 0xd9, 0xc1, 0x0c, 0xb0, 0x04, 0xed, 0x1c, 0xcc,
|
||||
0xe6, 0xee, 0xa5, 0x9d, 0x83, 0x19, 0xe2, 0x43, 0xda, 0x3c, 0x98, 0x2d, 0x14, 0xd6, 0x66, 0x1b,
|
||||
0xff, 0x8b, 0x20, 0xd6, 0xcc, 0x30, 0xe0, 0xb5, 0x0e, 0x72, 0x0d, 0x76, 0x39, 0x52, 0xaa, 0x17,
|
||||
0x08, 0xa1, 0xf9, 0x0e, 0xd3, 0xbc, 0x8d, 0xb7, 0x7a, 0xd1, 0x5c, 0xef, 0x78, 0xf0, 0xb7, 0x08,
|
||||
0xce, 0xf8, 0x4c, 0x09, 0xbe, 0xdc, 0x3a, 0xd7, 0x20, 0x8f, 0x23, 0xbd, 0xd2, 0x71, 0x9c, 0x10,
|
||||
0xb6, 0xcc, 0x84, 0x2d, 0xe0, 0xf9, 0x50, 0x61, 0x79, 0x37, 0x36, 0xeb, 0xd8, 0x98, 0xd4, 0xf5,
|
||||
0x27, 0x47, 0x71, 0xf4, 0xf4, 0x28, 0x8e, 0x7e, 0x3b, 0x8a, 0xa3, 0x4f, 0x8f, 0xe3, 0x03, 0x4f,
|
||||
0x8f, 0xe3, 0x03, 0x3f, 0x1f, 0xc7, 0x07, 0xde, 0x5b, 0x0c, 0x35, 0x46, 0x1f, 0xf9, 0xd1, 0x99,
|
||||
0x4f, 0xca, 0x0d, 0xb1, 0x1f, 0x1b, 0x97, 0xff, 0x0b, 0x00, 0x00, 0xff, 0xff, 0x0e, 0x2b, 0x1c,
|
||||
0xf2, 0x92, 0x15, 0x00, 0x00,
|
||||
// 1277 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x58, 0x4d, 0x6c, 0x1b, 0x45,
|
||||
0x14, 0xce, 0xb8, 0x69, 0x4a, 0x5e, 0x29, 0x89, 0xa7, 0x11, 0x72, 0xb6, 0xa9, 0x13, 0x36, 0xb4,
|
||||
0x89, 0x1a, 0xc5, 0xdb, 0xa4, 0x52, 0x28, 0x09, 0x15, 0xc4, 0x4e, 0x42, 0x51, 0xa3, 0xb4, 0x75,
|
||||
0x0b, 0x11, 0xa0, 0xca, 0x5a, 0x7b, 0x37, 0xce, 0x82, 0xbd, 0xe3, 0xec, 0xac, 0x63, 0xa2, 0xaa,
|
||||
0x97, 0x72, 0x29, 0x15, 0x07, 0x04, 0x17, 0x8e, 0x1c, 0x11, 0x27, 0x0e, 0x3d, 0x70, 0x83, 0x1b,
|
||||
0x3d, 0x56, 0x45, 0x42, 0x9c, 0x00, 0x25, 0x48, 0x94, 0x03, 0x88, 0x1b, 0x57, 0xb4, 0x33, 0xb3,
|
||||
0xf6, 0xae, 0xbd, 0x5e, 0xff, 0xc9, 0x97, 0xc4, 0x7a, 0xfb, 0xde, 0xfb, 0xde, 0xf7, 0xde, 0x9b,
|
||||
0xd9, 0xcf, 0x86, 0x99, 0x1c, 0xa1, 0x45, 0x42, 0x15, 0xcd, 0xa0, 0xb6, 0x65, 0x64, 0xcb, 0xb6,
|
||||
0x41, 0x4c, 0x65, 0x7f, 0x21, 0xab, 0xdb, 0xea, 0x82, 0xb2, 0x57, 0xd6, 0xad, 0x83, 0x44, 0xc9,
|
||||
0x22, 0x36, 0xc1, 0x67, 0xb8, 0x63, 0xc2, 0xeb, 0x98, 0x10, 0x8e, 0xd2, 0x05, 0x91, 0x25, 0xab,
|
||||
0x52, 0x9d, 0x47, 0x55, 0x73, 0x94, 0xd4, 0xbc, 0x61, 0xaa, 0xcc, 0x9b, 0x25, 0x92, 0xc6, 0xf2,
|
||||
0x24, 0x4f, 0xd8, 0x47, 0xc5, 0xf9, 0x24, 0xac, 0x13, 0x79, 0x42, 0xf2, 0x05, 0x5d, 0x51, 0x4b,
|
||||
0x86, 0xa2, 0x9a, 0x26, 0xb1, 0x59, 0x08, 0x15, 0x4f, 0xe3, 0xde, 0xfc, 0x6e, 0xe6, 0x1c, 0x31,
|
||||
0xdc, 0x9c, 0x89, 0x30, 0x16, 0xbe, 0x8a, 0xb9, 0xff, 0x38, 0xf7, 0xcf, 0xf0, 0x32, 0x04, 0x33,
|
||||
0xfe, 0x28, 0xaa, 0x16, 0x0d, 0x93, 0x28, 0xec, 0x2f, 0x37, 0xc9, 0x63, 0x80, 0x6f, 0x3a, 0x9c,
|
||||
0x6e, 0xa8, 0x96, 0x5a, 0xa4, 0x69, 0x7d, 0xaf, 0xac, 0x53, 0x5b, 0xbe, 0x03, 0xa7, 0x7d, 0x56,
|
||||
0x5a, 0x22, 0x26, 0xd5, 0xf1, 0x06, 0x0c, 0x95, 0x98, 0x25, 0x86, 0xa6, 0xd0, 0xec, 0xc9, 0xc5,
|
||||
0xe9, 0x44, 0x48, 0xe3, 0x12, 0x3c, 0x38, 0x39, 0xfc, 0xf8, 0xd7, 0xc9, 0x81, 0xaf, 0xff, 0xfc,
|
||||
0xf6, 0x02, 0x4a, 0x8b, 0x68, 0xb9, 0x02, 0xe7, 0x58, 0xfa, 0x77, 0xd4, 0x82, 0xa1, 0xa9, 0x36,
|
||||
0xb1, 0xd6, 0x3c, 0xf1, 0x6f, 0x99, 0x3b, 0x44, 0xd4, 0x81, 0xb7, 0x20, 0xba, 0xef, 0xfa, 0x64,
|
||||
0x54, 0x4d, 0xb3, 0x74, 0xca, 0xb1, 0x87, 0x93, 0x2f, 0x3d, 0x7d, 0x34, 0x7f, 0x56, 0xc0, 0x57,
|
||||
0xf3, 0xac, 0x72, 0x97, 0x5b, 0xb6, 0x65, 0x98, 0xf9, 0xf4, 0xe8, 0x7e, 0x9d, 0x5d, 0xfe, 0x27,
|
||||
0x02, 0xe7, 0x5b, 0x21, 0x0b, 0xae, 0x9b, 0x30, 0x4a, 0x4a, 0xba, 0xd5, 0x1d, 0xf2, 0x88, 0x1b,
|
||||
0x2a, 0xcc, 0xf8, 0x3e, 0x82, 0x28, 0xd5, 0x0b, 0x3b, 0x99, 0x2c, 0x31, 0xb5, 0x8c, 0xa5, 0x57,
|
||||
0x54, 0x4b, 0xa3, 0xb1, 0xc8, 0xd4, 0xb1, 0xd9, 0x93, 0x8b, 0x13, 0x6e, 0x17, 0x9d, 0x0d, 0xa8,
|
||||
0x76, 0x6f, 0x4d, 0xcf, 0xa5, 0x88, 0x61, 0x26, 0x2f, 0x3b, 0xed, 0xfb, 0xe6, 0xb7, 0xc9, 0xb9,
|
||||
0xbc, 0x61, 0xef, 0x96, 0xb3, 0x89, 0x1c, 0x29, 0x8a, 0xa1, 0x8a, 0x7f, 0xf3, 0x54, 0xfb, 0x50,
|
||||
0xb1, 0x0f, 0x4a, 0x3a, 0x75, 0x63, 0x28, 0xef, 0xf6, 0x88, 0x03, 0x98, 0x24, 0xa6, 0x96, 0xe6,
|
||||
0x70, 0x78, 0x0f, 0x20, 0x47, 0x8a, 0x45, 0x83, 0x52, 0x83, 0x98, 0xb1, 0x63, 0x6d, 0x80, 0x5f,
|
||||
0xea, 0x02, 0x3c, 0xed, 0x01, 0x91, 0x0f, 0x60, 0xc6, 0xdf, 0xef, 0xeb, 0x65, 0x9b, 0xda, 0xaa,
|
||||
0xa9, 0x39, 0x5d, 0xe2, 0x65, 0xf5, 0x6b, 0xd6, 0x9f, 0x20, 0x98, 0x6d, 0x8d, 0x2d, 0xa6, 0x7d,
|
||||
0x07, 0x4e, 0xb8, 0x43, 0xe1, 0xab, 0x7d, 0x39, 0x74, 0xb5, 0x43, 0x52, 0x7a, 0xf7, 0xdd, 0xcd,
|
||||
0x29, 0xef, 0xc1, 0xa4, 0xbf, 0x94, 0x54, 0xb5, 0x45, 0xfd, 0xa2, 0xff, 0x10, 0xc1, 0x54, 0x73,
|
||||
0x4c, 0x41, 0x7b, 0xc7, 0xb7, 0x11, 0x9c, 0xf9, 0x4a, 0x7b, 0xcc, 0x57, 0x73, 0xb9, 0x72, 0xb1,
|
||||
0x5c, 0x50, 0x6d, 0x5d, 0xab, 0x25, 0xf6, 0x92, 0xf7, 0xae, 0xc1, 0xc3, 0x08, 0x4c, 0xf8, 0x8b,
|
||||
0xb9, 0x55, 0x50, 0xe9, 0xae, 0xde, 0xaf, 0xe1, 0xe3, 0x19, 0x18, 0xa1, 0xb6, 0x6a, 0xd9, 0x86,
|
||||
0x99, 0xcf, 0xec, 0xea, 0x46, 0x7e, 0xd7, 0x8e, 0x45, 0xa6, 0xd0, 0xec, 0x60, 0xfa, 0x05, 0xd7,
|
||||
0x7c, 0x95, 0x59, 0xf1, 0x34, 0x9c, 0xd2, 0xd9, 0xf8, 0x5c, 0xb7, 0x63, 0xcc, 0xed, 0x79, 0x6e,
|
||||
0x14, 0x4e, 0x1b, 0x00, 0xb5, 0xab, 0x3e, 0x36, 0xc8, 0xda, 0x74, 0xde, 0x77, 0x70, 0xf8, 0xdb,
|
||||
0xa4, 0x76, 0xf3, 0xe5, 0x75, 0xc1, 0x2c, 0xed, 0x89, 0x5c, 0x1e, 0x7c, 0xf0, 0xd5, 0xe4, 0x80,
|
||||
0xfc, 0x3d, 0x82, 0xb3, 0x4d, 0x9a, 0x21, 0xc6, 0xf2, 0x36, 0x9c, 0xa0, 0xdc, 0x14, 0x43, 0xec,
|
||||
0x94, 0x5e, 0x6c, 0x6f, 0x26, 0x2c, 0xcf, 0xfa, 0xbe, 0x6e, 0xda, 0xbe, 0x2d, 0x14, 0xb9, 0xf0,
|
||||
0x9b, 0x3e, 0x1a, 0x11, 0x46, 0x63, 0xa6, 0x25, 0x0d, 0x5e, 0x93, 0x97, 0x87, 0xfc, 0x83, 0xcb,
|
||||
0x60, 0x4d, 0x2f, 0xe8, 0x79, 0x66, 0xab, 0x3b, 0xcc, 0xeb, 0x10, 0xd5, 0xf8, 0xb3, 0x86, 0x79,
|
||||
0xc6, 0x9e, 0x3e, 0x9a, 0x1f, 0x13, 0xa0, 0x75, 0x63, 0xac, 0x86, 0xb8, 0x63, 0x0c, 0x5c, 0x8b,
|
||||
0x48, 0xd7, 0x6b, 0xb1, 0xfc, 0x9c, 0x33, 0x80, 0x67, 0xce, 0x10, 0x3e, 0x47, 0x10, 0x6f, 0x46,
|
||||
0x41, 0x4c, 0xa1, 0xe4, 0xbd, 0x13, 0xfa, 0x79, 0x51, 0x57, 0xaf, 0x89, 0x32, 0xc8, 0x75, 0x35,
|
||||
0xdd, 0x26, 0xb6, 0x5a, 0xe8, 0x4b, 0x6f, 0x3d, 0xbd, 0xf8, 0x17, 0xc1, 0x74, 0x28, 0xae, 0x68,
|
||||
0xc8, 0xfb, 0xf5, 0x0d, 0x59, 0x0a, 0x5d, 0xcb, 0x5a, 0xb6, 0x35, 0x17, 0x9b, 0x67, 0x0c, 0xba,
|
||||
0x22, 0x71, 0x01, 0x8e, 0xdb, 0x0e, 0x68, 0x9f, 0x5f, 0x8a, 0x1c, 0x44, 0xb6, 0xc4, 0x85, 0x5c,
|
||||
0xad, 0xac, 0xba, 0x42, 0xfd, 0x6b, 0xf3, 0xa6, 0xb8, 0x90, 0x03, 0x31, 0x45, 0x8b, 0xe3, 0x00,
|
||||
0xd5, 0xa5, 0xe5, 0x5d, 0x1e, 0x4e, 0x7b, 0x2c, 0x9e, 0x6c, 0x15, 0x78, 0xd9, 0x9f, 0x6d, 0xdb,
|
||||
0xb0, 0x77, 0x35, 0x4b, 0xad, 0x08, 0xe0, 0xbe, 0xd1, 0xd8, 0x17, 0xe2, 0xad, 0x39, 0xb0, 0xe0,
|
||||
0x92, 0x82, 0xd1, 0x8a, 0x78, 0xd4, 0x36, 0xf0, 0x48, 0xc5, 0x9f, 0xcc, 0x83, 0x3b, 0x09, 0xe3,
|
||||
0x0c, 0xd7, 0x79, 0xdb, 0x94, 0x4d, 0xc3, 0x3e, 0xb8, 0x41, 0x48, 0x41, 0xb0, 0x5c, 0x8e, 0xc4,
|
||||
0x90, 0xfc, 0x29, 0x02, 0x29, 0xc8, 0x43, 0x94, 0xf3, 0x01, 0x0c, 0x96, 0x08, 0x29, 0xf4, 0xf9,
|
||||
0x2c, 0x33, 0x0c, 0xa7, 0x9c, 0xc5, 0x1f, 0xa3, 0x70, 0x9c, 0x95, 0x83, 0xbf, 0x44, 0x30, 0xc4,
|
||||
0xc5, 0x30, 0x56, 0x42, 0x4f, 0x4c, 0xa3, 0x12, 0x97, 0x2e, 0xb6, 0x1f, 0xc0, 0x79, 0xca, 0x73,
|
||||
0xf7, 0x7f, 0xfa, 0xe3, 0x8b, 0xc8, 0x39, 0x3c, 0xad, 0x84, 0x7d, 0x71, 0xe0, 0x4a, 0x1c, 0xff,
|
||||
0x85, 0x60, 0xbc, 0xa9, 0x16, 0xc6, 0xc9, 0xd6, 0xe0, 0xad, 0x24, 0xbc, 0x94, 0xea, 0x29, 0x87,
|
||||
0xe0, 0x94, 0x62, 0x9c, 0xae, 0xe0, 0x95, 0x50, 0x4e, 0xb5, 0x73, 0xa2, 0xdc, 0x6d, 0x78, 0x6d,
|
||||
0xdc, 0xc3, 0x1f, 0x47, 0xe0, 0x4c, 0x88, 0x70, 0xc3, 0x6b, 0x1d, 0x54, 0xda, 0x54, 0xc6, 0x4a,
|
||||
0xeb, 0x3d, 0x66, 0x11, 0x8c, 0xb7, 0x19, 0xe3, 0x9b, 0xf8, 0x7a, 0x0f, 0x8c, 0x15, 0x52, 0xcb,
|
||||
0xef, 0x7e, 0xe7, 0xc0, 0x87, 0x08, 0x4e, 0x07, 0x48, 0x42, 0xfc, 0x5a, 0x07, 0x75, 0x37, 0xa8,
|
||||
0x57, 0xe9, 0x4a, 0x97, 0xd1, 0x82, 0xed, 0x16, 0x63, 0x7b, 0x15, 0x6f, 0xf4, 0xc2, 0xb6, 0xa6,
|
||||
0x37, 0xf1, 0xcf, 0x08, 0x46, 0xeb, 0xd5, 0x15, 0x7e, 0xb5, 0x83, 0x1a, 0xfd, 0xf2, 0x54, 0x5a,
|
||||
0xee, 0x26, 0x54, 0x70, 0xbb, 0xc6, 0xb8, 0xad, 0xe3, 0x54, 0x2f, 0xdc, 0x5c, 0x09, 0xf7, 0x37,
|
||||
0x82, 0x68, 0x83, 0x62, 0xc1, 0x6d, 0x94, 0xd7, 0x4c, 0xa9, 0x49, 0x2b, 0x5d, 0xc5, 0x0a, 0x6e,
|
||||
0x19, 0xc6, 0xed, 0x5d, 0xbc, 0x1d, 0xca, 0xad, 0xfa, 0x32, 0xa1, 0xca, 0xdd, 0x86, 0x77, 0xd1,
|
||||
0x3d, 0x45, 0x6c, 0x66, 0xe0, 0x99, 0x7d, 0x86, 0xe0, 0xc5, 0x60, 0x55, 0x82, 0x5f, 0xef, 0xa4,
|
||||
0xf0, 0x00, 0x1d, 0x25, 0xbd, 0xd1, 0x7d, 0x82, 0x8e, 0x46, 0xdb, 0x1e, 0x7d, 0x76, 0x30, 0x03,
|
||||
0xa4, 0x41, 0x3b, 0x07, 0xb3, 0xb9, 0x8a, 0x69, 0xe7, 0x60, 0x86, 0xe8, 0x91, 0x36, 0x0f, 0x66,
|
||||
0x0b, 0x86, 0xb5, 0xdd, 0xc6, 0xff, 0x21, 0x88, 0x35, 0x13, 0x0e, 0x78, 0xb5, 0x83, 0x5a, 0x83,
|
||||
0xd5, 0x8e, 0x94, 0xec, 0x25, 0x85, 0xe0, 0x7c, 0x9b, 0x71, 0xde, 0xc2, 0x9b, 0xbd, 0x70, 0xae,
|
||||
0x57, 0x3e, 0xf8, 0x3b, 0x04, 0xa7, 0x7c, 0xc2, 0x04, 0x2f, 0xb5, 0xae, 0x35, 0x48, 0xeb, 0x48,
|
||||
0xaf, 0x74, 0x1c, 0x27, 0x88, 0x2d, 0x31, 0x62, 0xf3, 0x78, 0x2e, 0x94, 0x58, 0xce, 0x8d, 0xcd,
|
||||
0x38, 0x52, 0xe6, 0x41, 0x04, 0x25, 0xaf, 0x3d, 0x3e, 0x8c, 0xa3, 0x27, 0x87, 0x71, 0xf4, 0xfb,
|
||||
0x61, 0x1c, 0x7d, 0x76, 0x14, 0x1f, 0x78, 0x72, 0x14, 0x1f, 0xf8, 0xe5, 0x28, 0x3e, 0xf0, 0xde,
|
||||
0x42, 0xa8, 0x3e, 0xfa, 0xc8, 0x0f, 0xc0, 0xe4, 0x52, 0x76, 0x88, 0xfd, 0xee, 0x78, 0xe9, 0xff,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0xbd, 0x0d, 0x0b, 0x37, 0x9d, 0x15, 0x00, 0x00,
|
||||
}
|
||||
|
||||
// Reference imports to suppress errors if they are not otherwise used.
|
||||
@ -1095,6 +1105,9 @@ type QueryClient interface {
|
||||
// DelegatorWithdrawAddress queries withdraw address of a delegator.
|
||||
DelegatorWithdrawAddress(ctx context.Context, in *QueryDelegatorWithdrawAddressRequest, opts ...grpc.CallOption) (*QueryDelegatorWithdrawAddressResponse, error)
|
||||
// CommunityPool queries the community pool coins.
|
||||
//
|
||||
// Deprecated: Prefer to use x/protocolpool module's CommunityPool rpc method.
|
||||
// Since: cosmos-sdk 0.50
|
||||
CommunityPool(ctx context.Context, in *QueryCommunityPoolRequest, opts ...grpc.CallOption) (*QueryCommunityPoolResponse, error)
|
||||
}
|
||||
|
||||
@ -1187,6 +1200,7 @@ func (c *queryClient) DelegatorWithdrawAddress(ctx context.Context, in *QueryDel
|
||||
return out, nil
|
||||
}
|
||||
|
||||
// Deprecated: Do not use.
|
||||
func (c *queryClient) CommunityPool(ctx context.Context, in *QueryCommunityPoolRequest, opts ...grpc.CallOption) (*QueryCommunityPoolResponse, error) {
|
||||
out := new(QueryCommunityPoolResponse)
|
||||
err := c.cc.Invoke(ctx, "/cosmos.distribution.v1beta1.Query/CommunityPool", in, out, opts...)
|
||||
@ -1218,6 +1232,9 @@ type QueryServer interface {
|
||||
// DelegatorWithdrawAddress queries withdraw address of a delegator.
|
||||
DelegatorWithdrawAddress(context.Context, *QueryDelegatorWithdrawAddressRequest) (*QueryDelegatorWithdrawAddressResponse, error)
|
||||
// CommunityPool queries the community pool coins.
|
||||
//
|
||||
// Deprecated: Prefer to use x/protocolpool module's CommunityPool rpc method.
|
||||
// Since: cosmos-sdk 0.50
|
||||
CommunityPool(context.Context, *QueryCommunityPoolRequest) (*QueryCommunityPoolResponse, error)
|
||||
}
|
||||
|
||||
|
||||
@ -288,6 +288,11 @@ func (m *MsgWithdrawValidatorCommissionResponse) GetAmount() github_com_cosmos_c
|
||||
|
||||
// MsgFundCommunityPool allows an account to directly
|
||||
// fund the community pool.
|
||||
//
|
||||
// Deprecated: Use x/protocolpool module's MsgFundCommunityPool instead.
|
||||
// Since: cosmos-sdk 0.50
|
||||
//
|
||||
// Deprecated: Do not use.
|
||||
type MsgFundCommunityPool struct {
|
||||
Amount github_com_cosmos_cosmos_sdk_types.Coins `protobuf:"bytes,1,rep,name=amount,proto3,castrepeated=github.com/cosmos/cosmos-sdk/types.Coins" json:"amount"`
|
||||
Depositor string `protobuf:"bytes,2,opt,name=depositor,proto3" json:"depositor,omitempty"`
|
||||
@ -327,6 +332,11 @@ func (m *MsgFundCommunityPool) XXX_DiscardUnknown() {
|
||||
var xxx_messageInfo_MsgFundCommunityPool proto.InternalMessageInfo
|
||||
|
||||
// MsgFundCommunityPoolResponse defines the Msg/FundCommunityPool response type.
|
||||
//
|
||||
// Deprecated
|
||||
// Since: cosmos-sdk 0.50
|
||||
//
|
||||
// Deprecated: Do not use.
|
||||
type MsgFundCommunityPoolResponse struct {
|
||||
}
|
||||
|
||||
@ -462,11 +472,10 @@ func (m *MsgUpdateParamsResponse) XXX_DiscardUnknown() {
|
||||
|
||||
var xxx_messageInfo_MsgUpdateParamsResponse proto.InternalMessageInfo
|
||||
|
||||
// MsgCommunityPoolSpend defines a message for sending tokens from the community
|
||||
// pool to another account. This message is typically executed via a governance
|
||||
// proposal with the governance module being the executing authority.
|
||||
// Deprecated: Use x/protocolpool module's MsgCommunityPoolSpend instead
|
||||
// Since: cosmos-sdk 0.50
|
||||
//
|
||||
// Since: cosmos-sdk 0.47
|
||||
// Deprecated: Do not use.
|
||||
type MsgCommunityPoolSpend struct {
|
||||
// authority is the address that controls the module (defaults to x/gov unless overwritten).
|
||||
Authority string `protobuf:"bytes,1,opt,name=authority,proto3" json:"authority,omitempty"`
|
||||
@ -531,7 +540,10 @@ func (m *MsgCommunityPoolSpend) GetAmount() github_com_cosmos_cosmos_sdk_types.C
|
||||
// MsgCommunityPoolSpendResponse defines the response to executing a
|
||||
// MsgCommunityPoolSpend message.
|
||||
//
|
||||
// Since: cosmos-sdk 0.47
|
||||
// Deprecated
|
||||
// Since: cosmos-sdk 0.50
|
||||
//
|
||||
// Deprecated: Do not use.
|
||||
type MsgCommunityPoolSpendResponse struct {
|
||||
}
|
||||
|
||||
@ -675,65 +687,66 @@ func init() {
|
||||
}
|
||||
|
||||
var fileDescriptor_ed4f433d965e58ca = []byte{
|
||||
// 925 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x57, 0x41, 0x6f, 0xe3, 0x44,
|
||||
0x14, 0xce, 0xa4, 0xa2, 0x28, 0xb3, 0x2b, 0xed, 0x26, 0x2a, 0x6a, 0xeb, 0xdd, 0x75, 0x16, 0x17,
|
||||
0x4a, 0x14, 0x51, 0x5b, 0x09, 0x08, 0x54, 0x73, 0x00, 0x92, 0x12, 0x89, 0x43, 0xa0, 0x4a, 0x05,
|
||||
0x48, 0x5c, 0x2a, 0x27, 0x36, 0xee, 0x88, 0xda, 0x63, 0x79, 0x26, 0x49, 0x73, 0x03, 0x04, 0x12,
|
||||
0xe2, 0x84, 0xc4, 0x8d, 0x4b, 0x2b, 0xf5, 0x52, 0x71, 0xca, 0xa1, 0x07, 0x7e, 0x42, 0x2f, 0x48,
|
||||
0x55, 0x4f, 0x9c, 0x00, 0xa5, 0x42, 0x41, 0x82, 0xdf, 0x80, 0x90, 0xed, 0x89, 0x63, 0xc7, 0x8e,
|
||||
0xdd, 0x96, 0x8a, 0x72, 0x69, 0xab, 0x99, 0xf7, 0xbe, 0xf9, 0xde, 0x37, 0xdf, 0xbc, 0xe7, 0xc2,
|
||||
0x17, 0x3a, 0x98, 0x18, 0x98, 0x48, 0x2a, 0x22, 0xd4, 0x46, 0xed, 0x2e, 0x45, 0xd8, 0x94, 0x7a,
|
||||
0x95, 0xb6, 0x46, 0x95, 0x8a, 0x44, 0x0f, 0x44, 0xcb, 0xc6, 0x14, 0x17, 0x1e, 0x79, 0x51, 0x62,
|
||||
0x30, 0x4a, 0x64, 0x51, 0xdc, 0x92, 0x8e, 0x75, 0xec, 0xc6, 0x49, 0xce, 0x5f, 0x5e, 0x0a, 0xc7,
|
||||
0x33, 0xe0, 0xb6, 0x42, 0x34, 0x1f, 0xb0, 0x83, 0x91, 0xc9, 0xf6, 0x57, 0xbd, 0xfd, 0x5d, 0x2f,
|
||||
0x91, 0xe1, 0x7b, 0x5b, 0xcb, 0x2c, 0xd5, 0x20, 0xba, 0xd4, 0xab, 0x38, 0xbf, 0xd8, 0x46, 0x5e,
|
||||
0x31, 0x90, 0x89, 0x25, 0xf7, 0x27, 0x5b, 0x12, 0x93, 0xf8, 0x87, 0xe8, 0xba, 0xf1, 0xc2, 0x9f,
|
||||
0x00, 0x3e, 0xd7, 0x24, 0xfa, 0x8e, 0x46, 0x3f, 0x42, 0x74, 0x4f, 0xb5, 0x95, 0xfe, 0xdb, 0xaa,
|
||||
0x6a, 0x6b, 0x84, 0x14, 0xde, 0x81, 0x79, 0x55, 0xdb, 0xd7, 0x74, 0x85, 0x62, 0x7b, 0x57, 0xf1,
|
||||
0x16, 0x57, 0xc0, 0x53, 0x50, 0xca, 0xd5, 0x56, 0x2e, 0x4e, 0x37, 0x96, 0x18, 0x45, 0x16, 0xbe,
|
||||
0x43, 0x6d, 0x64, 0xea, 0xad, 0x87, 0x7e, 0xca, 0x04, 0xa6, 0x0e, 0x1f, 0xf6, 0x19, 0xb2, 0x8f,
|
||||
0x92, 0x4d, 0x41, 0x79, 0xd0, 0x0f, 0x73, 0x91, 0x1b, 0x5f, 0x1f, 0x15, 0x33, 0x7f, 0x1c, 0x15,
|
||||
0x33, 0x5f, 0x8c, 0x87, 0xe5, 0x28, 0xad, 0x6f, 0xc6, 0xc3, 0xf2, 0x9a, 0x87, 0xb4, 0x41, 0xd4,
|
||||
0x4f, 0xa5, 0x26, 0xd1, 0x9b, 0x58, 0x45, 0x9f, 0x0c, 0x66, 0x6a, 0x12, 0x8a, 0xf0, 0x49, 0x6c,
|
||||
0xb1, 0x2d, 0x8d, 0x58, 0xd8, 0x24, 0x9a, 0xf0, 0x37, 0x80, 0x5c, 0x93, 0xe8, 0x93, 0xed, 0xad,
|
||||
0xc9, 0x49, 0x2d, 0xad, 0xaf, 0xd8, 0xea, 0x6d, 0x69, 0xf2, 0x1e, 0xcc, 0xf7, 0x94, 0x7d, 0xa4,
|
||||
0x86, 0x60, 0x3c, 0x51, 0x9e, 0xbf, 0x38, 0xdd, 0x78, 0xc2, 0x60, 0x3e, 0x9c, 0xc4, 0xcc, 0xe0,
|
||||
0xf5, 0x66, 0xd6, 0xe5, 0x77, 0xd3, 0xe5, 0x59, 0x0f, 0xcb, 0x33, 0x53, 0x20, 0xc2, 0xa6, 0x57,
|
||||
0xa1, 0x70, 0x08, 0xa0, 0x30, 0x5f, 0x80, 0x89, 0x4e, 0x85, 0x01, 0x5c, 0x54, 0x0c, 0xdc, 0x35,
|
||||
0xe9, 0x0a, 0x78, 0xba, 0x50, 0xba, 0x57, 0x5d, 0x65, 0xbe, 0x13, 0x1d, 0x7b, 0x4f, 0x5e, 0x82,
|
||||
0x58, 0xc7, 0xc8, 0xac, 0x35, 0xce, 0x7e, 0x29, 0x66, 0x7e, 0xf8, 0xb5, 0x58, 0xd2, 0x11, 0xdd,
|
||||
0xeb, 0xb6, 0xc5, 0x0e, 0x36, 0x98, 0xbd, 0xa5, 0x00, 0x27, 0x3a, 0xb0, 0x34, 0xe2, 0x26, 0x90,
|
||||
0xef, 0xc7, 0xc3, 0xf2, 0x7d, 0xe7, 0xd8, 0xce, 0x60, 0xd7, 0x79, 0x20, 0xe4, 0x64, 0x3c, 0x2c,
|
||||
0x83, 0x16, 0x3b, 0x50, 0xf8, 0x11, 0x40, 0x3e, 0xc0, 0xd0, 0x17, 0xa9, 0x8e, 0x0d, 0x03, 0x11,
|
||||
0x82, 0xb0, 0x19, 0xaf, 0x2f, 0xb8, 0xb9, 0xbe, 0x61, 0xfb, 0x45, 0xa0, 0x63, 0xec, 0x17, 0x60,
|
||||
0x37, 0xe5, 0x25, 0x1c, 0x03, 0xb8, 0x9e, 0x4c, 0xfd, 0xff, 0x20, 0xf0, 0x57, 0x59, 0xb8, 0xd4,
|
||||
0x24, 0x7a, 0xa3, 0x6b, 0xaa, 0x0e, 0xb1, 0xae, 0x89, 0xe8, 0x60, 0x1b, 0xe3, 0xfd, 0x3b, 0xe4,
|
||||
0x54, 0x78, 0x0d, 0xe6, 0x54, 0xcd, 0xc2, 0x04, 0x51, 0x6c, 0xa7, 0xb6, 0x8f, 0x69, 0xa8, 0x2c,
|
||||
0x07, 0x6f, 0x6e, 0xba, 0xee, 0xdc, 0x58, 0x31, 0x7c, 0x63, 0x91, 0x72, 0x05, 0x1e, 0x3e, 0x8e,
|
||||
0x5b, 0xf7, 0x7b, 0xc5, 0x4f, 0x00, 0x3e, 0x68, 0x12, 0xfd, 0x03, 0x4b, 0x55, 0xa8, 0xb6, 0xad,
|
||||
0xd8, 0x8a, 0x41, 0x1c, 0x9e, 0x4a, 0x97, 0xee, 0x61, 0x1b, 0xd1, 0x41, 0x6a, 0x63, 0x98, 0x86,
|
||||
0x16, 0x1a, 0x70, 0xd1, 0x72, 0x11, 0xdc, 0xe2, 0xee, 0x55, 0xd7, 0xc4, 0x84, 0x09, 0x23, 0x7a,
|
||||
0x87, 0xd5, 0x72, 0x8e, 0xc8, 0x4c, 0x27, 0x2f, 0x5b, 0x96, 0xdd, 0x3a, 0x7d, 0x5c, 0xa7, 0xce,
|
||||
0x97, 0x02, 0x75, 0x86, 0xa6, 0xc2, 0x0c, 0x77, 0x61, 0x15, 0x2e, 0xcf, 0x2c, 0xf9, 0xa5, 0x1e,
|
||||
0x67, 0xdd, 0x29, 0x11, 0xd2, 0x61, 0xc7, 0xd2, 0x4c, 0xf5, 0xc6, 0x05, 0x3f, 0x86, 0x39, 0x5b,
|
||||
0xeb, 0x20, 0x0b, 0x69, 0x26, 0xf5, 0x2e, 0xb4, 0x35, 0x5d, 0x08, 0x38, 0x6d, 0xe1, 0x3f, 0x76,
|
||||
0x9a, 0xbc, 0x19, 0x55, 0x70, 0x7d, 0x56, 0x41, 0x29, 0x56, 0x0b, 0x36, 0x5d, 0xa2, 0x1b, 0xbe,
|
||||
0x8c, 0xbf, 0x67, 0xdd, 0xd6, 0xb5, 0xe5, 0xd9, 0xd0, 0x7f, 0xfe, 0x5e, 0x6f, 0x25, 0xee, 0x1b,
|
||||
0x0b, 0x19, 0x1d, 0x5c, 0xd9, 0xe8, 0xb7, 0x3d, 0x52, 0xee, 0xf2, 0x06, 0xde, 0x9a, 0xff, 0x66,
|
||||
0x5f, 0x8c, 0xbb, 0x89, 0xa9, 0x9c, 0x4c, 0x48, 0xa1, 0xe4, 0xb6, 0xd9, 0x04, 0x99, 0x27, 0x37,
|
||||
0x52, 0xfd, 0xeb, 0x59, 0xb8, 0xd0, 0x24, 0x7a, 0xe1, 0x4b, 0x00, 0x0b, 0x31, 0xdf, 0x40, 0xd5,
|
||||
0xc4, 0x67, 0x18, 0xfb, 0x29, 0xc1, 0xc9, 0xd7, 0xcf, 0xf1, 0xbb, 0xfe, 0x77, 0x00, 0x2e, 0xcf,
|
||||
0xfb, 0xf6, 0x78, 0x3d, 0x0d, 0x77, 0x4e, 0x22, 0xf7, 0xe6, 0x0d, 0x13, 0x7d, 0x56, 0x87, 0x00,
|
||||
0x3e, 0x4a, 0x1a, 0xb7, 0x6f, 0x5c, 0xf5, 0x80, 0x98, 0x64, 0xae, 0xfe, 0x2f, 0x92, 0x7d, 0x86,
|
||||
0x9f, 0x03, 0x98, 0x8f, 0xce, 0xab, 0x4a, 0x1a, 0x74, 0x24, 0x85, 0xdb, 0xbc, 0x76, 0x8a, 0xcf,
|
||||
0xc1, 0x86, 0xf7, 0x43, 0xa3, 0xe0, 0xe5, 0x34, 0xa8, 0x60, 0x34, 0xf7, 0xea, 0x75, 0xa2, 0xfd,
|
||||
0x33, 0x1d, 0xdb, 0xc6, 0x34, 0xe5, 0x54, 0xdb, 0x46, 0x73, 0xd2, 0x6d, 0x3b, 0xbf, 0xaf, 0xb9,
|
||||
0x06, 0x49, 0x6a, 0x6a, 0xa9, 0x06, 0x49, 0x48, 0x4e, 0x37, 0xc8, 0x15, 0xde, 0x39, 0xf7, 0xcc,
|
||||
0x67, 0x4e, 0x8b, 0xa9, 0xbd, 0x7f, 0x32, 0xe2, 0xc1, 0xd9, 0x88, 0x07, 0xe7, 0x23, 0x1e, 0xfc,
|
||||
0x36, 0xe2, 0xc1, 0xb7, 0x97, 0x7c, 0xe6, 0xfc, 0x92, 0xcf, 0xfc, 0x7c, 0xc9, 0x67, 0x3e, 0xae,
|
||||
0x24, 0x36, 0xb0, 0x83, 0xf0, 0xf4, 0x74, 0xfb, 0x59, 0x7b, 0xd1, 0xfd, 0x2f, 0xea, 0x95, 0x7f,
|
||||
0x02, 0x00, 0x00, 0xff, 0xff, 0x97, 0xa4, 0x34, 0x89, 0x37, 0x0e, 0x00, 0x00,
|
||||
// 943 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x57, 0xc1, 0x8b, 0xe3, 0x54,
|
||||
0x18, 0xef, 0x6b, 0x71, 0xa4, 0x6f, 0x17, 0x76, 0x1b, 0x46, 0xa6, 0x93, 0xdd, 0x4d, 0xd7, 0x8c,
|
||||
0x8e, 0xa5, 0x38, 0x09, 0xad, 0xa2, 0x98, 0x15, 0xd4, 0x76, 0x2d, 0x78, 0xa8, 0x2e, 0x1d, 0x54,
|
||||
0xf0, 0x32, 0xa4, 0x4d, 0xcc, 0x3c, 0x9c, 0xe4, 0x85, 0xbc, 0xd7, 0x76, 0x7b, 0x13, 0x11, 0x5d,
|
||||
0x3c, 0x09, 0xde, 0xbc, 0xec, 0x82, 0x08, 0x8b, 0xa7, 0x1e, 0xf6, 0xe0, 0x9f, 0xb0, 0x17, 0x61,
|
||||
0xd9, 0x93, 0x27, 0x95, 0x0e, 0x52, 0xc1, 0x93, 0xff, 0x80, 0x48, 0x92, 0x97, 0x34, 0x69, 0xd2,
|
||||
0x64, 0x66, 0x5c, 0x1c, 0x2f, 0x33, 0xc3, 0x7b, 0xdf, 0xf7, 0x7b, 0xbf, 0xef, 0xf7, 0x7e, 0xef,
|
||||
0xfb, 0x32, 0xf0, 0xb9, 0x21, 0x26, 0x26, 0x26, 0xb2, 0x86, 0x08, 0x75, 0xd0, 0x60, 0x44, 0x11,
|
||||
0xb6, 0xe4, 0x71, 0x73, 0xa0, 0x53, 0xb5, 0x29, 0xd3, 0xdb, 0x92, 0xed, 0x60, 0x8a, 0xb9, 0x2b,
|
||||
0x7e, 0x94, 0x14, 0x8d, 0x92, 0x58, 0x14, 0xbf, 0x69, 0x60, 0x03, 0x7b, 0x71, 0xb2, 0xfb, 0x97,
|
||||
0x9f, 0xc2, 0x0b, 0x0c, 0x78, 0xa0, 0x12, 0x3d, 0x04, 0x1c, 0x62, 0x64, 0xb1, 0xfd, 0x6d, 0x7f,
|
||||
0xff, 0xc0, 0x4f, 0x64, 0xf8, 0xfe, 0xd6, 0x16, 0x4b, 0x35, 0x89, 0x21, 0x8f, 0x9b, 0xee, 0x2f,
|
||||
0xb6, 0x51, 0x51, 0x4d, 0x64, 0x61, 0xd9, 0xfb, 0xc9, 0x96, 0xa4, 0x2c, 0xfe, 0x31, 0xba, 0x5e,
|
||||
0xbc, 0xf8, 0x27, 0x80, 0xcf, 0xf4, 0x88, 0xb1, 0xaf, 0xd3, 0x0f, 0x11, 0x3d, 0xd4, 0x1c, 0x75,
|
||||
0xf2, 0x96, 0xa6, 0x39, 0x3a, 0x21, 0xdc, 0xdb, 0xb0, 0xa2, 0xe9, 0x47, 0xba, 0xa1, 0x52, 0xec,
|
||||
0x1c, 0xa8, 0xfe, 0x62, 0x15, 0x5c, 0x07, 0xf5, 0x72, 0xbb, 0xfa, 0xf8, 0xc1, 0xde, 0x26, 0xa3,
|
||||
0xc8, 0xc2, 0xf7, 0xa9, 0x83, 0x2c, 0xa3, 0x7f, 0x39, 0x4c, 0x09, 0x60, 0x3a, 0xf0, 0xf2, 0x84,
|
||||
0x21, 0x87, 0x28, 0xc5, 0x1c, 0x94, 0x4b, 0x93, 0x38, 0x17, 0xa5, 0x7b, 0xe7, 0x5e, 0xad, 0xf0,
|
||||
0xc7, 0xbd, 0x5a, 0xe1, 0xb3, 0xc5, 0xac, 0x91, 0xa4, 0xf5, 0xd5, 0x62, 0xd6, 0xd8, 0xf1, 0x91,
|
||||
0xf6, 0x88, 0xf6, 0x89, 0xdc, 0x23, 0x46, 0x0f, 0x6b, 0xe8, 0xe3, 0xe9, 0x4a, 0x4d, 0x62, 0x0d,
|
||||
0x5e, 0x4b, 0x2d, 0xb6, 0xaf, 0x13, 0x1b, 0x5b, 0x44, 0x17, 0xff, 0x06, 0x90, 0xef, 0x11, 0x23,
|
||||
0xd8, 0xbe, 0x19, 0x9c, 0xd4, 0xd7, 0x27, 0xaa, 0xa3, 0x3d, 0x29, 0x4d, 0xde, 0x85, 0x95, 0xb1,
|
||||
0x7a, 0x84, 0xb4, 0x18, 0x8c, 0x2f, 0xca, 0xb3, 0x8f, 0x1f, 0xec, 0x5d, 0x63, 0x30, 0x1f, 0x04,
|
||||
0x31, 0x2b, 0x78, 0xe3, 0x95, 0x75, 0xe5, 0x9d, 0x7c, 0x79, 0x76, 0xe3, 0xf2, 0xac, 0x14, 0x88,
|
||||
0xb0, 0xe5, 0x57, 0x28, 0xde, 0x05, 0x50, 0x5c, 0x2f, 0x40, 0xa0, 0x13, 0x37, 0x85, 0x1b, 0xaa,
|
||||
0x89, 0x47, 0x16, 0xad, 0x82, 0xeb, 0xa5, 0xfa, 0x85, 0xd6, 0x36, 0xf3, 0x9d, 0xe4, 0xda, 0x3b,
|
||||
0x78, 0x09, 0x52, 0x07, 0x23, 0xab, 0xdd, 0x7d, 0xf8, 0x4b, 0xad, 0xf0, 0xc3, 0xaf, 0xb5, 0xba,
|
||||
0x81, 0xe8, 0xe1, 0x68, 0x20, 0x0d, 0xb1, 0xc9, 0xec, 0x2d, 0x47, 0x38, 0xd1, 0xa9, 0xad, 0x13,
|
||||
0x2f, 0x81, 0x7c, 0xbb, 0x98, 0x35, 0x2e, 0xba, 0xc7, 0x0e, 0xa7, 0x07, 0xee, 0x03, 0x21, 0xf7,
|
||||
0x17, 0xb3, 0x06, 0xe8, 0xb3, 0x03, 0xc5, 0x1f, 0x01, 0x14, 0x22, 0x0c, 0x43, 0x91, 0x3a, 0xd8,
|
||||
0x34, 0x11, 0x21, 0x08, 0x5b, 0xe9, 0xfa, 0x82, 0xb3, 0xeb, 0x1b, 0xb7, 0x5f, 0x02, 0x3a, 0xc5,
|
||||
0x7e, 0x11, 0x76, 0x4b, 0x5e, 0xe2, 0x77, 0x00, 0xee, 0x66, 0x53, 0xff, 0x3f, 0x08, 0xfc, 0x65,
|
||||
0x11, 0x6e, 0xf6, 0x88, 0xd1, 0x1d, 0x59, 0x9a, 0x4b, 0x6c, 0x64, 0x21, 0x3a, 0xbd, 0x85, 0xf1,
|
||||
0xd1, 0x39, 0x72, 0xe2, 0x5e, 0x81, 0x65, 0x4d, 0xb7, 0x31, 0x41, 0x14, 0x3b, 0xb9, 0xed, 0x63,
|
||||
0x19, 0xaa, 0xbc, 0x1e, 0xbd, 0xb9, 0xe5, 0xba, 0x7b, 0x63, 0xb5, 0xf8, 0x8d, 0x25, 0xca, 0xad,
|
||||
0x02, 0x51, 0x84, 0x57, 0xd3, 0x76, 0x82, 0x4b, 0x52, 0x8a, 0x55, 0x20, 0xfe, 0x04, 0xe0, 0xa5,
|
||||
0x1e, 0x31, 0xde, 0xb7, 0x35, 0x95, 0xea, 0xb7, 0x54, 0x47, 0x35, 0x89, 0xcb, 0x56, 0x1d, 0xd1,
|
||||
0x43, 0xec, 0x20, 0x3a, 0xcd, 0x6d, 0x0f, 0xcb, 0x50, 0xae, 0x0b, 0x37, 0x6c, 0x0f, 0xc1, 0x2b,
|
||||
0xf1, 0x42, 0x6b, 0x47, 0xca, 0x98, 0x33, 0x92, 0x7f, 0x58, 0xbb, 0xec, 0x4a, 0xcd, 0xd4, 0xf2,
|
||||
0xb3, 0x15, 0xc5, 0xab, 0x36, 0xc4, 0x75, 0xab, 0x7d, 0x21, 0x52, 0x6d, 0x6c, 0x36, 0xac, 0x70,
|
||||
0x17, 0xb7, 0xe1, 0xd6, 0xca, 0x52, 0xd8, 0x1c, 0xbf, 0x2f, 0x7a, 0xb3, 0x22, 0xa6, 0xc5, 0xbe,
|
||||
0xad, 0x5b, 0xda, 0x99, 0x0b, 0xbe, 0x0a, 0xcb, 0x8e, 0x3e, 0x44, 0x36, 0xd2, 0x2d, 0xea, 0x5f,
|
||||
0x6b, 0x7f, 0xb9, 0x10, 0xf1, 0x5b, 0xe9, 0x3f, 0xf6, 0x9b, 0x72, 0x23, 0xa9, 0xe0, 0xee, 0xaa,
|
||||
0x82, 0x72, 0xaa, 0x16, 0x55, 0x20, 0xee, 0x78, 0x53, 0x26, 0xb9, 0x15, 0xf3, 0xcd, 0xef, 0x45,
|
||||
0xaf, 0x8d, 0xdd, 0xf4, 0x2d, 0x19, 0xb6, 0x02, 0xbf, 0xcf, 0x12, 0xef, 0xbd, 0xc5, 0x4c, 0x0f,
|
||||
0x4e, 0x6c, 0xfa, 0x27, 0x3d, 0x5e, 0xce, 0xf3, 0x1e, 0xde, 0x5c, 0xff, 0x7e, 0x9f, 0x4f, 0xbb,
|
||||
0x8f, 0xa5, 0x9c, 0x4c, 0x48, 0xb1, 0xee, 0xb5, 0xdc, 0x0c, 0x99, 0x83, 0x5b, 0x69, 0xfd, 0xf5,
|
||||
0x34, 0x2c, 0xf5, 0x88, 0xc1, 0x7d, 0x0e, 0x20, 0x97, 0xf2, 0x3d, 0xd4, 0xca, 0x7c, 0x8c, 0xa9,
|
||||
0x9f, 0x15, 0xbc, 0x72, 0xfa, 0x9c, 0x70, 0x02, 0x7c, 0x03, 0xe0, 0xd6, 0xba, 0xef, 0x90, 0x57,
|
||||
0xf3, 0x70, 0xd7, 0x24, 0xf2, 0x6f, 0x9c, 0x31, 0x31, 0x64, 0x75, 0x17, 0xc0, 0x2b, 0x59, 0xa3,
|
||||
0xf7, 0xc6, 0x49, 0x0f, 0x48, 0x49, 0xe6, 0x3b, 0xff, 0x22, 0x39, 0x64, 0xf8, 0x05, 0x80, 0x95,
|
||||
0xe4, 0xec, 0x6a, 0xe6, 0x41, 0x27, 0x52, 0xf8, 0xd7, 0x4e, 0x9d, 0x12, 0x76, 0xca, 0xd2, 0x9d,
|
||||
0x22, 0xe0, 0x1c, 0x78, 0x31, 0x36, 0x15, 0x5e, 0xcc, 0xc3, 0x8b, 0x46, 0xf3, 0x2f, 0x9f, 0x26,
|
||||
0x3a, 0x2c, 0xde, 0xf5, 0x6e, 0x4a, 0x7f, 0xce, 0xf5, 0x6e, 0x32, 0x27, 0xdf, 0xbb, 0xeb, 0x1b,
|
||||
0x9c, 0xe7, 0x92, 0xac, 0xce, 0x96, 0xeb, 0x92, 0x8c, 0xe4, 0x7c, 0x97, 0x9c, 0xe0, 0xb1, 0xf3,
|
||||
0x4f, 0x7d, 0xea, 0xf6, 0x99, 0xf6, 0x7b, 0xf7, 0xe7, 0x02, 0x78, 0x38, 0x17, 0xc0, 0xa3, 0xb9,
|
||||
0x00, 0x7e, 0x9b, 0x0b, 0xe0, 0xeb, 0x63, 0xa1, 0xf0, 0xe8, 0x58, 0x28, 0xfc, 0x7c, 0x2c, 0x14,
|
||||
0x3e, 0x6a, 0x66, 0x76, 0xb1, 0xdb, 0xf1, 0x41, 0xea, 0x35, 0xb5, 0xc1, 0x86, 0xf7, 0x6f, 0xd5,
|
||||
0x4b, 0xff, 0x04, 0x00, 0x00, 0xff, 0xff, 0xca, 0xaf, 0xe0, 0x9b, 0x48, 0x0e, 0x00, 0x00,
|
||||
}
|
||||
|
||||
func (this *MsgSetWithdrawAddressResponse) Equal(that interface{}) bool {
|
||||
@ -985,6 +998,9 @@ type MsgClient interface {
|
||||
WithdrawValidatorCommission(ctx context.Context, in *MsgWithdrawValidatorCommission, opts ...grpc.CallOption) (*MsgWithdrawValidatorCommissionResponse, error)
|
||||
// FundCommunityPool defines a method to allow an account to directly
|
||||
// fund the community pool.
|
||||
//
|
||||
// Deprecated: Use x/protocolpool module's FundCommunityPool instead.
|
||||
// Since: cosmos-sdk 0.50
|
||||
FundCommunityPool(ctx context.Context, in *MsgFundCommunityPool, opts ...grpc.CallOption) (*MsgFundCommunityPoolResponse, error)
|
||||
// UpdateParams defines a governance operation for updating the x/distribution
|
||||
// module parameters. The authority is defined in the keeper.
|
||||
@ -996,7 +1012,8 @@ type MsgClient interface {
|
||||
// could be the governance module itself. The authority is defined in the
|
||||
// keeper.
|
||||
//
|
||||
// Since: cosmos-sdk 0.47
|
||||
// Deprecated: Use x/protocolpool module's CommunityPoolSpend instead.
|
||||
// Since: cosmos-sdk 0.50
|
||||
CommunityPoolSpend(ctx context.Context, in *MsgCommunityPoolSpend, opts ...grpc.CallOption) (*MsgCommunityPoolSpendResponse, error)
|
||||
// DepositValidatorRewardsPool defines a method to provide additional rewards
|
||||
// to delegators to a specific validator.
|
||||
@ -1040,6 +1057,7 @@ func (c *msgClient) WithdrawValidatorCommission(ctx context.Context, in *MsgWith
|
||||
return out, nil
|
||||
}
|
||||
|
||||
// Deprecated: Do not use.
|
||||
func (c *msgClient) FundCommunityPool(ctx context.Context, in *MsgFundCommunityPool, opts ...grpc.CallOption) (*MsgFundCommunityPoolResponse, error) {
|
||||
out := new(MsgFundCommunityPoolResponse)
|
||||
err := c.cc.Invoke(ctx, "/cosmos.distribution.v1beta1.Msg/FundCommunityPool", in, out, opts...)
|
||||
@ -1089,6 +1107,9 @@ type MsgServer interface {
|
||||
WithdrawValidatorCommission(context.Context, *MsgWithdrawValidatorCommission) (*MsgWithdrawValidatorCommissionResponse, error)
|
||||
// FundCommunityPool defines a method to allow an account to directly
|
||||
// fund the community pool.
|
||||
//
|
||||
// Deprecated: Use x/protocolpool module's FundCommunityPool instead.
|
||||
// Since: cosmos-sdk 0.50
|
||||
FundCommunityPool(context.Context, *MsgFundCommunityPool) (*MsgFundCommunityPoolResponse, error)
|
||||
// UpdateParams defines a governance operation for updating the x/distribution
|
||||
// module parameters. The authority is defined in the keeper.
|
||||
@ -1100,7 +1121,8 @@ type MsgServer interface {
|
||||
// could be the governance module itself. The authority is defined in the
|
||||
// keeper.
|
||||
//
|
||||
// Since: cosmos-sdk 0.47
|
||||
// Deprecated: Use x/protocolpool module's CommunityPoolSpend instead.
|
||||
// Since: cosmos-sdk 0.50
|
||||
CommunityPoolSpend(context.Context, *MsgCommunityPoolSpend) (*MsgCommunityPoolSpendResponse, error)
|
||||
// DepositValidatorRewardsPool defines a method to provide additional rewards
|
||||
// to delegators to a specific validator.
|
||||
|
||||
@ -20,7 +20,7 @@ require (
|
||||
github.com/grpc-ecosystem/grpc-gateway v1.16.0
|
||||
github.com/spf13/cobra v1.7.0
|
||||
github.com/stretchr/testify v1.8.4
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20230803162519-f966b187b2e5
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20230822172742-b8732ec3820d
|
||||
google.golang.org/grpc v1.58.2
|
||||
google.golang.org/protobuf v1.31.0
|
||||
)
|
||||
@ -154,3 +154,5 @@ require (
|
||||
)
|
||||
|
||||
replace github.com/cosmos/cosmos-sdk => ../../.
|
||||
|
||||
replace cosmossdk.io/api => ../../api
|
||||
|
||||
@ -35,8 +35,6 @@ cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohl
|
||||
cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs=
|
||||
cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0=
|
||||
cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo=
|
||||
cosmossdk.io/api v0.7.1 h1:PNQ1xN8+/0hj/sSD0ANqjkgfXFys+bZ5L8Hg7uzoUTU=
|
||||
cosmossdk.io/api v0.7.1/go.mod h1:ure9edhcROIHsngavM6mBLilMGFnfjhV/AaYhEMUkdo=
|
||||
cosmossdk.io/collections v0.4.0 h1:PFmwj2W8szgpD5nOd8GWH6AbYNi1f2J6akWXJ7P5t9s=
|
||||
cosmossdk.io/collections v0.4.0/go.mod h1:oa5lUING2dP+gdDquow+QjlF45eL1t4TJDypgGd+tv0=
|
||||
cosmossdk.io/core v0.12.0 h1:aFuvkG6eDv0IQC+UDjx86wxNWVAxdCFk7OABJ1Vh4RU=
|
||||
@ -51,6 +49,8 @@ cosmossdk.io/math v1.1.3-rc.1 h1:NebCNWDqb1MJRNfvxr4YY7d8FSYgkuB3L75K6xvM+Zo=
|
||||
cosmossdk.io/math v1.1.3-rc.1/go.mod h1:l2Gnda87F0su8a/7FEKJfFdJrM0JZRXQaohlgJeyQh0=
|
||||
cosmossdk.io/store v1.0.0-rc.0 h1:9DwOjuUYxDtYxn/REkTxGQAmxlIGfRroB35MQ8TrxF4=
|
||||
cosmossdk.io/store v1.0.0-rc.0/go.mod h1:FtBDOJmwtOZfmKKF65bKZbTYgS3bDNjjo3nP76dAegk=
|
||||
cosmossdk.io/x/protocolpool v0.0.0-20230925135524-a1bc045b3190 h1:XQJj9Dv9Gtze0l2TF79BU5lkP6MkUveTUuKICmxoz+o=
|
||||
cosmossdk.io/x/protocolpool v0.0.0-20230925135524-a1bc045b3190/go.mod h1:7WUGupOvmlHJoIMBz1JbObQxeo6/TDiuDBxmtod8HRg=
|
||||
cosmossdk.io/x/tx v0.10.0 h1:LxWF/hksVDbeQmFj4voLM5ZCHyVZ1cCNIqKenfH9plc=
|
||||
cosmossdk.io/x/tx v0.10.0/go.mod h1:MKo9/b5wsoL8dd9y9pvD2yOP1CMvzHIWYxi1l2oLPFo=
|
||||
dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
|
||||
@ -1170,8 +1170,8 @@ google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6D
|
||||
google.golang.org/genproto v0.0.0-20220314164441-57ef72a4c106/go.mod h1:hAL49I2IFola2sVEjAn7MEwsja0xp51I0tlGAf9hz4E=
|
||||
google.golang.org/genproto v0.0.0-20230913181813-007df8e322eb h1:XFBgcDwm7irdHTbz4Zk2h7Mh+eis4nfJEFQFYzJzuIA=
|
||||
google.golang.org/genproto v0.0.0-20230913181813-007df8e322eb/go.mod h1:yZTlhN0tQnXo3h00fuXNCxJdLdIdnVFVBaRJ5LWBbw4=
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20230803162519-f966b187b2e5 h1:nIgk/EEq3/YlnmVVXVnm14rC2oxgs1o0ong4sD/rd44=
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20230803162519-f966b187b2e5/go.mod h1:5DZzOUPCLYL3mNkQ0ms0F3EuUNZ7py1Bqeq6sxzI7/Q=
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20230822172742-b8732ec3820d h1:DoPTO70H+bcDXcd39vOqb2viZxgqeBeSGtZ55yZU4/Q=
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20230822172742-b8732ec3820d/go.mod h1:KjSP20unUpOx5kyQUFa7k4OJg0qeJ7DEZflGDu2p6Bk=
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20230920204549-e6e6cdab5c13 h1:N3bU/SQDCDyD6R528GJ/PwW9KjYcJA3dgyH+MovAkIM=
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20230920204549-e6e6cdab5c13/go.mod h1:KSqppvjFjtoCI+KGd4PELB0qLNxdJHRGqRI09mB6pQA=
|
||||
google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs=
|
||||
|
||||
@ -20,7 +20,7 @@ require (
|
||||
github.com/grpc-ecosystem/grpc-gateway v1.16.0
|
||||
github.com/spf13/cobra v1.7.0
|
||||
github.com/stretchr/testify v1.8.4
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20230803162519-f966b187b2e5
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20230822172742-b8732ec3820d
|
||||
google.golang.org/grpc v1.58.2
|
||||
google.golang.org/protobuf v1.31.0
|
||||
gotest.tools/v3 v3.5.1
|
||||
@ -155,3 +155,5 @@ require (
|
||||
)
|
||||
|
||||
replace github.com/cosmos/cosmos-sdk => ../../.
|
||||
|
||||
replace cosmossdk.io/api => ../../api
|
||||
|
||||
@ -35,8 +35,6 @@ cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohl
|
||||
cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs=
|
||||
cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0=
|
||||
cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo=
|
||||
cosmossdk.io/api v0.7.1 h1:PNQ1xN8+/0hj/sSD0ANqjkgfXFys+bZ5L8Hg7uzoUTU=
|
||||
cosmossdk.io/api v0.7.1/go.mod h1:ure9edhcROIHsngavM6mBLilMGFnfjhV/AaYhEMUkdo=
|
||||
cosmossdk.io/collections v0.4.0 h1:PFmwj2W8szgpD5nOd8GWH6AbYNi1f2J6akWXJ7P5t9s=
|
||||
cosmossdk.io/collections v0.4.0/go.mod h1:oa5lUING2dP+gdDquow+QjlF45eL1t4TJDypgGd+tv0=
|
||||
cosmossdk.io/core v0.12.0 h1:aFuvkG6eDv0IQC+UDjx86wxNWVAxdCFk7OABJ1Vh4RU=
|
||||
@ -51,6 +49,8 @@ cosmossdk.io/math v1.1.3-rc.1 h1:NebCNWDqb1MJRNfvxr4YY7d8FSYgkuB3L75K6xvM+Zo=
|
||||
cosmossdk.io/math v1.1.3-rc.1/go.mod h1:l2Gnda87F0su8a/7FEKJfFdJrM0JZRXQaohlgJeyQh0=
|
||||
cosmossdk.io/store v1.0.0-rc.0 h1:9DwOjuUYxDtYxn/REkTxGQAmxlIGfRroB35MQ8TrxF4=
|
||||
cosmossdk.io/store v1.0.0-rc.0/go.mod h1:FtBDOJmwtOZfmKKF65bKZbTYgS3bDNjjo3nP76dAegk=
|
||||
cosmossdk.io/x/protocolpool v0.0.0-20230925135524-a1bc045b3190 h1:XQJj9Dv9Gtze0l2TF79BU5lkP6MkUveTUuKICmxoz+o=
|
||||
cosmossdk.io/x/protocolpool v0.0.0-20230925135524-a1bc045b3190/go.mod h1:7WUGupOvmlHJoIMBz1JbObQxeo6/TDiuDBxmtod8HRg=
|
||||
cosmossdk.io/x/tx v0.10.0 h1:LxWF/hksVDbeQmFj4voLM5ZCHyVZ1cCNIqKenfH9plc=
|
||||
cosmossdk.io/x/tx v0.10.0/go.mod h1:MKo9/b5wsoL8dd9y9pvD2yOP1CMvzHIWYxi1l2oLPFo=
|
||||
dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
|
||||
@ -1175,8 +1175,8 @@ google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6D
|
||||
google.golang.org/genproto v0.0.0-20220314164441-57ef72a4c106/go.mod h1:hAL49I2IFola2sVEjAn7MEwsja0xp51I0tlGAf9hz4E=
|
||||
google.golang.org/genproto v0.0.0-20230913181813-007df8e322eb h1:XFBgcDwm7irdHTbz4Zk2h7Mh+eis4nfJEFQFYzJzuIA=
|
||||
google.golang.org/genproto v0.0.0-20230913181813-007df8e322eb/go.mod h1:yZTlhN0tQnXo3h00fuXNCxJdLdIdnVFVBaRJ5LWBbw4=
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20230803162519-f966b187b2e5 h1:nIgk/EEq3/YlnmVVXVnm14rC2oxgs1o0ong4sD/rd44=
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20230803162519-f966b187b2e5/go.mod h1:5DZzOUPCLYL3mNkQ0ms0F3EuUNZ7py1Bqeq6sxzI7/Q=
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20230822172742-b8732ec3820d h1:DoPTO70H+bcDXcd39vOqb2viZxgqeBeSGtZ55yZU4/Q=
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20230822172742-b8732ec3820d/go.mod h1:KjSP20unUpOx5kyQUFa7k4OJg0qeJ7DEZflGDu2p6Bk=
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20230920204549-e6e6cdab5c13 h1:N3bU/SQDCDyD6R528GJ/PwW9KjYcJA3dgyH+MovAkIM=
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20230920204549-e6e6cdab5c13/go.mod h1:KSqppvjFjtoCI+KGd4PELB0qLNxdJHRGqRI09mB6pQA=
|
||||
google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs=
|
||||
|
||||
@ -34,7 +34,7 @@ var suggestedProposalTypes = []proposalType{
|
||||
},
|
||||
{
|
||||
Name: "community-pool-spend",
|
||||
MsgType: "/cosmos.distribution.v1beta1.MsgCommunityPoolSpend",
|
||||
MsgType: "/cosmos.protocolpool.v1.MsgCommunityPoolSpend",
|
||||
},
|
||||
{
|
||||
Name: "software-upgrade",
|
||||
|
||||
@ -11,6 +11,7 @@ import (
|
||||
"cosmossdk.io/depinject"
|
||||
sdklog "cosmossdk.io/log"
|
||||
"cosmossdk.io/math"
|
||||
_ "cosmossdk.io/x/protocolpool"
|
||||
|
||||
"github.com/cosmos/cosmos-sdk/crypto/keys/ed25519"
|
||||
cryptotypes "github.com/cosmos/cosmos-sdk/crypto/types"
|
||||
@ -24,8 +25,6 @@ import (
|
||||
_ "github.com/cosmos/cosmos-sdk/x/bank"
|
||||
bankkeeper "github.com/cosmos/cosmos-sdk/x/bank/keeper"
|
||||
_ "github.com/cosmos/cosmos-sdk/x/consensus"
|
||||
_ "github.com/cosmos/cosmos-sdk/x/distribution"
|
||||
distrkeeper "github.com/cosmos/cosmos-sdk/x/distribution/keeper"
|
||||
"github.com/cosmos/cosmos-sdk/x/gov/keeper"
|
||||
"github.com/cosmos/cosmos-sdk/x/gov/types"
|
||||
v1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1"
|
||||
@ -104,12 +103,11 @@ var pubkeys = []cryptotypes.PubKey{
|
||||
}
|
||||
|
||||
type suite struct {
|
||||
AccountKeeper authkeeper.AccountKeeper
|
||||
BankKeeper bankkeeper.Keeper
|
||||
GovKeeper *keeper.Keeper
|
||||
StakingKeeper *stakingkeeper.Keeper
|
||||
DistributionKeeper distrkeeper.Keeper
|
||||
App *runtime.App
|
||||
AccountKeeper authkeeper.AccountKeeper
|
||||
BankKeeper bankkeeper.Keeper
|
||||
GovKeeper *keeper.Keeper
|
||||
StakingKeeper *stakingkeeper.Keeper
|
||||
App *runtime.App
|
||||
}
|
||||
|
||||
func createTestSuite(t *testing.T) suite {
|
||||
@ -124,12 +122,12 @@ func createTestSuite(t *testing.T) suite {
|
||||
configurator.BankModule(),
|
||||
configurator.GovModule(),
|
||||
configurator.ConsensusModule(),
|
||||
configurator.DistributionModule(),
|
||||
configurator.ProtocolPoolModule(),
|
||||
),
|
||||
depinject.Supply(sdklog.NewNopLogger()),
|
||||
),
|
||||
simtestutil.DefaultStartUpConfig(),
|
||||
&res.AccountKeeper, &res.BankKeeper, &res.GovKeeper, &res.DistributionKeeper, &res.StakingKeeper,
|
||||
&res.AccountKeeper, &res.BankKeeper, &res.GovKeeper, &res.StakingKeeper,
|
||||
)
|
||||
require.NoError(t, err)
|
||||
|
||||
|
||||
@ -9,8 +9,10 @@ import (
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
"cosmossdk.io/core/header"
|
||||
"cosmossdk.io/log"
|
||||
"cosmossdk.io/math"
|
||||
storetypes "cosmossdk.io/store/types"
|
||||
pooltypes "cosmossdk.io/x/protocolpool/types"
|
||||
|
||||
"github.com/cosmos/cosmos-sdk/baseapp"
|
||||
"github.com/cosmos/cosmos-sdk/codec/address"
|
||||
@ -21,7 +23,6 @@ import (
|
||||
moduletestutil "github.com/cosmos/cosmos-sdk/types/module/testutil"
|
||||
authtypes "github.com/cosmos/cosmos-sdk/x/auth/types"
|
||||
banktypes "github.com/cosmos/cosmos-sdk/x/bank/types"
|
||||
disttypes "github.com/cosmos/cosmos-sdk/x/distribution/types"
|
||||
"github.com/cosmos/cosmos-sdk/x/gov/keeper"
|
||||
govtestutil "github.com/cosmos/cosmos-sdk/x/gov/testutil"
|
||||
"github.com/cosmos/cosmos-sdk/x/gov/types"
|
||||
@ -32,7 +33,7 @@ import (
|
||||
var (
|
||||
_, _, addr = testdata.KeyTestPubAddr()
|
||||
govAcct = authtypes.NewModuleAddress(types.ModuleName)
|
||||
distAcct = authtypes.NewModuleAddress(disttypes.ModuleName)
|
||||
poolAcct = authtypes.NewModuleAddress(pooltypes.ModuleName)
|
||||
TestProposal = getTestProposal()
|
||||
)
|
||||
|
||||
@ -55,22 +56,22 @@ func getTestProposal() []sdk.Msg {
|
||||
}
|
||||
|
||||
type mocks struct {
|
||||
acctKeeper *govtestutil.MockAccountKeeper
|
||||
bankKeeper *govtestutil.MockBankKeeper
|
||||
stakingKeeper *govtestutil.MockStakingKeeper
|
||||
distributionKeeper *govtestutil.MockDistributionKeeper
|
||||
acctKeeper *govtestutil.MockAccountKeeper
|
||||
bankKeeper *govtestutil.MockBankKeeper
|
||||
stakingKeeper *govtestutil.MockStakingKeeper
|
||||
poolKeeper *govtestutil.MockPoolKeeper
|
||||
}
|
||||
|
||||
func mockAccountKeeperExpectations(ctx sdk.Context, m mocks) {
|
||||
m.acctKeeper.EXPECT().GetModuleAddress(types.ModuleName).Return(govAcct).AnyTimes()
|
||||
m.acctKeeper.EXPECT().GetModuleAddress(disttypes.ModuleName).Return(distAcct).AnyTimes()
|
||||
m.acctKeeper.EXPECT().GetModuleAddress(pooltypes.ModuleName).Return(poolAcct).AnyTimes()
|
||||
m.acctKeeper.EXPECT().GetModuleAccount(gomock.Any(), types.ModuleName).Return(authtypes.NewEmptyModuleAccount(types.ModuleName)).AnyTimes()
|
||||
m.acctKeeper.EXPECT().AddressCodec().Return(address.NewBech32Codec("cosmos")).AnyTimes()
|
||||
}
|
||||
|
||||
func mockDefaultExpectations(ctx sdk.Context, m mocks) {
|
||||
mockAccountKeeperExpectations(ctx, m)
|
||||
trackMockBalances(m.bankKeeper, m.distributionKeeper)
|
||||
trackMockBalances(m.bankKeeper)
|
||||
m.stakingKeeper.EXPECT().TokensFromConsensusPower(ctx, gomock.Any()).DoAndReturn(func(ctx sdk.Context, power int64) math.Int {
|
||||
return sdk.TokensFromConsensusPower(power, math.NewIntFromUint64(1000000))
|
||||
}).AnyTimes()
|
||||
@ -79,7 +80,6 @@ func mockDefaultExpectations(ctx sdk.Context, m mocks) {
|
||||
m.stakingKeeper.EXPECT().IterateBondedValidatorsByPower(gomock.Any(), gomock.Any()).AnyTimes()
|
||||
m.stakingKeeper.EXPECT().IterateDelegations(gomock.Any(), gomock.Any(), gomock.Any()).AnyTimes()
|
||||
m.stakingKeeper.EXPECT().TotalBondedTokens(gomock.Any()).Return(math.NewInt(10000000), nil).AnyTimes()
|
||||
m.distributionKeeper.EXPECT().FundCommunityPool(gomock.Any(), gomock.Any(), gomock.Any()).Return(nil).AnyTimes()
|
||||
}
|
||||
|
||||
// setupGovKeeper creates a govKeeper as well as all its dependencies.
|
||||
@ -99,17 +99,22 @@ func setupGovKeeper(t *testing.T, expectations ...func(sdk.Context, mocks)) (
|
||||
v1beta1.RegisterInterfaces(encCfg.InterfaceRegistry)
|
||||
banktypes.RegisterInterfaces(encCfg.InterfaceRegistry)
|
||||
|
||||
// Create MsgServiceRouter, but don't populate it before creating the gov
|
||||
// keeper.
|
||||
msr := baseapp.NewMsgServiceRouter()
|
||||
baseApp := baseapp.NewBaseApp(
|
||||
"authz",
|
||||
log.NewNopLogger(),
|
||||
testCtx.DB,
|
||||
encCfg.TxConfig.TxDecoder(),
|
||||
)
|
||||
baseApp.SetCMS(testCtx.CMS)
|
||||
baseApp.SetInterfaceRegistry(encCfg.InterfaceRegistry)
|
||||
|
||||
// gomock initializations
|
||||
ctrl := gomock.NewController(t)
|
||||
m := mocks{
|
||||
acctKeeper: govtestutil.NewMockAccountKeeper(ctrl),
|
||||
bankKeeper: govtestutil.NewMockBankKeeper(ctrl),
|
||||
stakingKeeper: govtestutil.NewMockStakingKeeper(ctrl),
|
||||
distributionKeeper: govtestutil.NewMockDistributionKeeper(ctrl),
|
||||
acctKeeper: govtestutil.NewMockAccountKeeper(ctrl),
|
||||
bankKeeper: govtestutil.NewMockBankKeeper(ctrl),
|
||||
stakingKeeper: govtestutil.NewMockStakingKeeper(ctrl),
|
||||
poolKeeper: govtestutil.NewMockPoolKeeper(ctrl),
|
||||
}
|
||||
if len(expectations) == 0 {
|
||||
mockDefaultExpectations(ctx, m)
|
||||
@ -121,7 +126,7 @@ func setupGovKeeper(t *testing.T, expectations ...func(sdk.Context, mocks)) (
|
||||
|
||||
// Gov keeper initializations
|
||||
|
||||
govKeeper := keeper.NewKeeper(encCfg.Codec, storeService, m.acctKeeper, m.bankKeeper, m.stakingKeeper, m.distributionKeeper, msr, types.DefaultConfig(), govAcct.String())
|
||||
govKeeper := keeper.NewKeeper(encCfg.Codec, storeService, m.acctKeeper, m.bankKeeper, m.stakingKeeper, m.poolKeeper, baseApp.MsgServiceRouter(), types.DefaultConfig(), govAcct.String())
|
||||
require.NoError(t, govKeeper.ProposalID.Set(ctx, 1))
|
||||
govRouter := v1beta1.NewRouter() // Also register legacy gov handlers to test them too.
|
||||
govRouter.AddRoute(types.RouterKey, v1beta1.ProposalHandler)
|
||||
@ -132,18 +137,17 @@ func setupGovKeeper(t *testing.T, expectations ...func(sdk.Context, mocks)) (
|
||||
require.NoError(t, err)
|
||||
|
||||
// Register all handlers for the MegServiceRouter.
|
||||
msr.SetInterfaceRegistry(encCfg.InterfaceRegistry)
|
||||
v1.RegisterMsgServer(msr, keeper.NewMsgServerImpl(govKeeper))
|
||||
banktypes.RegisterMsgServer(msr, nil) // Nil is fine here as long as we never execute the proposal's Msgs.
|
||||
v1.RegisterMsgServer(baseApp.MsgServiceRouter(), keeper.NewMsgServerImpl(govKeeper))
|
||||
banktypes.RegisterMsgServer(baseApp.MsgServiceRouter(), nil) // Nil is fine here as long as we never execute the proposal's Msgs.
|
||||
|
||||
return govKeeper, m, encCfg, ctx
|
||||
}
|
||||
|
||||
// trackMockBalances sets up expected calls on the Mock BankKeeper, and also
|
||||
// locally tracks accounts balances (not modules balances).
|
||||
func trackMockBalances(bankKeeper *govtestutil.MockBankKeeper, distributionKeeper *govtestutil.MockDistributionKeeper) {
|
||||
func trackMockBalances(bankKeeper *govtestutil.MockBankKeeper) {
|
||||
balances := make(map[string]sdk.Coins)
|
||||
balances[distAcct.String()] = sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, math.NewInt(0)))
|
||||
balances[poolAcct.String()] = sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, math.NewInt(0)))
|
||||
|
||||
// We don't track module account balances.
|
||||
bankKeeper.EXPECT().MintCoins(gomock.Any(), mintModuleName, gomock.Any()).AnyTimes()
|
||||
@ -175,16 +179,4 @@ func trackMockBalances(bankKeeper *govtestutil.MockBankKeeper, distributionKeepe
|
||||
}
|
||||
return sdk.NewCoin(sdk.DefaultBondDenom, math.NewInt(0))
|
||||
}).AnyTimes()
|
||||
|
||||
distributionKeeper.EXPECT().FundCommunityPool(gomock.Any(), gomock.Any(), gomock.Any()).DoAndReturn(func(_ sdk.Context, coins sdk.Coins, sender sdk.AccAddress) error {
|
||||
// sender balance
|
||||
newBalance, negative := balances[sender.String()].SafeSub(coins...)
|
||||
if negative {
|
||||
return fmt.Errorf("not enough balance")
|
||||
}
|
||||
balances[sender.String()] = newBalance
|
||||
// receiver balance
|
||||
balances[distAcct.String()] = balances[distAcct.String()].Add(coins...)
|
||||
return nil
|
||||
}).AnyTimes()
|
||||
}
|
||||
|
||||
@ -7,9 +7,9 @@ import (
|
||||
"cosmossdk.io/collections"
|
||||
"cosmossdk.io/errors"
|
||||
sdkmath "cosmossdk.io/math"
|
||||
pooltypes "cosmossdk.io/x/protocolpool/types"
|
||||
|
||||
sdk "github.com/cosmos/cosmos-sdk/types"
|
||||
disttypes "github.com/cosmos/cosmos-sdk/x/distribution/types"
|
||||
"github.com/cosmos/cosmos-sdk/x/gov/types"
|
||||
v1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1"
|
||||
)
|
||||
@ -185,10 +185,10 @@ func (keeper Keeper) ChargeDeposit(ctx context.Context, proposalID uint64, destA
|
||||
}
|
||||
}
|
||||
|
||||
// burn the cancellation fee or sent the cancellation charges to destination address.
|
||||
// burn the cancellation fee or send the cancellation charges to destination address.
|
||||
if !cancellationCharges.IsZero() {
|
||||
// get the distribution module account address
|
||||
distributionAddress := keeper.authKeeper.GetModuleAddress(disttypes.ModuleName)
|
||||
// get the pool module account address
|
||||
poolAddress := keeper.authKeeper.GetModuleAddress(pooltypes.ModuleName)
|
||||
switch {
|
||||
case destAddress == "":
|
||||
// burn the cancellation charges from deposits
|
||||
@ -196,8 +196,8 @@ func (keeper Keeper) ChargeDeposit(ctx context.Context, proposalID uint64, destA
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
case distributionAddress.String() == destAddress:
|
||||
err := keeper.distrKeeper.FundCommunityPool(ctx, cancellationCharges, keeper.ModuleAccountAddress())
|
||||
case poolAddress.String() == destAddress:
|
||||
err := keeper.poolKeeper.FundCommunityPool(ctx, cancellationCharges, keeper.ModuleAccountAddress())
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
@ -8,12 +8,12 @@ import (
|
||||
|
||||
"cosmossdk.io/collections"
|
||||
sdkmath "cosmossdk.io/math"
|
||||
pooltypes "cosmossdk.io/x/protocolpool/types"
|
||||
|
||||
"github.com/cosmos/cosmos-sdk/codec/address"
|
||||
simtestutil "github.com/cosmos/cosmos-sdk/testutil/sims"
|
||||
sdk "github.com/cosmos/cosmos-sdk/types"
|
||||
authtypes "github.com/cosmos/cosmos-sdk/x/auth/types"
|
||||
disttypes "github.com/cosmos/cosmos-sdk/x/distribution/types"
|
||||
v1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1"
|
||||
)
|
||||
|
||||
@ -39,8 +39,8 @@ func TestDeposits(t *testing.T) {
|
||||
for _, tc := range testcases {
|
||||
t.Run(tc.name, func(t *testing.T) {
|
||||
govKeeper, mocks, _, ctx := setupGovKeeper(t)
|
||||
authKeeper, bankKeeper, stakingKeeper, distKeeper := mocks.acctKeeper, mocks.bankKeeper, mocks.stakingKeeper, mocks.distributionKeeper
|
||||
trackMockBalances(bankKeeper, distKeeper)
|
||||
authKeeper, bankKeeper, stakingKeeper := mocks.acctKeeper, mocks.bankKeeper, mocks.stakingKeeper
|
||||
trackMockBalances(bankKeeper)
|
||||
|
||||
// With expedited proposals the minimum deposit is higher, so we must
|
||||
// initialize and deposit an amount depositMultiplier times larger
|
||||
@ -329,7 +329,7 @@ func TestChargeDeposit(t *testing.T) {
|
||||
params.ProposalCancelDest = TestAddrs[1].String()
|
||||
default:
|
||||
// community address for proposal cancel dest address
|
||||
params.ProposalCancelDest = authtypes.NewModuleAddress(disttypes.ModuleName).String()
|
||||
params.ProposalCancelDest = authtypes.NewModuleAddress(pooltypes.ModuleName).String()
|
||||
}
|
||||
|
||||
err := govKeeper.Params.Set(ctx, params)
|
||||
|
||||
@ -19,9 +19,9 @@ import (
|
||||
|
||||
// Keeper defines the governance module Keeper
|
||||
type Keeper struct {
|
||||
authKeeper types.AccountKeeper
|
||||
bankKeeper types.BankKeeper
|
||||
distrKeeper types.DistributionKeeper
|
||||
authKeeper types.AccountKeeper
|
||||
bankKeeper types.BankKeeper
|
||||
poolKeeper types.PoolKeeper
|
||||
|
||||
// The reference to the DelegationSet and ValidatorSet to get information about validators and delegators
|
||||
sk types.StakingKeeper
|
||||
@ -79,7 +79,7 @@ func (k Keeper) GetAuthority() string {
|
||||
// CONTRACT: the parameter Subspace must have the param key table already initialized
|
||||
func NewKeeper(
|
||||
cdc codec.Codec, storeService corestoretypes.KVStoreService, authKeeper types.AccountKeeper,
|
||||
bankKeeper types.BankKeeper, sk types.StakingKeeper, distrKeeper types.DistributionKeeper,
|
||||
bankKeeper types.BankKeeper, sk types.StakingKeeper, pk types.PoolKeeper,
|
||||
router baseapp.MessageRouter, config types.Config, authority string,
|
||||
) *Keeper {
|
||||
// ensure governance module account is set
|
||||
@ -101,8 +101,8 @@ func NewKeeper(
|
||||
storeService: storeService,
|
||||
authKeeper: authKeeper,
|
||||
bankKeeper: bankKeeper,
|
||||
distrKeeper: distrKeeper,
|
||||
sk: sk,
|
||||
poolKeeper: pk,
|
||||
cdc: cdc,
|
||||
router: router,
|
||||
config: config,
|
||||
|
||||
@ -32,7 +32,6 @@ type KeeperTestSuite struct {
|
||||
acctKeeper *govtestutil.MockAccountKeeper
|
||||
bankKeeper *govtestutil.MockBankKeeper
|
||||
stakingKeeper *govtestutil.MockStakingKeeper
|
||||
distKeeper *govtestutil.MockDistributionKeeper
|
||||
queryClient v1.QueryClient
|
||||
legacyQueryClient v1beta1.QueryClient
|
||||
addrs []sdk.AccAddress
|
||||
@ -46,7 +45,7 @@ func (suite *KeeperTestSuite) SetupSuite() {
|
||||
|
||||
func (suite *KeeperTestSuite) reset() {
|
||||
govKeeper, mocks, encCfg, ctx := setupGovKeeper(suite.T())
|
||||
acctKeeper, bankKeeper, stakingKeeper, distKeeper := mocks.acctKeeper, mocks.bankKeeper, mocks.stakingKeeper, mocks.distributionKeeper
|
||||
acctKeeper, bankKeeper, stakingKeeper := mocks.acctKeeper, mocks.bankKeeper, mocks.stakingKeeper
|
||||
|
||||
// Populate the gov account with some coins, as the TestProposal we have
|
||||
// is a MsgSend from the gov account.
|
||||
@ -68,7 +67,6 @@ func (suite *KeeperTestSuite) reset() {
|
||||
suite.acctKeeper = acctKeeper
|
||||
suite.bankKeeper = bankKeeper
|
||||
suite.stakingKeeper = stakingKeeper
|
||||
suite.distKeeper = distKeeper
|
||||
suite.cdc = encCfg.Codec
|
||||
suite.queryClient = queryClient
|
||||
suite.legacyQueryClient = legacyQueryClient
|
||||
|
||||
@ -133,18 +133,20 @@ type AppModule struct {
|
||||
keeper *keeper.Keeper
|
||||
accountKeeper govtypes.AccountKeeper
|
||||
bankKeeper govtypes.BankKeeper
|
||||
poolKeeper govtypes.PoolKeeper
|
||||
}
|
||||
|
||||
// NewAppModule creates a new AppModule object
|
||||
func NewAppModule(
|
||||
cdc codec.Codec, keeper *keeper.Keeper,
|
||||
ak govtypes.AccountKeeper, bk govtypes.BankKeeper,
|
||||
ak govtypes.AccountKeeper, bk govtypes.BankKeeper, pk govtypes.PoolKeeper,
|
||||
) AppModule {
|
||||
return AppModule{
|
||||
AppModuleBasic: AppModuleBasic{cdc: cdc, ac: ak.AddressCodec()},
|
||||
keeper: keeper,
|
||||
accountKeeper: ak,
|
||||
bankKeeper: bk,
|
||||
poolKeeper: pk,
|
||||
}
|
||||
}
|
||||
|
||||
@ -170,10 +172,10 @@ type ModuleInputs struct {
|
||||
ModuleKey depinject.OwnModuleKey
|
||||
MsgServiceRouter baseapp.MessageRouter
|
||||
|
||||
AccountKeeper govtypes.AccountKeeper
|
||||
BankKeeper govtypes.BankKeeper
|
||||
StakingKeeper govtypes.StakingKeeper
|
||||
DistributionKeeper govtypes.DistributionKeeper
|
||||
AccountKeeper govtypes.AccountKeeper
|
||||
BankKeeper govtypes.BankKeeper
|
||||
StakingKeeper govtypes.StakingKeeper
|
||||
PoolKeeper govtypes.PoolKeeper
|
||||
}
|
||||
|
||||
type ModuleOutputs struct {
|
||||
@ -202,12 +204,12 @@ func ProvideModule(in ModuleInputs) ModuleOutputs {
|
||||
in.AccountKeeper,
|
||||
in.BankKeeper,
|
||||
in.StakingKeeper,
|
||||
in.DistributionKeeper,
|
||||
in.PoolKeeper,
|
||||
in.MsgServiceRouter,
|
||||
defaultConfig,
|
||||
authority.String(),
|
||||
)
|
||||
m := NewAppModule(in.Cdc, k, in.AccountKeeper, in.BankKeeper)
|
||||
m := NewAppModule(in.Cdc, k, in.AccountKeeper, in.BankKeeper, in.PoolKeeper)
|
||||
hr := v1beta1.HandlerRoute{Handler: v1beta1.ProposalHandler, RouteKey: govtypes.RouterKey}
|
||||
|
||||
return ModuleOutputs{Module: m, Keeper: k, HandlerRoute: hr}
|
||||
|
||||
@ -13,6 +13,7 @@ import (
|
||||
"cosmossdk.io/core/header"
|
||||
"cosmossdk.io/depinject"
|
||||
"cosmossdk.io/log"
|
||||
_ "cosmossdk.io/x/protocolpool"
|
||||
|
||||
"github.com/cosmos/cosmos-sdk/client"
|
||||
"github.com/cosmos/cosmos-sdk/runtime"
|
||||
@ -27,8 +28,6 @@ import (
|
||||
bankkeeper "github.com/cosmos/cosmos-sdk/x/bank/keeper"
|
||||
"github.com/cosmos/cosmos-sdk/x/bank/testutil"
|
||||
_ "github.com/cosmos/cosmos-sdk/x/consensus"
|
||||
_ "github.com/cosmos/cosmos-sdk/x/distribution"
|
||||
dk "github.com/cosmos/cosmos-sdk/x/distribution/keeper"
|
||||
_ "github.com/cosmos/cosmos-sdk/x/gov"
|
||||
"github.com/cosmos/cosmos-sdk/x/gov/keeper"
|
||||
"github.com/cosmos/cosmos-sdk/x/gov/simulation"
|
||||
@ -404,13 +403,12 @@ func TestSimulateMsgVoteWeighted(t *testing.T) {
|
||||
}
|
||||
|
||||
type suite struct {
|
||||
TxConfig client.TxConfig
|
||||
AccountKeeper authkeeper.AccountKeeper
|
||||
BankKeeper bankkeeper.Keeper
|
||||
GovKeeper *keeper.Keeper
|
||||
StakingKeeper *stakingkeeper.Keeper
|
||||
DistributionKeeper dk.Keeper
|
||||
App *runtime.App
|
||||
TxConfig client.TxConfig
|
||||
AccountKeeper authkeeper.AccountKeeper
|
||||
BankKeeper bankkeeper.Keeper
|
||||
GovKeeper *keeper.Keeper
|
||||
StakingKeeper *stakingkeeper.Keeper
|
||||
App *runtime.App
|
||||
}
|
||||
|
||||
// returns context and an app with updated mint keeper
|
||||
@ -426,12 +424,12 @@ func createTestSuite(t *testing.T, isCheckTx bool) (suite, sdk.Context) {
|
||||
configurator.BankModule(),
|
||||
configurator.StakingModule(),
|
||||
configurator.ConsensusModule(),
|
||||
configurator.DistributionModule(),
|
||||
configurator.GovModule(),
|
||||
configurator.ProtocolPoolModule(),
|
||||
),
|
||||
depinject.Supply(log.NewNopLogger()),
|
||||
),
|
||||
&res.TxConfig, &res.AccountKeeper, &res.BankKeeper, &res.GovKeeper, &res.StakingKeeper, &res.DistributionKeeper)
|
||||
&res.TxConfig, &res.AccountKeeper, &res.BankKeeper, &res.GovKeeper, &res.StakingKeeper)
|
||||
require.NoError(t, err)
|
||||
|
||||
ctx := app.BaseApp.NewContext(isCheckTx)
|
||||
|
||||
@ -26,6 +26,11 @@ type BankKeeper interface {
|
||||
bankkeeper.Keeper
|
||||
}
|
||||
|
||||
// PoolKeeper extends the gov's actual expected PoolKeeper.
|
||||
type PoolKeeper interface {
|
||||
FundCommunityPool(ctx context.Context, amount sdk.Coins, sender sdk.AccAddress) error
|
||||
}
|
||||
|
||||
// StakingKeeper extends gov's actual expected StakingKeeper with additional
|
||||
// methods used in tests.
|
||||
type StakingKeeper interface {
|
||||
@ -34,8 +39,3 @@ type StakingKeeper interface {
|
||||
BondDenom(ctx context.Context) (string, error)
|
||||
TokensFromConsensusPower(ctx context.Context, power int64) math.Int
|
||||
}
|
||||
|
||||
// DistributionKeeper defines the expected distribution keeper
|
||||
type DistributionKeeper interface {
|
||||
FundCommunityPool(ctx context.Context, amount sdk.Coins, sender sdk.AccAddress) error
|
||||
}
|
||||
|
||||
@ -1012,6 +1012,43 @@ func (mr *MockBankKeeperMockRecorder) WithMintCoinsRestriction(arg0 interface{})
|
||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "WithMintCoinsRestriction", reflect.TypeOf((*MockBankKeeper)(nil).WithMintCoinsRestriction), arg0)
|
||||
}
|
||||
|
||||
// MockPoolKeeper is a mock of PoolKeeper interface.
|
||||
type MockPoolKeeper struct {
|
||||
ctrl *gomock.Controller
|
||||
recorder *MockPoolKeeperMockRecorder
|
||||
}
|
||||
|
||||
// MockPoolKeeperMockRecorder is the mock recorder for MockPoolKeeper.
|
||||
type MockPoolKeeperMockRecorder struct {
|
||||
mock *MockPoolKeeper
|
||||
}
|
||||
|
||||
// NewMockPoolKeeper creates a new mock instance.
|
||||
func NewMockPoolKeeper(ctrl *gomock.Controller) *MockPoolKeeper {
|
||||
mock := &MockPoolKeeper{ctrl: ctrl}
|
||||
mock.recorder = &MockPoolKeeperMockRecorder{mock}
|
||||
return mock
|
||||
}
|
||||
|
||||
// EXPECT returns an object that allows the caller to indicate expected use.
|
||||
func (m *MockPoolKeeper) EXPECT() *MockPoolKeeperMockRecorder {
|
||||
return m.recorder
|
||||
}
|
||||
|
||||
// FundCommunityPool mocks base method.
|
||||
func (m *MockPoolKeeper) FundCommunityPool(ctx context.Context, amount types.Coins, sender types.AccAddress) error {
|
||||
m.ctrl.T.Helper()
|
||||
ret := m.ctrl.Call(m, "FundCommunityPool", ctx, amount, sender)
|
||||
ret0, _ := ret[0].(error)
|
||||
return ret0
|
||||
}
|
||||
|
||||
// FundCommunityPool indicates an expected call of FundCommunityPool.
|
||||
func (mr *MockPoolKeeperMockRecorder) FundCommunityPool(ctx, amount, sender interface{}) *gomock.Call {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "FundCommunityPool", reflect.TypeOf((*MockPoolKeeper)(nil).FundCommunityPool), ctx, amount, sender)
|
||||
}
|
||||
|
||||
// MockStakingKeeper is a mock of StakingKeeper interface.
|
||||
type MockStakingKeeper struct {
|
||||
ctrl *gomock.Controller
|
||||
@ -1120,40 +1157,3 @@ func (mr *MockStakingKeeperMockRecorder) ValidatorAddressCodec() *gomock.Call {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ValidatorAddressCodec", reflect.TypeOf((*MockStakingKeeper)(nil).ValidatorAddressCodec))
|
||||
}
|
||||
|
||||
// MockDistributionKeeper is a mock of DistributionKeeper interface.
|
||||
type MockDistributionKeeper struct {
|
||||
ctrl *gomock.Controller
|
||||
recorder *MockDistributionKeeperMockRecorder
|
||||
}
|
||||
|
||||
// MockDistributionKeeperMockRecorder is the mock recorder for MockDistributionKeeper.
|
||||
type MockDistributionKeeperMockRecorder struct {
|
||||
mock *MockDistributionKeeper
|
||||
}
|
||||
|
||||
// NewMockDistributionKeeper creates a new mock instance.
|
||||
func NewMockDistributionKeeper(ctrl *gomock.Controller) *MockDistributionKeeper {
|
||||
mock := &MockDistributionKeeper{ctrl: ctrl}
|
||||
mock.recorder = &MockDistributionKeeperMockRecorder{mock}
|
||||
return mock
|
||||
}
|
||||
|
||||
// EXPECT returns an object that allows the caller to indicate expected use.
|
||||
func (m *MockDistributionKeeper) EXPECT() *MockDistributionKeeperMockRecorder {
|
||||
return m.recorder
|
||||
}
|
||||
|
||||
// FundCommunityPool mocks base method.
|
||||
func (m *MockDistributionKeeper) FundCommunityPool(ctx context.Context, amount types.Coins, sender types.AccAddress) error {
|
||||
m.ctrl.T.Helper()
|
||||
ret := m.ctrl.Call(m, "FundCommunityPool", ctx, amount, sender)
|
||||
ret0, _ := ret[0].(error)
|
||||
return ret0
|
||||
}
|
||||
|
||||
// FundCommunityPool indicates an expected call of FundCommunityPool.
|
||||
func (mr *MockDistributionKeeperMockRecorder) FundCommunityPool(ctx, amount, sender interface{}) *gomock.Call {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "FundCommunityPool", reflect.TypeOf((*MockDistributionKeeper)(nil).FundCommunityPool), ctx, amount, sender)
|
||||
}
|
||||
|
||||
@ -25,11 +25,6 @@ type StakingKeeper interface {
|
||||
) error
|
||||
}
|
||||
|
||||
// DistributionKeeper defines the expected distribution keeper (noalias)
|
||||
type DistributionKeeper interface {
|
||||
FundCommunityPool(ctx context.Context, amount sdk.Coins, sender sdk.AccAddress) error
|
||||
}
|
||||
|
||||
// AccountKeeper defines the expected account keeper (noalias)
|
||||
type AccountKeeper interface {
|
||||
AddressCodec() addresscodec.Codec
|
||||
@ -55,6 +50,11 @@ type BankKeeper interface {
|
||||
BurnCoins(context.Context, []byte, sdk.Coins) error
|
||||
}
|
||||
|
||||
// PoolKeeper defines the expected interface needed to fund & distribute pool balances.
|
||||
type PoolKeeper interface {
|
||||
FundCommunityPool(ctx context.Context, amount sdk.Coins, sender sdk.AccAddress) error
|
||||
}
|
||||
|
||||
// Event Hooks
|
||||
// These can be utilized to communicate between a governance keeper and another
|
||||
// keepers.
|
||||
|
||||
@ -19,7 +19,7 @@ require (
|
||||
github.com/grpc-ecosystem/grpc-gateway v1.16.0
|
||||
github.com/spf13/cobra v1.7.0
|
||||
github.com/stretchr/testify v1.8.4
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20230803162519-f966b187b2e5
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20230822172742-b8732ec3820d
|
||||
google.golang.org/grpc v1.58.2
|
||||
)
|
||||
|
||||
@ -153,3 +153,5 @@ require (
|
||||
)
|
||||
|
||||
replace github.com/cosmos/cosmos-sdk => ../../.
|
||||
|
||||
replace cosmossdk.io/api => ../../api
|
||||
|
||||
@ -35,8 +35,6 @@ cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohl
|
||||
cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs=
|
||||
cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0=
|
||||
cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo=
|
||||
cosmossdk.io/api v0.7.1 h1:PNQ1xN8+/0hj/sSD0ANqjkgfXFys+bZ5L8Hg7uzoUTU=
|
||||
cosmossdk.io/api v0.7.1/go.mod h1:ure9edhcROIHsngavM6mBLilMGFnfjhV/AaYhEMUkdo=
|
||||
cosmossdk.io/collections v0.4.0 h1:PFmwj2W8szgpD5nOd8GWH6AbYNi1f2J6akWXJ7P5t9s=
|
||||
cosmossdk.io/collections v0.4.0/go.mod h1:oa5lUING2dP+gdDquow+QjlF45eL1t4TJDypgGd+tv0=
|
||||
cosmossdk.io/core v0.12.0 h1:aFuvkG6eDv0IQC+UDjx86wxNWVAxdCFk7OABJ1Vh4RU=
|
||||
@ -51,6 +49,8 @@ cosmossdk.io/math v1.1.3-rc.1 h1:NebCNWDqb1MJRNfvxr4YY7d8FSYgkuB3L75K6xvM+Zo=
|
||||
cosmossdk.io/math v1.1.3-rc.1/go.mod h1:l2Gnda87F0su8a/7FEKJfFdJrM0JZRXQaohlgJeyQh0=
|
||||
cosmossdk.io/store v1.0.0-rc.0 h1:9DwOjuUYxDtYxn/REkTxGQAmxlIGfRroB35MQ8TrxF4=
|
||||
cosmossdk.io/store v1.0.0-rc.0/go.mod h1:FtBDOJmwtOZfmKKF65bKZbTYgS3bDNjjo3nP76dAegk=
|
||||
cosmossdk.io/x/protocolpool v0.0.0-20230925135524-a1bc045b3190 h1:XQJj9Dv9Gtze0l2TF79BU5lkP6MkUveTUuKICmxoz+o=
|
||||
cosmossdk.io/x/protocolpool v0.0.0-20230925135524-a1bc045b3190/go.mod h1:7WUGupOvmlHJoIMBz1JbObQxeo6/TDiuDBxmtod8HRg=
|
||||
cosmossdk.io/x/tx v0.10.0 h1:LxWF/hksVDbeQmFj4voLM5ZCHyVZ1cCNIqKenfH9plc=
|
||||
cosmossdk.io/x/tx v0.10.0/go.mod h1:MKo9/b5wsoL8dd9y9pvD2yOP1CMvzHIWYxi1l2oLPFo=
|
||||
dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
|
||||
@ -1170,8 +1170,8 @@ google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6D
|
||||
google.golang.org/genproto v0.0.0-20220314164441-57ef72a4c106/go.mod h1:hAL49I2IFola2sVEjAn7MEwsja0xp51I0tlGAf9hz4E=
|
||||
google.golang.org/genproto v0.0.0-20230913181813-007df8e322eb h1:XFBgcDwm7irdHTbz4Zk2h7Mh+eis4nfJEFQFYzJzuIA=
|
||||
google.golang.org/genproto v0.0.0-20230913181813-007df8e322eb/go.mod h1:yZTlhN0tQnXo3h00fuXNCxJdLdIdnVFVBaRJ5LWBbw4=
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20230803162519-f966b187b2e5 h1:nIgk/EEq3/YlnmVVXVnm14rC2oxgs1o0ong4sD/rd44=
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20230803162519-f966b187b2e5/go.mod h1:5DZzOUPCLYL3mNkQ0ms0F3EuUNZ7py1Bqeq6sxzI7/Q=
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20230822172742-b8732ec3820d h1:DoPTO70H+bcDXcd39vOqb2viZxgqeBeSGtZ55yZU4/Q=
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20230822172742-b8732ec3820d/go.mod h1:KjSP20unUpOx5kyQUFa7k4OJg0qeJ7DEZflGDu2p6Bk=
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20230920204549-e6e6cdab5c13 h1:N3bU/SQDCDyD6R528GJ/PwW9KjYcJA3dgyH+MovAkIM=
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20230920204549-e6e6cdab5c13/go.mod h1:KSqppvjFjtoCI+KGd4PELB0qLNxdJHRGqRI09mB6pQA=
|
||||
google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs=
|
||||
|
||||
33
x/protocolpool/README.md
Normal file
33
x/protocolpool/README.md
Normal file
@ -0,0 +1,33 @@
|
||||
---
|
||||
sidebar_position: 1
|
||||
---
|
||||
|
||||
# `x/protocolpool`
|
||||
|
||||
Functionality to handle community pool funds. This provides a separate module account for community pool making it easier to track the pool assets. We no longer track community pool assets in distribution module, but instead in this protocolpool module. Funds are migrated from the distribution module's community pool to protocolpool's module account.
|
||||
|
||||
## Concepts
|
||||
|
||||
## State
|
||||
|
||||
## State Transitions
|
||||
|
||||
## Messages
|
||||
|
||||
## Begin Block
|
||||
|
||||
## End Block
|
||||
|
||||
## Hooks
|
||||
|
||||
## Events
|
||||
|
||||
## Client
|
||||
|
||||
## Params
|
||||
|
||||
## Future Improvements
|
||||
|
||||
## Tests
|
||||
|
||||
## Appendix
|
||||
39
x/protocolpool/autocli.go
Normal file
39
x/protocolpool/autocli.go
Normal file
@ -0,0 +1,39 @@
|
||||
package protocolpool
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
autocliv1 "cosmossdk.io/api/cosmos/autocli/v1"
|
||||
poolv1 "cosmossdk.io/api/cosmos/protocolpool/v1"
|
||||
|
||||
"github.com/cosmos/cosmos-sdk/version"
|
||||
)
|
||||
|
||||
// AutoCLIOptions implements the autocli.HasAutoCLIConfig interface.
|
||||
func (am AppModule) AutoCLIOptions() *autocliv1.ModuleOptions {
|
||||
return &autocliv1.ModuleOptions{
|
||||
Query: &autocliv1.ServiceCommandDescriptor{
|
||||
Service: poolv1.Query_ServiceDesc.ServiceName,
|
||||
RpcCommandOptions: []*autocliv1.RpcCommandOptions{
|
||||
{
|
||||
RpcMethod: "CommunityPool",
|
||||
Use: "community-pool",
|
||||
Short: "Query the amount of coins in the community pool",
|
||||
Example: fmt.Sprintf(`$ %s query pool community-pool`, version.AppName),
|
||||
},
|
||||
},
|
||||
},
|
||||
Tx: &autocliv1.ServiceCommandDescriptor{
|
||||
Service: poolv1.Msg_ServiceDesc.ServiceName,
|
||||
RpcCommandOptions: []*autocliv1.RpcCommandOptions{
|
||||
{
|
||||
RpcMethod: "FundCommunityPool",
|
||||
Use: "fund-community-pool [amount]",
|
||||
Short: "Funds the community pool with the specified amount",
|
||||
Example: fmt.Sprintf(`$ %s tx pool fund-community-pool 100uatom --from mykey`, version.AppName),
|
||||
PositionalArgs: []*autocliv1.PositionalArgDescriptor{{ProtoField: "amount"}},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
||||
159
x/protocolpool/go.mod
Normal file
159
x/protocolpool/go.mod
Normal file
@ -0,0 +1,159 @@
|
||||
module cosmossdk.io/x/protocolpool
|
||||
|
||||
go 1.21
|
||||
|
||||
require (
|
||||
cosmossdk.io/api v0.7.1
|
||||
cosmossdk.io/core v0.12.0
|
||||
cosmossdk.io/depinject v1.0.0-alpha.4
|
||||
cosmossdk.io/errors v1.0.0
|
||||
cosmossdk.io/log v1.2.1
|
||||
github.com/cometbft/cometbft v0.38.0
|
||||
github.com/cosmos/cosmos-proto v1.0.0-beta.3
|
||||
github.com/cosmos/cosmos-sdk v0.51.0
|
||||
github.com/cosmos/gogoproto v1.4.11
|
||||
github.com/golang/mock v1.6.0
|
||||
github.com/golang/protobuf v1.5.3
|
||||
github.com/grpc-ecosystem/grpc-gateway v1.16.0
|
||||
github.com/stretchr/testify v1.8.4
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20230822172742-b8732ec3820d
|
||||
google.golang.org/grpc v1.58.2
|
||||
gotest.tools/v3 v3.5.1
|
||||
)
|
||||
|
||||
require (
|
||||
cosmossdk.io/collections v0.4.0 // indirect
|
||||
cosmossdk.io/math v1.1.3-rc.1 // indirect
|
||||
cosmossdk.io/store v1.0.0-rc.0 // indirect
|
||||
cosmossdk.io/x/tx v0.10.0 // indirect
|
||||
filippo.io/edwards25519 v1.0.0 // indirect
|
||||
github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect
|
||||
github.com/99designs/keyring v1.2.1 // indirect
|
||||
github.com/DataDog/zstd v1.5.5 // indirect
|
||||
github.com/beorn7/perks v1.0.1 // indirect
|
||||
github.com/bgentry/speakeasy v0.1.1-0.20220910012023-760eaf8b6816 // indirect
|
||||
github.com/btcsuite/btcd/btcec/v2 v2.3.2 // indirect
|
||||
github.com/cenkalti/backoff/v4 v4.1.3 // indirect
|
||||
github.com/cespare/xxhash v1.1.0 // indirect
|
||||
github.com/cespare/xxhash/v2 v2.2.0 // indirect
|
||||
github.com/chzyer/readline v1.5.1 // indirect
|
||||
github.com/cockroachdb/errors v1.11.1 // indirect
|
||||
github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b // indirect
|
||||
github.com/cockroachdb/pebble v0.0.0-20230824192853-9bb0864bdb98 // indirect
|
||||
github.com/cockroachdb/redact v1.1.5 // indirect
|
||||
github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06 // indirect
|
||||
github.com/cometbft/cometbft-db v0.8.0 // indirect
|
||||
github.com/cosmos/btcutil v1.0.5 // indirect
|
||||
github.com/cosmos/cosmos-db v1.0.0 // indirect
|
||||
github.com/cosmos/go-bip39 v1.0.0 // indirect
|
||||
github.com/cosmos/gogogateway v1.2.0 // indirect
|
||||
github.com/cosmos/iavl v1.0.0-rc.1 // indirect
|
||||
github.com/cosmos/ics23/go v0.10.0 // indirect
|
||||
github.com/cosmos/ledger-cosmos-go v0.13.0 // indirect
|
||||
github.com/danieljoos/wincred v1.1.2 // indirect
|
||||
github.com/davecgh/go-spew v1.1.1 // indirect
|
||||
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 // indirect
|
||||
github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f // indirect
|
||||
github.com/dgraph-io/badger/v2 v2.2007.4 // indirect
|
||||
github.com/dgraph-io/ristretto v0.1.1 // indirect
|
||||
github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 // indirect
|
||||
github.com/dustin/go-humanize v1.0.1 // indirect
|
||||
github.com/dvsekhvalnov/jose2go v1.5.0 // indirect
|
||||
github.com/emicklei/dot v1.6.0 // indirect
|
||||
github.com/fatih/color v1.15.0 // indirect
|
||||
github.com/felixge/httpsnoop v1.0.2 // indirect
|
||||
github.com/fsnotify/fsnotify v1.6.0 // indirect
|
||||
github.com/getsentry/sentry-go v0.23.0 // indirect
|
||||
github.com/go-kit/kit v0.12.0 // indirect
|
||||
github.com/go-kit/log v0.2.1 // indirect
|
||||
github.com/go-logfmt/logfmt v0.6.0 // indirect
|
||||
github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 // indirect
|
||||
github.com/gogo/googleapis v1.4.1 // indirect
|
||||
github.com/gogo/protobuf v1.3.2 // indirect
|
||||
github.com/golang/glog v1.1.0 // indirect
|
||||
github.com/golang/snappy v0.0.4 // indirect
|
||||
github.com/google/btree v1.1.2 // indirect
|
||||
github.com/google/go-cmp v0.5.9 // indirect
|
||||
github.com/google/orderedcode v0.0.1 // indirect
|
||||
github.com/gorilla/handlers v1.5.1 // indirect
|
||||
github.com/gorilla/mux v1.8.0 // indirect
|
||||
github.com/gorilla/websocket v1.5.0 // indirect
|
||||
github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 // indirect
|
||||
github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c // indirect
|
||||
github.com/hashicorp/go-hclog v1.5.0 // indirect
|
||||
github.com/hashicorp/go-immutable-radix v1.3.1 // indirect
|
||||
github.com/hashicorp/go-metrics v0.5.1 // indirect
|
||||
github.com/hashicorp/go-plugin v1.5.1 // indirect
|
||||
github.com/hashicorp/golang-lru v1.0.2 // indirect
|
||||
github.com/hashicorp/hcl v1.0.0 // indirect
|
||||
github.com/hashicorp/yamux v0.1.1 // indirect
|
||||
github.com/hdevalence/ed25519consensus v0.1.0 // indirect
|
||||
github.com/huandu/skiplist v1.2.0 // indirect
|
||||
github.com/iancoleman/strcase v0.3.0 // indirect
|
||||
github.com/improbable-eng/grpc-web v0.15.0 // indirect
|
||||
github.com/inconshreveable/mousetrap v1.1.0 // indirect
|
||||
github.com/jmhodges/levigo v1.0.0 // indirect
|
||||
github.com/klauspost/compress v1.16.7 // indirect
|
||||
github.com/kr/pretty v0.3.1 // indirect
|
||||
github.com/kr/text v0.2.0 // indirect
|
||||
github.com/lib/pq v1.10.7 // indirect
|
||||
github.com/libp2p/go-buffer-pool v0.1.0 // indirect
|
||||
github.com/linxGnu/grocksdb v1.8.0 // indirect
|
||||
github.com/magiconair/properties v1.8.7 // indirect
|
||||
github.com/manifoldco/promptui v0.9.0 // indirect
|
||||
github.com/mattn/go-colorable v0.1.13 // indirect
|
||||
github.com/mattn/go-isatty v0.0.19 // indirect
|
||||
github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect
|
||||
github.com/minio/highwayhash v1.0.2 // indirect
|
||||
github.com/mitchellh/go-testing-interface v1.14.1 // indirect
|
||||
github.com/mitchellh/mapstructure v1.5.0 // indirect
|
||||
github.com/mtibben/percent v0.2.1 // indirect
|
||||
github.com/oasisprotocol/curve25519-voi v0.0.0-20230110094441-db37f07504ce // indirect
|
||||
github.com/oklog/run v1.1.0 // indirect
|
||||
github.com/pelletier/go-toml/v2 v2.0.9 // indirect
|
||||
github.com/petermattis/goid v0.0.0-20230808133559-b036b712a89b // indirect
|
||||
github.com/pkg/errors v0.9.1 // indirect
|
||||
github.com/pmezard/go-difflib v1.0.0 // indirect
|
||||
github.com/prometheus/client_golang v1.16.0 // indirect
|
||||
github.com/prometheus/client_model v0.4.0 // indirect
|
||||
github.com/prometheus/common v0.44.0 // indirect
|
||||
github.com/prometheus/procfs v0.11.1 // indirect
|
||||
github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect
|
||||
github.com/rogpeppe/go-internal v1.11.0 // indirect
|
||||
github.com/rs/cors v1.8.3 // indirect
|
||||
github.com/rs/zerolog v1.31.0 // indirect
|
||||
github.com/sasha-s/go-deadlock v0.3.1 // indirect
|
||||
github.com/spf13/afero v1.9.5 // indirect
|
||||
github.com/spf13/cast v1.5.1 // indirect
|
||||
github.com/spf13/cobra v1.7.0 // indirect
|
||||
github.com/spf13/jwalterweatherman v1.1.0 // indirect
|
||||
github.com/spf13/pflag v1.0.5 // indirect
|
||||
github.com/spf13/viper v1.16.0 // indirect
|
||||
github.com/subosito/gotenv v1.4.2 // indirect
|
||||
github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d // indirect
|
||||
github.com/tendermint/go-amino v0.16.0 // indirect
|
||||
github.com/tidwall/btree v1.7.0 // indirect
|
||||
github.com/zondax/hid v0.9.1 // indirect
|
||||
github.com/zondax/ledger-go v0.14.1 // indirect
|
||||
go.etcd.io/bbolt v1.3.7 // indirect
|
||||
golang.org/x/crypto v0.13.0 // indirect
|
||||
golang.org/x/exp v0.0.0-20230817173708-d852ddb80c63 // indirect
|
||||
golang.org/x/net v0.15.0 // indirect
|
||||
golang.org/x/sync v0.3.0 // indirect
|
||||
golang.org/x/sys v0.12.0 // indirect
|
||||
golang.org/x/term v0.12.0 // indirect
|
||||
golang.org/x/text v0.13.0 // indirect
|
||||
google.golang.org/genproto v0.0.0-20230913181813-007df8e322eb // indirect
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20230920204549-e6e6cdab5c13 // indirect
|
||||
google.golang.org/protobuf v1.31.0 // indirect
|
||||
gopkg.in/ini.v1 v1.67.0 // indirect
|
||||
gopkg.in/yaml.v2 v2.4.0 // indirect
|
||||
gopkg.in/yaml.v3 v3.0.1 // indirect
|
||||
nhooyr.io/websocket v1.8.6 // indirect
|
||||
pgregory.net/rapid v1.1.0 // indirect
|
||||
sigs.k8s.io/yaml v1.3.0 // indirect
|
||||
)
|
||||
|
||||
replace github.com/cosmos/cosmos-sdk => ../../.
|
||||
|
||||
replace cosmossdk.io/api => ../../api
|
||||
1275
x/protocolpool/go.sum
Normal file
1275
x/protocolpool/go.sum
Normal file
File diff suppressed because it is too large
Load Diff
29
x/protocolpool/keeper/grpc_query.go
Normal file
29
x/protocolpool/keeper/grpc_query.go
Normal file
@ -0,0 +1,29 @@
|
||||
package keeper
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"cosmossdk.io/x/protocolpool/types"
|
||||
|
||||
sdk "github.com/cosmos/cosmos-sdk/types"
|
||||
)
|
||||
|
||||
var _ types.QueryServer = Querier{}
|
||||
|
||||
type Querier struct {
|
||||
Keeper
|
||||
}
|
||||
|
||||
func NewQuerier(keeper Keeper) Querier {
|
||||
return Querier{Keeper: keeper}
|
||||
}
|
||||
|
||||
// CommunityPool queries the community pool coins
|
||||
func (k Querier) CommunityPool(ctx context.Context, req *types.QueryCommunityPoolRequest) (*types.QueryCommunityPoolResponse, error) {
|
||||
amount, err := k.Keeper.GetCommunityPool(ctx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
decCoins := sdk.NewDecCoinsFromCoins(amount...)
|
||||
return &types.QueryCommunityPoolResponse{Pool: decCoins}, nil
|
||||
}
|
||||
69
x/protocolpool/keeper/keeper.go
Normal file
69
x/protocolpool/keeper/keeper.go
Normal file
@ -0,0 +1,69 @@
|
||||
package keeper
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
|
||||
storetypes "cosmossdk.io/core/store"
|
||||
errorsmod "cosmossdk.io/errors"
|
||||
"cosmossdk.io/log"
|
||||
"cosmossdk.io/x/protocolpool/types"
|
||||
|
||||
"github.com/cosmos/cosmos-sdk/codec"
|
||||
sdk "github.com/cosmos/cosmos-sdk/types"
|
||||
sdkerrors "github.com/cosmos/cosmos-sdk/types/errors"
|
||||
)
|
||||
|
||||
type Keeper struct {
|
||||
storeService storetypes.KVStoreService
|
||||
authKeeper types.AccountKeeper
|
||||
bankKeeper types.BankKeeper
|
||||
|
||||
authority string
|
||||
}
|
||||
|
||||
func NewKeeper(cdc codec.BinaryCodec, storeService storetypes.KVStoreService,
|
||||
ak types.AccountKeeper, bk types.BankKeeper, authority string,
|
||||
) Keeper {
|
||||
// ensure pool module account is set
|
||||
if addr := ak.GetModuleAddress(types.ModuleName); addr == nil {
|
||||
panic(fmt.Sprintf("%s module account has not been set", types.ModuleName))
|
||||
}
|
||||
return Keeper{
|
||||
storeService: storeService,
|
||||
authKeeper: ak,
|
||||
bankKeeper: bk,
|
||||
authority: authority,
|
||||
}
|
||||
}
|
||||
|
||||
// GetAuthority returns the x/protocolpool module's authority.
|
||||
func (k Keeper) GetAuthority() string {
|
||||
return k.authority
|
||||
}
|
||||
|
||||
// Logger returns a module-specific logger.
|
||||
func (k Keeper) Logger(ctx context.Context) log.Logger {
|
||||
sdkCtx := sdk.UnwrapSDKContext(ctx)
|
||||
return sdkCtx.Logger().With(log.ModuleKey, "x/"+types.ModuleName)
|
||||
}
|
||||
|
||||
// FundCommunityPool allows an account to directly fund the community fund pool.
|
||||
func (k Keeper) FundCommunityPool(ctx context.Context, amount sdk.Coins, sender sdk.AccAddress) error {
|
||||
return k.bankKeeper.SendCoinsFromAccountToModule(ctx, sender, types.ModuleName, amount)
|
||||
}
|
||||
|
||||
// DistributeFromFeePool distributes funds from the protocolpool module account to
|
||||
// a receiver address.
|
||||
func (k Keeper) DistributeFromFeePool(ctx context.Context, amount sdk.Coins, receiveAddr sdk.AccAddress) error {
|
||||
return k.bankKeeper.SendCoinsFromModuleToAccount(ctx, types.ModuleName, receiveAddr, amount)
|
||||
}
|
||||
|
||||
// GetCommunityPool get the community pool balance.
|
||||
func (k Keeper) GetCommunityPool(ctx context.Context) (sdk.Coins, error) {
|
||||
moduleAccount := k.authKeeper.GetModuleAccount(ctx, types.ModuleName)
|
||||
if moduleAccount == nil {
|
||||
return nil, errorsmod.Wrapf(sdkerrors.ErrUnknownAddress, "module account %s does not exist", moduleAccount)
|
||||
}
|
||||
return k.bankKeeper.GetAllBalances(ctx, moduleAccount.GetAddress()), nil
|
||||
}
|
||||
90
x/protocolpool/keeper/msg_server.go
Normal file
90
x/protocolpool/keeper/msg_server.go
Normal file
@ -0,0 +1,90 @@
|
||||
package keeper
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"cosmossdk.io/errors"
|
||||
"cosmossdk.io/x/protocolpool/types"
|
||||
|
||||
sdk "github.com/cosmos/cosmos-sdk/types"
|
||||
sdkerrors "github.com/cosmos/cosmos-sdk/types/errors"
|
||||
)
|
||||
|
||||
type MsgServer struct {
|
||||
Keeper
|
||||
}
|
||||
|
||||
var _ types.MsgServer = MsgServer{}
|
||||
|
||||
// NewMsgServerImpl returns an implementation of the protocolpool MsgServer interface
|
||||
// for the provided Keeper.
|
||||
func NewMsgServerImpl(keeper Keeper) types.MsgServer {
|
||||
return &MsgServer{Keeper: keeper}
|
||||
}
|
||||
|
||||
func (k MsgServer) FundCommunityPool(ctx context.Context, msg *types.MsgFundCommunityPool) (*types.MsgFundCommunityPoolResponse, error) {
|
||||
depositor, err := k.authKeeper.AddressCodec().StringToBytes(msg.Depositor)
|
||||
if err != nil {
|
||||
return nil, sdkerrors.ErrInvalidAddress.Wrapf("invalid depositor address: %s", err)
|
||||
}
|
||||
|
||||
if err := validateAmount(msg.Amount); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
// send funds to community pool module account
|
||||
if err := k.Keeper.FundCommunityPool(ctx, msg.Amount, depositor); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return &types.MsgFundCommunityPoolResponse{}, nil
|
||||
}
|
||||
|
||||
func (k MsgServer) CommunityPoolSpend(ctx context.Context, msg *types.MsgCommunityPoolSpend) (*types.MsgCommunityPoolSpendResponse, error) {
|
||||
if err := k.validateAuthority(msg.Authority); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if err := validateAmount(msg.Amount); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
recipient, err := k.authKeeper.AddressCodec().StringToBytes(msg.Recipient)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
// distribute funds from community pool module account
|
||||
if err := k.Keeper.DistributeFromFeePool(ctx, msg.Amount, recipient); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
logger := k.Logger(ctx)
|
||||
logger.Info("transferred from the community pool to recipient", "amount", msg.Amount.String(), "recipient", msg.Recipient)
|
||||
|
||||
return &types.MsgCommunityPoolSpendResponse{}, nil
|
||||
}
|
||||
|
||||
func (k *Keeper) validateAuthority(authority string) error {
|
||||
if _, err := k.authKeeper.AddressCodec().StringToBytes(authority); err != nil {
|
||||
return sdkerrors.ErrInvalidAddress.Wrapf("invalid authority address: %s", err)
|
||||
}
|
||||
|
||||
if k.authority != authority {
|
||||
return errors.Wrapf(types.ErrInvalidSigner, "invalid authority; expected %s, got %s", k.authority, authority)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func validateAmount(amount sdk.Coins) error {
|
||||
if amount == nil {
|
||||
return errors.Wrap(sdkerrors.ErrInvalidCoins, "amount cannot be nil")
|
||||
}
|
||||
|
||||
if err := amount.Validate(); err != nil {
|
||||
return errors.Wrap(sdkerrors.ErrInvalidCoins, amount.String())
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
163
x/protocolpool/module.go
Normal file
163
x/protocolpool/module.go
Normal file
@ -0,0 +1,163 @@
|
||||
package protocolpool
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
gwruntime "github.com/grpc-ecosystem/grpc-gateway/runtime"
|
||||
|
||||
modulev1 "cosmossdk.io/api/cosmos/protocolpool/module/v1"
|
||||
"cosmossdk.io/core/appmodule"
|
||||
storetypes "cosmossdk.io/core/store"
|
||||
"cosmossdk.io/depinject"
|
||||
"cosmossdk.io/x/protocolpool/keeper"
|
||||
"cosmossdk.io/x/protocolpool/simulation"
|
||||
"cosmossdk.io/x/protocolpool/types"
|
||||
|
||||
"github.com/cosmos/cosmos-sdk/client"
|
||||
"github.com/cosmos/cosmos-sdk/codec"
|
||||
codectypes "github.com/cosmos/cosmos-sdk/codec/types"
|
||||
"github.com/cosmos/cosmos-sdk/types/module"
|
||||
simtypes "github.com/cosmos/cosmos-sdk/types/simulation"
|
||||
authtypes "github.com/cosmos/cosmos-sdk/x/auth/types"
|
||||
)
|
||||
|
||||
// ConsensusVersion defines the current x/protocolpool module consensus version.
|
||||
const ConsensusVersion = 1
|
||||
|
||||
var (
|
||||
_ module.AppModuleBasic = AppModule{}
|
||||
|
||||
_ module.AppModule = AppModule{}
|
||||
_ module.AppModuleSimulation = AppModule{}
|
||||
)
|
||||
|
||||
// AppModuleBasic defines the basic application module used by the pool module.
|
||||
type AppModuleBasic struct {
|
||||
cdc codec.Codec
|
||||
}
|
||||
|
||||
// Name returns the pool module's name.
|
||||
func (AppModuleBasic) Name() string { return types.ModuleName }
|
||||
|
||||
// RegisterLegacyAminoCodec registers the pool module's types on the LegacyAmino codec.
|
||||
func (AppModuleBasic) RegisterLegacyAminoCodec(cdc *codec.LegacyAmino) {}
|
||||
|
||||
// RegisterGRPCGatewayRoutes registers the gRPC Gateway routes
|
||||
func (AppModuleBasic) RegisterGRPCGatewayRoutes(clientCtx client.Context, mux *gwruntime.ServeMux) {
|
||||
if err := types.RegisterQueryHandlerClient(context.Background(), mux, types.NewQueryClient(clientCtx)); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
}
|
||||
|
||||
// RegisterInterfaces registers interfaces and implementations of the bank module.
|
||||
func (AppModuleBasic) RegisterInterfaces(registry codectypes.InterfaceRegistry) {
|
||||
types.RegisterInterfaces(registry)
|
||||
}
|
||||
|
||||
// AppModule implements an application module for the pool module
|
||||
type AppModule struct {
|
||||
AppModuleBasic
|
||||
|
||||
keeper keeper.Keeper
|
||||
accountKeeper types.AccountKeeper
|
||||
bankKeeper types.BankKeeper
|
||||
}
|
||||
|
||||
var _ appmodule.AppModule = AppModule{}
|
||||
|
||||
// IsOnePerModuleType implements the depinject.OnePerModuleType interface.
|
||||
func (am AppModule) IsOnePerModuleType() {}
|
||||
|
||||
// IsAppModule implements the appmodule.AppModule interface.
|
||||
func (am AppModule) IsAppModule() {}
|
||||
|
||||
// RegisterServices registers module services.
|
||||
func (am AppModule) RegisterServices(cfg module.Configurator) {
|
||||
types.RegisterMsgServer(cfg.MsgServer(), keeper.NewMsgServerImpl(am.keeper))
|
||||
types.RegisterQueryServer(cfg.QueryServer(), keeper.NewQuerier(am.keeper))
|
||||
}
|
||||
|
||||
// NewAppModule creates a new AppModule object
|
||||
func NewAppModule(cdc codec.Codec, keeper keeper.Keeper,
|
||||
accountKeeper types.AccountKeeper, bankKeeper types.BankKeeper,
|
||||
) AppModule {
|
||||
return AppModule{
|
||||
AppModuleBasic: AppModuleBasic{cdc: cdc},
|
||||
keeper: keeper,
|
||||
accountKeeper: accountKeeper,
|
||||
bankKeeper: bankKeeper,
|
||||
}
|
||||
}
|
||||
|
||||
// ConsensusVersion implements AppModule/ConsensusVersion.
|
||||
func (AppModule) ConsensusVersion() uint64 { return ConsensusVersion }
|
||||
|
||||
//
|
||||
// App Wiring Setup
|
||||
//
|
||||
|
||||
func init() {
|
||||
appmodule.Register(
|
||||
&modulev1.Module{},
|
||||
appmodule.Provide(ProvideModule),
|
||||
)
|
||||
}
|
||||
|
||||
type ModuleInputs struct {
|
||||
depinject.In
|
||||
|
||||
Config *modulev1.Module
|
||||
Codec codec.Codec
|
||||
StoreService storetypes.KVStoreService
|
||||
|
||||
AccountKeeper types.AccountKeeper
|
||||
BankKeeper types.BankKeeper
|
||||
}
|
||||
|
||||
type ModuleOutputs struct {
|
||||
depinject.Out
|
||||
|
||||
Keeper keeper.Keeper
|
||||
Module appmodule.AppModule
|
||||
}
|
||||
|
||||
func ProvideModule(in ModuleInputs) ModuleOutputs {
|
||||
// default to governance authority if not provided
|
||||
authority := authtypes.NewModuleAddress("gov")
|
||||
if in.Config.Authority != "" {
|
||||
authority = authtypes.NewModuleAddressOrBech32Address(in.Config.Authority)
|
||||
}
|
||||
|
||||
k := keeper.NewKeeper(in.Codec, in.StoreService, in.AccountKeeper, in.BankKeeper, authority.String())
|
||||
m := NewAppModule(in.Codec, k, in.AccountKeeper, in.BankKeeper)
|
||||
|
||||
return ModuleOutputs{
|
||||
Keeper: k,
|
||||
Module: m,
|
||||
}
|
||||
}
|
||||
|
||||
// ____________________________________________________________________________
|
||||
|
||||
// AppModuleSimulation functions
|
||||
|
||||
// GenerateGenesisState creates a randomized GenState of the protocolpool module.
|
||||
func (AppModule) GenerateGenesisState(simState *module.SimulationState) {
|
||||
}
|
||||
|
||||
// RegisterStoreDecoder registers a decoder for protocolpool module's types
|
||||
func (am AppModule) RegisterStoreDecoder(sdr simtypes.StoreDecoderRegistry) {
|
||||
}
|
||||
|
||||
// ProposalMsgs returns all the protocolpool msgs used to simulate governance proposals.
|
||||
func (AppModule) ProposalMsgs(simState module.SimulationState) []simtypes.WeightedProposalMsg {
|
||||
return simulation.ProposalMsgs()
|
||||
}
|
||||
|
||||
// WeightedOperations returns the all the protocolpool module operations with their respective weights.
|
||||
func (am AppModule) WeightedOperations(simState module.SimulationState) []simtypes.WeightedOperation {
|
||||
return simulation.WeightedOperations(
|
||||
simState.AppParams, simState.Cdc, simState.TxConfig,
|
||||
am.accountKeeper, am.bankKeeper, am.keeper,
|
||||
)
|
||||
}
|
||||
91
x/protocolpool/simulation/operations.go
Normal file
91
x/protocolpool/simulation/operations.go
Normal file
@ -0,0 +1,91 @@
|
||||
package simulation
|
||||
|
||||
import (
|
||||
"math/rand"
|
||||
|
||||
"cosmossdk.io/x/protocolpool/keeper"
|
||||
"cosmossdk.io/x/protocolpool/types"
|
||||
|
||||
"github.com/cosmos/cosmos-sdk/baseapp"
|
||||
"github.com/cosmos/cosmos-sdk/client"
|
||||
"github.com/cosmos/cosmos-sdk/codec"
|
||||
sdk "github.com/cosmos/cosmos-sdk/types"
|
||||
simtypes "github.com/cosmos/cosmos-sdk/types/simulation"
|
||||
"github.com/cosmos/cosmos-sdk/x/simulation"
|
||||
)
|
||||
|
||||
// Simulation operation weights constants
|
||||
const (
|
||||
OpWeightMsgFundCommunityPool = "op_weight_msg_fund_community_pool"
|
||||
|
||||
DefaultWeightMsgFundCommunityPool int = 50
|
||||
)
|
||||
|
||||
// WeightedOperations returns all the operations from the module with their respective weights
|
||||
func WeightedOperations(
|
||||
appParams simtypes.AppParams,
|
||||
cdc codec.JSONCodec,
|
||||
txConfig client.TxConfig,
|
||||
ak types.AccountKeeper,
|
||||
bk types.BankKeeper,
|
||||
k keeper.Keeper,
|
||||
) simulation.WeightedOperations {
|
||||
var weightMsgFundCommunityPool int
|
||||
appParams.GetOrGenerate(OpWeightMsgFundCommunityPool, &weightMsgFundCommunityPool, nil, func(_ *rand.Rand) {
|
||||
weightMsgFundCommunityPool = DefaultWeightMsgFundCommunityPool
|
||||
})
|
||||
|
||||
return simulation.WeightedOperations{
|
||||
simulation.NewWeightedOperation(
|
||||
weightMsgFundCommunityPool,
|
||||
SimulateMsgFundCommunityPool(txConfig, ak, bk, k),
|
||||
),
|
||||
}
|
||||
}
|
||||
|
||||
// SimulateMsgFundCommunityPool simulates MsgFundCommunityPool execution where
|
||||
// a random account sends a random amount of its funds to the community pool.
|
||||
func SimulateMsgFundCommunityPool(txConfig client.TxConfig, ak types.AccountKeeper, bk types.BankKeeper, k keeper.Keeper) simtypes.Operation {
|
||||
return func(
|
||||
r *rand.Rand, app *baseapp.BaseApp, ctx sdk.Context, accs []simtypes.Account, chainID string,
|
||||
) (simtypes.OperationMsg, []simtypes.FutureOperation, error) {
|
||||
funder, _ := simtypes.RandomAcc(r, accs)
|
||||
|
||||
account := ak.GetAccount(ctx, funder.Address)
|
||||
spendable := bk.SpendableCoins(ctx, account.GetAddress())
|
||||
|
||||
fundAmount := simtypes.RandSubsetCoins(r, spendable)
|
||||
if fundAmount.Empty() {
|
||||
return simtypes.NoOpMsg(types.ModuleName, sdk.MsgTypeURL(&types.MsgFundCommunityPool{}), "fund amount is empty"), nil, nil
|
||||
}
|
||||
|
||||
var (
|
||||
fees sdk.Coins
|
||||
err error
|
||||
)
|
||||
|
||||
coins, hasNeg := spendable.SafeSub(fundAmount...)
|
||||
if !hasNeg {
|
||||
fees, err = simtypes.RandomFees(r, coins)
|
||||
if err != nil {
|
||||
return simtypes.NoOpMsg(types.ModuleName, sdk.MsgTypeURL(&types.MsgFundCommunityPool{}), "unable to generate fees"), nil, err
|
||||
}
|
||||
}
|
||||
|
||||
msg := types.NewMsgFundCommunityPool(fundAmount, funder.Address.String())
|
||||
|
||||
txCtx := simulation.OperationInput{
|
||||
R: r,
|
||||
App: app,
|
||||
TxGen: txConfig,
|
||||
Cdc: nil,
|
||||
Msg: msg,
|
||||
Context: ctx,
|
||||
SimAccount: funder,
|
||||
AccountKeeper: ak,
|
||||
ModuleName: types.ModuleName,
|
||||
}
|
||||
|
||||
return simulation.GenAndDeliverTx(txCtx, fees)
|
||||
}
|
||||
}
|
||||
156
x/protocolpool/simulation/operations_test.go
Normal file
156
x/protocolpool/simulation/operations_test.go
Normal file
@ -0,0 +1,156 @@
|
||||
package simulation_test
|
||||
|
||||
import (
|
||||
"math/rand"
|
||||
"testing"
|
||||
|
||||
abci "github.com/cometbft/cometbft/abci/types"
|
||||
"github.com/cosmos/gogoproto/proto"
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
"cosmossdk.io/depinject"
|
||||
"cosmossdk.io/log"
|
||||
"cosmossdk.io/x/protocolpool/keeper"
|
||||
"cosmossdk.io/x/protocolpool/simulation"
|
||||
pooltestutil "cosmossdk.io/x/protocolpool/testutil"
|
||||
"cosmossdk.io/x/protocolpool/types"
|
||||
|
||||
"github.com/cosmos/cosmos-sdk/client"
|
||||
"github.com/cosmos/cosmos-sdk/codec"
|
||||
"github.com/cosmos/cosmos-sdk/runtime"
|
||||
simtestutil "github.com/cosmos/cosmos-sdk/testutil/sims"
|
||||
sdk "github.com/cosmos/cosmos-sdk/types"
|
||||
simtypes "github.com/cosmos/cosmos-sdk/types/simulation"
|
||||
authkeeper "github.com/cosmos/cosmos-sdk/x/auth/keeper"
|
||||
bankkeeper "github.com/cosmos/cosmos-sdk/x/bank/keeper"
|
||||
banktestutil "github.com/cosmos/cosmos-sdk/x/bank/testutil"
|
||||
stakingkeeper "github.com/cosmos/cosmos-sdk/x/staking/keeper"
|
||||
)
|
||||
|
||||
type suite struct {
|
||||
Ctx sdk.Context
|
||||
App *runtime.App
|
||||
|
||||
TxConfig client.TxConfig
|
||||
Cdc codec.Codec
|
||||
AccountKeeper authkeeper.AccountKeeper
|
||||
BankKeeper bankkeeper.Keeper
|
||||
StakingKeeper *stakingkeeper.Keeper
|
||||
PoolKeeper keeper.Keeper
|
||||
}
|
||||
|
||||
func setUpTest(t *testing.T) suite {
|
||||
t.Helper()
|
||||
res := suite{}
|
||||
|
||||
var (
|
||||
appBuilder *runtime.AppBuilder
|
||||
err error
|
||||
)
|
||||
|
||||
app, err := simtestutil.Setup(
|
||||
depinject.Configs(
|
||||
pooltestutil.AppConfig,
|
||||
depinject.Supply(log.NewNopLogger()),
|
||||
),
|
||||
&res.AccountKeeper,
|
||||
&res.BankKeeper,
|
||||
&res.Cdc,
|
||||
&appBuilder,
|
||||
&res.StakingKeeper,
|
||||
&res.PoolKeeper,
|
||||
&res.TxConfig,
|
||||
)
|
||||
require.NoError(t, err)
|
||||
|
||||
res.App = app
|
||||
res.Ctx = app.BaseApp.NewContext(false)
|
||||
return res
|
||||
}
|
||||
|
||||
// TestWeightedOperations tests the weights of the operations.
|
||||
func TestWeightedOperations(t *testing.T) {
|
||||
suite := setUpTest(t)
|
||||
|
||||
appParams := make(simtypes.AppParams)
|
||||
|
||||
weightedOps := simulation.WeightedOperations(appParams, suite.Cdc, suite.TxConfig, suite.AccountKeeper,
|
||||
suite.BankKeeper, suite.PoolKeeper)
|
||||
|
||||
// setup 3 accounts
|
||||
s := rand.NewSource(1)
|
||||
r := rand.New(s)
|
||||
accs := getTestingAccounts(t, r, suite.AccountKeeper, suite.BankKeeper, suite.StakingKeeper, suite.Ctx, 3)
|
||||
|
||||
expected := []struct {
|
||||
weight int
|
||||
opMsgRoute string
|
||||
opMsgName string
|
||||
}{
|
||||
{simulation.DefaultWeightMsgFundCommunityPool, types.ModuleName, sdk.MsgTypeURL(&types.MsgFundCommunityPool{})},
|
||||
}
|
||||
|
||||
for i, w := range weightedOps {
|
||||
operationMsg, _, err := w.Op()(r, suite.App.BaseApp, suite.Ctx, accs, "")
|
||||
require.NoError(t, err)
|
||||
|
||||
// the following checks are very much dependent from the ordering of the output given
|
||||
// by WeightedOperations. if the ordering in WeightedOperations changes some tests
|
||||
// will fail
|
||||
require.Equal(t, expected[i].weight, w.Weight(), "weight should be the same")
|
||||
require.Equal(t, expected[i].opMsgRoute, operationMsg.Route, "route should be the same")
|
||||
require.Equal(t, expected[i].opMsgName, operationMsg.Name, "operation Msg name should be the same")
|
||||
}
|
||||
}
|
||||
|
||||
// TestSimulateMsgFundCommunityPool tests the normal scenario of a valid message of type TypeMsgFundCommunityPool.
|
||||
// Abonormal scenarios, where the message is created by an errors, are not tested here.
|
||||
func TestSimulateMsgFundCommunityPool(t *testing.T) {
|
||||
suite := setUpTest(t)
|
||||
|
||||
// setup 3 accounts
|
||||
s := rand.NewSource(1)
|
||||
r := rand.New(s)
|
||||
accounts := getTestingAccounts(t, r, suite.AccountKeeper, suite.BankKeeper, suite.StakingKeeper, suite.Ctx, 3)
|
||||
|
||||
_, err := suite.App.FinalizeBlock(&abci.RequestFinalizeBlock{
|
||||
Height: suite.App.LastBlockHeight() + 1,
|
||||
Hash: suite.App.LastCommitID().Hash,
|
||||
})
|
||||
require.NoError(t, err)
|
||||
|
||||
// execute operation
|
||||
op := simulation.SimulateMsgFundCommunityPool(suite.TxConfig, suite.AccountKeeper, suite.BankKeeper, suite.PoolKeeper)
|
||||
operationMsg, futureOperations, err := op(r, suite.App.BaseApp, suite.Ctx, accounts, "")
|
||||
require.NoError(t, err)
|
||||
|
||||
var msg types.MsgFundCommunityPool
|
||||
err = proto.Unmarshal(operationMsg.Msg, &msg)
|
||||
require.NoError(t, err)
|
||||
require.True(t, operationMsg.OK)
|
||||
require.Equal(t, "4896096stake", msg.Amount.String())
|
||||
require.Equal(t, "cosmos1ghekyjucln7y67ntx7cf27m9dpuxxemn4c8g4r", msg.Depositor)
|
||||
require.Equal(t, sdk.MsgTypeURL(&types.MsgFundCommunityPool{}), sdk.MsgTypeURL(&msg))
|
||||
require.Len(t, futureOperations, 0)
|
||||
}
|
||||
|
||||
func getTestingAccounts(
|
||||
t *testing.T, r *rand.Rand,
|
||||
accountKeeper authkeeper.AccountKeeper, bankKeeper bankkeeper.Keeper,
|
||||
stakingKeeper *stakingkeeper.Keeper, ctx sdk.Context, n int,
|
||||
) []simtypes.Account {
|
||||
t.Helper()
|
||||
accounts := simtypes.RandomAccounts(r, n)
|
||||
|
||||
initAmt := stakingKeeper.TokensFromConsensusPower(ctx, 200)
|
||||
initCoins := sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, initAmt))
|
||||
|
||||
// add coins to the accounts
|
||||
for _, account := range accounts {
|
||||
acc := accountKeeper.NewAccountWithAddress(ctx, account.Address)
|
||||
accountKeeper.SetAccount(ctx, acc)
|
||||
require.NoError(t, banktestutil.FundAccount(ctx, bankKeeper, account.Address, initCoins))
|
||||
}
|
||||
|
||||
return accounts
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user