Parsing for block and tx

pull/2/head
obscuren 11 years ago
parent 055407c835
commit 9581faf5fd
  1. 2
      block.go
  2. 9
      parsing.go
  3. 2
      transaction.go

@ -73,7 +73,7 @@ func CreateBlock(root string, num int, prevHash string, base string, difficulty
contract := NewContract(tx.value, []byte(""))
block.state.Update(string(addr), string(contract.MarshalRlp()))
for i, val := range tx.data {
contract.state.Update(string(Encode(i)), val)
contract.state.Update(string(Encode(uint32(i))), val)
}
block.UpdateContract(addr, contract)
}

@ -11,8 +11,11 @@ import (
// Op codes
var OpCodes = map[string]string{
"STOP": "0",
"PSH": "30", // 0x30
/*
"PUSH": "48", // 0x30
"POP": "49", // 0x31
"LOAD": "54", // 0x36
/* OLD VM OPCODES
"ADD": "16", // 0x10
"SUB": "17", // 0x11
"MUL": "18", // 0x12
@ -57,7 +60,7 @@ var OpCodes = map[string]string{
func CompileInstr(s string) (string, error) {
tokens := strings.Split(s, " ")
if OpCodes[tokens[0]] == "" {
return "", errors.New(fmt.Sprintf("OP not found: %s", tokens[0]))
return s, errors.New(fmt.Sprintf("OP not found: %s", tokens[0]))
}
code := OpCodes[tokens[0]] // Replace op codes with the proper numerical equivalent

@ -57,7 +57,7 @@ func NewTransaction(to string, value uint32, data []string) *Transaction {
for i, val := range data {
instr, err := CompileInstr(val)
if err != nil {
fmt.Printf("compile error:%d %v", i+1, err)
fmt.Printf("compile error:%d %v\n", i+1, err)
}
tx.data[i] = instr

Loading…
Cancel
Save