x
126
parameter (pair (pair address address) int);storage (pair (pair (big_map %accounts address (pair (map %allowances address int) (int %balance))) (address %owner)) (int %totalSupply));code { DUP ; LAMBDA (pair (pair address address) (pair int (pair (pair (big_map address (pair (map address int) int)) address) int))) (pair (pair (big_map address (pair (map address int) int)) address) int) { DUP ; CAR ; CAR ; DIP { DUP } ; SWAP ; CAR ; CDR ; DIP 2 { DUP } ; DIG 2 ; CDR ; CAR ; DIP 3 { DUP } ; DIG 3 ; CDR ; CDR ; DUP ; CAR ; CAR ; SOURCE ; GET ; IF_NONE { PUSH string "GET_FORCE" ; FAILWITH } {} ; PUSH int 0 ; EMPTY_MAP address int ; PAIR ; DIP 4 { DUP } ; DIG 4 ; DIP { DIP 2 { DUP } ; DIG 2 ; CAR ; CAR } ; GET ; IF_NONE { PUSH unit Unit } { DUP ; DIP { DIP { DUP } ; SWAP ; DROP } ; SWAP ; DROP ; DIP { DROP } ; PUSH unit Unit } ; DROP ; DIP 3 { DUP } ; DIG 3 ; DIP { DIP { DUP } ; SWAP ; CDR } ; COMPARE ; GT ; IF { PUSH string "Balance is too low" ; FAILWITH } { PUSH unit Unit } ; DROP ; DIP { DUP } ; SWAP ; CDR ; DIP { DIP 3 { DUP } ; DIG 3 } ; SUB ; DUP ; PUSH int 0 ; SWAP ; COMPARE ; LT ; IF { PUSH string "Balance cannot be negative" ; FAILWITH } { DUP ; DIP { DIP 2 { DUP } ; DIG 2 ; CAR } ; SWAP ; PAIR ; DIP 3 { DROP } ; DUG 2 ; PUSH unit Unit } ; DROP ; DIP { DUP } ; SWAP ; CDR ; DIP { DIP 4 { DUP } ; DIG 4 } ; ADD ; DIP { DIP { DUP } ; SWAP ; CAR } ; SWAP ; PAIR ; SWAP ; DIP { DIP { DROP } } ; DIP 2 { DUP } ; DIG 2 ; SOME ; DIP { DIP 3 { DUP } ; DIG 3 ; CAR ; CAR } ; SOURCE ; UPDATE ; DIP { DIP 3 { DUP } ; DIG 3 ; DUP ; CDR ; SWAP ; CAR ; CDR } ; PAIR ; PAIR ; DIP 4 { DROP } ; DUG 3 ; DIP 5 { DUP } ; DIG 5 ; DIP { DIP { DUP } ; SWAP ; SOME ; DIP { DIP 3 { DUP } ; DIG 3 ; CAR ; CAR } } ; UPDATE ; DIP { DIP 3 { DUP } ; DIG 3 ; DUP ; CDR ; SWAP ; CAR ; CDR } ; PAIR ; PAIR ; DIP 4 { DROP } ; DUG 3 ; DIP 3 { DUP } ; DIG 3 ; DIP { DROP 8 } } ; SWAP ; CAR ; DIP 2 { DUP } ; DIG 2 ; CDR ; DIP { DUP } ; SWAP ; DUP ; CAR ; CAR ; DIP { DUP ; CAR ; CDR } ; PAIR ; DIP { DUP ; CDR ; DIP { DIP { DUP } ; SWAP } ; PAIR } ; PAIR ; DIP { DIP 3 { DUP } ; DIG 3 } ; EXEC ; DIP { DROP } ; NIL operation ; PAIR ; DIP { DROP 4 } }