BCD

Tezos Contract Explorer
Search Networks Deploy
  • Home
  • /
  • Ghostnet
  • /
  • KT1GXW3...X7bQ
operations (78)Storage Code Interact Tokens Fork Statistics Details
Latest
​x
83
 
1
parameter (list (sapling_transaction 8));
2
storage (pair (address %fa1_2_contract) (sapling_state %state 8));
3
code { UNPAIR ;
4
       PUSH mutez 0 ;
5
       AMOUNT ;
6
       COMPARE ;
7
       GT ;
8
       IF
9
         { DROP 2 ; PUSH string "UNEXPECTED_XTZ_AMOUNT" ; FAILWITH }
10
         { DUP 2 ;
11
           CAR ;
12
           CONTRACT %transfer (pair (address %from) (address %to) (nat %value)) ;
13
           IF_NONE
14
             { DROP 2 ; PUSH string "%TRANSFER_DOESNT_EXIST" ; FAILWITH }
15
             { DIG 2 ;
16
               NIL operation ;
17
               PAIR ;
18
               DIG 2 ;
19
               ITER { SWAP ;
20
                      UNPAIR ;
21
                      DUP 2 ;
22
                      CDR ;
23
                      DIG 3 ;
24
                      SAPLING_VERIFY_UPDATE ;
25
                      IF_NONE
26
                        { DROP 2 ; PUSH string "INVALID_SAPLING_TX" ; FAILWITH }
27
                        { UNPAIR ;
28
                          SWAP ;
29
                          UNPAIR ;
30
                          PUSH int 0 ;
31
                          DUP 2 ;
32
                          COMPARE ;
33
                          GT ;
34
                          IF
35
                            { DIG 2 ;
36
                              UNPACK key_hash ;
37
                              IF_NONE
38
                                { DROP 4 ;
39
                                  PUSH string "UNABLE_TO_UNPACK_RECIPIENT" ;
40
                                  FAILWITH }
41
                                { IMPLICIT_ACCOUNT ;
42
                                  ADDRESS ;
43
                                  SWAP ;
44
                                  ABS ;
45
                                  SWAP ;
46
                                  SELF_ADDRESS ;
47
                                  PAIR 3 ;
48
                                  DIG 3 ;
49
                                  DIG 2 ;
50
                                  UPDATE 2 ;
51
                                  DIG 2 ;
52
                                  DUP 4 ;
53
                                  PUSH mutez 0 ;
54
                                  DIG 4 ;
55
                                  TRANSFER_TOKENS ;
56
                                  CONS ;
57
                                  PAIR } }
58
                            { DIG 2 ;
59
                              UNPACK key_hash ;
60
                              IF_NONE
61
                                { PUSH int 0 ;
62
                                  DUP 2 ;
63
                                  COMPARE ;
64
                                  LT ;
65
                                  IF
66
                                    { ABS ;
67
                                      SELF_ADDRESS ;
68
                                      SENDER ;
69
                                      PAIR 3 ;
70
                                      DIG 3 ;
71
                                      DIG 2 ;
72
                                      UPDATE 2 ;
73
                                      DIG 2 ;
74
                                      DUP 4 ;
75
                                      PUSH mutez 0 ;
76
                                      DIG 4 ;
77
                                      TRANSFER_TOKENS ;
78
                                      CONS }
79
                                    { DROP ; DIG 2 ; SWAP ; UPDATE 2 ; SWAP } ;
80
                                  PAIR }
81
                                { DROP 5 ; PUSH string "UNEXPECTED_RECIPIENT" ; FAILWITH } } } } ;
82
               SWAP ;
83
               DROP } } }