x
234
{ parameter (or (pair %create_claim (nat %banquetFeeAmount) (pair (timestamp %checkIn) (pair (timestamp %checkOut) (pair (nat %conferenceFeeAmount) (pair (bool %coverBanquet) (pair (bool %coverHotel) (pair (bool %coverTransport) (pair (string %currency) (pair (string %hotelName) (pair (bool %isStudent) (pair (nat %nights) (pair (bytes %receiptCid) (pair (nat %totalAfterTax) (pair (nat %totalBeforeTax) (bool %travelCostCovered))))))))))))))) (nat %submit_claim)) ; storage (pair (address %admin) (pair (big_map %claims nat (pair (nat %banquetFeeAmount) (pair (timestamp %checkIn) (pair (timestamp %checkOut) (pair (nat %conferenceFeeAmount) (pair (bool %coverBanquet) (pair (bool %coverHotel) (pair (bool %coverTransport) (pair (timestamp %createdAt) (pair (string %currency) (pair (address %employee) (pair (string %hotelName) (pair (bool %isStudent) (pair (nat %nights) (pair (bytes %receiptCid) (pair (nat %state) (pair (nat %totalAfterTax) (pair (nat %totalBeforeTax) (pair (bool %travelCostCovered) (timestamp %updatedAt)))))))))))))))))))) (pair (big_map %employeeClaims address (list nat)) (nat %nextId)))) ; code { UNPAIR ; IF_LEFT { PUSH nat 0 ; DUP 2 ; GET 7 ; COMPARE ; EQ ; IF { PUSH nat 0 ; DUP 2 ; CAR ; COMPARE ; NEQ ; IF { PUSH string "BANQUET_REQUIRES_CONFERENCE_FEE" ; FAILWITH } {} } {} ; DUP ; GET 28 ; IF {} { DUP ; GET 11 ; IF { PUSH bool True } { DUP ; GET 13 } ; IF { PUSH bool True } { DUP ; GET 9 } ; IF { PUSH string "COVER_FLAGS_REQUIRE_TRAVEL_COVERED" ; FAILWITH } {} } ; DUP 2 ; GET 6 ; DIG 2 ; DUP ; GET 6 ; PUSH nat 1 ; ADD ; UPDATE 6 ; DUG 2 ; NOW ; DIG 3 ; DUP ; GET 3 ; DUP 3 ; DUP 6 ; GET 28 ; DUP 7 ; GET 27 ; DUP 8 ; GET 25 ; PUSH nat 0 ; DUP 10 ; GET 23 ; DUP 11 ; GET 21 ; DUP 12 ; GET 19 ; DUP 13 ; GET 17 ; SENDER ; DUP 15 ; GET 15 ; DUP 14 ; DUP 17 ; GET 13 ; DUP 18 ; GET 11 ; DUP 19 ; GET 9 ; DUP 20 ; GET 7 ; DUP 21 ; GET 5 ; DUP 22 ; GET 3 ; DUP 23 ; CAR ; PAIR 19 ; DIG 3 ; DROP ; DIG 4 ; DROP ; SOME ; DUP 4 ; UPDATE ; UPDATE 3 ; SWAP ; DUP 2 ; GET 5 ; SENDER ; GET ; IF_NONE { NIL nat } {} ; SWAP ; CONS ; SWAP ; DUP ; GET 5 ; DIG 2 ; SOME ; SENDER ; UPDATE ; UPDATE 5 } { DUP 2 ; GET 3 ; DUP 2 ; MEM ; IF {} { PUSH string "NO_CLAIM" ; FAILWITH } ; DUP 2 ; GET 3 ; DUP 2 ; GET ; IF_NONE { PUSH int 127 ; FAILWITH } {} ; SENDER ; DUP 2 ; GET 19 ; COMPARE ; NEQ ; IF { PUSH string "NOT_OWNER" ; FAILWITH } {} ; PUSH nat 0 ; DUP 2 ; GET 29 ; COMPARE ; NEQ ; IF { PUSH string "BAD_STATE" ; FAILWITH } {} ; PUSH nat 1 ; UPDATE 29 ; NOW ; UPDATE 36 ; DIG 2 ; DUP ; GET 3 ; DIG 2 ; SOME ; DIG 3 ; UPDATE ; UPDATE 3 } ; NIL operation ; PAIR } ; view "get_claim_view" nat (pair (nat %banquetFeeAmount) (pair (timestamp %checkIn) (pair (timestamp %checkOut) (pair (nat %conferenceFeeAmount) (pair (bool %coverBanquet) (pair (bool %coverHotel) (pair (bool %coverTransport) (pair (timestamp %createdAt) (pair (string %currency) (pair (address %employee) (pair (string %hotelName) (pair (bool %isStudent) (pair (nat %nights) (pair (bytes %receiptCid) (pair (nat %state) (pair (nat %totalAfterTax) (pair (nat %totalBeforeTax) (pair (bool %travelCostCovered) (timestamp %updatedAt))))))))))))))))))) { UNPAIR ; DUP 2 ; GET 3 ; DUP 2 ; MEM ; IF {} { PUSH string "NO_CLAIM" ; FAILWITH } ; SWAP ; GET 3 ; SWAP ; GET ; IF_NONE { PUSH int 144 ; FAILWITH } {} } ; view "get_my_claim_ids" address (list nat) { UNPAIR ; SWAP ; GET 5 ; SWAP ; GET ; IF_NONE { NIL nat } {} } }