@@ -20,7 +20,7 @@ const (
2020// State represents the execution state
2121// it holds draft of updates and captures
2222// all register touches
23- type State struct {
23+ type ExecutionState struct {
2424 // NOTE: A finalized view is no longer accessible. It can however be
2525 // re-attached to another transaction and be committed (for cached result
2626 // bookkeeping purpose).
@@ -99,14 +99,14 @@ func (controller *limitsController) RunWithAllLimitsDisabled(f func()) {
9999 controller .enforceLimits = current
100100}
101101
102- func (s * State ) View () View {
103- return s .view
102+ func (state * ExecutionState ) View () View {
103+ return state .view
104104}
105105
106- // NewState constructs a new state
107- func NewState (view View , params StateParameters ) * State {
106+ // NewExecutionState constructs a new state
107+ func NewExecutionState (view View , params StateParameters ) * ExecutionState {
108108 m := meter .NewMeter (params .MeterParameters )
109- return & State {
109+ return & ExecutionState {
110110 finalized : false ,
111111 view : view ,
112112 meter : m ,
@@ -116,198 +116,198 @@ func NewState(view View, params StateParameters) *State {
116116
117117// NewChildWithMeterParams generates a new child state using the provide meter
118118// parameters.
119- func (s * State ) NewChildWithMeterParams (
119+ func (state * ExecutionState ) NewChildWithMeterParams (
120120 params meter.MeterParameters ,
121- ) * State {
122- return & State {
121+ ) * ExecutionState {
122+ return & ExecutionState {
123123 finalized : false ,
124- view : s .view .NewChild (),
124+ view : state .view .NewChild (),
125125 meter : meter .NewMeter (params ),
126- limitsController : s .limitsController ,
126+ limitsController : state .limitsController ,
127127 }
128128}
129129
130130// NewChild generates a new child state using the parent's meter parameters.
131- func (s * State ) NewChild () * State {
132- return s .NewChildWithMeterParams (s .meter .MeterParameters )
131+ func (state * ExecutionState ) NewChild () * ExecutionState {
132+ return state .NewChildWithMeterParams (state .meter .MeterParameters )
133133}
134134
135135// InteractionUsed returns the amount of ledger interaction (total ledger byte read + total ledger byte written)
136- func (s * State ) InteractionUsed () uint64 {
137- return s .meter .TotalBytesOfStorageInteractions ()
136+ func (state * ExecutionState ) InteractionUsed () uint64 {
137+ return state .meter .TotalBytesOfStorageInteractions ()
138138}
139139
140140// BytesWritten returns the amount of total ledger bytes written
141- func (s * State ) BytesWritten () uint64 {
142- return s .meter .TotalBytesWrittenToStorage ()
141+ func (state * ExecutionState ) BytesWritten () uint64 {
142+ return state .meter .TotalBytesWrittenToStorage ()
143143}
144144
145- func (s * State ) DropChanges () error {
146- if s .finalized {
145+ func (state * ExecutionState ) DropChanges () error {
146+ if state .finalized {
147147 return fmt .Errorf ("cannot DropChanges on a finalized view" )
148148 }
149149
150- return s .view .DropChanges ()
150+ return state .view .DropChanges ()
151151}
152152
153153// Get returns a register value given owner and key
154- func (s * State ) Get (id flow.RegisterID ) (flow.RegisterValue , error ) {
155- if s .finalized {
154+ func (state * ExecutionState ) Get (id flow.RegisterID ) (flow.RegisterValue , error ) {
155+ if state .finalized {
156156 return nil , fmt .Errorf ("cannot Get on a finalized view" )
157157 }
158158
159159 var value []byte
160160 var err error
161161
162- if s .enforceLimits {
163- if err = s .checkSize (id , []byte {}); err != nil {
162+ if state .enforceLimits {
163+ if err = state .checkSize (id , []byte {}); err != nil {
164164 return nil , err
165165 }
166166 }
167167
168- if value , err = s .view .Get (id ); err != nil {
168+ if value , err = state .view .Get (id ); err != nil {
169169 // wrap error into a fatal error
170170 getError := errors .NewLedgerFailure (err )
171171 // wrap with more info
172172 return nil , fmt .Errorf ("failed to read %s: %w" , id , getError )
173173 }
174174
175- err = s .meter .MeterStorageRead (id , value , s .enforceLimits )
175+ err = state .meter .MeterStorageRead (id , value , state .enforceLimits )
176176 return value , err
177177}
178178
179179// Set updates state delta with a register update
180- func (s * State ) Set (id flow.RegisterID , value flow.RegisterValue ) error {
181- if s .finalized {
180+ func (state * ExecutionState ) Set (id flow.RegisterID , value flow.RegisterValue ) error {
181+ if state .finalized {
182182 return fmt .Errorf ("cannot Set on a finalized view" )
183183 }
184184
185- if s .enforceLimits {
186- if err := s .checkSize (id , value ); err != nil {
185+ if state .enforceLimits {
186+ if err := state .checkSize (id , value ); err != nil {
187187 return err
188188 }
189189 }
190190
191- if err := s .view .Set (id , value ); err != nil {
191+ if err := state .view .Set (id , value ); err != nil {
192192 // wrap error into a fatal error
193193 setError := errors .NewLedgerFailure (err )
194194 // wrap with more info
195195 return fmt .Errorf ("failed to update %s: %w" , id , setError )
196196 }
197197
198- return s .meter .MeterStorageWrite (id , value , s .enforceLimits )
198+ return state .meter .MeterStorageWrite (id , value , state .enforceLimits )
199199}
200200
201201// MeterComputation meters computation usage
202- func (s * State ) MeterComputation (kind common.ComputationKind , intensity uint ) error {
203- if s .finalized {
202+ func (state * ExecutionState ) MeterComputation (kind common.ComputationKind , intensity uint ) error {
203+ if state .finalized {
204204 return fmt .Errorf ("cannot MeterComputation on a finalized view" )
205205 }
206206
207- if s .enforceLimits {
208- return s .meter .MeterComputation (kind , intensity )
207+ if state .enforceLimits {
208+ return state .meter .MeterComputation (kind , intensity )
209209 }
210210 return nil
211211}
212212
213213// TotalComputationUsed returns total computation used
214- func (s * State ) TotalComputationUsed () uint64 {
215- return s .meter .TotalComputationUsed ()
214+ func (state * ExecutionState ) TotalComputationUsed () uint64 {
215+ return state .meter .TotalComputationUsed ()
216216}
217217
218218// ComputationIntensities returns computation intensities
219- func (s * State ) ComputationIntensities () meter.MeteredComputationIntensities {
220- return s .meter .ComputationIntensities ()
219+ func (state * ExecutionState ) ComputationIntensities () meter.MeteredComputationIntensities {
220+ return state .meter .ComputationIntensities ()
221221}
222222
223223// TotalComputationLimit returns total computation limit
224- func (s * State ) TotalComputationLimit () uint {
225- return s .meter .TotalComputationLimit ()
224+ func (state * ExecutionState ) TotalComputationLimit () uint {
225+ return state .meter .TotalComputationLimit ()
226226}
227227
228228// MeterMemory meters memory usage
229- func (s * State ) MeterMemory (kind common.MemoryKind , intensity uint ) error {
230- if s .finalized {
229+ func (state * ExecutionState ) MeterMemory (kind common.MemoryKind , intensity uint ) error {
230+ if state .finalized {
231231 return fmt .Errorf ("cannot MeterMemory on a finalized view" )
232232 }
233233
234- if s .enforceLimits {
235- return s .meter .MeterMemory (kind , intensity )
234+ if state .enforceLimits {
235+ return state .meter .MeterMemory (kind , intensity )
236236 }
237237
238238 return nil
239239}
240240
241241// MemoryIntensities returns computation intensities
242- func (s * State ) MemoryIntensities () meter.MeteredMemoryIntensities {
243- return s .meter .MemoryIntensities ()
242+ func (state * ExecutionState ) MemoryIntensities () meter.MeteredMemoryIntensities {
243+ return state .meter .MemoryIntensities ()
244244}
245245
246246// TotalMemoryEstimate returns total memory used
247- func (s * State ) TotalMemoryEstimate () uint64 {
248- return s .meter .TotalMemoryEstimate ()
247+ func (state * ExecutionState ) TotalMemoryEstimate () uint64 {
248+ return state .meter .TotalMemoryEstimate ()
249249}
250250
251251// TotalMemoryLimit returns total memory limit
252- func (s * State ) TotalMemoryLimit () uint {
253- return uint (s .meter .TotalMemoryLimit ())
252+ func (state * ExecutionState ) TotalMemoryLimit () uint {
253+ return uint (state .meter .TotalMemoryLimit ())
254254}
255255
256- func (s * State ) MeterEmittedEvent (byteSize uint64 ) error {
257- if s .finalized {
256+ func (state * ExecutionState ) MeterEmittedEvent (byteSize uint64 ) error {
257+ if state .finalized {
258258 return fmt .Errorf ("cannot MeterEmittedEvent on a finalized view" )
259259 }
260260
261- if s .enforceLimits {
262- return s .meter .MeterEmittedEvent (byteSize )
261+ if state .enforceLimits {
262+ return state .meter .MeterEmittedEvent (byteSize )
263263 }
264264
265265 return nil
266266}
267267
268- func (s * State ) TotalEmittedEventBytes () uint64 {
269- return s .meter .TotalEmittedEventBytes ()
268+ func (state * ExecutionState ) TotalEmittedEventBytes () uint64 {
269+ return state .meter .TotalEmittedEventBytes ()
270270}
271271
272- func (s * State ) Finalize () * ExecutionSnapshot {
273- s .finalized = true
274- snapshot := s .view .Finalize ()
275- snapshot .Meter = s .meter
272+ func (state * ExecutionState ) Finalize () * ExecutionSnapshot {
273+ state .finalized = true
274+ snapshot := state .view .Finalize ()
275+ snapshot .Meter = state .meter
276276 return snapshot
277277}
278278
279279// MergeState the changes from a the given view to this view.
280- func (s * State ) Merge (other * ExecutionSnapshot ) error {
281- if s .finalized {
280+ func (state * ExecutionState ) Merge (other * ExecutionSnapshot ) error {
281+ if state .finalized {
282282 return fmt .Errorf ("cannot Merge on a finalized view" )
283283 }
284284
285- err := s .view .Merge (other )
285+ err := state .view .Merge (other )
286286 if err != nil {
287287 return errors .NewStateMergeFailure (err )
288288 }
289289
290- s .meter .MergeMeter (other .Meter )
290+ state .meter .MergeMeter (other .Meter )
291291 return nil
292292}
293293
294- func (s * State ) checkSize (
294+ func (state * ExecutionState ) checkSize (
295295 id flow.RegisterID ,
296296 value flow.RegisterValue ,
297297) error {
298298 keySize := uint64 (len (id .Owner ) + len (id .Key ))
299299 valueSize := uint64 (len (value ))
300- if keySize > s .maxKeySizeAllowed {
300+ if keySize > state .maxKeySizeAllowed {
301301 return errors .NewStateKeySizeLimitError (
302302 id ,
303303 keySize ,
304- s .maxKeySizeAllowed )
304+ state .maxKeySizeAllowed )
305305 }
306- if valueSize > s .maxValueSizeAllowed {
306+ if valueSize > state .maxValueSizeAllowed {
307307 return errors .NewStateValueSizeLimitError (
308308 value ,
309309 valueSize ,
310- s .maxValueSizeAllowed )
310+ state .maxValueSizeAllowed )
311311 }
312312 return nil
313313}
0 commit comments