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

This commit is contained in:
Nick DeLuca 2024-01-25 09:35:56 -07:00 committed by GitHub
parent 7b5de0a12a
commit 2bccb6deaf
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
23 changed files with 306 additions and 466 deletions

View File

@ -39,7 +39,6 @@ Ref: https://keepachangelog.com/en/1.0.0/
### Features ### Features
- (cli) [#1785] Add `shard` CLI command to support creating partitions of data for standalone nodes - (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. - (cli) [#1804] Add `rocksdb compact` command for manual DB compaction of state or blockstore.
## [v0.25.0] ## [v0.25.0]
@ -70,7 +69,6 @@ Ref: https://keepachangelog.com/en/1.0.0/
## [v0.24.3] ## [v0.24.3]
### Bug Fixes ### Bug Fixes
- (deps) [#1770] Bump ledger-cosmos-go to v0.13.1 to resolve signing error with - (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 - (rocksdb) [#1767] Fix resolution of rocksdb database path introduced in v0.24.2
@ -326,6 +324,7 @@ the [changelog](https://github.com/cosmos/cosmos-sdk/blob/v0.38.4/CHANGELOG.md).
[#1804]: https://github.com/Kava-Labs/kava/pull/1804 [#1804]: https://github.com/Kava-Labs/kava/pull/1804
[#1785]: https://github.com/Kava-Labs/kava/pull/1785 [#1785]: https://github.com/Kava-Labs/kava/pull/1785
[#1784]: https://github.com/Kava-Labs/kava/pull/1784 [#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 [#1770]: https://github.com/Kava-Labs/kava/pull/1770
[#1755]: https://github.com/Kava-Labs/kava/pull/1755 [#1755]: https://github.com/Kava-Labs/kava/pull/1755
[#1761]: https://github.com/Kava-Labs/kava/pull/1761 [#1761]: https://github.com/Kava-Labs/kava/pull/1761
@ -385,6 +384,7 @@ 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.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.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.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.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.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 [v0.16.0]: https://github.com/Kava-Labs/kava/compare/v0.15.2...v0.16.0

View File

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

View File

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

View File

@ -3505,9 +3505,6 @@ paths:
type: string type: string
circuit_breaker: circuit_breaker:
type: boolean type: boolean
begin_blocker_execution_block_interval:
type: string
format: int64
description: Params defines the parameters for the cdp module. description: Params defines the parameters for the cdp module.
description: >- description: >-
QueryParamsResponse defines the response type for the Query/Params QueryParamsResponse defines the response type for the Query/Params
@ -51631,9 +51628,6 @@ definitions:
type: string type: string
circuit_breaker: circuit_breaker:
type: boolean type: boolean
begin_blocker_execution_block_interval:
type: string
format: int64
description: Params defines the parameters for the cdp module. description: Params defines the parameters for the cdp module.
kava.cdp.v1beta1.QueryAccountsResponse: kava.cdp.v1beta1.QueryAccountsResponse:
type: object type: object
@ -52167,9 +52161,6 @@ definitions:
type: string type: string
circuit_breaker: circuit_breaker:
type: boolean type: boolean
begin_blocker_execution_block_interval:
type: string
format: int64
description: Params defines the parameters for the cdp module. description: Params defines the parameters for the cdp module.
description: >- description: >-
QueryParamsResponse defines the response type for the Query/Params RPC 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 ## 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 (after updating `config.toml` and `app.toml` as detailed above) 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
```bash ```bash
docker compose -f prometheus.docker-compose.yml up docker compose -f prometheus.docker-compose.yml
``` ```
Navigate to localhost:3000 to view the grafana unix 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 ### Collecting from local host
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` Update [prometheus config](../prometheus.yml) to collect metrics from your local source
```yaml ```yaml
metrics_path: / metrics_path: /
static_configs: static_configs:
- targets: - targets:
- docker-host:8888 - localhost:8888
``` ```
### Collecting from remote host ### Collecting from remote host

View File

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

View File

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

View File

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

View File

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

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

View File

@ -20,16 +20,6 @@ func BeginBlocker(ctx sdk.Context, req abci.RequestBeginBlock, k keeper.Keeper)
params := k.GetParams(ctx) 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 { for _, cp := range params.CollateralParams {
ok := k.UpdatePricefeedStatus(ctx, cp.SpotMarketID) ok := k.UpdatePricefeedStatus(ctx, cp.SpotMarketID)
if !ok { if !ok {

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -21,7 +21,6 @@ var (
KeyDebtLot = []byte("DebtLot") KeyDebtLot = []byte("DebtLot")
KeySurplusThreshold = []byte("SurplusThreshold") KeySurplusThreshold = []byte("SurplusThreshold")
KeySurplusLot = []byte("SurplusLot") KeySurplusLot = []byte("SurplusLot")
KeyBeginBlockerExecutionBlockInterval = []byte("BeginBlockerExecutionBlockInterval")
DefaultGlobalDebt = sdk.NewCoin(DefaultStableDenom, sdk.ZeroInt()) DefaultGlobalDebt = sdk.NewCoin(DefaultStableDenom, sdk.ZeroInt())
DefaultCircuitBreaker = false DefaultCircuitBreaker = false
DefaultCollateralParams = CollateralParams{} DefaultCollateralParams = CollateralParams{}
@ -40,14 +39,12 @@ var (
DefaultSurplusLot = sdkmath.NewInt(10000000000) DefaultSurplusLot = sdkmath.NewInt(10000000000)
DefaultDebtLot = sdkmath.NewInt(10000000000) DefaultDebtLot = sdkmath.NewInt(10000000000)
stabilityFeeMax = sdk.MustNewDecFromStr("1.000000051034942716") // 500% APR stabilityFeeMax = sdk.MustNewDecFromStr("1.000000051034942716") // 500% APR
// Run every block
DefaultBeginBlockerExecutionBlockInterval = int64(1)
) )
// NewParams returns a new params object // NewParams returns a new params object
func NewParams( func NewParams(
debtLimit sdk.Coin, collateralParams CollateralParams, debtParam DebtParam, surplusThreshold, debtLimit sdk.Coin, collateralParams CollateralParams, debtParam DebtParam, surplusThreshold,
surplusLot, debtThreshold, debtLot sdkmath.Int, breaker bool, beginBlockerExecutionBlockInterval int64, surplusLot, debtThreshold, debtLot sdkmath.Int, breaker bool,
) Params { ) Params {
return Params{ return Params{
GlobalDebtLimit: debtLimit, GlobalDebtLimit: debtLimit,
@ -58,7 +55,6 @@ func NewParams(
DebtAuctionThreshold: debtThreshold, DebtAuctionThreshold: debtThreshold,
DebtAuctionLot: debtLot, DebtAuctionLot: debtLot,
CircuitBreaker: breaker, CircuitBreaker: breaker,
BeginBlockerExecutionBlockInterval: beginBlockerExecutionBlockInterval,
} }
} }
@ -67,7 +63,7 @@ func DefaultParams() Params {
return NewParams( return NewParams(
DefaultGlobalDebt, DefaultCollateralParams, DefaultDebtParam, DefaultSurplusThreshold, DefaultGlobalDebt, DefaultCollateralParams, DefaultDebtParam, DefaultSurplusThreshold,
DefaultSurplusLot, DefaultDebtThreshold, DefaultDebtLot, DefaultSurplusLot, DefaultDebtThreshold, DefaultDebtLot,
DefaultCircuitBreaker, DefaultBeginBlockerExecutionBlockInterval, DefaultCircuitBreaker,
) )
} }
@ -126,7 +122,6 @@ func (p *Params) ParamSetPairs() paramtypes.ParamSetPairs {
paramtypes.NewParamSetPair(KeySurplusLot, &p.SurplusAuctionLot, validateSurplusAuctionLotParam), paramtypes.NewParamSetPair(KeySurplusLot, &p.SurplusAuctionLot, validateSurplusAuctionLotParam),
paramtypes.NewParamSetPair(KeyDebtThreshold, &p.DebtAuctionThreshold, validateDebtAuctionThresholdParam), paramtypes.NewParamSetPair(KeyDebtThreshold, &p.DebtAuctionThreshold, validateDebtAuctionThresholdParam),
paramtypes.NewParamSetPair(KeyDebtLot, &p.DebtAuctionLot, validateDebtAuctionLotParam), paramtypes.NewParamSetPair(KeyDebtLot, &p.DebtAuctionLot, validateDebtAuctionLotParam),
paramtypes.NewParamSetPair(KeyBeginBlockerExecutionBlockInterval, &p.BeginBlockerExecutionBlockInterval, validateBeginBlockerExecutionBlockIntervalParam),
} }
} }
@ -205,10 +200,6 @@ func (p Params) Validate() error {
collateralParamsDebtLimit, p.GlobalDebtLimit) collateralParamsDebtLimit, p.GlobalDebtLimit)
} }
if err := validateBeginBlockerExecutionBlockIntervalParam(p.BeginBlockerExecutionBlockInterval); err != nil {
return err
}
return nil return nil
} }
@ -355,16 +346,3 @@ func validateDebtAuctionLotParam(i interface{}) error {
return nil 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,7 +28,6 @@ func (suite *ParamsTestSuite) TestParamValidation() {
debtThreshold sdkmath.Int debtThreshold sdkmath.Int
debtLot sdkmath.Int debtLot sdkmath.Int
breaker bool breaker bool
beginBlockerExecutionBlockInterval int64
} }
type errArgs struct { type errArgs struct {
expectPass bool expectPass bool
@ -51,7 +50,6 @@ func (suite *ParamsTestSuite) TestParamValidation() {
debtThreshold: types.DefaultDebtThreshold, debtThreshold: types.DefaultDebtThreshold,
debtLot: types.DefaultDebtLot, debtLot: types.DefaultDebtLot,
breaker: types.DefaultCircuitBreaker, breaker: types.DefaultCircuitBreaker,
beginBlockerExecutionBlockInterval: types.DefaultBeginBlockerExecutionBlockInterval,
}, },
errArgs: errArgs{ errArgs: errArgs{
expectPass: true, expectPass: true,
@ -89,7 +87,6 @@ func (suite *ParamsTestSuite) TestParamValidation() {
debtThreshold: types.DefaultDebtThreshold, debtThreshold: types.DefaultDebtThreshold,
debtLot: types.DefaultDebtLot, debtLot: types.DefaultDebtLot,
breaker: types.DefaultCircuitBreaker, breaker: types.DefaultCircuitBreaker,
beginBlockerExecutionBlockInterval: types.DefaultBeginBlockerExecutionBlockInterval,
}, },
errArgs: errArgs{ errArgs: errArgs{
expectPass: true, expectPass: true,
@ -127,7 +124,6 @@ func (suite *ParamsTestSuite) TestParamValidation() {
debtThreshold: types.DefaultDebtThreshold, debtThreshold: types.DefaultDebtThreshold,
debtLot: types.DefaultDebtLot, debtLot: types.DefaultDebtLot,
breaker: types.DefaultCircuitBreaker, breaker: types.DefaultCircuitBreaker,
beginBlockerExecutionBlockInterval: types.DefaultBeginBlockerExecutionBlockInterval,
}, },
errArgs: errArgs{ errArgs: errArgs{
expectPass: false, expectPass: false,
@ -165,7 +161,6 @@ func (suite *ParamsTestSuite) TestParamValidation() {
debtThreshold: types.DefaultDebtThreshold, debtThreshold: types.DefaultDebtThreshold,
debtLot: types.DefaultDebtLot, debtLot: types.DefaultDebtLot,
breaker: types.DefaultCircuitBreaker, breaker: types.DefaultCircuitBreaker,
beginBlockerExecutionBlockInterval: types.DefaultBeginBlockerExecutionBlockInterval,
}, },
errArgs: errArgs{ errArgs: errArgs{
expectPass: false, expectPass: false,
@ -217,7 +212,6 @@ func (suite *ParamsTestSuite) TestParamValidation() {
debtThreshold: types.DefaultDebtThreshold, debtThreshold: types.DefaultDebtThreshold,
debtLot: types.DefaultDebtLot, debtLot: types.DefaultDebtLot,
breaker: types.DefaultCircuitBreaker, breaker: types.DefaultCircuitBreaker,
beginBlockerExecutionBlockInterval: types.DefaultBeginBlockerExecutionBlockInterval,
}, },
errArgs: errArgs{ errArgs: errArgs{
expectPass: true, expectPass: true,
@ -269,7 +263,6 @@ func (suite *ParamsTestSuite) TestParamValidation() {
debtThreshold: types.DefaultDebtThreshold, debtThreshold: types.DefaultDebtThreshold,
debtLot: types.DefaultDebtLot, debtLot: types.DefaultDebtLot,
breaker: types.DefaultCircuitBreaker, breaker: types.DefaultCircuitBreaker,
beginBlockerExecutionBlockInterval: types.DefaultBeginBlockerExecutionBlockInterval,
}, },
errArgs: errArgs{ errArgs: errArgs{
expectPass: false, expectPass: false,
@ -321,7 +314,6 @@ func (suite *ParamsTestSuite) TestParamValidation() {
debtThreshold: types.DefaultDebtThreshold, debtThreshold: types.DefaultDebtThreshold,
debtLot: types.DefaultDebtLot, debtLot: types.DefaultDebtLot,
breaker: types.DefaultCircuitBreaker, breaker: types.DefaultCircuitBreaker,
beginBlockerExecutionBlockInterval: types.DefaultBeginBlockerExecutionBlockInterval,
}, },
errArgs: errArgs{ errArgs: errArgs{
expectPass: false, expectPass: false,
@ -358,7 +350,6 @@ func (suite *ParamsTestSuite) TestParamValidation() {
debtThreshold: types.DefaultDebtThreshold, debtThreshold: types.DefaultDebtThreshold,
debtLot: types.DefaultDebtLot, debtLot: types.DefaultDebtLot,
breaker: types.DefaultCircuitBreaker, breaker: types.DefaultCircuitBreaker,
beginBlockerExecutionBlockInterval: types.DefaultBeginBlockerExecutionBlockInterval,
}, },
errArgs: errArgs{ errArgs: errArgs{
expectPass: false, expectPass: false,
@ -396,7 +387,6 @@ func (suite *ParamsTestSuite) TestParamValidation() {
debtThreshold: types.DefaultDebtThreshold, debtThreshold: types.DefaultDebtThreshold,
debtLot: types.DefaultDebtLot, debtLot: types.DefaultDebtLot,
breaker: types.DefaultCircuitBreaker, breaker: types.DefaultCircuitBreaker,
beginBlockerExecutionBlockInterval: types.DefaultBeginBlockerExecutionBlockInterval,
}, },
errArgs: errArgs{ errArgs: errArgs{
expectPass: false, expectPass: false,
@ -448,7 +438,6 @@ func (suite *ParamsTestSuite) TestParamValidation() {
debtThreshold: types.DefaultDebtThreshold, debtThreshold: types.DefaultDebtThreshold,
debtLot: types.DefaultDebtLot, debtLot: types.DefaultDebtLot,
breaker: types.DefaultCircuitBreaker, breaker: types.DefaultCircuitBreaker,
beginBlockerExecutionBlockInterval: types.DefaultBeginBlockerExecutionBlockInterval,
}, },
errArgs: errArgs{ errArgs: errArgs{
expectPass: false, expectPass: false,
@ -500,7 +489,6 @@ func (suite *ParamsTestSuite) TestParamValidation() {
debtThreshold: types.DefaultDebtThreshold, debtThreshold: types.DefaultDebtThreshold,
debtLot: types.DefaultDebtLot, debtLot: types.DefaultDebtLot,
breaker: types.DefaultCircuitBreaker, breaker: types.DefaultCircuitBreaker,
beginBlockerExecutionBlockInterval: types.DefaultBeginBlockerExecutionBlockInterval,
}, },
errArgs: errArgs{ errArgs: errArgs{
expectPass: true, expectPass: true,
@ -538,7 +526,6 @@ func (suite *ParamsTestSuite) TestParamValidation() {
debtThreshold: types.DefaultDebtThreshold, debtThreshold: types.DefaultDebtThreshold,
debtLot: types.DefaultDebtLot, debtLot: types.DefaultDebtLot,
breaker: types.DefaultCircuitBreaker, breaker: types.DefaultCircuitBreaker,
beginBlockerExecutionBlockInterval: types.DefaultBeginBlockerExecutionBlockInterval,
}, },
errArgs: errArgs{ errArgs: errArgs{
expectPass: false, expectPass: false,
@ -576,7 +563,6 @@ func (suite *ParamsTestSuite) TestParamValidation() {
debtThreshold: types.DefaultDebtThreshold, debtThreshold: types.DefaultDebtThreshold,
debtLot: types.DefaultDebtLot, debtLot: types.DefaultDebtLot,
breaker: types.DefaultCircuitBreaker, breaker: types.DefaultCircuitBreaker,
beginBlockerExecutionBlockInterval: types.DefaultBeginBlockerExecutionBlockInterval,
}, },
errArgs: errArgs{ errArgs: errArgs{
expectPass: false, expectPass: false,
@ -614,7 +600,6 @@ func (suite *ParamsTestSuite) TestParamValidation() {
debtThreshold: types.DefaultDebtThreshold, debtThreshold: types.DefaultDebtThreshold,
debtLot: types.DefaultDebtLot, debtLot: types.DefaultDebtLot,
breaker: types.DefaultCircuitBreaker, breaker: types.DefaultCircuitBreaker,
beginBlockerExecutionBlockInterval: types.DefaultBeginBlockerExecutionBlockInterval,
}, },
errArgs: errArgs{ errArgs: errArgs{
expectPass: false, expectPass: false,
@ -652,7 +637,6 @@ func (suite *ParamsTestSuite) TestParamValidation() {
debtThreshold: types.DefaultDebtThreshold, debtThreshold: types.DefaultDebtThreshold,
debtLot: types.DefaultDebtLot, debtLot: types.DefaultDebtLot,
breaker: types.DefaultCircuitBreaker, breaker: types.DefaultCircuitBreaker,
beginBlockerExecutionBlockInterval: types.DefaultBeginBlockerExecutionBlockInterval,
}, },
errArgs: errArgs{ errArgs: errArgs{
expectPass: false, expectPass: false,
@ -685,7 +669,6 @@ func (suite *ParamsTestSuite) TestParamValidation() {
debtThreshold: types.DefaultDebtThreshold, debtThreshold: types.DefaultDebtThreshold,
debtLot: types.DefaultDebtLot, debtLot: types.DefaultDebtLot,
breaker: types.DefaultCircuitBreaker, breaker: types.DefaultCircuitBreaker,
beginBlockerExecutionBlockInterval: types.DefaultBeginBlockerExecutionBlockInterval,
}, },
errArgs: errArgs{ errArgs: errArgs{
expectPass: false, expectPass: false,
@ -723,7 +706,6 @@ func (suite *ParamsTestSuite) TestParamValidation() {
debtThreshold: types.DefaultDebtThreshold, debtThreshold: types.DefaultDebtThreshold,
debtLot: types.DefaultDebtLot, debtLot: types.DefaultDebtLot,
breaker: types.DefaultCircuitBreaker, breaker: types.DefaultCircuitBreaker,
beginBlockerExecutionBlockInterval: types.DefaultBeginBlockerExecutionBlockInterval,
}, },
errArgs: errArgs{ errArgs: errArgs{
expectPass: false, expectPass: false,
@ -741,7 +723,6 @@ func (suite *ParamsTestSuite) TestParamValidation() {
debtThreshold: types.DefaultDebtThreshold, debtThreshold: types.DefaultDebtThreshold,
debtLot: types.DefaultDebtLot, debtLot: types.DefaultDebtLot,
breaker: types.DefaultCircuitBreaker, breaker: types.DefaultCircuitBreaker,
beginBlockerExecutionBlockInterval: types.DefaultBeginBlockerExecutionBlockInterval,
}, },
errArgs: errArgs{ errArgs: errArgs{
expectPass: false, expectPass: false,
@ -759,7 +740,6 @@ func (suite *ParamsTestSuite) TestParamValidation() {
debtThreshold: types.DefaultDebtThreshold, debtThreshold: types.DefaultDebtThreshold,
debtLot: types.DefaultDebtLot, debtLot: types.DefaultDebtLot,
breaker: types.DefaultCircuitBreaker, breaker: types.DefaultCircuitBreaker,
beginBlockerExecutionBlockInterval: types.DefaultBeginBlockerExecutionBlockInterval,
}, },
errArgs: errArgs{ errArgs: errArgs{
expectPass: false, expectPass: false,
@ -777,7 +757,6 @@ func (suite *ParamsTestSuite) TestParamValidation() {
debtThreshold: sdk.ZeroInt(), debtThreshold: sdk.ZeroInt(),
debtLot: types.DefaultDebtLot, debtLot: types.DefaultDebtLot,
breaker: types.DefaultCircuitBreaker, breaker: types.DefaultCircuitBreaker,
beginBlockerExecutionBlockInterval: types.DefaultBeginBlockerExecutionBlockInterval,
}, },
errArgs: errArgs{ errArgs: errArgs{
expectPass: false, expectPass: false,
@ -795,7 +774,6 @@ func (suite *ParamsTestSuite) TestParamValidation() {
debtThreshold: types.DefaultDebtThreshold, debtThreshold: types.DefaultDebtThreshold,
debtLot: types.DefaultDebtLot, debtLot: types.DefaultDebtLot,
breaker: types.DefaultCircuitBreaker, breaker: types.DefaultCircuitBreaker,
beginBlockerExecutionBlockInterval: types.DefaultBeginBlockerExecutionBlockInterval,
}, },
errArgs: errArgs{ errArgs: errArgs{
expectPass: false, expectPass: false,
@ -813,7 +791,6 @@ func (suite *ParamsTestSuite) TestParamValidation() {
debtThreshold: types.DefaultDebtThreshold, debtThreshold: types.DefaultDebtThreshold,
debtLot: sdk.ZeroInt(), debtLot: sdk.ZeroInt(),
breaker: types.DefaultCircuitBreaker, breaker: types.DefaultCircuitBreaker,
beginBlockerExecutionBlockInterval: types.DefaultBeginBlockerExecutionBlockInterval,
}, },
errArgs: errArgs{ errArgs: errArgs{
expectPass: false, expectPass: false,
@ -823,7 +800,7 @@ func (suite *ParamsTestSuite) TestParamValidation() {
} }
for _, tc := range testCases { for _, tc := range testCases {
suite.Run(tc.name, func() { 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, tc.args.beginBlockerExecutionBlockInterval) 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)
err := params.Validate() err := params.Validate()
if tc.errArgs.expectPass { if tc.errArgs.expectPass {
suite.Require().NoError(err) suite.Require().NoError(err)

View File

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

View File

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

View File

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