forked from cerc-io/plugeth
changed to unsigned integers
This commit is contained in:
parent
4f1ef89cb2
commit
186948da22
@ -20,9 +20,21 @@ type Account struct {
|
||||
}
|
||||
|
||||
type Log struct {
|
||||
Address string
|
||||
Data string
|
||||
Topics []string
|
||||
AddressF string `json:"address"`
|
||||
DataF string `json:"data"`
|
||||
TopicsF []string `json:"topics"`
|
||||
BloomF string `json:"bloom"`
|
||||
}
|
||||
|
||||
func (self Log) Address() []byte { return ethutil.Hex2Bytes(self.AddressF) }
|
||||
func (self Log) Data() []byte { return ethutil.Hex2Bytes(self.DataF) }
|
||||
func (self Log) RlpData() interface{} { return nil }
|
||||
func (self Log) Topics() [][]byte {
|
||||
t := make([][]byte, len(self.TopicsF))
|
||||
for i, topic := range self.TopicsF {
|
||||
t[i] = ethutil.Hex2Bytes(topic)
|
||||
}
|
||||
return t
|
||||
}
|
||||
|
||||
func StateObjectFromAccount(addr string, account Account) *state.StateObject {
|
||||
@ -53,7 +65,7 @@ type VmTest struct {
|
||||
Env Env
|
||||
Exec map[string]string
|
||||
Transaction map[string]string
|
||||
Logs map[string]Log
|
||||
Logs []Log
|
||||
Gas string
|
||||
Out string
|
||||
Post map[string]Account
|
||||
@ -128,10 +140,10 @@ func RunVmTest(p string, t *testing.T) {
|
||||
}
|
||||
|
||||
if len(test.Logs) > 0 {
|
||||
genBloom := ethutil.LeftPadBytes(types.LogsBloom(logs).Bytes(), 64)
|
||||
// Logs within the test itself aren't correct, missing empty fields (32 0s)
|
||||
for bloom /*logs*/, _ := range test.Logs {
|
||||
if !bytes.Equal(genBloom, ethutil.Hex2Bytes(bloom)) {
|
||||
for i, log := range test.Logs {
|
||||
genBloom := ethutil.LeftPadBytes(types.LogsBloom(state.Logs{logs[i]}).Bytes(), 64)
|
||||
if !bytes.Equal(genBloom, ethutil.Hex2Bytes(log.BloomF)) {
|
||||
t.Errorf("bloom mismatch")
|
||||
}
|
||||
}
|
||||
|
@ -111,10 +111,10 @@ func NewMemory() *Memory {
|
||||
return &Memory{nil}
|
||||
}
|
||||
|
||||
func (m *Memory) Set(offset, size int64, value []byte) {
|
||||
func (m *Memory) Set(offset, size uint64, value []byte) {
|
||||
if len(value) > 0 {
|
||||
totSize := offset + size
|
||||
lenSize := int64(len(m.store) - 1)
|
||||
lenSize := uint64(len(m.store) - 1)
|
||||
if totSize > lenSize {
|
||||
// Calculate the diff between the sizes
|
||||
diff := totSize - lenSize
|
||||
|
@ -98,7 +98,7 @@ func (self *DebugVm) Run(me, caller ClosureRef, code []byte, value, gas, price *
|
||||
} else {
|
||||
nop := OpCode(closure.GetOp(p))
|
||||
if !(nop == JUMPDEST || destinations[from] != nil) {
|
||||
panic(fmt.Sprintf("JUMP missed JUMPDEST (%v) %v", nop, p))
|
||||
panic(fmt.Sprintf("invalid jump destination (%v) %v", nop, p))
|
||||
} else if nop == JUMP || nop == JUMPI {
|
||||
panic(fmt.Sprintf("not allowed to JUMP(I) in to JUMP"))
|
||||
}
|
||||
@ -611,10 +611,10 @@ func (self *DebugVm) Run(me, caller ClosureRef, code []byte, value, gas, price *
|
||||
self.Printf(" => %d", l)
|
||||
case CALLDATACOPY:
|
||||
var (
|
||||
size = int64(len(callData))
|
||||
mOff = stack.Pop().Int64()
|
||||
cOff = stack.Pop().Int64()
|
||||
l = stack.Pop().Int64()
|
||||
size = uint64(len(callData))
|
||||
mOff = stack.Pop().Uint64()
|
||||
cOff = stack.Pop().Uint64()
|
||||
l = stack.Pop().Uint64()
|
||||
)
|
||||
|
||||
if cOff > size {
|
||||
@ -654,10 +654,10 @@ func (self *DebugVm) Run(me, caller ClosureRef, code []byte, value, gas, price *
|
||||
}
|
||||
|
||||
var (
|
||||
size = int64(len(code))
|
||||
mOff = stack.Pop().Int64()
|
||||
cOff = stack.Pop().Int64()
|
||||
l = stack.Pop().Int64()
|
||||
size = uint64(len(code))
|
||||
mOff = stack.Pop().Uint64()
|
||||
cOff = stack.Pop().Uint64()
|
||||
l = stack.Pop().Uint64()
|
||||
)
|
||||
|
||||
if cOff > size {
|
||||
@ -760,7 +760,7 @@ func (self *DebugVm) Run(me, caller ClosureRef, code []byte, value, gas, price *
|
||||
case MSTORE: // Store the value at stack top-1 in to memory at location stack top
|
||||
// Pop value of the stack
|
||||
val, mStart := stack.Popn()
|
||||
mem.Set(mStart.Int64(), 32, ethutil.BigToBytes(val, 256))
|
||||
mem.Set(mStart.Uint64(), 32, ethutil.BigToBytes(val, 256))
|
||||
|
||||
self.Printf(" => 0x%x", val)
|
||||
case MSTORE8:
|
||||
@ -883,7 +883,7 @@ func (self *DebugVm) Run(me, caller ClosureRef, code []byte, value, gas, price *
|
||||
stack.Push(ethutil.BigTrue)
|
||||
msg.Output = ret
|
||||
|
||||
mem.Set(retOffset.Int64(), retSize.Int64(), ret)
|
||||
mem.Set(retOffset.Uint64(), retSize.Uint64(), ret)
|
||||
}
|
||||
self.Printf("resume %x", closure.Address())
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user