BCD

Tezos Contract Explorer
Search Networks Deploy
  • Home
  • /
  • Ghostnet
  • /
  • KT1VyPb...9hnA
Delegatable
operations (5)Storage Code Interact Tokens Fork Statistics Details
Latest
​x
107
 
1
parameter (or (option %delegate key_hash)
2
              (or (unit %default)
3
                  (or
4
                    (or %edit_depositor (bool %allow_any)
5
                                        (pair %allow_account bool address))
6
                    (pair %withdraw mutez (contract unit)))));
7
storage (pair (address %admin)
8
              (pair (pair %handle (nat %id) (address %owner))
9
                    (or %depositors (unit %any) (set %whitelist address))));
10
code { UNPAIR ;
11
       IF_LEFT
12
         { PUSH string "TEZ_IN_TRANSACTION_DISALLOWED" ;
13
           PUSH mutez 0 ;
14
           AMOUNT ;
15
           COMPARE ;
16
           EQ ;
17
           IF { DROP } { FAILWITH } ;
18
           PUSH string "ONLY_OWNER_CAN_CALL" ;
19
           DUP 3 ;
20
           GET 3 ;
21
           CDR ;
22
           SENDER ;
23
           COMPARE ;
24
           EQ ;
25
           IF { DROP } { FAILWITH } ;
26
           NIL operation ;
27
           SWAP ;
28
           SET_DELEGATE ;
29
           CONS }
30
         { IF_LEFT
31
             { DROP ;
32
               DUP ;
33
               GET 4 ;
34
               IF_LEFT { DROP ; PUSH bool True } { SENDER ; MEM } ;
35
               DUP 2 ;
36
               GET 3 ;
37
               CDR ;
38
               SENDER ;
39
               COMPARE ;
40
               EQ ;
41
               OR ;
42
               IF {} { PUSH string "UNAUTHORIZED_DEPOSITOR" ; FAILWITH } ;
43
               DUP ;
44
               CAR ;
45
               CONTRACT %register_oven_deposit (pair
46
                                                 (pair %handle (nat %id)
47
                                                               (address %owner))
48
                                                 (mutez %amount)) ;
49
               IF_NONE { PUSH string "MISSING_DEPOSIT_ENTRYPOINT" ; FAILWITH } {} ;
50
               DUP 2 ;
51
               NIL operation ;
52
               DIG 2 ;
53
               PUSH mutez 0 ;
54
               AMOUNT ;
55
               DIG 5 ;
56
               GET 3 ;
57
               PAIR ;
58
               TRANSFER_TOKENS ;
59
               CONS }
60
             { IF_LEFT
61
                 { PUSH string "TEZ_IN_TRANSACTION_DISALLOWED" ;
62
                   PUSH mutez 0 ;
63
                   AMOUNT ;
64
                   COMPARE ;
65
                   EQ ;
66
                   IF { DROP } { FAILWITH } ;
67
                   PUSH string "ONLY_OWNER_CAN_CALL" ;
68
                   DUP 3 ;
69
                   GET 3 ;
70
                   CDR ;
71
                   SENDER ;
72
                   COMPARE ;
73
                   EQ ;
74
                   IF { DROP } { FAILWITH } ;
75
                   IF_LEFT
76
                     { IF
77
                         { UNIT ; LEFT (set address) }
78
                         { EMPTY_SET address ; RIGHT unit } }
79
                     { UNPAIR ;
80
                       DUP 3 ;
81
                       GET 4 ;
82
                       IF_LEFT
83
                         { DROP 3 ; PUSH string "SET_ANY_OFF_FIRST" ; FAILWITH }
84
                         { SWAP ;
85
                           IF
86
                             { PUSH bool True ; DIG 2 ; UPDATE }
87
                             { PUSH bool False ; DIG 2 ; UPDATE } ;
88
                           RIGHT unit } } ;
89
                   UPDATE 4 ;
90
                   NIL operation }
91
                 { PUSH string "ONLY_MAIN_CONTRACT_CAN_CALL" ;
92
                   DUP 3 ;
93
                   CAR ;
94
                   SENDER ;
95
                   COMPARE ;
96
                   EQ ;
97
                   IF { DROP } { FAILWITH } ;
98
                   SWAP ;
99
                   NIL operation ;
100
                   DUP 3 ;
101
                   CDR ;
102
                   DIG 3 ;
103
                   CAR ;
104
                   UNIT ;
105
                   TRANSFER_TOKENS ;
106
                   CONS } } } ;
107
       PAIR }