BCD

Tezos Contract Explorer
Search Networks Deploy
  • Home
  • /
  • Mainnet
  • /
  • KT1DUfa...kc43
Delegatable
operations (3)Storage Code Interact Tokens Fork Statistics Details
Latest
​x
55
 
1
parameter (pair
2
            (pair :payload (nat %counter)
3
                           (or :action
4
                             (pair :transfer (mutez %amount) (contract %dest unit))
5
                             (or (option %delegate key_hash)
6
                                 (pair %change_keys (nat %threshold) (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
       SWAP ;
11
       DUP ;
12
       DIP { SWAP } ;
13
       DIP { { { DUP ; CAR ; DIP { CDR } } } ;
14
             DUP ;
15
             SELF ;
16
             ADDRESS ;
17
             CHAIN_ID ;
18
             PAIR ;
19
             PAIR ;
20
             PACK ;
21
             DIP { { { DUP ; CAR @counter ; DIP { CDR } } } ; DIP { SWAP } } ;
22
             SWAP } ;
23
       { { DUP ; CAR @stored_counter ; DIP { CDR } } } ;
24
       DIP { SWAP } ;
25
       { { COMPARE ; EQ } ; IF {} { { UNIT ; FAILWITH } } } ;
26
       DIP { SWAP } ;
27
       { { DUP ; CAR @threshold ; DIP { CDR @keys } } } ;
28
       DIP { PUSH @valid nat 0 ;
29
             SWAP ;
30
             ITER { DIP { SWAP } ;
31
                    SWAP ;
32
                    IF_CONS
33
                      { { IF_NONE
34
                            { SWAP ; DROP }
35
                            { SWAP ;
36
                              DIP { SWAP ;
37
                                    { DIP { DIP { { DIP { DUP } ; SWAP } } } } ;
38
                                    { { DIP { DIP { DUP } ; SWAP } ; SWAP } ;
39
                                      DIP { CHECK_SIGNATURE } ;
40
                                      SWAP ;
41
                                      IF { DROP } { FAILWITH } } ;
42
                                    PUSH nat 1 ;
43
                                    ADD @valid } } } }
44
                      { { UNIT ; FAILWITH } } ;
45
                    SWAP } } ;
46
       { { COMPARE ; LE } ; IF {} { { UNIT ; FAILWITH } } } ;
47
       DROP ;
48
       DROP ;
49
       DIP { { { DUP ; CAR ; DIP { CDR } } } ; PUSH nat 1 ; ADD @new_counter ; PAIR } ;
50
       NIL operation ;
51
       SWAP ;
52
       IF_LEFT
53
         { { { DUP ; CAR ; DIP { CDR } } } ; UNIT ; TRANSFER_TOKENS ; CONS }
54
         { IF_LEFT { SET_DELEGATE ; CONS } { DIP { SWAP ; CAR } ; SWAP ; PAIR ; SWAP } } ;
55
       PAIR }