BCD

Tezos Contract Explorer
Search Networks Deploy
  • Home
  • /
  • Mainnet
  • /
  • KT1LGsc...jB8X
operations (465)Storage Code Interact Tokens Fork Statistics Details
Latest
​x
109
 
1
parameter (or :_entries (pair %main address address) (key_hash %change_destination));
2
storage (pair :storage
3
          (big_map :deposits address
4
                             (pair :record (mutez %deposited) (address %delegate)))
5
          (pair (mutez %total) (pair (key_hash %destination) (address %admin))));
6
code { DUP ;
7
       DIP { CDR @storage_slash_1 } ;
8
       CAR @parameter_slash_2 ;
9
       DUP @parameter ;
10
       IF_LEFT
11
         { RENAME @_source_proposed_delegate_slash_3 ;
12
           { DIP 2 { DUP @storage } ; DIG 3 } ;
13
           { DIP { DUP } ; SWAP } ;
14
           CAR @source ;
15
           { DIP 2 { DUP } ; DIG 3 } ;
16
           CDR @proposed_delegate ;
17
           AMOUNT @amount ;
18
           { DIP 3 { DUP @prev } ; DIG 4 } ;
19
           DUP ;
20
           CAR %deposits ;
21
           SWAP ;
22
           CDR ;
23
           CDR ;
24
           { DIP 2 { DUP @amount } ; DIG 3 } ;
25
           { DIP 6 { DUP @prev } ; DIG 7 } ;
26
           { CDR ; CAR %total } ;
27
           ADD ;
28
           PAIR %total ;
29
           SWAP ;
30
           PAIR @curr %deposits ;
31
           { DIP 4 { DUP @prev } ; DIG 5 } ;
32
           { CDR ; CDR ; CAR %destination } ;
33
           IMPLICIT_ACCOUNT ;
34
           { DIP 2 { DUP @amount } ; DIG 3 } ;
35
           UNIT ;
36
           TRANSFER_TOKENS @op ;
37
           { DIP { DUP @curr } ; SWAP } ;
38
           CDR ;
39
           { DIP 2 { DUP @curr } ; DIG 3 } ;
40
           CAR %deposits ;
41
           { DIP 7 { DUP @prev } ; DIG 8 } ;
42
           CAR %deposits ;
43
           { DIP 7 { DUP @source } ; DIG 8 } ;
44
           GET ;
45
           IF_NONE
46
             { { DIP 6 { DUP @source } ; DIG 7 } ;
47
               SENDER ;
48
               COMPARE ;
49
               EQ ;
50
               IF
51
                 { { DIP 5 { DUP @proposed_delegate } ; DIG 6 } }
52
                 { { DIP 6 { DUP @source } ; DIG 7 } } ;
53
               RENAME @delegate ;
54
               { DIP 5 { DUP @amount } ; DIG 6 } ;
55
               PAIR %deposited %delegate }
56
             { { DIP 7 { DUP @source } ; DIG 8 } ;
57
               SENDER ;
58
               COMPARE ;
59
               EQ ;
60
               IF
61
                 { { DIP 6 { DUP @proposed_delegate } ; DIG 7 } }
62
                 { DUP @r ; CDR %delegate } ;
63
               RENAME @delegate ;
64
               { DIP 6 { DUP @amount } ; DIG 7 } ;
65
               { DIP 2 { DUP @r } ; DIG 3 } ;
66
               DIP 3 { DROP } ;
67
               CAR %deposited ;
68
               ADD ;
69
               PAIR %deposited %delegate } ;
70
           RENAME @record ;
71
           { DIP 7 { DUP @source } ; DIG 8 } ;
72
           DIP { SOME } ;
73
           DIP 5 { DROP ; DROP ; DROP ; DROP ; DROP ; DROP } ;
74
           UPDATE ;
75
           PAIR @curr %deposits ;
76
           NIL operation ;
77
           { DIP 2 { DUP } ; DIG 3 } ;
78
           DIP 3 { DROP } ;
79
           CONS ;
80
           PAIR }
81
         { RENAME @destination_slash_15 ;
82
           { DIP 2 { DUP @storage } ; DIG 3 } ;
83
           DUP @prev ;
84
           { CDR ; CDR ; CDR @admin %admin } ;
85
           SENDER ;
86
           COMPARE ;
87
           EQ ;
88
           IF
89
             { DUP @prev ;
90
               DUP ;
91
               CAR %deposits ;
92
               SWAP ;
93
               CDR ;
94
               DUP ;
95
               CAR %total ;
96
               SWAP ;
97
               CDR ;
98
               CDR %admin ;
99
               { DIP 4 { DUP @destination } ; DIG 5 } ;
100
               PAIR %destination %admin ;
101
               SWAP ;
102
               PAIR %total ;
103
               SWAP ;
104
               PAIR %deposits ;
105
               NIL operation ;
106
               PAIR }
107
             { DUP @prev ; NIL operation ; PAIR } ;
108
           DIP { DROP ; DROP } } ;
109
       DIP { DROP ; DROP } }