Skip to content

Commit

Permalink
Added password flag (#946)
Browse files Browse the repository at this point in the history
* added password flag

* README updated
  • Loading branch information
shekhar2807 authored Sep 26, 2022
1 parent 44e4da1 commit ad32c63
Show file tree
Hide file tree
Showing 43 changed files with 134 additions and 51 deletions.
18 changes: 17 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -353,8 +353,9 @@ docker exec -it razor-go razor vote --address <address>
run vote command in background

```
docker exec -it -d razor-go razor vote --address <address>
docker exec -it -d razor-go razor vote --address <address> --password /root/.razor/<file_name>
```
>**_NOTE:_** To run command with password flag with the help of docker, password file should present in $HOME/.razor/ directory
Example:

Expand Down Expand Up @@ -678,6 +679,8 @@ docker
docker exec -it razor-go razor collectionList
```

Note : _All the commands have an additional --password flag that you can provide with the file path from which password must be picked._

### Expose Metrics

Expose Prometheus-based metrics for monitoring
Expand Down Expand Up @@ -929,6 +932,13 @@ $ ./razor contractAddresses
```bash
#Provide password through CLI
docker-compose run razor-go /usr/local/bin/razor addStake --address <address> --value 50000
#Provide password through File
#Create file and put password string
vi ~/.razor/pass
#Start Staking
docker-compose run razor-go /usr/local/bin/razor addStake --address <address> --value 50000 --password /root/.razor/pass
```

9. To Start **Voting**,
Expand All @@ -938,6 +948,9 @@ $ ./razor contractAddresses
```bash
# Run process in foreground and provide password through cli
docker-compose run razor-go /usr/local/bin/razor vote --address <address>
# Run process in background and provide password through file
docker-compose run -d razor-go /usr/local/bin/razor vote --address <address> --password /root/.razor/pass
```

```bash
Expand All @@ -949,6 +962,9 @@ $ ./razor contractAddresses
```bash
#Provide password with cli
docker-compose run razor-go /usr/local/bin/razor setDelegation --address <address> --status true --commission 10
#provide password through file
docker-compose run razor-go /usr/local/bin/razor setDelegation --address <address> --status true --commission 10 --password /root/.razor/pass
```

### Contribute to razor-go
Expand Down
4 changes: 3 additions & 1 deletion cmd/addStake.go
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ func (*UtilsStruct) ExecuteStake(flagSet *pflag.FlagSet) {

config, err := cmdUtils.GetConfigData()
utils.CheckError("Error in getting config: ", err)
password := razorUtils.AssignPassword()
password := razorUtils.AssignPassword(flagSet)
client := razorUtils.ConnectToClient(config.Provider)
balance, err := razorUtils.FetchBalance(client, address)
utils.CheckError("Error in fetching razor balance for account: "+address, err)
Expand Down Expand Up @@ -111,11 +111,13 @@ func init() {
var (
Amount string
Address string
Password string
WeiRazor bool
)

stakeCmd.Flags().StringVarP(&Amount, "value", "v", "0", "amount of Razors to stake")
stakeCmd.Flags().StringVarP(&Address, "address", "a", "", "address of the staker")
stakeCmd.Flags().StringVarP(&Password, "password", "", "", "password path of staker to protect the keystore")
stakeCmd.Flags().BoolVarP(&WeiRazor, "weiRazor", "", false, "value can be passed in wei")

amountErr := stakeCmd.MarkFlagRequired("value")
Expand Down
2 changes: 1 addition & 1 deletion cmd/addStake_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -314,7 +314,7 @@ func TestExecuteStake(t *testing.T) {

utilsMock.On("AssignLogFile", mock.AnythingOfType("*pflag.FlagSet"))
cmdUtilsMock.On("GetConfigData").Return(tt.args.config, tt.args.configErr)
utilsMock.On("AssignPassword").Return(tt.args.password)
utilsMock.On("AssignPassword", mock.AnythingOfType("*pflag.FlagSet")).Return(tt.args.password)
flagSetUtilsMock.On("GetStringAddress", mock.AnythingOfType("*pflag.FlagSet")).Return(tt.args.address, tt.args.addressErr)
utilsMock.On("ConnectToClient", mock.AnythingOfType("string")).Return(client)
utilsMock.On("WaitForBlockCompletion", mock.AnythingOfType("*ethclient.Client"), mock.AnythingOfType("string")).Return(nil)
Expand Down
4 changes: 3 additions & 1 deletion cmd/claimBounty.go
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ func (*UtilsStruct) ExecuteClaimBounty(flagSet *pflag.FlagSet) {
config, err := cmdUtils.GetConfigData()
utils.CheckError("Error in getting config: ", err)

password := razorUtils.AssignPassword()
password := razorUtils.AssignPassword(flagSet)

client := razorUtils.ConnectToClient(config.Provider)

Expand Down Expand Up @@ -183,10 +183,12 @@ func init() {
rootCmd.AddCommand(claimBountyCmd)
var (
Address string
Password string
BountyId uint32
)

claimBountyCmd.Flags().StringVarP(&Address, "address", "a", "", "address of the staker")
claimBountyCmd.Flags().StringVarP(&Password, "password", "", "", "password path of staker to protect the keystore")
claimBountyCmd.Flags().Uint32VarP(&BountyId, "bountyId", "", 0, "bountyId of the bounty hunter")

addrErr := claimBountyCmd.MarkFlagRequired("address")
Expand Down
2 changes: 1 addition & 1 deletion cmd/claimBounty_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,7 @@ func TestExecuteClaimBounty(t *testing.T) {

utilsMock.On("AssignLogFile", mock.AnythingOfType("*pflag.FlagSet"))
cmdUtilsMock.On("GetConfigData").Return(tt.args.config, tt.args.configErr)
utilsMock.On("AssignPassword").Return(tt.args.password)
utilsMock.On("AssignPassword", mock.AnythingOfType("*pflag.FlagSet")).Return(tt.args.password)
flagSetUtilsMock.On("GetStringAddress", mock.AnythingOfType("*pflag.FlagSet")).Return(tt.args.address, tt.args.addressErr)
flagSetUtilsMock.On("GetUint32BountyId", mock.AnythingOfType("*pflag.FlagSet")).Return(tt.args.bountyId, tt.args.bountyIdErr)
utilsMock.On("ConnectToClient", mock.AnythingOfType("string")).Return(client)
Expand Down
6 changes: 4 additions & 2 deletions cmd/claimCommission.go
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ func (*UtilsStruct) ClaimCommission(flagSet *pflag.FlagSet) {

config, err := cmdUtils.GetConfigData()
utils.CheckError("Error in getting config: ", err)
password := razorUtils.AssignPassword()
password := razorUtils.AssignPassword(flagSet)
client := razorUtils.ConnectToClient(config.Provider)

razorUtils.CheckEthBalanceIsZero(client, address)
Expand Down Expand Up @@ -76,10 +76,12 @@ func init() {
rootCmd.AddCommand(claimCommissionCmd)

var (
Address string
Address string
Password string
)

claimCommissionCmd.Flags().StringVarP(&Address, "address", "a", "", "address of the staker")
claimCommissionCmd.Flags().StringVarP(&Password, "password", "", "", "password path of staker to protect the keystore")

addrErr := claimCommissionCmd.MarkFlagRequired("address")
utils.CheckError("Address error: ", addrErr)
Expand Down
2 changes: 1 addition & 1 deletion cmd/claimCommission_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -218,7 +218,7 @@ func TestUtilsStruct_ClaimCommission(t *testing.T) {
utilsMock.On("AssignLogFile", mock.AnythingOfType("*pflag.FlagSet"))
utilsMock.On("GetStakerId", mock.AnythingOfType("*ethclient.Client"), mock.AnythingOfType("string")).Return(tt.args.stakerId, tt.args.stakerIdErr)
utilsMock.On("GetOptions").Return(callOpts)
utilsMock.On("AssignPassword").Return(tt.args.password)
utilsMock.On("AssignPassword", mock.AnythingOfType("*pflag.FlagSet")).Return(tt.args.password)
utilsMock.On("ConnectToClient", mock.AnythingOfType("string")).Return(client)
utilsMock.On("CheckEthBalanceIsZero", mock.AnythingOfType("*ethclient.Client"), mock.AnythingOfType("string")).Return()
utilsMock.On("GetTxnOpts", mock.AnythingOfType("types.TransactionOptions")).Return(txnOpts)
Expand Down
8 changes: 7 additions & 1 deletion cmd/create.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ func initialiseCreate(cmd *cobra.Command, args []string) {
func (*UtilsStruct) ExecuteCreate(flagSet *pflag.FlagSet) {
razorUtils.AssignLogFile(flagSet)
log.Info("The password should be of minimum 8 characters containing least 1 uppercase, lowercase, digit and special character.")
password := razorUtils.AssignPassword()
password := razorUtils.AssignPassword(flagSet)
account, err := cmdUtils.Create(password)
utils.CheckError("Create error: ", err)
log.Info("Account address: ", account.Address)
Expand All @@ -51,4 +51,10 @@ func (*UtilsStruct) Create(password string) (accounts.Account, error) {

func init() {
rootCmd.AddCommand(createCmd)

var (
Password string
)

createCmd.Flags().StringVarP(&Password, "password", "", "", "password file path to protect the keystore")
}
4 changes: 3 additions & 1 deletion cmd/createCollection.go
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ func (*UtilsStruct) ExecuteCreateCollection(flagSet *pflag.FlagSet) {
config, err := cmdUtils.GetConfigData()
utils.CheckError("Error in getting config: ", err)

password := razorUtils.AssignPassword()
password := razorUtils.AssignPassword(flagSet)
name, err := flagSetUtils.GetStringName(flagSet)
utils.CheckError("Error in getting name: ", err)

Expand Down Expand Up @@ -114,6 +114,7 @@ func init() {
Account string
JobIds []uint
AggregationMethod uint32
Password string
Power int8
Tolerance uint32
)
Expand All @@ -124,6 +125,7 @@ func init() {
createCollectionCmd.Flags().Uint32VarP(&AggregationMethod, "aggregation", "", 1, "aggregation method to be used")
createCollectionCmd.Flags().Uint32VarP(&Tolerance, "tolerance", "", 0, "tolerance")
createCollectionCmd.Flags().Int8VarP(&Power, "power", "", 0, "multiplier for the collection")
createCollectionCmd.Flags().StringVarP(&Password, "password", "", "", "password path of job creator to protect the keystore")

nameErr := createCollectionCmd.MarkFlagRequired("name")
utils.CheckError("Name error: ", nameErr)
Expand Down
2 changes: 1 addition & 1 deletion cmd/createCollection_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -302,7 +302,7 @@ func TestExecuteCreateCollection(t *testing.T) {

utilsMock.On("AssignLogFile", mock.AnythingOfType("*pflag.FlagSet"))
cmdUtilsMock.On("GetConfigData").Return(tt.args.config, tt.args.configErr)
utilsMock.On("AssignPassword").Return(tt.args.password)
utilsMock.On("AssignPassword", flagSet).Return(tt.args.password)
flagsetUtilsMock.On("GetStringAddress", flagSet).Return(tt.args.address, tt.args.addressErr)
flagsetUtilsMock.On("GetStringName", flagSet).Return(tt.args.name, tt.args.nameErr)
flagsetUtilsMock.On("GetUintSliceJobIds", flagSet).Return(tt.args.jobId, tt.args.jobIdErr)
Expand Down
4 changes: 3 additions & 1 deletion cmd/createJob.go
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ func (*UtilsStruct) ExecuteCreateJob(flagSet *pflag.FlagSet) {
config, err := cmdUtils.GetConfigData()
utils.CheckError("Error in getting config: ", err)

password := razorUtils.AssignPassword()
password := razorUtils.AssignPassword(flagSet)

name, err := flagSetUtils.GetStringName(flagSet)
utils.CheckError("Error in getting name: ", err)
Expand Down Expand Up @@ -117,6 +117,7 @@ func init() {
Name string
Power int8
Account string
Password string
Weight uint8
)

Expand All @@ -127,6 +128,7 @@ func init() {
createJobCmd.Flags().Int8VarP(&Power, "power", "", 0, "power")
createJobCmd.Flags().Uint8VarP(&Weight, "weight", "", 0, "weight assigned to the job")
createJobCmd.Flags().StringVarP(&Account, "address", "a", "", "address of the job creator")
createJobCmd.Flags().StringVarP(&Password, "password", "", "", "password path of job creator to protect the keystore")

urlErr := createJobCmd.MarkFlagRequired("url")
utils.CheckError("URL error: ", urlErr)
Expand Down
2 changes: 1 addition & 1 deletion cmd/createJob_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -320,7 +320,7 @@ func TestExecuteCreateJob(t *testing.T) {

utilsMock.On("AssignLogFile", mock.AnythingOfType("*pflag.FlagSet"))
cmdUtilsMock.On("GetConfigData").Return(tt.args.config, tt.args.configErr)
utilsMock.On("AssignPassword").Return(tt.args.password)
utilsMock.On("AssignPassword", flagSet).Return(tt.args.password)
flagsetUtilsMock.On("GetStringAddress", flagSet).Return(tt.args.address, tt.args.addressErr)
flagsetUtilsMock.On("GetStringName", flagSet).Return(tt.args.name, tt.args.nameErr)
flagsetUtilsMock.On("GetStringUrl", flagSet).Return(tt.args.url, tt.args.urlErr)
Expand Down
2 changes: 1 addition & 1 deletion cmd/create_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,7 @@ func TestExecuteCreate(t *testing.T) {
cmdUtils = cmdUtilsMock

utilsMock.On("AssignLogFile", mock.AnythingOfType("*pflag.FlagSet"))
utilsMock.On("AssignPassword").Return(tt.args.password)
utilsMock.On("AssignPassword", mock.AnythingOfType("*pflag.FlagSet")).Return(tt.args.password)
cmdUtilsMock.On("Create", mock.AnythingOfType("string")).Return(tt.args.account, tt.args.accountErr)

utils := &UtilsStruct{}
Expand Down
4 changes: 3 additions & 1 deletion cmd/delegate.go
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ func (*UtilsStruct) ExecuteDelegate(flagSet *pflag.FlagSet) {
config, err := cmdUtils.GetConfigData()
utils.CheckError("Error in getting config: ", err)

password := razorUtils.AssignPassword()
password := razorUtils.AssignPassword(flagSet)

stakerId, err := flagSetUtils.GetUint32StakerId(flagSet)
utils.CheckError("Error in getting stakerId: ", err)
Expand Down Expand Up @@ -104,12 +104,14 @@ func init() {
Amount string
Address string
StakerId uint32
Password string
WeiRazor bool
)

delegateCmd.Flags().StringVarP(&Amount, "value", "v", "0", "amount to stake (in Wei)")
delegateCmd.Flags().StringVarP(&Address, "address", "a", "", "your account address")
delegateCmd.Flags().Uint32VarP(&StakerId, "stakerId", "", 0, "staker id")
delegateCmd.Flags().StringVarP(&Password, "password", "", "", "password path to protect the keystore")
delegateCmd.Flags().BoolVarP(&WeiRazor, "weiRazor", "", false, "value can be passed in wei")

valueErr := delegateCmd.MarkFlagRequired("value")
Expand Down
2 changes: 1 addition & 1 deletion cmd/delegate_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -265,7 +265,7 @@ func TestExecuteDelegate(t *testing.T) {

utilsMock.On("AssignLogFile", mock.AnythingOfType("*pflag.FlagSet"))
cmdUtilsMock.On("GetConfigData").Return(tt.args.config, tt.args.configErr)
utilsMock.On("AssignPassword").Return(tt.args.password)
utilsMock.On("AssignPassword", flagSet).Return(tt.args.password)
flagSetUtilsMock.On("GetStringAddress", mock.AnythingOfType("*pflag.FlagSet")).Return(tt.args.address, tt.args.addressErr)
flagSetUtilsMock.On("GetUint32StakerId", flagSet).Return(tt.args.stakerId, tt.args.stakerIdErr)
utilsMock.On("ConnectToClient", mock.AnythingOfType("string")).Return(client)
Expand Down
4 changes: 3 additions & 1 deletion cmd/initiateWithdraw.go
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ func (*UtilsStruct) ExecuteInitiateWithdraw(flagSet *pflag.FlagSet) {
config, err := cmdUtils.GetConfigData()
utils.CheckError("Error in getting config: ", err)

password := razorUtils.AssignPassword()
password := razorUtils.AssignPassword(flagSet)

client := razorUtils.ConnectToClient(config.Provider)

Expand Down Expand Up @@ -149,10 +149,12 @@ func init() {

var (
Address string
Password string
StakerId uint32
)

initiateWithdrawCmd.Flags().StringVarP(&Address, "address", "a", "", "address of the user")
initiateWithdrawCmd.Flags().StringVarP(&Password, "password", "", "", "password path of user to protect the keystore")
initiateWithdrawCmd.Flags().Uint32VarP(&StakerId, "stakerId", "", 0, "password path of user to protect the keystore")

addrErr := initiateWithdrawCmd.MarkFlagRequired("address")
Expand Down
2 changes: 1 addition & 1 deletion cmd/initiateWithdraw_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -423,7 +423,7 @@ func TestExecuteWithdraw(t *testing.T) {

utilsMock.On("AssignLogFile", mock.AnythingOfType("*pflag.FlagSet"))
cmdUtilsMock.On("GetConfigData").Return(tt.args.config, tt.args.configErr)
utilsMock.On("AssignPassword").Return(tt.args.password)
utilsMock.On("AssignPassword", flagSet).Return(tt.args.password)
flagSetUtilsMock.On("GetStringAddress", flagSet).Return(tt.args.address, tt.args.addressErr)
utilsMock.On("CheckEthBalanceIsZero", mock.AnythingOfType("*ethclient.Client"), mock.AnythingOfType("string")).Return()
utilsMock.On("AssignStakerId", flagSet, mock.AnythingOfType("*ethclient.Client"), mock.Anything).Return(tt.args.stakerId, tt.args.stakerIdErr)
Expand Down
2 changes: 1 addition & 1 deletion cmd/interface.go
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ type UtilsInterface interface {
GetOptions() bind.CallOpts
CalculateBlockTime(client *ethclient.Client) int64
GetTxnOpts(transactionData types.TransactionOptions) *bind.TransactOpts
AssignPassword() string
AssignPassword(flagSet *pflag.FlagSet) string
GetStringAddress(flagSet *pflag.FlagSet) (string, error)
GetUint32BountyId(flagSet *pflag.FlagSet) (uint32, error)
ConnectToClient(provider string) *ethclient.Client
Expand Down
8 changes: 4 additions & 4 deletions cmd/mocks/utils_cmd_interface.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 5 additions & 5 deletions cmd/mocks/utils_interface.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 3 additions & 1 deletion cmd/modifyCollectionStatus.go
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ func (*UtilsStruct) ExecuteModifyCollectionStatus(flagSet *pflag.FlagSet) {
status, err := stringUtils.ParseBool(statusString)
utils.CheckError("Error in parsing status: ", err)

password := razorUtils.AssignPassword()
password := razorUtils.AssignPassword(flagSet)

client := razorUtils.ConnectToClient(config.Provider)

Expand Down Expand Up @@ -117,11 +117,13 @@ func init() {
Address string
CollectionId uint16
Status string
Password string
)

modifyCollectionStatusCmd.Flags().StringVarP(&Address, "address", "a", "", "address of the user")
modifyCollectionStatusCmd.Flags().Uint16VarP(&CollectionId, "collectionId", "", 0, "collectionId of the collection")
modifyCollectionStatusCmd.Flags().StringVarP(&Status, "status", "", "true", "active status of the collection")
modifyCollectionStatusCmd.Flags().StringVarP(&Password, "password", "", "", "password path of user to protect the keystore")

addressErr := modifyCollectionStatusCmd.MarkFlagRequired("address")
utils.CheckError("Address error: ", addressErr)
Expand Down
2 changes: 1 addition & 1 deletion cmd/modifyCollectionStatus_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -357,7 +357,7 @@ func TestExecuteModifyAssetStatus(t *testing.T) {
flagsetUtilsMock.On("GetStringAddress", flagSet).Return(tt.args.address, tt.args.addressErr)
flagsetUtilsMock.On("GetUint16CollectionId", flagSet).Return(tt.args.collectionId, tt.args.collectionIdErr)
flagsetUtilsMock.On("GetStringStatus", flagSet).Return(tt.args.status, tt.args.statusErr)
utilsMock.On("AssignPassword").Return(tt.args.password)
utilsMock.On("AssignPassword", flagSet).Return(tt.args.password)
stringMock.On("ParseBool", mock.AnythingOfType("string")).Return(tt.args.parseStatus, tt.args.parseStatusErr)
utilsMock.On("ConnectToClient", mock.AnythingOfType("string")).Return(client)
cmdUtilsMock.On("ModifyCollectionStatus", mock.Anything, mock.Anything, mock.Anything).Return(tt.args.ModifyCollectionStatusHash, tt.args.ModifyCollectionStatusErr)
Expand Down
Loading

0 comments on commit ad32c63

Please sign in to comment.