ethstate => state
This commit is contained in:
55
state/manifest.go
Normal file
55
state/manifest.go
Normal file
@ -0,0 +1,55 @@
|
||||
package state
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"math/big"
|
||||
)
|
||||
|
||||
// Object manifest
|
||||
//
|
||||
// The object manifest is used to keep changes to the state so we can keep track of the changes
|
||||
// that occurred during a state transitioning phase.
|
||||
type Manifest struct {
|
||||
Messages Messages
|
||||
}
|
||||
|
||||
func NewManifest() *Manifest {
|
||||
m := &Manifest{}
|
||||
m.Reset()
|
||||
|
||||
return m
|
||||
}
|
||||
|
||||
func (m *Manifest) Reset() {
|
||||
m.Messages = nil
|
||||
}
|
||||
|
||||
func (self *Manifest) AddMessage(msg *Message) *Message {
|
||||
self.Messages = append(self.Messages, msg)
|
||||
|
||||
return msg
|
||||
}
|
||||
|
||||
type Messages []*Message
|
||||
type Message struct {
|
||||
To, From []byte
|
||||
Input []byte
|
||||
Output []byte
|
||||
Path int
|
||||
Origin []byte
|
||||
Timestamp int64
|
||||
Coinbase []byte
|
||||
Block []byte
|
||||
Number *big.Int
|
||||
Value *big.Int
|
||||
|
||||
ChangedAddresses [][]byte
|
||||
}
|
||||
|
||||
func (self *Message) AddStorageChange(addr []byte) {
|
||||
self.ChangedAddresses = append(self.ChangedAddresses, addr)
|
||||
}
|
||||
|
||||
func (self *Message) String() string {
|
||||
return fmt.Sprintf("Message{to: %x from: %x input: %x output: %x origin: %x coinbase: %x block: %x number: %v timestamp: %d path: %d value: %v", self.To, self.From, self.Input, self.Output, self.Origin, self.Coinbase, self.Block, self.Number, self.Timestamp, self.Path, self.Value)
|
||||
}
|
Reference in New Issue
Block a user