Michelson: SOURCE now returns an address
This commit is contained in:
parent
5579d3cc97
commit
86c18bcd9d
@ -731,9 +731,9 @@ let rec interp
|
||||
| Limited { remaining } -> remaining
|
||||
| Unaccounted -> Z.of_string "99999999" in
|
||||
logged_return (Item (Script_int.(abs (of_zint steps)), rest), ctxt)
|
||||
| Source t, rest ->
|
||||
| Source, rest ->
|
||||
Lwt.return (Gas.consume ctxt Interp_costs.source) >>=? fun ctxt ->
|
||||
logged_return (Item ((t, source), rest), ctxt)
|
||||
logged_return (Item (source, rest), ctxt)
|
||||
| Self t, rest ->
|
||||
Lwt.return (Gas.consume ctxt Interp_costs.self) >>=? fun ctxt ->
|
||||
logged_return (Item ((t,self), rest), ctxt)
|
||||
|
@ -206,7 +206,7 @@ let number_of_generated_growing_types : type b a. (b, a) instr -> int = function
|
||||
| Hash_key -> 0
|
||||
| H _ -> 0
|
||||
| Steps_to_quota -> 0
|
||||
| Source _ -> 1
|
||||
| Source -> 0
|
||||
| Self _ -> 1
|
||||
| Amount -> 0
|
||||
|
||||
@ -2125,11 +2125,10 @@ and parse_instr
|
||||
stack ->
|
||||
typed ctxt loc Steps_to_quota
|
||||
(Item_t (Nat_t, stack, instr_annot))
|
||||
| Prim (loc, I_SOURCE, [ ta ], instr_annot),
|
||||
| Prim (loc, I_SOURCE, [], instr_annot),
|
||||
stack ->
|
||||
(Lwt.return (parse_ty false ta)) >>=? fun (Ex_ty ta, _) ->
|
||||
typed ctxt loc (Source ta)
|
||||
(Item_t (Contract_t ta, stack, instr_annot))
|
||||
typed ctxt loc Source
|
||||
(Item_t (Address_t, stack, instr_annot))
|
||||
| Prim (loc, I_SELF, [], instr_annot),
|
||||
stack ->
|
||||
let rec get_toplevel_type : tc_context -> (bef judgement * context) tzresult Lwt.t = function
|
||||
@ -2153,7 +2152,7 @@ and parse_instr
|
||||
| I_MANAGER | I_TRANSFER_TOKENS | I_CREATE_ACCOUNT
|
||||
| I_CREATE_CONTRACT | I_NOW
|
||||
| I_IMPLICIT_ACCOUNT | I_AMOUNT | I_BALANCE
|
||||
| I_CHECK_SIGNATURE | I_HASH_KEY
|
||||
| I_CHECK_SIGNATURE | I_HASH_KEY | I_SOURCE
|
||||
| I_H | I_STEPS_TO_QUOTA | I_ADDRESS
|
||||
as name), (_ :: _ as l), _), _ ->
|
||||
fail (Invalid_arity (loc, name, 0, List.length l))
|
||||
@ -2163,7 +2162,7 @@ and parse_instr
|
||||
| _ :: _ :: _ as l), _), _ ->
|
||||
fail (Invalid_arity (loc, name, 1, List.length l))
|
||||
| Prim (loc, (I_PUSH | I_IF_NONE | I_IF_LEFT | I_IF_CONS
|
||||
| I_EMPTY_MAP | I_IF | I_SOURCE
|
||||
| I_EMPTY_MAP | I_IF
|
||||
as name), ([] | [ _ ]
|
||||
| _ :: _ :: _ :: _ as l), _), _ ->
|
||||
fail (Invalid_arity (loc, name, 2, List.length l))
|
||||
|
@ -352,8 +352,8 @@ and ('bef, 'aft) instr =
|
||||
('a * 'rest, string * 'rest) instr
|
||||
| Steps_to_quota : (* TODO: check that it always returns a nat *)
|
||||
('rest, n num * 'rest) instr
|
||||
| Source : 'p ty ->
|
||||
('rest, 'p typed_contract * 'rest) instr
|
||||
| Source :
|
||||
('rest, Contract.t * 'rest) instr
|
||||
| Self : 'p ty ->
|
||||
('rest, 'p typed_contract * 'rest) instr
|
||||
| Amount :
|
||||
|
Loading…
Reference in New Issue
Block a user