Commit 2d3c3674 authored by obscuren's avatar obscuren

Updated stack based vm

parent 6ab61f2c
......@@ -11,49 +11,28 @@ import (
// Op codes
var OpCodes = map[string]string{
"STOP": "0",
"PUSH": "48", // 0x30
"POP": "49", // 0x31
"LOAD": "54", // 0x36
/* OLD VM OPCODES
"ADD": "16", // 0x10
"SUB": "17", // 0x11
"MUL": "18", // 0x12
"DIV": "19", // 0x13
"SDIV": "20", // 0x14
"MOD": "21", // 0x15
"SMOD": "22", // 0x16
"EXP": "23", // 0x17
"NEG": "24", // 0x18
"LT": "32", // 0x20
"LE": "33", // 0x21
"GT": "34", // 0x22
"GE": "35", // 0x23
"EQ": "36", // 0x24
"NOT": "37", // 0x25
"SHA256": "48", // 0x30
"RIPEMD160": "49", // 0x31
"ECMUL": "50", // 0x32
"ECADD": "51", // 0x33
"SIGN": "52", // 0x34
"RECOVER": "53", // 0x35
"COPY": "64", // 0x40
"ST": "65", // 0x41
"LD": "66", // 0x42
"SET": "67", // 0x43
"JMP": "80", // 0x50
"JMPI": "81", // 0x51
"IND": "82", // 0x52
"EXTRO": "96", // 0x60
"BALANCE": "97", // 0x61
"MKTX": "112", // 0x70
"DATA": "128", // 0x80
"DATAN": "129", // 0x81
"MYADDRESS": "144", // 0x90
"BLKHASH": "145", // 0x91
"COINBASE": "146", // 0x92
"SUICIDE": "255", // 0xff
*/
"ADD": "1",
"MUL": "2",
"SUB": "3",
"DIV": "4",
"SDIV": "5",
"MOD": "6",
"SMOD": "7",
"EXP": "8",
"NEG": "9",
"LT": "10",
"LE": "11",
"GT": "12",
"GE": "13",
"EQ": "14",
"NOT": "15",
"MYADDRESS": "16",
"TXSENDER": "17",
"PUSH": "48",
"POP": "49",
"LOAD": "54",
}
......
This diff is collapsed.
......@@ -7,23 +7,66 @@ import (
func TestVm(t *testing.T) {
InitFees()
db, _ := NewMemDatabase()
Db = db
ctrct := NewTransaction("", 20, []string{
"PUSH",
"1a2f2e",
"PUSH",
"hallo",
ctrct := NewTransaction("", 200000000, []string{
"PUSH", "1a2f2e",
"PUSH", "hallo",
"POP", // POP hallo
"PUSH",
"3",
"PUSH", "3",
"LOAD", // Load hallo back on the stack
"PUSH", "1",
"PUSH", "2",
"ADD",
"PUSH", "2",
"PUSH", "1",
"SUB",
"PUSH", "100000000000000000000000",
"PUSH", "10000000000000",
"SDIV",
"PUSH", "105",
"PUSH", "200",
"MOD",
"PUSH", "100000000000000000000000",
"PUSH", "10000000000000",
"SMOD",
"PUSH", "5",
"PUSH", "10",
"LT",
"PUSH", "5",
"PUSH", "5",
"LE",
"PUSH", "50",
"PUSH", "5",
"GT",
"PUSH", "5",
"PUSH", "5",
"GE",
"PUSH", "10",
"PUSH", "10",
"NOT",
"MYADDRESS",
"TXSENDER",
"STOP",
})
tx := NewTransaction("1e8a42ea8cce13", 100, []string{})
block := CreateBlock("", 0, "", "", 0, 0, "", []*Transaction{ctrct, tx})
block := CreateBlock("", 0, "", "c014ba53", 0, 0, "", []*Transaction{ctrct, tx})
db.Put(block.Hash(), block.MarshalRlp())
bm := NewBlockManager()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment