BCD

Tezos Contract Explorer
Search Networks Deploy
  • Home
  • /
  • Mainnet
  • /
  • FlatYouves DEX Admin
operations (642)Storage Code Interact Tokens Fork Statistics Details
Latest
​x
56
 
1
parameter (or (unit %default)
2
              (pair %main
3
                (pair :payload (nat %counter)
4
                               (or :action (lambda %operation unit (list operation))
5
                                           (pair %change_keys (nat %threshold)
6
                                                              (list %keys key))))
7
                (list %sigs (option signature))));
8
storage (pair (nat %stored_counter) (pair (nat %threshold) (list %keys key)));
9
code { UNPAIR ;
10
       IF_LEFT
11
         { DROP ; NIL operation ; PAIR }
12
         { PUSH mutez 0 ;
13
           AMOUNT ;
14
           { { COMPARE ; EQ } ; IF {} { { UNIT ; FAILWITH } } } ;
15
           SWAP ;
16
           DUP ;
17
           DIP { SWAP } ;
18
           DIP { UNPAIR ;
19
                 DUP ;
20
                 SELF ;
21
                 ADDRESS ;
22
                 CHAIN_ID ;
23
                 PAIR ;
24
                 PAIR ;
25
                 PACK ;
26
                 DIP { UNPAIR @counter ; DIP { SWAP } } ;
27
                 SWAP } ;
28
           UNPAIR @stored_counter ;
29
           DIP { SWAP } ;
30
           { { COMPARE ; EQ } ; IF {} { { UNIT ; FAILWITH } } } ;
31
           DIP { SWAP } ;
32
           UNPAIR @threshold @keys ;
33
           DIP { PUSH @valid nat 0 ;
34
                 SWAP ;
35
                 ITER { DIP { SWAP } ;
36
                        SWAP ;
37
                        IF_CONS
38
                          { { IF_NONE
39
                                { SWAP ; DROP }
40
                                { SWAP ;
41
                                  DIP { SWAP ;
42
                                        { DIP 2 { { { DUP 2 } } } } ;
43
                                        { { DUP 3 } ;
44
                                          DIP { CHECK_SIGNATURE } ;
45
                                          SWAP ;
46
                                          IF { DROP } { FAILWITH } } ;
47
                                        PUSH nat 1 ;
48
                                        ADD @valid } } } }
49
                          { { UNIT ; FAILWITH } } ;
50
                        SWAP } } ;
51
           { { COMPARE ; LE } ; IF {} { { UNIT ; FAILWITH } } } ;
52
           IF_CONS { { UNIT ; FAILWITH } } {} ;
53
           DROP ;
54
           DIP { UNPAIR ; PUSH nat 1 ; ADD @new_counter ; PAIR } ;
55
           IF_LEFT { UNIT ; EXEC } { DIP { CAR } ; SWAP ; PAIR ; NIL operation } ;
56
           PAIR } }