x
881
1585
{ parameter (or
(or
(or
(pair %balance_of
(list %requests (pair (address %owner) (nat %token_id)))
(contract %callback (list (pair
(pair %request (address %owner)
(nat %token_id))
(nat %balance)))))
(or
(list %burn (pair (address %from_)
(pair (nat %token_id) (nat %amount))))
(unit %claim_prize)))
(or (nat %complete)
(or
(list %mint (pair (address %to_)
(pair
(or %token (nat %existing)
(map %new string bytes))
(nat %amount))))
(nat %minter))))
(or
(or (address %set_administrator)
(or (big_map %set_metadata string bytes) (bool %set_pause)))
(or
(list %transfer (pair (address %from_)
(list %txs (pair (address %to_)
(pair (nat %token_id)
(nat %amount))))))
(or
(list %update_operators (or
(pair %add_operator (address %owner)
(pair
(address %operator)
(nat %token_id)))
(pair %remove_operator (address %owner)
(pair
(address %operator)
(nat %token_id)))))
(pair %withdraw_mutez (mutez %amount) (address %destination)))))) ;
storage (pair
(pair
(pair
(pair (address %administrator)
(map %claimable nat
(pair (mutez %cost)
(pair (map %requirements nat nat)
(nat %reward)))))
(pair (nat %last_token_id) (nat %lastv)))
(pair
(pair (big_map %ledger (pair address nat) nat)
(big_map %metadata string bytes))
(pair (map %mint_allow_tokens nat nat) (map %mint_cost nat mutez))))
(pair
(pair
(pair (map %mint_reduced_cost nat mutez)
(map %mint_reduced_cost_tokens nat nat))
(pair (map %mintable nat (map nat nat))
(big_map %operators
(pair (address %owner)
(pair (address %operator) (nat %token_id)))
unit)))
(pair (pair (bool %paused) (mutez %prize))
(pair (bool %prize_given)
(pair (big_map %supply nat nat)
(big_map %token_metadata nat
(pair (nat %token_id)
(map %token_info string
bytes)))))))) ;
code { UNPAIR ;
IF_LEFT
{ IF_LEFT
{ IF_LEFT
{ NIL operation ;
DUP ;
DUP 3 ;
CDR ;
PUSH mutez 0 ;
DUP 5 ;
CAR ;
MAP { DUP 7 ;
GET 10 ;
SWAP ;
DUP ;
DUG 2 ;
CDR ;
MEM ;
IF {} { PUSH string "FA2_TOKEN_UNDEFINED" ; FAILWITH } ;
DUP 7 ;
CAR ;
GET 3 ;
CAR ;
SWAP ;
DUP ;
CDR ;
SWAP ;
DUP ;
DUG 3 ;
CAR ;
PAIR ;
GET ;
IF_NONE { PUSH nat 0 } {} ;
SWAP ;
PAIR } ;
DIG 4 ;
DROP ;
DIG 4 ;
DROP ;
TRANSFER_TOKENS ;
CONS }
{ IF_LEFT
{ DUP ;
ITER { DUP 3 ;
GET 10 ;
SWAP ;
DUP ;
DUG 2 ;
GET 3 ;
MEM ;
IF {} { PUSH string "FA2_TOKEN_UNDEFINED" ; FAILWITH } ;
DUP ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF
{ PUSH bool True }
{ DUP 3 ;
GET 3 ;
GET 4 ;
SWAP ;
DUP ;
DUG 2 ;
GET 3 ;
SENDER ;
DUP 4 ;
CAR ;
PAIR 3 ;
MEM } ;
IF {} { PUSH string "FA2_NOT_OPERATOR" ; FAILWITH } ;
DUP 3 ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
UNPAIR ;
DUP 6 ;
GET 4 ;
DIG 8 ;
CAR ;
GET 3 ;
CAR ;
DIG 7 ;
DUP ;
GET 3 ;
SWAP ;
DUP ;
DUG 9 ;
CAR ;
PAIR ;
GET ;
IF_NONE { PUSH nat 0 } {} ;
SUB ;
ISNAT ;
IF_NONE
{ PUSH string "FA2_INSUFFICIENT_BALANCE" ; FAILWITH }
{} ;
SOME ;
DIG 6 ;
DUP ;
GET 3 ;
SWAP ;
DUP ;
DUG 8 ;
CAR ;
PAIR ;
UPDATE ;
PAIR ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
DUG 2 ;
DUP ;
GET 4 ;
DUP 4 ;
GET 9 ;
DUP 3 ;
GET 3 ;
GET ;
IF_NONE { PUSH nat 0 } {} ;
SUB ;
ISNAT ;
IF_NONE
{ DIG 2 ;
DUP ;
GET 9 ;
PUSH (option nat) (Some 0) ;
DIG 3 ;
GET 3 ;
UPDATE ;
UPDATE 9 ;
SWAP }
{ DIG 3 ;
DUP ;
GET 9 ;
DIG 2 ;
SOME ;
DIG 3 ;
GET 3 ;
UPDATE ;
UPDATE 9 ;
SWAP } } ;
DROP ;
NIL operation }
{ SWAP ;
DUP ;
DUG 2 ;
GET 5 ;
CAR ;
IF
{ PUSH (pair string string) (Pair "FA2_TX_DENIED" "FA2_PAUSED") ;
FAILWITH }
{} ;
SWAP ;
DUP ;
DUG 2 ;
GET 7 ;
IF { PUSH string "NOT AVAILABLE" ; FAILWITH } {} ;
PUSH nat 243 ;
PUSH bool True ;
PUSH nat 255 ;
DUP 3 ;
COMPARE ;
LT ;
IF { DUP } { PUSH bool False } ;
LOOP { DUP 4 ;
CAR ;
GET 3 ;
CAR ;
DUP 3 ;
SENDER ;
PAIR ;
MEM ;
IF {} { PUSH string "NO_REQS" ; FAILWITH } ;
PUSH nat 1 ;
DUP 5 ;
CAR ;
GET 3 ;
CAR ;
DUP 4 ;
SENDER ;
PAIR ;
GET ;
IF_NONE { PUSH int 188 ; FAILWITH } {} ;
COMPARE ;
GE ;
IF {} { PUSH string "NO_ENOUGH_REQS" ; FAILWITH } ;
PUSH nat 1 ;
DIG 2 ;
ADD ;
SWAP ;
PUSH nat 255 ;
DUP 3 ;
COMPARE ;
LT ;
IF { DUP } { PUSH bool False } } ;
DROP 3 ;
NIL operation ;
SENDER ;
CONTRACT unit ;
IF_NONE { PUSH int 192 ; FAILWITH } {} ;
DUP 3 ;
GET 5 ;
CDR ;
UNIT ;
TRANSFER_TOKENS ;
CONS ;
SWAP ;
PUSH bool True ;
UPDATE 7 ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
CAR ;
PUSH mutez 0 ;
SWAP ;
PAIR ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
SWAP } } }
{ IF_LEFT
{ SWAP ;
DUP ;
DUG 2 ;
GET 5 ;
CAR ;
IF
{ PUSH (pair string string) (Pair "FA2_TX_DENIED" "FA2_PAUSED") ;
FAILWITH }
{} ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
CAR ;
CDR ;
SWAP ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 137 ; FAILWITH } {} ;
CAR ;
AMOUNT ;
COMPARE ;
GE ;
IF {} { PUSH string "INSUFFICIENT_FUNDING" ; FAILWITH } ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
CAR ;
CDR ;
SWAP ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 139 ; FAILWITH } {} ;
GET 4 ;
PUSH nat 243 ;
COMPARE ;
LE ;
IF
{ PUSH nat 254 ;
DUP 3 ;
CAR ;
CAR ;
CAR ;
CDR ;
DUP 3 ;
GET ;
IF_NONE { PUSH int 139 ; FAILWITH } {} ;
GET 4 ;
COMPARE ;
LE }
{ PUSH bool False } ;
IF
{ PUSH nat 10 ;
DIG 2 ;
DUP ;
GET 9 ;
SWAP ;
DUP ;
DUG 4 ;
CAR ;
CAR ;
CAR ;
CDR ;
DUP 4 ;
GET ;
IF_NONE { PUSH int 140 ; FAILWITH } {} ;
GET 4 ;
GET ;
IF_NONE { PUSH int 140 ; FAILWITH } {} ;
COMPARE ;
LT ;
IF {} { PUSH string "NOT AVAILABLE" ; FAILWITH } }
{} ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
CAR ;
CDR ;
SWAP ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 142 ; FAILWITH } {} ;
GET 3 ;
ITER { DUP 3 ;
GET 10 ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
MEM ;
IF {} { PUSH string "FA2_TOKEN_UNDEFINED" ; FAILWITH } ;
DUP 3 ;
CAR ;
GET 3 ;
CAR ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
SENDER ;
PAIR ;
MEM ;
IF {} { PUSH string "NO_REQS" ; FAILWITH } ;
DUP ;
CDR ;
DUP 4 ;
CAR ;
GET 3 ;
CAR ;
DUP 3 ;
CAR ;
SENDER ;
PAIR ;
GET ;
IF_NONE { PUSH int 147 ; FAILWITH } {} ;
COMPARE ;
GE ;
IF {} { PUSH string "NO_ENOUGH_REQS" ; FAILWITH } ;
DUP 3 ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
UNPAIR ;
DUP 6 ;
CDR ;
DIG 8 ;
CAR ;
GET 3 ;
CAR ;
DUP 8 ;
CAR ;
SENDER ;
PAIR ;
GET ;
IF_NONE { PUSH nat 0 } {} ;
SUB ;
ISNAT ;
IF_NONE
{ PUSH string "FA2_INSUFFICIENT_BALANCE" ; FAILWITH }
{} ;
SOME ;
DUP 7 ;
CAR ;
SENDER ;
PAIR ;
UPDATE ;
PAIR ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
DUG 2 ;
DUP ;
CDR ;
DUP 4 ;
GET 9 ;
DUP 3 ;
CAR ;
GET ;
IF_NONE { PUSH nat 0 } {} ;
SUB ;
ISNAT ;
IF_NONE
{ DIG 2 ;
DUP ;
GET 9 ;
PUSH (option nat) (Some 0) ;
DIG 3 ;
CAR ;
UPDATE ;
UPDATE 9 ;
SWAP }
{ DIG 3 ; DUP ; GET 9 ; DIG 2 ; SOME ; DIG 3 ; CAR ; UPDATE ; UPDATE 9 ; SWAP } } ;
SWAP ;
DUP ;
DUG 2 ;
GET 7 ;
IF
{}
{ SWAP ;
DUP ;
DUG 2 ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
UNPAIR ;
SWAP ;
PUSH mutez 1 ;
PUSH nat 10 ;
PUSH mutez 1 ;
DIG 9 ;
CAR ;
CAR ;
CAR ;
CDR ;
DUP 10 ;
GET ;
IF_NONE { PUSH int 165 ; FAILWITH } {} ;
CAR ;
EDIV ;
IF_NONE { UNIT ; FAILWITH } {} ;
CAR ;
EDIV ;
IF_NONE { PUSH int 165 ; FAILWITH } { CAR } ;
MUL ;
ADD ;
SWAP ;
PAIR ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
SWAP } ;
SWAP ;
DUP ;
DUG 2 ;
DUP ;
GET 9 ;
DUP ;
DIG 4 ;
CAR ;
CAR ;
CAR ;
CDR ;
DUP 5 ;
GET ;
IF_NONE { PUSH int 167 ; FAILWITH } {} ;
GET 4 ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 167 ; FAILWITH } {} ;
PUSH nat 1 ;
ADD ;
SOME ;
SWAP ;
UPDATE ;
UPDATE 9 ;
DUP ;
CAR ;
GET 3 ;
CAR ;
SWAP ;
DUP ;
DUG 3 ;
CAR ;
CAR ;
CAR ;
CDR ;
DUP 3 ;
GET ;
IF_NONE { PUSH int 170 ; FAILWITH } {} ;
GET 4 ;
SENDER ;
PAIR ;
MEM ;
IF
{ SWAP ;
DUP ;
DUG 2 ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
UNPAIR ;
DUP ;
DIG 7 ;
CAR ;
CAR ;
CAR ;
CDR ;
DIG 7 ;
GET ;
IF_NONE { PUSH int 170 ; FAILWITH } {} ;
GET 4 ;
SENDER ;
PAIR ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 172 ; FAILWITH } {} ;
PUSH nat 1 ;
ADD ;
SOME ;
SWAP ;
UPDATE ;
PAIR ;
PAIR ;
SWAP ;
PAIR ;
PAIR }
{ SWAP ;
DUP ;
DUG 2 ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
UNPAIR ;
PUSH (option nat) (Some 1) ;
DIG 7 ;
CAR ;
CAR ;
CAR ;
CDR ;
DIG 7 ;
GET ;
IF_NONE { PUSH int 170 ; FAILWITH } {} ;
GET 4 ;
SENDER ;
PAIR ;
UPDATE ;
PAIR ;
PAIR ;
SWAP ;
PAIR ;
PAIR } }
{ IF_LEFT
{ SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
CAR ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH string "FA2_NOT_ADMIN" ; FAILWITH } ;
DUP ;
ITER { DUP ;
GET 3 ;
IF_LEFT
{ DUP 4 ;
GET 10 ;
SWAP ;
DUP ;
DUG 2 ;
MEM ;
IF
{}
{ PUSH string "FA2_TOKEN_UNDEFINED" ; FAILWITH } ;
DIG 3 ;
DUP ;
GET 9 ;
DUP ;
DUP 4 ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 643 ; FAILWITH } {} ;
DUP 6 ;
GET 4 ;
ADD ;
SOME ;
SWAP ;
UPDATE ;
UPDATE 9 ;
DUP ;
DUG 4 ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
UNPAIR ;
DUP 7 ;
GET 4 ;
DIG 9 ;
CAR ;
GET 3 ;
CAR ;
DUP 8 ;
DUP 10 ;
CAR ;
PAIR ;
GET ;
IF_NONE { PUSH nat 0 } {} ;
ADD ;
SOME ;
DIG 6 ;
DIG 7 ;
CAR ;
PAIR ;
UPDATE ;
PAIR ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
SWAP }
{ DUP 4 ;
CAR ;
CAR ;
GET 3 ;
DIG 4 ;
DUP ;
GET 10 ;
DIG 3 ;
DUP 4 ;
PAIR ;
SOME ;
DUP 4 ;
UPDATE ;
UPDATE 10 ;
DUP ;
GET 9 ;
DUP 4 ;
GET 4 ;
SOME ;
DUP 4 ;
UPDATE ;
UPDATE 9 ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
UNPAIR ;
DUP 7 ;
GET 4 ;
SOME ;
DIG 6 ;
DIG 7 ;
CAR ;
PAIR ;
UPDATE ;
PAIR ;
PAIR ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
PUSH nat 1 ;
ADD ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
PAIR ;
SWAP } } ;
DROP }
{ SWAP ;
DUP ;
DUG 2 ;
GET 5 ;
CAR ;
IF
{ PUSH (pair string string) (Pair "FA2_TX_DENIED" "FA2_PAUSED") ;
FAILWITH }
{} ;
DUP ;
PUSH nat 4 ;
COMPARE ;
GT ;
IF {} { PUSH string "UNDEFINED_MINTER" ; FAILWITH } ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
GET 5 ;
SWAP ;
DUP ;
DUG 2 ;
MEM ;
IF
{ SWAP ;
DUP ;
CAR ;
GET 3 ;
CAR ;
SWAP ;
DUP ;
DUG 3 ;
CAR ;
GET 5 ;
DUP 3 ;
GET ;
IF_NONE { PUSH int 87 ; FAILWITH } {} ;
SENDER ;
PAIR ;
MEM ;
IF {} { PUSH string "NOT_ALLOWED" ; FAILWITH } ;
PUSH nat 0 ;
DIG 2 ;
DUP ;
CAR ;
GET 3 ;
CAR ;
SWAP ;
DUP ;
DUG 4 ;
CAR ;
GET 5 ;
DUP 4 ;
GET ;
IF_NONE { PUSH int 87 ; FAILWITH } {} ;
SENDER ;
PAIR ;
GET ;
IF_NONE { PUSH int 89 ; FAILWITH } {} ;
COMPARE ;
GT ;
IF {} { PUSH string "NOT_ALLOWED" ; FAILWITH } }
{} ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
GET 6 ;
SWAP ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 93 ; FAILWITH } {} ;
DUP 3 ;
GET 3 ;
CAR ;
CDR ;
DUP 3 ;
MEM ;
IF
{ DIG 2 ;
DUP ;
CAR ;
GET 3 ;
CAR ;
SWAP ;
DUP ;
DUG 4 ;
GET 3 ;
CAR ;
CDR ;
DUP 4 ;
GET ;
IF_NONE { PUSH int 98 ; FAILWITH } {} ;
SENDER ;
PAIR ;
MEM ;
IF
{ PUSH nat 0 ;
DIG 3 ;
DUP ;
CAR ;
GET 3 ;
CAR ;
SWAP ;
DUP ;
DUG 5 ;
GET 3 ;
CAR ;
CDR ;
DUP 5 ;
GET ;
IF_NONE { PUSH int 98 ; FAILWITH } {} ;
SENDER ;
PAIR ;
GET ;
IF_NONE { PUSH int 100 ; FAILWITH } {} ;
COMPARE ;
GT ;
IF
{ DROP ;
SWAP ;
DUP ;
DUG 2 ;
GET 3 ;
CAR ;
CAR ;
SWAP ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 101 ; FAILWITH } {} }
{} }
{} }
{} ;
DUP ;
AMOUNT ;
COMPARE ;
GE ;
IF {} { PUSH string "INSUFFICIENT_FUNDING" ; FAILWITH } ;
PUSH nat 0 ;
DUP 3 ;
COMPARE ;
EQ ;
IF
{ PUSH (map bytes int) { Elt 0x00 0 ;
Elt 0x01 1 ;
Elt 0x02 2 ;
Elt 0x03 3 ;
Elt 0x04 4 ;
Elt 0x05 5 ;
Elt 0x06 6 ;
Elt 0x07 7 ;
Elt 0x08 8 ;
Elt 0x09 9 ;
Elt 0x0a 10 ;
Elt 0x0b 11 ;
Elt 0x0c 12 ;
Elt 0x0d 13 ;
Elt 0x0e 14 ;
Elt 0x0f 15 ;
Elt 0x10 16 ;
Elt 0x11 17 ;
Elt 0x12 18 ;
Elt 0x13 19 ;
Elt 0x14 20 ;
Elt 0x15 21 ;
Elt 0x16 22 ;
Elt 0x17 23 ;
Elt 0x18 24 ;
Elt 0x19 25 ;
Elt 0x1a 26 ;
Elt 0x1b 27 ;
Elt 0x1c 28 ;
Elt 0x1d 29 ;
Elt 0x1e 30 ;
Elt 0x1f 31 ;
Elt 0x20 32 ;
Elt 0x21 33 ;
Elt 0x22 34 ;
Elt 0x23 35 ;
Elt 0x24 36 ;
Elt 0x25 37 ;
Elt 0x26 38 ;
Elt 0x27 39 ;
Elt 0x28 40 ;
Elt 0x29 41 ;
Elt 0x2a 42 ;
Elt 0x2b 43 ;
Elt 0x2c 44 ;
Elt 0x2d 45 ;
Elt 0x2e 46 ;
Elt 0x2f 47 ;
Elt 0x30 48 ;
Elt 0x31 49 ;
Elt 0x32 50 ;
Elt 0x33 51 ;
Elt 0x34 52 ;
Elt 0x35 53 ;
Elt 0x36 54 ;
Elt 0x37 55 ;
Elt 0x38 56 ;
Elt 0x39 57 ;
Elt 0x3a 58 ;
Elt 0x3b 59 ;
Elt 0x3c 60 ;
Elt 0x3d 61 ;
Elt 0x3e 62 ;
Elt 0x3f 63 ;
Elt 0x40 64 ;
Elt 0x41 65 ;
Elt 0x42 66 ;
Elt 0x43 67 ;
Elt 0x44 68 ;
Elt 0x45 69 ;
Elt 0x46 70 ;
Elt 0x47 71 ;
Elt 0x48 72 ;
Elt 0x49 73 ;
Elt 0x4a 74 ;
Elt 0x4b 75 ;
Elt 0x4c 76 ;
Elt 0x4d 77 ;
Elt 0x4e 78 ;
Elt 0x4f 79 ;
Elt 0x50 80 ;
Elt 0x51 81 ;
Elt 0x52 82 ;
Elt 0x53 83 ;
Elt 0x54 84 ;
Elt 0x55 85 ;
Elt 0x56 86 ;
Elt 0x57 87 ;
Elt 0x58 88 ;
Elt 0x59 89 ;
Elt 0x5a 90 ;
Elt 0x5b 91 ;
Elt 0x5c 92 ;
Elt 0x5d 93 ;
Elt 0x5e 94 ;
Elt 0x5f 95 ;
Elt 0x60 96 ;
Elt 0x61 97 ;
Elt 0x62 98 ;
Elt 0x63 99 ;
Elt 0x64 100 ;
Elt 0x65 101 ;
Elt 0x66 102 ;
Elt 0x67 103 ;
Elt 0x68 104 ;
Elt 0x69 105 ;
Elt 0x6a 106 ;
Elt 0x6b 107 ;
Elt 0x6c 108 ;
Elt 0x6d 109 ;
Elt 0x6e 110 ;
Elt 0x6f 111 ;
Elt 0x70 112 ;
Elt 0x71 113 ;
Elt 0x72 114 ;
Elt 0x73 115 ;
Elt 0x74 116 ;
Elt 0x75 117 ;
Elt 0x76 118 ;
Elt 0x77 119 ;
Elt 0x78 120 ;
Elt 0x79 121 ;
Elt 0x7a 122 ;
Elt 0x7b 123 ;
Elt 0x7c 124 ;
Elt 0x7d 125 ;
Elt 0x7e 126 ;
Elt 0x7f 127 ;
Elt 0x80 128 ;
Elt 0x81 129 ;
Elt 0x82 130 ;
Elt 0x83 131 ;
Elt 0x84 132 ;
Elt 0x85 133 ;
Elt 0x86 134 ;
Elt 0x87 135 ;
Elt 0x88 136 ;
Elt 0x89 137 ;
Elt 0x8a 138 ;
Elt 0x8b 139 ;
Elt 0x8c 140 ;
Elt 0x8d 141 ;
Elt 0x8e 142 ;
Elt 0x8f 143 ;
Elt 0x90 144 ;
Elt 0x91 145 ;
Elt 0x92 146 ;
Elt 0x93 147 ;
Elt 0x94 148 ;
Elt 0x95 149 ;
Elt 0x96 150 ;
Elt 0x97 151 ;
Elt 0x98 152 ;
Elt 0x99 153 ;
Elt 0x9a 154 ;
Elt 0x9b 155 ;
Elt 0x9c 156 ;
Elt 0x9d 157 ;
Elt 0x9e 158 ;
Elt 0x9f 159 ;
Elt 0xa0 160 ;
Elt 0xa1 161 ;
Elt 0xa2 162 ;
Elt 0xa3 163 ;
Elt 0xa4 164 ;
Elt 0xa5 165 ;
Elt 0xa6 166 ;
Elt 0xa7 167 ;
Elt 0xa8 168 ;
Elt 0xa9 169 ;
Elt 0xaa 170 ;
Elt 0xab 171 ;
Elt 0xac 172 ;
Elt 0xad 173 ;
Elt 0xae 174 ;
Elt 0xaf 175 ;
Elt 0xb0 176 ;
Elt 0xb1 177 ;
Elt 0xb2 178 ;
Elt 0xb3 179 ;
Elt 0xb4 180 ;
Elt 0xb5 181 ;
Elt 0xb6 182 ;
Elt 0xb7 183 ;
Elt 0xb8 184 ;
Elt 0xb9 185 ;
Elt 0xba 186 ;
Elt 0xbb 187 ;
Elt 0xbc 188 ;
Elt 0xbd 189 ;
Elt 0xbe 190 ;
Elt 0xbf 191 ;
Elt 0xc0 192 ;
Elt 0xc1 193 ;
Elt 0xc2 194 ;
Elt 0xc3 195 ;
Elt 0xc4 196 ;
Elt 0xc5 197 ;
Elt 0xc6 198 ;
Elt 0xc7 199 ;
Elt 0xc8 200 ;
Elt 0xc9 201 ;
Elt 0xca 202 ;
Elt 0xcb 203 ;
Elt 0xcc 204 ;
Elt 0xcd 205 ;
Elt 0xce 206 ;
Elt 0xcf 207 ;
Elt 0xd0 208 ;
Elt 0xd1 209 ;
Elt 0xd2 210 ;
Elt 0xd3 211 ;
Elt 0xd4 212 ;
Elt 0xd5 213 ;
Elt 0xd6 214 ;
Elt 0xd7 215 ;
Elt 0xd8 216 ;
Elt 0xd9 217 ;
Elt 0xda 218 ;
Elt 0xdb 219 ;
Elt 0xdc 220 ;
Elt 0xdd 221 ;
Elt 0xde 222 ;
Elt 0xdf 223 ;
Elt 0xe0 224 ;
Elt 0xe1 225 ;
Elt 0xe2 226 ;
Elt 0xe3 227 ;
Elt 0xe4 228 ;
Elt 0xe5 229 ;
Elt 0xe6 230 ;
Elt 0xe7 231 ;
Elt 0xe8 232 ;
Elt 0xe9 233 ;
Elt 0xea 234 ;
Elt 0xeb 235 ;
Elt 0xec 236 ;
Elt 0xed 237 ;
Elt 0xee 238 ;
Elt 0xef 239 ;
Elt 0xf0 240 ;
Elt 0xf1 241 ;
Elt 0xf2 242 ;
Elt 0xf3 243 ;
Elt 0xf4 244 ;
Elt 0xf5 245 ;
Elt 0xf6 246 ;
Elt 0xf7 247 ;
Elt 0xf8 248 ;
Elt 0xf9 249 ;
Elt 0xfa 250 ;
Elt 0xfb 251 ;
Elt 0xfc 252 ;
Elt 0xfd 253 ;
Elt 0xfe 254 ;
Elt 0xff 255 } ;
UNIT ;
PUSH mutez 0 ;
NONE key_hash ;
CREATE_CONTRACT { parameter unit ;
storage unit ;
code { CDR ; NIL operation ; PAIR } } ;
PAIR ;
PUSH nat 0 ;
PUSH bool False ;
PUSH int 0 ;
PUSH int 0 ;
DUP 5 ;
CDR ;
PACK ;
SHA256 ;
SIZE ;
DUP ;
DUP 6 ;
COMPARE ;
LT ;
LOOP { SWAP ;
DROP ;
DUP 6 ;
DUP 6 ;
CDR ;
PACK ;
SHA256 ;
PUSH nat 1 ;
DUP 7 ;
SLICE ;
IF_NONE { PUSH int 64 ; FAILWITH } {} ;
GET ;
IF_NONE { PUSH int 64 ; FAILWITH } {} ;
SWAP ;
PUSH nat 1 ;
DUP 6 ;
COMPARE ;
EQ ;
IF
{ PUSH int 5 ; DUP 3 ; COMPARE ; EQ }
{ PUSH bool False } ;
IF { DIG 3 ; DROP ; PUSH bool True ; DUG 3 } {} ;
SWAP ;
DUP ;
DUG 2 ;
PUSH int 256 ;
DIG 4 ;
MUL ;
ADD ;
DUG 2 ;
PUSH nat 1 ;
DIG 5 ;
ADD ;
DUG 4 ;
DUP ;
DUP 6 ;
COMPARE ;
LT } ;
DROP 2 ;
DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
PUSH bool False ;
DIG 2 ;
COMPARE ;
EQ ;
IF
{ DUP 4 ;
UNPAIR ;
UNPAIR ;
UNPAIR ;
SWAP ;
CAR ;
PUSH nat 12 ;
DIG 8 ;
GET 3 ;
GET 3 ;
DUP 9 ;
GET ;
IF_NONE { PUSH int 106 ; FAILWITH } {} ;
SIZE ;
SUB ;
DIG 5 ;
EDIV ;
IF_NONE { PUSH int 71 ; FAILWITH } { CDR } ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
PAIR ;
DUG 2 }
{ DUP 4 ;
UNPAIR ;
UNPAIR ;
UNPAIR ;
SWAP ;
CAR ;
PUSH nat 0 ;
DIG 8 ;
GET 3 ;
GET 3 ;
DUP 9 ;
GET ;
IF_NONE { PUSH int 106 ; FAILWITH } {} ;
SIZE ;
SUB ;
DIG 5 ;
EDIV ;
IF_NONE { PUSH int 74 ; FAILWITH } { CDR } ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
PAIR ;
DUG 2 } }
{ PUSH (map bytes int) { Elt 0x00 0 ;
Elt 0x01 1 ;
Elt 0x02 2 ;
Elt 0x03 3 ;
Elt 0x04 4 ;
Elt 0x05 5 ;
Elt 0x06 6 ;
Elt 0x07 7 ;
Elt 0x08 8 ;
Elt 0x09 9 ;
Elt 0x0a 10 ;
Elt 0x0b 11 ;
Elt 0x0c 12 ;
Elt 0x0d 13 ;
Elt 0x0e 14 ;
Elt 0x0f 15 ;
Elt 0x10 16 ;
Elt 0x11 17 ;
Elt 0x12 18 ;
Elt 0x13 19 ;
Elt 0x14 20 ;
Elt 0x15 21 ;
Elt 0x16 22 ;
Elt 0x17 23 ;
Elt 0x18 24 ;
Elt 0x19 25 ;
Elt 0x1a 26 ;
Elt 0x1b 27 ;
Elt 0x1c 28 ;
Elt 0x1d 29 ;
Elt 0x1e 30 ;
Elt 0x1f 31 ;
Elt 0x20 32 ;
Elt 0x21 33 ;
Elt 0x22 34 ;
Elt 0x23 35 ;
Elt 0x24 36 ;
Elt 0x25 37 ;
Elt 0x26 38 ;
Elt 0x27 39 ;
Elt 0x28 40 ;
Elt 0x29 41 ;
Elt 0x2a 42 ;
Elt 0x2b 43 ;
Elt 0x2c 44 ;
Elt 0x2d 45 ;
Elt 0x2e 46 ;
Elt 0x2f 47 ;
Elt 0x30 48 ;
Elt 0x31 49 ;
Elt 0x32 50 ;
Elt 0x33 51 ;
Elt 0x34 52 ;
Elt 0x35 53 ;
Elt 0x36 54 ;
Elt 0x37 55 ;
Elt 0x38 56 ;
Elt 0x39 57 ;
Elt 0x3a 58 ;
Elt 0x3b 59 ;
Elt 0x3c 60 ;
Elt 0x3d 61 ;
Elt 0x3e 62 ;
Elt 0x3f 63 ;
Elt 0x40 64 ;
Elt 0x41 65 ;
Elt 0x42 66 ;
Elt 0x43 67 ;
Elt 0x44 68 ;
Elt 0x45 69 ;
Elt 0x46 70 ;
Elt 0x47 71 ;
Elt 0x48 72 ;
Elt 0x49 73 ;
Elt 0x4a 74 ;
Elt 0x4b 75 ;
Elt 0x4c 76 ;
Elt 0x4d 77 ;
Elt 0x4e 78 ;
Elt 0x4f 79 ;
Elt 0x50 80 ;
Elt 0x51 81 ;
Elt 0x52 82 ;
Elt 0x53 83 ;
Elt 0x54 84 ;
Elt 0x55 85 ;
Elt 0x56 86 ;
Elt 0x57 87 ;
Elt 0x58 88 ;
Elt 0x59 89 ;
Elt 0x5a 90 ;
Elt 0x5b 91 ;
Elt 0x5c 92 ;
Elt 0x5d 93 ;
Elt 0x5e 94 ;
Elt 0x5f 95 ;
Elt 0x60 96 ;
Elt 0x61 97 ;
Elt 0x62 98 ;
Elt 0x63 99 ;
Elt 0x64 100 ;
Elt 0x65 101 ;
Elt 0x66 102 ;
Elt 0x67 103 ;
Elt 0x68 104 ;
Elt 0x69 105 ;
Elt 0x6a 106 ;
Elt 0x6b 107 ;
Elt 0x6c 108 ;
Elt 0x6d 109 ;
Elt 0x6e 110 ;
Elt 0x6f 111 ;
Elt 0x70 112 ;
Elt 0x71 113 ;
Elt 0x72 114 ;
Elt 0x73 115 ;
Elt 0x74 116 ;
Elt 0x75 117 ;
Elt 0x76 118 ;
Elt 0x77 119 ;
Elt 0x78 120 ;
Elt 0x79 121 ;
Elt 0x7a 122 ;
Elt 0x7b 123 ;
Elt 0x7c 124 ;
Elt 0x7d 125 ;
Elt 0x7e 126 ;
Elt 0x7f 127 ;
Elt 0x80 128 ;
Elt 0x81 129 ;
Elt 0x82 130 ;
Elt 0x83 131 ;
Elt 0x84 132 ;
Elt 0x85 133 ;
Elt 0x86 134 ;
Elt 0x87 135 ;
Elt 0x88 136 ;
Elt 0x89 137 ;
Elt 0x8a 138 ;
Elt 0x8b 139 ;
Elt 0x8c 140 ;
Elt 0x8d 141 ;
Elt 0x8e 142 ;
Elt 0x8f 143 ;
Elt 0x90 144 ;
Elt 0x91 145 ;
Elt 0x92 146 ;
Elt 0x93 147 ;
Elt 0x94 148 ;
Elt 0x95 149 ;
Elt 0x96 150 ;
Elt 0x97 151 ;
Elt 0x98 152 ;
Elt 0x99 153 ;
Elt 0x9a 154 ;
Elt 0x9b 155 ;
Elt 0x9c 156 ;
Elt 0x9d 157 ;
Elt 0x9e 158 ;
Elt 0x9f 159 ;
Elt 0xa0 160 ;
Elt 0xa1 161 ;
Elt 0xa2 162 ;
Elt 0xa3 163 ;
Elt 0xa4 164 ;
Elt 0xa5 165 ;
Elt 0xa6 166 ;
Elt 0xa7 167 ;
Elt 0xa8 168 ;
Elt 0xa9 169 ;
Elt 0xaa 170 ;
Elt 0xab 171 ;
Elt 0xac 172 ;
Elt 0xad 173 ;
Elt 0xae 174 ;
Elt 0xaf 175 ;
Elt 0xb0 176 ;
Elt 0xb1 177 ;
Elt 0xb2 178 ;
Elt 0xb3 179 ;
Elt 0xb4 180 ;
Elt 0xb5 181 ;
Elt 0xb6 182 ;
Elt 0xb7 183 ;
Elt 0xb8 184 ;
Elt 0xb9 185 ;
Elt 0xba 186 ;
Elt 0xbb 187 ;
Elt 0xbc 188 ;
Elt 0xbd 189 ;
Elt 0xbe 190 ;
Elt 0xbf 191 ;
Elt 0xc0 192 ;
Elt 0xc1 193 ;
Elt 0xc2 194 ;
Elt 0xc3 195 ;
Elt 0xc4 196 ;
Elt 0xc5 197 ;
Elt 0xc6 198 ;
Elt 0xc7 199 ;
Elt 0xc8 200 ;
Elt 0xc9 201 ;
Elt 0xca 202 ;
Elt 0xcb 203 ;
Elt 0xcc 204 ;
Elt 0xcd 205 ;
Elt 0xce 206 ;
Elt 0xcf 207 ;
Elt 0xd0 208 ;
Elt 0xd1 209 ;
Elt 0xd2 210 ;
Elt 0xd3 211 ;
Elt 0xd4 212 ;
Elt 0xd5 213 ;
Elt 0xd6 214 ;
Elt 0xd7 215 ;
Elt 0xd8 216 ;
Elt 0xd9 217 ;
Elt 0xda 218 ;
Elt 0xdb 219 ;
Elt 0xdc 220 ;
Elt 0xdd 221 ;
Elt 0xde 222 ;
Elt 0xdf 223 ;
Elt 0xe0 224 ;
Elt 0xe1 225 ;
Elt 0xe2 226 ;
Elt 0xe3 227 ;
Elt 0xe4 228 ;
Elt 0xe5 229 ;
Elt 0xe6 230 ;
Elt 0xe7 231 ;
Elt 0xe8 232 ;
Elt 0xe9 233 ;
Elt 0xea 234 ;
Elt 0xeb 235 ;
Elt 0xec 236 ;
Elt 0xed 237 ;
Elt 0xee 238 ;
Elt 0xef 239 ;
Elt 0xf0 240 ;
Elt 0xf1 241 ;
Elt 0xf2 242 ;
Elt 0xf3 243 ;
Elt 0xf4 244 ;
Elt 0xf5 245 ;
Elt 0xf6 246 ;
Elt 0xf7 247 ;
Elt 0xf8 248 ;
Elt 0xf9 249 ;
Elt 0xfa 250 ;
Elt 0xfb 251 ;
Elt 0xfc 252 ;
Elt 0xfd 253 ;
Elt 0xfe 254 ;
Elt 0xff 255 } ;
UNIT ;
PUSH mutez 0 ;
NONE key_hash ;
CREATE_CONTRACT { parameter unit ;
storage unit ;
code { CDR ; NIL operation ; PAIR } } ;
PAIR ;
PUSH nat 0 ;
PUSH bool False ;
PUSH int 0 ;
PUSH int 0 ;
DUP 5 ;
CDR ;
PACK ;
SHA256 ;
SIZE ;
DUP ;
DUP 6 ;
COMPARE ;
LT ;
LOOP { SWAP ;
DROP ;
DUP 6 ;
DUP 6 ;
CDR ;
PACK ;
SHA256 ;
PUSH nat 1 ;
DUP 7 ;
SLICE ;
IF_NONE { PUSH int 64 ; FAILWITH } {} ;
GET ;
IF_NONE { PUSH int 64 ; FAILWITH } {} ;
SWAP ;
PUSH nat 1 ;
DUP 6 ;
COMPARE ;
EQ ;
IF
{ PUSH int 5 ; DUP 3 ; COMPARE ; EQ }
{ PUSH bool False } ;
IF { DIG 3 ; DROP ; PUSH bool True ; DUG 3 } {} ;
SWAP ;
DUP ;
DUG 2 ;
PUSH int 256 ;
DIG 4 ;
MUL ;
ADD ;
DUG 2 ;
PUSH nat 1 ;
DIG 5 ;
ADD ;
DUG 4 ;
DUP ;
DUP 6 ;
COMPARE ;
LT } ;
DROP 2 ;
DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
PUSH bool False ;
DIG 2 ;
COMPARE ;
EQ ;
IF
{ DUP 4 ;
UNPAIR ;
UNPAIR ;
UNPAIR ;
SWAP ;
CAR ;
PUSH nat 0 ;
DIG 8 ;
GET 3 ;
GET 3 ;
DUP 9 ;
GET ;
IF_NONE { PUSH int 108 ; FAILWITH } {} ;
SIZE ;
SUB ;
DIG 5 ;
EDIV ;
IF_NONE { PUSH int 71 ; FAILWITH } { CDR } ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
PAIR ;
DUG 2 }
{ DUP 4 ;
UNPAIR ;
UNPAIR ;
UNPAIR ;
SWAP ;
CAR ;
PUSH nat 0 ;
DIG 8 ;
GET 3 ;
GET 3 ;
DUP 9 ;
GET ;
IF_NONE { PUSH int 108 ; FAILWITH } {} ;
SIZE ;
SUB ;
DIG 5 ;
EDIV ;
IF_NONE { PUSH int 74 ; FAILWITH } { CDR } ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
PAIR ;
DUG 2 } } ;
DIG 2 ;
DUP ;
GET 10 ;
SWAP ;
DUP ;
DUG 4 ;
GET 3 ;
GET 3 ;
DUP 4 ;
GET ;
IF_NONE { PUSH int 110 ; FAILWITH } {} ;
DUP 5 ;
CAR ;
CAR ;
GET 4 ;
GET ;
IF_NONE { PUSH int 110 ; FAILWITH } {} ;
MEM ;
IF {} { PUSH string "FA2_TOKEN_UNDEFINED" ; FAILWITH } ;
DUP 3 ;
GET 7 ;
IF
{ DROP }
{ DIG 2 ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
UNPAIR ;
SWAP ;
PUSH mutez 1 ;
PUSH nat 10 ;
PUSH mutez 1 ;
DIG 8 ;
EDIV ;
IF_NONE { UNIT ; FAILWITH } {} ;
CAR ;
EDIV ;
IF_NONE { PUSH int 121 ; FAILWITH } { CAR } ;
MUL ;
ADD ;
SWAP ;
PAIR ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
SWAP } ;
SWAP ;
DUP ;
DUG 2 ;
DUP ;
GET 9 ;
DUP ;
DUP 5 ;
GET 3 ;
GET 3 ;
DUP 5 ;
GET ;
IF_NONE { PUSH int 110 ; FAILWITH } {} ;
DIG 5 ;
CAR ;
CAR ;
GET 4 ;
GET ;
IF_NONE { PUSH int 110 ; FAILWITH } {} ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 124 ; FAILWITH } {} ;
PUSH nat 1 ;
ADD ;
SOME ;
SWAP ;
UPDATE ;
UPDATE 9 ;
DUP ;
CAR ;
GET 3 ;
CAR ;
SWAP ;
DUP ;
DUG 3 ;
GET 3 ;
GET 3 ;
DUP 3 ;
GET ;
IF_NONE { PUSH int 110 ; FAILWITH } {} ;
DUP 4 ;
CAR ;
CAR ;
GET 4 ;
GET ;
IF_NONE { PUSH int 110 ; FAILWITH } {} ;
SENDER ;
PAIR ;
MEM ;
IF
{ SWAP ;
DUP ;
DUG 2 ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
UNPAIR ;
DUP ;
DUP 8 ;
GET 3 ;
GET 3 ;
DIG 7 ;
GET ;
IF_NONE { PUSH int 110 ; FAILWITH } {} ;
DIG 7 ;
CAR ;
CAR ;
GET 4 ;
GET ;
IF_NONE { PUSH int 110 ; FAILWITH } {} ;
SENDER ;
PAIR ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 128 ; FAILWITH } {} ;
PUSH nat 1 ;
ADD ;
SOME ;
SWAP ;
UPDATE ;
PAIR ;
PAIR ;
SWAP ;
PAIR ;
PAIR }
{ SWAP ;
DUP ;
DUG 2 ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
UNPAIR ;
PUSH (option nat) (Some 1) ;
DUP 8 ;
GET 3 ;
GET 3 ;
DIG 7 ;
GET ;
IF_NONE { PUSH int 110 ; FAILWITH } {} ;
DIG 7 ;
CAR ;
CAR ;
GET 4 ;
GET ;
IF_NONE { PUSH int 110 ; FAILWITH } {} ;
SENDER ;
PAIR ;
UPDATE ;
PAIR ;
PAIR ;
SWAP ;
PAIR ;
PAIR } } } ;
NIL operation } }
{ IF_LEFT
{ IF_LEFT
{ SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
CAR ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH string "FA2_NOT_ADMIN" ; FAILWITH } ;
SWAP ;
UNPAIR ;
UNPAIR ;
UNPAIR ;
CDR ;
DIG 4 ;
PAIR ;
PAIR ;
PAIR ;
PAIR }
{ IF_LEFT
{ SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
CAR ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH string "FA2_NOT_ADMIN" ; FAILWITH } ;
SWAP ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
CAR ;
DIG 4 ;
SWAP ;
PAIR ;
PAIR ;
SWAP ;
PAIR ;
PAIR }
{ SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
CAR ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH string "FA2_NOT_ADMIN" ; FAILWITH } ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
CDR ;
DIG 4 ;
PAIR ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
PAIR } } ;
NIL operation }
{ IF_LEFT
{ DUP ;
ITER { DUP ;
CDR ;
ITER { DUP 4 ;
GET 10 ;
SWAP ;
DUP ;
DUG 2 ;
GET 3 ;
MEM ;
IF
{}
{ PUSH string "FA2_TOKEN_UNDEFINED" ; FAILWITH } ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF
{ PUSH bool True }
{ DUP 4 ;
GET 3 ;
GET 4 ;
SWAP ;
DUP ;
DUG 2 ;
GET 3 ;
SENDER ;
DUP 5 ;
CAR ;
PAIR 3 ;
MEM } ;
IF {} { PUSH string "FA2_NOT_OPERATOR" ; FAILWITH } ;
DUP ;
GET 4 ;
PUSH nat 0 ;
COMPARE ;
LT ;
IF
{ DUP 4 ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
UNPAIR ;
DUP 6 ;
GET 4 ;
DIG 9 ;
CAR ;
GET 3 ;
CAR ;
DUP 8 ;
GET 3 ;
DUP 10 ;
CAR ;
PAIR ;
GET ;
IF_NONE { PUSH nat 0 } {} ;
SUB ;
ISNAT ;
IF_NONE
{ PUSH string "FA2_INSUFFICIENT_BALANCE" ;
FAILWITH }
{} ;
SOME ;
DUP 7 ;
GET 3 ;
DUP 9 ;
CAR ;
PAIR ;
UPDATE ;
PAIR ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
DUP ;
DUG 4 ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
UNPAIR ;
DUP 6 ;
GET 4 ;
DIG 9 ;
CAR ;
GET 3 ;
CAR ;
DIG 7 ;
DUP ;
GET 3 ;
SWAP ;
DUP ;
DUG 9 ;
CAR ;
PAIR ;
GET ;
IF_NONE { PUSH nat 0 } {} ;
ADD ;
SOME ;
DIG 6 ;
DUP ;
GET 3 ;
SWAP ;
CAR ;
PAIR ;
UPDATE ;
PAIR ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
DUG 2 }
{ DROP } } ;
DROP } ;
DROP ;
NIL operation }
{ IF_LEFT
{ DUP ;
ITER { IF_LEFT
{ DUP ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH string "FA2_NOT_OWNER" ; FAILWITH } ;
DIG 2 ;
UNPAIR ;
SWAP ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
PUSH (option unit) (Some Unit) ;
DIG 6 ;
UPDATE ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
SWAP ;
PAIR ;
SWAP }
{ DUP ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH string "FA2_NOT_OWNER" ; FAILWITH } ;
DIG 2 ;
UNPAIR ;
SWAP ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
NONE unit ;
DIG 6 ;
UPDATE ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
SWAP ;
PAIR ;
SWAP } } ;
DROP ;
NIL operation }
{ SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
CAR ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH string "FA2_NOT_ADMIN" ; FAILWITH } ;
DUP ;
CDR ;
CONTRACT unit ;
IF_NONE { PUSH int 546 ; FAILWITH } {} ;
NIL operation ;
SWAP ;
DIG 2 ;
CAR ;
UNIT ;
TRANSFER_TOKENS ;
CONS } } } } ;
PAIR } ;
view "get_balance_of" (list (pair (address %owner) (nat %token_id)))
(list (pair (pair %request (address %owner) (nat %token_id)) (nat %balance)))
{ UNPAIR ;
DUP ;
MAP { DUP 3 ;
GET 10 ;
SWAP ;
DUP ;
DUG 2 ;
CDR ;
MEM ;
IF {} { PUSH string "FA2_TOKEN_UNDEFINED" ; FAILWITH } ;
DUP 3 ;
CAR ;
GET 3 ;
CAR ;
SWAP ;
DUP ;
CDR ;
SWAP ;
DUP ;
DUG 3 ;
CAR ;
PAIR ;
GET ;
IF_NONE { PUSH nat 0 } {} ;
SWAP ;
PAIR } ;
SWAP ;
DROP ;
SWAP ;
DROP } }