From 4d62f4777314348515bf84451587f1e25b93c6e8 Mon Sep 17 00:00:00 2001 From: Levi Schoen Date: Wed, 24 Jan 2024 12:10:07 -1000 Subject: [PATCH] (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 --- CHANGELOG.md | 4 +- Makefile | 1 + ci/env/kava-protonet/genesis.json | 1 + client/docs/swagger-ui/swagger.yaml | 9 + docs/Telemetry.md | 8 +- docs/core/proto-docs.md | 1 + prometheus.docker-compose.yml | 7 + prometheus.yml | 3 +- proto/kava/cdp/v1beta1/genesis.proto | 2 + tests/e2e/kvtool | 2 +- x/cdp/abci.go | 10 + x/cdp/genesis_test.go | 11 +- x/cdp/integration_test.go | 11 +- x/cdp/keeper/integration_test.go | 13 +- x/cdp/legacy/v0_16/migrate.go | 13 +- x/cdp/legacy/v0_16/migrate_test.go | 11 +- x/cdp/legacy/v0_16/testdata/v16-cdp.json | 63 ++++- x/cdp/types/genesis.pb.go | 204 +++++++++------- x/cdp/types/params.go | 66 +++-- x/cdp/types/params_test.go | 299 ++++++++++++----------- x/community/testutil/cdp_genesis.go | 11 +- x/incentive/integration_test.go | 11 +- x/incentive/keeper/integration_test.go | 11 +- 23 files changed, 466 insertions(+), 306 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 60a64eae..6b9315e6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -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 diff --git a/Makefile b/Makefile index 89673518..1d11e06a 100644 --- a/Makefile +++ b/Makefile @@ -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 diff --git a/ci/env/kava-protonet/genesis.json b/ci/env/kava-protonet/genesis.json index 3f55b66a..21a0ddd1 100644 --- a/ci/env/kava-protonet/genesis.json +++ b/ci/env/kava-protonet/genesis.json @@ -837,6 +837,7 @@ "gov_denom": "ukava", "params": { "circuit_breaker": false, + "begin_blocker_execution_block_interval": 500, "collateral_params": [ { "auction_size": "50000000000", diff --git a/client/docs/swagger-ui/swagger.yaml b/client/docs/swagger-ui/swagger.yaml index f74931ab..24005346 100644 --- a/client/docs/swagger-ui/swagger.yaml +++ b/client/docs/swagger-ui/swagger.yaml @@ -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 diff --git a/docs/Telemetry.md b/docs/Telemetry.md index 72de8873..8df75e5f 100644 --- a/docs/Telemetry.md +++ b/docs/Telemetry.md @@ -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 diff --git a/docs/core/proto-docs.md b/docs/core/proto-docs.md index e9a3ab15..2f427cb8 100644 --- a/docs/core/proto-docs.md +++ b/docs/core/proto-docs.md @@ -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) | | | diff --git a/prometheus.docker-compose.yml b/prometheus.docker-compose.yml index f4cf8575..3aa8dceb 100644 --- a/prometheus.docker-compose.yml +++ b/prometheus.docker-compose.yml @@ -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 diff --git a/prometheus.yml b/prometheus.yml index d0419b58..b0a1e747 100644 --- a/prometheus.yml +++ b/prometheus.yml @@ -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 diff --git a/proto/kava/cdp/v1beta1/genesis.proto b/proto/kava/cdp/v1beta1/genesis.proto index 3d91aaa4..afb6cc58 100644 --- a/proto/kava/cdp/v1beta1/genesis.proto +++ b/proto/kava/cdp/v1beta1/genesis.proto @@ -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 diff --git a/tests/e2e/kvtool b/tests/e2e/kvtool index e1085562..b9669f6a 160000 --- a/tests/e2e/kvtool +++ b/tests/e2e/kvtool @@ -1 +1 @@ -Subproject commit e1085562d203fd81c5dd8576170b29715b2de9ef +Subproject commit b9669f6a5d16658ffe8ea667b688fb174e656f43 diff --git a/x/cdp/abci.go b/x/cdp/abci.go index 6a66a482..3bd01288 100644 --- a/x/cdp/abci.go +++ b/x/cdp/abci.go @@ -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 { diff --git a/x/cdp/genesis_test.go b/x/cdp/genesis_test.go index 10ef9498..01390684 100644 --- a/x/cdp/genesis_test.go +++ b/x/cdp/genesis_test.go @@ -205,11 +205,12 @@ func (suite *GenesisTestSuite) Test_InitExportGenesis() { cdpGenesis := types.GenesisState{ Params: types.Params{ - GlobalDebtLimit: sdk.NewInt64Coin("usdx", 1000000000000), - SurplusAuctionThreshold: types.DefaultSurplusThreshold, - SurplusAuctionLot: types.DefaultSurplusLot, - DebtAuctionThreshold: types.DefaultDebtThreshold, - DebtAuctionLot: types.DefaultDebtLot, + GlobalDebtLimit: sdk.NewInt64Coin("usdx", 1000000000000), + SurplusAuctionThreshold: types.DefaultSurplusThreshold, + SurplusAuctionLot: types.DefaultSurplusLot, + DebtAuctionThreshold: types.DefaultDebtThreshold, + DebtAuctionLot: types.DefaultDebtLot, + BeginBlockerExecutionBlockInterval: types.DefaultBeginBlockerExecutionBlockInterval, CollateralParams: types.CollateralParams{ { Denom: "xrp", diff --git a/x/cdp/integration_test.go b/x/cdp/integration_test.go index 3a7f24d9..193b8f39 100644 --- a/x/cdp/integration_test.go +++ b/x/cdp/integration_test.go @@ -113,11 +113,12 @@ func NewPricefeedGenStateMulti(cdc codec.JSONCodec) app.GenesisState { func NewCDPGenStateMulti(cdc codec.JSONCodec) app.GenesisState { cdpGenesis := types.GenesisState{ Params: types.Params{ - GlobalDebtLimit: sdk.NewInt64Coin("usdx", 1000000000000), - SurplusAuctionThreshold: types.DefaultSurplusThreshold, - SurplusAuctionLot: types.DefaultSurplusLot, - DebtAuctionThreshold: types.DefaultDebtThreshold, - DebtAuctionLot: types.DefaultDebtLot, + GlobalDebtLimit: sdk.NewInt64Coin("usdx", 1000000000000), + SurplusAuctionThreshold: types.DefaultSurplusThreshold, + SurplusAuctionLot: types.DefaultSurplusLot, + DebtAuctionThreshold: types.DefaultDebtThreshold, + DebtAuctionLot: types.DefaultDebtLot, + BeginBlockerExecutionBlockInterval: types.DefaultBeginBlockerExecutionBlockInterval, CollateralParams: types.CollateralParams{ { Denom: "xrp", diff --git a/x/cdp/keeper/integration_test.go b/x/cdp/keeper/integration_test.go index a7c8b8c9..f555d918 100644 --- a/x/cdp/keeper/integration_test.go +++ b/x/cdp/keeper/integration_test.go @@ -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, @@ -155,11 +156,12 @@ func NewPricefeedGenStateMulti(cdc codec.JSONCodec) app.GenesisState { func NewCDPGenStateMulti(cdc codec.JSONCodec) app.GenesisState { cdpGenesis := types.GenesisState{ Params: types.Params{ - GlobalDebtLimit: sdk.NewInt64Coin("usdx", 2000000000000), - SurplusAuctionThreshold: types.DefaultSurplusThreshold, - SurplusAuctionLot: types.DefaultSurplusLot, - DebtAuctionThreshold: types.DefaultDebtThreshold, - DebtAuctionLot: types.DefaultDebtLot, + GlobalDebtLimit: sdk.NewInt64Coin("usdx", 2000000000000), + SurplusAuctionThreshold: types.DefaultSurplusThreshold, + 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", diff --git a/x/cdp/legacy/v0_16/migrate.go b/x/cdp/legacy/v0_16/migrate.go index 9a16fec8..59fe42ed 100644 --- a/x/cdp/legacy/v0_16/migrate.go +++ b/x/cdp/legacy/v0_16/migrate.go @@ -33,12 +33,13 @@ func migrateParams(params v015cdp.Params) v016cdp.Params { ConversionFactor: params.DebtParam.ConversionFactor, DebtFloor: params.DebtParam.DebtFloor, }, - GlobalDebtLimit: params.GlobalDebtLimit, - SurplusAuctionThreshold: params.SurplusAuctionThreshold, - SurplusAuctionLot: params.SurplusAuctionLot, - DebtAuctionThreshold: params.DebtAuctionThreshold, - DebtAuctionLot: params.DebtAuctionLot, - CircuitBreaker: params.CircuitBreaker, + GlobalDebtLimit: params.GlobalDebtLimit, + SurplusAuctionThreshold: params.SurplusAuctionThreshold, + SurplusAuctionLot: params.SurplusAuctionLot, + DebtAuctionThreshold: params.DebtAuctionThreshold, + DebtAuctionLot: params.DebtAuctionLot, + CircuitBreaker: params.CircuitBreaker, + BeginBlockerExecutionBlockInterval: v016cdp.DefaultBeginBlockerExecutionBlockInterval, } } diff --git a/x/cdp/legacy/v0_16/migrate_test.go b/x/cdp/legacy/v0_16/migrate_test.go index 58669e32..04d37c7a 100644 --- a/x/cdp/legacy/v0_16/migrate_test.go +++ b/x/cdp/legacy/v0_16/migrate_test.go @@ -163,11 +163,12 @@ func (s *migrateTestSuite) TestMigrate_GenState() { ConversionFactor: sdkmath.NewInt(6), DebtFloor: sdkmath.NewInt(100), }, - GlobalDebtLimit: sdk.NewInt64Coin("usdx", 1000000000000), - SurplusAuctionThreshold: sdkmath.NewInt(6), - SurplusAuctionLot: sdkmath.NewInt(7), - DebtAuctionThreshold: sdkmath.NewInt(8), - DebtAuctionLot: sdkmath.NewInt(9), + GlobalDebtLimit: sdk.NewInt64Coin("usdx", 1000000000000), + SurplusAuctionThreshold: sdkmath.NewInt(6), + SurplusAuctionLot: sdkmath.NewInt(7), + DebtAuctionThreshold: sdkmath.NewInt(8), + DebtAuctionLot: sdkmath.NewInt(9), + BeginBlockerExecutionBlockInterval: v016cdp.DefaultBeginBlockerExecutionBlockInterval, }, CDPs: v016cdp.CDPs{ { diff --git a/x/cdp/legacy/v0_16/testdata/v16-cdp.json b/x/cdp/legacy/v0_16/testdata/v16-cdp.json index 160ca144..16cb2935 100644 --- a/x/cdp/legacy/v0_16/testdata/v16-cdp.json +++ b/x/cdp/legacy/v0_16/testdata/v16-cdp.json @@ -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" + } ] } diff --git a/x/cdp/types/genesis.pb.go b/x/cdp/types/genesis.pb.go index 7939ed3e..7eebc4fd 100644 --- a/x/cdp/types/genesis.pb.go +++ b/x/cdp/types/genesis.pb.go @@ -134,14 +134,15 @@ func (m *GenesisState) GetTotalPrincipals() GenesisTotalPrincipals { // Params defines the parameters for the cdp module. type Params struct { - CollateralParams CollateralParams `protobuf:"bytes,1,rep,name=collateral_params,json=collateralParams,proto3,castrepeated=CollateralParams" json:"collateral_params"` - DebtParam DebtParam `protobuf:"bytes,2,opt,name=debt_param,json=debtParam,proto3" json:"debt_param"` - GlobalDebtLimit types.Coin `protobuf:"bytes,3,opt,name=global_debt_limit,json=globalDebtLimit,proto3" json:"global_debt_limit"` - SurplusAuctionThreshold github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,4,opt,name=surplus_auction_threshold,json=surplusAuctionThreshold,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"surplus_auction_threshold"` - SurplusAuctionLot github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,5,opt,name=surplus_auction_lot,json=surplusAuctionLot,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"surplus_auction_lot"` - 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"` + CollateralParams CollateralParams `protobuf:"bytes,1,rep,name=collateral_params,json=collateralParams,proto3,castrepeated=CollateralParams" json:"collateral_params"` + DebtParam DebtParam `protobuf:"bytes,2,opt,name=debt_param,json=debtParam,proto3" json:"debt_param"` + GlobalDebtLimit types.Coin `protobuf:"bytes,3,opt,name=global_debt_limit,json=globalDebtLimit,proto3" json:"global_debt_limit"` + SurplusAuctionThreshold github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,4,opt,name=surplus_auction_threshold,json=surplusAuctionThreshold,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"surplus_auction_threshold"` + SurplusAuctionLot github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,5,opt,name=surplus_auction_lot,json=surplusAuctionLot,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"surplus_auction_lot"` + 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:]) diff --git a/x/cdp/types/params.go b/x/cdp/types/params.go index fd3ca4c6..6d389af0 100644 --- a/x/cdp/types/params.go +++ b/x/cdp/types/params.go @@ -13,18 +13,19 @@ import ( // Parameter keys var ( - KeyGlobalDebtLimit = []byte("GlobalDebtLimit") - KeyCollateralParams = []byte("CollateralParams") - KeyDebtParam = []byte("DebtParam") - KeyCircuitBreaker = []byte("CircuitBreaker") - KeyDebtThreshold = []byte("DebtThreshold") - KeyDebtLot = []byte("DebtLot") - KeySurplusThreshold = []byte("SurplusThreshold") - KeySurplusLot = []byte("SurplusLot") - DefaultGlobalDebt = sdk.NewCoin(DefaultStableDenom, sdk.ZeroInt()) - DefaultCircuitBreaker = false - DefaultCollateralParams = CollateralParams{} - DefaultDebtParam = DebtParam{ + KeyGlobalDebtLimit = []byte("GlobalDebtLimit") + KeyCollateralParams = []byte("CollateralParams") + KeyDebtParam = []byte("DebtParam") + KeyCircuitBreaker = []byte("CircuitBreaker") + KeyDebtThreshold = []byte("DebtThreshold") + KeyDebtLot = []byte("DebtLot") + KeySurplusThreshold = []byte("SurplusThreshold") + KeySurplusLot = []byte("SurplusLot") + KeyBeginBlockerExecutionBlockInterval = []byte("BeginBlockerExecutionBlockInterval") + DefaultGlobalDebt = sdk.NewCoin(DefaultStableDenom, sdk.ZeroInt()) + DefaultCircuitBreaker = false + DefaultCollateralParams = CollateralParams{} + DefaultDebtParam = DebtParam{ Denom: "usdx", ReferenceAsset: "usd", ConversionFactor: sdkmath.NewInt(6), @@ -39,22 +40,25 @@ 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, - CollateralParams: collateralParams, - DebtParam: debtParam, - SurplusAuctionThreshold: surplusThreshold, - SurplusAuctionLot: surplusLot, - DebtAuctionThreshold: debtThreshold, - DebtAuctionLot: debtLot, - CircuitBreaker: breaker, + GlobalDebtLimit: debtLimit, + CollateralParams: collateralParams, + DebtParam: debtParam, + SurplusAuctionThreshold: surplusThreshold, + SurplusAuctionLot: surplusLot, + 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 +} diff --git a/x/cdp/types/params_test.go b/x/cdp/types/params_test.go index 36b7f127..9a8b5106 100644 --- a/x/cdp/types/params_test.go +++ b/x/cdp/types/params_test.go @@ -20,14 +20,15 @@ func (suite *ParamsTestSuite) SetupTest() { func (suite *ParamsTestSuite) TestParamValidation() { type args struct { - globalDebtLimit sdk.Coin - collateralParams types.CollateralParams - debtParam types.DebtParam - surplusThreshold sdkmath.Int - surplusLot sdkmath.Int - debtThreshold sdkmath.Int - debtLot sdkmath.Int - breaker bool + globalDebtLimit sdk.Coin + collateralParams types.CollateralParams + debtParam types.DebtParam + surplusThreshold sdkmath.Int + surplusLot sdkmath.Int + debtThreshold sdkmath.Int + debtLot sdkmath.Int + breaker bool + beginBlockerExecutionBlockInterval int64 } type errArgs struct { expectPass bool @@ -42,14 +43,15 @@ func (suite *ParamsTestSuite) TestParamValidation() { { name: "default", args: args{ - globalDebtLimit: types.DefaultGlobalDebt, - collateralParams: types.DefaultCollateralParams, - debtParam: types.DefaultDebtParam, - surplusThreshold: types.DefaultSurplusThreshold, - surplusLot: types.DefaultSurplusLot, - debtThreshold: types.DefaultDebtThreshold, - debtLot: types.DefaultDebtLot, - breaker: types.DefaultCircuitBreaker, + globalDebtLimit: types.DefaultGlobalDebt, + collateralParams: types.DefaultCollateralParams, + debtParam: types.DefaultDebtParam, + surplusThreshold: types.DefaultSurplusThreshold, + surplusLot: types.DefaultSurplusLot, + debtThreshold: types.DefaultDebtThreshold, + debtLot: types.DefaultDebtLot, + breaker: types.DefaultCircuitBreaker, + beginBlockerExecutionBlockInterval: types.DefaultBeginBlockerExecutionBlockInterval, }, errArgs: errArgs{ expectPass: true, @@ -82,11 +84,12 @@ func (suite *ParamsTestSuite) TestParamValidation() { ConversionFactor: sdkmath.NewInt(6), DebtFloor: sdkmath.NewInt(10000000), }, - surplusThreshold: types.DefaultSurplusThreshold, - surplusLot: types.DefaultSurplusLot, - debtThreshold: types.DefaultDebtThreshold, - debtLot: types.DefaultDebtLot, - breaker: types.DefaultCircuitBreaker, + surplusThreshold: types.DefaultSurplusThreshold, + surplusLot: types.DefaultSurplusLot, + debtThreshold: types.DefaultDebtThreshold, + debtLot: types.DefaultDebtLot, + breaker: types.DefaultCircuitBreaker, + beginBlockerExecutionBlockInterval: types.DefaultBeginBlockerExecutionBlockInterval, }, errArgs: errArgs{ expectPass: true, @@ -119,11 +122,12 @@ func (suite *ParamsTestSuite) TestParamValidation() { ConversionFactor: sdkmath.NewInt(6), DebtFloor: sdkmath.NewInt(10000000), }, - surplusThreshold: types.DefaultSurplusThreshold, - surplusLot: types.DefaultSurplusLot, - debtThreshold: types.DefaultDebtThreshold, - debtLot: types.DefaultDebtLot, - breaker: types.DefaultCircuitBreaker, + surplusThreshold: types.DefaultSurplusThreshold, + surplusLot: types.DefaultSurplusLot, + debtThreshold: types.DefaultDebtThreshold, + debtLot: types.DefaultDebtLot, + breaker: types.DefaultCircuitBreaker, + beginBlockerExecutionBlockInterval: types.DefaultBeginBlockerExecutionBlockInterval, }, errArgs: errArgs{ expectPass: false, @@ -156,11 +160,12 @@ func (suite *ParamsTestSuite) TestParamValidation() { ConversionFactor: sdkmath.NewInt(6), DebtFloor: sdkmath.NewInt(10000000), }, - surplusThreshold: types.DefaultSurplusThreshold, - surplusLot: types.DefaultSurplusLot, - debtThreshold: types.DefaultDebtThreshold, - debtLot: types.DefaultDebtLot, - breaker: types.DefaultCircuitBreaker, + surplusThreshold: types.DefaultSurplusThreshold, + surplusLot: types.DefaultSurplusLot, + debtThreshold: types.DefaultDebtThreshold, + debtLot: types.DefaultDebtLot, + breaker: types.DefaultCircuitBreaker, + beginBlockerExecutionBlockInterval: types.DefaultBeginBlockerExecutionBlockInterval, }, errArgs: errArgs{ expectPass: false, @@ -207,11 +212,12 @@ func (suite *ParamsTestSuite) TestParamValidation() { ConversionFactor: sdkmath.NewInt(6), DebtFloor: sdkmath.NewInt(10000000), }, - surplusThreshold: types.DefaultSurplusThreshold, - surplusLot: types.DefaultSurplusLot, - debtThreshold: types.DefaultDebtThreshold, - debtLot: types.DefaultDebtLot, - breaker: types.DefaultCircuitBreaker, + surplusThreshold: types.DefaultSurplusThreshold, + surplusLot: types.DefaultSurplusLot, + debtThreshold: types.DefaultDebtThreshold, + debtLot: types.DefaultDebtLot, + breaker: types.DefaultCircuitBreaker, + beginBlockerExecutionBlockInterval: types.DefaultBeginBlockerExecutionBlockInterval, }, errArgs: errArgs{ expectPass: true, @@ -258,11 +264,12 @@ func (suite *ParamsTestSuite) TestParamValidation() { ConversionFactor: sdkmath.NewInt(6), DebtFloor: sdkmath.NewInt(10000000), }, - surplusThreshold: types.DefaultSurplusThreshold, - surplusLot: types.DefaultSurplusLot, - debtThreshold: types.DefaultDebtThreshold, - debtLot: types.DefaultDebtLot, - breaker: types.DefaultCircuitBreaker, + surplusThreshold: types.DefaultSurplusThreshold, + surplusLot: types.DefaultSurplusLot, + debtThreshold: types.DefaultDebtThreshold, + debtLot: types.DefaultDebtLot, + breaker: types.DefaultCircuitBreaker, + beginBlockerExecutionBlockInterval: types.DefaultBeginBlockerExecutionBlockInterval, }, errArgs: errArgs{ expectPass: false, @@ -309,11 +316,12 @@ func (suite *ParamsTestSuite) TestParamValidation() { ConversionFactor: sdkmath.NewInt(6), DebtFloor: sdkmath.NewInt(10000000), }, - surplusThreshold: types.DefaultSurplusThreshold, - surplusLot: types.DefaultSurplusLot, - debtThreshold: types.DefaultDebtThreshold, - debtLot: types.DefaultDebtLot, - breaker: types.DefaultCircuitBreaker, + surplusThreshold: types.DefaultSurplusThreshold, + surplusLot: types.DefaultSurplusLot, + debtThreshold: types.DefaultDebtThreshold, + debtLot: types.DefaultDebtLot, + breaker: types.DefaultCircuitBreaker, + beginBlockerExecutionBlockInterval: types.DefaultBeginBlockerExecutionBlockInterval, }, errArgs: errArgs{ expectPass: false, @@ -345,11 +353,12 @@ func (suite *ParamsTestSuite) TestParamValidation() { ConversionFactor: sdkmath.NewInt(6), DebtFloor: sdkmath.NewInt(10000000), }, - surplusThreshold: types.DefaultSurplusThreshold, - surplusLot: types.DefaultSurplusLot, - debtThreshold: types.DefaultDebtThreshold, - debtLot: types.DefaultDebtLot, - breaker: types.DefaultCircuitBreaker, + surplusThreshold: types.DefaultSurplusThreshold, + surplusLot: types.DefaultSurplusLot, + debtThreshold: types.DefaultDebtThreshold, + debtLot: types.DefaultDebtLot, + breaker: types.DefaultCircuitBreaker, + beginBlockerExecutionBlockInterval: types.DefaultBeginBlockerExecutionBlockInterval, }, errArgs: errArgs{ expectPass: false, @@ -382,11 +391,12 @@ func (suite *ParamsTestSuite) TestParamValidation() { ConversionFactor: sdkmath.NewInt(6), DebtFloor: sdkmath.NewInt(10000000), }, - surplusThreshold: types.DefaultSurplusThreshold, - surplusLot: types.DefaultSurplusLot, - debtThreshold: types.DefaultDebtThreshold, - debtLot: types.DefaultDebtLot, - breaker: types.DefaultCircuitBreaker, + surplusThreshold: types.DefaultSurplusThreshold, + surplusLot: types.DefaultSurplusLot, + debtThreshold: types.DefaultDebtThreshold, + debtLot: types.DefaultDebtLot, + breaker: types.DefaultCircuitBreaker, + beginBlockerExecutionBlockInterval: types.DefaultBeginBlockerExecutionBlockInterval, }, errArgs: errArgs{ expectPass: false, @@ -433,11 +443,12 @@ func (suite *ParamsTestSuite) TestParamValidation() { ConversionFactor: sdkmath.NewInt(6), DebtFloor: sdkmath.NewInt(10000000), }, - surplusThreshold: types.DefaultSurplusThreshold, - surplusLot: types.DefaultSurplusLot, - debtThreshold: types.DefaultDebtThreshold, - debtLot: types.DefaultDebtLot, - breaker: types.DefaultCircuitBreaker, + surplusThreshold: types.DefaultSurplusThreshold, + surplusLot: types.DefaultSurplusLot, + debtThreshold: types.DefaultDebtThreshold, + debtLot: types.DefaultDebtLot, + breaker: types.DefaultCircuitBreaker, + beginBlockerExecutionBlockInterval: types.DefaultBeginBlockerExecutionBlockInterval, }, errArgs: errArgs{ expectPass: false, @@ -484,11 +495,12 @@ func (suite *ParamsTestSuite) TestParamValidation() { ConversionFactor: sdkmath.NewInt(6), DebtFloor: sdkmath.NewInt(10000000), }, - surplusThreshold: types.DefaultSurplusThreshold, - surplusLot: types.DefaultSurplusLot, - debtThreshold: types.DefaultDebtThreshold, - debtLot: types.DefaultDebtLot, - breaker: types.DefaultCircuitBreaker, + surplusThreshold: types.DefaultSurplusThreshold, + surplusLot: types.DefaultSurplusLot, + debtThreshold: types.DefaultDebtThreshold, + debtLot: types.DefaultDebtLot, + breaker: types.DefaultCircuitBreaker, + beginBlockerExecutionBlockInterval: types.DefaultBeginBlockerExecutionBlockInterval, }, errArgs: errArgs{ expectPass: true, @@ -521,11 +533,12 @@ func (suite *ParamsTestSuite) TestParamValidation() { ConversionFactor: sdkmath.NewInt(6), DebtFloor: sdkmath.NewInt(10000000), }, - surplusThreshold: types.DefaultSurplusThreshold, - surplusLot: types.DefaultSurplusLot, - debtThreshold: types.DefaultDebtThreshold, - debtLot: types.DefaultDebtLot, - breaker: types.DefaultCircuitBreaker, + surplusThreshold: types.DefaultSurplusThreshold, + surplusLot: types.DefaultSurplusLot, + debtThreshold: types.DefaultDebtThreshold, + debtLot: types.DefaultDebtLot, + breaker: types.DefaultCircuitBreaker, + beginBlockerExecutionBlockInterval: types.DefaultBeginBlockerExecutionBlockInterval, }, errArgs: errArgs{ expectPass: false, @@ -558,11 +571,12 @@ func (suite *ParamsTestSuite) TestParamValidation() { ConversionFactor: sdkmath.NewInt(6), DebtFloor: sdkmath.NewInt(10000000), }, - surplusThreshold: types.DefaultSurplusThreshold, - surplusLot: types.DefaultSurplusLot, - debtThreshold: types.DefaultDebtThreshold, - debtLot: types.DefaultDebtLot, - breaker: types.DefaultCircuitBreaker, + surplusThreshold: types.DefaultSurplusThreshold, + surplusLot: types.DefaultSurplusLot, + debtThreshold: types.DefaultDebtThreshold, + debtLot: types.DefaultDebtLot, + breaker: types.DefaultCircuitBreaker, + beginBlockerExecutionBlockInterval: types.DefaultBeginBlockerExecutionBlockInterval, }, errArgs: errArgs{ expectPass: false, @@ -595,11 +609,12 @@ func (suite *ParamsTestSuite) TestParamValidation() { ConversionFactor: sdkmath.NewInt(6), DebtFloor: sdkmath.NewInt(10000000), }, - surplusThreshold: types.DefaultSurplusThreshold, - surplusLot: types.DefaultSurplusLot, - debtThreshold: types.DefaultDebtThreshold, - debtLot: types.DefaultDebtLot, - breaker: types.DefaultCircuitBreaker, + surplusThreshold: types.DefaultSurplusThreshold, + surplusLot: types.DefaultSurplusLot, + debtThreshold: types.DefaultDebtThreshold, + debtLot: types.DefaultDebtLot, + breaker: types.DefaultCircuitBreaker, + beginBlockerExecutionBlockInterval: types.DefaultBeginBlockerExecutionBlockInterval, }, errArgs: errArgs{ expectPass: false, @@ -632,11 +647,12 @@ func (suite *ParamsTestSuite) TestParamValidation() { ConversionFactor: sdkmath.NewInt(6), DebtFloor: sdkmath.NewInt(10000000), }, - surplusThreshold: types.DefaultSurplusThreshold, - surplusLot: types.DefaultSurplusLot, - debtThreshold: types.DefaultDebtThreshold, - debtLot: types.DefaultDebtLot, - breaker: types.DefaultCircuitBreaker, + surplusThreshold: types.DefaultSurplusThreshold, + surplusLot: types.DefaultSurplusLot, + debtThreshold: types.DefaultDebtThreshold, + debtLot: types.DefaultDebtLot, + breaker: types.DefaultCircuitBreaker, + beginBlockerExecutionBlockInterval: types.DefaultBeginBlockerExecutionBlockInterval, }, errArgs: errArgs{ expectPass: false, @@ -663,12 +679,13 @@ func (suite *ParamsTestSuite) TestParamValidation() { CheckCollateralizationIndexCount: sdkmath.NewInt(10), }, }, - debtParam: types.DefaultDebtParam, - surplusThreshold: types.DefaultSurplusThreshold, - surplusLot: types.DefaultSurplusLot, - debtThreshold: types.DefaultDebtThreshold, - debtLot: types.DefaultDebtLot, - breaker: types.DefaultCircuitBreaker, + debtParam: types.DefaultDebtParam, + surplusThreshold: types.DefaultSurplusThreshold, + surplusLot: types.DefaultSurplusLot, + debtThreshold: types.DefaultDebtThreshold, + debtLot: types.DefaultDebtLot, + breaker: types.DefaultCircuitBreaker, + beginBlockerExecutionBlockInterval: types.DefaultBeginBlockerExecutionBlockInterval, }, errArgs: errArgs{ expectPass: false, @@ -701,11 +718,12 @@ func (suite *ParamsTestSuite) TestParamValidation() { ConversionFactor: sdkmath.NewInt(6), DebtFloor: sdkmath.NewInt(10000000), }, - surplusThreshold: types.DefaultSurplusThreshold, - surplusLot: types.DefaultSurplusLot, - debtThreshold: types.DefaultDebtThreshold, - debtLot: types.DefaultDebtLot, - breaker: types.DefaultCircuitBreaker, + surplusThreshold: types.DefaultSurplusThreshold, + surplusLot: types.DefaultSurplusLot, + debtThreshold: types.DefaultDebtThreshold, + debtLot: types.DefaultDebtLot, + breaker: types.DefaultCircuitBreaker, + beginBlockerExecutionBlockInterval: types.DefaultBeginBlockerExecutionBlockInterval, }, errArgs: errArgs{ expectPass: false, @@ -715,14 +733,15 @@ func (suite *ParamsTestSuite) TestParamValidation() { { name: "nil debt limit", args: args{ - globalDebtLimit: sdk.Coin{}, - collateralParams: types.DefaultCollateralParams, - debtParam: types.DefaultDebtParam, - surplusThreshold: types.DefaultSurplusThreshold, - surplusLot: types.DefaultSurplusLot, - debtThreshold: types.DefaultDebtThreshold, - debtLot: types.DefaultDebtLot, - breaker: types.DefaultCircuitBreaker, + globalDebtLimit: sdk.Coin{}, + collateralParams: types.DefaultCollateralParams, + debtParam: types.DefaultDebtParam, + surplusThreshold: types.DefaultSurplusThreshold, + surplusLot: types.DefaultSurplusLot, + debtThreshold: types.DefaultDebtThreshold, + debtLot: types.DefaultDebtLot, + breaker: types.DefaultCircuitBreaker, + beginBlockerExecutionBlockInterval: types.DefaultBeginBlockerExecutionBlockInterval, }, errArgs: errArgs{ expectPass: false, @@ -732,14 +751,15 @@ func (suite *ParamsTestSuite) TestParamValidation() { { name: "zero surplus auction threshold", args: args{ - globalDebtLimit: types.DefaultGlobalDebt, - collateralParams: types.DefaultCollateralParams, - debtParam: types.DefaultDebtParam, - surplusThreshold: sdk.ZeroInt(), - surplusLot: types.DefaultSurplusLot, - debtThreshold: types.DefaultDebtThreshold, - debtLot: types.DefaultDebtLot, - breaker: types.DefaultCircuitBreaker, + globalDebtLimit: types.DefaultGlobalDebt, + collateralParams: types.DefaultCollateralParams, + debtParam: types.DefaultDebtParam, + surplusThreshold: sdk.ZeroInt(), + surplusLot: types.DefaultSurplusLot, + debtThreshold: types.DefaultDebtThreshold, + debtLot: types.DefaultDebtLot, + breaker: types.DefaultCircuitBreaker, + beginBlockerExecutionBlockInterval: types.DefaultBeginBlockerExecutionBlockInterval, }, errArgs: errArgs{ expectPass: false, @@ -749,14 +769,15 @@ func (suite *ParamsTestSuite) TestParamValidation() { { name: "zero debt auction threshold", args: args{ - globalDebtLimit: types.DefaultGlobalDebt, - collateralParams: types.DefaultCollateralParams, - debtParam: types.DefaultDebtParam, - surplusThreshold: types.DefaultSurplusThreshold, - surplusLot: types.DefaultSurplusLot, - debtThreshold: sdk.ZeroInt(), - debtLot: types.DefaultDebtLot, - breaker: types.DefaultCircuitBreaker, + globalDebtLimit: types.DefaultGlobalDebt, + collateralParams: types.DefaultCollateralParams, + debtParam: types.DefaultDebtParam, + surplusThreshold: types.DefaultSurplusThreshold, + surplusLot: types.DefaultSurplusLot, + debtThreshold: sdk.ZeroInt(), + debtLot: types.DefaultDebtLot, + breaker: types.DefaultCircuitBreaker, + beginBlockerExecutionBlockInterval: types.DefaultBeginBlockerExecutionBlockInterval, }, errArgs: errArgs{ expectPass: false, @@ -766,14 +787,15 @@ func (suite *ParamsTestSuite) TestParamValidation() { { name: "zero surplus auction lot", args: args{ - globalDebtLimit: types.DefaultGlobalDebt, - collateralParams: types.DefaultCollateralParams, - debtParam: types.DefaultDebtParam, - surplusThreshold: types.DefaultSurplusThreshold, - surplusLot: sdk.ZeroInt(), - debtThreshold: types.DefaultDebtThreshold, - debtLot: types.DefaultDebtLot, - breaker: types.DefaultCircuitBreaker, + globalDebtLimit: types.DefaultGlobalDebt, + collateralParams: types.DefaultCollateralParams, + debtParam: types.DefaultDebtParam, + surplusThreshold: types.DefaultSurplusThreshold, + surplusLot: sdk.ZeroInt(), + debtThreshold: types.DefaultDebtThreshold, + debtLot: types.DefaultDebtLot, + breaker: types.DefaultCircuitBreaker, + beginBlockerExecutionBlockInterval: types.DefaultBeginBlockerExecutionBlockInterval, }, errArgs: errArgs{ expectPass: false, @@ -783,14 +805,15 @@ func (suite *ParamsTestSuite) TestParamValidation() { { name: "zero debt auction lot", args: args{ - globalDebtLimit: types.DefaultGlobalDebt, - collateralParams: types.DefaultCollateralParams, - debtParam: types.DefaultDebtParam, - surplusThreshold: types.DefaultSurplusThreshold, - surplusLot: types.DefaultSurplusLot, - debtThreshold: types.DefaultDebtThreshold, - debtLot: sdk.ZeroInt(), - breaker: types.DefaultCircuitBreaker, + globalDebtLimit: types.DefaultGlobalDebt, + collateralParams: types.DefaultCollateralParams, + debtParam: types.DefaultDebtParam, + surplusThreshold: types.DefaultSurplusThreshold, + surplusLot: types.DefaultSurplusLot, + 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) diff --git a/x/community/testutil/cdp_genesis.go b/x/community/testutil/cdp_genesis.go index 160d61c2..b92ebe76 100644 --- a/x/community/testutil/cdp_genesis.go +++ b/x/community/testutil/cdp_genesis.go @@ -13,11 +13,12 @@ import ( func NewCDPGenState(cdc codec.JSONCodec, denom, asset string, liquidationRatio sdk.Dec) app.GenesisState { cdpGenesis := cdptypes.GenesisState{ Params: cdptypes.Params{ - GlobalDebtLimit: sdk.NewInt64Coin("usdx", 1000000000000), - SurplusAuctionThreshold: cdptypes.DefaultSurplusThreshold, - SurplusAuctionLot: cdptypes.DefaultSurplusLot, - DebtAuctionThreshold: cdptypes.DefaultDebtThreshold, - DebtAuctionLot: cdptypes.DefaultDebtLot, + GlobalDebtLimit: sdk.NewInt64Coin("usdx", 1000000000000), + SurplusAuctionThreshold: cdptypes.DefaultSurplusThreshold, + SurplusAuctionLot: cdptypes.DefaultSurplusLot, + DebtAuctionThreshold: cdptypes.DefaultDebtThreshold, + DebtAuctionLot: cdptypes.DefaultDebtLot, + BeginBlockerExecutionBlockInterval: cdptypes.DefaultBeginBlockerExecutionBlockInterval, CollateralParams: cdptypes.CollateralParams{ { Denom: denom, diff --git a/x/incentive/integration_test.go b/x/incentive/integration_test.go index c7a855b2..8565f911 100644 --- a/x/incentive/integration_test.go +++ b/x/incentive/integration_test.go @@ -23,11 +23,12 @@ func c(denom string, amount int64) sdk.Coin { return sdk.NewInt64Coin(denom, amo func NewCDPGenStateMulti(cdc codec.JSONCodec) app.GenesisState { cdpGenesis := cdptypes.GenesisState{ Params: cdptypes.Params{ - GlobalDebtLimit: sdk.NewInt64Coin("usdx", 2000000000000), - SurplusAuctionThreshold: cdptypes.DefaultSurplusThreshold, - SurplusAuctionLot: cdptypes.DefaultSurplusLot, - DebtAuctionThreshold: cdptypes.DefaultDebtThreshold, - DebtAuctionLot: cdptypes.DefaultDebtLot, + GlobalDebtLimit: sdk.NewInt64Coin("usdx", 2000000000000), + SurplusAuctionThreshold: cdptypes.DefaultSurplusThreshold, + SurplusAuctionLot: cdptypes.DefaultSurplusLot, + DebtAuctionThreshold: cdptypes.DefaultDebtThreshold, + DebtAuctionLot: cdptypes.DefaultDebtLot, + BeginBlockerExecutionBlockInterval: cdptypes.DefaultBeginBlockerExecutionBlockInterval, CollateralParams: cdptypes.CollateralParams{ { Denom: "xrp", diff --git a/x/incentive/keeper/integration_test.go b/x/incentive/keeper/integration_test.go index b45d7cc9..441389b6 100644 --- a/x/incentive/keeper/integration_test.go +++ b/x/incentive/keeper/integration_test.go @@ -29,11 +29,12 @@ func dcs(coins ...sdk.DecCoin) sdk.DecCoins { return sdk.NewDecCoins(coins...) } func NewCDPGenStateMulti(cdc codec.JSONCodec) app.GenesisState { cdpGenesis := cdptypes.GenesisState{ Params: cdptypes.Params{ - GlobalDebtLimit: sdk.NewInt64Coin("usdx", 2000000000000), - SurplusAuctionThreshold: cdptypes.DefaultSurplusThreshold, - SurplusAuctionLot: cdptypes.DefaultSurplusLot, - DebtAuctionThreshold: cdptypes.DefaultDebtThreshold, - DebtAuctionLot: cdptypes.DefaultDebtLot, + GlobalDebtLimit: sdk.NewInt64Coin("usdx", 2000000000000), + SurplusAuctionThreshold: cdptypes.DefaultSurplusThreshold, + SurplusAuctionLot: cdptypes.DefaultSurplusLot, + DebtAuctionThreshold: cdptypes.DefaultDebtThreshold, + DebtAuctionLot: cdptypes.DefaultDebtLot, + BeginBlockerExecutionBlockInterval: cdptypes.DefaultBeginBlockerExecutionBlockInterval, CollateralParams: cdptypes.CollateralParams{ { Denom: "xrp",