x
138
parameter (or
(or (address %add_valid_source)
(or (pair %fulfill (bytes %script) (bytes %payload))
(address %remove_valid_source)))
(or (or (address %set_administrator) (address %set_receiver))
(or (string %set_valid_certificate) (bytes %set_valid_script))));
storage (pair (pair (address %administrator) (address %receiver))
(pair (string %valid_certificate)
(pair (bytes %valid_script) (set %valid_sources address))));
code { UNPAIR ;
IF_LEFT
{ IF_LEFT
{ SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH int 401 ; FAILWITH } ;
SWAP ;
DUP ;
GET 6 ;
PUSH bool True ;
DIG 3 ;
UPDATE ;
UPDATE 6 ;
NIL operation }
{ IF_LEFT
{ DUP ;
CAR ;
DUP 3 ;
GET 5 ;
COMPARE ;
EQ ;
IF {} { PUSH int 430 ; FAILWITH } ;
SWAP ;
DUP ;
DUG 2 ;
GET 6 ;
SOURCE ;
MEM ;
IF {} { PUSH int 431 ; FAILWITH } ;
CDR ;
UNPACK (pair string nat) ;
IF_NONE { PUSH int 118 ; FAILWITH } {} ;
DUP ;
CAR ;
DUP 3 ;
GET 3 ;
COMPARE ;
EQ ;
IF {} { PUSH int 432 ; FAILWITH } ;
NIL operation ;
DUP 3 ;
CAR ;
CDR ;
CONTRACT %select_token_id nat ;
IF_NONE { PUSH int 122 ; FAILWITH } {} ;
PUSH mutez 0 ;
DIG 3 ;
CDR ;
TRANSFER_TOKENS ;
CONS }
{ SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH int 401 ; FAILWITH } ;
SWAP ;
DUP ;
GET 6 ;
PUSH bool False ;
DIG 3 ;
UPDATE ;
UPDATE 6 ;
NIL operation } } }
{ IF_LEFT
{ IF_LEFT
{ SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH int 401 ; FAILWITH } ;
SWAP ;
UNPAIR ;
CDR ;
DIG 2 ;
PAIR ;
PAIR }
{ SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH int 401 ; FAILWITH } ;
SWAP ;
UNPAIR ;
CAR ;
DIG 2 ;
SWAP ;
PAIR ;
PAIR } }
{ IF_LEFT
{ SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH int 401 ; FAILWITH } ;
UPDATE 3 }
{ SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH int 401 ; FAILWITH } ;
UPDATE 5 } } ;
NIL operation } ;
PAIR }