x
358
parameter (or (or (or (unit %accept_ownership) (pair %add_record (string %name) (bytes %value))) (or (pair %add_template (string %name) (lambda %originateFunc (pair (big_map string bytes) bytes) (pair (pair (address %address) (bytes %metadata)) (operation %operation)))) (pair %create_proxy (bytes %params) (string %templateName)))) (or (or (pair %is_originated_contract (contract %callback bool) (address %contractAddress)) (string %remove_record)) (or (string %remove_template) (address %update_admin))));storage (pair (pair (pair (address %administrator) (big_map %originatedContracts address bytes)) (pair (option %proposedAdministrator address) (big_map %records string bytes))) (map %templates string (lambda (pair (big_map string bytes) bytes) (pair (pair (address %address) (bytes %metadata)) (operation %operation)))));code { LAMBDA unit unit { DROP ; PUSH mutez 0 ; AMOUNT ; COMPARE ; EQ ; IF { UNIT } { PUSH string "This entrypoint should not receive tez" ; FAILWITH } } ; LAMBDA (pair (pair (pair address (big_map address bytes)) (pair (option address) (big_map string bytes))) (map string (lambda (pair (big_map string bytes) bytes) (pair (pair address bytes) operation)))) unit { CAR ; CAR ; CAR ; SENDER ; COMPARE ; EQ ; IF { UNIT } { PUSH string "Entrypoint can call only administrator" ; FAILWITH } } ; DIG 2 ; UNPAIR ; IF_LEFT { IF_LEFT { IF_LEFT { DROP ; SWAP ; DROP ; PUSH unit Unit ; DIG 2 ; SWAP ; EXEC ; DROP ; DUP ; CAR ; CDR ; CAR ; IF_NONE { PUSH string "Not proposed admin" ; FAILWITH } {} ; DUP ; SENDER ; COMPARE ; EQ ; IF { SWAP ; DUP ; DUG 2 ; CDR ; DUP 3 ; CAR ; CDR ; DIG 3 ; CAR ; CAR ; CDR ; DIG 3 ; PAIR ; PAIR ; PAIR ; DUP ; CDR ; SWAP ; DUP ; DUG 2 ; CAR ; CDR ; CDR ; NONE address ; PAIR ; DIG 2 ; CAR ; CAR ; PAIR ; PAIR } { DROP ; PUSH string "Not proposed admin" ; FAILWITH } ; NIL operation ; PAIR } { PUSH unit Unit ; DIG 4 ; SWAP ; EXEC ; DROP ; SWAP ; DUP ; DUG 2 ; DIG 3 ; SWAP ; EXEC ; DROP ; SWAP ; DUP ; DUG 2 ; CDR ; DUP 3 ; CAR ; CDR ; CDR ; DUP 3 ; CDR ; DIG 3 ; CAR ; SWAP ; SOME ; SWAP ; UPDATE ; DUP 3 ; CAR ; CDR ; CAR ; PAIR ; DIG 2 ; CAR ; CAR ; PAIR ; PAIR ; NIL operation ; PAIR } } { IF_LEFT { PUSH unit Unit ; DIG 4 ; SWAP ; EXEC ; DROP ; SWAP ; DUP ; DUG 2 ; DIG 3 ; SWAP ; EXEC ; DROP ; SWAP ; DUP ; DUG 2 ; CDR ; SWAP ; DUP ; DUG 2 ; CDR ; DIG 2 ; CAR ; SWAP ; SOME ; SWAP ; UPDATE ; SWAP ; CAR ; PAIR ; NIL operation ; PAIR } { DIG 2 ; DROP ; PUSH unit Unit ; DIG 3 ; SWAP ; EXEC ; DROP ; SWAP ; DUP ; DUG 2 ; CDR ; SWAP ; DUP ; DUG 2 ; CDR ; GET ; IF_NONE { PUSH string "Template is not found" ; FAILWITH } {} ; SWAP ; CAR ; DUP 3 ; CAR ; CDR ; CDR ; PAIR ; EXEC ; SWAP ; DUP ; DUG 2 ; CDR ; DUP 3 ; CAR ; CDR ; DUP 4 ; CAR ; CAR ; CDR ; DUP 4 ; CAR ; CDR ; DUP 5 ; CAR ; CAR ; SWAP ; SOME ; SWAP ; UPDATE ; DIG 4 ; CAR ; CAR ; CAR ; PAIR ; PAIR ; PAIR ; NIL operation ; DIG 2 ; CDR ; CONS ; PAIR } } } { IF_LEFT { IF_LEFT { DIG 2 ; DROP ; PUSH unit Unit ; DIG 3 ; SWAP ; EXEC ; DROP ; DUP ; CAR ; PUSH mutez 0 ; DUP 4 ; CAR ; CAR ; CDR ; DIG 3 ; CDR ; GET ; IF_NONE { PUSH bool False } { DROP ; PUSH bool True } ; TRANSFER_TOKENS ; SWAP ; NIL operation ; DIG 2 ; CONS ; PAIR } { PUSH unit Unit ; DIG 4 ; SWAP ; EXEC ; DROP ; SWAP ; DUP ; DUG 2 ; DIG 3 ; SWAP ; EXEC ; DROP ; SWAP ; DUP ; DUG 2 ; CDR ; DUP 3 ; CAR ; CDR ; CDR ; DIG 2 ; NONE bytes ; SWAP ; UPDATE ; DUP 3 ; CAR ; CDR ; CAR ; PAIR ; DIG 2 ; CAR ; CAR ; PAIR ; PAIR ; NIL operation ; PAIR } } { IF_LEFT { PUSH unit Unit ; DIG 4 ; SWAP ; EXEC ; DROP ; SWAP ; DUP ; DUG 2 ; DIG 3 ; SWAP ; EXEC ; DROP ; SWAP ; DUP ; DUG 2 ; CDR ; SWAP ; NONE (lambda (pair (big_map string bytes) bytes) (pair (pair address bytes) operation)) ; SWAP ; UPDATE ; SWAP ; CAR ; PAIR ; NIL operation ; PAIR } { SWAP ; PUSH unit Unit ; DIG 4 ; SWAP ; EXEC ; DROP ; DUP ; DIG 3 ; SWAP ; EXEC ; DROP ; DUP ; CDR ; SWAP ; DUP ; DUG 2 ; CAR ; CDR ; CDR ; DIG 3 ; SOME ; PAIR ; DIG 2 ; CAR ; CAR ; PAIR ; PAIR ; NIL operation ; PAIR } } } }