Add CREATE, CLONE and BYTECODE_HASH opcodes. Add bytecode typerep and datatype.
Format fixes. Changed type of BLOCKHASH to variant. Fixed number of parameters to include target Changed op args Protected create Make new type store a SERIALIZED CODE (instead of RAW BYTECODE) Fix test Format Make create not protected format Fix serialization of fate_code type Align Add rebar3 Use shipped rebar3 Fix serialization, test Fix tests Rename fate_code to contract_bytearray Update README
This commit is contained in:
@@ -49,7 +49,7 @@ sources() ->
|
||||
, "immediates"
|
||||
, "names"
|
||||
, "oracles"
|
||||
%% , "all_instructions"
|
||||
, "meta"
|
||||
].
|
||||
|
||||
check_roundtrip(File) ->
|
||||
|
||||
@@ -83,6 +83,15 @@ sources() ->
|
||||
aeb_fate_data:make_variant([0,1,2,3,4,5],
|
||||
3, {aeb_fate_data:make_boolean(true),
|
||||
aeb_fate_data:make_list(make_int_list(3)),
|
||||
aeb_fate_data:make_string(<<"foo">>)})
|
||||
aeb_fate_data:make_string(<<"foo">>)}),
|
||||
%% contract C =
|
||||
%% type state = int
|
||||
%% entrypoint init() = 2137
|
||||
|
||||
].
|
||||
%% cb_+FFGA6Af6sHTrctrcNGwEa8MPei7iEHIjnxcsBzlA5IK0Yn11sCllP5E1kQfADcANwAaDoJvgggZAQM/jC8BEUTWRB8RaW5pdIIvAIU0LjMuMAD7u
|
||||
aeb_fate_data:make_contract_bytearray(
|
||||
<<248,81,70,3,160,31,234,193,211,173,203,107,112,209,176,17,175,12,61,232,187,
|
||||
136,65,200,142,124,92,176,28,229,3,146,10,209,137,245,214,192,165,148,254,68,
|
||||
214,68,31,0,55,0,55,0,26,14,130,111,130,8,25,1,3,63,140,47,1,17,68,214,68,31,
|
||||
17,105,110,105,116,130,47,0,133,52,46,51,46,48,0>>)
|
||||
].
|
||||
|
||||
@@ -1,261 +0,0 @@
|
||||
;; CONTRACT all_instructions
|
||||
|
||||
;; Dont expect this contract to typecheck or run.
|
||||
;; Just used to check assembler roundtrip of all instructions.
|
||||
|
||||
FUNCTION foo () : {tuple, []}
|
||||
RETURN
|
||||
|
||||
RETURNR a
|
||||
|
||||
CALL "foo"
|
||||
|
||||
CALL_R arg125 foo 0
|
||||
|
||||
CALL_T "foo"
|
||||
|
||||
CALL_TR arg245 foo 4711
|
||||
|
||||
CALL_GTR arg245 foo 0 100
|
||||
|
||||
CALL_GR arg245 foo 0 4711
|
||||
|
||||
JUMP 5514251025295783441695716053282666408426
|
||||
|
||||
JUMPIF arg196 0x12c651665
|
||||
|
||||
SWITCH_V2 a 63 33
|
||||
|
||||
SWITCH_V3 var4 0x1d61723dd 79 7
|
||||
|
||||
SWITCH_VN arg0 [1, 2, 3]
|
||||
|
||||
PUSH var80
|
||||
|
||||
DUPA
|
||||
|
||||
DUP a
|
||||
|
||||
POP a
|
||||
|
||||
STORE arg183 var225
|
||||
|
||||
INCA
|
||||
|
||||
INC a
|
||||
|
||||
DECA
|
||||
|
||||
DEC a
|
||||
|
||||
ADD a a a
|
||||
|
||||
SUB arg35 arg165 var74
|
||||
|
||||
MUL 44 35 "foo"
|
||||
|
||||
DIV 263838340369912686645632650718169038811 a a
|
||||
|
||||
MOD var113 arg80 arg207
|
||||
|
||||
POW a a a
|
||||
|
||||
LT a 78 var81
|
||||
|
||||
GT arg19 4729414120208894485838100532547810615352 var175
|
||||
|
||||
EQ 85 a arg164
|
||||
|
||||
ELT a arg226 a
|
||||
|
||||
EGT a 1 var250
|
||||
|
||||
NEQ a a a
|
||||
|
||||
AND var255 0x294a24f6 var189
|
||||
|
||||
OR (| [2,0] | 0 | ( (), (42) ) |) arg168 var107
|
||||
|
||||
NOT arg124 a
|
||||
|
||||
TUPLE var999 5019186157739257888756115213149493826410
|
||||
|
||||
ELEMENT arg148 var25 a
|
||||
|
||||
MAP_EMPTY a
|
||||
|
||||
MAP_LOOKUP a a a
|
||||
|
||||
MAP_LOOKUPD var112 arg35 a var112
|
||||
|
||||
MAP_UPDATE false a a a
|
||||
|
||||
MAP_DELETE arg180 a var1
|
||||
|
||||
MAP_MEMBER a { true => 4} 94
|
||||
|
||||
MAP_FROM_LIST () a
|
||||
|
||||
MAP_TO_LIST a { true => 4 }
|
||||
|
||||
MAP_SIZE a { true => 42 }
|
||||
|
||||
NIL arg91
|
||||
|
||||
IS_NIL a var6
|
||||
|
||||
CONS arg185 "foo" a
|
||||
|
||||
HD a var124
|
||||
|
||||
TL arg223 a
|
||||
|
||||
LENGTH var216 a
|
||||
|
||||
APPEND { 203961992615221001243597889146034217896 => 0x1f53a1843} 281217554184165828643225535776787296845 a
|
||||
|
||||
STR_JOIN a a 7144184027126178769820155907121270843348
|
||||
|
||||
INT_TO_STR var238 a
|
||||
|
||||
ADDR_TO_STR a arg216
|
||||
|
||||
STR_REVERSE a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
|
||||
|
||||
STR_LENGTH a "foo"
|
||||
|
||||
INT_TO_ADDR arg127 var207
|
||||
|
||||
VARIANT a a 0x1f7b72200 a
|
||||
|
||||
VARIANT_TEST a arg217 a
|
||||
|
||||
VARIANT_ELEMENT a arg103 arg108
|
||||
|
||||
BITS_NONEA
|
||||
|
||||
BITS_NONE a
|
||||
|
||||
BITS_ALLA
|
||||
|
||||
BITS_ALL a
|
||||
|
||||
BITS_ALL_N a arg135
|
||||
|
||||
BITS_SET arg150 a { 0x1a715e2a6 => 3}
|
||||
|
||||
BITS_CLEAR arg98 a arg164
|
||||
|
||||
BITS_TEST a a (| [0,0,3] | 2 | (1, "foo", ()) |)
|
||||
|
||||
BITS_SUM a a
|
||||
|
||||
BITS_OR var20 var186 a
|
||||
|
||||
BITS_AND a 4 arg203
|
||||
|
||||
BITS_DIFF var200 arg247 var20
|
||||
|
||||
ADDRESS a
|
||||
|
||||
BALANCE a
|
||||
|
||||
ORIGIN arg216
|
||||
|
||||
CALLER a
|
||||
|
||||
GASPRICE arg119
|
||||
|
||||
BLOCKHASH a arg110
|
||||
|
||||
CALL_VALUE a
|
||||
|
||||
BENEFICIARY var163
|
||||
|
||||
TIMESTAMP a
|
||||
|
||||
GENERATION 242795038229506961431398379342231049652
|
||||
|
||||
MICROBLOCK arg43
|
||||
|
||||
DIFFICULTY var24
|
||||
|
||||
GASLIMIT arg220
|
||||
|
||||
GAS var35
|
||||
|
||||
LOG0 a
|
||||
|
||||
LOG1 arg86 arg208
|
||||
|
||||
LOG2 a a (| [0,1,3] | 2 | (1, "foo", ()) |)
|
||||
|
||||
LOG3 arg15 arg211 var139 arg44
|
||||
|
||||
LOG4 a a 9 a a
|
||||
|
||||
DEACTIVATE
|
||||
|
||||
SPEND @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv var136
|
||||
|
||||
ORACLE_REGISTER arg29 48 ((| [0,1,3] | 2 | (1, "foo", ()) |)) arg65 { <> => false} <>
|
||||
|
||||
ORACLE_QUERY
|
||||
|
||||
ORACLE_RESPOND
|
||||
|
||||
ORACLE_EXTEND
|
||||
|
||||
ORACLE_GET_ANSWER
|
||||
|
||||
ORACLE_GET_QUESTION
|
||||
|
||||
ORACLE_QUERY_FEE
|
||||
|
||||
AENS_RESOLVE
|
||||
|
||||
AENS_PRECLAIM
|
||||
|
||||
AENS_CLAIM
|
||||
|
||||
AENS_UPDATE
|
||||
|
||||
AENS_TRANSFER
|
||||
|
||||
AENS_REVOKE
|
||||
|
||||
ECRECOVER_SECP256K1
|
||||
|
||||
VERIFY_SIG
|
||||
|
||||
VERIFY_SIG_SECP256K1
|
||||
|
||||
ECVERIFY_SECP256K1
|
||||
|
||||
SHA3 a
|
||||
|
||||
SHA256 a
|
||||
|
||||
BLAKE2B a
|
||||
|
||||
ABORT a
|
||||
|
||||
EXIT var120
|
||||
|
||||
NOP
|
||||
|
||||
RETURNR ()
|
||||
|
||||
BALANCE_OTHER a arg0
|
||||
|
||||
SETELEMENT a 2 (1, "two", 3) 2
|
||||
|
||||
AUTH_TX_HASH
|
||||
|
||||
CONTRACT_TO_ADDRESS @ct_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
|
||||
|
||||
IS_ORACLE @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
|
||||
|
||||
IS_CONTRACT @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
|
||||
|
||||
IS_PAYABLE @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
|
||||
@@ -0,0 +1,11 @@
|
||||
;; CONTRACT meta
|
||||
|
||||
FUNCTION meta() : boolean
|
||||
CREATE a @cb_+PJGA6A4Fz4T2LHV5knITCldR3rqO7HrXO2zhOAR9JWNbhf8Q8C4xbhx/gx8JckANwAXfQBVACAAAP4vhlvZADcABwECgv5E1kQfADcBBzcACwAWMBReAHMAFjBvJFMAFjBvggOoFAAUABQSggABAz/+tIwWhAA3AAdTAAD+1jB5kAQ3AAcLAAD+6MRetgA3AQc3ABoGggABAz+4TS8GEQx8JclFY2FsbGVyX2lzX2NyZWF0b3IRL4Zb2Q1nZXQRRNZEHxFpbml0EbSMFoQdYmFsYW5jZRHWMHmQFXZhbHVlEejEXrYNc2V0gi8AhTQuMy4wAUqQ8s4= a 2137
|
||||
|
||||
CLONE a a arg0 2137 false
|
||||
|
||||
BYTECODE_HASH a a
|
||||
BYTECODE_HASH a a
|
||||
EQ a a a
|
||||
RETURNR a
|
||||
Reference in New Issue
Block a user