@@ -70,7 +70,9 @@ func (m *Monitor) rpcBlockByNumber(blockNumber uint64) (*types.Block, error) {
70
70
block := & types.Block {}
71
71
72
72
rpcBlockMeter .Mark (1 )
73
- err := m .cl .Call (block , "ctxc_getBlockByNumber" , "0x" + strconv .FormatUint (blockNumber , 16 ), true )
73
+ ctx , cancel := context .WithTimeout (context .Background (), 10 * time .Second )
74
+ defer cancel ()
75
+ err := m .cl .CallContext (ctx , block , "ctxc_getBlockByNumber" , "0x" + strconv .FormatUint (blockNumber , 16 ), true )
74
76
if err == nil {
75
77
return block , nil
76
78
}
@@ -135,7 +137,9 @@ func (m *Monitor) getRemainingSize(address string) (uint64, error) {
135
137
}
136
138
var remainingSize hexutil.Uint64
137
139
rpcUploadMeter .Mark (1 )
138
- if err := m .cl .Call (& remainingSize , "ctxc_getUpload" , address , "latest" ); err != nil {
140
+ ctx , cancel := context .WithTimeout (context .Background (), 10 * time .Second )
141
+ defer cancel ()
142
+ if err := m .cl .CallContext (ctx , & remainingSize , "ctxc_getUpload" , address , "latest" ); err != nil {
139
143
return 0 , err
140
144
}
141
145
remain := uint64 (remainingSize )
@@ -147,7 +151,9 @@ func (m *Monitor) getRemainingSize(address string) (uint64, error) {
147
151
148
152
func (m * Monitor ) getReceipt (tx string ) (receipt types.Receipt , err error ) {
149
153
rpcReceiptMeter .Mark (1 )
150
- if err = m .cl .Call (& receipt , "ctxc_getTransactionReceipt" , tx ); err != nil {
154
+ ctx , cancel := context .WithTimeout (context .Background (), 10 * time .Second )
155
+ defer cancel ()
156
+ if err = m .cl .CallContext (ctx , & receipt , "ctxc_getTransactionReceipt" , tx ); err != nil {
151
157
log .Warn ("R is nil" , "R" , tx , "err" , err )
152
158
}
153
159
@@ -161,7 +167,9 @@ func (m *Monitor) currentBlock() (uint64, bool, error) {
161
167
)
162
168
163
169
rpcCurrentMeter .Mark (1 )
164
- if err := m .cl .Call (& currentNumber , "ctxc_blockNumber" ); err != nil {
170
+ ctx , cancel := context .WithTimeout (context .Background (), 10 * time .Second )
171
+ defer cancel ()
172
+ if err := m .cl .CallContext (ctx , & currentNumber , "ctxc_blockNumber" ); err != nil {
165
173
log .Error ("Call ipc method ctxc_blockNumber failed" , "error" , err )
166
174
return m .currentNumber .Load (), false , err
167
175
}
0 commit comments