Skip to content

Commit 9fd81a0

Browse files
committed
Rename State to ExecutionState
I'm going to refactor delta view into SpockState and StorageState. Renaming State to ExecutionState to distinguish the different states.
1 parent 302e23d commit 9fd81a0

File tree

5 files changed

+97
-95
lines changed

5 files changed

+97
-95
lines changed
Lines changed: 71 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -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
}
Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@ func createByteArray(size int) []byte {
1919
return bytes
2020
}
2121

22-
func TestState_Finalize(t *testing.T) {
22+
func TestExecutionState_Finalize(t *testing.T) {
2323
view := delta.NewDeltaView(nil)
24-
parent := state.NewState(view, state.DefaultParameters())
24+
parent := state.NewExecutionState(view, state.DefaultParameters())
2525

2626
child := parent.NewChild()
2727

@@ -65,9 +65,9 @@ func TestState_Finalize(t *testing.T) {
6565

6666
}
6767

68-
func TestState_ChildMergeFunctionality(t *testing.T) {
68+
func TestExecutionState_ChildMergeFunctionality(t *testing.T) {
6969
view := delta.NewDeltaView(nil)
70-
st := state.NewState(view, state.DefaultParameters())
70+
st := state.NewExecutionState(view, state.DefaultParameters())
7171

7272
t.Run("test read from parent state (backoff)", func(t *testing.T) {
7373
key := flow.NewRegisterID("address", "key1")
@@ -137,9 +137,11 @@ func TestState_ChildMergeFunctionality(t *testing.T) {
137137

138138
}
139139

140-
func TestState_MaxValueSize(t *testing.T) {
140+
func TestExecutionState_MaxValueSize(t *testing.T) {
141141
view := delta.NewDeltaView(nil)
142-
st := state.NewState(view, state.DefaultParameters().WithMaxValueSizeAllowed(6))
142+
st := state.NewExecutionState(
143+
view,
144+
state.DefaultParameters().WithMaxValueSizeAllowed(6))
143145

144146
key := flow.NewRegisterID("address", "key")
145147

@@ -154,9 +156,9 @@ func TestState_MaxValueSize(t *testing.T) {
154156
require.Error(t, err)
155157
}
156158

157-
func TestState_MaxKeySize(t *testing.T) {
159+
func TestExecutionState_MaxKeySize(t *testing.T) {
158160
view := delta.NewDeltaView(nil)
159-
st := state.NewState(
161+
st := state.NewExecutionState(
160162
view,
161163
// Note: owners are always 8 bytes
162164
state.DefaultParameters().WithMaxKeySizeAllowed(8+2))
@@ -182,7 +184,7 @@ func TestState_MaxKeySize(t *testing.T) {
182184

183185
}
184186

185-
func TestState_MaxInteraction(t *testing.T) {
187+
func TestExecutionState_MaxInteraction(t *testing.T) {
186188
view := delta.NewDeltaView(nil)
187189

188190
key1 := flow.NewRegisterID("1", "2")
@@ -200,7 +202,7 @@ func TestState_MaxInteraction(t *testing.T) {
200202
key4 := flow.NewRegisterID("3", "4567")
201203
key4Size := uint64(8 + 4)
202204

203-
st := state.NewState(
205+
st := state.NewExecutionState(
204206
view,
205207
state.DefaultParameters().
206208
WithMeterParameters(
@@ -222,7 +224,7 @@ func TestState_MaxInteraction(t *testing.T) {
222224
require.Error(t, err)
223225
require.Equal(t, st.InteractionUsed(), key1Size+key2Size+key3Size)
224226

225-
st = state.NewState(
227+
st = state.NewExecutionState(
226228
view,
227229
state.DefaultParameters().
228230
WithMeterParameters(

0 commit comments

Comments
 (0)