Skip to content

Commit

Permalink
Merge branch 'master' into dependabot/go_modules/all-dependencies-ebf…
Browse files Browse the repository at this point in the history
…3b06c6c
  • Loading branch information
chris124567 authored Feb 11, 2025
2 parents e41671e + eb514ab commit 7916bd7
Show file tree
Hide file tree
Showing 3 changed files with 35 additions and 32 deletions.
24 changes: 12 additions & 12 deletions explorer/types.go
Original file line number Diff line number Diff line change
Expand Up @@ -507,16 +507,16 @@ func (h *HostSortColumn) UnmarshalText(data []byte) error {

// HostQuery defines the filter and sort parameters for querying hosts.
type HostQuery struct {
V2 *bool
PublicKeys []types.PublicKey
MinUptime float64
MinDuration uint64
MaxStoragePrice types.Currency
MaxContractPrice types.Currency
MaxUploadPrice types.Currency
MaxDownloadPrice types.Currency
MaxBaseRPCPrice types.Currency
MaxSectorAccessPrice types.Currency
AcceptContracts *bool
Online *bool
V2 *bool `json:"v2,omitempty"`
PublicKeys []types.PublicKey `json:"publicKeys,omitempty"`
MinUptime *float64 `json:"minUptime,omitempty"`
MinDuration *uint64 `json:"minDuration,omitempty"`
MaxStoragePrice *types.Currency `json:"maxStoragePrice,omitempty"`
MaxContractPrice *types.Currency `json:"maxContractPrice,omitempty"`
MaxUploadPrice *types.Currency `json:"maxUploadPrice,omitempty"`
MaxDownloadPrice *types.Currency `json:"maxDownloadPrice,omitempty"`
MaxBaseRPCPrice *types.Currency `json:"maxBaseRPCPrice,omitempty"`
MaxSectorAccessPrice *types.Currency `json:"maxSectorAccessPrice,omitempty"`
AcceptContracts *bool `json:"acceptContracts,omitempty"`
Online *bool `json:"online,omitempty"`
}
32 changes: 16 additions & 16 deletions persist/sqlite/hosts.go
Original file line number Diff line number Diff line change
Expand Up @@ -85,37 +85,37 @@ func (st *Store) QueryHosts(params explorer.HostQuery, sortBy explorer.HostSortC
}

const uptimeValue = `(successful_interactions * 1.0 / MAX(1, total_scans))`
if params.MinUptime > 0 {
if params.MinUptime != nil {
filters = append(filters, uptimeValue+" >= ?")
args = append(args, params.MinUptime/100.0)
args = append(args, *params.MinUptime/100.0)
}
if params.MinDuration > 0 {
if params.MinDuration != nil {
filters = append(filters, "CASE WHEN v2=1 THEN rhp4_settings_max_contract_duration >= ? ELSE settings_max_duration >= ? END")
args = append(args, encode(params.MinDuration), encode(params.MinDuration))
args = append(args, encode(*params.MinDuration), encode(*params.MinDuration))
}
if !params.MaxStoragePrice.IsZero() {
if params.MaxStoragePrice != nil {
filters = append(filters, "CASE WHEN v2=1 THEN rhp4_prices_storage_price <= ? ELSE settings_storage_price <= ? END")
args = append(args, encode(params.MaxStoragePrice), encode(params.MaxStoragePrice))
args = append(args, encode(*params.MaxStoragePrice), encode(*params.MaxStoragePrice))
}
if !params.MaxContractPrice.IsZero() {
if params.MaxContractPrice != nil {
filters = append(filters, "CASE WHEN v2=1 THEN rhp4_prices_contract_price <= ? ELSE settings_contract_price <= ? END")
args = append(args, encode(params.MaxContractPrice), encode(params.MaxContractPrice))
args = append(args, encode(*params.MaxContractPrice), encode(*params.MaxContractPrice))
}
if !params.MaxUploadPrice.IsZero() {
if params.MaxUploadPrice != nil {
filters = append(filters, "CASE WHEN v2=1 THEN rhp4_prices_ingress_price <= ? ELSE settings_upload_bandwidth_price <= ? END")
args = append(args, encode(params.MaxUploadPrice), encode(params.MaxUploadPrice))
args = append(args, encode(*params.MaxUploadPrice), encode(*params.MaxUploadPrice))
}
if !params.MaxDownloadPrice.IsZero() {
if params.MaxDownloadPrice != nil {
filters = append(filters, "CASE WHEN v2=1 THEN rhp4_prices_egress_price <= ? ELSE settings_download_bandwidth_price <= ? END")
args = append(args, encode(params.MaxDownloadPrice), encode(params.MaxDownloadPrice))
args = append(args, encode(*params.MaxDownloadPrice), encode(*params.MaxDownloadPrice))
}
if !params.MaxBaseRPCPrice.IsZero() {
if params.MaxBaseRPCPrice != nil {
filters = append(filters, "settings_base_rpc_price <= ?")
args = append(args, encode(params.MaxBaseRPCPrice))
args = append(args, encode(*params.MaxBaseRPCPrice))
}
if !params.MaxSectorAccessPrice.IsZero() {
if params.MaxSectorAccessPrice != nil {
filters = append(filters, "settings_sector_access_price <= ?")
args = append(args, encode(params.MaxSectorAccessPrice))
args = append(args, encode(*params.MaxSectorAccessPrice))
}
if params.AcceptContracts != nil {
v := 0
Expand Down
11 changes: 7 additions & 4 deletions persist/sqlite/hosts_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,9 @@ func TestQueryHosts(t *testing.T) {
t.Fatal(err)
}

uint64Ptr := func(x uint64) *uint64 {
return &x
}
trueBool, falseBool := true, false
tests := []struct {
name string
Expand Down Expand Up @@ -424,7 +427,7 @@ func TestQueryHosts(t *testing.T) {
name: "v1 min duration 1000",
query: explorer.HostQuery{
V2: &falseBool,
MinDuration: 1000,
MinDuration: uint64Ptr(1000),
},
sortBy: explorer.HostSortAcceptingContracts,
dir: explorer.HostSortDesc,
Expand All @@ -434,7 +437,7 @@ func TestQueryHosts(t *testing.T) {
name: "v1 min duration 5000",
query: explorer.HostQuery{
V2: &falseBool,
MinDuration: 5000,
MinDuration: uint64Ptr(5000),
},
sortBy: explorer.HostSortAcceptingContracts,
dir: explorer.HostSortDesc,
Expand All @@ -444,7 +447,7 @@ func TestQueryHosts(t *testing.T) {
name: "v2 min duration 1000",
query: explorer.HostQuery{
V2: &trueBool,
MinDuration: 1000,
MinDuration: uint64Ptr(1000),
},
sortBy: explorer.HostSortAcceptingContracts,
dir: explorer.HostSortDesc,
Expand All @@ -454,7 +457,7 @@ func TestQueryHosts(t *testing.T) {
name: "v2 min duration 5000",
query: explorer.HostQuery{
V2: &trueBool,
MinDuration: 5000,
MinDuration: uint64Ptr(5000),
},
sortBy: explorer.HostSortAcceptingContracts,
dir: explorer.HostSortDesc,
Expand Down

0 comments on commit 7916bd7

Please sign in to comment.