Parsing for block and tx

This commit is contained in:
obscuren 2014-01-03 13:40:38 +01:00
parent 055407c835
commit 9581faf5fd
3 changed files with 8 additions and 5 deletions

View File

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

View File

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

View File

@ -57,7 +57,7 @@ func NewTransaction(to string, value uint32, data []string) *Transaction {
for i, val := range data { for i, val := range data {
instr, err := CompileInstr(val) instr, err := CompileInstr(val)
if err != nil { 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 tx.data[i] = instr