(feat) update x/cdp to run every X blocks based off params (#1814)

* add new cdp module param to protonet genesis

* update cdp / cdp related tests for new module param

* update telemetry docs and setup for collecting against local node

* update kvool commit for new cdp param
This commit is contained in:
Levi Schoen 2024-01-24 12:10:07 -10:00 committed by GitHub
parent 3767030005
commit 4d62f47773
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
23 changed files with 466 additions and 306 deletions

View File

@ -39,6 +39,7 @@ Ref: https://keepachangelog.com/en/1.0.0/
### Features
- (cli) [#1785] Add `shard` CLI command to support creating partitions of data for standalone nodes
- (cdp) [#1814] Add module param and logic for running x/cdp begin blocker every `n` blocks
- (cli) [#1804] Add `rocksdb compact` command for manual DB compaction of state or blockstore.
## [v0.25.0]
@ -69,6 +70,7 @@ Ref: https://keepachangelog.com/en/1.0.0/
## [v0.24.3]
### Bug Fixes
- (deps) [#1770] Bump ledger-cosmos-go to v0.13.1 to resolve signing error with
- (rocksdb) [#1767] Fix resolution of rocksdb database path introduced in v0.24.2
@ -324,7 +326,6 @@ the [changelog](https://github.com/cosmos/cosmos-sdk/blob/v0.38.4/CHANGELOG.md).
[#1804]: https://github.com/Kava-Labs/kava/pull/1804
[#1785]: https://github.com/Kava-Labs/kava/pull/1785
[#1784]: https://github.com/Kava-Labs/kava/pull/1784
[#1776]: https://github.com/Kava-Labs/kava/pull/1776
[#1770]: https://github.com/Kava-Labs/kava/pull/1770
[#1755]: https://github.com/Kava-Labs/kava/pull/1755
[#1761]: https://github.com/Kava-Labs/kava/pull/1761
@ -384,7 +385,6 @@ the [changelog](https://github.com/cosmos/cosmos-sdk/blob/v0.38.4/CHANGELOG.md).
[v0.24.1]: https://github.com/Kava-Labs/kava/compare/v0.24.1...v0.24.0
[v0.24.0]: https://github.com/Kava-Labs/kava/compare/v0.24.0...v0.23.2
[v0.23.2]: https://github.com/Kava-Labs/kava/compare/v0.23.1...v0.23.2
[v0.23.1]: https://github.com/Kava-Labs/kava/compare/v0.23.0...v0.23.1
[v0.23.0]: https://github.com/Kava-Labs/kava/compare/v0.21.1...v0.23.0
[v0.16.1]: https://github.com/Kava-Labs/kava/compare/v0.16.0...v0.16.1
[v0.16.0]: https://github.com/Kava-Labs/kava/compare/v0.15.2...v0.16.0

View File

@ -330,6 +330,7 @@ start-remote-sims:
-—container-override environment=[{SIM_NAME=master-$(VERSION)}]
update-kvtool:
git submodule init || true
git submodule update
cd tests/e2e/kvtool && make install

View File

@ -837,6 +837,7 @@
"gov_denom": "ukava",
"params": {
"circuit_breaker": false,
"begin_blocker_execution_block_interval": 500,
"collateral_params": [
{
"auction_size": "50000000000",

View File

@ -3505,6 +3505,9 @@ paths:
type: string
circuit_breaker:
type: boolean
begin_blocker_execution_block_interval:
type: string
format: int64
description: Params defines the parameters for the cdp module.
description: >-
QueryParamsResponse defines the response type for the Query/Params
@ -51628,6 +51631,9 @@ definitions:
type: string
circuit_breaker:
type: boolean
begin_blocker_execution_block_interval:
type: string
format: int64
description: Params defines the parameters for the cdp module.
kava.cdp.v1beta1.QueryAccountsResponse:
type: object
@ -52161,6 +52167,9 @@ definitions:
type: string
circuit_breaker:
type: boolean
begin_blocker_execution_block_interval:
type: string
format: int64
description: Params defines the parameters for the cdp module.
description: >-
QueryParamsResponse defines the response type for the Query/Params RPC

View File

@ -38,10 +38,10 @@ Then restart the service with the updated settings
## Running local prometheus collector and grafana services
To collect app metrics and visualize them locally, you can run the prometheus collector and grafana services with docker compose from the repo root directory
To collect app metrics and visualize them locally, you can run the prometheus collector and grafana services with docker compose from the repo root directory (after updating `config.toml` and `app.toml` as detailed above)
```bash
docker compose -f prometheus.docker-compose.yml
docker compose -f prometheus.docker-compose.yml up
```
Navigate to localhost:3000 to view the grafana unix
@ -54,13 +54,13 @@ See [grafana docs](https://grafana.com/docs/grafana/latest/dashboards/) for info
### Collecting from local host
Update [prometheus config](../prometheus.yml) to collect metrics from your local source
Update [prometheus config](../prometheus.yml) to collect metrics from your local source, where the port matches the value set for `config.toml/instrumentation.prometheus_listen_addr`
```yaml
metrics_path: /
static_configs:
- targets:
- localhost:8888
- docker-host:8888
```
### Collecting from remote host

View File

@ -1681,6 +1681,7 @@ Params defines the parameters for the cdp module.
| `debt_auction_threshold` | [string](#string) | | |
| `debt_auction_lot` | [string](#string) | | |
| `circuit_breaker` | [bool](#bool) | | |
| `begin_blocker_execution_block_interval` | [int64](#int64) | | |

View File

@ -34,3 +34,10 @@ services:
- 9090
networks:
- monitoring
docker-host:
image: qoomon/docker-host
cap_add: [ 'NET_ADMIN', 'NET_RAW' ]
mem_limit: 8M
restart: on-failure
networks:
- monitoring

View File

@ -3,8 +3,7 @@ global:
evaluation_interval: 15s
scrape_configs:
- job_name: proxy
scheme: https
metrics_path: /
static_configs:
- targets:
- 4efb-18-207-102-158.ngrok-free.app
- docker-host:8888

View File

@ -66,6 +66,8 @@ message Params {
(gogoproto.nullable) = false
];
bool circuit_breaker = 8;
int64 begin_blocker_execution_block_interval = 9;
}
// DebtParam defines governance params for debt assets

@ -1 +1 @@
Subproject commit e1085562d203fd81c5dd8576170b29715b2de9ef
Subproject commit b9669f6a5d16658ffe8ea667b688fb174e656f43

View File

@ -20,6 +20,16 @@ func BeginBlocker(ctx sdk.Context, req abci.RequestBeginBlock, k keeper.Keeper)
params := k.GetParams(ctx)
// only run CDP Begin Blocker every `BeginBlockerExecutionBlockInterval` blocks
blockHeight := ctx.BlockHeight()
if blockHeight%params.BeginBlockerExecutionBlockInterval != 0 {
ctx.Logger().Info("skipping x/cdp begin blocker")
return
}
ctx.Logger().Debug("running x/cdp begin blocker")
for _, cp := range params.CollateralParams {
ok := k.UpdatePricefeedStatus(ctx, cp.SpotMarketID)
if !ok {

View File

@ -210,6 +210,7 @@ func (suite *GenesisTestSuite) Test_InitExportGenesis() {
SurplusAuctionLot: types.DefaultSurplusLot,
DebtAuctionThreshold: types.DefaultDebtThreshold,
DebtAuctionLot: types.DefaultDebtLot,
BeginBlockerExecutionBlockInterval: types.DefaultBeginBlockerExecutionBlockInterval,
CollateralParams: types.CollateralParams{
{
Denom: "xrp",

View File

@ -118,6 +118,7 @@ func NewCDPGenStateMulti(cdc codec.JSONCodec) app.GenesisState {
SurplusAuctionLot: types.DefaultSurplusLot,
DebtAuctionThreshold: types.DefaultDebtThreshold,
DebtAuctionLot: types.DefaultDebtLot,
BeginBlockerExecutionBlockInterval: types.DefaultBeginBlockerExecutionBlockInterval,
CollateralParams: types.CollateralParams{
{
Denom: "xrp",

View File

@ -47,6 +47,7 @@ func NewCDPGenState(cdc codec.JSONCodec, asset string, liquidationRatio sdk.Dec)
SurplusAuctionLot: types.DefaultSurplusLot,
DebtAuctionThreshold: types.DefaultDebtThreshold,
DebtAuctionLot: types.DefaultDebtLot,
BeginBlockerExecutionBlockInterval: types.DefaultBeginBlockerExecutionBlockInterval,
CollateralParams: types.CollateralParams{
{
Denom: asset,
@ -160,6 +161,7 @@ func NewCDPGenStateMulti(cdc codec.JSONCodec) app.GenesisState {
SurplusAuctionLot: types.DefaultSurplusLot,
DebtAuctionThreshold: types.DefaultDebtThreshold,
DebtAuctionLot: types.DefaultDebtLot,
BeginBlockerExecutionBlockInterval: types.DefaultBeginBlockerExecutionBlockInterval,
CollateralParams: types.CollateralParams{
{
Denom: "xrp",
@ -253,6 +255,7 @@ func NewCDPGenStateHighDebtLimit(cdc codec.JSONCodec) app.GenesisState {
SurplusAuctionLot: types.DefaultSurplusLot,
DebtAuctionThreshold: types.DefaultDebtThreshold,
DebtAuctionLot: types.DefaultDebtLot,
BeginBlockerExecutionBlockInterval: types.DefaultBeginBlockerExecutionBlockInterval,
CollateralParams: types.CollateralParams{
{
Denom: "xrp",

View File

@ -39,6 +39,7 @@ func migrateParams(params v015cdp.Params) v016cdp.Params {
DebtAuctionThreshold: params.DebtAuctionThreshold,
DebtAuctionLot: params.DebtAuctionLot,
CircuitBreaker: params.CircuitBreaker,
BeginBlockerExecutionBlockInterval: v016cdp.DefaultBeginBlockerExecutionBlockInterval,
}
}

View File

@ -168,6 +168,7 @@ func (s *migrateTestSuite) TestMigrate_GenState() {
SurplusAuctionLot: sdkmath.NewInt(7),
DebtAuctionThreshold: sdkmath.NewInt(8),
DebtAuctionLot: sdkmath.NewInt(9),
BeginBlockerExecutionBlockInterval: v016cdp.DefaultBeginBlockerExecutionBlockInterval,
},
CDPs: v016cdp.CDPs{
{

View File

@ -5,7 +5,10 @@
"denom": "bnb",
"type": "bnb-a",
"liquidation_ratio": "1.500000000000000000",
"debt_limit": { "denom": "usdx", "amount": "20000000000000" },
"debt_limit": {
"denom": "usdx",
"amount": "20000000000000"
},
"stability_fee": "1.000000000782997700",
"auction_size": "50000000000",
"liquidation_penalty": "0.050000000000000000",
@ -19,7 +22,10 @@
"denom": "hbtc",
"type": "hbtc-a",
"liquidation_ratio": "1.500000000000000000",
"debt_limit": { "denom": "usdx", "amount": "10000000000000" },
"debt_limit": {
"denom": "usdx",
"amount": "10000000000000"
},
"stability_fee": "1.000000001547125958",
"auction_size": "1000000000000",
"liquidation_penalty": "0.075000000000000000",
@ -36,21 +42,34 @@
"conversion_factor": "6",
"debt_floor": "10000000"
},
"global_debt_limit": { "denom": "usdx", "amount": "43000000000000" },
"global_debt_limit": {
"denom": "usdx",
"amount": "43000000000000"
},
"surplus_auction_threshold": "500000000000",
"surplus_auction_lot": "10000000000",
"debt_auction_threshold": "100000000000",
"debt_auction_lot": "10000000000",
"circuit_breaker": false
"circuit_breaker": false,
"begin_blocker_execution_block_interval": "1"
},
"cdps": [
{
"id": "19",
"owner": "kava1u4p6a2yse66ewfndw4j7ppsa777vdcex3m4n9s",
"type": "bnb-a",
"collateral": { "denom": "bnb", "amount": "40911876" },
"principal": { "denom": "usdx", "amount": "10016831" },
"accumulated_fees": { "denom": "usdx", "amount": "36088" },
"collateral": {
"denom": "bnb",
"amount": "40911876"
},
"principal": {
"denom": "usdx",
"amount": "10016831"
},
"accumulated_fees": {
"denom": "usdx",
"amount": "36088"
},
"fees_updated": "2021-11-05T21:13:12.856088470Z",
"interest_factor": "1.002881426571765716"
},
@ -58,9 +77,18 @@
"id": "22",
"owner": "kava1e8xjfylam4nvugcmkxwvuxh22uvvad5vknu4yh",
"type": "bnb-a",
"collateral": { "denom": "bnb", "amount": "88268546" },
"principal": { "denom": "usdx", "amount": "10000000" },
"accumulated_fees": { "denom": "usdx", "amount": "156662" },
"collateral": {
"denom": "bnb",
"amount": "88268546"
},
"principal": {
"denom": "usdx",
"amount": "10000000"
},
"accumulated_fees": {
"denom": "usdx",
"amount": "156662"
},
"fees_updated": "2021-11-05T21:13:12.856088470Z",
"interest_factor": "1.002881426571765716"
}
@ -69,12 +97,18 @@
{
"cdp_id": "19",
"depositor": "kava1u4p6a2yse66ewfndw4j7ppsa777vdcex3m4n9s",
"amount": { "denom": "bnb", "amount": "40911876" }
"amount": {
"denom": "bnb",
"amount": "40911876"
}
},
{
"cdp_id": "22",
"depositor": "kava1e8xjfylam4nvugcmkxwvuxh22uvvad5vknu4yh",
"amount": { "denom": "bnb", "amount": "88268546" }
"amount": {
"denom": "bnb",
"amount": "88268546"
}
}
],
"starting_cdp_id": "1",
@ -88,6 +122,9 @@
}
],
"total_principals": [
{ "collateral_type": "bnb-a", "total_principal": "9285009581820" }
{
"collateral_type": "bnb-a",
"total_principal": "9285009581820"
}
]
}

View File

@ -142,6 +142,7 @@ type Params struct {
DebtAuctionThreshold github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,6,opt,name=debt_auction_threshold,json=debtAuctionThreshold,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"debt_auction_threshold"`
DebtAuctionLot github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,7,opt,name=debt_auction_lot,json=debtAuctionLot,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"debt_auction_lot"`
CircuitBreaker bool `protobuf:"varint,8,opt,name=circuit_breaker,json=circuitBreaker,proto3" json:"circuit_breaker,omitempty"`
BeginBlockerExecutionBlockInterval int64 `protobuf:"varint,9,opt,name=begin_blocker_execution_block_interval,json=beginBlockerExecutionBlockInterval,proto3" json:"begin_blocker_execution_block_interval,omitempty"`
}
func (m *Params) Reset() { *m = Params{} }
@ -205,6 +206,13 @@ func (m *Params) GetCircuitBreaker() bool {
return false
}
func (m *Params) GetBeginBlockerExecutionBlockInterval() int64 {
if m != nil {
return m.BeginBlockerExecutionBlockInterval
}
return 0
}
// DebtParam defines governance params for debt assets
type DebtParam struct {
Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"`
@ -456,81 +464,84 @@ func init() {
func init() { proto.RegisterFile("kava/cdp/v1beta1/genesis.proto", fileDescriptor_e4494a90aaab0034) }
var fileDescriptor_e4494a90aaab0034 = []byte{
// 1179 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x57, 0xcd, 0x6e, 0x1b, 0x37,
0x10, 0xf6, 0x3a, 0x8a, 0x23, 0xd1, 0x8a, 0x24, 0x33, 0x4e, 0xb2, 0x76, 0x50, 0x49, 0x75, 0xd1,
0xc6, 0x3d, 0x58, 0x42, 0x52, 0x20, 0x40, 0x81, 0xa2, 0xa9, 0x65, 0xc1, 0x81, 0x11, 0x17, 0x10,
0xd6, 0x3e, 0xb5, 0x87, 0x05, 0x97, 0x4b, 0xc9, 0x84, 0x56, 0xcb, 0x2d, 0x49, 0xa9, 0xb6, 0x5f,
0xa1, 0x28, 0x1a, 0xf4, 0x25, 0x0a, 0xe4, 0xdc, 0x87, 0x48, 0x6f, 0x41, 0x4f, 0x45, 0x0f, 0x72,
0x21, 0xdf, 0xfb, 0x0c, 0x05, 0x7f, 0xf4, 0x63, 0xc9, 0x02, 0x02, 0x5b, 0xbd, 0x58, 0xcb, 0x19,
0xce, 0xf7, 0xcd, 0x90, 0x33, 0xc3, 0x31, 0x28, 0xb6, 0x51, 0x0f, 0x55, 0x71, 0x98, 0x54, 0x7b,
0xcf, 0x02, 0x22, 0xd1, 0xb3, 0x6a, 0x8b, 0xc4, 0x44, 0x50, 0x51, 0x49, 0x38, 0x93, 0x0c, 0x16,
0x94, 0xbe, 0x82, 0xc3, 0xa4, 0x62, 0xf5, 0x9b, 0x45, 0xcc, 0x44, 0x87, 0x89, 0x6a, 0x80, 0x04,
0x19, 0x19, 0x61, 0x46, 0x63, 0x63, 0xb1, 0xb9, 0x61, 0xf4, 0xbe, 0x5e, 0x55, 0xcd, 0xc2, 0xaa,
0xd6, 0x5b, 0xac, 0xc5, 0x8c, 0x5c, 0x7d, 0x59, 0x69, 0xa9, 0xc5, 0x58, 0x2b, 0x22, 0x55, 0xbd,
0x0a, 0xba, 0xcd, 0xaa, 0xa4, 0x1d, 0x22, 0x24, 0xea, 0x24, 0x76, 0xc3, 0xe6, 0x8c, 0x8f, 0xca,
0x1f, 0xad, 0xdb, 0xfa, 0x23, 0x05, 0xb2, 0xaf, 0x8c, 0xc7, 0x47, 0x12, 0x49, 0x02, 0x5f, 0x80,
0x95, 0x04, 0x71, 0xd4, 0x11, 0xae, 0x53, 0x76, 0xb6, 0x57, 0x9f, 0xbb, 0x95, 0xe9, 0x08, 0x2a,
0x0d, 0xad, 0xaf, 0xa5, 0xde, 0xf5, 0x4b, 0x4b, 0x9e, 0xdd, 0x0d, 0x5f, 0x82, 0x14, 0x0e, 0x13,
0xe1, 0x2e, 0x97, 0xef, 0x6c, 0xaf, 0x3e, 0x7f, 0x38, 0x6b, 0xb5, 0x57, 0x6f, 0xd4, 0xd6, 0x95,
0xc9, 0xa0, 0x5f, 0x4a, 0xed, 0xd5, 0x1b, 0xe2, 0xed, 0x85, 0xf9, 0xf5, 0xb4, 0x21, 0x7c, 0x05,
0xd2, 0x21, 0x49, 0x98, 0xa0, 0x52, 0xb8, 0x77, 0x34, 0xc8, 0xc6, 0x2c, 0x48, 0xdd, 0xec, 0xa8,
0x15, 0x14, 0xd0, 0xdb, 0x8b, 0x52, 0xda, 0x0a, 0x84, 0x37, 0x32, 0x86, 0x5f, 0x82, 0xbc, 0x90,
0x88, 0x4b, 0x1a, 0xb7, 0x7c, 0x1c, 0x26, 0x3e, 0x0d, 0xdd, 0x54, 0xd9, 0xd9, 0x4e, 0xd5, 0xd6,
0x06, 0xfd, 0xd2, 0xfd, 0x23, 0xab, 0xda, 0x0b, 0x93, 0x83, 0xba, 0x77, 0x5f, 0x4c, 0x2c, 0x43,
0xf8, 0x11, 0x00, 0x21, 0x09, 0xa4, 0x1f, 0x92, 0x98, 0x75, 0xdc, 0xbb, 0x65, 0x67, 0x3b, 0xe3,
0x65, 0x94, 0xa4, 0xae, 0x04, 0xf0, 0x09, 0xc8, 0xb4, 0x58, 0xcf, 0x6a, 0x57, 0xb4, 0x36, 0xdd,
0x62, 0x3d, 0xa3, 0xfc, 0xc9, 0x01, 0x4f, 0x12, 0x4e, 0x7a, 0x94, 0x75, 0x85, 0x8f, 0x30, 0xee,
0x76, 0xba, 0x11, 0x92, 0x94, 0xc5, 0xbe, 0xbe, 0x0f, 0xf7, 0x9e, 0x8e, 0xe9, 0xf3, 0xd9, 0x98,
0xec, 0xf1, 0xef, 0x4e, 0x98, 0x1c, 0xd3, 0x0e, 0xa9, 0x95, 0x6d, 0x8c, 0xee, 0x9c, 0x0d, 0xc2,
0xdb, 0x18, 0xf2, 0xcd, 0xa8, 0x20, 0x07, 0x05, 0xc9, 0x24, 0x8a, 0xfc, 0x84, 0xd3, 0x18, 0xd3,
0x04, 0x45, 0xc2, 0x4d, 0x6b, 0x0f, 0x9e, 0xce, 0xf5, 0xe0, 0x58, 0x19, 0x34, 0x86, 0xfb, 0x6b,
0x45, 0xcb, 0xff, 0xe8, 0x5a, 0xb5, 0xf0, 0xf2, 0xf2, 0xaa, 0x60, 0xeb, 0xdf, 0xbb, 0x60, 0xc5,
0xe4, 0x06, 0x3c, 0x01, 0x6b, 0x98, 0x45, 0x11, 0x92, 0x84, 0x2b, 0x1f, 0x86, 0x09, 0xa5, 0xf8,
0x3f, 0xbe, 0x26, 0x35, 0x46, 0x5b, 0xb5, 0x79, 0xcd, 0xb5, 0xcc, 0x85, 0x29, 0x85, 0xf0, 0x0a,
0x78, 0x4a, 0x02, 0xbf, 0xb1, 0x57, 0xa6, 0x39, 0xdc, 0x65, 0x9d, 0xb3, 0x4f, 0xae, 0x4b, 0x9c,
0x40, 0x1a, 0x70, 0x93, 0xb6, 0xfa, 0x56, 0xb5, 0x00, 0xbe, 0x06, 0x6b, 0xad, 0x88, 0x05, 0x28,
0xf2, 0x35, 0x50, 0x44, 0x3b, 0x54, 0xba, 0x77, 0x34, 0xd0, 0x46, 0xc5, 0xd6, 0x9f, 0x2a, 0xd6,
0x09, 0x77, 0x69, 0x6c, 0x61, 0xf2, 0xc6, 0x52, 0xa1, 0x1f, 0x2a, 0x3b, 0x78, 0x0a, 0x36, 0x44,
0x97, 0x27, 0x91, 0xca, 0x81, 0x2e, 0x36, 0xd7, 0x7f, 0xc2, 0x89, 0x38, 0x61, 0x91, 0x49, 0xc3,
0x4c, 0xed, 0x2b, 0x65, 0xf9, 0x77, 0xbf, 0xf4, 0x59, 0x8b, 0xca, 0x93, 0x6e, 0x50, 0xc1, 0xac,
0x63, 0xcb, 0xdc, 0xfe, 0xec, 0x88, 0xb0, 0x5d, 0x95, 0x67, 0x09, 0x11, 0x95, 0x83, 0x58, 0xfe,
0xf9, 0xfb, 0x0e, 0xb0, 0x5e, 0x1c, 0xc4, 0xd2, 0x7b, 0x6c, 0xe1, 0x77, 0x0d, 0xfa, 0xf1, 0x10,
0x1c, 0x46, 0xe0, 0xc1, 0x34, 0x73, 0xc4, 0xa4, 0x49, 0xe2, 0x5b, 0x72, 0xae, 0x5d, 0xe5, 0x3c,
0x64, 0x12, 0x72, 0xf0, 0x48, 0x9f, 0xd6, 0x6c, 0x90, 0x2b, 0x0b, 0x20, 0x5c, 0x57, 0xd8, 0x33,
0x11, 0x36, 0x41, 0xe1, 0x0a, 0xa7, 0x0a, 0xef, 0xde, 0x02, 0xd8, 0x72, 0x13, 0x6c, 0x2a, 0xb6,
0xa7, 0x20, 0x8f, 0x29, 0xc7, 0x5d, 0x2a, 0xfd, 0x80, 0x13, 0xd4, 0x26, 0xdc, 0x4d, 0x97, 0x9d,
0xed, 0xb4, 0x97, 0xb3, 0xe2, 0x9a, 0x91, 0x6e, 0xfd, 0xba, 0x0c, 0x32, 0xa3, 0xc4, 0x82, 0xeb,
0xe0, 0xae, 0xe9, 0x0c, 0x8e, 0xee, 0x0c, 0x66, 0xa1, 0xc0, 0x38, 0x69, 0x12, 0x4e, 0x62, 0x4c,
0x7c, 0x24, 0x04, 0x91, 0x3a, 0x49, 0x33, 0x5e, 0x6e, 0x24, 0xde, 0x55, 0x52, 0x48, 0x55, 0xc9,
0xc4, 0x3d, 0xc2, 0x85, 0x8a, 0xad, 0x89, 0xb0, 0x64, 0x5c, 0xa7, 0xe1, 0x6d, 0xc3, 0x2b, 0x8c,
0x61, 0xf7, 0x35, 0x2a, 0xfc, 0xde, 0xd6, 0x4c, 0x33, 0x62, 0x8c, 0x2f, 0x24, 0x2b, 0x75, 0x39,
0xed, 0x2b, 0xb8, 0xad, 0x5f, 0xd2, 0x20, 0x3f, 0x55, 0xb7, 0x73, 0x8e, 0x06, 0x82, 0x94, 0xc2,
0xb3, 0xe7, 0xa1, 0xbf, 0xd5, 0x29, 0x44, 0xf4, 0x87, 0x2e, 0x0d, 0x4d, 0xeb, 0xe4, 0xea, 0xe7,
0x06, 0xa7, 0x50, 0x27, 0x78, 0xc2, 0xc3, 0x3a, 0xc1, 0x5e, 0x61, 0x02, 0xd6, 0x53, 0x7f, 0xe1,
0xd7, 0xf6, 0x14, 0x4c, 0xc1, 0xa7, 0x3e, 0xac, 0xe0, 0x75, 0xa0, 0xa6, 0xd4, 0x11, 0x50, 0xaf,
0x47, 0x40, 0x23, 0x2a, 0xcf, 0xfc, 0x26, 0x21, 0x37, 0x28, 0xb5, 0x59, 0x37, 0xb3, 0x23, 0xc8,
0x7d, 0x42, 0xa0, 0x0f, 0xb2, 0xc3, 0x64, 0x17, 0xf4, 0x9c, 0x2c, 0xa4, 0xb6, 0x56, 0x2d, 0xe2,
0x11, 0x3d, 0x27, 0xb0, 0x03, 0x1e, 0x4c, 0x1e, 0x77, 0x42, 0x62, 0x14, 0xc9, 0xb3, 0x1b, 0x54,
0xd5, 0x6c, 0x24, 0x70, 0x02, 0xb8, 0x61, 0x70, 0xe1, 0x0b, 0x90, 0x13, 0x09, 0x93, 0x7e, 0x07,
0xf1, 0x36, 0x91, 0xea, 0x65, 0x4e, 0x6b, 0xa6, 0xc2, 0xa0, 0x5f, 0xca, 0x1e, 0x25, 0x4c, 0x7e,
0xab, 0x15, 0x07, 0x75, 0x2f, 0x2b, 0xc6, 0xab, 0x10, 0xbe, 0x06, 0x0f, 0x27, 0xdd, 0x1c, 0x9b,
0x67, 0xb4, 0xf9, 0xe3, 0x41, 0xbf, 0xf4, 0xe0, 0x70, 0xbc, 0x61, 0x84, 0x32, 0x19, 0xdc, 0x08,
0xac, 0x07, 0xdc, 0x36, 0x21, 0x09, 0xe1, 0x3e, 0x27, 0x3f, 0x22, 0x1e, 0xfa, 0x09, 0xe1, 0x98,
0xc4, 0x12, 0xb5, 0x88, 0x0b, 0x16, 0x10, 0xf8, 0x23, 0x83, 0xee, 0x69, 0xf0, 0xc6, 0x08, 0x5b,
0x0d, 0x08, 0x9f, 0xe0, 0x13, 0x82, 0xdb, 0xfe, 0xf8, 0x11, 0xa3, 0xe7, 0x26, 0x22, 0x1a, 0x87,
0xe4, 0xd4, 0xc7, 0xac, 0x1b, 0x4b, 0x77, 0x75, 0x01, 0x97, 0x5c, 0xd6, 0x44, 0x7b, 0xd3, 0x3c,
0x07, 0x8a, 0x66, 0x4f, 0xb1, 0x5c, 0xdf, 0x6e, 0xb2, 0xff, 0x47, 0xbb, 0xd9, 0xfa, 0x79, 0x19,
0x3c, 0x9e, 0x33, 0xc3, 0xe8, 0x5e, 0x3b, 0x1e, 0x14, 0x74, 0x3b, 0x30, 0x3d, 0x22, 0x37, 0x16,
0x1f, 0xab, 0xc6, 0x10, 0x80, 0xcd, 0xf9, 0xd3, 0x95, 0x7d, 0xf7, 0x37, 0x2b, 0x66, 0x14, 0xae,
0x0c, 0x47, 0xe1, 0xca, 0xf1, 0x70, 0x14, 0xae, 0xa5, 0x55, 0x50, 0x6f, 0x2e, 0x4a, 0x8e, 0xe7,
0xce, 0x9b, 0x9a, 0x20, 0x01, 0x79, 0x1a, 0x4b, 0xc2, 0x89, 0x90, 0x37, 0x6f, 0xc0, 0xb3, 0x09,
0x91, 0x1b, 0x82, 0xda, 0xf3, 0xf8, 0xcd, 0x01, 0x0f, 0xaf, 0x9d, 0xa9, 0x3e, 0xfc, 0x34, 0x08,
0xc8, 0x4f, 0x8d, 0x77, 0xa6, 0x8b, 0xde, 0xf6, 0x25, 0xbc, 0x3a, 0xd2, 0xd5, 0x5e, 0xbe, 0x1b,
0x14, 0x9d, 0xf7, 0x83, 0xa2, 0xf3, 0xcf, 0xa0, 0xe8, 0xbc, 0xb9, 0x2c, 0x2e, 0xbd, 0xbf, 0x2c,
0x2e, 0xfd, 0x75, 0x59, 0x5c, 0xfa, 0xee, 0xd3, 0x09, 0x7c, 0x35, 0x6c, 0xed, 0x44, 0x28, 0x10,
0xfa, 0xab, 0x7a, 0xaa, 0xff, 0xd5, 0xd0, 0x14, 0xc1, 0x8a, 0xbe, 0x89, 0x2f, 0xfe, 0x0b, 0x00,
0x00, 0xff, 0xff, 0xe6, 0x31, 0x9b, 0x4e, 0x27, 0x0d, 0x00, 0x00,
// 1223 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x57, 0x4f, 0x6f, 0x1b, 0x45,
0x14, 0xcf, 0x26, 0x6e, 0x6a, 0x4f, 0xd2, 0xd8, 0x99, 0xa6, 0xed, 0x26, 0x15, 0xb6, 0x09, 0xa2,
0x0d, 0x87, 0xda, 0x6a, 0x91, 0x2a, 0x21, 0x21, 0x4a, 0x1d, 0xd3, 0x2a, 0x6a, 0x91, 0xa2, 0x4d,
0x4e, 0x70, 0x58, 0xcd, 0xce, 0xbe, 0x6c, 0x46, 0x5e, 0xef, 0x2c, 0x33, 0x63, 0x93, 0xf6, 0x2b,
0x20, 0x44, 0xc5, 0x97, 0x40, 0xea, 0x99, 0x4f, 0xc0, 0xa9, 0xdc, 0x2a, 0x4e, 0x88, 0x43, 0x8a,
0xdc, 0x2f, 0x82, 0xe6, 0x8f, 0xff, 0xc4, 0x4e, 0xa4, 0x2a, 0x09, 0x97, 0x78, 0xe7, 0xfd, 0xf9,
0xbd, 0x3f, 0xf3, 0xde, 0x9b, 0x17, 0x54, 0xed, 0x90, 0x3e, 0x69, 0xd2, 0x38, 0x6f, 0xf6, 0xef,
0x47, 0xa0, 0xc8, 0xfd, 0x66, 0x02, 0x19, 0x48, 0x26, 0x1b, 0xb9, 0xe0, 0x8a, 0xe3, 0x8a, 0xe6,
0x37, 0x68, 0x9c, 0x37, 0x1c, 0x7f, 0xa3, 0x4a, 0xb9, 0xec, 0x72, 0xd9, 0x8c, 0x88, 0x84, 0x91,
0x12, 0xe5, 0x2c, 0xb3, 0x1a, 0x1b, 0xeb, 0x96, 0x1f, 0x9a, 0x53, 0xd3, 0x1e, 0x1c, 0x6b, 0x2d,
0xe1, 0x09, 0xb7, 0x74, 0xfd, 0xe5, 0xa8, 0xb5, 0x84, 0xf3, 0x24, 0x85, 0xa6, 0x39, 0x45, 0xbd,
0x83, 0xa6, 0x62, 0x5d, 0x90, 0x8a, 0x74, 0x73, 0x27, 0xb0, 0x31, 0xe3, 0xa3, 0xf6, 0xc7, 0xf0,
0x36, 0xff, 0x2c, 0xa0, 0xe5, 0xa7, 0xd6, 0xe3, 0x3d, 0x45, 0x14, 0xe0, 0x87, 0x68, 0x31, 0x27,
0x82, 0x74, 0xa5, 0xef, 0xd5, 0xbd, 0xad, 0xa5, 0x07, 0x7e, 0x63, 0x3a, 0x82, 0xc6, 0xae, 0xe1,
0xb7, 0x0a, 0x6f, 0x8e, 0x6b, 0x73, 0x81, 0x93, 0xc6, 0x8f, 0x50, 0x81, 0xc6, 0xb9, 0xf4, 0xe7,
0xeb, 0x0b, 0x5b, 0x4b, 0x0f, 0x6e, 0xcc, 0x6a, 0x6d, 0xb7, 0x77, 0x5b, 0x6b, 0x5a, 0x65, 0x70,
0x5c, 0x2b, 0x6c, 0xb7, 0x77, 0xe5, 0xeb, 0x77, 0xf6, 0x37, 0x30, 0x8a, 0xf8, 0x29, 0x2a, 0xc6,
0x90, 0x73, 0xc9, 0x94, 0xf4, 0x17, 0x0c, 0xc8, 0xfa, 0x2c, 0x48, 0xdb, 0x4a, 0xb4, 0x2a, 0x1a,
0xe8, 0xf5, 0xbb, 0x5a, 0xd1, 0x11, 0x64, 0x30, 0x52, 0xc6, 0x5f, 0xa0, 0xb2, 0x54, 0x44, 0x28,
0x96, 0x25, 0x21, 0x8d, 0xf3, 0x90, 0xc5, 0x7e, 0xa1, 0xee, 0x6d, 0x15, 0x5a, 0xab, 0x83, 0xe3,
0xda, 0xb5, 0x3d, 0xc7, 0xda, 0x8e, 0xf3, 0x9d, 0x76, 0x70, 0x4d, 0x4e, 0x1c, 0x63, 0xfc, 0x11,
0x42, 0x31, 0x44, 0x2a, 0x8c, 0x21, 0xe3, 0x5d, 0xff, 0x4a, 0xdd, 0xdb, 0x2a, 0x05, 0x25, 0x4d,
0x69, 0x6b, 0x02, 0xbe, 0x8d, 0x4a, 0x09, 0xef, 0x3b, 0xee, 0xa2, 0xe1, 0x16, 0x13, 0xde, 0xb7,
0xcc, 0x9f, 0x3c, 0x74, 0x3b, 0x17, 0xd0, 0x67, 0xbc, 0x27, 0x43, 0x42, 0x69, 0xaf, 0xdb, 0x4b,
0x89, 0x62, 0x3c, 0x0b, 0xcd, 0x7d, 0xf8, 0x57, 0x4d, 0x4c, 0x9f, 0xcd, 0xc6, 0xe4, 0xd2, 0xff,
0x78, 0x42, 0x65, 0x9f, 0x75, 0xa1, 0x55, 0x77, 0x31, 0xfa, 0x67, 0x08, 0xc8, 0x60, 0x7d, 0x68,
0x6f, 0x86, 0x85, 0x05, 0xaa, 0x28, 0xae, 0x48, 0x1a, 0xe6, 0x82, 0x65, 0x94, 0xe5, 0x24, 0x95,
0x7e, 0xd1, 0x78, 0x70, 0xf7, 0x4c, 0x0f, 0xf6, 0xb5, 0xc2, 0xee, 0x50, 0xbe, 0x55, 0x75, 0xf6,
0x6f, 0x9e, 0xca, 0x96, 0x41, 0x59, 0x9d, 0x24, 0x6c, 0xfe, 0xb1, 0x88, 0x16, 0x6d, 0x6d, 0xe0,
0x43, 0xb4, 0x4a, 0x79, 0x9a, 0x12, 0x05, 0x42, 0xfb, 0x30, 0x2c, 0x28, 0x6d, 0xff, 0xe3, 0x53,
0x4a, 0x63, 0x24, 0x6a, 0xd4, 0x5b, 0xbe, 0xb3, 0x5c, 0x99, 0x62, 0xc8, 0xa0, 0x42, 0xa7, 0x28,
0xf8, 0x6b, 0x77, 0x65, 0xc6, 0x86, 0x3f, 0x6f, 0x6a, 0xf6, 0xf6, 0x69, 0x85, 0x13, 0x29, 0x0b,
0x6e, 0xcb, 0xd6, 0xdc, 0xaa, 0x21, 0xe0, 0x67, 0x68, 0x35, 0x49, 0x79, 0x44, 0xd2, 0xd0, 0x00,
0xa5, 0xac, 0xcb, 0x94, 0xbf, 0x60, 0x80, 0xd6, 0x1b, 0xae, 0xff, 0x74, 0xb3, 0x4e, 0xb8, 0xcb,
0x32, 0x07, 0x53, 0xb6, 0x9a, 0x1a, 0xfd, 0xb9, 0xd6, 0xc3, 0x47, 0x68, 0x5d, 0xf6, 0x44, 0x9e,
0xea, 0x1a, 0xe8, 0x51, 0x7b, 0xfd, 0x87, 0x02, 0xe4, 0x21, 0x4f, 0x6d, 0x19, 0x96, 0x5a, 0x5f,
0x6a, 0xcd, 0x7f, 0x8e, 0x6b, 0x77, 0x12, 0xa6, 0x0e, 0x7b, 0x51, 0x83, 0xf2, 0xae, 0x6b, 0x73,
0xf7, 0x73, 0x4f, 0xc6, 0x9d, 0xa6, 0x7a, 0x91, 0x83, 0x6c, 0xec, 0x64, 0xea, 0xaf, 0xdf, 0xef,
0x21, 0xe7, 0xc5, 0x4e, 0xa6, 0x82, 0x5b, 0x0e, 0xfe, 0xb1, 0x45, 0xdf, 0x1f, 0x82, 0xe3, 0x14,
0x5d, 0x9f, 0xb6, 0x9c, 0x72, 0x65, 0x8b, 0xf8, 0x82, 0x36, 0x57, 0x4f, 0xda, 0x7c, 0xce, 0x15,
0x16, 0xe8, 0xa6, 0xc9, 0xd6, 0x6c, 0x90, 0x8b, 0x97, 0x60, 0x70, 0x4d, 0x63, 0xcf, 0x44, 0x78,
0x80, 0x2a, 0x27, 0x6c, 0xea, 0xf0, 0xae, 0x5e, 0x82, 0xb5, 0x95, 0x09, 0x6b, 0x3a, 0xb6, 0xbb,
0xa8, 0x4c, 0x99, 0xa0, 0x3d, 0xa6, 0xc2, 0x48, 0x00, 0xe9, 0x80, 0xf0, 0x8b, 0x75, 0x6f, 0xab,
0x18, 0xac, 0x38, 0x72, 0xcb, 0x52, 0x71, 0x80, 0xee, 0x44, 0x90, 0xb0, 0x2c, 0x8c, 0x52, 0x4e,
0x3b, 0x20, 0x42, 0x38, 0x02, 0xda, 0x33, 0xbe, 0x19, 0x4a, 0xc8, 0x32, 0x05, 0xa2, 0x4f, 0x52,
0xbf, 0x54, 0xf7, 0xb6, 0x16, 0x82, 0x4d, 0x23, 0xdd, 0xb2, 0xc2, 0xdf, 0x0c, 0x65, 0xcd, 0x79,
0xc7, 0x49, 0x6e, 0xfe, 0x3a, 0x8f, 0x4a, 0xa3, 0x62, 0xc5, 0x6b, 0xe8, 0x8a, 0x9d, 0x36, 0x9e,
0x99, 0x36, 0xf6, 0xa0, 0x1d, 0x14, 0x70, 0x00, 0x02, 0x32, 0x0a, 0x21, 0x91, 0x12, 0x94, 0x29,
0xfc, 0x52, 0xb0, 0x32, 0x22, 0x3f, 0xd6, 0x54, 0xcc, 0x74, 0x1b, 0x66, 0x7d, 0x10, 0x52, 0xfb,
0x74, 0x40, 0xa8, 0xe2, 0xc2, 0x94, 0xf6, 0x45, 0x53, 0x56, 0x19, 0xc3, 0x3e, 0x31, 0xa8, 0xf8,
0x7b, 0xd7, 0x87, 0x07, 0x29, 0xe7, 0xe2, 0x52, 0x2a, 0xdd, 0xb4, 0xe8, 0x13, 0x0d, 0xb7, 0xf9,
0x4b, 0x11, 0x95, 0xa7, 0x66, 0xc1, 0x19, 0xa9, 0xc1, 0xa8, 0xa0, 0xf1, 0x5c, 0x3e, 0xcc, 0xb7,
0xce, 0x42, 0xca, 0x7e, 0xe8, 0xb1, 0xd8, 0x8e, 0x63, 0xa1, 0x7f, 0xce, 0x91, 0x85, 0x36, 0xd0,
0x09, 0x0f, 0xdb, 0x40, 0x83, 0xca, 0x04, 0x6c, 0xa0, 0xff, 0xe2, 0xaf, 0x5c, 0x16, 0xec, 0x10,
0x29, 0x7c, 0xd8, 0x10, 0x31, 0x81, 0xda, 0xf1, 0x41, 0x90, 0x7e, 0x91, 0x22, 0x96, 0x32, 0xf5,
0x22, 0x3c, 0x00, 0x38, 0x47, 0xfb, 0xce, 0xba, 0xb9, 0x3c, 0x82, 0x7c, 0x02, 0x80, 0x43, 0xb4,
0x3c, 0x6c, 0x20, 0xc9, 0x5e, 0xc2, 0xa5, 0xf4, 0xeb, 0x92, 0x43, 0xdc, 0x63, 0x2f, 0x01, 0x77,
0xd1, 0xf5, 0xc9, 0x74, 0xe7, 0x90, 0x91, 0x54, 0xbd, 0x38, 0x47, 0xa7, 0xce, 0x46, 0x82, 0x27,
0x80, 0x77, 0x2d, 0x2e, 0x7e, 0x88, 0x56, 0x64, 0xce, 0x55, 0xd8, 0x25, 0xa2, 0x03, 0x4a, 0xbf,
0xf6, 0x45, 0x63, 0xa9, 0x32, 0x38, 0xae, 0x2d, 0xef, 0xe5, 0x5c, 0x7d, 0x6b, 0x18, 0x3b, 0xed,
0x60, 0x59, 0x8e, 0x4f, 0x31, 0x7e, 0x86, 0x6e, 0x4c, 0xba, 0x39, 0x56, 0x2f, 0x19, 0xf5, 0x5b,
0x83, 0xe3, 0xda, 0xf5, 0xe7, 0x63, 0x81, 0x11, 0xca, 0x64, 0x70, 0x23, 0xb0, 0x3e, 0xf2, 0x3b,
0x00, 0x39, 0x88, 0x50, 0xc0, 0x8f, 0x44, 0xc4, 0x61, 0x0e, 0x82, 0x42, 0xa6, 0x48, 0x02, 0x3e,
0xba, 0x84, 0xc0, 0x6f, 0x5a, 0xf4, 0xc0, 0x80, 0xef, 0x8e, 0xb0, 0xf5, 0xd2, 0xf1, 0x09, 0x3d,
0x04, 0xda, 0x09, 0xc7, 0x0f, 0x23, 0x7b, 0x69, 0x23, 0x62, 0x59, 0x0c, 0x47, 0x21, 0xe5, 0xbd,
0x4c, 0xf9, 0x4b, 0x97, 0x70, 0xc9, 0x75, 0x63, 0x68, 0x7b, 0xda, 0xce, 0x8e, 0x36, 0xb3, 0xad,
0xad, 0x9c, 0x3e, 0x6e, 0x96, 0xff, 0x8f, 0x71, 0xb3, 0xf9, 0xf3, 0x3c, 0xba, 0x75, 0xc6, 0x5e,
0x64, 0xe6, 0xf7, 0x78, 0xf9, 0x30, 0xe3, 0xc0, 0xce, 0x88, 0x95, 0x31, 0x79, 0x5f, 0x0f, 0x86,
0x08, 0x6d, 0x9c, 0xbd, 0xb1, 0xb9, 0x5d, 0x62, 0xa3, 0x61, 0xd7, 0xeb, 0xc6, 0x70, 0xbd, 0x6e,
0xec, 0x0f, 0xd7, 0xeb, 0x56, 0x51, 0x07, 0xf5, 0xea, 0x5d, 0xcd, 0x0b, 0xfc, 0xb3, 0x36, 0x31,
0x0c, 0xa8, 0x6c, 0x5e, 0x01, 0x90, 0xea, 0xfc, 0x03, 0x78, 0xb6, 0x20, 0x56, 0x86, 0xa0, 0x2e,
0x1f, 0xbf, 0x79, 0xe8, 0xc6, 0xa9, 0x7b, 0xda, 0x87, 0x67, 0x03, 0x50, 0x79, 0x6a, 0x65, 0xb4,
0x53, 0xf4, 0xa2, 0xaf, 0xeb, 0xc9, 0x35, 0xb1, 0xf5, 0xe8, 0xcd, 0xa0, 0xea, 0xbd, 0x1d, 0x54,
0xbd, 0x7f, 0x07, 0x55, 0xef, 0xd5, 0xfb, 0xea, 0xdc, 0xdb, 0xf7, 0xd5, 0xb9, 0xbf, 0xdf, 0x57,
0xe7, 0xbe, 0xfb, 0x74, 0x02, 0x5f, 0x2f, 0x70, 0xf7, 0x52, 0x12, 0x49, 0xf3, 0xd5, 0x3c, 0x32,
0xff, 0xbe, 0x18, 0x13, 0xd1, 0xa2, 0xb9, 0x89, 0xcf, 0xff, 0x0b, 0x00, 0x00, 0xff, 0xff, 0x25,
0x77, 0x77, 0x4d, 0x7b, 0x0d, 0x00, 0x00,
}
func (m *GenesisState) Marshal() (dAtA []byte, err error) {
@ -661,6 +672,11 @@ func (m *Params) MarshalToSizedBuffer(dAtA []byte) (int, error) {
_ = i
var l int
_ = l
if m.BeginBlockerExecutionBlockInterval != 0 {
i = encodeVarintGenesis(dAtA, i, uint64(m.BeginBlockerExecutionBlockInterval))
i--
dAtA[i] = 0x48
}
if m.CircuitBreaker {
i--
if m.CircuitBreaker {
@ -1108,6 +1124,9 @@ func (m *Params) Size() (n int) {
if m.CircuitBreaker {
n += 2
}
if m.BeginBlockerExecutionBlockInterval != 0 {
n += 1 + sovGenesis(uint64(m.BeginBlockerExecutionBlockInterval))
}
return n
}
@ -1798,6 +1817,25 @@ func (m *Params) Unmarshal(dAtA []byte) error {
}
}
m.CircuitBreaker = bool(v != 0)
case 9:
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field BeginBlockerExecutionBlockInterval", wireType)
}
m.BeginBlockerExecutionBlockInterval = 0
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowGenesis
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
m.BeginBlockerExecutionBlockInterval |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
}
default:
iNdEx = preIndex
skippy, err := skipGenesis(dAtA[iNdEx:])

View File

@ -21,6 +21,7 @@ var (
KeyDebtLot = []byte("DebtLot")
KeySurplusThreshold = []byte("SurplusThreshold")
KeySurplusLot = []byte("SurplusLot")
KeyBeginBlockerExecutionBlockInterval = []byte("BeginBlockerExecutionBlockInterval")
DefaultGlobalDebt = sdk.NewCoin(DefaultStableDenom, sdk.ZeroInt())
DefaultCircuitBreaker = false
DefaultCollateralParams = CollateralParams{}
@ -39,12 +40,14 @@ var (
DefaultSurplusLot = sdkmath.NewInt(10000000000)
DefaultDebtLot = sdkmath.NewInt(10000000000)
stabilityFeeMax = sdk.MustNewDecFromStr("1.000000051034942716") // 500% APR
// Run every block
DefaultBeginBlockerExecutionBlockInterval = int64(1)
)
// NewParams returns a new params object
func NewParams(
debtLimit sdk.Coin, collateralParams CollateralParams, debtParam DebtParam, surplusThreshold,
surplusLot, debtThreshold, debtLot sdkmath.Int, breaker bool,
surplusLot, debtThreshold, debtLot sdkmath.Int, breaker bool, beginBlockerExecutionBlockInterval int64,
) Params {
return Params{
GlobalDebtLimit: debtLimit,
@ -55,6 +58,7 @@ func NewParams(
DebtAuctionThreshold: debtThreshold,
DebtAuctionLot: debtLot,
CircuitBreaker: breaker,
BeginBlockerExecutionBlockInterval: beginBlockerExecutionBlockInterval,
}
}
@ -63,7 +67,7 @@ func DefaultParams() Params {
return NewParams(
DefaultGlobalDebt, DefaultCollateralParams, DefaultDebtParam, DefaultSurplusThreshold,
DefaultSurplusLot, DefaultDebtThreshold, DefaultDebtLot,
DefaultCircuitBreaker,
DefaultCircuitBreaker, DefaultBeginBlockerExecutionBlockInterval,
)
}
@ -122,6 +126,7 @@ func (p *Params) ParamSetPairs() paramtypes.ParamSetPairs {
paramtypes.NewParamSetPair(KeySurplusLot, &p.SurplusAuctionLot, validateSurplusAuctionLotParam),
paramtypes.NewParamSetPair(KeyDebtThreshold, &p.DebtAuctionThreshold, validateDebtAuctionThresholdParam),
paramtypes.NewParamSetPair(KeyDebtLot, &p.DebtAuctionLot, validateDebtAuctionLotParam),
paramtypes.NewParamSetPair(KeyBeginBlockerExecutionBlockInterval, &p.BeginBlockerExecutionBlockInterval, validateBeginBlockerExecutionBlockIntervalParam),
}
}
@ -200,6 +205,10 @@ func (p Params) Validate() error {
collateralParamsDebtLimit, p.GlobalDebtLimit)
}
if err := validateBeginBlockerExecutionBlockIntervalParam(p.BeginBlockerExecutionBlockInterval); err != nil {
return err
}
return nil
}
@ -346,3 +355,16 @@ func validateDebtAuctionLotParam(i interface{}) error {
return nil
}
func validateBeginBlockerExecutionBlockIntervalParam(i interface{}) error {
bbebi, ok := i.(int64)
if !ok {
return fmt.Errorf("invalid parameter type: %T", i)
}
if bbebi <= 0 {
return fmt.Errorf("begin blocker execution block interval param should be positive: %d", bbebi)
}
return nil
}

View File

@ -28,6 +28,7 @@ func (suite *ParamsTestSuite) TestParamValidation() {
debtThreshold sdkmath.Int
debtLot sdkmath.Int
breaker bool
beginBlockerExecutionBlockInterval int64
}
type errArgs struct {
expectPass bool
@ -50,6 +51,7 @@ func (suite *ParamsTestSuite) TestParamValidation() {
debtThreshold: types.DefaultDebtThreshold,
debtLot: types.DefaultDebtLot,
breaker: types.DefaultCircuitBreaker,
beginBlockerExecutionBlockInterval: types.DefaultBeginBlockerExecutionBlockInterval,
},
errArgs: errArgs{
expectPass: true,
@ -87,6 +89,7 @@ func (suite *ParamsTestSuite) TestParamValidation() {
debtThreshold: types.DefaultDebtThreshold,
debtLot: types.DefaultDebtLot,
breaker: types.DefaultCircuitBreaker,
beginBlockerExecutionBlockInterval: types.DefaultBeginBlockerExecutionBlockInterval,
},
errArgs: errArgs{
expectPass: true,
@ -124,6 +127,7 @@ func (suite *ParamsTestSuite) TestParamValidation() {
debtThreshold: types.DefaultDebtThreshold,
debtLot: types.DefaultDebtLot,
breaker: types.DefaultCircuitBreaker,
beginBlockerExecutionBlockInterval: types.DefaultBeginBlockerExecutionBlockInterval,
},
errArgs: errArgs{
expectPass: false,
@ -161,6 +165,7 @@ func (suite *ParamsTestSuite) TestParamValidation() {
debtThreshold: types.DefaultDebtThreshold,
debtLot: types.DefaultDebtLot,
breaker: types.DefaultCircuitBreaker,
beginBlockerExecutionBlockInterval: types.DefaultBeginBlockerExecutionBlockInterval,
},
errArgs: errArgs{
expectPass: false,
@ -212,6 +217,7 @@ func (suite *ParamsTestSuite) TestParamValidation() {
debtThreshold: types.DefaultDebtThreshold,
debtLot: types.DefaultDebtLot,
breaker: types.DefaultCircuitBreaker,
beginBlockerExecutionBlockInterval: types.DefaultBeginBlockerExecutionBlockInterval,
},
errArgs: errArgs{
expectPass: true,
@ -263,6 +269,7 @@ func (suite *ParamsTestSuite) TestParamValidation() {
debtThreshold: types.DefaultDebtThreshold,
debtLot: types.DefaultDebtLot,
breaker: types.DefaultCircuitBreaker,
beginBlockerExecutionBlockInterval: types.DefaultBeginBlockerExecutionBlockInterval,
},
errArgs: errArgs{
expectPass: false,
@ -314,6 +321,7 @@ func (suite *ParamsTestSuite) TestParamValidation() {
debtThreshold: types.DefaultDebtThreshold,
debtLot: types.DefaultDebtLot,
breaker: types.DefaultCircuitBreaker,
beginBlockerExecutionBlockInterval: types.DefaultBeginBlockerExecutionBlockInterval,
},
errArgs: errArgs{
expectPass: false,
@ -350,6 +358,7 @@ func (suite *ParamsTestSuite) TestParamValidation() {
debtThreshold: types.DefaultDebtThreshold,
debtLot: types.DefaultDebtLot,
breaker: types.DefaultCircuitBreaker,
beginBlockerExecutionBlockInterval: types.DefaultBeginBlockerExecutionBlockInterval,
},
errArgs: errArgs{
expectPass: false,
@ -387,6 +396,7 @@ func (suite *ParamsTestSuite) TestParamValidation() {
debtThreshold: types.DefaultDebtThreshold,
debtLot: types.DefaultDebtLot,
breaker: types.DefaultCircuitBreaker,
beginBlockerExecutionBlockInterval: types.DefaultBeginBlockerExecutionBlockInterval,
},
errArgs: errArgs{
expectPass: false,
@ -438,6 +448,7 @@ func (suite *ParamsTestSuite) TestParamValidation() {
debtThreshold: types.DefaultDebtThreshold,
debtLot: types.DefaultDebtLot,
breaker: types.DefaultCircuitBreaker,
beginBlockerExecutionBlockInterval: types.DefaultBeginBlockerExecutionBlockInterval,
},
errArgs: errArgs{
expectPass: false,
@ -489,6 +500,7 @@ func (suite *ParamsTestSuite) TestParamValidation() {
debtThreshold: types.DefaultDebtThreshold,
debtLot: types.DefaultDebtLot,
breaker: types.DefaultCircuitBreaker,
beginBlockerExecutionBlockInterval: types.DefaultBeginBlockerExecutionBlockInterval,
},
errArgs: errArgs{
expectPass: true,
@ -526,6 +538,7 @@ func (suite *ParamsTestSuite) TestParamValidation() {
debtThreshold: types.DefaultDebtThreshold,
debtLot: types.DefaultDebtLot,
breaker: types.DefaultCircuitBreaker,
beginBlockerExecutionBlockInterval: types.DefaultBeginBlockerExecutionBlockInterval,
},
errArgs: errArgs{
expectPass: false,
@ -563,6 +576,7 @@ func (suite *ParamsTestSuite) TestParamValidation() {
debtThreshold: types.DefaultDebtThreshold,
debtLot: types.DefaultDebtLot,
breaker: types.DefaultCircuitBreaker,
beginBlockerExecutionBlockInterval: types.DefaultBeginBlockerExecutionBlockInterval,
},
errArgs: errArgs{
expectPass: false,
@ -600,6 +614,7 @@ func (suite *ParamsTestSuite) TestParamValidation() {
debtThreshold: types.DefaultDebtThreshold,
debtLot: types.DefaultDebtLot,
breaker: types.DefaultCircuitBreaker,
beginBlockerExecutionBlockInterval: types.DefaultBeginBlockerExecutionBlockInterval,
},
errArgs: errArgs{
expectPass: false,
@ -637,6 +652,7 @@ func (suite *ParamsTestSuite) TestParamValidation() {
debtThreshold: types.DefaultDebtThreshold,
debtLot: types.DefaultDebtLot,
breaker: types.DefaultCircuitBreaker,
beginBlockerExecutionBlockInterval: types.DefaultBeginBlockerExecutionBlockInterval,
},
errArgs: errArgs{
expectPass: false,
@ -669,6 +685,7 @@ func (suite *ParamsTestSuite) TestParamValidation() {
debtThreshold: types.DefaultDebtThreshold,
debtLot: types.DefaultDebtLot,
breaker: types.DefaultCircuitBreaker,
beginBlockerExecutionBlockInterval: types.DefaultBeginBlockerExecutionBlockInterval,
},
errArgs: errArgs{
expectPass: false,
@ -706,6 +723,7 @@ func (suite *ParamsTestSuite) TestParamValidation() {
debtThreshold: types.DefaultDebtThreshold,
debtLot: types.DefaultDebtLot,
breaker: types.DefaultCircuitBreaker,
beginBlockerExecutionBlockInterval: types.DefaultBeginBlockerExecutionBlockInterval,
},
errArgs: errArgs{
expectPass: false,
@ -723,6 +741,7 @@ func (suite *ParamsTestSuite) TestParamValidation() {
debtThreshold: types.DefaultDebtThreshold,
debtLot: types.DefaultDebtLot,
breaker: types.DefaultCircuitBreaker,
beginBlockerExecutionBlockInterval: types.DefaultBeginBlockerExecutionBlockInterval,
},
errArgs: errArgs{
expectPass: false,
@ -740,6 +759,7 @@ func (suite *ParamsTestSuite) TestParamValidation() {
debtThreshold: types.DefaultDebtThreshold,
debtLot: types.DefaultDebtLot,
breaker: types.DefaultCircuitBreaker,
beginBlockerExecutionBlockInterval: types.DefaultBeginBlockerExecutionBlockInterval,
},
errArgs: errArgs{
expectPass: false,
@ -757,6 +777,7 @@ func (suite *ParamsTestSuite) TestParamValidation() {
debtThreshold: sdk.ZeroInt(),
debtLot: types.DefaultDebtLot,
breaker: types.DefaultCircuitBreaker,
beginBlockerExecutionBlockInterval: types.DefaultBeginBlockerExecutionBlockInterval,
},
errArgs: errArgs{
expectPass: false,
@ -774,6 +795,7 @@ func (suite *ParamsTestSuite) TestParamValidation() {
debtThreshold: types.DefaultDebtThreshold,
debtLot: types.DefaultDebtLot,
breaker: types.DefaultCircuitBreaker,
beginBlockerExecutionBlockInterval: types.DefaultBeginBlockerExecutionBlockInterval,
},
errArgs: errArgs{
expectPass: false,
@ -791,6 +813,7 @@ func (suite *ParamsTestSuite) TestParamValidation() {
debtThreshold: types.DefaultDebtThreshold,
debtLot: sdk.ZeroInt(),
breaker: types.DefaultCircuitBreaker,
beginBlockerExecutionBlockInterval: types.DefaultBeginBlockerExecutionBlockInterval,
},
errArgs: errArgs{
expectPass: false,
@ -800,7 +823,7 @@ func (suite *ParamsTestSuite) TestParamValidation() {
}
for _, tc := range testCases {
suite.Run(tc.name, func() {
params := types.NewParams(tc.args.globalDebtLimit, tc.args.collateralParams, tc.args.debtParam, tc.args.surplusThreshold, tc.args.surplusLot, tc.args.debtThreshold, tc.args.debtLot, tc.args.breaker)
params := types.NewParams(tc.args.globalDebtLimit, tc.args.collateralParams, tc.args.debtParam, tc.args.surplusThreshold, tc.args.surplusLot, tc.args.debtThreshold, tc.args.debtLot, tc.args.breaker, tc.args.beginBlockerExecutionBlockInterval)
err := params.Validate()
if tc.errArgs.expectPass {
suite.Require().NoError(err)

View File

@ -18,6 +18,7 @@ func NewCDPGenState(cdc codec.JSONCodec, denom, asset string, liquidationRatio s
SurplusAuctionLot: cdptypes.DefaultSurplusLot,
DebtAuctionThreshold: cdptypes.DefaultDebtThreshold,
DebtAuctionLot: cdptypes.DefaultDebtLot,
BeginBlockerExecutionBlockInterval: cdptypes.DefaultBeginBlockerExecutionBlockInterval,
CollateralParams: cdptypes.CollateralParams{
{
Denom: denom,

View File

@ -28,6 +28,7 @@ func NewCDPGenStateMulti(cdc codec.JSONCodec) app.GenesisState {
SurplusAuctionLot: cdptypes.DefaultSurplusLot,
DebtAuctionThreshold: cdptypes.DefaultDebtThreshold,
DebtAuctionLot: cdptypes.DefaultDebtLot,
BeginBlockerExecutionBlockInterval: cdptypes.DefaultBeginBlockerExecutionBlockInterval,
CollateralParams: cdptypes.CollateralParams{
{
Denom: "xrp",

View File

@ -34,6 +34,7 @@ func NewCDPGenStateMulti(cdc codec.JSONCodec) app.GenesisState {
SurplusAuctionLot: cdptypes.DefaultSurplusLot,
DebtAuctionThreshold: cdptypes.DefaultDebtThreshold,
DebtAuctionLot: cdptypes.DefaultDebtLot,
BeginBlockerExecutionBlockInterval: cdptypes.DefaultBeginBlockerExecutionBlockInterval,
CollateralParams: cdptypes.CollateralParams{
{
Denom: "xrp",