x
204
parameter (or
(or (or (unit %clear_processors) (unit %default))
(or (address %propose_administrator) (address %remove_administrator)))
(or
(or (unit %set_administrator)
(pair %set_manager (address %address) (key %pub_key)))
(or (string %set_monitoring_peer_id)
(or
(map %set_processors string
(pair (address %address)
(pair (bytes %pub_key) (bool %isLeader))))
(pair %set_script (string %script) (string %hash))))));
storage (pair (big_map %administrators address int)
(pair (string %hash)
(pair (address %manager_address)
(pair (key %manager_pub_key)
(pair (string %monitoring_peer_id)
(pair
(map %processors string
(pair (address %address)
(pair (bytes %pub_key)
(bool %isLeader))))
(string %script)))))));
code { LAMBDA
(pair unit
(pair (big_map address int)
(pair string
(pair address
(pair key
(pair string
(pair
(map string
(pair address (pair bytes bool)))
string)))))))
(pair unit
(pair (big_map address int)
(pair string
(pair address
(pair key
(pair string
(pair
(map string
(pair address (pair bytes bool)))
string)))))))
{ CDR ;
DUP ;
CAR ;
SENDER ;
MEM ;
IF {} { PUSH string "Unauthorized" ; FAILWITH } ;
PUSH int 1 ;
DUP 2 ;
CAR ;
SENDER ;
GET ;
IF_NONE { PUSH int 19 ; FAILWITH } {} ;
COMPARE ;
EQ ;
IF {} { PUSH string "Unauthorized. Proposal is still pending." ; FAILWITH } ;
UNIT ;
PAIR } ;
SWAP ;
UNPAIR ;
IF_LEFT
{ IF_LEFT
{ IF_LEFT
{ DROP ;
UNIT ;
PAIR ;
EXEC ;
CDR ;
EMPTY_MAP string (pair address (pair bytes bool)) ;
UPDATE 11 ;
NIL operation }
{ DROP ;
SWAP ;
DROP ;
NIL operation ;
SENDER ;
CONTRACT unit ;
IF_NONE { PUSH int 90 ; FAILWITH } {} ;
AMOUNT ;
UNIT ;
TRANSFER_TOKENS ;
CONS } }
{ IF_LEFT
{ PUSH mutez 0 ;
AMOUNT ;
COMPARE ;
EQ ;
IF {} { PUSH string "No tez accepted" ; FAILWITH } ;
DIG 2 ;
UNIT ;
SWAP ;
DIG 3 ;
DIG 2 ;
PAIR ;
EXEC ;
CDR ;
DUP ;
CAR ;
PUSH (option int) (Some 0) ;
DIG 3 ;
UPDATE ;
UPDATE 1 }
{ PUSH mutez 0 ;
AMOUNT ;
COMPARE ;
EQ ;
IF {} { PUSH string "No tez accepted" ; FAILWITH } ;
DIG 2 ;
UNIT ;
SWAP ;
DIG 3 ;
DIG 2 ;
PAIR ;
EXEC ;
CDR ;
DUP ;
CAR ;
NONE int ;
DIG 3 ;
UPDATE ;
UPDATE 1 } ;
NIL operation } }
{ IF_LEFT
{ DIG 2 ;
DROP ;
IF_LEFT
{ DROP ;
PUSH mutez 0 ;
AMOUNT ;
COMPARE ;
EQ ;
IF {} { PUSH string "No tez accepted" ; FAILWITH } ;
DUP ;
CAR ;
SENDER ;
MEM ;
IF {} { PUSH string "Unauthorized" ; FAILWITH } ;
PUSH int 0 ;
DUP 2 ;
CAR ;
SENDER ;
GET ;
IF_NONE { PUSH int 42 ; FAILWITH } {} ;
COMPARE ;
EQ ;
IF {} { PUSH string "Not a proposed administrator" ; FAILWITH } ;
DUP ;
CAR ;
PUSH (option int) (Some 1) ;
SENDER ;
UPDATE ;
UPDATE 1 }
{ PUSH bool False ;
DUP 3 ;
GET 11 ;
ITER { CDR ; CAR ; SENDER ; COMPARE ; EQ ; IF { DROP ; PUSH bool True } {} } ;
IF {} { PUSH string "Not found." ; FAILWITH } ;
SWAP ;
DUP 2 ;
CAR ;
UPDATE 5 ;
SWAP ;
CDR ;
UPDATE 7 } }
{ IF_LEFT
{ DIG 2 ; UNIT ; SWAP ; DIG 3 ; DIG 2 ; PAIR ; EXEC ; CDR ; SWAP ; UPDATE 9 }
{ IF_LEFT
{ DIG 2 ;
UNIT ;
SWAP ;
DIG 3 ;
DIG 2 ;
PAIR ;
EXEC ;
CDR ;
SWAP ;
UPDATE 11 ;
PUSH int 0 ;
DUP 2 ;
GET 11 ;
ITER { CDR ; GET 4 ; IF { PUSH int 1 ; ADD } {} } ;
PUSH int 1 ;
COMPARE ;
EQ ;
IF {} { PUSH string "Invalid processors map." ; FAILWITH } }
{ DIG 2 ;
UNIT ;
SWAP ;
DIG 3 ;
DIG 2 ;
PAIR ;
EXEC ;
CDR ;
DUP 2 ;
CAR ;
UPDATE 12 ;
SWAP ;
CDR ;
UPDATE 3 } } } ;
NIL operation } ;
PAIR }