src: lint: bump golangci-lint to 1.59, address unchecked fmt.Fprint*
This commit is contained in:
		
							parent
							
								
									59938414fc
								
							
						
					
					
						commit
						730c96ecaf
					
				
							
								
								
									
										2
									
								
								.github/workflows/check.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/workflows/check.yml
									
									
									
									
										vendored
									
									
								
							| @ -57,7 +57,7 @@ jobs: | |||||||
|           submodules: 'recursive' |           submodules: 'recursive' | ||||||
|       - uses: ./.github/actions/install-system-dependencies |       - uses: ./.github/actions/install-system-dependencies | ||||||
|       - uses: ./.github/actions/install-go |       - uses: ./.github/actions/install-go | ||||||
|       - run: go install github.com/golangci/golangci-lint/cmd/golangci-lint@v1.58.2 |       - run: go install github.com/golangci/golangci-lint/cmd/golangci-lint@v1.59.0 | ||||||
|       - run: make deps |       - run: make deps | ||||||
|       - run: golangci-lint run -v --timeout 10m --concurrency 4 |       - run: golangci-lint run -v --timeout 10m --concurrency 4 | ||||||
|   check-fmt: |   check-fmt: | ||||||
|  | |||||||
| @ -68,7 +68,7 @@ func (f FIL) Nano() string { | |||||||
| func (f FIL) Format(s fmt.State, ch rune) { | func (f FIL) Format(s fmt.State, ch rune) { | ||||||
| 	switch ch { | 	switch ch { | ||||||
| 	case 's', 'v': | 	case 's', 'v': | ||||||
| 		fmt.Fprint(s, f.String()) | 		_, _ = fmt.Fprint(s, f.String()) | ||||||
| 	default: | 	default: | ||||||
| 		f.Int.Format(s, ch) | 		f.Int.Format(s, ch) | ||||||
| 	} | 	} | ||||||
|  | |||||||
| @ -76,15 +76,15 @@ func NewAppFmt(a *ufcli.App) *AppFmt { | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (a *AppFmt) Print(args ...interface{}) { | func (a *AppFmt) Print(args ...interface{}) { | ||||||
| 	fmt.Fprint(a.app.Writer, args...) | 	_, _ = fmt.Fprint(a.app.Writer, args...) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (a *AppFmt) Println(args ...interface{}) { | func (a *AppFmt) Println(args ...interface{}) { | ||||||
| 	fmt.Fprintln(a.app.Writer, args...) | 	_, _ = fmt.Fprintln(a.app.Writer, args...) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (a *AppFmt) Printf(fmtstr string, args ...interface{}) { | func (a *AppFmt) Printf(fmtstr string, args ...interface{}) { | ||||||
| 	fmt.Fprintf(a.app.Writer, fmtstr, args...) | 	_, _ = fmt.Fprintf(a.app.Writer, fmtstr, args...) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (a *AppFmt) Scan(args ...interface{}) (int, error) { | func (a *AppFmt) Scan(args ...interface{}) (int, error) { | ||||||
|  | |||||||
							
								
								
									
										14
									
								
								cli/info.go
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								cli/info.go
									
									
									
									
									
								
							| @ -160,8 +160,18 @@ func infoCmdAct(cctx *cli.Context) error { | |||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	fmt.Printf("Bandwidth:\n") | 	fmt.Printf("Bandwidth:\n") | ||||||
| 	fmt.Fprintf(tw, "\tTotalIn\tTotalOut\tRateIn\tRateOut\n") | 	if _, err := fmt.Fprintf(tw, "\tTotalIn\tTotalOut\tRateIn\tRateOut\n"); err != nil { | ||||||
| 	fmt.Fprintf(tw, "\t%s\t%s\t%s/s\t%s/s\n", humanize.Bytes(uint64(s.TotalIn)), humanize.Bytes(uint64(s.TotalOut)), humanize.Bytes(uint64(s.RateIn)), humanize.Bytes(uint64(s.RateOut))) | 		return err | ||||||
|  | 	} | ||||||
|  | 	if _, err := fmt.Fprintf( | ||||||
|  | 		tw, | ||||||
|  | 		"\t%s\t%s\t%s/s\t%s/s\n", | ||||||
|  | 		humanize.Bytes(uint64(s.TotalIn)), | ||||||
|  | 		humanize.Bytes(uint64(s.TotalOut)), | ||||||
|  | 		humanize.Bytes(uint64(s.RateIn)), | ||||||
|  | 		humanize.Bytes(uint64(s.RateOut))); err != nil { | ||||||
|  | 		return err | ||||||
|  | 	} | ||||||
| 	return tw.Flush() | 	return tw.Flush() | ||||||
| 
 | 
 | ||||||
| } | } | ||||||
|  | |||||||
| @ -168,7 +168,7 @@ var msigCreateCmd = &cli.Command{ | |||||||
| 
 | 
 | ||||||
| 		// check it executed successfully
 | 		// check it executed successfully
 | ||||||
| 		if wait.Receipt.ExitCode.IsError() { | 		if wait.Receipt.ExitCode.IsError() { | ||||||
| 			fmt.Fprintln(cctx.App.Writer, "actor creation failed!") | 			_, _ = fmt.Fprintln(cctx.App.Writer, "actor creation failed!") | ||||||
| 			return err | 			return err | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| @ -178,7 +178,7 @@ var msigCreateCmd = &cli.Command{ | |||||||
| 		if err := execreturn.UnmarshalCBOR(bytes.NewReader(wait.Receipt.Return)); err != nil { | 		if err := execreturn.UnmarshalCBOR(bytes.NewReader(wait.Receipt.Return)); err != nil { | ||||||
| 			return err | 			return err | ||||||
| 		} | 		} | ||||||
| 		fmt.Fprintln(cctx.App.Writer, "Created new multisig: ", execreturn.IDAddress, execreturn.RobustAddress) | 		_, _ = fmt.Fprintln(cctx.App.Writer, "Created new multisig: ", execreturn.IDAddress, execreturn.RobustAddress) | ||||||
| 
 | 
 | ||||||
| 		// TODO: maybe register this somewhere
 | 		// TODO: maybe register this somewhere
 | ||||||
| 		return nil | 		return nil | ||||||
| @ -242,25 +242,25 @@ var msigInspectCmd = &cli.Command{ | |||||||
| 			return err | 			return err | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		fmt.Fprintf(cctx.App.Writer, "Balance: %s\n", types.FIL(act.Balance)) | 		_, _ = fmt.Fprintf(cctx.App.Writer, "Balance: %s\n", types.FIL(act.Balance)) | ||||||
| 		fmt.Fprintf(cctx.App.Writer, "Spendable: %s\n", types.FIL(types.BigSub(act.Balance, locked))) | 		_, _ = fmt.Fprintf(cctx.App.Writer, "Spendable: %s\n", types.FIL(types.BigSub(act.Balance, locked))) | ||||||
| 
 | 
 | ||||||
| 		if cctx.Bool("vesting") { | 		if cctx.Bool("vesting") { | ||||||
| 			ib, err := mstate.InitialBalance() | 			ib, err := mstate.InitialBalance() | ||||||
| 			if err != nil { | 			if err != nil { | ||||||
| 				return err | 				return err | ||||||
| 			} | 			} | ||||||
| 			fmt.Fprintf(cctx.App.Writer, "InitialBalance: %s\n", types.FIL(ib)) | 			_, _ = fmt.Fprintf(cctx.App.Writer, "InitialBalance: %s\n", types.FIL(ib)) | ||||||
| 			se, err := mstate.StartEpoch() | 			se, err := mstate.StartEpoch() | ||||||
| 			if err != nil { | 			if err != nil { | ||||||
| 				return err | 				return err | ||||||
| 			} | 			} | ||||||
| 			fmt.Fprintf(cctx.App.Writer, "StartEpoch: %d\n", se) | 			_, _ = fmt.Fprintf(cctx.App.Writer, "StartEpoch: %d\n", se) | ||||||
| 			ud, err := mstate.UnlockDuration() | 			ud, err := mstate.UnlockDuration() | ||||||
| 			if err != nil { | 			if err != nil { | ||||||
| 				return err | 				return err | ||||||
| 			} | 			} | ||||||
| 			fmt.Fprintf(cctx.App.Writer, "UnlockDuration: %d\n", ud) | 			_, _ = fmt.Fprintf(cctx.App.Writer, "UnlockDuration: %d\n", ud) | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		signers, err := mstate.Signers() | 		signers, err := mstate.Signers() | ||||||
| @ -271,17 +271,17 @@ var msigInspectCmd = &cli.Command{ | |||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			return err | 			return err | ||||||
| 		} | 		} | ||||||
| 		fmt.Fprintf(cctx.App.Writer, "Threshold: %d / %d\n", threshold, len(signers)) | 		_, _ = fmt.Fprintf(cctx.App.Writer, "Threshold: %d / %d\n", threshold, len(signers)) | ||||||
| 		fmt.Fprintln(cctx.App.Writer, "Signers:") | 		_, _ = fmt.Fprintln(cctx.App.Writer, "Signers:") | ||||||
| 
 | 
 | ||||||
| 		signerTable := tabwriter.NewWriter(cctx.App.Writer, 8, 4, 2, ' ', 0) | 		signerTable := tabwriter.NewWriter(cctx.App.Writer, 8, 4, 2, ' ', 0) | ||||||
| 		fmt.Fprintf(signerTable, "ID\tAddress\n") | 		_, _ = fmt.Fprintf(signerTable, "ID\tAddress\n") | ||||||
| 		for _, s := range signers { | 		for _, s := range signers { | ||||||
| 			signerActor, err := api.StateAccountKey(ctx, s, types.EmptyTSK) | 			signerActor, err := api.StateAccountKey(ctx, s, types.EmptyTSK) | ||||||
| 			if err != nil { | 			if err != nil { | ||||||
| 				fmt.Fprintf(signerTable, "%s\t%s\n", s, "N/A") | 				_, _ = fmt.Fprintf(signerTable, "%s\t%s\n", s, "N/A") | ||||||
| 			} else { | 			} else { | ||||||
| 				fmt.Fprintf(signerTable, "%s\t%s\n", s, signerActor) | 				_, _ = fmt.Fprintf(signerTable, "%s\t%s\n", s, signerActor) | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
| 		if err := signerTable.Flush(); err != nil { | 		if err := signerTable.Flush(); err != nil { | ||||||
| @ -297,7 +297,7 @@ var msigInspectCmd = &cli.Command{ | |||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		decParams := cctx.Bool("decode-params") | 		decParams := cctx.Bool("decode-params") | ||||||
| 		fmt.Fprintln(cctx.App.Writer, "Transactions: ", len(pending)) | 		_, _ = fmt.Fprintln(cctx.App.Writer, "Transactions: ", len(pending)) | ||||||
| 		if len(pending) > 0 { | 		if len(pending) > 0 { | ||||||
| 			var txids []int64 | 			var txids []int64 | ||||||
| 			for txid := range pending { | 			for txid := range pending { | ||||||
| @ -308,7 +308,7 @@ var msigInspectCmd = &cli.Command{ | |||||||
| 			}) | 			}) | ||||||
| 
 | 
 | ||||||
| 			w := tabwriter.NewWriter(cctx.App.Writer, 8, 4, 2, ' ', 0) | 			w := tabwriter.NewWriter(cctx.App.Writer, 8, 4, 2, ' ', 0) | ||||||
| 			fmt.Fprintf(w, "ID\tState\tApprovals\tTo\tValue\tMethod\tParams\n") | 			_, _ = fmt.Fprintf(w, "ID\tState\tApprovals\tTo\tValue\tMethod\tParams\n") | ||||||
| 			for _, txid := range txids { | 			for _, txid := range txids { | ||||||
| 				tx := pending[txid] | 				tx := pending[txid] | ||||||
| 				target := tx.To.String() | 				target := tx.To.String() | ||||||
| @ -320,9 +320,31 @@ var msigInspectCmd = &cli.Command{ | |||||||
| 
 | 
 | ||||||
| 				if err != nil { | 				if err != nil { | ||||||
| 					if tx.Method == 0 { | 					if tx.Method == 0 { | ||||||
| 						fmt.Fprintf(w, "%d\t%s\t%d\t%s\t%s\t%s(%d)\t%s\n", txid, "pending", len(tx.Approved), target, types.FIL(tx.Value), "Send", tx.Method, paramStr) | 						_, _ = fmt.Fprintf( | ||||||
|  | 							w, | ||||||
|  | 							"%d\t%s\t%d\t%s\t%s\t%s(%d)\t%s\n", | ||||||
|  | 							txid, | ||||||
|  | 							"pending", | ||||||
|  | 							len(tx.Approved), | ||||||
|  | 							target, | ||||||
|  | 							types.FIL(tx.Value), | ||||||
|  | 							"Send", | ||||||
|  | 							tx.Method, | ||||||
|  | 							paramStr, | ||||||
|  | 						) | ||||||
| 					} else { | 					} else { | ||||||
| 						fmt.Fprintf(w, "%d\t%s\t%d\t%s\t%s\t%s(%d)\t%s\n", txid, "pending", len(tx.Approved), target, types.FIL(tx.Value), "new account, unknown method", tx.Method, paramStr) | 						_, _ = fmt.Fprintf( | ||||||
|  | 							w, | ||||||
|  | 							"%d\t%s\t%d\t%s\t%s\t%s(%d)\t%s\n", | ||||||
|  | 							txid, | ||||||
|  | 							"pending", | ||||||
|  | 							len(tx.Approved), | ||||||
|  | 							target, | ||||||
|  | 							types.FIL(tx.Value), | ||||||
|  | 							"new account, unknown method", | ||||||
|  | 							tx.Method, | ||||||
|  | 							paramStr, | ||||||
|  | 						) | ||||||
| 					} | 					} | ||||||
| 				} else { | 				} else { | ||||||
| 					method := consensus.NewActorRegistry().Methods[targAct.Code][tx.Method] // TODO: use remote map
 | 					method := consensus.NewActorRegistry().Methods[targAct.Code][tx.Method] // TODO: use remote map
 | ||||||
| @ -341,7 +363,18 @@ var msigInspectCmd = &cli.Command{ | |||||||
| 						paramStr = string(b) | 						paramStr = string(b) | ||||||
| 					} | 					} | ||||||
| 
 | 
 | ||||||
| 					fmt.Fprintf(w, "%d\t%s\t%d\t%s\t%s\t%s(%d)\t%s\n", txid, "pending", len(tx.Approved), target, types.FIL(tx.Value), method.Name, tx.Method, paramStr) | 					_, _ = fmt.Fprintf( | ||||||
|  | 						w, | ||||||
|  | 						"%d\t%s\t%d\t%s\t%s\t%s(%d)\t%s\n", | ||||||
|  | 						txid, | ||||||
|  | 						"pending", | ||||||
|  | 						len(tx.Approved), | ||||||
|  | 						target, | ||||||
|  | 						types.FIL(tx.Value), | ||||||
|  | 						method.Name, | ||||||
|  | 						tx.Method, | ||||||
|  | 						paramStr, | ||||||
|  | 					) | ||||||
| 				} | 				} | ||||||
| 			} | 			} | ||||||
| 			if err := w.Flush(); err != nil { | 			if err := w.Flush(); err != nil { | ||||||
| @ -923,7 +956,7 @@ var msigAddProposeCmd = &cli.Command{ | |||||||
| 
 | 
 | ||||||
| 		msgCid := sm.Cid() | 		msgCid := sm.Cid() | ||||||
| 
 | 
 | ||||||
| 		fmt.Fprintln(cctx.App.Writer, "sent add proposal in message: ", msgCid) | 		_, _ = fmt.Fprintln(cctx.App.Writer, "sent add proposal in message: ", msgCid) | ||||||
| 
 | 
 | ||||||
| 		wait, err := api.StateWaitMsg(ctx, msgCid, uint64(cctx.Int("confidence")), build.Finality, true) | 		wait, err := api.StateWaitMsg(ctx, msgCid, uint64(cctx.Int("confidence")), build.Finality, true) | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
|  | |||||||
							
								
								
									
										31
									
								
								cli/net.go
									
									
									
									
									
								
							
							
						
						
									
										31
									
								
								cli/net.go
									
									
									
									
									
								
							| @ -479,7 +479,7 @@ var NetBandwidthCmd = &cli.Command{ | |||||||
| 
 | 
 | ||||||
| 		tw := tabwriter.NewWriter(os.Stdout, 4, 4, 2, ' ', 0) | 		tw := tabwriter.NewWriter(os.Stdout, 4, 4, 2, ' ', 0) | ||||||
| 
 | 
 | ||||||
| 		fmt.Fprintf(tw, "Segment\tTotalIn\tTotalOut\tRateIn\tRateOut\n") | 		_, _ = fmt.Fprintf(tw, "Segment\tTotalIn\tTotalOut\tRateIn\tRateOut\n") | ||||||
| 
 | 
 | ||||||
| 		if bypeer { | 		if bypeer { | ||||||
| 			bw, err := api.NetBandwidthStatsByPeer(ctx) | 			bw, err := api.NetBandwidthStatsByPeer(ctx) | ||||||
| @ -498,7 +498,15 @@ var NetBandwidthCmd = &cli.Command{ | |||||||
| 
 | 
 | ||||||
| 			for _, p := range peers { | 			for _, p := range peers { | ||||||
| 				s := bw[p] | 				s := bw[p] | ||||||
| 				fmt.Fprintf(tw, "%s\t%s\t%s\t%s/s\t%s/s\n", p, humanize.Bytes(uint64(s.TotalIn)), humanize.Bytes(uint64(s.TotalOut)), humanize.Bytes(uint64(s.RateIn)), humanize.Bytes(uint64(s.RateOut))) | 				_, _ = fmt.Fprintf( | ||||||
|  | 					tw, | ||||||
|  | 					"%s\t%s\t%s\t%s/s\t%s/s\n", | ||||||
|  | 					p, | ||||||
|  | 					humanize.Bytes(uint64(s.TotalIn)), | ||||||
|  | 					humanize.Bytes(uint64(s.TotalOut)), | ||||||
|  | 					humanize.Bytes(uint64(s.RateIn)), | ||||||
|  | 					humanize.Bytes(uint64(s.RateOut)), | ||||||
|  | 				) | ||||||
| 			} | 			} | ||||||
| 		} else if byproto { | 		} else if byproto { | ||||||
| 			bw, err := api.NetBandwidthStatsByProtocol(ctx) | 			bw, err := api.NetBandwidthStatsByProtocol(ctx) | ||||||
| @ -520,7 +528,15 @@ var NetBandwidthCmd = &cli.Command{ | |||||||
| 				if p == "" { | 				if p == "" { | ||||||
| 					p = "<unknown>" | 					p = "<unknown>" | ||||||
| 				} | 				} | ||||||
| 				fmt.Fprintf(tw, "%s\t%s\t%s\t%s/s\t%s/s\n", p, humanize.Bytes(uint64(s.TotalIn)), humanize.Bytes(uint64(s.TotalOut)), humanize.Bytes(uint64(s.RateIn)), humanize.Bytes(uint64(s.RateOut))) | 				_, _ = fmt.Fprintf( | ||||||
|  | 					tw, | ||||||
|  | 					"%s\t%s\t%s\t%s/s\t%s/s\n", | ||||||
|  | 					p, | ||||||
|  | 					humanize.Bytes(uint64(s.TotalIn)), | ||||||
|  | 					humanize.Bytes(uint64(s.TotalOut)), | ||||||
|  | 					humanize.Bytes(uint64(s.RateIn)), | ||||||
|  | 					humanize.Bytes(uint64(s.RateOut)), | ||||||
|  | 				) | ||||||
| 			} | 			} | ||||||
| 		} else { | 		} else { | ||||||
| 
 | 
 | ||||||
| @ -529,7 +545,14 @@ var NetBandwidthCmd = &cli.Command{ | |||||||
| 				return err | 				return err | ||||||
| 			} | 			} | ||||||
| 
 | 
 | ||||||
| 			fmt.Fprintf(tw, "Total\t%s\t%s\t%s/s\t%s/s\n", humanize.Bytes(uint64(s.TotalIn)), humanize.Bytes(uint64(s.TotalOut)), humanize.Bytes(uint64(s.RateIn)), humanize.Bytes(uint64(s.RateOut))) | 			_, _ = fmt.Fprintf( | ||||||
|  | 				tw, | ||||||
|  | 				"Total\t%s\t%s\t%s/s\t%s/s\n", | ||||||
|  | 				humanize.Bytes(uint64(s.TotalIn)), | ||||||
|  | 				humanize.Bytes(uint64(s.TotalOut)), | ||||||
|  | 				humanize.Bytes(uint64(s.RateIn)), | ||||||
|  | 				humanize.Bytes(uint64(s.RateOut)), | ||||||
|  | 			) | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		return tw.Flush() | 		return tw.Flush() | ||||||
|  | |||||||
							
								
								
									
										52
									
								
								cli/paych.go
									
									
									
									
									
								
							
							
						
						
									
										52
									
								
								cli/paych.go
									
									
									
									
									
								
							| @ -93,7 +93,7 @@ var paychAddFundsCmd = &cli.Command{ | |||||||
| 			return err | 			return err | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		fmt.Fprintln(cctx.App.Writer, chAddr) | 		_, _ = fmt.Fprintln(cctx.App.Writer, chAddr) | ||||||
| 		return nil | 		return nil | ||||||
| 	}, | 	}, | ||||||
| } | } | ||||||
| @ -168,23 +168,23 @@ var paychStatusCmd = &cli.Command{ | |||||||
| func paychStatus(writer io.Writer, avail *lapi.ChannelAvailableFunds) { | func paychStatus(writer io.Writer, avail *lapi.ChannelAvailableFunds) { | ||||||
| 	if avail.Channel == nil { | 	if avail.Channel == nil { | ||||||
| 		if avail.PendingWaitSentinel != nil { | 		if avail.PendingWaitSentinel != nil { | ||||||
| 			fmt.Fprint(writer, "Creating channel\n") | 			_, _ = fmt.Fprint(writer, "Creating channel\n") | ||||||
| 			fmt.Fprintf(writer, "  From:          %s\n", avail.From) | 			_, _ = fmt.Fprintf(writer, "  From:          %s\n", avail.From) | ||||||
| 			fmt.Fprintf(writer, "  To:            %s\n", avail.To) | 			_, _ = fmt.Fprintf(writer, "  To:            %s\n", avail.To) | ||||||
| 			fmt.Fprintf(writer, "  Pending Amt:   %s\n", types.FIL(avail.PendingAmt)) | 			_, _ = fmt.Fprintf(writer, "  Pending Amt:   %s\n", types.FIL(avail.PendingAmt)) | ||||||
| 			fmt.Fprintf(writer, "  Wait Sentinel: %s\n", avail.PendingWaitSentinel) | 			_, _ = fmt.Fprintf(writer, "  Wait Sentinel: %s\n", avail.PendingWaitSentinel) | ||||||
| 			return | 			return | ||||||
| 		} | 		} | ||||||
| 		fmt.Fprint(writer, "Channel does not exist\n") | 		_, _ = fmt.Fprint(writer, "Channel does not exist\n") | ||||||
| 		fmt.Fprintf(writer, "  From: %s\n", avail.From) | 		_, _ = fmt.Fprintf(writer, "  From: %s\n", avail.From) | ||||||
| 		fmt.Fprintf(writer, "  To:   %s\n", avail.To) | 		_, _ = fmt.Fprintf(writer, "  To:   %s\n", avail.To) | ||||||
| 		return | 		return | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	if avail.PendingWaitSentinel != nil { | 	if avail.PendingWaitSentinel != nil { | ||||||
| 		fmt.Fprint(writer, "Adding Funds to channel\n") | 		_, _ = fmt.Fprint(writer, "Adding Funds to channel\n") | ||||||
| 	} else { | 	} else { | ||||||
| 		fmt.Fprint(writer, "Channel exists\n") | 		_, _ = fmt.Fprint(writer, "Channel exists\n") | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	nameValues := [][]string{ | 	nameValues := [][]string{ | ||||||
| @ -204,7 +204,7 @@ func paychStatus(writer io.Writer, avail *lapi.ChannelAvailableFunds) { | |||||||
| 			avail.PendingWaitSentinel.String(), | 			avail.PendingWaitSentinel.String(), | ||||||
| 		}) | 		}) | ||||||
| 	} | 	} | ||||||
| 	fmt.Fprint(writer, formatNameValues(nameValues)) | 	_, _ = fmt.Fprint(writer, formatNameValues(nameValues)) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func formatNameValues(nameValues [][]string) string { | func formatNameValues(nameValues [][]string) string { | ||||||
| @ -240,7 +240,7 @@ var paychListCmd = &cli.Command{ | |||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		for _, v := range chs { | 		for _, v := range chs { | ||||||
| 			fmt.Fprintln(cctx.App.Writer, v.String()) | 			_, _ = fmt.Fprintln(cctx.App.Writer, v.String()) | ||||||
| 		} | 		} | ||||||
| 		return nil | 		return nil | ||||||
| 	}, | 	}, | ||||||
| @ -281,7 +281,7 @@ var paychSettleCmd = &cli.Command{ | |||||||
| 			return fmt.Errorf("settle message execution failed (exit code %d)", mwait.Receipt.ExitCode) | 			return fmt.Errorf("settle message execution failed (exit code %d)", mwait.Receipt.ExitCode) | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		fmt.Fprintf(cctx.App.Writer, "Settled channel %s\n", ch) | 		_, _ = fmt.Fprintf(cctx.App.Writer, "Settled channel %s\n", ch) | ||||||
| 		return nil | 		return nil | ||||||
| 	}, | 	}, | ||||||
| } | } | ||||||
| @ -321,7 +321,7 @@ var paychCloseCmd = &cli.Command{ | |||||||
| 			return fmt.Errorf("collect message execution failed (exit code %d)", mwait.Receipt.ExitCode) | 			return fmt.Errorf("collect message execution failed (exit code %d)", mwait.Receipt.ExitCode) | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		fmt.Fprintf(cctx.App.Writer, "Collected funds for channel %s\n", ch) | 		_, _ = fmt.Fprintf(cctx.App.Writer, "Collected funds for channel %s\n", ch) | ||||||
| 		return nil | 		return nil | ||||||
| 	}, | 	}, | ||||||
| } | } | ||||||
| @ -381,7 +381,7 @@ var paychVoucherCreateCmd = &cli.Command{ | |||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		if v.Voucher == nil { | 		if v.Voucher == nil { | ||||||
| 			return fmt.Errorf("Could not create voucher: insufficient funds in channel, shortfall: %d", v.Shortfall) | 			return fmt.Errorf("could not create voucher: insufficient funds in channel, shortfall: %d", v.Shortfall) | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		enc, err := EncodedString(v.Voucher) | 		enc, err := EncodedString(v.Voucher) | ||||||
| @ -389,7 +389,7 @@ var paychVoucherCreateCmd = &cli.Command{ | |||||||
| 			return err | 			return err | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		fmt.Fprintln(cctx.App.Writer, enc) | 		_, _ = fmt.Fprintln(cctx.App.Writer, enc) | ||||||
| 		return nil | 		return nil | ||||||
| 	}, | 	}, | ||||||
| } | } | ||||||
| @ -425,7 +425,7 @@ var paychVoucherCheckCmd = &cli.Command{ | |||||||
| 			return err | 			return err | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		fmt.Fprintln(cctx.App.Writer, "voucher is valid") | 		_, _ = fmt.Fprintln(cctx.App.Writer, "voucher is valid") | ||||||
| 		return nil | 		return nil | ||||||
| 	}, | 	}, | ||||||
| } | } | ||||||
| @ -580,12 +580,16 @@ func outputVoucher(w io.Writer, v *paych.SignedVoucher, export bool) error { | |||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	fmt.Fprintf(w, "Lane %d, Nonce %d: %s", v.Lane, v.Nonce, types.FIL(v.Amount)) | 	if _, err := fmt.Fprintf(w, "Lane %d, Nonce %d: %s", v.Lane, v.Nonce, types.FIL(v.Amount)); err != nil { | ||||||
| 	if export { | 		return err | ||||||
| 		fmt.Fprintf(w, "; %s", enc) |  | ||||||
| 	} | 	} | ||||||
| 	fmt.Fprintln(w) | 	if export { | ||||||
| 	return nil | 		if _, err := fmt.Fprintf(w, "; %s", enc); err != nil { | ||||||
|  | 			return err | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	_, err := fmt.Fprintln(w) | ||||||
|  | 	return err | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| var paychVoucherSubmitCmd = &cli.Command{ | var paychVoucherSubmitCmd = &cli.Command{ | ||||||
| @ -629,7 +633,7 @@ var paychVoucherSubmitCmd = &cli.Command{ | |||||||
| 			return fmt.Errorf("message execution failed (exit code %d)", mwait.Receipt.ExitCode) | 			return fmt.Errorf("message execution failed (exit code %d)", mwait.Receipt.ExitCode) | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		fmt.Fprintln(cctx.App.Writer, "channel updated successfully") | 		_, _ = fmt.Fprintln(cctx.App.Writer, "channel updated successfully") | ||||||
| 
 | 
 | ||||||
| 		return nil | 		return nil | ||||||
| 	}, | 	}, | ||||||
|  | |||||||
| @ -217,7 +217,7 @@ var SendCmd = &cli.Command{ | |||||||
| 			return err | 			return err | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		fmt.Fprintf(cctx.App.Writer, "%s\n", sm.Cid()) | 		_, _ = fmt.Fprintf(cctx.App.Writer, "%s\n", sm.Cid()) | ||||||
| 		return nil | 		return nil | ||||||
| 	}, | 	}, | ||||||
| } | } | ||||||
|  | |||||||
| @ -28,7 +28,7 @@ func InteractiveSend(ctx context.Context, cctx *cli.Context, srv ServicesAPI, | |||||||
| 	printer := cctx.App.Writer | 	printer := cctx.App.Writer | ||||||
| 	if xerrors.Is(err, ErrCheckFailed) { | 	if xerrors.Is(err, ErrCheckFailed) { | ||||||
| 		if !cctx.Bool("interactive") { | 		if !cctx.Bool("interactive") { | ||||||
| 			fmt.Fprintf(printer, "Following checks have failed:\n") | 			_, _ = fmt.Fprintf(printer, "Following checks have failed:\n") | ||||||
| 			printChecks(printer, checks, proto.Message.Cid()) | 			printChecks(printer, checks, proto.Message.Cid()) | ||||||
| 		} else { | 		} else { | ||||||
| 			proto, err = resolveChecks(ctx, srv, cctx.App.Writer, proto, checks) | 			proto, err = resolveChecks(ctx, srv, cctx.App.Writer, proto, checks) | ||||||
| @ -75,11 +75,11 @@ func resolveChecks(ctx context.Context, s ServicesAPI, printer io.Writer, | |||||||
| 	proto *api.MessagePrototype, checkGroups [][]api.MessageCheckStatus, | 	proto *api.MessagePrototype, checkGroups [][]api.MessageCheckStatus, | ||||||
| ) (*api.MessagePrototype, error) { | ) (*api.MessagePrototype, error) { | ||||||
| 
 | 
 | ||||||
| 	fmt.Fprintf(printer, "Following checks have failed:\n") | 	_, _ = fmt.Fprintf(printer, "Following checks have failed:\n") | ||||||
| 	printChecks(printer, checkGroups, proto.Message.Cid()) | 	printChecks(printer, checkGroups, proto.Message.Cid()) | ||||||
| 
 | 
 | ||||||
| 	if feeCapBad, baseFee := isFeeCapProblem(checkGroups, proto.Message.Cid()); feeCapBad { | 	if feeCapBad, baseFee := isFeeCapProblem(checkGroups, proto.Message.Cid()); feeCapBad { | ||||||
| 		fmt.Fprintf(printer, "Fee of the message can be adjusted\n") | 		_, _ = fmt.Fprintf(printer, "Fee of the message can be adjusted\n") | ||||||
| 		if askUser(printer, "Do you wish to do that? [Yes/no]: ", true) { | 		if askUser(printer, "Do you wish to do that? [Yes/no]: ", true) { | ||||||
| 			var err error | 			var err error | ||||||
| 			proto, err = runFeeCapAdjustmentUI(proto, baseFee) | 			proto, err = runFeeCapAdjustmentUI(proto, baseFee) | ||||||
| @ -91,7 +91,7 @@ func resolveChecks(ctx context.Context, s ServicesAPI, printer io.Writer, | |||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			return nil, err | 			return nil, err | ||||||
| 		} | 		} | ||||||
| 		fmt.Fprintf(printer, "Following checks still failed:\n") | 		_, _ = fmt.Fprintf(printer, "Following checks still failed:\n") | ||||||
| 		printChecks(printer, checks, proto.Message.Cid()) | 		printChecks(printer, checks, proto.Message.Cid()) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| @ -114,14 +114,14 @@ func printChecks(printer io.Writer, checkGroups [][]api.MessageCheckStatus, prot | |||||||
| 			if !aboutProto { | 			if !aboutProto { | ||||||
| 				msgName = c.Cid.String() | 				msgName = c.Cid.String() | ||||||
| 			} | 			} | ||||||
| 			fmt.Fprintf(printer, "%s message failed a check %s: %s\n", msgName, c.Code, c.Err) | 			_, _ = fmt.Fprintf(printer, "%s message failed a check %s: %s\n", msgName, c.Code, c.Err) | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func askUser(printer io.Writer, q string, def bool) bool { | func askUser(printer io.Writer, q string, def bool) bool { | ||||||
| 	var resp string | 	var resp string | ||||||
| 	fmt.Fprint(printer, q) | 	_, _ = fmt.Fprint(printer, q) | ||||||
| 	_, _ = fmt.Scanln(&resp) | 	_, _ = fmt.Scanln(&resp) | ||||||
| 	resp = strings.ToLower(resp) | 	resp = strings.ToLower(resp) | ||||||
| 	if len(resp) == 0 { | 	if len(resp) == 0 { | ||||||
|  | |||||||
| @ -670,7 +670,7 @@ func ActorProposeChangeWorkerCmd(getActor ActorAddressGetter) *cli.Command { | |||||||
| 			} | 			} | ||||||
| 
 | 
 | ||||||
| 			if !cctx.Bool("really-do-it") { | 			if !cctx.Bool("really-do-it") { | ||||||
| 				fmt.Fprintln(cctx.App.Writer, "Pass --really-do-it to actually execute this action") | 				_, _ = fmt.Fprintln(cctx.App.Writer, "Pass --really-do-it to actually execute this action") | ||||||
| 				return nil | 				return nil | ||||||
| 			} | 			} | ||||||
| 
 | 
 | ||||||
| @ -695,7 +695,7 @@ func ActorProposeChangeWorkerCmd(getActor ActorAddressGetter) *cli.Command { | |||||||
| 				return xerrors.Errorf("mpool push: %w", err) | 				return xerrors.Errorf("mpool push: %w", err) | ||||||
| 			} | 			} | ||||||
| 
 | 
 | ||||||
| 			fmt.Fprintln(cctx.App.Writer, "Propose Message CID:", smsg.Cid()) | 			_, _ = fmt.Fprintln(cctx.App.Writer, "Propose Message CID:", smsg.Cid()) | ||||||
| 
 | 
 | ||||||
| 			// wait for it to get mined into a block
 | 			// wait for it to get mined into a block
 | ||||||
| 			wait, err := api.StateWaitMsg(ctx, smsg.Cid(), build.MessageConfidence) | 			wait, err := api.StateWaitMsg(ctx, smsg.Cid(), build.MessageConfidence) | ||||||
| @ -716,8 +716,8 @@ func ActorProposeChangeWorkerCmd(getActor ActorAddressGetter) *cli.Command { | |||||||
| 				return fmt.Errorf("Proposed worker address change not reflected on chain: expected '%s', found '%s'", na, mi.NewWorker) | 				return fmt.Errorf("Proposed worker address change not reflected on chain: expected '%s', found '%s'", na, mi.NewWorker) | ||||||
| 			} | 			} | ||||||
| 
 | 
 | ||||||
| 			fmt.Fprintf(cctx.App.Writer, "Worker key change to %s successfully sent, change happens at height %d.\n", na, mi.WorkerChangeEpoch) | 			_, _ = fmt.Fprintf(cctx.App.Writer, "Worker key change to %s successfully sent, change happens at height %d.\n", na, mi.WorkerChangeEpoch) | ||||||
| 			fmt.Fprintf(cctx.App.Writer, "If you have no active deadlines, call 'confirm-change-worker' at or after height %d to complete.\n", mi.WorkerChangeEpoch) | 			_, _ = fmt.Fprintf(cctx.App.Writer, "If you have no active deadlines, call 'confirm-change-worker' at or after height %d to complete.\n", mi.WorkerChangeEpoch) | ||||||
| 
 | 
 | ||||||
| 			return nil | 			return nil | ||||||
| 		}, | 		}, | ||||||
| @ -942,7 +942,7 @@ func ActorConfirmChangeWorkerCmd(getActor ActorAddressGetter) *cli.Command { | |||||||
| 
 | 
 | ||||||
| 			// check it executed successfully
 | 			// check it executed successfully
 | ||||||
| 			if wait.Receipt.ExitCode.IsError() { | 			if wait.Receipt.ExitCode.IsError() { | ||||||
| 				fmt.Fprintln(cctx.App.Writer, "Worker change failed!") | 				_, _ = fmt.Fprintln(cctx.App.Writer, "Worker change failed!") | ||||||
| 				return err | 				return err | ||||||
| 			} | 			} | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -304,9 +304,9 @@ func (c *CMD) Stop() { | |||||||
| 
 | 
 | ||||||
| func (c *CMD) Report() { | func (c *CMD) Report() { | ||||||
| 	total := time.Since(c.start) | 	total := time.Since(c.start) | ||||||
| 	fmt.Fprintf(c.w, "[%s]:\n", c.cmd) | 	fmt.Fprintf(c.w, "[%s]:\n", c.cmd)                       //nolint:errcheck
 | ||||||
| 	fmt.Fprintf(c.w, "- Options:\n") | 	fmt.Fprintf(c.w, "- Options:\n")                         //nolint:errcheck
 | ||||||
| 	fmt.Fprintf(c.w, "  - concurrency: %d\n", c.concurrency) | 	fmt.Fprintf(c.w, "  - concurrency: %d\n", c.concurrency) //nolint:errcheck
 | ||||||
| 	fmt.Fprintf(c.w, "  - qps: %d\n", c.qps) | 	fmt.Fprintf(c.w, "  - qps: %d\n", c.qps)                 //nolint:errcheck
 | ||||||
| 	c.reporter.Print(total, c.w) | 	c.reporter.Print(total, c.w) | ||||||
| } | } | ||||||
|  | |||||||
| @ -93,16 +93,16 @@ func (r *Reporter) Print(elapsed time.Duration, w io.Writer) { | |||||||
| 		totalLatency += latency | 		totalLatency += latency | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	fmt.Fprintf(w, "- Total Requests: %d\n", nrReq) | 	fmt.Fprintf(w, "- Total Requests: %d\n", nrReq)                          //nolint:errcheck
 | ||||||
| 	fmt.Fprintf(w, "- Total Duration: %dms\n", elapsed.Milliseconds()) | 	fmt.Fprintf(w, "- Total Duration: %dms\n", elapsed.Milliseconds())       //nolint:errcheck
 | ||||||
| 	fmt.Fprintf(w, "- Requests/sec: %f\n", float64(nrReq)/elapsed.Seconds()) | 	fmt.Fprintf(w, "- Requests/sec: %f\n", float64(nrReq)/elapsed.Seconds()) //nolint:errcheck
 | ||||||
| 	fmt.Fprintf(w, "- Avg latency: %dms\n", totalLatency/nrReq) | 	fmt.Fprintf(w, "- Avg latency: %dms\n", totalLatency/nrReq)              //nolint:errcheck
 | ||||||
| 	fmt.Fprintf(w, "- Median latency: %dms\n", r.latencies[nrReq/2]) | 	fmt.Fprintf(w, "- Median latency: %dms\n", r.latencies[nrReq/2])         //nolint:errcheck
 | ||||||
| 	fmt.Fprintf(w, "- Latency distribution:\n") | 	fmt.Fprintf(w, "- Latency distribution:\n")                              //nolint:errcheck
 | ||||||
| 	percentiles := []float64{0.1, 0.5, 0.9, 0.95, 0.99, 0.999} | 	percentiles := []float64{0.1, 0.5, 0.9, 0.95, 0.99, 0.999} | ||||||
| 	for _, p := range percentiles { | 	for _, p := range percentiles { | ||||||
| 		idx := int64(p * float64(nrReq)) | 		idx := int64(p * float64(nrReq)) | ||||||
| 		fmt.Fprintf(w, "    %s%% in %dms\n", fmt.Sprintf("%.2f", p*100.0), r.latencies[idx]) | 		_, _ = fmt.Fprintf(w, "    %s%% in %dms\n", fmt.Sprintf("%.2f", p*100.0), r.latencies[idx]) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	// create a simple histogram with 10 buckets spanning the range of latency
 | 	// create a simple histogram with 10 buckets spanning the range of latency
 | ||||||
| @ -135,19 +135,19 @@ func (r *Reporter) Print(elapsed time.Duration, w io.Writer) { | |||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	// print the histogram using a tabwriter which will align the columns nicely
 | 	// print the histogram using a tabwriter which will align the columns nicely
 | ||||||
| 	fmt.Fprintf(w, "- Histogram:\n") | 	_, _ = fmt.Fprintf(w, "- Histogram:\n") | ||||||
| 	const padding = 2 | 	const padding = 2 | ||||||
| 	tabWriter := tabwriter.NewWriter(w, 0, 0, padding, ' ', tabwriter.AlignRight|tabwriter.Debug) | 	tabWriter := tabwriter.NewWriter(w, 0, 0, padding, ' ', tabwriter.AlignRight|tabwriter.Debug) | ||||||
| 	for i := 0; i < nrBucket; i++ { | 	for i := 0; i < nrBucket; i++ { | ||||||
| 		ratio := float64(buckets[i].cnt) / float64(nrReq) | 		ratio := float64(buckets[i].cnt) / float64(nrReq) | ||||||
| 		bars := strings.Repeat("#", int(ratio*100)) | 		bars := strings.Repeat("#", int(ratio*100)) | ||||||
| 		fmt.Fprintf(tabWriter, "  %d-%dms\t%d\t%s (%s%%)\n", buckets[i].start, buckets[i].end, buckets[i].cnt, bars, fmt.Sprintf("%.2f", ratio*100)) | 		_, _ = fmt.Fprintf(tabWriter, "  %d-%dms\t%d\t%s (%s%%)\n", buckets[i].start, buckets[i].end, buckets[i].cnt, bars, fmt.Sprintf("%.2f", ratio*100)) | ||||||
| 	} | 	} | ||||||
| 	tabWriter.Flush() //nolint:errcheck
 | 	tabWriter.Flush() //nolint:errcheck
 | ||||||
| 
 | 
 | ||||||
| 	fmt.Fprintf(w, "- Status codes:\n") | 	_, _ = fmt.Fprintf(w, "- Status codes:\n") | ||||||
| 	for code, cnt := range r.statusCodes { | 	for code, cnt := range r.statusCodes { | ||||||
| 		fmt.Fprintf(w, "    [%d]: %d\n", code, cnt) | 		_, _ = fmt.Fprintf(w, "    [%d]: %d\n", code, cnt) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	// print the 10 most occurring errors (in case error values are not unique)
 | 	// print the 10 most occurring errors (in case error values are not unique)
 | ||||||
| @ -163,12 +163,12 @@ func (r *Reporter) Print(elapsed time.Duration, w io.Writer) { | |||||||
| 	sort.Slice(sortedErrors, func(i, j int) bool { | 	sort.Slice(sortedErrors, func(i, j int) bool { | ||||||
| 		return sortedErrors[i].cnt > sortedErrors[j].cnt | 		return sortedErrors[i].cnt > sortedErrors[j].cnt | ||||||
| 	}) | 	}) | ||||||
| 	fmt.Fprintf(w, "- Errors (top 10):\n") | 	_, _ = fmt.Fprintf(w, "- Errors (top 10):\n") | ||||||
| 	for i, se := range sortedErrors { | 	for i, se := range sortedErrors { | ||||||
| 		if i > 10 { | 		if i > 10 { | ||||||
| 			break | 			break | ||||||
| 		} | 		} | ||||||
| 		fmt.Fprintf(w, "    [%s]: %d\n", se.err, se.cnt) | 		_, _ = fmt.Fprintf(w, "    [%s]: %d\n", se.err, se.cnt) | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -395,10 +395,10 @@ func (rpc *RPCMethod) Stop() { | |||||||
| 
 | 
 | ||||||
| func (rpc *RPCMethod) Report() { | func (rpc *RPCMethod) Report() { | ||||||
| 	total := time.Since(rpc.start) | 	total := time.Since(rpc.start) | ||||||
| 	fmt.Fprintf(rpc.w, "[%s]:\n", rpc.method) | 	fmt.Fprintf(rpc.w, "[%s]:\n", rpc.method)                    //nolint:errcheck
 | ||||||
| 	fmt.Fprintf(rpc.w, "- Options:\n") | 	fmt.Fprintf(rpc.w, "- Options:\n")                           //nolint:errcheck
 | ||||||
| 	fmt.Fprintf(rpc.w, "  - concurrency: %d\n", rpc.concurrency) | 	fmt.Fprintf(rpc.w, "  - concurrency: %d\n", rpc.concurrency) //nolint:errcheck
 | ||||||
| 	fmt.Fprintf(rpc.w, "  - params: %s\n", rpc.params) | 	fmt.Fprintf(rpc.w, "  - params: %s\n", rpc.params)           //nolint:errcheck
 | ||||||
| 	fmt.Fprintf(rpc.w, "  - qps: %d\n", rpc.qps) | 	fmt.Fprintf(rpc.w, "  - qps: %d\n", rpc.qps)                 //nolint:errcheck
 | ||||||
| 	rpc.reporter.Print(total, rpc.w) | 	rpc.reporter.Print(total, rpc.w) | ||||||
| } | } | ||||||
|  | |||||||
| @ -719,12 +719,12 @@ var actorControlSet = &cli.Command{ | |||||||
| 				return err | 				return err | ||||||
| 			} | 			} | ||||||
| 
 | 
 | ||||||
| 			fmt.Fprintln(cctx.App.Writer, hex.EncodeToString(msgBytes)) | 			_, _ = fmt.Fprintln(cctx.App.Writer, hex.EncodeToString(msgBytes)) | ||||||
| 			return nil | 			return nil | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		if !cctx.Bool("really-do-it") { | 		if !cctx.Bool("really-do-it") { | ||||||
| 			fmt.Fprintln(cctx.App.Writer, "Pass --really-do-it to actually execute this action") | 			_, _ = fmt.Fprintln(cctx.App.Writer, "Pass --really-do-it to actually execute this action") | ||||||
| 			return nil | 			return nil | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| @ -760,7 +760,7 @@ var actorProposeChangeWorker = &cli.Command{ | |||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		if !cctx.Bool("really-do-it") { | 		if !cctx.Bool("really-do-it") { | ||||||
| 			fmt.Fprintln(cctx.App.Writer, "Pass --really-do-it to actually execute this action") | 			_, _ = fmt.Fprintln(cctx.App.Writer, "Pass --really-do-it to actually execute this action") | ||||||
| 			return nil | 			return nil | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| @ -840,7 +840,7 @@ var actorProposeChangeWorker = &cli.Command{ | |||||||
| 			return xerrors.Errorf("mpool push: %w", err) | 			return xerrors.Errorf("mpool push: %w", err) | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		fmt.Fprintln(cctx.App.Writer, "Propose Message CID:", smsg.Cid()) | 		_, _ = fmt.Fprintln(cctx.App.Writer, "Propose Message CID:", smsg.Cid()) | ||||||
| 
 | 
 | ||||||
| 		// wait for it to get mined into a block
 | 		// wait for it to get mined into a block
 | ||||||
| 		wait, err := nodeAPI.StateWaitMsg(ctx, smsg.Cid(), build.MessageConfidence) | 		wait, err := nodeAPI.StateWaitMsg(ctx, smsg.Cid(), build.MessageConfidence) | ||||||
| @ -850,7 +850,7 @@ var actorProposeChangeWorker = &cli.Command{ | |||||||
| 
 | 
 | ||||||
| 		// check it executed successfully
 | 		// check it executed successfully
 | ||||||
| 		if wait.Receipt.ExitCode.IsError() { | 		if wait.Receipt.ExitCode.IsError() { | ||||||
| 			fmt.Fprintln(cctx.App.Writer, "Propose worker change failed!") | 			_, _ = fmt.Fprintln(cctx.App.Writer, "Propose worker change failed!") | ||||||
| 			return err | 			return err | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| @ -862,8 +862,8 @@ var actorProposeChangeWorker = &cli.Command{ | |||||||
| 			return fmt.Errorf("Proposed worker address change not reflected on chain: expected '%s', found '%s'", na, mi.NewWorker) | 			return fmt.Errorf("Proposed worker address change not reflected on chain: expected '%s', found '%s'", na, mi.NewWorker) | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		fmt.Fprintf(cctx.App.Writer, "Worker key change to %s successfully proposed.\n", na) | 		_, _ = fmt.Fprintf(cctx.App.Writer, "Worker key change to %s successfully proposed.\n", na) | ||||||
| 		fmt.Fprintf(cctx.App.Writer, "Call 'confirm-change-worker' at or after height %d to complete.\n", mi.WorkerChangeEpoch) | 		_, _ = fmt.Fprintf(cctx.App.Writer, "Call 'confirm-change-worker' at or after height %d to complete.\n", mi.WorkerChangeEpoch) | ||||||
| 
 | 
 | ||||||
| 		return nil | 		return nil | ||||||
| 	}, | 	}, | ||||||
| @ -890,7 +890,7 @@ var actorConfirmChangeWorker = &cli.Command{ | |||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		if !cctx.Bool("really-do-it") { | 		if !cctx.Bool("really-do-it") { | ||||||
| 			fmt.Fprintln(cctx.App.Writer, "Pass --really-do-it to actually execute this action") | 			_, _ = fmt.Fprintln(cctx.App.Writer, "Pass --really-do-it to actually execute this action") | ||||||
| 			return nil | 			return nil | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| @ -961,7 +961,7 @@ var actorConfirmChangeWorker = &cli.Command{ | |||||||
| 			return xerrors.Errorf("mpool push: %w", err) | 			return xerrors.Errorf("mpool push: %w", err) | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		fmt.Fprintln(cctx.App.Writer, "Confirm Message CID:", smsg.Cid()) | 		_, _ = fmt.Fprintln(cctx.App.Writer, "Confirm Message CID:", smsg.Cid()) | ||||||
| 
 | 
 | ||||||
| 		// wait for it to get mined into a block
 | 		// wait for it to get mined into a block
 | ||||||
| 		wait, err := nodeAPI.StateWaitMsg(ctx, smsg.Cid(), build.MessageConfidence) | 		wait, err := nodeAPI.StateWaitMsg(ctx, smsg.Cid(), build.MessageConfidence) | ||||||
| @ -971,7 +971,7 @@ var actorConfirmChangeWorker = &cli.Command{ | |||||||
| 
 | 
 | ||||||
| 		// check it executed successfully
 | 		// check it executed successfully
 | ||||||
| 		if wait.Receipt.ExitCode.IsError() { | 		if wait.Receipt.ExitCode.IsError() { | ||||||
| 			fmt.Fprintln(cctx.App.Writer, "Worker change failed!") | 			_, _ = fmt.Fprintln(cctx.App.Writer, "Worker change failed!") | ||||||
| 			return err | 			return err | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -93,7 +93,7 @@ var mmProposeWithdrawBalance = &cli.Command{ | |||||||
| 			return xerrors.Errorf("proposing message: %w", err) | 			return xerrors.Errorf("proposing message: %w", err) | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		fmt.Fprintln(cctx.App.Writer, "Propose Message CID:", pcid) | 		_, _ = fmt.Fprintln(cctx.App.Writer, "Propose Message CID:", pcid) | ||||||
| 
 | 
 | ||||||
| 		// wait for it to get mined into a block
 | 		// wait for it to get mined into a block
 | ||||||
| 		wait, err := api.StateWaitMsg(ctx, pcid, build.MessageConfidence) | 		wait, err := api.StateWaitMsg(ctx, pcid, build.MessageConfidence) | ||||||
| @ -103,7 +103,7 @@ var mmProposeWithdrawBalance = &cli.Command{ | |||||||
| 
 | 
 | ||||||
| 		// check it executed successfully
 | 		// check it executed successfully
 | ||||||
| 		if wait.Receipt.ExitCode.IsError() { | 		if wait.Receipt.ExitCode.IsError() { | ||||||
| 			fmt.Fprintln(cctx.App.Writer, "Propose owner change tx failed!") | 			_, _ = fmt.Fprintln(cctx.App.Writer, "Propose owner change tx failed!") | ||||||
| 			return err | 			return err | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| @ -172,7 +172,7 @@ var mmApproveWithdrawBalance = &cli.Command{ | |||||||
| 			return xerrors.Errorf("approving message: %w", err) | 			return xerrors.Errorf("approving message: %w", err) | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		fmt.Fprintln(cctx.App.Writer, "Approve Message CID:", acid) | 		_, _ = fmt.Fprintln(cctx.App.Writer, "Approve Message CID:", acid) | ||||||
| 
 | 
 | ||||||
| 		// wait for it to get mined into a block
 | 		// wait for it to get mined into a block
 | ||||||
| 		wait, err := api.StateWaitMsg(ctx, acid, build.MessageConfidence) | 		wait, err := api.StateWaitMsg(ctx, acid, build.MessageConfidence) | ||||||
| @ -182,7 +182,7 @@ var mmApproveWithdrawBalance = &cli.Command{ | |||||||
| 
 | 
 | ||||||
| 		// check it executed successfully
 | 		// check it executed successfully
 | ||||||
| 		if wait.Receipt.ExitCode.IsError() { | 		if wait.Receipt.ExitCode.IsError() { | ||||||
| 			fmt.Fprintln(cctx.App.Writer, "Approve owner change tx failed!") | 			_, _ = fmt.Fprintln(cctx.App.Writer, "Approve owner change tx failed!") | ||||||
| 			return err | 			return err | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| @ -253,7 +253,7 @@ var mmProposeChangeOwner = &cli.Command{ | |||||||
| 			return xerrors.Errorf("proposing message: %w", err) | 			return xerrors.Errorf("proposing message: %w", err) | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		fmt.Fprintln(cctx.App.Writer, "Propose Message CID:", pcid) | 		_, _ = fmt.Fprintln(cctx.App.Writer, "Propose Message CID:", pcid) | ||||||
| 
 | 
 | ||||||
| 		// wait for it to get mined into a block
 | 		// wait for it to get mined into a block
 | ||||||
| 		wait, err := api.StateWaitMsg(ctx, pcid, build.MessageConfidence) | 		wait, err := api.StateWaitMsg(ctx, pcid, build.MessageConfidence) | ||||||
| @ -263,7 +263,7 @@ var mmProposeChangeOwner = &cli.Command{ | |||||||
| 
 | 
 | ||||||
| 		// check it executed successfully
 | 		// check it executed successfully
 | ||||||
| 		if wait.Receipt.ExitCode.IsError() { | 		if wait.Receipt.ExitCode.IsError() { | ||||||
| 			fmt.Fprintln(cctx.App.Writer, "Propose owner change tx failed!") | 			_, _ = fmt.Fprintln(cctx.App.Writer, "Propose owner change tx failed!") | ||||||
| 			return err | 			return err | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| @ -343,7 +343,7 @@ var mmApproveChangeOwner = &cli.Command{ | |||||||
| 			return xerrors.Errorf("approving message: %w", err) | 			return xerrors.Errorf("approving message: %w", err) | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		fmt.Fprintln(cctx.App.Writer, "Approve Message CID:", acid) | 		_, _ = fmt.Fprintln(cctx.App.Writer, "Approve Message CID:", acid) | ||||||
| 
 | 
 | ||||||
| 		// wait for it to get mined into a block
 | 		// wait for it to get mined into a block
 | ||||||
| 		wait, err := api.StateWaitMsg(ctx, acid, build.MessageConfidence) | 		wait, err := api.StateWaitMsg(ctx, acid, build.MessageConfidence) | ||||||
| @ -353,7 +353,7 @@ var mmApproveChangeOwner = &cli.Command{ | |||||||
| 
 | 
 | ||||||
| 		// check it executed successfully
 | 		// check it executed successfully
 | ||||||
| 		if wait.Receipt.ExitCode.IsError() { | 		if wait.Receipt.ExitCode.IsError() { | ||||||
| 			fmt.Fprintln(cctx.App.Writer, "Approve owner change tx failed!") | 			_, _ = fmt.Fprintln(cctx.App.Writer, "Approve owner change tx failed!") | ||||||
| 			return err | 			return err | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| @ -416,8 +416,8 @@ var mmProposeChangeWorker = &cli.Command{ | |||||||
| 			} | 			} | ||||||
| 		} else { | 		} else { | ||||||
| 			if mi.NewWorker == newAddr { | 			if mi.NewWorker == newAddr { | ||||||
| 				fmt.Fprintf(cctx.App.Writer, "Worker key change to %s successfully proposed.\n", na) | 				_, _ = fmt.Fprintf(cctx.App.Writer, "Worker key change to %s successfully proposed.\n", na) | ||||||
| 				fmt.Fprintf(cctx.App.Writer, "Call 'confirm-change-worker' at or after height %d to complete.\n", mi.WorkerChangeEpoch) | 				_, _ = fmt.Fprintf(cctx.App.Writer, "Call 'confirm-change-worker' at or after height %d to complete.\n", mi.WorkerChangeEpoch) | ||||||
| 				return fmt.Errorf("change to worker address %s already pending", na) | 				return fmt.Errorf("change to worker address %s already pending", na) | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
| @ -427,8 +427,8 @@ var mmProposeChangeWorker = &cli.Command{ | |||||||
| 			NewControlAddrs: mi.ControlAddresses, | 			NewControlAddrs: mi.ControlAddresses, | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		fmt.Fprintf(cctx.App.Writer, "newAddr: %s\n", newAddr) | 		_, _ = fmt.Fprintf(cctx.App.Writer, "newAddr: %s\n", newAddr) | ||||||
| 		fmt.Fprintf(cctx.App.Writer, "NewControlAddrs: %s\n", mi.ControlAddresses) | 		_, _ = fmt.Fprintf(cctx.App.Writer, "NewControlAddrs: %s\n", mi.ControlAddresses) | ||||||
| 
 | 
 | ||||||
| 		sp, err := actors.SerializeParams(cwp) | 		sp, err := actors.SerializeParams(cwp) | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| @ -440,7 +440,7 @@ var mmProposeChangeWorker = &cli.Command{ | |||||||
| 			return xerrors.Errorf("proposing message: %w", err) | 			return xerrors.Errorf("proposing message: %w", err) | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		fmt.Fprintln(cctx.App.Writer, "Propose Message CID:", pcid) | 		_, _ = fmt.Fprintln(cctx.App.Writer, "Propose Message CID:", pcid) | ||||||
| 
 | 
 | ||||||
| 		// wait for it to get mined into a block
 | 		// wait for it to get mined into a block
 | ||||||
| 		wait, err := api.StateWaitMsg(ctx, pcid, build.MessageConfidence) | 		wait, err := api.StateWaitMsg(ctx, pcid, build.MessageConfidence) | ||||||
| @ -450,7 +450,7 @@ var mmProposeChangeWorker = &cli.Command{ | |||||||
| 
 | 
 | ||||||
| 		// check it executed successfully
 | 		// check it executed successfully
 | ||||||
| 		if wait.Receipt.ExitCode.IsError() { | 		if wait.Receipt.ExitCode.IsError() { | ||||||
| 			fmt.Fprintln(cctx.App.Writer, "Propose worker change tx failed!") | 			_, _ = fmt.Fprintln(cctx.App.Writer, "Propose worker change tx failed!") | ||||||
| 			return err | 			return err | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| @ -632,7 +632,7 @@ var mmConfirmChangeWorker = &cli.Command{ | |||||||
| 			return xerrors.Errorf("proposing message: %w", err) | 			return xerrors.Errorf("proposing message: %w", err) | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		fmt.Fprintln(cctx.App.Writer, "Propose Message CID:", pcid) | 		_, _ = fmt.Fprintln(cctx.App.Writer, "Propose Message CID:", pcid) | ||||||
| 
 | 
 | ||||||
| 		// wait for it to get mined into a block
 | 		// wait for it to get mined into a block
 | ||||||
| 		wait, err := api.StateWaitMsg(ctx, pcid, build.MessageConfidence) | 		wait, err := api.StateWaitMsg(ctx, pcid, build.MessageConfidence) | ||||||
| @ -642,7 +642,7 @@ var mmConfirmChangeWorker = &cli.Command{ | |||||||
| 
 | 
 | ||||||
| 		// check it executed successfully
 | 		// check it executed successfully
 | ||||||
| 		if wait.Receipt.ExitCode.IsError() { | 		if wait.Receipt.ExitCode.IsError() { | ||||||
| 			fmt.Fprintln(cctx.App.Writer, "Propose worker change tx failed!") | 			_, _ = fmt.Fprintln(cctx.App.Writer, "Propose worker change tx failed!") | ||||||
| 			return err | 			return err | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| @ -839,7 +839,7 @@ var mmProposeControlSet = &cli.Command{ | |||||||
| 			return xerrors.Errorf("proposing message: %w", err) | 			return xerrors.Errorf("proposing message: %w", err) | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		fmt.Fprintln(cctx.App.Writer, "Propose Message CID:", pcid) | 		_, _ = fmt.Fprintln(cctx.App.Writer, "Propose Message CID:", pcid) | ||||||
| 
 | 
 | ||||||
| 		// wait for it to get mined into a block
 | 		// wait for it to get mined into a block
 | ||||||
| 		wait, err := api.StateWaitMsg(ctx, pcid, build.MessageConfidence) | 		wait, err := api.StateWaitMsg(ctx, pcid, build.MessageConfidence) | ||||||
| @ -849,7 +849,7 @@ var mmProposeControlSet = &cli.Command{ | |||||||
| 
 | 
 | ||||||
| 		// check it executed successfully
 | 		// check it executed successfully
 | ||||||
| 		if wait.Receipt.ExitCode.IsError() { | 		if wait.Receipt.ExitCode.IsError() { | ||||||
| 			fmt.Fprintln(cctx.App.Writer, "Propose worker change tx failed!") | 			_, _ = fmt.Fprintln(cctx.App.Writer, "Propose worker change tx failed!") | ||||||
| 			return err | 			return err | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -66,17 +66,17 @@ func printInfo(ctx context.Context, sim *simulation.Simulation, out io.Writer) e | |||||||
| 	startTime := time.Unix(int64(start.MinTimestamp()), 0) | 	startTime := time.Unix(int64(start.MinTimestamp()), 0) | ||||||
| 	duration := headTime.Sub(startTime) | 	duration := headTime.Sub(startTime) | ||||||
| 
 | 
 | ||||||
| 	fmt.Fprintf(tw, "Num:\t%s\n", sim.Name()) | 	fmt.Fprintf(tw, "Num:\t%s\n", sim.Name())                                      //nolint:errcheck
 | ||||||
| 	fmt.Fprintf(tw, "Head:\t%s\n", head) | 	fmt.Fprintf(tw, "Head:\t%s\n", head)                                           //nolint:errcheck
 | ||||||
| 	fmt.Fprintf(tw, "Start Epoch:\t%d\n", firstEpoch) | 	fmt.Fprintf(tw, "Start Epoch:\t%d\n", firstEpoch)                              //nolint:errcheck
 | ||||||
| 	fmt.Fprintf(tw, "End Epoch:\t%d\n", headEpoch) | 	fmt.Fprintf(tw, "End Epoch:\t%d\n", headEpoch)                                 //nolint:errcheck
 | ||||||
| 	fmt.Fprintf(tw, "Length:\t%d\n", headEpoch-firstEpoch) | 	fmt.Fprintf(tw, "Length:\t%d\n", headEpoch-firstEpoch)                         //nolint:errcheck
 | ||||||
| 	fmt.Fprintf(tw, "Start Date:\t%s\n", startTime) | 	fmt.Fprintf(tw, "Start Date:\t%s\n", startTime)                                //nolint:errcheck
 | ||||||
| 	fmt.Fprintf(tw, "End Date:\t%s\n", headTime) | 	fmt.Fprintf(tw, "End Date:\t%s\n", headTime)                                   //nolint:errcheck
 | ||||||
| 	fmt.Fprintf(tw, "Duration:\t%.2f day(s)\n", duration.Hours()/24) | 	fmt.Fprintf(tw, "Duration:\t%.2f day(s)\n", duration.Hours()/24)               //nolint:errcheck
 | ||||||
| 	fmt.Fprintf(tw, "Capacity:\t%s\n", types.SizeStr(powerNow.RawBytePower)) | 	fmt.Fprintf(tw, "Capacity:\t%s\n", types.SizeStr(powerNow.RawBytePower))       //nolint:errcheck
 | ||||||
| 	fmt.Fprintf(tw, "Daily Capacity Growth:\t%s/day\n", types.SizeStr(growthRate)) | 	fmt.Fprintf(tw, "Daily Capacity Growth:\t%s/day\n", types.SizeStr(growthRate)) //nolint:errcheck
 | ||||||
| 	fmt.Fprintf(tw, "Network Version:\t%d\n", sim.GetNetworkVersion()) | 	fmt.Fprintf(tw, "Network Version:\t%d\n", sim.GetNetworkVersion())             //nolint:errcheck
 | ||||||
| 	return tw.Flush() | 	return tw.Flush() | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -60,7 +60,7 @@ var infoCapacityGrowthSimCommand = &cli.Command{ | |||||||
| 			) | 			) | ||||||
| 			lastPower = newPower | 			lastPower = newPower | ||||||
| 			lastHeight = newEpoch | 			lastHeight = newEpoch | ||||||
| 			fmt.Fprintf(cctx.App.Writer, "%s/day\n", types.SizeStr(growthRate)) | 			_, _ = fmt.Fprintf(cctx.App.Writer, "%s/day\n", types.SizeStr(growthRate)) | ||||||
| 		} | 		} | ||||||
| 		return cctx.Err() | 		return cctx.Err() | ||||||
| 	}, | 	}, | ||||||
|  | |||||||
| @ -128,7 +128,7 @@ var infoStateGrowthSimCommand = &cli.Command{ | |||||||
| 					return err | 					return err | ||||||
| 				} | 				} | ||||||
| 
 | 
 | ||||||
| 				fmt.Fprintf(cctx.App.Writer, "%d: %s\n", ts.Height(), types.SizeStr(types.NewInt(parentStateSize))) | 				_, _ = fmt.Fprintf(cctx.App.Writer, "%d: %s\n", ts.Height(), types.SizeStr(types.NewInt(parentStateSize))) | ||||||
| 			} | 			} | ||||||
| 
 | 
 | ||||||
| 			ts, err = sim.Node.Chainstore.LoadTipSet(cctx.Context, ts.Parents()) | 			ts, err = sim.Node.Chainstore.LoadTipSet(cctx.Context, ts.Parents()) | ||||||
|  | |||||||
| @ -35,7 +35,7 @@ var infoWindowPostBandwidthSimCommand = &cli.Command{ | |||||||
| 
 | 
 | ||||||
| 		var postGas, totalGas int64 | 		var postGas, totalGas int64 | ||||||
| 		printStats := func() { | 		printStats := func() { | ||||||
| 			fmt.Fprintf(cctx.App.Writer, "%.4f%%\n", float64(100*postGas)/float64(totalGas)) | 			_, _ = fmt.Fprintf(cctx.App.Writer, "%.4f%%\n", float64(100*postGas)/float64(totalGas)) | ||||||
| 		} | 		} | ||||||
| 		idx := 0 | 		idx := 0 | ||||||
| 		err = sim.Walk(cctx.Context, 0, func( | 		err = sim.Walk(cctx.Context, 0, func( | ||||||
|  | |||||||
| @ -31,7 +31,7 @@ var listSimCommand = &cli.Command{ | |||||||
| 				return err | 				return err | ||||||
| 			} | 			} | ||||||
| 			head := sim.GetHead() | 			head := sim.GetHead() | ||||||
| 			fmt.Fprintf(tw, "%s\t%s\t%s\n", name, head.Height(), head.Key()) | 			_, _ = fmt.Fprintf(tw, "%s\t%s\t%s\n", name, head.Height(), head.Key()) | ||||||
| 		} | 		} | ||||||
| 		return tw.Flush() | 		return tw.Flush() | ||||||
| 	}, | 	}, | ||||||
|  | |||||||
| @ -83,9 +83,9 @@ func profileOnSignal(cctx *cli.Context, signals ...os.Signal) { | |||||||
| 			case context.Canceled: | 			case context.Canceled: | ||||||
| 				return | 				return | ||||||
| 			case nil: | 			case nil: | ||||||
| 				fmt.Fprintf(cctx.App.ErrWriter, "Wrote profile to %q\n", fname) | 				_, _ = fmt.Fprintf(cctx.App.ErrWriter, "Wrote profile to %q\n", fname) | ||||||
| 			default: | 			default: | ||||||
| 				fmt.Fprintf(cctx.App.ErrWriter, "ERROR: failed to write profile: %s\n", err) | 				_, _ = fmt.Fprintf(cctx.App.ErrWriter, "ERROR: failed to write profile: %s\n", err) | ||||||
| 			} | 			} | ||||||
| 		case <-cctx.Done(): | 		case <-cctx.Done(): | ||||||
| 			return | 			return | ||||||
|  | |||||||
| @ -51,22 +51,22 @@ Signals: | |||||||
| 				return err | 				return err | ||||||
| 			} | 			} | ||||||
| 
 | 
 | ||||||
| 			fmt.Fprintf(cctx.App.Writer, "advanced to %d %s\n", ts.Height(), ts.Key()) | 			_, _ = fmt.Fprintf(cctx.App.Writer, "advanced to %d %s\n", ts.Height(), ts.Key()) | ||||||
| 
 | 
 | ||||||
| 			// Print
 | 			// Print
 | ||||||
| 			select { | 			select { | ||||||
| 			case <-ch: | 			case <-ch: | ||||||
| 				fmt.Fprintln(cctx.App.Writer, "---------------------") | 				_, _ = fmt.Fprintln(cctx.App.Writer, "---------------------") | ||||||
| 				if err := printInfo(cctx.Context, sim, cctx.App.Writer); err != nil { | 				if err := printInfo(cctx.Context, sim, cctx.App.Writer); err != nil { | ||||||
| 					fmt.Fprintf(cctx.App.ErrWriter, "ERROR: failed to print info: %s\n", err) | 					_, _ = fmt.Fprintf(cctx.App.ErrWriter, "ERROR: failed to print info: %s\n", err) | ||||||
| 				} | 				} | ||||||
| 				fmt.Fprintln(cctx.App.Writer, "---------------------") | 				_, _ = fmt.Fprintln(cctx.App.Writer, "---------------------") | ||||||
| 			case <-cctx.Context.Done(): | 			case <-cctx.Context.Done(): | ||||||
| 				return cctx.Err() | 				return cctx.Err() | ||||||
| 			default: | 			default: | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
| 		fmt.Fprintln(cctx.App.Writer, "simulation done") | 		_, _ = fmt.Fprintln(cctx.App.Writer, "simulation done") | ||||||
| 		return err | 		return err | ||||||
| 	}, | 	}, | ||||||
| } | } | ||||||
|  | |||||||
| @ -48,10 +48,10 @@ var upgradeList = &cli.Command{ | |||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		tw := tabwriter.NewWriter(cctx.App.Writer, 8, 8, 0, ' ', 0) | 		tw := tabwriter.NewWriter(cctx.App.Writer, 8, 8, 0, ' ', 0) | ||||||
| 		fmt.Fprintf(tw, "version\theight\tepochs\tmigration\texpensive") | 		_, _ = fmt.Fprintf(tw, "version\theight\tepochs\tmigration\texpensive") | ||||||
| 		epoch := sim.GetHead().Height() | 		epoch := sim.GetHead().Height() | ||||||
| 		for _, upgrade := range upgrades { | 		for _, upgrade := range upgrades { | ||||||
| 			fmt.Fprintf( | 			_, _ = fmt.Fprintf( | ||||||
| 				tw, "%d\t%d\t%+d\t%t\t%t", | 				tw, "%d\t%d\t%+d\t%t\t%t", | ||||||
| 				upgrade.Network, upgrade.Height, upgrade.Height-epoch, | 				upgrade.Network, upgrade.Height, upgrade.Height-epoch, | ||||||
| 				upgrade.Migration != nil, | 				upgrade.Migration != nil, | ||||||
|  | |||||||
| @ -10,9 +10,8 @@ import ( | |||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| func open(cctx *cli.Context) (*simulation.Node, error) { | func open(cctx *cli.Context) (*simulation.Node, error) { | ||||||
| 	_, _, err := ulimit.ManageFdLimit() | 	if _, _, err := ulimit.ManageFdLimit(); err != nil { | ||||||
| 	if err != nil { | 		_, _ = fmt.Fprintf(cctx.App.ErrWriter, "ERROR: failed to raise ulimit: %s\n", err) | ||||||
| 		fmt.Fprintf(cctx.App.ErrWriter, "ERROR: failed to raise ulimit: %s\n", err) |  | ||||||
| 	} | 	} | ||||||
| 	return simulation.OpenNode(cctx.Context, cctx.String("repo")) | 	return simulation.OpenNode(cctx.Context, cctx.String("repo")) | ||||||
| } | } | ||||||
|  | |||||||
| @ -81,7 +81,7 @@ func FromReader(reader io.Reader, def interface{}, opts ...LoadCfgOpt) (interfac | |||||||
| 	} | 	} | ||||||
| 	for _, d := range movedFields { | 	for _, d := range movedFields { | ||||||
| 		if md.IsDefined(d.Field...) { | 		if md.IsDefined(d.Field...) { | ||||||
| 			fmt.Fprintf( | 			_, _ = fmt.Fprintf( | ||||||
| 				warningOut, | 				warningOut, | ||||||
| 				"WARNING: Use of deprecated configuration option '%s' will be removed in a future release, use '%s' instead\n", | 				"WARNING: Use of deprecated configuration option '%s' will be removed in a future release, use '%s' instead\n", | ||||||
| 				strings.Join(d.Field, "."), | 				strings.Join(d.Field, "."), | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user