BCD

Tezos Contract Explorer
Search Networks Deploy
  • Home
  • /
  • Mainnet
  • /
  • KT19nri...4qcr
operations (1)Storage Code Interact Tokens Fork Statistics Details
Latest
​x
165
 
1
parameter (or
2
            (pair %claim (nat %amount) (timestamp %from) (bool %airdrop)
3
                         (list %proof (or (bytes %left) (bytes %right))))
4
            (unit %finalize_airdrop));
5
storage (pair (bytes %root_hash) (address %token_contract) (nat %token_id)
6
              (address %treasury_address)
7
              (timestamp %airdrop_cutoff)
8
              (nat %remaining_airdrop_tokens)
9
              (big_map %claimed
10
                (pair (address %owner) (timestamp %from) (bool %airdrop))
11
                unit));
12
code { LAMBDA
13
         (pair (pair address nat) bytes address nat address timestamp nat
14
               (big_map (pair address timestamp bool) unit))
15
         operation
16
         { UNPAIR ;
17
           UNPAIR ;
18
           DUP 3 ;
19
           GET 3 ;
20
           CONTRACT %transfer (list (pair (address %from_)
21
                                         (list %txs (pair (address %to_) (nat %token_id)
22
                                                         (nat %amount))))) ;
23
           IF_NONE { PUSH string "MISSING_ENTRYPOINT" ; FAILWITH } {} ;
24
           NIL (pair address (list (pair address nat nat))) ;
25
           NIL (pair address nat nat) ;
26
           DIG 4 ;
27
           DIG 5 ;
28
           GET 5 ;
29
           DIG 5 ;
30
           PAIR 3 ;
31
           CONS ;
32
           SELF_ADDRESS ;
33
           PAIR ;
34
           CONS ;
35
           SWAP ;
36
           PUSH mutez 0 ;
37
           DIG 2 ;
38
           TRANSFER_TOKENS } ;
39
       SWAP ;
40
       UNPAIR ;
41
       PUSH mutez 0 ;
42
       AMOUNT ;
43
       COMPARE ;
44
       GT ;
45
       IF { PUSH string "AMOUNT_NOT_ZERO" ; FAILWITH } {} ;
46
       IF_LEFT
47
         { NOW ;
48
           DUP 3 ;
49
           GET 9 ;
50
           COMPARE ;
51
           LE ;
52
           DUP 2 ;
53
           GET 5 ;
54
           AND ;
55
           IF { PUSH string "AIRDROP_ENDED" ; FAILWITH } {} ;
56
           NOW ;
57
           DUP 2 ;
58
           GET 3 ;
59
           COMPARE ;
60
           GE ;
61
           IF { PUSH string "CLAIM_NOT_AVAILABLE" ; FAILWITH } {} ;
62
           SENDER ;
63
           DUP 2 ;
64
           GET 5 ;
65
           DUP 3 ;
66
           GET 3 ;
67
           DUP 4 ;
68
           CAR ;
69
           PAIR 4 ;
70
           DUP ;
71
           GET 5 ;
72
           DUP 2 ;
73
           GET 3 ;
74
           DUP 3 ;
75
           GET 6 ;
76
           PAIR 3 ;
77
           DUP 2 ;
78
           PACK ;
79
           PUSH bytes 0x00 ;
80
           CONCAT ;
81
           SHA3 ;
82
           DIG 3 ;
83
           GET 6 ;
84
           ITER { IF_LEFT { CONCAT } { SWAP ; CONCAT } ; PUSH bytes 0x01 ; CONCAT ; SHA3 } ;
85
           DUP 4 ;
86
           CAR ;
87
           COMPARE ;
88
           EQ ;
89
           IF {} { PUSH string "INVALID_PROOF" ; FAILWITH } ;
90
           DUP 3 ;
91
           GET 12 ;
92
           DUP 2 ;
93
           MEM ;
94
           IF { PUSH string "ALREADY_CLAIMED" ; FAILWITH } {} ;
95
           DUP 2 ;
96
           CAR ;
97
           DUP 4 ;
98
           GET 11 ;
99
           COMPARE ;
100
           LT ;
101
           DUP 3 ;
102
           GET 5 ;
103
           AND ;
104
           IF { PUSH string "NOT_ENOUGH_TOKENS" ; FAILWITH } {} ;
105
           DUP 3 ;
106
           DUP 4 ;
107
           GET 12 ;
108
           UNIT ;
109
           SOME ;
110
           DIG 3 ;
111
           UPDATE ;
112
           UPDATE 12 ;
113
           DUP 2 ;
114
           GET 5 ;
115
           IF
116
             { DUP 2 ;
117
               CAR ;
118
               DIG 3 ;
119
               GET 11 ;
120
               SUB ;
121
               ISNAT ;
122
               IF_NONE { PUSH string "NOT_A_NAT" ; FAILWITH } {} }
123
             { DIG 2 ; GET 11 } ;
124
           UPDATE 11 ;
125
           DUP ;
126
           DUP 3 ;
127
           CAR ;
128
           DIG 3 ;
129
           GET 6 ;
130
           PAIR ;
131
           PAIR ;
132
           DIG 2 ;
133
           SWAP ;
134
           EXEC ;
135
           SWAP }
136
         { DROP ;
137
           NOW ;
138
           DUP 2 ;
139
           GET 9 ;
140
           COMPARE ;
141
           GT ;
142
           IF { PUSH string "AIRDROP_ONGOING" ; FAILWITH } {} ;
143
           PUSH nat 0 ;
144
           DUP 2 ;
145
           GET 11 ;
146
           COMPARE ;
147
           LE ;
148
           IF { PUSH string "NOT_ENOUGH_TOKENS" ; FAILWITH } {} ;
149
           DUP ;
150
           DUP 2 ;
151
           GET 11 ;
152
           DUP 3 ;
153
           GET 7 ;
154
           PAIR ;
155
           PAIR ;
156
           DIG 2 ;
157
           SWAP ;
158
           EXEC ;
159
           SWAP ;
160
           PUSH nat 0 ;
161
           UPDATE 11 } ;
162
       NIL operation ;
163
       DIG 2 ;
164
       CONS ;
165
       PAIR }