Less dippy constants
This commit is contained in:
parent
0895467f74
commit
710f1699a6
@ -7,16 +7,16 @@ let bad_contract basename =
|
||||
|
||||
let%expect_test _ =
|
||||
run_ligo_good [ "measure-contract" ; contract "coase.ligo" ; "main" ] ;
|
||||
[%expect {| 1874 bytes |}] ;
|
||||
[%expect {| 1842 bytes |}] ;
|
||||
|
||||
run_ligo_good [ "measure-contract" ; contract "multisig.ligo" ; "main" ] ;
|
||||
[%expect {| 1169 bytes |}] ;
|
||||
[%expect {| 1145 bytes |}] ;
|
||||
|
||||
run_ligo_good [ "measure-contract" ; contract "multisig-v2.ligo" ; "main" ] ;
|
||||
[%expect {| 2862 bytes |}] ;
|
||||
[%expect {| 2795 bytes |}] ;
|
||||
|
||||
run_ligo_good [ "measure-contract" ; contract "vote.mligo" ; "main" ] ;
|
||||
[%expect {| 617 bytes |}] ;
|
||||
[%expect {| 626 bytes |}] ;
|
||||
|
||||
run_ligo_good [ "compile-parameter" ; contract "coase.ligo" ; "main" ; "Buy_single (record card_to_buy = 1n end)" ] ;
|
||||
[%expect {| (Left (Left 1)) |}] ;
|
||||
@ -59,7 +59,7 @@ let%expect_test _ =
|
||||
let%expect_test _ =
|
||||
run_ligo_good [ "compile-contract" ; contract "coase.ligo" ; "main" ] ;
|
||||
[%expect {|
|
||||
{ parameter
|
||||
{ parameter
|
||||
(or (or (nat %buy_single) (nat %sell_single))
|
||||
(pair %transfer_single (nat %card_to_transfer) (address %destination))) ;
|
||||
storage
|
||||
@ -74,24 +74,33 @@ let%expect_test _ =
|
||||
IF_LEFT
|
||||
{ DUP ;
|
||||
IF_LEFT
|
||||
{ DUP ;
|
||||
DIP { DIP 2 { DUP } ; DIG 2 } ;
|
||||
{ DIP 2 { DUP } ;
|
||||
DIG 2 ;
|
||||
DIP { DUP } ;
|
||||
SWAP ;
|
||||
PAIR ;
|
||||
DUP ;
|
||||
CAR ;
|
||||
DIP { DUP } ;
|
||||
SWAP ;
|
||||
CDR ;
|
||||
DIP { DUP } ;
|
||||
SWAP ;
|
||||
DIP { DUP ; CAR ; CAR } ;
|
||||
DUP ;
|
||||
CAR ;
|
||||
CAR ;
|
||||
DIP 2 { DUP } ;
|
||||
DIG 2 ;
|
||||
GET ;
|
||||
IF_NONE
|
||||
{ PUSH string "buy_single: No card pattern." ; FAILWITH }
|
||||
{ DUP ; DIP { DROP } } ;
|
||||
DUP ;
|
||||
PUSH nat 1 ;
|
||||
SWAP ;
|
||||
CDR ;
|
||||
ADD ;
|
||||
DIP { DUP } ;
|
||||
SWAP ;
|
||||
CAR ;
|
||||
DIP { DUP ; CDR ; PUSH nat 1 ; ADD } ;
|
||||
MUL ;
|
||||
DUP ;
|
||||
AMOUNT ;
|
||||
@ -101,34 +110,44 @@ let%expect_test _ =
|
||||
IF { PUSH string "Not enough money" ; FAILWITH } { PUSH unit Unit } ;
|
||||
DIP 2 { DUP } ;
|
||||
DIG 2 ;
|
||||
DIP 3 { DUP } ;
|
||||
DIG 3 ;
|
||||
CDR ;
|
||||
PUSH nat 1 ;
|
||||
DIP 4 { DUP } ;
|
||||
DIG 4 ;
|
||||
CDR ;
|
||||
ADD ;
|
||||
SWAP ;
|
||||
CAR ;
|
||||
PAIR ;
|
||||
DIP 4 { DUP } ;
|
||||
DIG 4 ;
|
||||
DIP 6 { DUP } ;
|
||||
DIG 6 ;
|
||||
DIP { DIP { DUP } ;
|
||||
DIP 5 { DUP } ;
|
||||
DIG 5 ;
|
||||
CAR ;
|
||||
CAR ;
|
||||
DIP 2 { DUP } ;
|
||||
DIG 2 ;
|
||||
DIP 8 { DUP } ;
|
||||
DIG 8 ;
|
||||
SWAP ;
|
||||
SOME ;
|
||||
DIP { DIP 5 { DUP } ; DIG 5 ; CAR ; CAR } } ;
|
||||
SWAP ;
|
||||
UPDATE ;
|
||||
DIP { DUP ; CDR ; SWAP ; CAR ; CDR } ;
|
||||
PAIR ;
|
||||
PAIR ;
|
||||
DUP ;
|
||||
CAR ;
|
||||
CDR ;
|
||||
DIP { DIP 6 { DUP } ;
|
||||
DIG 6 ;
|
||||
DIP 7 { DUP } ;
|
||||
DIG 7 ;
|
||||
SENDER ;
|
||||
PAIR ;
|
||||
DIP 2 { DUP } ;
|
||||
DIG 2 ;
|
||||
CDR ;
|
||||
SWAP ;
|
||||
SOME ;
|
||||
DIP { DUP ; CAR ; CDR } } ;
|
||||
SWAP ;
|
||||
UPDATE ;
|
||||
DIP { DUP } ;
|
||||
SWAP ;
|
||||
@ -139,10 +158,10 @@ let%expect_test _ =
|
||||
PAIR ;
|
||||
PAIR ;
|
||||
DUP ;
|
||||
DIP { DUP } ;
|
||||
SWAP ;
|
||||
CDR ;
|
||||
PUSH nat 1 ;
|
||||
DIP 2 { DUP } ;
|
||||
DIG 2 ;
|
||||
CDR ;
|
||||
ADD ;
|
||||
SWAP ;
|
||||
CAR ;
|
||||
@ -151,43 +170,49 @@ let%expect_test _ =
|
||||
NIL operation ;
|
||||
PAIR ;
|
||||
DIP { DROP 12 } }
|
||||
{ DUP ;
|
||||
DIP { DIP 2 { DUP } ; DIG 2 } ;
|
||||
{ DIP 2 { DUP } ;
|
||||
DIG 2 ;
|
||||
DIP { DUP } ;
|
||||
SWAP ;
|
||||
PAIR ;
|
||||
DUP ;
|
||||
CAR ;
|
||||
DIP { DUP } ;
|
||||
SWAP ;
|
||||
CDR ;
|
||||
DIP { DUP } ;
|
||||
SWAP ;
|
||||
DIP { DUP ; CAR ; CDR } ;
|
||||
DUP ;
|
||||
CAR ;
|
||||
CDR ;
|
||||
DIP 2 { DUP } ;
|
||||
DIG 2 ;
|
||||
GET ;
|
||||
IF_NONE
|
||||
{ PUSH string "sell_single: No card." ; FAILWITH }
|
||||
{ DUP ; DIP { DROP } } ;
|
||||
DUP ;
|
||||
CAR ;
|
||||
SENDER ;
|
||||
SWAP ;
|
||||
CAR ;
|
||||
COMPARE ;
|
||||
NEQ ;
|
||||
IF { PUSH string "This card doesn't belong to you" ; FAILWITH }
|
||||
{ PUSH unit Unit } ;
|
||||
DIP { DUP } ;
|
||||
SWAP ;
|
||||
DIP 2 { DUP } ;
|
||||
DIG 2 ;
|
||||
CAR ;
|
||||
CAR ;
|
||||
DIP 2 { DUP } ;
|
||||
DIG 2 ;
|
||||
CDR ;
|
||||
DIP { DIP 2 { DUP } ; DIG 2 ; CAR ; CAR } ;
|
||||
GET ;
|
||||
IF_NONE
|
||||
{ PUSH string "sell_single: No card pattern." ; FAILWITH }
|
||||
{ DUP ; DIP { DROP } } ;
|
||||
DUP ;
|
||||
DIP { DUP } ;
|
||||
SWAP ;
|
||||
CDR ;
|
||||
PUSH nat 1 ;
|
||||
SWAP ;
|
||||
DIP 2 { DUP } ;
|
||||
DIG 2 ;
|
||||
CDR ;
|
||||
SUB ;
|
||||
ABS ;
|
||||
SWAP ;
|
||||
@ -195,54 +220,68 @@ let%expect_test _ =
|
||||
PAIR ;
|
||||
DIP 4 { DUP } ;
|
||||
DIG 4 ;
|
||||
DIP 4 { DUP } ;
|
||||
DIG 4 ;
|
||||
DIP 5 { DUP } ;
|
||||
DIG 5 ;
|
||||
CAR ;
|
||||
CAR ;
|
||||
DIP 2 { DUP } ;
|
||||
DIG 2 ;
|
||||
DIP 6 { DUP } ;
|
||||
DIG 6 ;
|
||||
CDR ;
|
||||
DIP { DIP { DUP } ;
|
||||
SWAP ;
|
||||
SOME ;
|
||||
DIP { DIP 5 { DUP } ; DIG 5 ; CAR ; CAR } } ;
|
||||
SWAP ;
|
||||
UPDATE ;
|
||||
DIP { DUP ; CDR ; SWAP ; CAR ; CDR } ;
|
||||
PAIR ;
|
||||
PAIR ;
|
||||
DIP 6 { DUP } ;
|
||||
DIG 6 ;
|
||||
DIP { DUP ; CAR ; CDR ; NONE (pair (address %card_owner) (nat %card_pattern)) } ;
|
||||
DUP ;
|
||||
CAR ;
|
||||
CDR ;
|
||||
DIP 7 { DUP } ;
|
||||
DIG 7 ;
|
||||
NONE (pair (address %card_owner) (nat %card_pattern)) ;
|
||||
SWAP ;
|
||||
UPDATE ;
|
||||
DIP 2 { DUP } ;
|
||||
DIG 2 ;
|
||||
CDR ;
|
||||
DIP 3 { DUP } ;
|
||||
DIG 3 ;
|
||||
CAR ;
|
||||
DIP { DIP 2 { DUP } ; DIG 2 ; CDR } ;
|
||||
MUL ;
|
||||
SENDER ;
|
||||
CONTRACT unit ;
|
||||
IF_NONE
|
||||
{ PUSH string "sell_single: No contract." ; FAILWITH }
|
||||
{ DUP ; DIP { DROP } } ;
|
||||
DIP { DUP } ;
|
||||
SWAP ;
|
||||
DIP { DUP } ;
|
||||
DUP ;
|
||||
DIP 2 { DUP } ;
|
||||
DIG 2 ;
|
||||
UNIT ;
|
||||
TRANSFER_TOKENS ;
|
||||
DUP ;
|
||||
NIL operation ;
|
||||
SWAP ;
|
||||
CONS ;
|
||||
DUP ;
|
||||
DIP { DIP 5 { DUP } ;
|
||||
DIP 5 { DUP } ;
|
||||
DIG 5 ;
|
||||
DIP 5 { DUP } ;
|
||||
DIG 5 ;
|
||||
DIP { DUP ; CDR ; SWAP ; CAR ; CAR } ;
|
||||
SWAP ;
|
||||
PAIR ;
|
||||
PAIR } ;
|
||||
PAIR ;
|
||||
DIP { DUP } ;
|
||||
SWAP ;
|
||||
PAIR ;
|
||||
DIP { DROP 14 } } ;
|
||||
DIP { DROP } }
|
||||
{ DUP ;
|
||||
DIP { DIP { DUP } ; SWAP } ;
|
||||
{ DIP { DUP } ;
|
||||
SWAP ;
|
||||
DIP { DUP } ;
|
||||
SWAP ;
|
||||
PAIR ;
|
||||
DUP ;
|
||||
CAR ;
|
||||
@ -252,38 +291,41 @@ let%expect_test _ =
|
||||
DUP ;
|
||||
CAR ;
|
||||
CDR ;
|
||||
DIP 2 { DUP } ;
|
||||
DIG 2 ;
|
||||
DUP ;
|
||||
DIP 3 { DUP } ;
|
||||
DIG 3 ;
|
||||
CAR ;
|
||||
DIP { DUP } ;
|
||||
GET ;
|
||||
IF_NONE
|
||||
{ PUSH string "transfer_single: No card." ; FAILWITH }
|
||||
{ DUP ; DIP { DROP } } ;
|
||||
DUP ;
|
||||
CAR ;
|
||||
SENDER ;
|
||||
SWAP ;
|
||||
CAR ;
|
||||
COMPARE ;
|
||||
NEQ ;
|
||||
IF { PUSH string "This card doesn't belong to you" ; FAILWITH }
|
||||
{ PUSH unit Unit } ;
|
||||
DIP 3 { DUP } ;
|
||||
DIG 3 ;
|
||||
DIP 5 { DUP } ;
|
||||
DIG 5 ;
|
||||
CAR ;
|
||||
DIP { DIP 2 { DUP } ;
|
||||
DIG 2 ;
|
||||
DIP 6 { DUP } ;
|
||||
DIG 6 ;
|
||||
DIP 3 { DUP } ;
|
||||
DIG 3 ;
|
||||
DIP 3 { DUP } ;
|
||||
DIG 3 ;
|
||||
DIP 7 { DUP } ;
|
||||
DIG 7 ;
|
||||
CDR ;
|
||||
SWAP ;
|
||||
CDR ;
|
||||
SWAP ;
|
||||
PAIR ;
|
||||
DIP 7 { DUP } ;
|
||||
DIG 7 ;
|
||||
CAR ;
|
||||
SWAP ;
|
||||
SOME ;
|
||||
DIP { DIP 3 { DUP } ; DIG 3 } } ;
|
||||
SWAP ;
|
||||
UPDATE ;
|
||||
DIP { DUP ; CDR ; SWAP ; CAR ; CAR } ;
|
||||
SWAP ;
|
||||
@ -297,7 +339,7 @@ let%expect_test _ =
|
||||
let%expect_test _ =
|
||||
run_ligo_good [ "compile-contract" ; contract "multisig.ligo" ; "main" ] ;
|
||||
[%expect {|
|
||||
{ parameter
|
||||
{ parameter
|
||||
(pair (pair (nat %counter) (lambda %message unit (list operation)))
|
||||
(list %signatures (pair key_hash signature))) ;
|
||||
storage
|
||||
@ -311,24 +353,36 @@ let%expect_test _ =
|
||||
SWAP ;
|
||||
CAR ;
|
||||
CDR ;
|
||||
DIP 2 { DUP } ;
|
||||
DIG 2 ;
|
||||
DIP { DUP } ;
|
||||
SWAP ;
|
||||
CAR ;
|
||||
CDR ;
|
||||
DIP 3 { DUP } ;
|
||||
DIG 3 ;
|
||||
CAR ;
|
||||
CAR ;
|
||||
DIP { DIP { DUP } ; SWAP ; CAR ; CDR } ;
|
||||
COMPARE ;
|
||||
NEQ ;
|
||||
IF { PUSH string "Counters does not match" ; FAILWITH }
|
||||
{ DUP ;
|
||||
DIP { DIP 2 { DUP } ; DIG 2 ; CAR ; CAR } ;
|
||||
{ CHAIN_ID ;
|
||||
DIP 2 { DUP } ;
|
||||
DIG 2 ;
|
||||
CDR ;
|
||||
CAR ;
|
||||
PAIR ;
|
||||
DIP 3 { DUP } ;
|
||||
DIG 3 ;
|
||||
CAR ;
|
||||
CAR ;
|
||||
DIP 2 { DUP } ;
|
||||
DIG 2 ;
|
||||
PAIR ;
|
||||
DIP { DIP { DUP } ; SWAP ; CDR ; CAR ; CHAIN_ID ; SWAP ; PAIR } ;
|
||||
PAIR ;
|
||||
PACK ;
|
||||
DIP 3 { DUP } ;
|
||||
DIG 3 ;
|
||||
CDR ;
|
||||
DIP { DIP 2 { DUP } ; DIG 2 ; CAR ; CAR ; PUSH nat 0 ; SWAP ; PAIR } ;
|
||||
DIP { PUSH nat 0 ; DIP 3 { DUP } ; DIG 3 ; CAR ; CAR ; PAIR } ;
|
||||
ITER { SWAP ;
|
||||
PAIR ;
|
||||
DUP ;
|
||||
@ -341,25 +395,32 @@ let%expect_test _ =
|
||||
DIP 2 { DUP } ;
|
||||
DIG 2 ;
|
||||
CDR ;
|
||||
DIP { DUP } ;
|
||||
SWAP ;
|
||||
DIP { DIP 2 { DUP } ; DIG 2 } ;
|
||||
DIP 2 { DUP } ;
|
||||
DIG 2 ;
|
||||
DIP 2 { DUP } ;
|
||||
DIG 2 ;
|
||||
PAIR ;
|
||||
DIP 2 { DUP } ;
|
||||
DIG 2 ;
|
||||
IF_CONS
|
||||
{ DIP 3 { DUP } ;
|
||||
DIG 3 ;
|
||||
{ DUP ;
|
||||
HASH_KEY ;
|
||||
DIP 4 { DUP } ;
|
||||
DIG 4 ;
|
||||
CAR ;
|
||||
DIP { DUP ; HASH_KEY } ;
|
||||
COMPARE ;
|
||||
EQ ;
|
||||
IF { DUP ;
|
||||
DIP { DIP 3 { DUP } ; DIG 3 ; CDR ; DIP { DIP 7 { DUP } ; DIG 7 } } ;
|
||||
IF { DIP 7 { DUP } ;
|
||||
DIG 7 ;
|
||||
DIP 4 { DUP } ;
|
||||
DIG 4 ;
|
||||
CDR ;
|
||||
DIP 2 { DUP } ;
|
||||
DIG 2 ;
|
||||
CHECK_SIGNATURE ;
|
||||
IF { DIP 5 { DUP } ;
|
||||
DIG 5 ;
|
||||
PUSH nat 1 ;
|
||||
IF { PUSH nat 1 ;
|
||||
DIP 6 { DUP } ;
|
||||
DIG 6 ;
|
||||
ADD ;
|
||||
DIP 6 { DUP } ;
|
||||
DIG 6 ;
|
||||
@ -403,19 +464,23 @@ let%expect_test _ =
|
||||
PAIR ;
|
||||
CAR ;
|
||||
DIP { DROP 6 } } ;
|
||||
DUP ;
|
||||
DIP 3 { DUP } ;
|
||||
DIG 3 ;
|
||||
CDR ;
|
||||
CDR ;
|
||||
DIP { DUP } ;
|
||||
SWAP ;
|
||||
CDR ;
|
||||
DIP { DIP 3 { DUP } ; DIG 3 ; CDR ; CDR } ;
|
||||
COMPARE ;
|
||||
LT ;
|
||||
IF { PUSH string "Not enough signatures passed the check" ; FAILWITH }
|
||||
{ DIP 3 { DUP } ;
|
||||
DIG 3 ;
|
||||
DIP 4 { DUP } ;
|
||||
DIG 4 ;
|
||||
PUSH nat 1 ;
|
||||
DIP 5 { DUP } ;
|
||||
DIG 5 ;
|
||||
CAR ;
|
||||
CDR ;
|
||||
PUSH nat 1 ;
|
||||
ADD ;
|
||||
DIP { DUP ; CDR ; SWAP ; CAR ; CAR } ;
|
||||
SWAP ;
|
||||
@ -431,12 +496,12 @@ let%expect_test _ =
|
||||
DIP { DUP } ;
|
||||
SWAP ;
|
||||
DIP { DROP 4 } } ;
|
||||
DUP ;
|
||||
UNIT ;
|
||||
DIP 2 { DUP } ;
|
||||
DIG 2 ;
|
||||
DIP 3 { DUP } ;
|
||||
DIG 3 ;
|
||||
SWAP ;
|
||||
EXEC ;
|
||||
DIP { DUP } ;
|
||||
PAIR ;
|
||||
DIP { DROP 5 } } } |} ]
|
||||
|
||||
@ -460,8 +525,10 @@ let%expect_test _ =
|
||||
{ DUP ;
|
||||
IF_LEFT
|
||||
{ DIP 2 { DUP } ; DIG 2 ; NIL operation ; PAIR ; DIP { DROP } }
|
||||
{ DUP ;
|
||||
DIP { DIP 2 { DUP } ; DIG 2 } ;
|
||||
{ DIP 2 { DUP } ;
|
||||
DIG 2 ;
|
||||
DIP { DUP } ;
|
||||
SWAP ;
|
||||
PAIR ;
|
||||
DUP ;
|
||||
CDR ;
|
||||
@ -478,20 +545,31 @@ let%expect_test _ =
|
||||
CAR ;
|
||||
DUP ;
|
||||
PACK ;
|
||||
DUP ;
|
||||
DIP 3 { DUP } ;
|
||||
DIG 3 ;
|
||||
CAR ;
|
||||
CAR ;
|
||||
CDR ;
|
||||
DIP { DUP } ;
|
||||
SWAP ;
|
||||
SIZE ;
|
||||
DIP { DIP 3 { DUP } ; DIG 3 ; CAR ; CAR ; CDR } ;
|
||||
COMPARE ;
|
||||
GT ;
|
||||
IF { PUSH string "Message size exceed maximum limit" ; FAILWITH }
|
||||
{ PUSH unit Unit } ;
|
||||
EMPTY_SET address ;
|
||||
DUP ;
|
||||
DIP { DIP 5 { DUP } ; DIG 5 } ;
|
||||
DIP 5 { DUP } ;
|
||||
DIG 5 ;
|
||||
DIP { DUP } ;
|
||||
SWAP ;
|
||||
PAIR ;
|
||||
DIP 3 { DUP } ;
|
||||
DIG 3 ;
|
||||
DIP { DIP 6 { DUP } ; DIG 6 ; CAR ; CDR ; CDR } ;
|
||||
DIP 6 { DUP } ;
|
||||
DIG 6 ;
|
||||
CAR ;
|
||||
CDR ;
|
||||
CDR ;
|
||||
DIP 4 { DUP } ;
|
||||
DIG 4 ;
|
||||
GET ;
|
||||
IF_NONE
|
||||
{ DIP 6 { DUP } ;
|
||||
@ -501,13 +579,17 @@ let%expect_test _ =
|
||||
CDR ;
|
||||
CAR ;
|
||||
CAR ;
|
||||
PUSH nat 1 ;
|
||||
DIP 9 { DUP } ;
|
||||
DIG 9 ;
|
||||
CDR ;
|
||||
CAR ;
|
||||
CAR ;
|
||||
SENDER ;
|
||||
GET ;
|
||||
IF_NONE { PUSH string "MAP FIND" ; FAILWITH } {} ;
|
||||
PUSH nat 1 ;
|
||||
ADD ;
|
||||
SOME ;
|
||||
DIP { DIP 7 { DUP } ; DIG 7 ; CDR ; CAR ; CAR } ;
|
||||
SENDER ;
|
||||
UPDATE ;
|
||||
DIP { DUP ; CAR ; SWAP ; CDR ; DUP ; CDR ; SWAP ; CAR ; CDR } ;
|
||||
@ -542,13 +624,17 @@ let%expect_test _ =
|
||||
CDR ;
|
||||
CAR ;
|
||||
CAR ;
|
||||
PUSH nat 1 ;
|
||||
DIP 10 { DUP } ;
|
||||
DIG 10 ;
|
||||
CDR ;
|
||||
CAR ;
|
||||
CAR ;
|
||||
SENDER ;
|
||||
GET ;
|
||||
IF_NONE { PUSH string "MAP FIND" ; FAILWITH } {} ;
|
||||
PUSH nat 1 ;
|
||||
ADD ;
|
||||
SOME ;
|
||||
DIP { DIP 8 { DUP } ; DIG 8 ; CDR ; CAR ; CAR } ;
|
||||
SENDER ;
|
||||
UPDATE ;
|
||||
DIP { DUP ; CAR ; SWAP ; CDR ; DUP ; CDR ; SWAP ; CAR ; CDR } ;
|
||||
@ -590,27 +676,43 @@ let%expect_test _ =
|
||||
SENDER ;
|
||||
GET ;
|
||||
IF_NONE { PUSH string "MAP FIND" ; FAILWITH } {} ;
|
||||
DUP ;
|
||||
DIP { DIP { DUP } ; SWAP ; CAR ; CDR ; CAR } ;
|
||||
DIP { DUP } ;
|
||||
SWAP ;
|
||||
CAR ;
|
||||
CDR ;
|
||||
CAR ;
|
||||
DIP { DUP } ;
|
||||
SWAP ;
|
||||
COMPARE ;
|
||||
GT ;
|
||||
IF { PUSH string "Maximum number of proposal reached" ; FAILWITH }
|
||||
{ PUSH unit Unit } ;
|
||||
NIL operation ;
|
||||
DUP ;
|
||||
DIP { DIP 3 { DUP } ; DIG 3 } ;
|
||||
DIP 3 { DUP } ;
|
||||
DIG 3 ;
|
||||
DIP { DUP } ;
|
||||
SWAP ;
|
||||
PAIR ;
|
||||
DIP 5 { DUP } ;
|
||||
DIG 5 ;
|
||||
DIP 4 { DUP } ;
|
||||
DIG 4 ;
|
||||
CDR ;
|
||||
CDR ;
|
||||
DIP 6 { DUP } ;
|
||||
DIG 6 ;
|
||||
SIZE ;
|
||||
DIP { DIP 4 { DUP } ; DIG 4 ; CDR ; CDR } ;
|
||||
COMPARE ;
|
||||
GE ;
|
||||
IF { DIP 4 { DUP } ;
|
||||
DIG 4 ;
|
||||
DIP 11 { DUP } ;
|
||||
DIG 11 ;
|
||||
DIP { DIP 5 { DUP } ; DIG 5 ; CAR ; CDR ; CDR ; NONE (set address) } ;
|
||||
DIP 5 { DUP } ;
|
||||
DIG 5 ;
|
||||
CAR ;
|
||||
CDR ;
|
||||
CDR ;
|
||||
DIP 12 { DUP } ;
|
||||
DIG 12 ;
|
||||
NONE (set address) ;
|
||||
SWAP ;
|
||||
UPDATE ;
|
||||
DIP { DUP ; CDR ; SWAP ; CAR ; DUP ; CAR ; SWAP ; CDR ; CAR } ;
|
||||
SWAP ;
|
||||
@ -628,12 +730,13 @@ let%expect_test _ =
|
||||
EXEC ;
|
||||
DIP { DUP } ;
|
||||
SWAP ;
|
||||
DIP 2 { DUP } ;
|
||||
DIG 2 ;
|
||||
DIP 13 { DUP } ;
|
||||
DIG 13 ;
|
||||
DIP 3 { DUP } ;
|
||||
DIG 3 ;
|
||||
CDR ;
|
||||
CAR ;
|
||||
CDR ;
|
||||
DIP { DIP 13 { DUP } ; DIG 13 } ;
|
||||
CONCAT ;
|
||||
SHA256 ;
|
||||
DIP { DUP ; CAR ; SWAP ; CDR ; DUP ; CDR ; SWAP ; CAR ; CAR } ;
|
||||
@ -655,23 +758,30 @@ let%expect_test _ =
|
||||
SWAP ;
|
||||
CDR ;
|
||||
CAR ;
|
||||
DUP ;
|
||||
DIP { DIP 11 { DUP } ; DIG 11 } ;
|
||||
DIP 11 { DUP } ;
|
||||
DIG 11 ;
|
||||
DIP { DUP } ;
|
||||
SWAP ;
|
||||
MEM ;
|
||||
IF { DIP { DUP } ;
|
||||
SWAP ;
|
||||
DIP { DUP } ;
|
||||
SWAP ;
|
||||
DIP { DIP 3 { DUP } ;
|
||||
DIG 3 ;
|
||||
CDR ;
|
||||
DIP 2 { DUP } ;
|
||||
DIG 2 ;
|
||||
CDR ;
|
||||
CAR ;
|
||||
CAR ;
|
||||
PUSH nat 1 ;
|
||||
SWAP ;
|
||||
DIP 5 { DUP } ;
|
||||
DIG 5 ;
|
||||
CDR ;
|
||||
CDR ;
|
||||
SUB ;
|
||||
ABS ;
|
||||
DIP 3 { DUP } ;
|
||||
DIG 3 ;
|
||||
SWAP ;
|
||||
SOME ;
|
||||
DIP { DIP 2 { DUP } ; DIG 2 ; CDR ; CAR ; CAR } } ;
|
||||
SWAP ;
|
||||
UPDATE ;
|
||||
DIP { DUP ; CAR ; SWAP ; CDR ; DUP ; CDR ; SWAP ; CAR ; CDR } ;
|
||||
PAIR ;
|
||||
@ -717,12 +827,18 @@ let%expect_test _ =
|
||||
{ DUP ;
|
||||
DIP 5 { DUP } ;
|
||||
DIG 5 ;
|
||||
DIP 12 { DUP } ;
|
||||
DIG 12 ;
|
||||
DIP { DIP 7 { DUP } ;
|
||||
DIG 7 ;
|
||||
DIP 6 { DUP } ;
|
||||
DIG 6 ;
|
||||
CAR ;
|
||||
CDR ;
|
||||
CDR ;
|
||||
DIP 8 { DUP } ;
|
||||
DIG 8 ;
|
||||
DIP 14 { DUP } ;
|
||||
DIG 14 ;
|
||||
SWAP ;
|
||||
SOME ;
|
||||
DIP { DIP 6 { DUP } ; DIG 6 ; CAR ; CDR ; CDR } } ;
|
||||
SWAP ;
|
||||
UPDATE ;
|
||||
DIP { DUP ; CDR ; SWAP ; CAR ; DUP ; CAR ; SWAP ; CDR ; CAR } ;
|
||||
SWAP ;
|
||||
@ -736,8 +852,10 @@ let%expect_test _ =
|
||||
DUP ;
|
||||
DIP { DROP 17 } } ;
|
||||
DIP { DROP } }
|
||||
{ DUP ;
|
||||
DIP { DIP { DUP } ; SWAP } ;
|
||||
{ DIP { DUP } ;
|
||||
SWAP ;
|
||||
DIP { DUP } ;
|
||||
SWAP ;
|
||||
PAIR ;
|
||||
DUP ;
|
||||
CDR ;
|
||||
@ -745,8 +863,13 @@ let%expect_test _ =
|
||||
SWAP ;
|
||||
CAR ;
|
||||
PACK ;
|
||||
DUP ;
|
||||
DIP { DIP { DUP } ; SWAP ; CAR ; CDR ; CDR } ;
|
||||
DIP { DUP } ;
|
||||
SWAP ;
|
||||
CAR ;
|
||||
CDR ;
|
||||
CDR ;
|
||||
DIP { DUP } ;
|
||||
SWAP ;
|
||||
GET ;
|
||||
IF_NONE
|
||||
{ DIP { DUP } ; SWAP }
|
||||
@ -754,10 +877,11 @@ let%expect_test _ =
|
||||
PUSH bool False ;
|
||||
SENDER ;
|
||||
UPDATE ;
|
||||
DIP { DUP } ;
|
||||
SWAP ;
|
||||
DUP ;
|
||||
SIZE ;
|
||||
DIP 2 { DUP } ;
|
||||
DIG 2 ;
|
||||
SIZE ;
|
||||
DIP { DUP ; SIZE } ;
|
||||
COMPARE ;
|
||||
NEQ ;
|
||||
IF { DIP 3 { DUP } ;
|
||||
@ -767,15 +891,18 @@ let%expect_test _ =
|
||||
CDR ;
|
||||
CAR ;
|
||||
CAR ;
|
||||
PUSH nat 1 ;
|
||||
DIP 6 { DUP } ;
|
||||
DIG 6 ;
|
||||
CDR ;
|
||||
CAR ;
|
||||
CAR ;
|
||||
SENDER ;
|
||||
GET ;
|
||||
IF_NONE { PUSH string "MAP FIND" ; FAILWITH } {} ;
|
||||
PUSH nat 1 ;
|
||||
SWAP ;
|
||||
SUB ;
|
||||
ABS ;
|
||||
SOME ;
|
||||
DIP { DIP 4 { DUP } ; DIG 4 ; CDR ; CAR ; CAR } ;
|
||||
SENDER ;
|
||||
UPDATE ;
|
||||
DIP { DUP ; CAR ; SWAP ; CDR ; DUP ; CDR ; SWAP ; CAR ; CDR } ;
|
||||
@ -789,17 +916,22 @@ let%expect_test _ =
|
||||
SWAP ;
|
||||
DIP { DROP 2 } }
|
||||
{ DIP 3 { DUP } ; DIG 3 } ;
|
||||
DIP { DUP } ;
|
||||
SWAP ;
|
||||
SIZE ;
|
||||
PUSH nat 0 ;
|
||||
SWAP ;
|
||||
DIP 2 { DUP } ;
|
||||
DIG 2 ;
|
||||
SIZE ;
|
||||
COMPARE ;
|
||||
EQ ;
|
||||
IF { DUP ;
|
||||
DIP 4 { DUP } ;
|
||||
DIG 4 ;
|
||||
DIP { DIP { DUP } ; SWAP ; CAR ; CDR ; CDR ; NONE (set address) } ;
|
||||
DIP { DUP } ;
|
||||
SWAP ;
|
||||
CAR ;
|
||||
CDR ;
|
||||
CDR ;
|
||||
DIP 5 { DUP } ;
|
||||
DIG 5 ;
|
||||
NONE (set address) ;
|
||||
SWAP ;
|
||||
UPDATE ;
|
||||
DIP { DUP ; CDR ; SWAP ; CAR ; DUP ; CAR ; SWAP ; CDR ; CAR } ;
|
||||
SWAP ;
|
||||
@ -815,12 +947,18 @@ let%expect_test _ =
|
||||
{ DUP ;
|
||||
DIP { DUP } ;
|
||||
SWAP ;
|
||||
DIP 5 { DUP } ;
|
||||
DIG 5 ;
|
||||
DIP { DIP 3 { DUP } ;
|
||||
DIG 3 ;
|
||||
DIP 2 { DUP } ;
|
||||
DIG 2 ;
|
||||
CAR ;
|
||||
CDR ;
|
||||
CDR ;
|
||||
DIP 4 { DUP } ;
|
||||
DIG 4 ;
|
||||
DIP 7 { DUP } ;
|
||||
DIG 7 ;
|
||||
SWAP ;
|
||||
SOME ;
|
||||
DIP { DIP 2 { DUP } ; DIG 2 ; CAR ; CDR ; CDR } } ;
|
||||
SWAP ;
|
||||
UPDATE ;
|
||||
DIP { DUP ; CDR ; SWAP ; CAR ; DUP ; CAR ; SWAP ; CDR ; CAR } ;
|
||||
SWAP ;
|
||||
@ -845,7 +983,7 @@ let%expect_test _ =
|
||||
let%expect_test _ =
|
||||
run_ligo_good [ "compile-contract" ; contract "vote.mligo" ; "main" ] ;
|
||||
[%expect {|
|
||||
{ parameter
|
||||
{ parameter
|
||||
(or (pair %reset (pair (timestamp %finish_time) (timestamp %start_time)) (string %title))
|
||||
(or %vote (unit %nay) (unit %yea))) ;
|
||||
storage
|
||||
@ -855,21 +993,33 @@ let%expect_test _ =
|
||||
code { DUP ;
|
||||
CAR ;
|
||||
IF_LEFT
|
||||
{ DUP ;
|
||||
CAR ;
|
||||
CAR ;
|
||||
PUSH nat 0 ;
|
||||
{ PUSH nat 0 ;
|
||||
EMPTY_SET address ;
|
||||
PAIR ;
|
||||
DIP { DUP } ;
|
||||
SWAP ;
|
||||
CDR ;
|
||||
DIP 2 { DUP } ;
|
||||
DIG 2 ;
|
||||
CAR ;
|
||||
CDR ;
|
||||
PAIR ;
|
||||
PUSH nat 0 ;
|
||||
DIP 3 { DUP } ;
|
||||
DIG 3 ;
|
||||
CAR ;
|
||||
CAR ;
|
||||
PAIR ;
|
||||
DIP { DUP ; CAR ; CDR ; DIP { DUP ; CDR } ; PAIR } ;
|
||||
PAIR ;
|
||||
DIP { PUSH nat 0 ; EMPTY_SET address ; PAIR } ;
|
||||
PAIR ;
|
||||
NIL operation ;
|
||||
PAIR ;
|
||||
DIP { DROP } }
|
||||
{ DUP ;
|
||||
DIP { DIP { DUP } ; SWAP ; CDR } ;
|
||||
{ DIP { DUP } ;
|
||||
SWAP ;
|
||||
CDR ;
|
||||
DIP { DUP } ;
|
||||
SWAP ;
|
||||
PAIR ;
|
||||
DUP ;
|
||||
CDR ;
|
||||
@ -881,12 +1031,12 @@ let%expect_test _ =
|
||||
IF_LEFT
|
||||
{ DIP 3 { DUP } ;
|
||||
DIG 3 ;
|
||||
DIP 4 { DUP } ;
|
||||
DIG 4 ;
|
||||
PUSH nat 1 ;
|
||||
DIP 5 { DUP } ;
|
||||
DIG 5 ;
|
||||
CAR ;
|
||||
CAR ;
|
||||
CDR ;
|
||||
PUSH nat 1 ;
|
||||
ADD ;
|
||||
DIP { DUP ; CDR ; SWAP ; CAR ; DUP ; CDR ; SWAP ; CAR ; CAR } ;
|
||||
SWAP ;
|
||||
@ -896,11 +1046,11 @@ let%expect_test _ =
|
||||
DIP { DROP } }
|
||||
{ DIP 3 { DUP } ;
|
||||
DIG 3 ;
|
||||
DIP 4 { DUP } ;
|
||||
DIG 4 ;
|
||||
CDR ;
|
||||
CDR ;
|
||||
PUSH nat 1 ;
|
||||
DIP 5 { DUP } ;
|
||||
DIG 5 ;
|
||||
CDR ;
|
||||
CDR ;
|
||||
ADD ;
|
||||
DIP { DUP ; CAR ; SWAP ; CDR ; CAR } ;
|
||||
SWAP ;
|
||||
@ -909,9 +1059,14 @@ let%expect_test _ =
|
||||
PAIR ;
|
||||
DIP { DROP } } ;
|
||||
DUP ;
|
||||
DIP 2 { DUP } ;
|
||||
DIG 2 ;
|
||||
DIP { DIP { DUP } ; SWAP ; CDR ; CAR ; PUSH bool True } ;
|
||||
DIP { DUP } ;
|
||||
SWAP ;
|
||||
CDR ;
|
||||
CAR ;
|
||||
DIP 3 { DUP } ;
|
||||
DIG 3 ;
|
||||
PUSH bool True ;
|
||||
SWAP ;
|
||||
UPDATE ;
|
||||
DIP { DUP ; CAR ; SWAP ; CDR ; CDR } ;
|
||||
PAIR ;
|
||||
@ -1134,12 +1289,14 @@ ligo: in file "create_contract_var.mligo", line 6, character 35 to line 10, char
|
||||
storage string ;
|
||||
code { PUSH string "one" ; NIL operation ; PAIR ; DIP { DROP } } } ;
|
||||
PAIR ;
|
||||
DUP ;
|
||||
CAR ;
|
||||
NIL operation ;
|
||||
DIP { DUP } ;
|
||||
SWAP ;
|
||||
CDR ;
|
||||
NIL operation ;
|
||||
DIP 2 { DUP } ;
|
||||
DIG 2 ;
|
||||
CAR ;
|
||||
CONS ;
|
||||
DIP { DIP { DUP } ; SWAP ; CDR } ;
|
||||
PAIR ;
|
||||
DIP { DROP 2 } } } |}];
|
||||
|
||||
@ -1147,10 +1304,12 @@ ligo: in file "create_contract_var.mligo", line 6, character 35 to line 10, char
|
||||
[%expect {|
|
||||
{ parameter int ;
|
||||
storage (pair (pair int string) (pair nat bool)) ;
|
||||
code { PUSH string "2" ;
|
||||
code { PUSH bool False ;
|
||||
PUSH nat 2 ;
|
||||
PAIR ;
|
||||
PUSH string "2" ;
|
||||
PUSH int 2 ;
|
||||
PAIR ;
|
||||
DIP { PUSH bool False ; PUSH nat 2 ; PAIR } ;
|
||||
PAIR ;
|
||||
NIL operation ;
|
||||
PAIR ;
|
||||
@ -1232,11 +1391,13 @@ let%expect_test _ =
|
||||
PUSH mutez 300000000 ;
|
||||
PUSH int 2 ;
|
||||
TRANSFER_TOKENS ;
|
||||
DUP ;
|
||||
DIP 2 { DUP } ;
|
||||
DIG 2 ;
|
||||
CDR ;
|
||||
NIL operation ;
|
||||
SWAP ;
|
||||
DIP 2 { DUP } ;
|
||||
DIG 2 ;
|
||||
CONS ;
|
||||
DIP { DIP 2 { DUP } ; DIG 2 ; CDR } ;
|
||||
PAIR ;
|
||||
DIP { DROP 3 } } } |}] ;
|
||||
|
||||
@ -1249,11 +1410,13 @@ let%expect_test _ =
|
||||
PUSH mutez 300000000 ;
|
||||
PUSH int 2 ;
|
||||
TRANSFER_TOKENS ;
|
||||
DUP ;
|
||||
DIP 2 { DUP } ;
|
||||
DIG 2 ;
|
||||
CDR ;
|
||||
NIL operation ;
|
||||
SWAP ;
|
||||
DIP 2 { DUP } ;
|
||||
DIG 2 ;
|
||||
CONS ;
|
||||
DIP { DIP 2 { DUP } ; DIG 2 ; CDR } ;
|
||||
PAIR ;
|
||||
DIP { DROP 3 } } } |}] ;
|
||||
|
||||
|
@ -274,15 +274,18 @@ and translate_expression (expr:expression) (env:environment) : michelson result
|
||||
)
|
||||
| E_constant{cons_name=str;arguments= lst} ->
|
||||
let module L = Logger.Stateful() in
|
||||
let%bind pre_code =
|
||||
let aux code expr =
|
||||
let%bind (pre_code, _env) =
|
||||
let aux (code, env) expr =
|
||||
let%bind expr_code = translate_expression expr env in
|
||||
L.log @@ Format.asprintf "\n%a -> %a in %a\n"
|
||||
PP.expression expr
|
||||
Michelson.pp expr_code
|
||||
PP.environment env ;
|
||||
ok (seq [ expr_code ; dip code ]) in
|
||||
bind_fold_right_list aux (seq []) lst in
|
||||
let env = Environment.add (Var.fresh (), expr.type_value) env in
|
||||
let code = code @ [expr_code] in
|
||||
ok (code, env) in
|
||||
bind_fold_right_list aux ([], env) lst in
|
||||
let pre_code = seq pre_code in
|
||||
let%bind predicate = get_operator str ty lst in
|
||||
let%bind code = match (predicate, List.length lst) with
|
||||
| Constant c, 0 -> ok @@ seq [
|
||||
|
Loading…
Reference in New Issue
Block a user