BCD

Tezos Contract Explorer
Search Networks Deploy
  • Home
  • /
  • Mainnet
  • /
  • Ticketer: USDtz
operations (58)Storage Code Interact Tokens Tickets Metadata Fork Views Statistics Details
Latest
​x
142
 
1
{ parameter (or
2
              (pair %withdraw (address %receiver)
3
                              (ticket %ticket (pair nat (option bytes))))
4
              (nat %deposit)) ;
5
  storage (pair (big_map %metadata string bytes)
6
                (pair (or %token (address %fa12) (pair %fa2 address nat))
7
                      (pair (pair %content nat (option bytes)) (nat %total_supply)))) ;
8
  code { LAMBDA
9
           (pair (or address (pair address nat)) (pair nat (pair address address)))
10
           operation
11
           { UNPAIR 4 ;
12
             IF_LEFT
13
               { CONTRACT %transfer (pair (address %from)
14
                                          (pair (address %to) (nat %value))) ;
15
                 IF_NONE { PUSH string "INVALID_FA12" ; FAILWITH } {} ;
16
                 PUSH mutez 0 ;
17
                 DIG 2 ;
18
                 DIG 4 ;
19
                 DIG 4 ;
20
                 PAIR 3 ;
21
                 TRANSFER_TOKENS }
22
               { UNPAIR ;
23
                 CONTRACT %transfer (list (pair (address %from_)
24
                                               (list %txs (pair (address %to_)
25
                                                               (pair (nat %token_id)
26
                                                                     (nat %amount)))))) ;
27
                 IF_NONE { PUSH string "INVALID_FA2" ; FAILWITH } {} ;
28
                 PUSH mutez 0 ;
29
                 NIL (pair address (list (pair address (pair nat nat)))) ;
30
                 NIL (pair address (pair nat nat)) ;
31
                 DIG 5 ;
32
                 DIG 5 ;
33
                 DIG 7 ;
34
                 PAIR 3 ;
35
                 CONS ;
36
                 DIG 4 ;
37
                 PAIR ;
38
                 CONS ;
39
                 TRANSFER_TOKENS } } ;
40
         LAMBDA
41
           unit
42
           unit
43
           { PUSH mutez 0 ;
44
             AMOUNT ;
45
             COMPARE ;
46
             GT ;
47
             IF { DROP ; PUSH string "XTZ_DEPOSIT_DISALLOWED" ; FAILWITH } {} } ;
48
         DIG 2 ;
49
         UNPAIR ;
50
         IF_LEFT
51
           { UNPAIR ;
52
             SWAP ;
53
             READ_TICKET ;
54
             SWAP ;
55
             DROP ;
56
             UNPAIR ;
57
             SWAP ;
58
             UNPAIR ;
59
             DUP 5 ;
60
             GET 5 ;
61
             SWAP ;
62
             COMPARE ;
63
             EQ ;
64
             IF {} { PUSH string "UNEXPECTED_TKT_CONTENT" ; FAILWITH } ;
65
             SELF_ADDRESS ;
66
             DUP 3 ;
67
             COMPARE ;
68
             NEQ ;
69
             IF { PUSH string "UNAUTHORIZED_TKTR" ; FAILWITH } {} ;
70
             UNIT ;
71
             DIG 5 ;
72
             SWAP ;
73
             EXEC ;
74
             DROP ;
75
             DUP 4 ;
76
             GET 6 ;
77
             DUP 2 ;
78
             COMPARE ;
79
             GT ;
80
             IF
81
               { PUSH string "TOTAL_SUPPLY_EXCEEDED" ; FAILWITH }
82
               { DUP ; DUP 5 ; GET 6 ; SUB ; ABS } ;
83
             DIG 4 ;
84
             SWAP ;
85
             UPDATE 6 ;
86
             DUG 3 ;
87
             DUP 4 ;
88
             GET 3 ;
89
             PAIR 4 ;
90
             DIG 2 ;
91
             SWAP ;
92
             EXEC ;
93
             SWAP ;
94
             NIL operation }
95
           { UNIT ;
96
             DIG 3 ;
97
             SWAP ;
98
             EXEC ;
99
             DROP ;
100
             DUP ;
101
             DUP 3 ;
102
             GET 6 ;
103
             ADD ;
104
             PUSH nat 115792089237316195423570985008687907853269984665640564039457584007913129639936 ;
105
             DUP 2 ;
106
             COMPARE ;
107
             GE ;
108
             IF
109
               { DIG 2 ; DROP 2 ; PUSH string "TOTAL_SUPPLY_EXCEED_MAX" ; FAILWITH }
110
               { DIG 2 ; SWAP ; UPDATE 6 } ;
111
             SELF_ADDRESS ;
112
             SENDER ;
113
             DUP 4 ;
114
             DUP 4 ;
115
             GET 5 ;
116
             TICKET ;
117
             IF_NONE { PUSH string "TKT_CREATION_FAILED" ; FAILWITH } {} ;
118
             DIG 2 ;
119
             DUP 3 ;
120
             DIG 5 ;
121
             DUP 6 ;
122
             GET 3 ;
123
             PAIR 4 ;
124
             DIG 4 ;
125
             SWAP ;
126
             EXEC ;
127
             DIG 2 ;
128
             CONTRACT (ticket (pair nat (option bytes))) ;
129
             IF_NONE { PUSH string "FAILED_TO_GET_TKT_ENTRYPOINT" ; FAILWITH } {} ;
130
             PUSH mutez 0 ;
131
             DIG 3 ;
132
             TRANSFER_TOKENS ;
133
             DIG 2 ;
134
             NIL operation ;
135
             DIG 2 ;
136
             CONS } ;
137
         DIG 2 ;
138
         CONS ;
139
         PAIR } ;
140
  view "get_total_supply" unit nat { CDR ; GET 6 } ;
141
  view "get_content" unit (pair nat (option bytes)) { CDR ; GET 5 } ;
142
  view "get_token" unit (or (address %fa12) (pair %fa2 address nat)) { CDR ; GET 3 } }