diff options
author | obscuren <obscuren@obscura.com> | 2014-01-03 20:40:38 +0800 |
---|---|---|
committer | obscuren <obscuren@obscura.com> | 2014-01-03 20:40:38 +0800 |
commit | 9581faf5fdacf4a135bcdf77d6f0fbe0d6eecba8 (patch) | |
tree | ae74d77233f6280c56b6f7c151ccae7d2851bc00 | |
parent | 055407c835328c8b9628c73ddd7ba872d787c09d (diff) | |
download | dexon-9581faf5fdacf4a135bcdf77d6f0fbe0d6eecba8.tar.gz dexon-9581faf5fdacf4a135bcdf77d6f0fbe0d6eecba8.tar.zst dexon-9581faf5fdacf4a135bcdf77d6f0fbe0d6eecba8.zip |
Parsing for block and tx
-rw-r--r-- | block.go | 2 | ||||
-rw-r--r-- | parsing.go | 9 | ||||
-rw-r--r-- | transaction.go | 2 |
3 files changed, 8 insertions, 5 deletions
@@ -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) } diff --git a/parsing.go b/parsing.go index 765950a4c..4c3f1187e 100644 --- a/parsing.go +++ b/parsing.go @@ -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 diff --git a/transaction.go b/transaction.go index dc5204f9b..1cfa6d729 100644 --- a/transaction.go +++ b/transaction.go @@ -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 |