aboutsummaryrefslogtreecommitdiffstats
path: root/core/vm/opcodes.go
diff options
context:
space:
mode:
authorWei-Ning Huang <w@cobinhood.com>2018-10-18 13:12:16 +0800
committerWei-Ning Huang <w@byzantine-lab.io>2019-06-12 17:23:39 +0800
commitdb1d03b5c2a6fbe370526dfaf283638773bab032 (patch)
tree305237d4831233521fe46f5901c34c8baccf9d4d /core/vm/opcodes.go
parent12eb896a11eaf15712339ffa7eedf2b7c88fdfdd (diff)
downloadgo-tangerine-db1d03b5c2a6fbe370526dfaf283638773bab032.tar.gz
go-tangerine-db1d03b5c2a6fbe370526dfaf283638773bab032.tar.zst
go-tangerine-db1d03b5c2a6fbe370526dfaf283638773bab032.zip
core: vm: implement RAND opcode support
DEXON has a built-in on chain random oracle that allow one to retrieve a random variable. Add a new opcode `RAND` to load the random variable onto the stack.
Diffstat (limited to 'core/vm/opcodes.go')
-rw-r--r--core/vm/opcodes.go3
1 files changed, 3 insertions, 0 deletions
diff --git a/core/vm/opcodes.go b/core/vm/opcodes.go
index 4349ffd29..8762d4b43 100644
--- a/core/vm/opcodes.go
+++ b/core/vm/opcodes.go
@@ -71,6 +71,7 @@ const (
SAR
SHA3 = 0x20
+ RAND = 0x2f
)
// 0x30 range - closure state.
@@ -251,6 +252,7 @@ var opCodeToString = map[OpCode]string{
// 0x20 range - crypto.
SHA3: "SHA3",
+ RAND: "RAND",
// 0x30 range - closure state.
ADDRESS: "ADDRESS",
@@ -420,6 +422,7 @@ var stringToOp = map[string]OpCode{
"ADDMOD": ADDMOD,
"MULMOD": MULMOD,
"SHA3": SHA3,
+ "RAND": RAND,
"ADDRESS": ADDRESS,
"BALANCE": BALANCE,
"ORIGIN": ORIGIN,