Skip to content

Commit 8103142

Browse files
committed
porting command check port into public tool
1 parent 457d302 commit 8103142

File tree

7 files changed

+210
-14
lines changed

7 files changed

+210
-14
lines changed

README.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,18 @@ devd hash keccak512 [input]
162162
# cat file.txt | devd hash keccak512
163163
```
164164

165+
### Check tools
166+
167+
#### Listing ports in use and check port holding by process
168+
169+
```bash
170+
# listing
171+
devd check port
172+
173+
# check specific port
174+
devd check port [port]
175+
```
176+
165177
### Debug tools
166178

167179
#### Compute EVM transaction intrinsic gas

cmd/check/port.go

Lines changed: 138 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,138 @@
1+
package check
2+
3+
import (
4+
"fmt"
5+
"github.com/bcdevtools/devd/v2/cmd/utils"
6+
psnet "github.com/shirou/gopsutil/v3/net"
7+
"github.com/shirou/gopsutil/v3/process"
8+
"github.com/spf13/cobra"
9+
"golang.org/x/exp/slices"
10+
"os"
11+
"strconv"
12+
)
13+
14+
func GetCheckPortCommand() *cobra.Command {
15+
cmd := &cobra.Command{
16+
Use: "port [?port]",
17+
Short: `List ports
18+
or check specific port currently open and holding by a process.`,
19+
Args: cobra.RangeArgs(0, 1),
20+
Run: func(_ *cobra.Command, args []string) {
21+
if len(args) == 0 {
22+
listPorts()
23+
} else {
24+
checkPort(args[0])
25+
}
26+
},
27+
}
28+
29+
return cmd
30+
}
31+
32+
func listPorts() {
33+
connections, err := psnet.Connections("all")
34+
utils.ExitOnErr(err, "failed to get connections")
35+
36+
slices.SortFunc(connections, func(l, r psnet.ConnectionStat) bool {
37+
return l.Laddr.Port < r.Laddr.Port
38+
})
39+
40+
for _, conn := range connections {
41+
fmt.Printf("%5d", conn.Laddr.Port)
42+
fmt.Printf(" | %-11s", conn.Status)
43+
fmt.Printf(" | PID %-5d", conn.Pid)
44+
45+
processName := "(ERR)"
46+
proc, err := process.NewProcess(conn.Pid)
47+
if err == nil && proc != nil {
48+
name, err := proc.Name()
49+
if err == nil {
50+
processName = name
51+
}
52+
}
53+
fmt.Printf(" | PN %-30s", processName)
54+
55+
remoteIP := "-"
56+
remotePort := "-"
57+
if conn.Raddr.Port != 0 || conn.Raddr.IP != "" {
58+
remoteIP = conn.Raddr.IP
59+
remotePort = fmt.Sprintf("%d", conn.Raddr.Port)
60+
}
61+
fmt.Printf(" | REMOTE %30s:%-5s", remoteIP, remotePort)
62+
63+
fmt.Println()
64+
}
65+
}
66+
67+
func checkPort(portStr string) {
68+
port64, err := strconv.ParseInt(portStr, 10, 64)
69+
utils.ExitOnErr(err, "failed to read, port is not a number")
70+
71+
if port64 < 0 || port64 > 65535 {
72+
utils.PrintlnStdErr("ERR: port must be in range [1, 65535]")
73+
os.Exit(1)
74+
}
75+
76+
var isOpen, anyErr bool
77+
78+
port32 := uint32(port64)
79+
80+
connections, err := psnet.Connections("all")
81+
utils.ExitOnErr(err, "failed to get connections")
82+
83+
for _, conn := range connections {
84+
if conn.Laddr.Port != port32 {
85+
continue
86+
}
87+
88+
isOpen = true
89+
90+
fmt.Println(conn.Status)
91+
fmt.Println("PID:", conn.Pid)
92+
93+
if conn.Pid > 0 {
94+
proc, err := process.NewProcess(conn.Pid)
95+
if err != nil || proc == nil {
96+
utils.PrintlnStdErr("ERR: Failed to get process or process not found")
97+
anyErr = true
98+
} else {
99+
name, err := proc.Name()
100+
if err == nil {
101+
fmt.Println("PROC:", name)
102+
} else {
103+
utils.PrintlnStdErr("ERR: Failed to get process name")
104+
anyErr = true
105+
}
106+
cmdLine, err := proc.Cmdline()
107+
if err == nil {
108+
fmt.Println("PROC CLI:", cmdLine)
109+
} else {
110+
utils.PrintlnStdErr("ERR: Failed to get process command line")
111+
anyErr = true
112+
}
113+
}
114+
}
115+
116+
fmt.Println("LOCAL IP:", conn.Laddr.IP)
117+
fmt.Print("REMOTE: ")
118+
if conn.Raddr.Port == 0 && conn.Raddr.IP == "" {
119+
fmt.Println("NONE")
120+
} else {
121+
fmt.Println(conn.Raddr.IP, " ", conn.Raddr.Port)
122+
}
123+
fmt.Println("FD:", conn.Fd)
124+
fmt.Println("FAMILY:", conn.Family)
125+
fmt.Println("TYPE:", conn.Type)
126+
fmt.Println("UIDs:", conn.Uids)
127+
128+
break
129+
}
130+
131+
if !isOpen {
132+
fmt.Println("Not open")
133+
}
134+
135+
if anyErr {
136+
os.Exit(1)
137+
}
138+
}

cmd/check/root.go

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package check
2+
3+
import (
4+
"github.com/spf13/cobra"
5+
)
6+
7+
// Commands registers a sub-tree of commands
8+
func Commands() *cobra.Command {
9+
cmd := &cobra.Command{
10+
Use: "check",
11+
Aliases: []string{"chk"},
12+
Short: "Check commands",
13+
}
14+
15+
cmd.AddCommand(
16+
GetCheckPortCommand(),
17+
)
18+
19+
return cmd
20+
}

cmd/root.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package cmd
22

33
//goland:noinspection GoSnakeCaseUsage
44
import (
5+
"github.com/bcdevtools/devd/v2/cmd/check"
56
"github.com/bcdevtools/devd/v2/cmd/convert"
67
"github.com/bcdevtools/devd/v2/cmd/debug"
78
"github.com/bcdevtools/devd/v2/cmd/hash"
@@ -37,6 +38,7 @@ func init() {
3738
rootCmd.AddCommand(debug.Commands())
3839
rootCmd.AddCommand(query.Commands())
3940
rootCmd.AddCommand(hash.Commands())
41+
rootCmd.AddCommand(check.Commands())
4042

4143
rootCmd.PersistentFlags().Bool("help", false, "show help")
4244
}

constants/varcons.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,5 @@ package constants
44

55
//goland:noinspection GoSnakeCaseUsage
66
var (
7-
VERSION = "2.0.5"
7+
VERSION = "2.1.0"
88
)

go.mod

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
module github.com/bcdevtools/devd/v2
22

3-
go 1.18
3+
go 1.20
44

55
require (
66
github.com/cosmos/cosmos-sdk v0.47.10
77
github.com/ethereum/go-ethereum v1.10.26
88
github.com/pkg/errors v0.9.1
9+
github.com/shirou/gopsutil/v3 v3.24.3
910
github.com/spf13/cobra v1.7.0
10-
github.com/stretchr/testify v1.8.4
11+
github.com/stretchr/testify v1.9.0
1112
)
1213

1314
require (
@@ -36,7 +37,7 @@ require (
3637
github.com/go-kit/kit v0.12.0 // indirect
3738
github.com/go-kit/log v0.2.1 // indirect
3839
github.com/go-logfmt/logfmt v0.5.1 // indirect
39-
github.com/go-ole/go-ole v1.2.1 // indirect
40+
github.com/go-ole/go-ole v1.2.6 // indirect
4041
github.com/go-stack/stack v1.8.0 // indirect
4142
github.com/gogo/protobuf v1.3.2 // indirect
4243
github.com/golang/glog v1.1.2 // indirect
@@ -54,6 +55,7 @@ require (
5455
github.com/jmhodges/levigo v1.0.0 // indirect
5556
github.com/klauspost/compress v1.16.7 // indirect
5657
github.com/libp2p/go-buffer-pool v0.1.0 // indirect
58+
github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect
5759
github.com/magiconair/properties v1.8.6 // indirect
5860
github.com/mattn/go-runewidth v0.0.9 // indirect
5961
github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect
@@ -64,13 +66,15 @@ require (
6466
github.com/pelletier/go-toml/v2 v2.0.7 // indirect
6567
github.com/petermattis/goid v0.0.0-20230317030725-371a4b8eda08 // indirect
6668
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
69+
github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect
6770
github.com/prometheus/client_golang v1.14.0 // indirect
6871
github.com/prometheus/client_model v0.3.0 // indirect
6972
github.com/prometheus/common v0.42.0 // indirect
7073
github.com/prometheus/procfs v0.9.0 // indirect
7174
github.com/prometheus/tsdb v0.7.1 // indirect
7275
github.com/sasha-s/go-deadlock v0.3.1 // indirect
7376
github.com/shirou/gopsutil v3.21.4-0.20210419000835-c7a38de76ee5+incompatible // indirect
77+
github.com/shoenig/go-m1cpu v0.1.6 // indirect
7478
github.com/spf13/afero v1.9.2 // indirect
7579
github.com/spf13/cast v1.5.0 // indirect
7680
github.com/spf13/jwalterweatherman v1.1.0 // indirect
@@ -80,8 +84,9 @@ require (
8084
github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d // indirect
8185
github.com/tecbot/gorocksdb v0.0.0-20191217155057-f0fad39f321c // indirect
8286
github.com/tendermint/go-amino v0.16.0 // indirect
83-
github.com/tklauser/go-sysconf v0.3.5 // indirect
84-
github.com/tklauser/numcpus v0.2.2 // indirect
87+
github.com/tklauser/go-sysconf v0.3.12 // indirect
88+
github.com/tklauser/numcpus v0.6.1 // indirect
89+
github.com/yusufpapurcu/wmi v1.2.4 // indirect
8590
go.etcd.io/bbolt v1.3.7 // indirect
8691
golang.org/x/crypto v0.22.0 // indirect
8792
golang.org/x/exp v0.0.0-20230711153332-06a737ee72cb // indirect

go.sum

Lines changed: 27 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -168,8 +168,8 @@ github.com/go-kit/log v0.2.1/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBj
168168
github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE=
169169
github.com/go-logfmt/logfmt v0.5.1 h1:otpy5pqBCBZ1ng9RQ0dPu4PN7ba75Y/aA+UpowDyNVA=
170170
github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs=
171-
github.com/go-ole/go-ole v1.2.1 h1:2lOsA72HgjxAuMlKpFiCbHTvu44PIVkZ5hqm3RSdI/E=
172-
github.com/go-ole/go-ole v1.2.1/go.mod h1:7FAglXiTm7HKlQRDeOQ6ZNUHidzCWXuZWq/1dTyBNF8=
171+
github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY=
172+
github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0=
173173
github.com/go-stack/stack v1.8.0 h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk=
174174
github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
175175
github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE=
@@ -229,6 +229,7 @@ github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/
229229
github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
230230
github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
231231
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
232+
github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
232233
github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
233234
github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
234235
github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
@@ -304,6 +305,8 @@ github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
304305
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
305306
github.com/libp2p/go-buffer-pool v0.1.0 h1:oK4mSFcQz7cTQIfqbe4MIj9gLW+mnanjyFtc6cdF0Y8=
306307
github.com/libp2p/go-buffer-pool v0.1.0/go.mod h1:N+vh8gMqimBzdKkSMVuydVDq+UV5QTWy5HSiZacSbPg=
308+
github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4=
309+
github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I=
307310
github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
308311
github.com/magiconair/properties v1.8.6 h1:5ibWZ6iY0NctNGWo87LalDlEZ6R41TqbbDamhfG/Qzo=
309312
github.com/magiconair/properties v1.8.6/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60=
@@ -356,6 +359,8 @@ github.com/pkg/sftp v1.13.1/go.mod h1:3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qR
356359
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
357360
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U=
358361
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
362+
github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw=
363+
github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE=
359364
github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=
360365
github.com/prometheus/client_golang v1.14.0 h1:nJdhIvne2eSX/XRAFV9PcvFFRbrjbcTUj0VP62TMhnw=
361366
github.com/prometheus/client_golang v1.14.0/go.mod h1:8vpkKitgIVNcqrRBWh1C4TIUQgYNtG/XQE4E/Zae36Y=
@@ -384,6 +389,12 @@ github.com/sasha-s/go-deadlock v0.3.1 h1:sqv7fDNShgjcaxkO0JNcOAlr8B9+cV5Ey/OB71e
384389
github.com/sasha-s/go-deadlock v0.3.1/go.mod h1:F73l+cr82YSh10GxyRI6qZiCgK64VaZjwesgfQ1/iLM=
385390
github.com/shirou/gopsutil v3.21.4-0.20210419000835-c7a38de76ee5+incompatible h1:Bn1aCHHRnjv4Bl16T8rcaFjYSrGrIZvpiGO6P3Q4GpU=
386391
github.com/shirou/gopsutil v3.21.4-0.20210419000835-c7a38de76ee5+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA=
392+
github.com/shirou/gopsutil/v3 v3.24.3 h1:eoUGJSmdfLzJ3mxIhmOAhgKEKgQkeOwKpz1NbhVnuPE=
393+
github.com/shirou/gopsutil/v3 v3.24.3/go.mod h1:JpND7O217xa72ewWz9zN2eIIkPWsDN/3pl0H8Qt0uwg=
394+
github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM=
395+
github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ=
396+
github.com/shoenig/test v0.6.4 h1:kVTaSd7WLz5WZ2IaoM0RSzRsUD+m8wRR+5qvntpn4LU=
397+
github.com/shoenig/test v0.6.4/go.mod h1:byHiCGXqrVaflBLAMq/srcZIHynQPQgeyvkvXnjqq0k=
387398
github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
388399
github.com/spaolacci/murmur3 v1.1.0 h1:7c1g84S4BPRrfL5Xrdp6fOJ206sU9y293DDHaoy0bLI=
389400
github.com/spaolacci/murmur3 v1.1.0/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
@@ -409,6 +420,7 @@ github.com/status-im/keycard-go v0.0.0-20190316090335-8537d3370df4 h1:Gb2Tyox57N
409420
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
410421
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
411422
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
423+
github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA=
412424
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
413425
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
414426
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
@@ -418,8 +430,9 @@ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/
418430
github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals=
419431
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
420432
github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
421-
github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk=
422433
github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
434+
github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg=
435+
github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
423436
github.com/subosito/gotenv v1.4.1 h1:jyEFiXpy21Wm81FBN71l9VoMMV8H8jG+qIK3GCpY6Qs=
424437
github.com/subosito/gotenv v1.4.1/go.mod h1:ayKnFf/c6rvx/2iiLrJUk1e6plDbT3edrFNGqEflhK0=
425438
github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d h1:vfofYNRScrDdvS342BElfbETmL1Aiz3i2t0zfRj16Hs=
@@ -429,10 +442,10 @@ github.com/tecbot/gorocksdb v0.0.0-20191217155057-f0fad39f321c/go.mod h1:ahpPrc7
429442
github.com/tendermint/go-amino v0.16.0 h1:GyhmgQKvqF82e2oZeuMSp9JTN0N09emoSZlb2lyGa2E=
430443
github.com/tendermint/go-amino v0.16.0/go.mod h1:TQU0M1i/ImAo+tYpZi73AU3V/dKeCoMC9Sphe2ZwGME=
431444
github.com/tidwall/btree v1.6.0 h1:LDZfKfQIBHGHWSwckhXI0RPSXzlo+KYdjK7FWSqOzzg=
432-
github.com/tklauser/go-sysconf v0.3.5 h1:uu3Xl4nkLzQfXNsWn15rPc/HQCJKObbt1dKJeWp3vU4=
433-
github.com/tklauser/go-sysconf v0.3.5/go.mod h1:MkWzOF4RMCshBAMXuhXJs64Rte09mITnppBXY/rYEFI=
434-
github.com/tklauser/numcpus v0.2.2 h1:oyhllyrScuYI6g+h/zUvNXNp1wy7x8qQy3t/piefldA=
435-
github.com/tklauser/numcpus v0.2.2/go.mod h1:x3qojaO3uyYt0i56EW/VUYs7uBvdl2fkfZFu0T9wgjM=
445+
github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU=
446+
github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI=
447+
github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk=
448+
github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY=
436449
github.com/tyler-smith/go-bip39 v1.0.1-0.20181017060643-dbb3b84ba2ef h1:wHSqTBrZW24CsNJDfeh9Ex6Pm0Rcpc7qrgKBiL44vF4=
437450
github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0=
438451
github.com/urfave/cli/v2 v2.10.2 h1:x3p8awjp/2arX+Nl/G2040AZpOCHS/eMJJ1/a+mye4Y=
@@ -442,6 +455,8 @@ github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de
442455
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
443456
github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
444457
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
458+
github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0=
459+
github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0=
445460
github.com/zondax/hid v0.9.2 h1:WCJFnEDMiqGF64nlZz28E9qLVZ0KSJ7xpc5DLEyma2U=
446461
github.com/zondax/ledger-go v0.14.3 h1:wEpJt2CEcBJ428md/5MgSLsXLBos98sBOyxNmCjfUCw=
447462
go.etcd.io/bbolt v1.3.7 h1:j+zJOnnEjF/kyHlDDgGnVL/AIqIJPq8UoB2GSNfkUfQ=
@@ -569,6 +584,7 @@ golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7w
569584
golang.org/x/sys v0.0.0-20190626221950-04f50cda93cb/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
570585
golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
571586
golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
587+
golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
572588
golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
573589
golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
574590
golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@@ -591,11 +607,11 @@ golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7w
591607
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
592608
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
593609
golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
610+
golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
594611
golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
595612
golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
596613
golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
597614
golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
598-
golang.org/x/sys v0.0.0-20210316164454-77fc1eacc6aa/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
599615
golang.org/x/sys v0.0.0-20210324051608-47abb6519492/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
600616
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
601617
golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@@ -605,6 +621,9 @@ golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBc
605621
golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
606622
golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
607623
golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
624+
golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
625+
golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
626+
golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
608627
golang.org/x/sys v0.19.0 h1:q5f1RH2jigJ1MoAWp2KTp3gm5zAGFUTarQZ5U386+4o=
609628
golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
610629
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=

0 commit comments

Comments
 (0)