x
556
parameter (or
(or
(or (pair %approve (address %spender) (nat %value))
(or (unit %default) (unit %delegate)))
(or
(pair %getAllowance (pair (address %owner) (address %spender))
(contract nat))
(or (pair %getBalance address (contract nat))
(pair %getTotalSupply unit (contract nat)))))
(or
(or (pair %transfer (address %from) (pair (address %to) (nat %value)))
(or (nat %unwrap) (pair %update_metadata (string %key) (bytes %value))))
(or (address %update_permission_module)
(or
(pair %update_token_metadata (nat %key)
(pair %value (nat %token_id)
(map %token_info string
bytes)))
(option %wrap address)))));
storage (pair
(pair
(big_map %ledger address (pair (map %approvals address nat) (nat %balance)))
(big_map %metadata string bytes))
(pair (address %permission_module)
(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 ;
CAR ;
SENDER ;
MEM ;
IF
{}
{ SWAP ;
UNPAIR ;
UNPAIR ;
PUSH (option (pair (map address nat) nat)) (Some (Pair {} 0)) ;
SENDER ;
UPDATE ;
PAIR ;
PAIR ;
SWAP } ;
PUSH nat 0 ;
DUP 3 ;
CAR ;
CAR ;
SENDER ;
GET ;
IF_NONE { PUSH int 105 ; 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 ;
DUP ;
SENDER ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 110 ; FAILWITH } {} ;
DUP ;
CAR ;
DUP 7 ;
CDR ;
SOME ;
DIG 7 ;
CAR ;
UPDATE ;
UPDATE 1 ;
SOME ;
SWAP ;
UPDATE ;
PAIR ;
PAIR ;
NIL operation }
{ IF_LEFT
{ DROP ;
DUP ;
GET 3 ;
NIL operation ;
SWAP ;
UNIT ;
VIEW "get_baking_reward_collector" address ;
IF_NONE { PUSH int 177 ; FAILWITH } {} ;
CONTRACT unit ;
IF_NONE { PUSH int 208 ; FAILWITH } {} ;
AMOUNT ;
UNIT ;
TRANSFER_TOKENS ;
CONS }
{ DROP ;
DUP ;
GET 3 ;
NIL operation ;
SWAP ;
UNIT ;
VIEW "get_delegate" key_hash ;
IF_NONE { PUSH int 186 ; FAILWITH } {} ;
SOME ;
SET_DELEGATE ;
CONS } } }
{ IF_LEFT
{ SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
MEM ;
IF
{ SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
GET ;
IF_NONE { PUSH int 126 ; 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 }
{ IF_LEFT
{ SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
MEM ;
IF
{ SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
GET ;
IF_NONE { PUSH int 119 ; FAILWITH } {} ;
CDR }
{ PUSH nat 0 } ;
NIL operation ;
DIG 2 ;
CDR ;
PUSH mutez 0 ;
DIG 3 ;
TRANSFER_TOKENS ;
CONS }
{ SWAP ;
DUP ;
DUG 2 ;
GET 6 ;
NIL operation ;
DIG 2 ;
CDR ;
PUSH mutez 0 ;
DIG 3 ;
TRANSFER_TOKENS ;
CONS } } } }
{ IF_LEFT
{ IF_LEFT
{ DUP ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF
{ PUSH bool True }
{ DUP ;
GET 4 ;
DUP 3 ;
CAR ;
CAR ;
DUP 3 ;
CAR ;
GET ;
IF_NONE { PUSH int 77 ; FAILWITH } {} ;
CAR ;
SENDER ;
GET ;
IF_NONE { PUSH int 77 ; FAILWITH } {} ;
COMPARE ;
GE } ;
IF {} { PUSH string "FA1.2_NotAllowed" ; FAILWITH } ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
MEM ;
IF
{}
{ SWAP ;
UNPAIR ;
UNPAIR ;
PUSH (option (pair (map address nat) nat)) (Some (Pair {} 0)) ;
DUP 5 ;
CAR ;
UPDATE ;
PAIR ;
PAIR ;
SWAP } ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
SWAP ;
DUP ;
DUG 2 ;
GET 3 ;
MEM ;
IF
{}
{ SWAP ;
UNPAIR ;
UNPAIR ;
PUSH (option (pair (map address nat) nat)) (Some (Pair {} 0)) ;
DUP 5 ;
GET 3 ;
UPDATE ;
PAIR ;
PAIR ;
SWAP } ;
DUP ;
GET 4 ;
DUP 3 ;
CAR ;
CAR ;
DUP 3 ;
CAR ;
GET ;
IF_NONE { PUSH int 86 ; FAILWITH } {} ;
CDR ;
COMPARE ;
GE ;
IF {} { PUSH string "FA1.2_InsufficientBalance" ; FAILWITH } ;
SWAP ;
DUP ;
DUG 2 ;
UNPAIR ;
UNPAIR ;
DUP ;
DUP 5 ;
CAR ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 89 ; FAILWITH } {} ;
DUP 6 ;
GET 4 ;
DIG 7 ;
CAR ;
CAR ;
DUP 8 ;
CAR ;
GET ;
IF_NONE { PUSH int 90 ; FAILWITH } {} ;
CDR ;
SUB ;
ISNAT ;
IF_NONE { PUSH int 89 ; FAILWITH } {} ;
UPDATE 2 ;
SOME ;
SWAP ;
UPDATE ;
DUP ;
DUP 5 ;
GET 3 ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 92 ; FAILWITH } {} ;
DUP ;
CDR ;
DUP 7 ;
GET 4 ;
ADD ;
UPDATE 2 ;
SOME ;
SWAP ;
UPDATE ;
PAIR ;
PAIR ;
SWAP ;
DUP ;
CAR ;
SENDER ;
COMPARE ;
NEQ ;
IF
{ SWAP ;
DUP ;
DUG 2 ;
UNPAIR ;
UNPAIR ;
DUP ;
DUP 5 ;
CAR ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 94 ; FAILWITH } {} ;
DUP ;
CAR ;
DUP 7 ;
GET 4 ;
DIG 8 ;
CAR ;
CAR ;
DIG 8 ;
CAR ;
GET ;
IF_NONE { PUSH int 95 ; FAILWITH } {} ;
CAR ;
SENDER ;
GET ;
IF_NONE { PUSH int 95 ; FAILWITH } {} ;
SUB ;
ISNAT ;
IF_NONE { PUSH int 94 ; FAILWITH } {} ;
SOME ;
SENDER ;
UPDATE ;
UPDATE 1 ;
SOME ;
SWAP ;
UPDATE ;
PAIR ;
PAIR }
{ DROP } ;
NIL operation }
{ IF_LEFT
{ DUP ;
DUP 3 ;
CAR ;
CAR ;
SENDER ;
GET ;
IF_NONE { PUSH int 158 ; FAILWITH } {} ;
CDR ;
COMPARE ;
GE ;
IF {} { PUSH string "FA1.2_InsufficientBalance" ; FAILWITH } ;
SWAP ;
DUP ;
DUG 2 ;
UNPAIR ;
UNPAIR ;
DUP ;
SENDER ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 161 ; FAILWITH } {} ;
DUP 6 ;
DIG 7 ;
CAR ;
CAR ;
SENDER ;
GET ;
IF_NONE { PUSH int 162 ; FAILWITH } {} ;
CDR ;
SUB ;
ISNAT ;
IF_NONE { PUSH int 161 ; FAILWITH } {} ;
UPDATE 2 ;
SOME ;
SWAP ;
UPDATE ;
PAIR ;
PAIR ;
SWAP ;
NIL operation ;
SENDER ;
CONTRACT unit ;
IF_NONE { PUSH int 164 ; FAILWITH } {} ;
PUSH mutez 1 ;
DUP 4 ;
MUL ;
UNIT ;
TRANSFER_TOKENS ;
CONS ;
DUP 3 ;
DIG 2 ;
DIG 3 ;
GET 6 ;
SUB ;
ISNAT ;
IF_NONE { PUSH int 165 ; FAILWITH } {} ;
UPDATE 6 ;
SWAP }
{ SWAP ;
DUP ;
DUG 2 ;
GET 3 ;
UNIT ;
VIEW "get_admin" address ;
IF_NONE { PUSH int 148 ; FAILWITH } {} ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH string "PMI_ONLY_ADMIN" ; FAILWITH } ;
SWAP ;
UNPAIR ;
UNPAIR ;
SWAP ;
DUP 4 ;
CDR ;
SOME ;
DIG 4 ;
CAR ;
UPDATE ;
SWAP ;
PAIR ;
PAIR ;
NIL operation } } }
{ IF_LEFT
{ SWAP ;
DUP ;
DUG 2 ;
GET 3 ;
UNIT ;
VIEW "get_admin" address ;
IF_NONE { PUSH int 148 ; FAILWITH } {} ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH string "PMI_ONLY_ADMIN" ; FAILWITH } ;
UPDATE 3 }
{ IF_LEFT
{ SWAP ;
DUP ;
DUG 2 ;
GET 3 ;
UNIT ;
VIEW "get_admin" address ;
IF_NONE { PUSH int 148 ; FAILWITH } {} ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH string "PMI_ONLY_ADMIN" ; FAILWITH } ;
SWAP ;
DUP ;
GET 5 ;
DUP 3 ;
CDR ;
SOME ;
DIG 3 ;
CAR ;
UPDATE ;
UPDATE 5 }
{ SENDER ;
SWAP ;
DUP ;
DUG 2 ;
IF_NONE
{ SWAP ; DROP }
{ DROP 2 ; IF_NONE { PUSH int 145 ; FAILWITH } {} } ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
SWAP ;
DUP ;
DUG 2 ;
MEM ;
IF
{}
{ SWAP ;
UNPAIR ;
UNPAIR ;
PUSH (option (pair (map address nat) nat)) (Some (Pair {} 0)) ;
DUP 5 ;
UPDATE ;
PAIR ;
PAIR ;
SWAP } ;
PUSH mutez 1 ;
AMOUNT ;
EDIV ;
IF_NONE { UNIT ; FAILWITH } {} ;
CAR ;
DIG 2 ;
UNPAIR ;
UNPAIR ;
DUP ;
DIG 5 ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 148 ; FAILWITH } {} ;
DUP ;
CDR ;
DUP 7 ;
ADD ;
UPDATE 2 ;
SOME ;
SWAP ;
UPDATE ;
PAIR ;
PAIR ;
DUP ;
GET 6 ;
DIG 2 ;
ADD ;
UPDATE 6 } } ;
NIL operation } } ;
PAIR }