BCD

Tezos Contract Explorer
Search Networks Deploy
  • Home
  • /
  • Mainnet
  • /
  • KT1KpFk...FpmQ
operations (124K)Storage Code Interact Tokens Fork Views Statistics Details
Latest
​x
76
 
1
{ parameter (nat %set_price) ;
2
  storage (pair (pair (nat %last_epoch) (address %oracle))
3
                (pair (nat %price) (nat %validity_window_in_epochs))) ;
4
  code { UNPAIR ;
5
         PUSH nat 900 ;
6
         PUSH timestamp "1970-01-01T00:00:00Z" ;
7
         NOW ;
8
         SUB ;
9
         ISNAT ;
10
         IF_NONE { PUSH int 35 ; FAILWITH } {} ;
11
         EDIV ;
12
         IF_NONE { PUSH int 35 ; FAILWITH } { CAR } ;
13
         DUP 3 ;
14
         CAR ;
15
         CAR ;
16
         COMPARE ;
17
         LT ;
18
         IF {} { PUSH int 906 ; FAILWITH } ;
19
         SWAP ;
20
         DUP ;
21
         DUG 2 ;
22
         CAR ;
23
         CDR ;
24
         SENDER ;
25
         COMPARE ;
26
         EQ ;
27
         IF {} { PUSH int 504 ; FAILWITH } ;
28
         SWAP ;
29
         PUSH nat 1 ;
30
         DIG 2 ;
31
         MUL ;
32
         UPDATE 3 ;
33
         UNPAIR ;
34
         CDR ;
35
         PUSH nat 900 ;
36
         PUSH timestamp "1970-01-01T00:00:00Z" ;
37
         NOW ;
38
         SUB ;
39
         ISNAT ;
40
         IF_NONE { PUSH int 45 ; FAILWITH } {} ;
41
         EDIV ;
42
         IF_NONE { PUSH int 45 ; FAILWITH } { CAR } ;
43
         PAIR ;
44
         PAIR ;
45
         NIL operation ;
46
         PAIR } ;
47
  view "get_price" unit nat
48
        { CDR ;
49
          DUP ;
50
          GET 4 ;
51
          PUSH nat 900 ;
52
          PUSH timestamp "1970-01-01T00:00:00Z" ;
53
          NOW ;
54
          SUB ;
55
          ISNAT ;
56
          IF_NONE { PUSH int 51 ; FAILWITH } {} ;
57
          EDIV ;
58
          IF_NONE { PUSH int 51 ; FAILWITH } { CAR } ;
59
          SUB ;
60
          ISNAT ;
61
          IF_NONE { PUSH int 55 ; FAILWITH } {} ;
62
          SWAP ;
63
          DUP ;
64
          DUG 2 ;
65
          CAR ;
66
          CAR ;
67
          COMPARE ;
68
          GT ;
69
          IF {} { PUSH int 900 ; FAILWITH } ;
70
          DUP ;
71
          GET 3 ;
72
          PUSH nat 0 ;
73
          COMPARE ;
74
          LT ;
75
          IF {} { PUSH int 905 ; FAILWITH } ;
76
          GET 3 } }