diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 21ee4fd..a12ba5f 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -5,7 +5,7 @@ jobs: build: runs-on: ubuntu-latest steps: - - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b #v4.1.4 + - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 #v5.0.0 - name: Build the Docker image run: docker build -t decred/dcrwebapi:$(date +%s) . diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml index d042a95..4615216 100644 --- a/.github/workflows/go.yml +++ b/.github/workflows/go.yml @@ -9,16 +9,16 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - go: ["1.21", "1.22"] + go: ["1.24", "1.25"] steps: - name: Set up Go - uses: actions/setup-go@cdcb36043654635271a94b9a6d1392de5bb323a7 #v5.0.1 + uses: actions/setup-go@d35c59abb061a4a6fb18e82ac0862c26744d6ab5 #v5.5.0 with: go-version: ${{ matrix.go }} - name: Check out source - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b #v4.1.4 + uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 #v5.0.0 - name: Install Linters - run: "curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin v1.58.1" + run: "curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin v2.4.0" - name: Build run: go build ./... - name: Test diff --git a/.golangci.yml b/.golangci.yml index 55a25ba..be16288 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -1,18 +1,15 @@ +version: "2" run: - deadline: 10m + timeout: 10m linters: - disable-all: true + default: none enable: - asciicheck - bidichk - durationcheck - exhaustive - - exportloopref - goconst - - gofmt - - goimports - - gosimple - govet - ineffassign - misspell @@ -20,8 +17,16 @@ linters: - revive - staticcheck - tparallel - - typecheck - unconvert - unparam - unused - - vetshadow + - usestdlibvars + - usetesting + exclusions: + presets: + - comments +formatters: + enable: + - gofmt + - goimports + diff --git a/Dockerfile b/Dockerfile index 7866481..5e79ba3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,5 @@ # build -FROM golang:1.22-alpine AS builder +FROM golang:1.25-alpine AS builder WORKDIR $GOPATH/src/github.com/decred/dcrwebapi COPY . . diff --git a/LICENSE b/LICENSE index c8c6701..18ac493 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ ISC License -Copyright (c) 2017-2024 The Decred developers +Copyright (c) 2017-2025 The Decred developers Permission to use, copy, modify, and distribute this software for any purpose with or without fee is hereby granted, provided that the above diff --git a/go.mod b/go.mod index c9c7efa..eb2e9e5 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,7 @@ module github.com/decred/dcrwebapi go 1.18 require ( - github.com/decred/dcrd/dcrutil/v4 v4.0.1 + github.com/decred/dcrd/dcrutil/v4 v4.0.2 github.com/decred/dcrdata/v6 v6.0.0 github.com/gorilla/handlers v1.5.2 ) @@ -16,7 +16,7 @@ require ( github.com/decred/dcrd/blockchain/stake/v3 v3.0.1 // indirect github.com/decred/dcrd/blockchain/standalone/v2 v2.2.0 // indirect github.com/decred/dcrd/chaincfg/chainhash v1.0.4 // indirect - github.com/decred/dcrd/chaincfg/v3 v3.2.0 // indirect + github.com/decred/dcrd/chaincfg/v3 v3.2.1 // indirect github.com/decred/dcrd/crypto/blake256 v1.0.1 // indirect github.com/decred/dcrd/crypto/ripemd160 v1.0.2 // indirect github.com/decred/dcrd/database/v2 v2.0.3 // indirect @@ -28,8 +28,8 @@ require ( github.com/decred/dcrd/dcrutil/v3 v3.0.1 // indirect github.com/decred/dcrd/rpc/jsonrpc/types/v2 v2.3.1 // indirect github.com/decred/dcrd/txscript/v3 v3.0.1 // indirect - github.com/decred/dcrd/txscript/v4 v4.1.0 // indirect - github.com/decred/dcrd/wire v1.6.0 // indirect + github.com/decred/dcrd/txscript/v4 v4.1.1 // indirect + github.com/decred/dcrd/wire v1.7.0 // indirect github.com/decred/slog v1.2.0 // indirect github.com/felixge/httpsnoop v1.0.4 // indirect github.com/golang/snappy v0.0.4 // indirect diff --git a/go.sum b/go.sum index 6998ac8..edf4b4f 100644 --- a/go.sum +++ b/go.sum @@ -39,8 +39,8 @@ github.com/decred/dcrd/chaincfg/chainhash v1.0.2/go.mod h1:BpbrGgrPTr3YJYRN3Bm+D github.com/decred/dcrd/chaincfg/chainhash v1.0.4 h1:zRCv6tdncLfLTKYqu7hrXvs7hW+8FO/NvwoFvGsrluU= github.com/decred/dcrd/chaincfg/chainhash v1.0.4/go.mod h1:hA86XxlBWwHivMvxzXTSD0ZCG/LoYsFdWnCekkTMCqY= github.com/decred/dcrd/chaincfg/v3 v3.0.0/go.mod h1:EspyubQ7D2w6tjP7rBGDIE7OTbuMgBjR2F2kZFnh31A= -github.com/decred/dcrd/chaincfg/v3 v3.2.0 h1:6WxA92AGBkycEuWvxtZMvA76FbzbkDRoK8OGbsR2muk= -github.com/decred/dcrd/chaincfg/v3 v3.2.0/go.mod h1:2rHW1TKyFmwZTVBLoU/Cmf0oxcpBjUEegbSlBfrsriI= +github.com/decred/dcrd/chaincfg/v3 v3.2.1 h1:x9zKJaU24WAKbxAR1UyFKHlM3oJgP0H9LodokM4X5lM= +github.com/decred/dcrd/chaincfg/v3 v3.2.1/go.mod h1:SDCWDtY7BLj0leXc9FuoA1YjSVKyCIBVAyxwZn6+sXc= github.com/decred/dcrd/connmgr/v3 v3.0.0/go.mod h1:cPI43Aggp1lOhrVG75eJ3c3BwuFx0NhT77FK34ky+ak= github.com/decred/dcrd/crypto/blake256 v1.0.0/go.mod h1:sQl2p6Y26YV+ZOcSTP6thNdn47hh8kt6rqSlvmrXFAc= github.com/decred/dcrd/crypto/blake256 v1.0.1 h1:7PltbUIQB7u/FfZ39+DGa/ShuMyJ5ilcvdfma9wOH6Y= @@ -68,8 +68,8 @@ github.com/decred/dcrd/dcrjson/v3 v3.1.1/go.mod h1:lACNzZjn7po2erViTnXtBfdvSzK7E github.com/decred/dcrd/dcrutil/v3 v3.0.0/go.mod h1:iVsjcqVzLmYFGCZLet2H7Nq+7imV9tYcuY+0lC2mNsY= github.com/decred/dcrd/dcrutil/v3 v3.0.1 h1:F6FjaGMzs/1adL0Ld3T1tGAyKwAWfsNYoCt4h620zJQ= github.com/decred/dcrd/dcrutil/v3 v3.0.1/go.mod h1:XfZj8SjOoOYiFuOK6hA9NEwKpH907XOFdlw9UxlJf28= -github.com/decred/dcrd/dcrutil/v4 v4.0.1 h1:E+d2TNbpOj0f1L9RqkZkEm1QolFjajvkzxWC5WOPf1s= -github.com/decred/dcrd/dcrutil/v4 v4.0.1/go.mod h1:7EXyHYj8FEqY+WzMuRkF0nh32ueLqhutZDoW4eQ+KRc= +github.com/decred/dcrd/dcrutil/v4 v4.0.2 h1:eIl3E6gGln54qE8nk5o5lLtjh2/9C2Rz63OpD662h+8= +github.com/decred/dcrd/dcrutil/v4 v4.0.2/go.mod h1:iS3JB1ac3R3FgfpTF1kBD+SPNet8TmiW3Br+/Jc5MC8= github.com/decred/dcrd/gcs/v2 v2.1.0/go.mod h1:MbnJOINFcp42NMRAQ+CjX/xGz+53AwNgMzKZhwBibdM= github.com/decred/dcrd/hdkeychain/v3 v3.0.0/go.mod h1:Vz7PJSlLzhqmOR2lmjGD9JqAZgmUnM8P6r8hg7U4Zho= github.com/decred/dcrd/rpc/jsonrpc/types/v2 v2.3.0/go.mod h1:krn89ZOgSa8yc7sA4WpDK95p61NnjNWFkNlMnGrKbMc= @@ -79,12 +79,12 @@ github.com/decred/dcrd/rpcclient/v6 v6.0.2/go.mod h1:t6ECC72j2xWQ323poL85IFNq0EU github.com/decred/dcrd/txscript/v3 v3.0.0/go.mod h1:pdvnlD4KGdDoc09cvWRJ8EoRQUaiUz41uDevOWuEfII= github.com/decred/dcrd/txscript/v3 v3.0.1 h1:343cSGjRR0Oel6kjLhcCQq37W2G4DwnkXkAeUmWcEv4= github.com/decred/dcrd/txscript/v3 v3.0.1/go.mod h1:NbIL3qM6U6NS3TKPf5zAx3cDsC3QsUJfSNOLxgcCMhY= -github.com/decred/dcrd/txscript/v4 v4.1.0 h1:uEdcibIOl6BuWj3AqmXZ9xIK/qbo6lHY9aNk29FtkrU= -github.com/decred/dcrd/txscript/v4 v4.1.0/go.mod h1:OVguPtPc4YMkgssxzP8B6XEMf/J3MB6S1JKpxgGQqi0= +github.com/decred/dcrd/txscript/v4 v4.1.1 h1:R4M2+jMujgQA91899SkL0cW66d6DC76Gx+1W1oEHjc0= +github.com/decred/dcrd/txscript/v4 v4.1.1/go.mod h1:7ybmJoI+b6dxvQ+0aXdZpkyrj0PbnylJCzFxD1g8+/A= github.com/decred/dcrd/wire v1.3.0/go.mod h1:fnKGlUY2IBuqnpxx5dYRU5Oiq392OBqAuVjRVSkIoXM= github.com/decred/dcrd/wire v1.4.0/go.mod h1:WxC/0K+cCAnBh+SKsRjIX9YPgvrjhmE+6pZlel1G7Ro= -github.com/decred/dcrd/wire v1.6.0 h1:YOGwPHk4nzGr6OIwUGb8crJYWDiVLpuMxfDBCCF7s/o= -github.com/decred/dcrd/wire v1.6.0/go.mod h1:XQ8Xv/pN/3xaDcb7sH8FBLS9cdgVctT7HpBKKGsIACk= +github.com/decred/dcrd/wire v1.7.0 h1:5JHiDjEQeS4XUl4PfnTZYLwAD/E/+LwBmPRec/fP76o= +github.com/decred/dcrd/wire v1.7.0/go.mod h1:lAqrzV0SU4kyV6INLEJgDtUjJaTaVKrbF4LHtaYl+zU= github.com/decred/dcrdata/v6 v6.0.0 h1:eNe2h7XCITLBM4FfBVd57VwqGYpCLJrnev38YzwJ9qw= github.com/decred/dcrdata/v6 v6.0.0/go.mod h1:3dzYsjv4i8/H7jAWRmIq3yXW5Wa/1Hv3xJV1oGDIgfk= github.com/decred/go-socks v1.1.0/go.mod h1:sDhHqkZH0X4JjSa02oYOGhcGHYp12FsY1jQ/meV8md0= @@ -224,6 +224,7 @@ golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.23.0 h1:D71I7dUrlY+VX0gQShAThNGHFxZ13dGLBHQLVl1mJlY= +golang.org/x/text v0.23.0/go.mod h1:/BLNzu4aZCJ1+kcD0DNRotWKage4q2rGVAg4o22unh4= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= diff --git a/main.go b/main.go index c595f48..833f616 100644 --- a/main.go +++ b/main.go @@ -1,4 +1,4 @@ -// Copyright (c) 2017-2018 The Decred developers +// Copyright (c) 2017-2025 The Decred developers // Use of this source code is governed by an ISC // license that can be found in the LICENSE file. @@ -21,7 +21,7 @@ func main() { log.Println("dcrwebapi starting on", defaultPort) origins := handlers.AllowedOrigins([]string{"*"}) - methods := handlers.AllowedMethods([]string{"GET", "OPTIONS"}) + methods := handlers.AllowedMethods([]string{http.MethodGet, http.MethodOptions}) log.Fatal(http.ListenAndServe(defaultPort, handlers.CORS(origins, methods)(service.Router))) diff --git a/service.go b/service.go index 3749acf..f921b5f 100644 --- a/service.go +++ b/service.go @@ -168,7 +168,7 @@ func NewService() *Service { // getHTTP will use the services HTTP client to send a GET request to the // provided URL. Returns the response body, or an error. func (service *Service) getHTTP(url string) ([]byte, error) { - req, err := http.NewRequest("GET", url, nil) + req, err := http.NewRequest(http.MethodGet, url, nil) if err != nil { return nil, fmt.Errorf("%v: failed to create request: %v", url, err)