BCD

Tezos Contract Explorer
Search Networks Deploy
  • Home
  • /
  • Tallinnnet
  • /
  • KT1MFWy...5P3w
operations (1)Storage Code Interact Tokens Fork Details
Latest
​x
126
 
1
parameter (pair (pair address address) int);
2
storage (pair
3
          (pair
4
            (big_map %accounts address
5
                               (pair (map %allowances address int) (int %balance)))
6
            (address %owner))
7
          (int %totalSupply));
8
code { DUP ;
9
       LAMBDA
10
         (pair (pair address address)
11
               (pair int
12
                     (pair (pair (big_map address (pair (map address int) int)) address)
13
                           int)))
14
         (pair (pair (big_map address (pair (map address int) int)) address) int)
15
         { DUP ;
16
           CAR ;
17
           CAR ;
18
           DIP { DUP } ;
19
           SWAP ;
20
           CAR ;
21
           CDR ;
22
           DIP 2 { DUP } ;
23
           DIG 2 ;
24
           CDR ;
25
           CAR ;
26
           DIP 3 { DUP } ;
27
           DIG 3 ;
28
           CDR ;
29
           CDR ;
30
           DUP ;
31
           CAR ;
32
           CAR ;
33
           SOURCE ;
34
           GET ;
35
           IF_NONE { PUSH string "GET_FORCE" ; FAILWITH } {} ;
36
           PUSH int 0 ;
37
           EMPTY_MAP address int ;
38
           PAIR ;
39
           DIP 4 { DUP } ;
40
           DIG 4 ;
41
           DIP { DIP 2 { DUP } ; DIG 2 ; CAR ; CAR } ;
42
           GET ;
43
           IF_NONE
44
             { PUSH unit Unit }
45
             { DUP ; DIP { DIP { DUP } ; SWAP ; DROP } ; SWAP ; DROP ; DIP { DROP } ; PUSH unit Unit } ;
46
           DROP ;
47
           DIP 3 { DUP } ;
48
           DIG 3 ;
49
           DIP { DIP { DUP } ; SWAP ; CDR } ;
50
           COMPARE ;
51
           GT ;
52
           IF { PUSH string "Balance is too low" ; FAILWITH } { PUSH unit Unit } ;
53
           DROP ;
54
           DIP { DUP } ;
55
           SWAP ;
56
           CDR ;
57
           DIP { DIP 3 { DUP } ; DIG 3 } ;
58
           SUB ;
59
           DUP ;
60
           PUSH int 0 ;
61
           SWAP ;
62
           COMPARE ;
63
           LT ;
64
           IF
65
             { PUSH string "Balance cannot be negative" ; FAILWITH }
66
             { DUP ;
67
               DIP { DIP 2 { DUP } ; DIG 2 ; CAR } ;
68
               SWAP ;
69
               PAIR ;
70
               DIP 3 { DROP } ;
71
               DUG 2 ;
72
               PUSH unit Unit } ;
73
           DROP ;
74
           DIP { DUP } ;
75
           SWAP ;
76
           CDR ;
77
           DIP { DIP 4 { DUP } ; DIG 4 } ;
78
           ADD ;
79
           DIP { DIP { DUP } ; SWAP ; CAR } ;
80
           SWAP ;
81
           PAIR ;
82
           SWAP ;
83
           DIP { DIP { DROP } } ;
84
           DIP 2 { DUP } ;
85
           DIG 2 ;
86
           SOME ;
87
           DIP { DIP 3 { DUP } ; DIG 3 ; CAR ; CAR } ;
88
           SOURCE ;
89
           UPDATE ;
90
           DIP { DIP 3 { DUP } ; DIG 3 ; DUP ; CDR ; SWAP ; CAR ; CDR } ;
91
           PAIR ;
92
           PAIR ;
93
           DIP 4 { DROP } ;
94
           DUG 3 ;
95
           DIP 5 { DUP } ;
96
           DIG 5 ;
97
           DIP { DIP { DUP } ; SWAP ; SOME ; DIP { DIP 3 { DUP } ; DIG 3 ; CAR ; CAR } } ;
98
           UPDATE ;
99
           DIP { DIP 3 { DUP } ; DIG 3 ; DUP ; CDR ; SWAP ; CAR ; CDR } ;
100
           PAIR ;
101
           PAIR ;
102
           DIP 4 { DROP } ;
103
           DUG 3 ;
104
           DIP 3 { DUP } ;
105
           DIG 3 ;
106
           DIP { DROP 8 } } ;
107
       SWAP ;
108
       CAR ;
109
       DIP 2 { DUP } ;
110
       DIG 2 ;
111
       CDR ;
112
       DIP { DUP } ;
113
       SWAP ;
114
       DUP ;
115
       CAR ;
116
       CAR ;
117
       DIP { DUP ; CAR ; CDR } ;
118
       PAIR ;
119
       DIP { DUP ; CDR ; DIP { DIP { DUP } ; SWAP } ; PAIR } ;
120
       PAIR ;
121
       DIP { DIP 3 { DUP } ; DIG 3 } ;
122
       EXEC ;
123
       DIP { DROP } ;
124
       NIL operation ;
125
       PAIR ;
126
       DIP { DROP 4 } }