BCD

Tezos Contract Explorer
Search Networks Deploy
  • Home
  • /
  • Tallinnnet
  • /
  • KT1GfEy...FMhB
operations (3)Storage Code Interact Tokens Fork Details
Latest
​x
54
 
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 { { { DUP ; CAR ; DIP { CDR } } } ;
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 { { { DUP ; CAR ; DIP { CDR } } } ;
19
                 DUP ;
20
                 SELF ;
21
                 ADDRESS ;
22
                 PAIR ;
23
                 PACK ;
24
                 DIP { { { DUP ; CAR @counter ; DIP { CDR } } } ; DIP { SWAP } } ;
25
                 SWAP } ;
26
           { { DUP ; CAR @stored_counter ; DIP { CDR } } } ;
27
           DIP { SWAP } ;
28
           { { COMPARE ; EQ } ; IF {} { { UNIT ; FAILWITH } } } ;
29
           DIP { SWAP } ;
30
           { { DUP ; CAR @threshold ; DIP { CDR @keys } } } ;
31
           DIP { PUSH @valid nat 0 ;
32
                 SWAP ;
33
                 ITER { DIP { SWAP } ;
34
                        SWAP ;
35
                        IF_CONS
36
                          { { IF_NONE
37
                                { SWAP ; DROP }
38
                                { SWAP ;
39
                                  DIP { SWAP ;
40
                                        DIP 2 { { DIP { DUP } ; SWAP } } ;
41
                                        { { DIP 2 { DUP } ; DIG 3 } ;
42
                                          DIP { CHECK_SIGNATURE } ;
43
                                          SWAP ;
44
                                          IF { DROP } { FAILWITH } } ;
45
                                        PUSH nat 1 ;
46
                                        ADD @valid } } } }
47
                          { { UNIT ; FAILWITH } } ;
48
                        SWAP } } ;
49
           { { COMPARE ; LE } ; IF {} { { UNIT ; FAILWITH } } } ;
50
           IF_CONS { { UNIT ; FAILWITH } } {} ;
51
           DROP ;
52
           DIP { { { DUP ; CAR ; DIP { CDR } } } ; PUSH nat 1 ; ADD @new_counter ; PAIR } ;
53
           IF_LEFT { UNIT ; EXEC } { DIP { CAR } ; SWAP ; PAIR ; NIL operation } ;
54
           PAIR } }