BCD

Tezos Contract Explorer
Search Networks Deploy
  • Home
  • /
  • Mainnet
  • /
  • WTZ Swap Proxy
operations (344K)Storage Code Interact Tokens Metadata Fork Views Statistics Details
Latest
​x
90
 
1
{ parameter (or
2
              (or (or %adminAction (address %updateAdmin) (address %updateSwapContract))
3
                  (unit %confirmAdmin))
4
              (or (pair %unwrap nat address) (address %wrap))) ;
5
  storage (pair (big_map %metadata string bytes) (address %swapContract)
6
                (address %admin)
7
                (option %pendingAdmin address)) ;
8
  code { NIL operation ;
9
         LAMBDA
10
           address
11
           unit
12
           { PUSH bool False ;
13
             SWAP ;
14
             SENDER ;
15
             COMPARE ;
16
             EQ ;
17
             COMPARE ;
18
             EQ ;
19
             IF { PUSH string "INVALID_ACCESS" ; FAILWITH } { UNIT } } ;
20
         DIG 2 ;
21
         UNPAIR ;
22
         IF_LEFT
23
           { IF_LEFT
24
               { DUP 2 ; GET 5 ; DIG 3 ; SWAP ; EXEC ; DROP ; IF_LEFT { SOME ; UPDATE 6 } { UPDATE 3 } }
25
               { DROP ;
26
                 DUP ;
27
                 GET 6 ;
28
                 IF_NONE { PUSH string "INVALID_PENDING_ADMIN" ; FAILWITH } {} ;
29
                 DUP ;
30
                 DIG 3 ;
31
                 SWAP ;
32
                 EXEC ;
33
                 DROP ;
34
                 UPDATE 5 ;
35
                 NONE address ;
36
                 UPDATE 6 } }
37
           { DIG 2 ;
38
             DIG 3 ;
39
             DROP 2 ;
40
             IF_LEFT
41
               { DUP ;
42
                 CAR ;
43
                 PUSH nat 1 ;
44
                 DUP 2 ;
45
                 COMPARE ;
46
                 LT ;
47
                 IF { PUSH string "INVALID_UNWRAP_AMOUNT" ; FAILWITH } {} ;
48
                 NIL operation ;
49
                 DUP 4 ;
50
                 GET 3 ;
51
                 CONTRACT %unwrap (pair (pair address nat) address) ;
52
                 IF_NONE { PUSH string "CANNOT_INVOKE_WTZ_UNWRAP" ; FAILWITH } {} ;
53
                 PUSH mutez 0 ;
54
                 DIG 4 ;
55
                 CDR ;
56
                 DIG 4 ;
57
                 SENDER ;
58
                 PAIR ;
59
                 PAIR ;
60
                 TRANSFER_TOKENS }
61
               { PUSH mutez 1 ;
62
                 AMOUNT ;
63
                 COMPARE ;
64
                 LT ;
65
                 IF { PUSH string "INVALID_WRAP_AMOUNT" ; FAILWITH } {} ;
66
                 NIL operation ;
67
                 DUP 3 ;
68
                 GET 3 ;
69
                 CONTRACT %wrap address ;
70
                 IF_NONE { PUSH string "CANNOT_INVOKE_WTZ_WRAP" ; FAILWITH } {} ;
71
                 AMOUNT ;
72
                 DIG 3 ;
73
                 TRANSFER_TOKENS } ;
74
             CONS ;
75
             SWAP } ;
76
         SWAP ;
77
         PAIR } ;
78
  view "getSwapContract" unit address { CDR ; GET 3 } ;
79
  view "getSwapRatio" unit nat
80
        { CDR ;
81
          GET 3 ;
82
          UNIT ;
83
          VIEW "getSwapRatio" nat ;
84
          IF_NONE { PUSH string "INVALID_SWAP_CONTRACT" ; FAILWITH } {} } ;
85
  view "getFee" unit nat
86
        { CDR ;
87
          GET 3 ;
88
          UNIT ;
89
          VIEW "getFee" nat ;
90
          IF_NONE { PUSH string "INVALID_SWAP_CONTRACT" ; FAILWITH } {} } }