x
563
1245
parameter (or (or (or (or (list %addToWhitelist (pair address bool)) (pair %burnFromCrowdsale (nat %token_id) (address %from_))) (or (pair %mintFromCrowdsale (address %to_) (nat %token_count)) (list %removeFromWhitelist address))) (or (or (map %setDefaultMetadata string bytes) (address %setDogaAddress)) (or (pair %setMintParams (bool %is_private_sale) (pair (nat %mint_price) (pair (string %currency) (pair (nat %next_token_id) (pair (nat %total_supply) (pair (nat %max_mint_per_address) (pair (nat %token_per_pack) (pair (timestamp %start_time) (timestamp %end_time))))))))) (unit %setMintPerAddress)))) (or (or (or (address %setMultisigContract) (map %setNameList nat bytes)) (or (address %setNftAddress) (bool %setPause))) (address %setReserveAddress)));storage (pair (bool %paused) (pair (address %multisig) (pair (address %nft_address) (pair (address %doga_address) (pair (address %reserve_address) (pair (bool %is_private_sale) (pair (nat %mint_price) (pair (nat %total_supply) (pair (big_map %mint_per_address address nat) (pair (nat %max_mint_per_address) (pair (timestamp %start_time) (pair (timestamp %end_time) (pair (nat %next_token_id) (pair (big_map %name_list nat bytes) (pair (big_map %whitelist address bool) (pair (nat %token_per_pack) (pair (map %default_metadata string bytes) (string %currency))))))))))))))))));code { UNPAIR ; IF_LEFT { IF_LEFT { IF_LEFT { IF_LEFT { DUP 2 ; GET 3 ; SENDER ; COMPARE ; NEQ ; IF { SELF_ADDRESS ; DUP 3 ; DIG 3 ; GET 3 ; CONTRACT %callMultisig (pair (pair %entrypoint_signature (string %name) (pair (bytes %params) (address %source_contract))) (lambda %callback unit (list operation))) ; IF_NONE { SWAP ; DIG 2 ; DROP 2 ; PUSH string "no call entrypoint" ; FAILWITH } { DUP 4 ; PACK ; SHA256 ; SELF_ADDRESS ; SWAP ; PUSH string "addToWhitelist" ; PAIR 3 ; SWAP ; PUSH mutez 0 ; LAMBDA (pair (pair address (list (pair address bool))) unit) (list operation) { UNPAIR ; UNPAIR ; DIG 2 ; DROP ; CONTRACT %addToWhitelist (list (pair address bool)) ; IF_NONE { DROP ; PUSH string "no addToWhitelist entrypoint" ; FAILWITH } { NIL operation ; SWAP ; PUSH mutez 0 ; DIG 3 ; TRANSFER_TOKENS ; CONS } } ; DUP 7 ; DUP 7 ; PAIR ; APPLY ; DIG 5 ; DIG 6 ; DROP 2 ; DIG 3 ; PAIR ; TRANSFER_TOKENS ; NIL operation ; SWAP ; CONS } } { DUP 2 ; GET 29 ; SWAP ; ITER { SWAP ; DUP 2 ; CDR ; SOME ; DIG 2 ; CAR ; UPDATE } ; UPDATE 29 ; NIL operation } ; PAIR } { DUP 2 ; GET 3 ; SENDER ; COMPARE ; NEQ ; IF { SELF_ADDRESS ; DUP 3 ; DIG 3 ; GET 3 ; CONTRACT %callMultisig (pair (pair %entrypoint_signature (string %name) (pair (bytes %params) (address %source_contract))) (lambda %callback unit (list operation))) ; IF_NONE { SWAP ; DIG 2 ; DROP 2 ; PUSH string "no call entrypoint" ; FAILWITH } { DUP 4 ; PACK ; SHA256 ; SELF_ADDRESS ; SWAP ; PUSH string "burnFromCrowdsale" ; PAIR 3 ; SWAP ; PUSH mutez 0 ; LAMBDA (pair (pair address (pair nat address)) unit) (list operation) { UNPAIR ; UNPAIR ; DIG 2 ; DROP ; CONTRACT %burnFromCrowdsale (pair (nat %token_id) (address %from_)) ; IF_NONE { DROP ; PUSH string "no burnFromCrowdsale entrypoint" ; FAILWITH } { NIL operation ; SWAP ; PUSH mutez 0 ; DIG 3 ; TRANSFER_TOKENS ; CONS } } ; DUP 7 ; DUP 7 ; PAIR ; APPLY ; DIG 5 ; DIG 6 ; DROP 2 ; DIG 3 ; PAIR ; TRANSFER_TOKENS ; NIL operation ; SWAP ; CONS } ; PAIR } { PUSH bool True ; DUP 3 ; CAR ; COMPARE ; EQ ; IF { DROP 2 ; PUSH string "Contract in pause" ; FAILWITH } { DUP 2 ; GET 5 ; CONTRACT %burn (pair (nat %token_id) (address %from_)) ; IF_NONE { DROP ; PUSH string "NFT contract must have a burn entrypoint" ; FAILWITH } { PUSH mutez 0 ; DIG 2 ; TRANSFER_TOKENS } ; SWAP ; NIL operation ; DIG 2 ; CONS ; PAIR } } } } { IF_LEFT { PUSH nat 1 ; DUP 2 ; CDR ; COMPARE ; LT ; IF { DROP 2 ; PUSH string "Value should be higher than zero" ; FAILWITH } { PUSH bool True ; DUP 3 ; CAR ; COMPARE ; EQ ; IF { DROP 2 ; PUSH string "Contract in pause" ; FAILWITH } { DUP 2 ; GET 23 ; NOW ; COMPARE ; GE ; DUP 3 ; GET 21 ; NOW ; COMPARE ; LT ; OR ; IF { DROP 2 ; PUSH string "Mint period is not open" ; FAILWITH } { DUP 2 ; GET 11 ; IF { DUP 2 ; GET 29 ; DUP 2 ; CAR ; GET ; IF_NONE { PUSH string "Address is not whitelisted" ; FAILWITH } { DROP } } {} ; DUP ; CDR ; PUSH nat 0 ; DUP 4 ; GET 31 ; COMPARE ; NEQ ; IF { PUSH nat 0 ; DUP 4 ; GET 31 ; DUP 3 ; EDIV ; IF_NONE { PUSH string "MOD by 0" ; FAILWITH } {} ; CDR ; COMPARE ; NEQ ; IF { DROP ; PUSH string "Invalid number of tokens" ; FAILWITH } { DUP 3 ; GET 31 ; DUP 4 ; GET 13 ; DIG 2 ; MUL ; EDIV ; IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ; CAR } } { DUP 3 ; GET 13 ; SWAP ; MUL } ; PUSH string "XTZ" ; DUP 4 ; GET 34 ; COMPARE ; EQ ; IF { PUSH mutez 1 ; DUP 2 ; MUL ; AMOUNT ; COMPARE ; NEQ ; IF { DROP ; PUSH string "Invalid amount" ; FAILWITH } { NIL operation ; PUSH mutez 1 ; DIG 2 ; MUL ; DUP 4 ; GET 9 ; CONTRACT unit ; IF_NONE { DROP ; PUSH string "Invalid to address" ; FAILWITH } { SWAP ; UNIT ; TRANSFER_TOKENS } ; CONS } } { NIL operation ; SWAP ; DUP 4 ; GET 9 ; SENDER ; DUP 6 ; GET 7 ; PAIR 4 ; UNPAIR 4 ; CONTRACT %transfer (pair (address %from) (pair (address %to) (nat %value))) ; IF_NONE { PUSH string "FA1.2 contract must have a transfer entrypoint" ; FAILWITH } {} ; PUSH mutez 0 ; DIG 4 ; DIG 4 ; DIG 4 ; PAIR 3 ; TRANSFER_TOKENS ; CONS } ; DUP 3 ; SWAP ; PAIR ; DUP 2 ; CDR ; PAIR ; LEFT (pair (list operation) (pair bool (pair address (pair address (pair address (pair address (pair bool (pair nat (pair nat (pair (big_map address nat) (pair nat (pair timestamp (pair timestamp (pair nat (pair (big_map nat bytes) (pair (big_map address bool) (pair nat (pair (map string bytes) string)))))))))))))))))) ; LOOP_LEFT { UNPAIR ; PUSH nat 1 ; DUP 2 ; COMPARE ; LT ; IF { DROP ; RIGHT (pair nat (pair (list operation) (pair bool (pair address (pair address (pair address (pair address (pair bool (pair nat (pair nat (pair (big_map address nat) (pair nat (pair timestamp (pair timestamp (pair nat (pair (big_map nat bytes) (pair (big_map address bool) (pair nat (pair (map string bytes) string))))))))))))))))))) } { DUP 4 ; GET 15 ; DUP 3 ; CDR ; GET 25 ; COMPARE ; GT ; IF { DROP 2 ; PUSH string "Total supply reached" ; FAILWITH } { DUP 2 ; CDR ; GET 17 ; DUP 4 ; CAR ; GET ; IF_NONE { PUSH nat 0 } { DUP 5 ; GET 19 ; DUP 2 ; COMPARE ; GE ; IF { DROP ; PUSH string "Max mint per address reached" ; FAILWITH } {} } ; DUP 3 ; CDR ; GET 5 ; CONTRACT %mint (pair (pair (address %to_) (nat %token_id)) (map %token_info string bytes)) ; IF_NONE { PUSH string "NFT contract must have a mint entrypoint" ; FAILWITH } { PUSH mutez 0 ; DUP 5 ; CDR ; DUP ; GET 33 ; DUP 2 ; GET 27 ; DIG 2 ; GET 25 ; GET ; IF_NONE { PUSH bytes 0x446f67616d69 } {} ; SOME ; PUSH string "name" ; UPDATE ; DUP 6 ; CDR ; GET 25 ; DUP 8 ; CAR ; PAIR ; PAIR ; TRANSFER_TOKENS } ; DUP 4 ; CDR ; GET 17 ; PUSH nat 1 ; DIG 3 ; ADD ; SOME ; DUP 6 ; CAR ; PAIR 3 ; PUSH nat 1 ; DUP 5 ; CDR ; GET 25 ; ADD ; PUSH nat 1 ; DIG 4 ; SUB ; ISNAT ; IF_NONE { DROP 4 ; PUSH string "Invalid nat value" ; FAILWITH } { DUP 5 ; CDR ; DUP 6 ; CDR ; GET 27 ; NONE bytes ; DUP 8 ; CDR ; GET 25 ; UPDATE ; UPDATE 27 ; DIG 2 ; UPDATE 25 ; DIG 2 ; UNPAIR 3 ; UPDATE ; UPDATE 17 ; DIG 3 ; CAR ; DIG 3 ; CONS ; PAIR ; SWAP ; PAIR ; LEFT (pair (list operation) (pair bool (pair address (pair address (pair address (pair address (pair bool (pair nat (pair nat (pair (big_map address nat) (pair nat (pair timestamp (pair timestamp (pair nat (pair (big_map nat bytes) (pair (big_map address bool) (pair nat (pair (map string bytes) string)))))))))))))))))) } } } } ; SWAP ; DIG 2 ; DROP 2 } } } } { DUP 2 ; GET 3 ; SENDER ; COMPARE ; NEQ ; IF { SELF_ADDRESS ; DUP 3 ; DIG 3 ; GET 3 ; CONTRACT %callMultisig (pair (pair %entrypoint_signature (string %name) (pair (bytes %params) (address %source_contract))) (lambda %callback unit (list operation))) ; IF_NONE { SWAP ; DIG 2 ; DROP 2 ; PUSH string "no call entrypoint" ; FAILWITH } { DUP 4 ; PACK ; SHA256 ; SELF_ADDRESS ; SWAP ; PUSH string "removeFromWhitelist" ; PAIR 3 ; SWAP ; PUSH mutez 0 ; LAMBDA (pair (pair address (list address)) unit) (list operation) { UNPAIR ; UNPAIR ; DIG 2 ; DROP ; CONTRACT %removeFromWhitelist (list address) ; IF_NONE { DROP ; PUSH string "no removeFromWhitelist entrypoint" ; FAILWITH } { NIL operation ; SWAP ; PUSH mutez 0 ; DIG 3 ; TRANSFER_TOKENS ; CONS } } ; DUP 7 ; DUP 7 ; PAIR ; APPLY ; DIG 5 ; DIG 6 ; DROP 2 ; DIG 3 ; PAIR ; TRANSFER_TOKENS ; NIL operation ; SWAP ; CONS } } { DUP 2 ; GET 29 ; SWAP ; ITER { SWAP ; NONE bool ; DIG 2 ; UPDATE } ; UPDATE 29 ; NIL operation } ; PAIR } } } { IF_LEFT { IF_LEFT { DUP 2 ; GET 3 ; SENDER ; COMPARE ; NEQ ; IF { SELF_ADDRESS ; DUP 3 ; DIG 3 ; GET 3 ; CONTRACT %callMultisig (pair (pair %entrypoint_signature (string %name) (pair (bytes %params) (address %source_contract))) (lambda %callback unit (list operation))) ; IF_NONE { SWAP ; DIG 2 ; DROP 2 ; PUSH string "no call entrypoint" ; FAILWITH } { DUP 4 ; PACK ; SHA256 ; SELF_ADDRESS ; SWAP ; PUSH string "setDefaultMetadata" ; PAIR 3 ; SWAP ; PUSH mutez 0 ; LAMBDA (pair (pair address (map string bytes)) unit) (list operation) { UNPAIR ; UNPAIR ; DIG 2 ; DROP ; CONTRACT %setDefaultMetadata (map string bytes) ; IF_NONE { DROP ; PUSH string "no setDefaultMetadata entrypoint" ; FAILWITH } { NIL operation ; SWAP ; PUSH mutez 0 ; DIG 3 ; TRANSFER_TOKENS ; CONS } } ; DUP 7 ; DUP 7 ; PAIR ; APPLY ; DIG 5 ; DIG 6 ; DROP 2 ; DIG 3 ; PAIR ; TRANSFER_TOKENS ; NIL operation ; SWAP ; CONS } } { DUP 2 ; GET 33 ; SWAP ; ITER { SWAP ; DUP 2 ; CDR ; SOME ; DIG 2 ; CAR ; UPDATE } ; UPDATE 33 ; NIL operation } } { DUP 2 ; GET 3 ; SENDER ; COMPARE ; NEQ ; IF { SELF_ADDRESS ; DUP 3 ; DIG 3 ; GET 3 ; CONTRACT %callMultisig (pair (pair %entrypoint_signature (string %name) (pair (bytes %params) (address %source_contract))) (lambda %callback unit (list operation))) ; IF_NONE { SWAP ; DIG 2 ; DROP 2 ; PUSH string "no call entrypoint" ; FAILWITH } { DUP 4 ; PACK ; SHA256 ; SELF_ADDRESS ; SWAP ; PUSH string "setDogaAddress" ; PAIR 3 ; SWAP ; PUSH mutez 0 ; LAMBDA (pair (pair address address) unit) (list operation) { UNPAIR ; UNPAIR ; DIG 2 ; DROP ; CONTRACT %setDogaAddress address ; IF_NONE { DROP ; PUSH string "no setDogaAddress entrypoint" ; FAILWITH } { NIL operation ; SWAP ; PUSH mutez 0 ; DIG 3 ; TRANSFER_TOKENS ; CONS } } ; DUP 7 ; DUP 7 ; PAIR ; APPLY ; DIG 5 ; DIG 6 ; DROP 2 ; DIG 3 ; PAIR ; TRANSFER_TOKENS ; NIL operation ; SWAP ; CONS } } { UPDATE 7 ; NIL operation } } ; PAIR } { IF_LEFT { DUP 2 ; GET 3 ; SENDER ; COMPARE ; NEQ ; IF { SELF_ADDRESS ; DUP 3 ; DIG 3 ; GET 3 ; CONTRACT %callMultisig (pair (pair %entrypoint_signature (string %name) (pair (bytes %params) (address %source_contract))) (lambda %callback unit (list operation))) ; IF_NONE { SWAP ; DIG 2 ; DROP 2 ; PUSH string "no call entrypoint" ; FAILWITH } { DUP 4 ; PACK ; SHA256 ; SELF_ADDRESS ; SWAP ; PUSH string "setMintParams" ; PAIR 3 ; SWAP ; PUSH mutez 0 ; LAMBDA (pair (pair address (pair bool (pair nat (pair string (pair nat (pair nat (pair nat (pair nat (pair timestamp timestamp))))))))) unit) (list operation) { UNPAIR ; UNPAIR ; DIG 2 ; DROP ; CONTRACT %setMintParams (pair (bool %is_private_sale) (pair (nat %mint_price) (pair (string %currency) (pair (nat %next_token_id) (pair (nat %total_supply) (pair (nat %max_mint_per_address) (pair (nat %token_per_pack) (pair (timestamp %start_time) (timestamp %end_time))))))))) ; IF_NONE { DROP ; PUSH string "no setMintParams entrypoint" ; FAILWITH } { NIL operation ; SWAP ; PUSH mutez 0 ; DIG 3 ; TRANSFER_TOKENS ; CONS } } ; DUP 7 ; DUP 7 ; PAIR ; APPLY ; DIG 5 ; DIG 6 ; DROP 2 ; DIG 3 ; PAIR ; TRANSFER_TOKENS ; NIL operation ; SWAP ; CONS } ; PAIR } { PUSH nat 0 ; DUP 2 ; GET 11 ; COMPARE ; EQ ; PUSH nat 0 ; DUP 3 ; GET 9 ; COMPARE ; EQ ; PUSH nat 0 ; DUP 4 ; GET 3 ; COMPARE ; LE ; OR ; OR ; IF { DROP 2 ; PUSH string "Value should be higher than zero" ; FAILWITH } { DUP ; GET 16 ; DUP 2 ; GET 15 ; COMPARE ; GE ; IF { DROP 2 ; PUSH string "Invalid date format" ; FAILWITH } { PUSH string "FA12" ; DUP 2 ; GET 5 ; COMPARE ; NEQ ; PUSH string "XTZ" ; DUP 3 ; GET 5 ; COMPARE ; NEQ ; AND ; IF { DROP 2 ; PUSH string "Invalid currency" ; FAILWITH } { SWAP ; DUP 2 ; CAR ; UPDATE 11 ; DUP 2 ; GET 3 ; UPDATE 13 ; DUP 2 ; GET 5 ; UPDATE 34 ; DUP 2 ; GET 7 ; UPDATE 25 ; DUP 2 ; GET 9 ; UPDATE 15 ; DUP 2 ; GET 11 ; UPDATE 19 ; DUP 2 ; GET 13 ; UPDATE 31 ; DUP 2 ; GET 15 ; UPDATE 21 ; SWAP ; GET 16 ; UPDATE 23 ; NIL operation ; PAIR } } } } } { DROP ; DUP ; GET 3 ; SENDER ; COMPARE ; NEQ ; IF { SELF_ADDRESS ; DUP 2 ; DIG 2 ; GET 3 ; CONTRACT %callMultisig (pair (pair %entrypoint_signature (string %name) (pair (bytes %params) (address %source_contract))) (lambda %callback unit (list operation))) ; IF_NONE { SWAP ; DROP ; PUSH string "no call entrypoint" ; FAILWITH } { UNIT ; PACK ; SHA256 ; SELF_ADDRESS ; SWAP ; PUSH string "setMintPerAddress" ; PAIR 3 ; SWAP ; PUSH mutez 0 ; LAMBDA (pair address unit) (list operation) { CAR ; CONTRACT %setMintPerAddress unit ; IF_NONE { PUSH string "no setMintPerAddress entrypoint" ; FAILWITH } { NIL operation ; SWAP ; PUSH mutez 0 ; UNIT ; TRANSFER_TOKENS ; CONS } } ; DUP 6 ; APPLY ; DIG 5 ; DROP ; DIG 3 ; PAIR ; TRANSFER_TOKENS ; NIL operation ; SWAP ; CONS } } { EMPTY_BIG_MAP address nat ; UPDATE 17 ; NIL operation } ; PAIR } } } } { IF_LEFT { IF_LEFT { IF_LEFT { DUP 2 ; GET 3 ; SENDER ; COMPARE ; NEQ ; IF { SELF_ADDRESS ; DUP 3 ; DIG 3 ; GET 3 ; CONTRACT %callMultisig (pair (pair %entrypoint_signature (string %name) (pair (bytes %params) (address %source_contract))) (lambda %callback unit (list operation))) ; IF_NONE { SWAP ; DIG 2 ; DROP 2 ; PUSH string "no call entrypoint" ; FAILWITH } { DUP 4 ; PACK ; SHA256 ; SELF_ADDRESS ; SWAP ; PUSH string "setMultisigContract" ; PAIR 3 ; SWAP ; PUSH mutez 0 ; LAMBDA (pair (pair address address) unit) (list operation) { UNPAIR ; UNPAIR ; DIG 2 ; DROP ; CONTRACT %setMultisigContract address ; IF_NONE { DROP ; PUSH string "no setMultisigContract entrypoint" ; FAILWITH } { NIL operation ; SWAP ; PUSH mutez 0 ; DIG 3 ; TRANSFER_TOKENS ; CONS } } ; DUP 7 ; DUP 7 ; PAIR ; APPLY ; DIG 5 ; DIG 6 ; DROP 2 ; DIG 3 ; PAIR ; TRANSFER_TOKENS ; NIL operation ; SWAP ; CONS } } { UPDATE 3 ; NIL operation } } { DUP 2 ; GET 3 ; SENDER ; COMPARE ; NEQ ; IF { SELF_ADDRESS ; DUP 3 ; DIG 3 ; GET 3 ; CONTRACT %callMultisig (pair (pair %entrypoint_signature (string %name) (pair (bytes %params) (address %source_contract))) (lambda %callback unit (list operation))) ; IF_NONE { SWAP ; DIG 2 ; DROP 2 ; PUSH string "no call entrypoint" ; FAILWITH } { DUP 4 ; PACK ; SHA256 ; SELF_ADDRESS ; SWAP ; PUSH string "setNameList" ; PAIR 3 ; SWAP ; PUSH mutez 0 ; LAMBDA (pair (pair address (map nat bytes)) unit) (list operation) { UNPAIR ; UNPAIR ; DIG 2 ; DROP ; CONTRACT %setNameList (map nat bytes) ; IF_NONE { DROP ; PUSH string "no setNameList entrypoint" ; FAILWITH } { NIL operation ; SWAP ; PUSH mutez 0 ; DIG 3 ; TRANSFER_TOKENS ; CONS } } ; DUP 7 ; DUP 7 ; PAIR ; APPLY ; DIG 5 ; DIG 6 ; DROP 2 ; DIG 3 ; PAIR ; TRANSFER_TOKENS ; NIL operation ; SWAP ; CONS } } { DUP 2 ; GET 27 ; SWAP ; ITER { SWAP ; DUP 2 ; CDR ; SOME ; DIG 2 ; CAR ; UPDATE } ; UPDATE 27 ; NIL operation } } } { IF_LEFT { DUP 2 ; GET 3 ; SENDER ; COMPARE ; NEQ ; IF { SELF_ADDRESS ; DUP 3 ; DIG 3 ; GET 3 ; CONTRACT %callMultisig (pair (pair %entrypoint_signature (string %name) (pair (bytes %params) (address %source_contract))) (lambda %callback unit (list operation))) ; IF_NONE { SWAP ; DIG 2 ; DROP 2 ; PUSH string "no call entrypoint" ; FAILWITH } { DUP 4 ; PACK ; SHA256 ; SELF_ADDRESS ; SWAP ; PUSH string "setNftAddress" ; PAIR 3 ; SWAP ; PUSH mutez 0 ; LAMBDA (pair (pair address address) unit) (list operation) { UNPAIR ; UNPAIR ; DIG 2 ; DROP ; CONTRACT %setNftAddress address ; IF_NONE { DROP ; PUSH string "no setNftAddress entrypoint" ; FAILWITH } { NIL operation ; SWAP ; PUSH mutez 0 ; DIG 3 ; TRANSFER_TOKENS ; CONS } } ; DUP 7 ; DUP 7 ; PAIR ; APPLY ; DIG 5 ; DIG 6 ; DROP 2 ; DIG 3 ; PAIR ; TRANSFER_TOKENS ; NIL operation ; SWAP ; CONS } } { UPDATE 5 ; NIL operation } } { DUP 2 ; GET 3 ; SENDER ; COMPARE ; NEQ ; IF { SELF_ADDRESS ; DUP 3 ; DIG 3 ; GET 3 ; CONTRACT %callMultisig (pair (pair %entrypoint_signature (string %name) (pair (bytes %params) (address %source_contract))) (lambda %callback unit (list operation))) ; IF_NONE { SWAP ; DIG 2 ; DROP 2 ; PUSH string "no call entrypoint" ; FAILWITH } { DUP 4 ; PACK ; SHA256 ; SELF_ADDRESS ; SWAP ; PUSH string "setPause" ; PAIR 3 ; SWAP ; PUSH mutez 0 ; LAMBDA (pair (pair address bool) unit) (list operation) { UNPAIR ; UNPAIR ; DIG 2 ; DROP ; CONTRACT %setPause bool ; IF_NONE { DROP ; PUSH string "no setPause entrypoint" ; FAILWITH } { NIL operation ; SWAP ; PUSH mutez 0 ; DIG 3 ; TRANSFER_TOKENS ; CONS } } ; DUP 7 ; DUP 7 ; PAIR ; APPLY ; DIG 5 ; DIG 6 ; DROP 2 ; DIG 3 ; PAIR ; TRANSFER_TOKENS ; NIL operation ; SWAP ; CONS } } { UPDATE 1 ; NIL operation } } } } { DUP 2 ; GET 3 ; SENDER ; COMPARE ; NEQ ; IF { SELF_ADDRESS ; DUP 3 ; DIG 3 ; GET 3 ; CONTRACT %callMultisig (pair (pair %entrypoint_signature (string %name) (pair (bytes %params) (address %source_contract))) (lambda %callback unit (list operation))) ; IF_NONE { SWAP ; DIG 2 ; DROP 2 ; PUSH string "no call entrypoint" ; FAILWITH } { DUP 4 ; PACK ; SHA256 ; SELF_ADDRESS ; SWAP ; PUSH string "setReserveAddress" ; PAIR 3 ; SWAP ; PUSH mutez 0 ; LAMBDA (pair (pair address address) unit) (list operation) { UNPAIR ; UNPAIR ; DIG 2 ; DROP ; CONTRACT %setReserveAddress address ; IF_NONE { DROP ; PUSH string "no setReserveAddress entrypoint" ; FAILWITH } { NIL operation ; SWAP ; PUSH mutez 0 ; DIG 3 ; TRANSFER_TOKENS ; CONS } } ; DUP 7 ; DUP 7 ; PAIR ; APPLY ; DIG 5 ; DIG 6 ; DROP 2 ; DIG 3 ; PAIR ; TRANSFER_TOKENS ; NIL operation ; SWAP ; CONS } } { UPDATE 9 ; NIL operation } } ; PAIR } }