BCD

Tezos Contract Explorer
Search Networks Deploy
  • Home
  • /
  • Mainnet
  • /
  • KT1GQoA...Pt2G
operations (4)Storage Code Interact Tokens Fork Statistics Details
Latest
​x
163
 
1
{ parameter (or (or (address %propose_administrator) (address %remove_administrator))
2
                (or
3
                  (or %remove_price_fetching_data (address %fa1)
4
                                                  (or
5
                                                    (pair %fa2 (address %address)
6
                                                               (nat %token_id))
7
                                                    (unit %tez)))
8
                  (or (unit %set_administrator)
9
                      (pair %update_price_fetching_data
10
                        (or %key (address %fa1)
11
                                 (or (pair %fa2 (address %address) (nat %token_id))
12
                                     (unit %tez)))
13
                        (lambda %value unit (pair nat nat)))))) ;
14
  storage (pair (big_map %administrators address nat)
15
                (big_map %price_fetching_lambdas
16
                  (or (address %fa1)
17
                      (or (pair %fa2 (address %address) (nat %token_id)) (unit %tez)))
18
                  (lambda unit (pair nat nat)))) ;
19
  code { LAMBDA
20
           (pair unit
21
                 (pair (big_map address nat)
22
                       (big_map (or address (or (pair address nat) unit))
23
                                (lambda unit (pair nat nat)))))
24
           (pair unit
25
                 (pair (big_map address nat)
26
                       (big_map (or address (or (pair address nat) unit))
27
                                (lambda unit (pair nat nat)))))
28
           { CDR ;
29
             PUSH nat 1 ;
30
             DUP 2 ;
31
             CAR ;
32
             SENDER ;
33
             GET ;
34
             IF_NONE { PUSH int 21 ; FAILWITH } {} ;
35
             COMPARE ;
36
             EQ ;
37
             IF {} { PUSH int 401 ; FAILWITH } ;
38
             UNIT ;
39
             PAIR } ;
40
         SWAP ;
41
         UNPAIR ;
42
         IF_LEFT
43
           { IF_LEFT
44
               { AMOUNT ;
45
                 PUSH mutez 0 ;
46
                 COMPARE ;
47
                 EQ ;
48
                 IF {} { AMOUNT ; FAILWITH } ;
49
                 DIG 2 ;
50
                 UNIT ;
51
                 SWAP ;
52
                 DIG 3 ;
53
                 DIG 2 ;
54
                 PAIR ;
55
                 EXEC ;
56
                 CDR ;
57
                 DUP ;
58
                 CAR ;
59
                 PUSH (option nat) (Some 0) ;
60
                 DIG 3 ;
61
                 UPDATE ;
62
                 UPDATE 1 }
63
               { AMOUNT ;
64
                 PUSH mutez 0 ;
65
                 COMPARE ;
66
                 EQ ;
67
                 IF {} { AMOUNT ; FAILWITH } ;
68
                 DIG 2 ;
69
                 UNIT ;
70
                 SWAP ;
71
                 DIG 3 ;
72
                 DIG 2 ;
73
                 PAIR ;
74
                 EXEC ;
75
                 CDR ;
76
                 DUP ;
77
                 CAR ;
78
                 NONE nat ;
79
                 DIG 3 ;
80
                 UPDATE ;
81
                 UPDATE 1 } }
82
           { IF_LEFT
83
               { DIG 2 ;
84
                 UNIT ;
85
                 SWAP ;
86
                 DIG 3 ;
87
                 DIG 2 ;
88
                 PAIR ;
89
                 EXEC ;
90
                 CDR ;
91
                 SWAP ;
92
                 DUP 2 ;
93
                 CDR ;
94
                 DUP 2 ;
95
                 MEM ;
96
                 IF {} { PUSH string "Invalid key" ; FAILWITH } ;
97
                 SWAP ;
98
                 DUP ;
99
                 CDR ;
100
                 NONE (lambda unit (pair nat nat)) ;
101
                 DIG 3 ;
102
                 UPDATE ;
103
                 UPDATE 2 }
104
               { IF_LEFT
105
                   { DROP ;
106
                     SWAP ;
107
                     DROP ;
108
                     AMOUNT ;
109
                     PUSH mutez 0 ;
110
                     COMPARE ;
111
                     EQ ;
112
                     IF {} { AMOUNT ; FAILWITH } ;
113
                     PUSH nat 0 ;
114
                     DUP 2 ;
115
                     CAR ;
116
                     SENDER ;
117
                     GET ;
118
                     IF_NONE { PUSH int 46 ; FAILWITH } {} ;
119
                     COMPARE ;
120
                     EQ ;
121
                     IF {} { PUSH int 405 ; FAILWITH } ;
122
                     DUP ;
123
                     CAR ;
124
                     PUSH (option nat) (Some 1) ;
125
                     SENDER ;
126
                     UPDATE ;
127
                     UPDATE 1 }
128
                   { DIG 2 ;
129
                     UNIT ;
130
                     SWAP ;
131
                     DIG 3 ;
132
                     DIG 2 ;
133
                     PAIR ;
134
                     EXEC ;
135
                     CDR ;
136
                     DUP ;
137
                     CDR ;
138
                     DUP 3 ;
139
                     CDR ;
140
                     SOME ;
141
                     DIG 3 ;
142
                     CAR ;
143
                     UPDATE ;
144
                     UPDATE 2 } } } ;
145
         NIL operation ;
146
         PAIR } ;
147
  view "get_token_price"
148
        (or (address %fa1)
149
            (or (pair %fa2 (address %address) (nat %token_id)) (unit %tez)))
150
        (pair nat nat)
151
        { UNPAIR ;
152
          DUP 2 ;
153
          CDR ;
154
          DUP 2 ;
155
          MEM ;
156
          IF {} { PUSH string "Invalid key" ; FAILWITH } ;
157
          SWAP ;
158
          CDR ;
159
          SWAP ;
160
          GET ;
161
          IF_NONE { PUSH int 50 ; FAILWITH } {} ;
162
          UNIT ;
163
          EXEC } }