x
784
parameter (or (or (or (lambda %execute unit (list operation)) (list %import_stakes (pair (address %updater) (pair (address %owner) (nat %amount))))) (or (pair %remove_administrator (address %administrator_to_remove) (nat %token_id)) (pair %set_administrator (address %administrator_to_set) (nat %token_id)))) (or (or (pair %set_fixed_stake (address %address) (nat %ratio)) (pair %set_stake_factor (address %address) (nat %factor))) (or (list %update_fixed_stakes address) (pair %update_stake (address %address) (nat %amount)))));storage (pair (pair (big_map %administrators (pair (address %owner) (nat %token_id)) unit) (pair (big_map %fixed_stakes address nat) (big_map %global_stakes address nat))) (pair (pair (address %governance_token_contract) (big_map %local_stakes (pair (address %owner) (address %engine)) (pair (nat %stake) (nat %introducer_stake)))) (pair (big_map %stake_factors address nat) (nat %total_stake))));code { LAMBDA (pair (pair address nat) (pair (list operation) (pair (pair (big_map (pair address nat) unit) (pair (big_map address nat) (big_map address nat))) (pair (pair address (big_map (pair address address) (pair nat nat))) (pair (big_map address nat) nat))))) (pair unit (pair (list operation) (pair (pair (big_map (pair address nat) unit) (pair (big_map address nat) (big_map address nat))) (pair (pair address (big_map (pair address address) (pair nat nat))) (pair (big_map address nat) nat))))) { UNPAIR 3 ; SWAP ; DUP 3 ; GET 3 ; CAR ; CONTRACT %update_stake (pair (address %address) (nat %amount)) ; IF_NONE { PUSH int 141 ; FAILWITH } {} ; PUSH mutez 0 ; DIG 3 ; TRANSFER_TOKENS ; CONS ; UNIT ; PAIR 3 } ; SWAP ; LAMBDA (pair nat (pair (list operation) (pair (pair (big_map (pair address nat) unit) (pair (big_map address nat) (big_map address nat))) (pair (pair address (big_map (pair address address) (pair nat nat))) (pair (big_map address nat) nat))))) (pair unit (pair (list operation) (pair (pair (big_map (pair address nat) unit) (pair (big_map address nat) (big_map address nat))) (pair (pair address (big_map (pair address address) (pair nat nat))) (pair (big_map address nat) nat))))) { UNPAIR 3 ; SWAP ; DUP 3 ; CAR ; CAR ; DIG 2 ; SENDER ; PAIR ; MEM ; IF {} { PUSH int 401 ; FAILWITH } ; UNIT ; PAIR 3 } ; SWAP ; UNPAIR ; IF_LEFT { IF_LEFT { IF_LEFT { AMOUNT ; PUSH mutez 0 ; COMPARE ; EQ ; IF {} { AMOUNT ; FAILWITH } ; NIL operation ; DUP 4 ; PUSH nat 0 ; SWAP ; DIG 4 ; DIG 3 ; DIG 3 ; PAIR 3 ; EXEC ; UNPAIR 3 ; DIG 5 ; DIG 5 ; DIG 4 ; DIG 5 ; DIG 5 ; DIG 5 ; DUP 3 ; UNIT ; EXEC ; NIL operation ; SWAP ; ITER { CONS } ; ITER { DIG 2 ; SWAP ; CONS ; SWAP } ; DROP ; SWAP ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP } { AMOUNT ; PUSH mutez 0 ; COMPARE ; EQ ; IF {} { AMOUNT ; FAILWITH } ; NIL operation ; DUP 4 ; PUSH nat 0 ; SWAP ; DIG 4 ; DIG 3 ; DIG 3 ; PAIR 3 ; EXEC ; UNPAIR 3 ; DIG 5 ; DIG 5 ; DIG 4 ; DIG 5 ; DIG 5 ; DIG 5 ; DUP 3 ; ITER { DUP 5 ; CAR ; GET 4 ; SWAP ; DUP ; DUG 2 ; GET 3 ; MEM ; IF { DROP } { DIG 4 ; UNPAIR ; SWAP ; UNPAIR ; UNPAIR ; SWAP ; PUSH nat 0 ; DUP 6 ; GET 4 ; PAIR ; SOME ; DIG 5 ; DUP ; CAR ; SWAP ; DUP ; DUG 7 ; GET 3 ; PAIR ; UPDATE ; SWAP ; PAIR ; PAIR ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; DUP 5 ; GET 4 ; SOME ; DUP 6 ; GET 3 ; UPDATE ; SWAP ; PAIR ; SWAP ; PAIR ; PAIR ; DUP ; GET 6 ; DIG 2 ; GET 4 ; ADD ; UPDATE 6 ; DUG 3 } } ; DROP ; SWAP ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP } } { IF_LEFT { DIG 3 ; DROP ; AMOUNT ; PUSH mutez 0 ; COMPARE ; EQ ; IF {} { AMOUNT ; FAILWITH } ; NIL operation ; DIG 3 ; DUP 3 ; CDR ; SWAP ; DIG 4 ; DIG 3 ; DIG 3 ; PAIR 3 ; EXEC ; CDR ; UNPAIR ; SWAP ; UNPAIR ; UNPAIR ; NONE unit ; DIG 5 ; UPDATE ; PAIR ; PAIR ; SWAP } { DIG 3 ; DROP ; AMOUNT ; PUSH mutez 0 ; COMPARE ; EQ ; IF {} { AMOUNT ; FAILWITH } ; NIL operation ; DIG 3 ; DUP 3 ; CDR ; SWAP ; DIG 4 ; DIG 3 ; DIG 3 ; PAIR 3 ; EXEC ; CDR ; UNPAIR ; SWAP ; UNPAIR ; UNPAIR ; PUSH (option unit) (Some Unit) ; DIG 5 ; UPDATE ; PAIR ; PAIR ; SWAP } } } { IF_LEFT { IF_LEFT { DIG 3 ; DROP ; AMOUNT ; PUSH mutez 0 ; COMPARE ; EQ ; IF {} { AMOUNT ; FAILWITH } ; NIL operation ; DIG 3 ; PUSH nat 0 ; SWAP ; DIG 4 ; DIG 3 ; DIG 3 ; PAIR 3 ; EXEC ; CDR ; UNPAIR ; SWAP ; UNPAIR ; UNPAIR ; SWAP ; UNPAIR ; DUP 6 ; CDR ; SOME ; DIG 6 ; CAR ; UPDATE ; PAIR ; SWAP ; PAIR ; PAIR ; SWAP } { DIG 3 ; DROP ; AMOUNT ; PUSH mutez 0 ; COMPARE ; EQ ; IF {} { AMOUNT ; FAILWITH } ; NIL operation ; DIG 3 ; PUSH nat 0 ; SWAP ; DIG 4 ; DIG 3 ; DIG 3 ; PAIR 3 ; EXEC ; CDR ; UNPAIR ; SWAP ; DUP ; GET 5 ; DUP 4 ; CDR ; SOME ; DIG 4 ; CAR ; UPDATE ; UPDATE 5 ; SWAP } } { IF_LEFT { AMOUNT ; PUSH mutez 0 ; COMPARE ; EQ ; IF {} { AMOUNT ; FAILWITH } ; DUP ; NIL operation ; SWAP ; ITER { DUP 6 ; PUSH nat 1000000000000 ; DUP 6 ; CAR ; GET 3 ; DUP 4 ; GET ; IF_NONE { PUSH int 277 ; FAILWITH } {} ; DUP 7 ; GET 6 ; MUL ; EDIV ; IF_NONE { PUSH int 276 ; FAILWITH } { CAR } ; DIG 2 ; PAIR ; SWAP ; DIG 4 ; DIG 3 ; DIG 3 ; PAIR 3 ; EXEC ; CDR ; UNPAIR ; DIG 4 ; DIG 4 ; DIG 3 ; DIG 4 ; DIG 4 } ; SWAP ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP } { AMOUNT ; PUSH mutez 0 ; COMPARE ; EQ ; IF {} { AMOUNT ; FAILWITH } ; NIL operation ; DUP 4 ; PUSH nat 0 ; SWAP ; DIG 4 ; DIG 3 ; DIG 3 ; PAIR 3 ; EXEC ; UNPAIR 3 ; DIG 5 ; DIG 5 ; DIG 4 ; DIG 5 ; DIG 5 ; DIG 5 ; NONE address ; PUSH nat 0 ; PUSH bool False ; SENDER ; DUP 7 ; CAR ; VIEW "vault_context" (option (pair (nat %balance) (pair (option %introducer address) (nat %minted)))) ; IF_NONE { SENDER ; DUP 7 ; CAR ; VIEW "vault_context" (option (pair (address %address) (pair (nat %balance) (pair (option %introducer address) (nat %minted))))) ; IF_NONE { PUSH string "Invalid tez vault view" ; FAILWITH } {} ; IF_NONE {} { DROP 4 ; PUSH bool True ; SENDER ; DUP 5 ; CAR ; VIEW "vault_context" (option (pair (address %address) (pair (nat %balance) (pair (option %introducer address) (nat %minted))))) ; IF_NONE { PUSH string "Invalid tez vault view" ; FAILWITH } {} ; IF_NONE { PUSH int 179 ; FAILWITH } {} ; GET 5 ; SWAP ; SENDER ; DUP 6 ; CAR ; VIEW "vault_context" (option (pair (address %address) (pair (nat %balance) (pair (option %introducer address) (nat %minted))))) ; IF_NONE { PUSH string "Invalid tez vault view" ; FAILWITH } {} ; IF_NONE { PUSH int 179 ; FAILWITH } {} ; GET 6 ; SWAP } } { DROP ; SENDER ; DUP 7 ; CAR ; VIEW "vault_context" (option (pair (nat %balance) (pair (option %introducer address) (nat %minted)))) ; IF_NONE { PUSH string "Invalid token vault view" ; FAILWITH } {} ; IF_NONE {} { DROP 4 ; PUSH bool True ; SENDER ; DUP 5 ; CAR ; VIEW "vault_context" (option (pair (nat %balance) (pair (option %introducer address) (nat %minted)))) ; IF_NONE { PUSH string "Invalid token vault view" ; FAILWITH } {} ; IF_NONE { PUSH int 172 ; FAILWITH } {} ; GET 3 ; SWAP ; SENDER ; DUP 6 ; CAR ; VIEW "vault_context" (option (pair (nat %balance) (pair (option %introducer address) (nat %minted)))) ; IF_NONE { PUSH string "Invalid token vault view" ; FAILWITH } {} ; IF_NONE { PUSH int 172 ; FAILWITH } {} ; GET 4 ; SWAP } } ; DUP ; IF { DUP 6 ; CDR ; DUP 3 ; COMPARE ; EQ } { PUSH bool False } ; IF { SENDER ; DUP 7 ; CAR ; PAIR ; DUP 8 ; GET 3 ; CDR ; SWAP ; DUP ; DUG 2 ; GET ; IF_NONE { PUSH (pair nat nat) (Pair 0 0) } {} ; PUSH nat 1000000000000 ; DUP 10 ; GET 5 ; SENDER ; GET ; IF_NONE { PUSH int 197 ; FAILWITH } {} ; DUP 10 ; CDR ; MUL ; EDIV ; IF_NONE { PUSH int 197 ; FAILWITH } { CAR } ; SWAP ; DUP ; DUG 2 ; CAR ; SWAP ; DUP ; DUG 2 ; SUB ; DUP 11 ; CAR ; GET 4 ; DUP 11 ; CAR ; GET ; IF_NONE { PUSH nat 0 } {} ; SWAP ; DUP ; DUG 2 ; SWAP ; INT ; ADD ; ISNAT ; IF_NONE { PUSH int 205 ; FAILWITH } {} ; DUP 12 ; DUP 3 ; DIG 13 ; GET 6 ; INT ; ADD ; ISNAT ; IF_NONE { PUSH int 208 ; FAILWITH } {} ; UPDATE 6 ; DUG 11 ; PUSH nat 0 ; DUP 9 ; IF_NONE {} { DROP 2 ; DUP 8 ; IF_NONE { PUSH int 604 ; FAILWITH } {} ; SENDER ; UNIT ; VIEW "introducer_ratio" (pair (nat %numerator) (nat %denominator)) ; IF_NONE { PUSH string "Invalid introducer ratio view" ; FAILWITH } {} ; CDR ; SENDER ; UNIT ; VIEW "introducer_ratio" (pair (nat %numerator) (nat %denominator)) ; IF_NONE { PUSH string "Invalid introducer ratio view" ; FAILWITH } {} ; CAR ; DUP 6 ; MUL ; EDIV ; IF_NONE { PUSH int 227 ; FAILWITH } {} ; CAR ; SWAP ; DUP 14 ; CAR ; GET 4 ; SWAP ; DUP ; DUG 2 ; GET ; IF_NONE { PUSH nat 0 } {} ; DUP 7 ; CDR ; DUP 4 ; SUB ; DUP ; DIG 2 ; INT ; ADD ; ISNAT ; IF_NONE { PUSH int 241 ; FAILWITH } {} ; SWAP ; DUP 16 ; SWAP ; DIG 16 ; GET 6 ; INT ; ADD ; ISNAT ; IF_NONE { PUSH int 244 ; FAILWITH } {} ; UPDATE 6 ; DUG 14 ; DUP ; PUSH nat 0 ; COMPARE ; NEQ ; IF { DIG 14 ; UNPAIR ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; DUP 5 ; SOME ; DUP 7 ; UPDATE ; SWAP ; PAIR ; SWAP ; PAIR ; PAIR ; DUG 14 } { DIG 14 ; UNPAIR ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; NONE nat ; DUP 7 ; UPDATE ; SWAP ; PAIR ; SWAP ; PAIR ; PAIR ; DUG 14 } ; DUP 17 ; SWAP ; DIG 2 ; PAIR ; SWAP ; DIG 14 ; DIG 13 ; DIG 3 ; PAIR 3 ; EXEC ; CDR ; UNPAIR ; DIG 14 ; DIG 14 ; DIG 3 ; DIG 14 ; DIG 4 ; DUG 14 ; DUG 14 ; DUG 14 ; DUG 14 ; DUG 14 } ; PUSH nat 0 ; DUP 3 ; COMPARE ; NEQ ; IF { DIG 12 ; UNPAIR ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; DUP 6 ; SOME ; DUP 17 ; CAR ; UPDATE ; SWAP ; PAIR ; SWAP ; PAIR ; PAIR ; DUG 12 } { DIG 12 ; UNPAIR ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; NONE nat ; DUP 17 ; CAR ; UPDATE ; SWAP ; PAIR ; SWAP ; PAIR ; PAIR ; DUG 12 } ; PUSH nat 0 ; DUP 5 ; COMPARE ; NEQ ; IF { DIG 2 ; DROP ; DIG 3 ; DROP ; DIG 4 ; DROP ; DIG 4 ; DROP ; DIG 4 ; DROP ; DIG 4 ; DROP ; DIG 7 ; DROP ; DIG 6 ; UNPAIR ; SWAP ; UNPAIR ; UNPAIR ; SWAP ; DIG 4 ; DIG 6 ; PAIR ; SOME ; DIG 6 ; UPDATE ; SWAP ; PAIR ; PAIR ; SWAP ; PAIR ; DUG 3 } { DROP ; SWAP ; DROP ; SWAP ; DROP ; SWAP ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 5 ; DROP ; DIG 4 ; UNPAIR ; SWAP ; UNPAIR ; UNPAIR ; SWAP ; NONE (pair nat nat) ; DIG 6 ; UPDATE ; SWAP ; PAIR ; PAIR ; SWAP ; PAIR ; DUG 3 } ; DIG 4 ; SWAP ; DIG 3 ; CAR ; PAIR ; SWAP ; DUG 3 ; PAIR 3 ; EXEC ; CDR ; UNPAIR } { DROP 4 ; SWAP ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP } } } } ; NIL operation ; SWAP ; ITER { CONS } ; PAIR }