x
729
parameter (or
(or
(or (nat %ModifyParameters)
(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 (unit %mint) (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
(pair (address %administrator)
(big_map %balances address
(pair (map %approvals address nat) (nat %balance))))
(pair (nat %lastUpdate) (big_map %metadata string bytes)))
(pair
(pair (bool %paused)
(big_map %token_metadata nat
(pair (nat %token_id)
(map %token_info string bytes))))
(pair (nat %tokensPerBlock) (nat %totalSupply))));
code { UNPAIR ;
IF_LEFT
{ IF_LEFT
{ IF_LEFT
{ SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH string "Sender is not authorized" ; FAILWITH } ;
UPDATE 5 ;
UNPAIR ;
UNPAIR ;
SWAP ;
CDR ;
LEVEL ;
PAIR ;
SWAP ;
PAIR ;
PAIR }
{ IF_LEFT
{ SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
CDR ;
SENDER ;
MEM ;
IF
{}
{ SWAP ;
UNPAIR ;
UNPAIR ;
UNPAIR ;
SWAP ;
PUSH (option (pair (map address nat) nat)) (Some (Pair {} 0)) ;
SENDER ;
UPDATE ;
SWAP ;
PAIR ;
PAIR ;
PAIR ;
SWAP } ;
SWAP ;
DUP ;
DUG 2 ;
GET 3 ;
CAR ;
IF { PUSH string "FA1.2_Paused" ; FAILWITH } {} ;
PUSH nat 0 ;
DUP 3 ;
CAR ;
CAR ;
CDR ;
SENDER ;
GET ;
IF_NONE { PUSH int 98 ; 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 ;
UNPAIR ;
SWAP ;
DUP ;
SENDER ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 100 ; FAILWITH } {} ;
DUP ;
CAR ;
DUP 8 ;
CDR ;
SOME ;
DIG 8 ;
CAR ;
UPDATE ;
UPDATE 1 ;
SOME ;
SWAP ;
UPDATE ;
SWAP ;
PAIR ;
PAIR ;
PAIR }
{ DUP ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF
{}
{ PUSH string "Sender and Parameter Address are not the same" ;
FAILWITH } ;
DUP ;
CDR ;
DUP 3 ;
CAR ;
CAR ;
CDR ;
DUP 3 ;
CAR ;
GET ;
IF_NONE { PUSH int 168 ; FAILWITH } {} ;
CDR ;
COMPARE ;
GE ;
IF {} { PUSH string "FA1.2_InsufficientBalance" ; FAILWITH } ;
SWAP ;
DUP ;
DUG 2 ;
UNPAIR ;
UNPAIR ;
UNPAIR ;
SWAP ;
DUP ;
DUP 6 ;
CAR ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 170 ; FAILWITH } {} ;
DUP 7 ;
CDR ;
DIG 8 ;
CAR ;
CAR ;
CDR ;
DUP 9 ;
CAR ;
GET ;
IF_NONE { PUSH int 170 ; FAILWITH } {} ;
CDR ;
SUB ;
ISNAT ;
IF_NONE { PUSH int 170 ; FAILWITH } {} ;
UPDATE 2 ;
SOME ;
SWAP ;
UPDATE ;
SWAP ;
PAIR ;
PAIR ;
PAIR ;
DUP ;
DUG 2 ;
SWAP ;
CDR ;
DIG 2 ;
GET 6 ;
SUB ;
ISNAT ;
IF_NONE { PUSH int 171 ; FAILWITH } {} ;
UPDATE 6 } } ;
NIL operation }
{ IF_LEFT
{ SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
CAR ;
NIL operation ;
DIG 2 ;
CDR ;
PUSH mutez 0 ;
DIG 3 ;
TRANSFER_TOKENS ;
CONS }
{ IF_LEFT
{ SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
CDR ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
MEM ;
IF
{ SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
CDR ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
GET ;
IF_NONE { PUSH int 116 ; 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 ;
CAR ;
CDR ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
MEM ;
IF
{ SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
CDR ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
GET ;
IF_NONE { PUSH int 109 ; 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 ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH string "FA1.2_NotAdmin" ; FAILWITH } ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
CDR ;
SENDER ;
MEM ;
IF
{}
{ SWAP ;
UNPAIR ;
UNPAIR ;
UNPAIR ;
SWAP ;
PUSH (option (pair (map address nat) nat)) (Some (Pair {} 0)) ;
SENDER ;
UPDATE ;
SWAP ;
PAIR ;
PAIR ;
PAIR ;
SWAP } ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
GET 3 ;
LEVEL ;
SUB ;
ISNAT ;
IF_NONE
{ PUSH string "Contract Call in the same block height" ;
FAILWITH }
{} ;
DUP 3 ;
GET 5 ;
SWAP ;
DUP ;
DUG 2 ;
MUL ;
PUSH nat 62000000000000000000000000 ;
DUP 5 ;
GET 6 ;
DUP 3 ;
ADD ;
COMPARE ;
GT ;
IF
{ DROP 3 ;
PUSH nat 62000000000000000000000000 ;
SWAP ;
DUP ;
DUG 2 ;
UNPAIR ;
UNPAIR ;
UNPAIR ;
SWAP ;
DUP ;
DUP 7 ;
CAR ;
CAR ;
CAR ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 150 ; FAILWITH } {} ;
DUP ;
CDR ;
DIG 8 ;
GET 6 ;
DIG 8 ;
SUB ;
ISNAT ;
IF_NONE { PUSH int 150 ; FAILWITH } {} ;
ADD ;
UPDATE 2 ;
SOME ;
SWAP ;
UPDATE ;
SWAP ;
PAIR ;
PAIR ;
PAIR ;
PUSH nat 62000000000000000000000000 ;
UPDATE 6 }
{ SWAP ;
DROP ;
SWAP ;
DROP ;
SWAP ;
DUP ;
DUG 2 ;
UNPAIR ;
UNPAIR ;
UNPAIR ;
SWAP ;
DUP ;
DIG 6 ;
CAR ;
CAR ;
CAR ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 155 ; FAILWITH } {} ;
DUP ;
CDR ;
DUP 8 ;
ADD ;
UPDATE 2 ;
SOME ;
SWAP ;
UPDATE ;
SWAP ;
PAIR ;
PAIR ;
PAIR ;
DUP ;
GET 6 ;
DIG 2 ;
ADD ;
UPDATE 6 } ;
UNPAIR ;
UNPAIR ;
SWAP ;
CDR ;
LEVEL ;
PAIR ;
SWAP ;
PAIR ;
PAIR }
{ SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH string "FA1.2_NotAdmin" ; FAILWITH } ;
SWAP ;
UNPAIR ;
UNPAIR ;
CDR ;
DIG 3 ;
PAIR ;
PAIR ;
PAIR } ;
NIL operation } }
{ IF_LEFT
{ SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH string "FA1.2_NotAdmin" ; FAILWITH } ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
CDR ;
DIG 3 ;
PAIR ;
PAIR ;
SWAP ;
PAIR }
{ IF_LEFT
{ SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF
{ PUSH bool True }
{ SWAP ;
DUP ;
DUG 2 ;
GET 3 ;
CAR ;
IF
{ PUSH bool False }
{ DUP ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF
{ PUSH bool True }
{ DUP ;
GET 4 ;
DUP 3 ;
CAR ;
CAR ;
CDR ;
DUP 3 ;
CAR ;
GET ;
IF_NONE { PUSH int 81 ; FAILWITH } {} ;
CAR ;
SENDER ;
GET ;
IF_NONE { PUSH int 81 ; FAILWITH } {} ;
COMPARE ;
GE } } } ;
IF {} { PUSH string "FA1.2_NotAllowed" ; FAILWITH } ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
CDR ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
MEM ;
IF
{}
{ SWAP ;
UNPAIR ;
UNPAIR ;
UNPAIR ;
SWAP ;
PUSH (option (pair (map address nat) nat)) (Some (Pair {} 0)) ;
DUP 6 ;
CAR ;
UPDATE ;
SWAP ;
PAIR ;
PAIR ;
PAIR ;
SWAP } ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
CDR ;
SWAP ;
DUP ;
DUG 2 ;
GET 3 ;
MEM ;
IF
{}
{ SWAP ;
UNPAIR ;
UNPAIR ;
UNPAIR ;
SWAP ;
PUSH (option (pair (map address nat) nat)) (Some (Pair {} 0)) ;
DUP 6 ;
GET 3 ;
UPDATE ;
SWAP ;
PAIR ;
PAIR ;
PAIR ;
SWAP } ;
DUP ;
GET 4 ;
DUP 3 ;
CAR ;
CAR ;
CDR ;
DUP 3 ;
CAR ;
GET ;
IF_NONE { PUSH int 87 ; FAILWITH } {} ;
CDR ;
COMPARE ;
GE ;
IF {} { PUSH string "FA1.2_InsufficientBalance" ; FAILWITH } ;
SWAP ;
DUP ;
DUG 2 ;
UNPAIR ;
UNPAIR ;
UNPAIR ;
SWAP ;
DUP ;
DUP 6 ;
CAR ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 88 ; FAILWITH } {} ;
DUP 7 ;
GET 4 ;
DIG 8 ;
CAR ;
CAR ;
CDR ;
DUP 9 ;
CAR ;
GET ;
IF_NONE { PUSH int 88 ; FAILWITH } {} ;
CDR ;
SUB ;
ISNAT ;
IF_NONE { PUSH int 88 ; FAILWITH } {} ;
UPDATE 2 ;
SOME ;
SWAP ;
UPDATE ;
DUP ;
DUP 6 ;
GET 3 ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 89 ; FAILWITH } {} ;
DUP ;
CDR ;
DUP 8 ;
GET 4 ;
ADD ;
UPDATE 2 ;
SOME ;
SWAP ;
UPDATE ;
SWAP ;
PAIR ;
PAIR ;
PAIR ;
SWAP ;
DUP ;
CAR ;
SENDER ;
COMPARE ;
NEQ ;
IF
{ SWAP ; DUP ; DUG 2 ; CAR ; CAR ; CAR ; SENDER ; COMPARE ; NEQ }
{ PUSH bool False } ;
IF
{ SWAP ;
DUP ;
DUG 2 ;
UNPAIR ;
UNPAIR ;
UNPAIR ;
SWAP ;
DUP ;
DUP 6 ;
CAR ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 91 ; FAILWITH } {} ;
DUP ;
CAR ;
DUP 8 ;
GET 4 ;
DIG 9 ;
CAR ;
CAR ;
CDR ;
DIG 9 ;
CAR ;
GET ;
IF_NONE { PUSH int 91 ; FAILWITH } {} ;
CAR ;
SENDER ;
GET ;
IF_NONE { PUSH int 91 ; FAILWITH } {} ;
SUB ;
ISNAT ;
IF_NONE { PUSH int 91 ; FAILWITH } {} ;
SOME ;
SENDER ;
UPDATE ;
UPDATE 1 ;
SOME ;
SWAP ;
UPDATE ;
SWAP ;
PAIR ;
PAIR ;
PAIR }
{ DROP } }
{ SWAP ;
DUP ;
DUG 2 ;
CAR ;
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 }