x
600
parameter (or
(or
(or (pair %approve (address %spender) (nat %value))
(pair %burn (address %address) (nat %value)))
(or (pair %getAdministrator unit (contract address))
(or
(pair %getAllowance (pair (address %owner) (address %spender))
(contract nat))
(pair %getBalance address (contract nat)))))
(or
(or (pair %getTotalSupply unit (contract nat))
(or (pair %mint (address %address) (nat %value))
(address %setAdministrator)))
(or (bool %setPause)
(or (pair %transfer (address %from) (pair (address %to) (nat %value)))
(pair %update_metadata (string %key) (bytes %value))))));
storage (pair
(pair (address %administrator)
(pair
(big_map %balances address
(pair (map %approvals address nat) (nat %balance)))
(big_map %metadata string bytes)))
(pair (bool %paused)
(pair
(big_map %token_metadata nat
(pair (nat %token_id)
(map %token_info string bytes)))
(nat %totalSupply))));
code { UNPAIR ;
IF_LEFT
{ IF_LEFT
{ IF_LEFT
{ SWAP ;
DUP ;
DUG 2 ;
CAR ;
GET 3 ;
SENDER ;
MEM ;
IF
{}
{ SWAP ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
PUSH (option (pair (map address nat) nat)) (Some (Pair {} 0)) ;
SENDER ;
UPDATE ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
SWAP } ;
SWAP ;
DUP ;
DUG 2 ;
GET 3 ;
IF { PUSH string "FA1.2_Paused" ; FAILWITH } {} ;
PUSH nat 0 ;
DUP 3 ;
CAR ;
GET 3 ;
SENDER ;
GET ;
IF_NONE { PUSH int 92 ; FAILWITH } {} ;
CAR ;
DUP 3 ;
CAR ;
GET ;
IF_NONE { PUSH nat 0 } {} ;
COMPARE ;
EQ ;
IF { PUSH bool True } { DUP ; CDR ; PUSH nat 0 ; COMPARE ; EQ } ;
IF {} { PUSH string "FA1.2_UnsafeAllowanceChange" ; FAILWITH } ;
SWAP ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
DUP ;
SENDER ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 94 ; FAILWITH } {} ;
DUP ;
CAR ;
DUP 8 ;
CDR ;
SOME ;
DIG 8 ;
CAR ;
UPDATE ;
UPDATE 1 ;
SOME ;
SWAP ;
UPDATE ;
PAIR ;
SWAP ;
PAIR ;
PAIR }
{ SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH string "FA1.2_NotAdmin" ; FAILWITH } ;
DUP ;
CDR ;
DUP 3 ;
CAR ;
GET 3 ;
DUP 3 ;
CAR ;
GET ;
IF_NONE { PUSH int 140 ; FAILWITH } {} ;
CDR ;
COMPARE ;
GE ;
IF {} { PUSH string "FA1.2_InsufficientBalance" ; FAILWITH } ;
SWAP ;
DUP ;
DUG 2 ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
DUP ;
DUP 6 ;
CAR ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 141 ; FAILWITH } {} ;
DUP 7 ;
CDR ;
DIG 8 ;
CAR ;
GET 3 ;
DUP 9 ;
CAR ;
GET ;
IF_NONE { PUSH int 141 ; FAILWITH } {} ;
CDR ;
SUB ;
ISNAT ;
IF_NONE { PUSH int 141 ; FAILWITH } {} ;
UPDATE 2 ;
SOME ;
SWAP ;
UPDATE ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
DUP ;
DUG 2 ;
SWAP ;
CDR ;
DIG 2 ;
GET 6 ;
SUB ;
ISNAT ;
IF_NONE { PUSH int 142 ; FAILWITH } {} ;
UPDATE 6 } ;
NIL operation }
{ IF_LEFT
{ SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
NIL operation ;
DIG 2 ;
CDR ;
PUSH mutez 0 ;
DIG 3 ;
TRANSFER_TOKENS ;
CONS }
{ IF_LEFT
{ SWAP ;
DUP ;
DUG 2 ;
CAR ;
GET 3 ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
MEM ;
IF
{ SWAP ;
DUP ;
DUG 2 ;
CAR ;
GET 3 ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
GET ;
IF_NONE { PUSH int 110 ; FAILWITH } {} ;
CAR ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CDR ;
GET ;
IF_NONE { PUSH nat 0 } {} }
{ PUSH nat 0 } ;
NIL operation ;
DIG 2 ;
CDR ;
PUSH mutez 0 ;
DIG 3 ;
TRANSFER_TOKENS ;
CONS }
{ SWAP ;
DUP ;
DUG 2 ;
CAR ;
GET 3 ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
MEM ;
IF
{ SWAP ;
DUP ;
DUG 2 ;
CAR ;
GET 3 ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
GET ;
IF_NONE { PUSH int 103 ; FAILWITH } {} ;
CDR }
{ PUSH nat 0 } ;
NIL operation ;
DIG 2 ;
CDR ;
PUSH mutez 0 ;
DIG 3 ;
TRANSFER_TOKENS ;
CONS } } } }
{ IF_LEFT
{ IF_LEFT
{ SWAP ;
DUP ;
DUG 2 ;
GET 6 ;
NIL operation ;
DIG 2 ;
CDR ;
PUSH mutez 0 ;
DIG 3 ;
TRANSFER_TOKENS ;
CONS }
{ IF_LEFT
{ SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH string "FA1.2_NotAdmin" ; FAILWITH } ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
GET 3 ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
MEM ;
IF
{}
{ SWAP ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
PUSH (option (pair (map address nat) nat)) (Some (Pair {} 0)) ;
DUP 6 ;
CAR ;
UPDATE ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
SWAP } ;
SWAP ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
DUP ;
DUP 6 ;
CAR ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 133 ; FAILWITH } {} ;
DUP ;
CDR ;
DUP 8 ;
CDR ;
ADD ;
UPDATE 2 ;
SOME ;
SWAP ;
UPDATE ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
DUP ;
GET 6 ;
DIG 2 ;
CDR ;
ADD ;
UPDATE 6 }
{ SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH string "FA1.2_NotAdmin" ; FAILWITH } ;
SWAP ;
UNPAIR ;
CDR ;
DIG 2 ;
PAIR ;
PAIR } ;
NIL operation } }
{ IF_LEFT
{ SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH string "FA1.2_NotAdmin" ; FAILWITH } ;
UPDATE 3 }
{ IF_LEFT
{ SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF
{ PUSH bool True }
{ SWAP ;
DUP ;
DUG 2 ;
GET 3 ;
IF
{ PUSH bool False }
{ DUP ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF
{ PUSH bool True }
{ DUP ;
GET 4 ;
DUP 3 ;
CAR ;
GET 3 ;
DUP 3 ;
CAR ;
GET ;
IF_NONE { PUSH int 75 ; FAILWITH } {} ;
CAR ;
SENDER ;
GET ;
IF_NONE { PUSH int 75 ; FAILWITH } {} ;
COMPARE ;
GE } } } ;
IF {} { PUSH string "FA1.2_NotAllowed" ; FAILWITH } ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
GET 3 ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
MEM ;
IF
{}
{ SWAP ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
PUSH (option (pair (map address nat) nat)) (Some (Pair {} 0)) ;
DUP 6 ;
CAR ;
UPDATE ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
SWAP } ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
GET 3 ;
SWAP ;
DUP ;
DUG 2 ;
GET 3 ;
MEM ;
IF
{}
{ SWAP ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
PUSH (option (pair (map address nat) nat)) (Some (Pair {} 0)) ;
DUP 6 ;
GET 3 ;
UPDATE ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
SWAP } ;
DUP ;
GET 4 ;
DUP 3 ;
CAR ;
GET 3 ;
DUP 3 ;
CAR ;
GET ;
IF_NONE { PUSH int 81 ; FAILWITH } {} ;
CDR ;
COMPARE ;
GE ;
IF {} { PUSH string "FA1.2_InsufficientBalance" ; FAILWITH } ;
SWAP ;
DUP ;
DUG 2 ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
DUP ;
DUP 6 ;
CAR ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 82 ; FAILWITH } {} ;
DUP 7 ;
GET 4 ;
DIG 8 ;
CAR ;
GET 3 ;
DUP 9 ;
CAR ;
GET ;
IF_NONE { PUSH int 82 ; FAILWITH } {} ;
CDR ;
SUB ;
ISNAT ;
IF_NONE { PUSH int 82 ; FAILWITH } {} ;
UPDATE 2 ;
SOME ;
SWAP ;
UPDATE ;
DUP ;
DUP 6 ;
GET 3 ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 83 ; FAILWITH } {} ;
DUP ;
CDR ;
DUP 8 ;
GET 4 ;
ADD ;
UPDATE 2 ;
SOME ;
SWAP ;
UPDATE ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
SWAP ;
DUP ;
CAR ;
SENDER ;
COMPARE ;
NEQ ;
IF
{ SWAP ; DUP ; DUG 2 ; CAR ; CAR ; SENDER ; COMPARE ; NEQ }
{ PUSH bool False } ;
IF
{ SWAP ;
DUP ;
DUG 2 ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
DUP ;
DUP 6 ;
CAR ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 85 ; FAILWITH } {} ;
DUP ;
CAR ;
DUP 8 ;
GET 4 ;
DIG 9 ;
CAR ;
GET 3 ;
DIG 9 ;
CAR ;
GET ;
IF_NONE { PUSH int 85 ; FAILWITH } {} ;
CAR ;
SENDER ;
GET ;
IF_NONE { PUSH int 85 ; FAILWITH } {} ;
SUB ;
ISNAT ;
IF_NONE { PUSH int 85 ; FAILWITH } {} ;
SOME ;
SENDER ;
UPDATE ;
UPDATE 1 ;
SOME ;
SWAP ;
UPDATE ;
PAIR ;
SWAP ;
PAIR ;
PAIR }
{ DROP } }
{ SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH string "FA1.2_NotAdmin" ; FAILWITH } ;
SWAP ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
DUP 5 ;
CDR ;
SOME ;
DIG 5 ;
CAR ;
UPDATE ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
PAIR } } ;
NIL operation } } ;
PAIR }