code.vegaprotocol.io/vega@v0.79.0/cmd/vegawallet/commands/disclaimer.go (about)

     1  // Copyright (C) 2023 Gobalsky Labs Limited
     2  //
     3  // This program is free software: you can redistribute it and/or modify
     4  // it under the terms of the GNU Affero General Public License as
     5  // published by the Free Software Foundation, either version 3 of the
     6  // License, or (at your option) any later version.
     7  //
     8  // This program is distributed in the hope that it will be useful,
     9  // but WITHOUT ANY WARRANTY; without even the implied warranty of
    10  // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    11  // GNU Affero General Public License for more details.
    12  //
    13  // You should have received a copy of the GNU Affero General Public License
    14  // along with this program.  If not, see <http://www.gnu.org/licenses/>.
    15  
    16  package cmd
    17  
    18  import (
    19  	"fmt"
    20  	"io"
    21  
    22  	"code.vegaprotocol.io/vega/cmd/vegawallet/commands/cli"
    23  
    24  	"github.com/spf13/cobra"
    25  )
    26  
    27  const disclaimerTxt = `The Vega Wallet is an application that allows users to, among other things,  (i)  access
    28  other Vega applications;  (ii)  manage multiple wallets and keys; and  (iii) sign
    29  transactions on the Vega network.  It is free, public and open source software.
    30  
    31  The Vega Wallet is purely non-custodial application, meaning users never lose custody,
    32  possession, or control of their digital assets at any time. Users are solely responsible for
    33  the custody of the cryptographic private keys to their Vega Wallet and and should never
    34  share their wallet credentials or seed phrase with anyone.
    35  
    36  The Vega Wallet relies on emerging technologies that are subject to increased risk
    37  through users misuse of things such as public/private key cryptography or failing to
    38  properly update or run software to accommodate upgrades.  The developers of the
    39  Vega Wallet do not operate or run the Vega Blockchain or any other blockchain.  Digital
    40  tokens present market volatility risk, technical software risk, regulatory risk and
    41  cybersecurity risk.  Software upgrades may contain bugs or security vulnerabilities that
    42  might result in loss of functionality or assets.
    43  
    44  The Vega Wallet is provided “as is”.  The developers of the Vega Wallet make no
    45  representations or warranties of any kind, whether express or implied, statutory
    46  or otherwise regarding the Vega Wallet.  They disclaim all warranties of
    47  merchantability, quality, fitness for purpose.  They disclaim all warranties that the
    48  Vega Wallet  is free of harmful components or errors.
    49  
    50  No developer of the Vega Wallet accepts any responsibility for, or liability to users
    51  in connection with their use of the Vega Wallet.  Users are solely responsible for
    52  any associated wallet and no developer of the Vega Wallet is liable for any acts or
    53  omissions by users in connection with or as a result of their Vega Wallet or other
    54  associated wallet being compromised.
    55  `
    56  
    57  var disclaimerLong = cli.LongDesc(`
    58  		Prints the disclaimer of the Vega Wallet.
    59  	`)
    60  
    61  type DisclaimerHandler func(home string, f *DisclaimerFlags) error
    62  
    63  func NewCmdDisclaimer(w io.Writer, rf *RootFlags) *cobra.Command {
    64  	return BuildCmdDisclaimer(w, Disclaimer, rf)
    65  }
    66  
    67  func BuildCmdDisclaimer(w io.Writer, handler DisclaimerHandler, rf *RootFlags) *cobra.Command {
    68  	f := &DisclaimerFlags{}
    69  
    70  	cmd := &cobra.Command{
    71  		Use:   "disclaimer",
    72  		Short: "Prints the disclaimer of the Vega Wallet",
    73  		Long:  disclaimerLong,
    74  		RunE: func(_ *cobra.Command, _ []string) error {
    75  			if err := handler(rf.Home, f); err != nil {
    76  				return err
    77  			}
    78  
    79  			return nil
    80  		},
    81  	}
    82  
    83  	return cmd
    84  }
    85  
    86  type DisclaimerFlags struct{}
    87  
    88  func Disclaimer(home string, f *DisclaimerFlags) error {
    89  	fmt.Print(disclaimerTxt)
    90  	return nil
    91  }