Test code updated

pull/2/head
obscuren 11 years ago
parent bd582d919b
commit 5198b7b9eb
  1. 11
      ethereum.go
  2. 12
      vm.go

@ -4,6 +4,8 @@ import (
"fmt" "fmt"
) )
const Debug = false
func main() { func main() {
InitFees() InitFees()
@ -35,6 +37,11 @@ func main() {
bm.ProcessBlock( blck ) bm.ProcessBlock( blck )
//t := blck.MarshalRlp()
//blck.UnmarshalRlp(t) t := blck.MarshalRlp()
copyBlock := &Block{}
copyBlock.UnmarshalRlp(t)
fmt.Println(blck)
fmt.Println(copyBlock)
} }

12
vm.go

@ -64,10 +64,7 @@ type Vm struct {
} }
func NewVm() *Vm { func NewVm() *Vm {
fmt.Println("init Ethereum VM") //stackSize := uint(256)
stackSize := uint(256)
fmt.Println("stack size =", stackSize)
return &Vm{ return &Vm{
stack: make(map[string]string), stack: make(map[string]string),
@ -76,10 +73,12 @@ func NewVm() *Vm {
} }
func (vm *Vm) RunTransaction(tx *Transaction, cb TxCallback) { func (vm *Vm) RunTransaction(tx *Transaction, cb TxCallback) {
if Debug {
fmt.Printf(` fmt.Printf(`
# processing Tx (%v) # processing Tx (%v)
# fee = %f, ops = %d, sender = %s, value = %d # fee = %f, ops = %d, sender = %s, value = %d
`, tx.addr, float32(tx.fee) / 1e8, len(tx.data), tx.sender, tx.value) `, tx.addr, float32(tx.fee) / 1e8, len(tx.data), tx.sender, tx.value)
}
vm.stack = make(map[string]string) vm.stack = make(map[string]string)
vm.stack["0"] = tx.sender vm.stack["0"] = tx.sender
@ -102,7 +101,9 @@ out:
// XXX Should Instr return big int slice instead of string slice? // XXX Should Instr return big int slice instead of string slice?
op, args, _ := Instr(tx.data[stPtr]) op, args, _ := Instr(tx.data[stPtr])
if Debug {
fmt.Printf("%-3d %d %v\n", stPtr, op, args) fmt.Printf("%-3d %d %v\n", stPtr, op, args)
}
opType := OpType(tNorm) opType := OpType(tNorm)
// Determine the op type (used for calculating fees by the block manager) // Determine the op type (used for calculating fees by the block manager)
@ -178,8 +179,7 @@ out:
stPtr++ stPtr++
} else { } else {
stPtr = nptr stPtr = nptr
fmt.Println("... JMP", nptr, "...") if Debug { fmt.Println("... JMP", nptr, "...") }
} }
} }
fmt.Println("# finished processing Tx\n")
} }

Loading…
Cancel
Save