forked from cerc-io/plugeth
Test code updated
This commit is contained in:
parent
bd582d919b
commit
5198b7b9eb
11
ethereum.go
11
ethereum.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
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…
Reference in New Issue
Block a user