x
737
parameter (or (or (unit %claim) (nat %stake)) (nat %unstake));storage (pair (pair %stake_currency (address %fa2_address) (nat %token_id)) (pair (pair %reward_currency (address %fa2_address) (nat %token_id)) (pair (nat %totalStaked) (pair (nat %rps) (pair (timestamp %lastUpdateTime) (pair (big_map %ledger address (pair (nat %staked) (pair (nat %reward) (nat %last_rps)))) (nat %reward_per_sec)))))));code { LAMBDA (pair (pair address address) (pair nat (pair address nat))) operation { UNPAIR ; UNPAIR ; DIG 2 ; UNPAIR ; NIL (pair nat nat) ; SWAP ; DIG 2 ; DUP ; DUG 3 ; CDR ; PAIR ; CONS ; SWAP ; CAR ; PAIR ; DIG 2 ; SWAP ; DUP ; DUG 2 ; CDR ; MAP { SWAP ; DUP ; DUG 2 ; PAIR } ; SWAP ; DROP ; SWAP ; CAR ; CONTRACT %transfer (list (pair (address %from_) (list %txs (pair (address %to_) (pair (nat %token_id) (nat %amount)))))) ; IF_NONE { PUSH string "Invalid FA2 Address" ; FAILWITH } {} ; PUSH mutez 0 ; NIL (pair address (list (pair address (pair nat nat)))) ; DIG 3 ; DIG 4 ; PAIR ; CONS ; TRANSFER_TOKENS } ; LAMBDA (pair bool string) unit { UNPAIR ; NOT ; IF { FAILWITH } { DROP ; UNIT } } ; LAMBDA (pair address (pair (pair address nat) (pair (pair address nat) (pair nat (pair nat (pair timestamp (pair (big_map address (pair nat (pair nat nat))) nat))))))) (pair nat (pair nat nat)) { UNPAIR ; SWAP ; CDR ; CDR ; CDR ; CDR ; CDR ; CAR ; SWAP ; GET ; IF_NONE { PUSH nat 0 ; PUSH nat 0 ; PAIR ; PUSH nat 0 ; PAIR } {} } ; DIG 3 ; UNPAIR ; SELF_ADDRESS ; PUSH nat 1000000 ; DUP ; DIG 4 ; NOW ; SWAP ; DUP ; DUG 2 ; CDR ; CDR ; CDR ; CDR ; CAR ; COMPARE ; LT ; IF { PUSH nat 0 ; SWAP ; DUP ; DUG 2 ; CDR ; CDR ; CAR ; COMPARE ; GT ; IF { DUP ; CDR ; CDR ; CDR ; CDR ; CAR ; NOW ; SUB ; ABS ; DUG 2 ; DUP ; DUG 3 ; CDR ; CDR ; CDR ; CDR ; CDR ; CDR ; DIG 2 ; MUL ; MUL ; SWAP ; DUP ; DUG 2 ; CDR ; CDR ; CAR ; SWAP ; EDIV ; IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ; CAR ; SWAP ; DUP ; DUG 2 ; CDR ; CDR ; CDR ; CAR ; ADD ; SWAP ; DUP ; DUG 2 ; CDR ; CDR ; CDR ; CDR ; CDR ; NOW ; PAIR ; DIG 2 ; DUP ; DUG 3 ; CDR ; CDR ; CDR ; CAR ; PAIR ; DIG 2 ; DUP ; DUG 3 ; CDR ; CDR ; CAR ; PAIR ; DIG 2 ; DUP ; DUG 3 ; CDR ; CAR ; PAIR ; DIG 2 ; CAR ; PAIR ; DUP ; CDR ; CDR ; CDR ; CDR ; DIG 2 ; PAIR ; SWAP ; DUP ; DUG 2 ; CDR ; CDR ; CAR ; PAIR ; SWAP ; DUP ; DUG 2 ; CDR ; CAR ; PAIR ; SWAP ; CAR ; PAIR } { SWAP ; DROP ; DUP ; CDR ; CDR ; CDR ; CDR ; CDR ; NOW ; PAIR ; SWAP ; DUP ; DUG 2 ; CDR ; CDR ; CDR ; CAR ; PAIR ; SWAP ; DUP ; DUG 2 ; CDR ; CDR ; CAR ; PAIR ; SWAP ; DUP ; DUG 2 ; CDR ; CAR ; PAIR ; SWAP ; CAR ; PAIR } } { SWAP ; DROP } ; DIG 3 ; IF_LEFT { IF_LEFT { DROP ; SWAP ; DUG 2 ; PUSH string "Amount must be 0mutez" ; PUSH mutez 0 ; AMOUNT ; COMPARE ; EQ ; PAIR ; DIG 5 ; SWAP ; EXEC ; DROP ; DUP ; SENDER ; PAIR ; DIG 4 ; SWAP ; EXEC ; DUP ; CDR ; CDR ; DIG 2 ; DUP ; DUG 3 ; CDR ; CDR ; CDR ; CAR ; SUB ; ABS ; SWAP ; DUP ; DUG 2 ; CAR ; MUL ; SWAP ; DUP ; DUG 2 ; CDR ; CAR ; ADD ; DIG 4 ; DUP ; DUG 5 ; SWAP ; DUP ; DUG 2 ; EDIV ; IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ; CAR ; DIG 3 ; DUP ; DUG 4 ; CDR ; CDR ; CDR ; CAR ; DIG 6 ; DIG 2 ; DUP ; DUG 3 ; MUL ; DIG 3 ; SUB ; ABS ; PAIR ; DIG 2 ; CAR ; PAIR ; DIG 2 ; DUP ; DUG 3 ; CDR ; CDR ; CDR ; CDR ; CDR ; CAR ; SWAP ; SOME ; SENDER ; UPDATE ; DIG 2 ; DUP ; DUG 3 ; CDR ; CAR ; DIG 2 ; PAIR ; SENDER ; DIG 4 ; PAIR ; PAIR ; DIG 3 ; SWAP ; EXEC ; DIG 2 ; DUP ; DUG 3 ; CDR ; CDR ; CDR ; CDR ; CDR ; CDR ; DIG 2 ; PAIR ; DIG 2 ; DUP ; DUG 3 ; CDR ; CDR ; CDR ; CDR ; CAR ; PAIR ; DIG 2 ; DUP ; DUG 3 ; CDR ; CDR ; CDR ; CAR ; PAIR ; DIG 2 ; DUP ; DUG 3 ; CDR ; CDR ; CAR ; PAIR ; DIG 2 ; DUP ; DUG 3 ; CDR ; CAR ; PAIR ; DIG 2 ; CAR ; PAIR ; NIL operation ; DIG 2 ; CONS ; PAIR } { DIG 2 ; DROP ; PUSH string "AMOUNT_TOO_LOW" ; PUSH nat 0 ; DIG 2 ; DUP ; DUG 3 ; COMPARE ; GT ; PAIR ; DIG 5 ; DUP ; DUG 6 ; SWAP ; EXEC ; DROP ; PUSH string "Amount must be 0mutez" ; PUSH mutez 0 ; AMOUNT ; COMPARE ; EQ ; PAIR ; DIG 5 ; SWAP ; EXEC ; DROP ; SWAP ; DUP ; DUG 2 ; SENDER ; PAIR ; DIG 4 ; SWAP ; EXEC ; DUP ; CDR ; CDR ; DIG 3 ; DUP ; DUG 4 ; CDR ; CDR ; CDR ; CAR ; SUB ; ABS ; SWAP ; DUP ; DUG 2 ; CAR ; MUL ; SWAP ; DUP ; DUG 2 ; CDR ; CAR ; ADD ; DIG 2 ; DUP ; DUG 3 ; DIG 2 ; CAR ; ADD ; DIG 3 ; DUP ; DUG 4 ; CDR ; CDR ; CDR ; CDR ; CDR ; CAR ; DIG 4 ; DUP ; DUG 5 ; CDR ; CDR ; CDR ; CAR ; DIG 3 ; PAIR ; DIG 2 ; PAIR ; SOME ; SENDER ; UPDATE ; SWAP ; DUP ; DUG 2 ; DIG 3 ; DUP ; DUG 4 ; CDR ; CDR ; CAR ; ADD ; DIG 3 ; DUP ; DUG 4 ; CAR ; DIG 3 ; PAIR ; DIG 4 ; SENDER ; PAIR ; PAIR ; DIG 4 ; SWAP ; EXEC ; DIG 3 ; DUP ; DUG 4 ; CDR ; CDR ; CDR ; CDR ; CDR ; CDR ; DIG 3 ; PAIR ; DIG 3 ; DUP ; DUG 4 ; CDR ; CDR ; CDR ; CDR ; CAR ; PAIR ; DIG 3 ; DUP ; DUG 4 ; CDR ; CDR ; CDR ; CAR ; PAIR ; DIG 3 ; DUP ; DUG 4 ; CDR ; CDR ; CAR ; PAIR ; DIG 3 ; DUP ; DUG 4 ; CDR ; CAR ; PAIR ; DIG 3 ; CAR ; PAIR ; DUP ; CDR ; CDR ; CDR ; DIG 3 ; PAIR ; SWAP ; DUP ; DUG 2 ; CDR ; CAR ; PAIR ; SWAP ; CAR ; PAIR ; NIL operation ; DIG 2 ; CONS ; PAIR } } { DIG 2 ; DROP ; PUSH string "AMOUNT_TOO_LOW" ; PUSH nat 0 ; DIG 2 ; DUP ; DUG 3 ; COMPARE ; GT ; PAIR ; DIG 5 ; DUP ; DUG 6 ; SWAP ; EXEC ; DROP ; PUSH string "Amount must be 0mutez" ; PUSH mutez 0 ; AMOUNT ; COMPARE ; EQ ; PAIR ; DIG 5 ; SWAP ; EXEC ; DROP ; SWAP ; DUP ; DUG 2 ; SENDER ; PAIR ; DIG 4 ; SWAP ; EXEC ; DUP ; CDR ; CDR ; DIG 3 ; DUP ; DUG 4 ; CDR ; CDR ; CDR ; CAR ; SUB ; ABS ; SWAP ; DUP ; DUG 2 ; CAR ; MUL ; SWAP ; DUP ; DUG 2 ; CDR ; CAR ; ADD ; SWAP ; DUP ; DUG 2 ; CAR ; DIG 3 ; DUP ; DUG 4 ; COMPARE ; LE ; IF { DIG 2 ; DUP ; DUG 3 ; DIG 2 ; CAR ; SUB ; ABS } { SWAP ; DROP ; PUSH string "BALANCE_TOO_LOW" ; FAILWITH } ; DIG 3 ; DUP ; DUG 4 ; CDR ; CDR ; CDR ; CDR ; CDR ; CAR ; DIG 4 ; DUP ; DUG 5 ; CDR ; CDR ; CDR ; CAR ; DIG 3 ; PAIR ; DIG 2 ; PAIR ; SOME ; SENDER ; UPDATE ; SWAP ; DUP ; DUG 2 ; DIG 3 ; DUP ; DUG 4 ; CDR ; CDR ; CAR ; SUB ; ABS ; DIG 3 ; DUP ; DUG 4 ; CAR ; DIG 3 ; PAIR ; SENDER ; DIG 5 ; PAIR ; PAIR ; DIG 4 ; SWAP ; EXEC ; DIG 3 ; DUP ; DUG 4 ; CDR ; CDR ; CDR ; CDR ; CDR ; CDR ; DIG 3 ; PAIR ; DIG 3 ; DUP ; DUG 4 ; CDR ; CDR ; CDR ; CDR ; CAR ; PAIR ; DIG 3 ; DUP ; DUG 4 ; CDR ; CDR ; CDR ; CAR ; PAIR ; DIG 3 ; DUP ; DUG 4 ; CDR ; CDR ; CAR ; PAIR ; DIG 3 ; DUP ; DUG 4 ; CDR ; CAR ; PAIR ; DIG 3 ; CAR ; PAIR ; DUP ; CDR ; CDR ; CDR ; DIG 3 ; PAIR ; SWAP ; DUP ; DUG 2 ; CDR ; CAR ; PAIR ; SWAP ; CAR ; PAIR ; NIL operation ; DIG 2 ; CONS ; PAIR } }