Skip to content

Commit fd91fc4

Browse files
authored
refactor: removed fatal logs from GetTxnOpts() (#1261)
* refactor: removed fatal logs from GetTxnOpts() * refactor: removed fatal log when address not found * reafctor: fixed tests
1 parent 52d8d2a commit fd91fc4

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+713
-370
lines changed

cmd/addStake.go

+4-1
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,10 @@ func (*UtilsStruct) StakeCoins(rpcParameters rpc.RPCParameters, txnArgs types.Tr
105105
txnArgs.MethodName = "stake"
106106
txnArgs.Parameters = []interface{}{epoch, txnArgs.Amount}
107107
txnArgs.ABI = bindings.StakeManagerMetaData.ABI
108-
txnOpts := razorUtils.GetTxnOpts(rpcParameters, txnArgs)
108+
txnOpts, err := razorUtils.GetTxnOpts(rpcParameters, txnArgs)
109+
if err != nil {
110+
return core.NilHash, err
111+
}
109112

110113
client, err := rpcParameters.RPCManager.GetBestRPCClient()
111114
if err != nil {

cmd/addStake_test.go

+15-1
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ func TestStakeCoins(t *testing.T) {
2525
txnArgs types.TransactionOptions
2626
epoch uint32
2727
getEpochErr error
28+
txnOptsErr error
2829
stakeTxn *Types.Transaction
2930
stakeErr error
3031
hash common.Hash
@@ -80,12 +81,25 @@ func TestStakeCoins(t *testing.T) {
8081
want: core.NilHash,
8182
wantErr: errors.New("stake error"),
8283
},
84+
{
85+
name: "Test 4: When there is an error in getting transaction options",
86+
args: args{
87+
txnArgs: types.TransactionOptions{
88+
Amount: big.NewInt(1000),
89+
},
90+
epoch: 2,
91+
getEpochErr: nil,
92+
txnOptsErr: errors.New("txnOpts error"),
93+
},
94+
want: core.NilHash,
95+
wantErr: errors.New("txnOpts error"),
96+
},
8397
}
8498
for _, tt := range tests {
8599
t.Run(tt.name, func(t *testing.T) {
86100
SetUpMockInterfaces()
87101
utilsMock.On("GetEpoch", mock.Anything).Return(tt.args.epoch, tt.args.getEpochErr)
88-
utilsMock.On("GetTxnOpts", mock.Anything, mock.Anything).Return(TxnOpts)
102+
utilsMock.On("GetTxnOpts", mock.Anything, mock.Anything).Return(TxnOpts, tt.args.txnOptsErr)
89103
transactionMock.On("Hash", mock.Anything).Return(tt.args.hash)
90104
stakeManagerMock.On("Stake", mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(tt.args.stakeTxn, tt.args.stakeErr)
91105

cmd/approve.go

+4-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,10 @@ func (*UtilsStruct) Approve(rpcParameters rpc.RPCParameters, txnArgs types.Trans
2525
txnArgs.MethodName = "approve"
2626
txnArgs.ABI = bindings.RAZORMetaData.ABI
2727
txnArgs.Parameters = []interface{}{common.HexToAddress(core.StakeManagerAddress), txnArgs.Amount}
28-
txnOpts := razorUtils.GetTxnOpts(rpcParameters, txnArgs)
28+
txnOpts, err := razorUtils.GetTxnOpts(rpcParameters, txnArgs)
29+
if err != nil {
30+
return core.NilHash, err
31+
}
2932

3033
client, err := rpcParameters.RPCManager.GetBestRPCClient()
3134
if err != nil {

cmd/approve_test.go

+15-1
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ func TestApprove(t *testing.T) {
1919
callOpts bind.CallOpts
2020
allowanceAmount *big.Int
2121
allowanceError error
22+
txnOptsErr error
2223
approveTxn *Types.Transaction
2324
approveError error
2425
hash common.Hash
@@ -115,13 +116,26 @@ func TestApprove(t *testing.T) {
115116
want: common.Hash{0},
116117
wantErr: errors.New("approve error"),
117118
},
119+
{
120+
name: "Test 5: When there is error in getting txnOpts",
121+
args: args{
122+
txnArgs: types.TransactionOptions{
123+
Amount: big.NewInt(10000),
124+
},
125+
callOpts: bind.CallOpts{},
126+
allowanceAmount: big.NewInt(0),
127+
txnOptsErr: errors.New("txnOpts error"),
128+
},
129+
want: core.NilHash,
130+
wantErr: errors.New("txnOpts error"),
131+
},
118132
}
119133
for _, tt := range tests {
120134
t.Run(tt.name, func(t *testing.T) {
121135
SetUpMockInterfaces()
122136

123137
utilsMock.On("GetOptions").Return(tt.args.callOpts)
124-
utilsMock.On("GetTxnOpts", mock.Anything, mock.Anything).Return(TxnOpts)
138+
utilsMock.On("GetTxnOpts", mock.Anything, mock.Anything).Return(TxnOpts, tt.args.txnOptsErr)
125139
transactionMock.On("Hash", mock.Anything).Return(tt.args.hash)
126140
utilsMock.On("Allowance", mock.Anything, mock.Anything, mock.Anything).Return(tt.args.allowanceAmount, tt.args.allowanceError)
127141
tokenManagerMock.On("Approve", mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(tt.args.approveTxn, tt.args.approveError)

cmd/claimBounty.go

+4-1
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,10 @@ func (*UtilsStruct) ClaimBounty(rpcParameters rpc.RPCParameters, config types.Co
163163
return core.NilHash, nil
164164
}
165165

166-
txnOpts := razorUtils.GetTxnOpts(rpcParameters, txnArgs)
166+
txnOpts, err := razorUtils.GetTxnOpts(rpcParameters, txnArgs)
167+
if err != nil {
168+
return core.NilHash, err
169+
}
167170
client, err := rpcParameters.RPCManager.GetBestRPCClient()
168171
if err != nil {
169172
return core.NilHash, err

cmd/claimBounty_test.go

+15-1
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,7 @@ func TestClaimBounty(t *testing.T) {
157157
epochErr error
158158
bountyLock types.BountyLock
159159
bountyLockErr error
160+
txnOptsErr error
160161
redeemBountyTxn *Types.Transaction
161162
redeemBountyErr error
162163
hash common.Hash
@@ -250,6 +251,19 @@ func TestClaimBounty(t *testing.T) {
250251
want: core.NilHash,
251252
wantErr: nil,
252253
},
254+
{
255+
name: "Test 8: When there is an error in getting txnOpts",
256+
args: args{
257+
epoch: 70,
258+
bountyLock: types.BountyLock{
259+
Amount: big.NewInt(1000),
260+
RedeemAfter: 70,
261+
},
262+
txnOptsErr: errors.New("txnOpts error"),
263+
},
264+
want: core.NilHash,
265+
wantErr: errors.New("txnOpts error"),
266+
},
253267
}
254268
for _, tt := range tests {
255269
t.Run(tt.name, func(t *testing.T) {
@@ -267,7 +281,7 @@ func TestClaimBounty(t *testing.T) {
267281
utilsMock.On("GetBountyLock", mock.Anything, mock.Anything).Return(tt.args.bountyLock, tt.args.bountyLockErr)
268282
timeMock.On("Sleep", mock.AnythingOfType("time.Duration")).Return()
269283
utilsMock.On("CalculateBlockTime", mock.AnythingOfType("*ethclient.Client")).Return(blockTime)
270-
utilsMock.On("GetTxnOpts", mock.Anything, mock.Anything).Return(TxnOpts)
284+
utilsMock.On("GetTxnOpts", mock.Anything, mock.Anything).Return(TxnOpts, tt.args.txnOptsErr)
271285
stakeManagerMock.On("RedeemBounty", mock.AnythingOfType("*ethclient.Client"), mock.AnythingOfType("*bind.TransactOpts"), mock.AnythingOfType("uint32")).Return(tt.args.redeemBountyTxn, tt.args.redeemBountyErr)
272286
utilsMock.On("SecondsToReadableTime", mock.AnythingOfType("int")).Return(tt.args.time)
273287
transactionUtilsMock.On("Hash", mock.Anything).Return(tt.args.hash)

cmd/claimCommission.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ func (*UtilsStruct) ClaimCommission(flagSet *pflag.FlagSet) {
3838
log.Debugf("ClaimCommission: Staker Info: %+v", stakerInfo)
3939

4040
if stakerInfo.StakerReward.Cmp(big.NewInt(0)) > 0 {
41-
txnOpts := razorUtils.GetTxnOpts(rpcParameters, types.TransactionOptions{
41+
txnOpts, err := razorUtils.GetTxnOpts(rpcParameters, types.TransactionOptions{
4242
ChainId: core.ChainId,
4343
Config: config,
4444
ContractAddress: core.StakeManagerAddress,
@@ -47,6 +47,7 @@ func (*UtilsStruct) ClaimCommission(flagSet *pflag.FlagSet) {
4747
ABI: bindings.StakeManagerMetaData.ABI,
4848
Account: account,
4949
})
50+
utils.CheckError("Error in getting txn options: ", err)
5051

5152
log.Info("Claiming commission...")
5253

cmd/claimCommission_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,7 @@ func TestClaimCommission(t *testing.T) {
206206
utilsMock.On("CheckPassword", mock.Anything).Return(nil)
207207
utilsMock.On("AccountManagerForKeystore").Return(&accounts.AccountManager{}, nil)
208208
utilsMock.On("ConnectToClient", mock.AnythingOfType("string")).Return(client)
209-
utilsMock.On("GetTxnOpts", mock.Anything, mock.Anything).Return(TxnOpts)
209+
utilsMock.On("GetTxnOpts", mock.Anything, mock.Anything).Return(TxnOpts, nil)
210210
utilsMock.On("WaitForBlockCompletion", mock.Anything, mock.Anything).Return(nil)
211211

212212
utilsMock.On("StakerInfo", mock.Anything, mock.AnythingOfType("uint32")).Return(tt.args.stakerInfo, tt.args.stakerInfoErr)

cmd/commit.go

+4-1
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ func (*UtilsStruct) Commit(rpcParameters rpc.RPCParameters, config types.Configu
151151
return core.NilHash, err
152152
}
153153

154-
txnOpts := razorUtils.GetTxnOpts(rpcParameters, types.TransactionOptions{
154+
txnOpts, err := razorUtils.GetTxnOpts(rpcParameters, types.TransactionOptions{
155155
ChainId: core.ChainId,
156156
Config: config,
157157
ContractAddress: core.VoteManagerAddress,
@@ -160,6 +160,9 @@ func (*UtilsStruct) Commit(rpcParameters rpc.RPCParameters, config types.Configu
160160
Parameters: []interface{}{epoch, commitmentToSend},
161161
Account: account,
162162
})
163+
if err != nil {
164+
return core.NilHash, err
165+
}
163166

164167
log.Info("Commitment sent...")
165168
client, err := rpcParameters.RPCManager.GetBestRPCClient()

cmd/commit_test.go

+16-6
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,12 @@ func TestCommit(t *testing.T) {
2828
)
2929

3030
type args struct {
31-
state int64
32-
stateErr error
33-
commitTxn *Types.Transaction
34-
commitErr error
35-
hash common.Hash
31+
state int64
32+
stateErr error
33+
txnOptsErr error
34+
commitTxn *Types.Transaction
35+
commitErr error
36+
hash common.Hash
3637
}
3738
tests := []struct {
3839
name string
@@ -75,13 +76,22 @@ func TestCommit(t *testing.T) {
7576
want: core.NilHash,
7677
wantErr: errors.New("commit error"),
7778
},
79+
{
80+
name: "Test 4: When there is an error in getting txnOpts",
81+
args: args{
82+
state: 0,
83+
txnOptsErr: errors.New("txnOpts error"),
84+
},
85+
want: core.NilHash,
86+
wantErr: errors.New("txnOpts error"),
87+
},
7888
}
7989
for _, tt := range tests {
8090
t.Run(tt.name, func(t *testing.T) {
8191
SetUpMockInterfaces()
8292

8393
utilsMock.On("GetBufferedState", mock.Anything, mock.Anything, mock.Anything).Return(tt.args.state, tt.args.stateErr)
84-
utilsMock.On("GetTxnOpts", mock.Anything, mock.Anything).Return(TxnOpts)
94+
utilsMock.On("GetTxnOpts", mock.Anything, mock.Anything).Return(TxnOpts, tt.args.txnOptsErr)
8595
voteManagerMock.On("Commit", mock.AnythingOfType("*ethclient.Client"), mock.AnythingOfType("*bind.TransactOpts"), mock.AnythingOfType("uint32"), mock.Anything).Return(tt.args.commitTxn, tt.args.commitErr)
8696
transactionMock.On("Hash", mock.AnythingOfType("*types.Transaction")).Return(tt.args.hash)
8797

cmd/confirm.go

+4-1
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,10 @@ func (*UtilsStruct) ClaimBlockReward(rpcParameters rpc.RPCParameters, options ty
4646

4747
if selectedProposedBlock.ProposerId == stakerID {
4848
log.Info("Claiming block reward...")
49-
txnOpts := razorUtils.GetTxnOpts(rpcParameters, options)
49+
txnOpts, err := razorUtils.GetTxnOpts(rpcParameters, options)
50+
if err != nil {
51+
return core.NilHash, err
52+
}
5053

5154
client, err := rpcParameters.RPCManager.GetBestRPCClient()
5255
if err != nil {

cmd/confirm_test.go

+16-2
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,14 @@ package cmd
22

33
import (
44
"errors"
5-
"github.com/stretchr/testify/mock"
65
"math/big"
76
"razor/core"
87
"razor/core/types"
98
"razor/pkg/bindings"
109
"testing"
1110

11+
"github.com/stretchr/testify/mock"
12+
1213
"github.com/ethereum/go-ethereum/common"
1314
Types "github.com/ethereum/go-ethereum/core/types"
1415
)
@@ -25,6 +26,7 @@ func TestClaimBlockReward(t *testing.T) {
2526
sortedProposedBlockIdsErr error
2627
selectedBlock bindings.StructsBlock
2728
selectedBlockErr error
29+
txnOptsErr error
2830
ClaimBlockRewardTxn *Types.Transaction
2931
ClaimBlockRewardErr error
3032
hash common.Hash
@@ -124,6 +126,18 @@ func TestClaimBlockReward(t *testing.T) {
124126
want: core.NilHash,
125127
wantErr: nil,
126128
},
129+
{
130+
name: "Test 9: When there is an error in getting txnOpts",
131+
args: args{
132+
epoch: 5,
133+
stakerId: 2,
134+
sortedProposedBlockIds: []uint32{2, 1, 3},
135+
selectedBlock: bindings.StructsBlock{ProposerId: 2},
136+
txnOptsErr: errors.New("txnOpts error"),
137+
},
138+
want: core.NilHash,
139+
wantErr: errors.New("txnOpts error"),
140+
},
127141
}
128142
for _, tt := range tests {
129143
t.Run(tt.name, func(t *testing.T) {
@@ -133,7 +147,7 @@ func TestClaimBlockReward(t *testing.T) {
133147
utilsMock.On("GetSortedProposedBlockIds", mock.Anything, mock.Anything).Return(tt.args.sortedProposedBlockIds, tt.args.sortedProposedBlockIdsErr)
134148
utilsMock.On("GetStakerId", mock.Anything, mock.Anything).Return(tt.args.stakerId, tt.args.stakerIdErr)
135149
utilsMock.On("GetProposedBlock", mock.Anything, mock.Anything, mock.Anything).Return(tt.args.selectedBlock, tt.args.selectedBlockErr)
136-
utilsMock.On("GetTxnOpts", mock.Anything, options).Return(TxnOpts)
150+
utilsMock.On("GetTxnOpts", mock.Anything, options).Return(TxnOpts, tt.args.txnOptsErr)
137151
blockManagerMock.On("ClaimBlockReward", mock.AnythingOfType("*ethclient.Client"), mock.AnythingOfType("*bind.TransactOpts")).Return(tt.args.ClaimBlockRewardTxn, tt.args.ClaimBlockRewardErr)
138152
transactionMock.On("Hash", mock.AnythingOfType("*types.Transaction")).Return(tt.args.hash)
139153

cmd/createCollection.go

+4-1
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ func (*UtilsStruct) CreateCollection(rpcParameters rpc.RPCParameters, config typ
7676
log.Error("Error in fetching state")
7777
return core.NilHash, err
7878
}
79-
txnOpts := razorUtils.GetTxnOpts(rpcParameters, types.TransactionOptions{
79+
txnOpts, err := razorUtils.GetTxnOpts(rpcParameters, types.TransactionOptions{
8080
ChainId: core.ChainId,
8181
Config: config,
8282
ContractAddress: core.CollectionManagerAddress,
@@ -85,6 +85,9 @@ func (*UtilsStruct) CreateCollection(rpcParameters rpc.RPCParameters, config typ
8585
ABI: bindings.CollectionManagerMetaData.ABI,
8686
Account: collectionInput.Account,
8787
})
88+
if err != nil {
89+
return core.NilHash, err
90+
}
8891

8992
client, err := rpcParameters.RPCManager.GetBestRPCClient()
9093
if err != nil {

cmd/createCollection_test.go

+11-1
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ func TestCreateCollection(t *testing.T) {
2323
type args struct {
2424
jobIdUint8 []uint16
2525
waitForAppropriateStateErr error
26+
txnOptsErr error
2627
createCollectionTxn *Types.Transaction
2728
createCollectionErr error
2829
hash common.Hash
@@ -65,13 +66,22 @@ func TestCreateCollection(t *testing.T) {
6566
want: core.NilHash,
6667
wantErr: errors.New("createCollection error"),
6768
},
69+
{
70+
name: "Test 4: When there is an error in getting txnOpts",
71+
args: args{
72+
jobIdUint8: []uint16{1, 2},
73+
txnOptsErr: errors.New("txnOpts error"),
74+
},
75+
want: core.NilHash,
76+
wantErr: errors.New("txnOpts error"),
77+
},
6878
}
6979
for _, tt := range tests {
7080
t.Run(tt.name, func(t *testing.T) {
7181
SetUpMockInterfaces()
7282

7383
utilsMock.On("ConvertUintArrayToUint16Array", mock.Anything).Return(tt.args.jobIdUint8)
74-
utilsMock.On("GetTxnOpts", mock.Anything, mock.Anything).Return(TxnOpts)
84+
utilsMock.On("GetTxnOpts", mock.Anything, mock.Anything).Return(TxnOpts, tt.args.txnOptsErr)
7585
cmdUtilsMock.On("WaitForAppropriateState", mock.Anything, mock.Anything, mock.Anything).Return(WaitForDisputeOrConfirmStateStatus, tt.args.waitForAppropriateStateErr)
7686
assetManagerMock.On("CreateCollection", mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(tt.args.createCollectionTxn, tt.args.createCollectionErr)
7787
transactionMock.On("Hash", mock.Anything).Return(tt.args.hash)

cmd/createJob.go

+4-1
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,10 @@ func (*UtilsStruct) CreateJob(rpcParameters rpc.RPCParameters, config types.Conf
8484
Account: jobInput.Account,
8585
}
8686

87-
txnOpts := razorUtils.GetTxnOpts(rpcParameters, txnArgs)
87+
txnOpts, err := razorUtils.GetTxnOpts(rpcParameters, txnArgs)
88+
if err != nil {
89+
return core.NilHash, err
90+
}
8891
log.Info("Creating Job...")
8992

9093
client, err := rpcParameters.RPCManager.GetBestRPCClient()

cmd/createJob_test.go

+10-1
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ func TestCreateJob(t *testing.T) {
2020
var config types.Configurations
2121

2222
type args struct {
23+
txnOptsErr error
2324
createJobTxn *Types.Transaction
2425
createJobErr error
2526
hash common.Hash
@@ -49,12 +50,20 @@ func TestCreateJob(t *testing.T) {
4950
want: core.NilHash,
5051
wantErr: errors.New("createJob error"),
5152
},
53+
{
54+
name: "Test 3: When there is an error in getting txnOpts",
55+
args: args{
56+
txnOptsErr: errors.New("txnOpts error"),
57+
},
58+
want: core.NilHash,
59+
wantErr: errors.New("txnOpts error"),
60+
},
5261
}
5362
for _, tt := range tests {
5463
t.Run(tt.name, func(t *testing.T) {
5564
SetUpMockInterfaces()
5665

57-
utilsMock.On("GetTxnOpts", mock.Anything, mock.Anything).Return(TxnOpts)
66+
utilsMock.On("GetTxnOpts", mock.Anything, mock.Anything).Return(TxnOpts, tt.args.txnOptsErr)
5867
assetManagerMock.On("CreateJob", mock.AnythingOfType("*ethclient.Client"), mock.AnythingOfType("*bind.TransactOpts"), mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(tt.args.createJobTxn, tt.args.createJobErr)
5968
transactionMock.On("Hash", mock.Anything).Return(tt.args.hash)
6069

cmd/delegate.go

+4-1
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,10 @@ func (*UtilsStruct) Delegate(rpcParameters rpc.RPCParameters, txnArgs types.Tran
8181
txnArgs.MethodName = "delegate"
8282
txnArgs.ABI = bindings.StakeManagerMetaData.ABI
8383
txnArgs.Parameters = []interface{}{stakerId, txnArgs.Amount}
84-
delegationTxnOpts := razorUtils.GetTxnOpts(rpcParameters, txnArgs)
84+
delegationTxnOpts, err := razorUtils.GetTxnOpts(rpcParameters, txnArgs)
85+
if err != nil {
86+
return core.NilHash, err
87+
}
8588
log.Info("Sending Delegate transaction...")
8689

8790
client, err := rpcParameters.RPCManager.GetBestRPCClient()

0 commit comments

Comments
 (0)