x
709
1281
parameter (or
(or
(or
(or
(or (address %addRevealAdmin)
(list %addToWhitelist (pair address nat)))
(or (nat %assignMetadata)
(pair %burnFromCrowdsale (nat %token_id) (address %from_))))
(or
(or (pair %mintFromCrowdsale (address %to_) (nat %token_count))
(list %removeFromWhitelist address))
(or (address %removeRevealAdmin)
(pair %reveal
(pair %metadata
(pair
(pair (bytes %artifactUri)
(pair %attributes
(pair
(pair
(pair (pair (string %a) (string %b))
(pair (string %c) (string %d)))
(pair (pair (string %e) (string %f))
(pair (string %g) (string %h))))
(pair
(pair (pair (string %i) (string %j))
(pair (string %k) (string %l)))
(pair (pair (string %m) (string %n))
(pair (string %o) (string %p)))))
(pair (pair (string %q) (string %r))
(pair (string %s) (string %t)))))
(pair (bytes %displayUri) (bytes %formats)))
(pair (nat %metadata_id) (bytes %thumbnailUri)))
(nat %token_id)))))
(or
(or
(or
(list %revealBatch (pair
(pair %metadata
(pair
(pair (bytes %artifactUri)
(pair %attributes
(pair
(pair
(pair
(pair (string %a) (string %b))
(pair (string %c) (string %d)))
(pair
(pair (string %e) (string %f))
(pair (string %g) (string %h))))
(pair
(pair
(pair (string %i) (string %j))
(pair (string %k) (string %l)))
(pair
(pair (string %m) (string %n))
(pair (string %o) (string %p)))))
(pair (pair (string %q) (string %r))
(pair (string %s) (string %t)))))
(pair (bytes %displayUri) (bytes %formats)))
(pair (nat %metadata_id) (bytes %thumbnailUri)))
(nat %token_id)))
(address %setDogaAddress))
(or
(pair %setFreeMetadata
(pair (map %free_metadata nat nat) (nat %free_metadata_length))
(nat %version))
(string %setIpfsHashes)))
(or
(or
(pair %setMintParams (bool %is_private_sale)
(pair (nat %mint_price)
(pair (nat %total_supply)
(pair (nat %max_mint_per_address)
(pair (timestamp %start_time)
(pair
(timestamp %end_time)
(timestamp %reveal_time)))))))
(unit %setMintPerAddress))
(or (address %setMultisigContract) (map %setNameList nat bytes)))))
(or
(or (or (address %setNftAddress) (address %setOracleAddress))
(or (bool %setPause) (pair %setRandomOffset (nat %from_) (nat %to_))))
(or (address %setReserveAddress) (map %setTokenIdToMetadataId nat nat))));
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
(timestamp %reveal_time)
(pair
(big_map %whitelist
address
nat)
(pair
(big_map %free_metadata_v1
nat
nat)
(pair
(nat %free_metadata_v1_length)
(pair
(big_map %free_metadata_v2
nat
nat)
(pair
(nat %free_metadata_v2_length)
(pair
(big_map %token_id_to_metadata_id
nat
nat)
(pair
(nat %random_offset)
(pair
(nat %next_token_id)
(pair
(set %reveal_admins address)
(pair
(big_map %name_list
nat
bytes)
(pair
(address %oracle)
(string %ipfs_hashes)))))))))))))))))))))))));
code { LAMBDA
(pair
(pair
(pair
(pair
(pair bytes
(pair
(pair
(pair (pair (pair string string) (pair string string))
(pair (pair string string) (pair string string)))
(pair (pair (pair string string) (pair string string))
(pair (pair string string) (pair string string))))
(pair (pair string string) (pair string string))))
(pair bytes bytes))
(pair nat bytes))
nat)
(pair
(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
timestamp
(pair
(big_map
address
nat)
(pair
(big_map
nat
nat)
(pair
nat
(pair
(big_map
nat
nat)
(pair
nat
(pair
(big_map
nat
nat)
(pair
nat
(pair
nat
(pair
(set address)
(pair
(big_map
nat
bytes)
(pair
address
string))))))))))))))))))))))))
(list operation)))
(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
timestamp
(pair
(big_map
address
nat)
(pair
(big_map
nat
nat)
(pair
nat
(pair
(big_map
nat
nat)
(pair
nat
(pair
(big_map
nat
nat)
(pair
nat
(pair
nat
(pair
(set address)
(pair
(big_map
nat
bytes)
(pair
address
string)))))))))))))))))))))))))
{ UNPAIR 3 ;
SWAP ;
DUP ;
DUG 2 ;
GET 43 ;
SENDER ;
MEM ;
NOT ;
IF
{ DROP 3 ; PUSH string "Unauthorized admin address" ; FAILWITH }
{ SWAP ;
DUP ;
DUG 2 ;
GET 37 ;
SWAP ;
DUP ;
DUG 2 ;
CDR ;
GET ;
IF_NONE
{ PUSH string "You have not assigned a metadata yet" ; FAILWITH }
{ SWAP ;
DUP ;
DUG 2 ;
CAR ;
CDR ;
CAR ;
SWAP ;
DUP ;
DUG 2 ;
COMPARE ;
NEQ ;
IF
{ DROP ; PUSH string "Token id not matching metadata id" ; FAILWITH }
{ DROP } } ;
SWAP ;
DUP ;
DUG 2 ;
GET 5 ;
CONTRACT %updateMetadataWithFunction (pair
(lambda %metadata_updater
(map string bytes)
(map string bytes))
(nat %token_id)) ;
IF_NONE
{ DROP ;
PUSH string "NFT contract must have an update metadata with function entrypoint" ;
FAILWITH }
{ PUSH mutez 0 ;
DUP 3 ;
CDR ;
DIG 3 ;
LAMBDA
(pair
(pair
(pair
(pair
(pair bytes
(pair
(pair
(pair
(pair (pair string string) (pair string string))
(pair (pair string string) (pair string string)))
(pair
(pair (pair string string) (pair string string))
(pair (pair string string) (pair string string))))
(pair (pair string string) (pair string string))))
(pair bytes bytes))
(pair nat bytes))
nat)
(map string bytes))
(map string bytes)
{ UNPAIR ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
CDR ;
CDR ;
SOME ;
PUSH string "formats" ;
UPDATE ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
CAR ;
CAR ;
SOME ;
PUSH string "artifactUri" ;
UPDATE ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
CDR ;
CAR ;
SOME ;
PUSH string "displayUri" ;
UPDATE ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CDR ;
CDR ;
SOME ;
PUSH string "thumbnailUri" ;
UPDATE ;
SWAP ;
CAR ;
CAR ;
CAR ;
CDR ;
EMPTY_MAP string (pair (option string) string) ;
SWAP ;
DUP ;
DUG 2 ;
CDR ;
CDR ;
CDR ;
PUSH string "number" ;
SOME ;
PAIR ;
SOME ;
PUSH string "Vitality" ;
UPDATE ;
SWAP ;
DUP ;
DUG 2 ;
CDR ;
CDR ;
CAR ;
PUSH string "number" ;
SOME ;
PAIR ;
SOME ;
PUSH string "Strength" ;
UPDATE ;
SWAP ;
DUP ;
DUG 2 ;
CDR ;
CAR ;
CDR ;
NONE string ;
PAIR ;
SOME ;
PUSH string "Status" ;
UPDATE ;
SWAP ;
DUP ;
DUG 2 ;
CDR ;
CAR ;
CAR ;
NONE string ;
PAIR ;
SOME ;
PUSH string "Size" ;
UPDATE ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CDR ;
CDR ;
CDR ;
CDR ;
NONE string ;
PAIR ;
SOME ;
PUSH string "Secondary personality" ;
UPDATE ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CDR ;
CDR ;
CDR ;
CAR ;
NONE string ;
PAIR ;
SOME ;
PUSH string "Rarity tier" ;
UPDATE ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CDR ;
CDR ;
CAR ;
CDR ;
PUSH string "number" ;
SOME ;
PAIR ;
SOME ;
PUSH string "Rarity score" ;
UPDATE ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CDR ;
CDR ;
CAR ;
CAR ;
NONE string ;
PAIR ;
SOME ;
PUSH string "Primary personality" ;
UPDATE ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CDR ;
CAR ;
CDR ;
CDR ;
PUSH string "number" ;
SOME ;
PAIR ;
SOME ;
PUSH string "Obedience" ;
UPDATE ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CDR ;
CAR ;
CDR ;
CAR ;
PUSH string "number" ;
SOME ;
PAIR ;
SOME ;
PUSH string "Intelligence" ;
UPDATE ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CDR ;
CAR ;
CAR ;
CDR ;
NONE string ;
PAIR ;
SOME ;
PUSH string "Group" ;
UPDATE ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CDR ;
CAR ;
CAR ;
CAR ;
NONE string ;
PAIR ;
SOME ;
PUSH string "Generation" ;
UPDATE ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
CDR ;
CDR ;
CDR ;
NONE string ;
PAIR ;
SOME ;
PUSH string "Gender" ;
UPDATE ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
CDR ;
CDR ;
CAR ;
NONE string ;
PAIR ;
SOME ;
PUSH string "Fur color" ;
UPDATE ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
CDR ;
CAR ;
CDR ;
PUSH string "number" ;
SOME ;
PAIR ;
SOME ;
PUSH string "Friendliness" ;
UPDATE ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
CDR ;
CAR ;
CAR ;
NONE string ;
PAIR ;
SOME ;
PUSH string "Eyes color" ;
UPDATE ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
CAR ;
CDR ;
CDR ;
PUSH string "number" ;
SOME ;
PAIR ;
SOME ;
PUSH string "Breeding count" ;
UPDATE ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
CAR ;
CDR ;
CAR ;
NONE string ;
PAIR ;
SOME ;
PUSH string "Breed" ;
UPDATE ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
CAR ;
CAR ;
CDR ;
PUSH string "number" ;
SOME ;
PAIR ;
SOME ;
PUSH string "Bonding level" ;
UPDATE ;
SWAP ;
CAR ;
CAR ;
CAR ;
CAR ;
CAR ;
PUSH string "date" ;
SOME ;
PAIR ;
SOME ;
PUSH string "Birthday" ;
UPDATE ;
PACK ;
SOME ;
PUSH string "attributes" ;
UPDATE } ;
SWAP ;
APPLY ;
PAIR ;
TRANSFER_TOKENS } ;
SWAP ;
DUG 2 ;
CONS ;
PAIR } } ;
SWAP ;
UNPAIR ;
IF_LEFT
{ IF_LEFT
{ IF_LEFT
{ DIG 2 ;
DROP ;
IF_LEFT
{ IF_LEFT
{ SWAP ;
DUP ;
DUG 2 ;
GET 3 ;
SENDER ;
COMPARE ;
NEQ ;
IF
{ SELF_ADDRESS ;
DIG 2 ;
DUP ;
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 }
{ SELF_ADDRESS ;
DUP 5 ;
PACK ;
SHA256 ;
PUSH string "addRevealAdmin" ;
PAIR 3 ;
SWAP ;
PUSH mutez 0 ;
DIG 5 ;
DIG 5 ;
PAIR ;
LAMBDA
(pair (pair address address) unit)
(list operation)
{ CAR ;
UNPAIR ;
CONTRACT %addRevealAdmin address ;
IF_NONE
{ DROP ;
PUSH string "no addRevealAdmin entrypoint" ;
FAILWITH }
{ NIL operation ;
SWAP ;
PUSH mutez 0 ;
DIG 3 ;
TRANSFER_TOKENS ;
CONS } } ;
SWAP ;
APPLY ;
DIG 3 ;
PAIR ;
TRANSFER_TOKENS ;
NIL operation ;
SWAP ;
CONS } ;
PAIR }
{ SWAP ;
DUP ;
GET 43 ;
DIG 2 ;
PUSH bool True ;
SWAP ;
UPDATE ;
UPDATE 43 ;
NIL operation ;
PAIR } }
{ SWAP ;
DUP ;
DUG 2 ;
GET 3 ;
SENDER ;
COMPARE ;
NEQ ;
IF
{ SELF_ADDRESS ;
DIG 2 ;
DUP ;
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 }
{ SELF_ADDRESS ;
DUP 5 ;
PACK ;
SHA256 ;
PUSH string "addToWhitelist" ;
PAIR 3 ;
SWAP ;
PUSH mutez 0 ;
DIG 5 ;
DIG 5 ;
PAIR ;
LAMBDA
(pair (pair address (list (pair address nat))) unit)
(list operation)
{ CAR ;
UNPAIR ;
CONTRACT %addToWhitelist (list (pair address nat)) ;
IF_NONE
{ DROP ;
PUSH string "no addToWhitelist entrypoint" ;
FAILWITH }
{ NIL operation ;
SWAP ;
PUSH mutez 0 ;
DIG 3 ;
TRANSFER_TOKENS ;
CONS } } ;
SWAP ;
APPLY ;
DIG 3 ;
PAIR ;
TRANSFER_TOKENS ;
NIL operation ;
SWAP ;
CONS } ;
PAIR }
{ SWAP ;
DUP ;
DUG 2 ;
GET 27 ;
SWAP ;
ITER { DUP ; DUG 2 ; CDR ; SOME ; DIG 2 ; CAR ; UPDATE } ;
UPDATE 27 ;
NIL operation ;
PAIR } } }
{ IF_LEFT
{ PUSH bool True ;
DUP 3 ;
CAR ;
COMPARE ;
EQ ;
IF
{ DROP 2 ; PUSH string "Contract in pause" ; FAILWITH }
{ DUP ;
SENDER ;
PAIR ;
DUP 3 ;
GET 37 ;
DUP 3 ;
GET ;
IF_NONE
{}
{ DROP ;
PUSH string "Token already has an assigned metadata" ;
FAILWITH } ;
DUP 3 ;
GET 5 ;
SWAP ;
VIEW "balance_of_view" nat ;
IF_NONE
{ DROP 2 ; PUSH string "View returned an error" ; FAILWITH }
{ PUSH nat 1 ;
SWAP ;
COMPARE ;
NEQ ;
IF
{ DROP 2 ;
PUSH string "You do not own this token" ;
FAILWITH }
{ PUSH nat 8000 ;
SWAP ;
DUP ;
DUG 2 ;
COMPARE ;
LE ;
IF
{ PUSH nat 1 ;
DUP 3 ;
GET 31 ;
COMPARE ;
LT ;
IF
{ DROP 2 ;
PUSH string "No free metadata available" ;
FAILWITH }
{ LEVEL ;
DUP 3 ;
GET 39 ;
ADD ;
PUSH nat 1 ;
DUP 4 ;
GET 31 ;
DIG 2 ;
EDIV ;
IF_NONE
{ PUSH string "MOD by 0" ; FAILWITH }
{} ;
CDR ;
ADD ;
DUP 3 ;
GET 29 ;
SWAP ;
DUP ;
DUG 2 ;
GET ;
IF_NONE
{ PUSH string "Index does not exist" ;
FAILWITH }
{} ;
DUP 4 ;
GET 29 ;
DUP 5 ;
GET 31 ;
GET ;
IF_NONE
{ PUSH string "Did not find tail metadata id" ;
FAILWITH }
{} ;
PUSH int 1 ;
DUP 6 ;
GET 31 ;
SUB ;
ISNAT ;
IF_NONE { PUSH nat 0 } {} ;
DUP 6 ;
DUP 4 ;
UPDATE 39 ;
DUP 7 ;
GET 37 ;
DIG 4 ;
SOME ;
DIG 6 ;
UPDATE ;
UPDATE 37 ;
DUP 5 ;
GET 29 ;
DIG 3 ;
SOME ;
DIG 4 ;
UPDATE ;
NONE nat ;
DIG 4 ;
GET 31 ;
UPDATE ;
UPDATE 29 ;
SWAP ;
UPDATE 31 ;
NIL operation ;
PAIR } }
{ PUSH nat 12000 ;
SWAP ;
DUP ;
DUG 2 ;
COMPARE ;
LE ;
IF
{ NOW ;
DUP 3 ;
GET 25 ;
COMPARE ;
GT ;
IF
{ DROP 2 ;
PUSH string "Reveal period is not open" ;
FAILWITH }
{ PUSH nat 1 ;
DUP 3 ;
GET 35 ;
COMPARE ;
LT ;
IF
{ DROP 2 ;
PUSH string "No free metadata available" ;
FAILWITH }
{ LEVEL ;
DUP 3 ;
GET 39 ;
ADD ;
PUSH nat 1 ;
DUP 4 ;
GET 35 ;
DIG 2 ;
EDIV ;
IF_NONE
{ PUSH string "MOD by 0" ;
FAILWITH }
{} ;
CDR ;
ADD ;
DUP 3 ;
GET 33 ;
SWAP ;
DUP ;
DUG 2 ;
GET ;
IF_NONE
{ PUSH string "Index does not exist" ;
FAILWITH }
{} ;
DUP 4 ;
GET 33 ;
DUP 5 ;
GET 35 ;
GET ;
IF_NONE
{ PUSH string "Did not find tail metadata id" ;
FAILWITH }
{} ;
PUSH int 1 ;
DUP 6 ;
GET 35 ;
SUB ;
ISNAT ;
IF_NONE { PUSH nat 0 } {} ;
DUP 6 ;
DUP 4 ;
UPDATE 39 ;
DUP 7 ;
GET 37 ;
DIG 4 ;
SOME ;
DIG 6 ;
UPDATE ;
UPDATE 37 ;
DUP 5 ;
GET 33 ;
DIG 3 ;
SOME ;
DIG 4 ;
UPDATE ;
NONE nat ;
DIG 4 ;
GET 35 ;
UPDATE ;
UPDATE 33 ;
SWAP ;
UPDATE 35 ;
NIL operation ;
PAIR } } }
{ DROP 2 ;
PUSH string "token_id out of range" ;
FAILWITH } } } } } }
{ SWAP ;
DUP ;
DUG 2 ;
GET 3 ;
SENDER ;
COMPARE ;
NEQ ;
IF
{ SELF_ADDRESS ;
DIG 2 ;
DUP ;
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 }
{ SELF_ADDRESS ;
DUP 5 ;
PACK ;
SHA256 ;
PUSH string "burnFromCrowdsale" ;
PAIR 3 ;
SWAP ;
PUSH mutez 0 ;
DIG 5 ;
DIG 5 ;
PAIR ;
LAMBDA
(pair (pair address (pair nat address)) unit)
(list operation)
{ CAR ;
UNPAIR ;
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 } } ;
SWAP ;
APPLY ;
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 }
{ SWAP ;
DUP ;
DUG 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
{ DIG 2 ;
DROP ;
IF_LEFT
{ PUSH nat 1 ;
SWAP ;
DUP ;
DUG 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 }
{ SWAP ;
DUP ;
DUG 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 }
{ SWAP ;
DUP ;
DUG 2 ;
GET 11 ;
IF
{ SWAP ;
DUP ;
DUG 2 ;
GET 27 ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
GET ;
IF_NONE
{ PUSH string "Address is not whitelisted" ;
FAILWITH }
{} }
{ PUSH nat 0 } ;
DROP ;
SWAP ;
DUP ;
DUG 2 ;
GET 13 ;
SWAP ;
DUP ;
DUG 2 ;
CDR ;
MUL ;
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 ;
SWAP ;
DUP ;
DUG 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
timestamp
(pair
(big_map
address
nat)
(pair
(big_map
nat
nat)
(pair
nat
(pair
(big_map
nat
nat)
(pair
nat
(pair
(big_map
nat
nat)
(pair
nat
(pair
nat
(pair
(set address)
(pair
(big_map
nat
bytes)
(pair
address
string))))))))))))))))))))))))) ;
LOOP_LEFT { UNPAIR ;
PUSH nat 1 ;
SWAP ;
DUP ;
DUG 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
timestamp
(pair
(big_map
address
nat)
(pair
(big_map
nat
nat)
(pair
nat
(pair
(big_map
nat
nat)
(pair
nat
(pair
(big_map
nat
nat)
(pair
nat
(pair
nat
(pair
(set address)
(pair
(big_map
nat
bytes)
(pair
address
string)))))))))))))))))))))))))) }
{ DUP 4 ;
GET 15 ;
DUP 3 ;
CDR ;
GET 41 ;
COMPARE ;
GT ;
IF
{ DROP 2 ;
PUSH string "Total supply reached" ;
FAILWITH }
{ SWAP ;
DUP ;
DUG 2 ;
CDR ;
GET 17 ;
DUP 4 ;
CAR ;
GET ;
IF_NONE
{ PUSH nat 0 }
{ DUP 5 ;
GET 19 ;
SWAP ;
DUP ;
DUG 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 ;
EMPTY_MAP string bytes ;
PUSH bytes 0x697066733a2f2f516d5151687a766556587376566d46397a76673457344239415a47454d77473639615833655244474a704e4d4874 ;
SOME ;
PUSH string "thumbnailUri" ;
UPDATE ;
PUSH bytes 0x7b22646563696d616c73223a20322c2022736861726573223a207b22747a31626a394e784b59757073375743466d79746b594a547736727874697a4a5237394b223a20377d7d ;
SOME ;
PUSH string "royalties" ;
UPDATE ;
PUSH bytes 0x28632920444f47414d492e20416c6c205269676874732052657365727665642e ;
SOME ;
PUSH string "rights" ;
UPDATE ;
DUP 6 ;
CDR ;
GET 45 ;
DUP 7 ;
CDR ;
GET 41 ;
GET ;
IF_NONE
{ PUSH bytes 0x446f67616d69 }
{} ;
SOME ;
PUSH string "name" ;
UPDATE ;
PUSH bytes 0x74727565 ;
SOME ;
PUSH string "isBooleanAmount" ;
UPDATE ;
PUSH bytes 0x5b7b226d696d6554797065223a2022766964656f2f6d7034222c2022757269223a2022697066733a2f2f516d53514b474439574e685352525147667a446269486a6f46474b64647752427a73733753535265695678536654227d2c207b226d696d6554797065223a2022696d6167652f676966222c2022757269223a2022697066733a2f2f516d516677385a6855354448623759344e364878325a7867366854446138773179705931764857434b684e4b776f227d2c207b226d696d6554797065223a2022696d6167652f676966222c2022757269223a2022697066733a2f2f516d5151687a766556587376566d46397a76673457344239415a47454d77473639615833655244474a704e4d4874227d5d ;
SOME ;
PUSH string "formats" ;
UPDATE ;
PUSH bytes 0x697066733a2f2f516d516677385a6855354448623759344e364878325a7867366854446138773179705931764857434b684e4b776f ;
SOME ;
PUSH string "displayUri" ;
UPDATE ;
PUSH bytes 0x596f75722074727565207669727475616c20636f6d70616e696f6e21 ;
SOME ;
PUSH string "description" ;
UPDATE ;
PUSH bytes 0x30 ;
SOME ;
PUSH string "decimals" ;
UPDATE ;
PUSH bytes 0x5b22444f47414d49225d ;
SOME ;
PUSH string "creators" ;
UPDATE ;
EMPTY_MAP string
(pair
(option string)
string) ;
PUSH string "Box" ;
NONE string ;
PAIR ;
SOME ;
PUSH string "Status" ;
UPDATE ;
PUSH string "Alpha 2" ;
NONE string ;
PAIR ;
SOME ;
PUSH string "Generation" ;
UPDATE ;
PACK ;
SOME ;
PUSH string "attributes" ;
UPDATE ;
PUSH bytes 0x697066733a2f2f516d53514b474439574e685352525147667a446269486a6f46474b64647752427a73733753535265695678536654 ;
SOME ;
PUSH string "artifactUri" ;
UPDATE ;
DUP 6 ;
CDR ;
GET 41 ;
DUP 8 ;
CAR ;
PAIR ;
PAIR ;
TRANSFER_TOKENS } ;
DUP 4 ;
CDR ;
GET 17 ;
PUSH nat 1 ;
DIG 3 ;
ADD ;
SOME ;
DUP 6 ;
CAR ;
UPDATE ;
PUSH nat 1 ;
DUP 5 ;
CDR ;
GET 41 ;
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 45 ;
NONE bytes ;
DUP 8 ;
CDR ;
GET 41 ;
UPDATE ;
UPDATE 45 ;
DIG 2 ;
UPDATE 41 ;
DIG 2 ;
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
timestamp
(pair
(big_map
address
nat)
(pair
(big_map
nat
nat)
(pair
nat
(pair
(big_map
nat
nat)
(pair
nat
(pair
(big_map
nat
nat)
(pair
nat
(pair
nat
(pair
(set address)
(pair
(big_map
nat
bytes)
(pair
address
string))))))))))))))))))))))))) } } } } ;
SWAP ;
DIG 2 ;
DROP 2 } } } }
{ SWAP ;
DUP ;
DUG 2 ;
GET 3 ;
SENDER ;
COMPARE ;
NEQ ;
IF
{ SELF_ADDRESS ;
DIG 2 ;
DUP ;
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 }
{ SELF_ADDRESS ;
DUP 5 ;
PACK ;
SHA256 ;
PUSH string "removeToWhitelist" ;
PAIR 3 ;
SWAP ;
PUSH mutez 0 ;
DIG 5 ;
DIG 5 ;
PAIR ;
LAMBDA
(pair (pair address (list address)) unit)
(list operation)
{ CAR ;
UNPAIR ;
CONTRACT %removeToWhitelist (list address) ;
IF_NONE
{ DROP ;
PUSH string "no removeToWhitelist entrypoint" ;
FAILWITH }
{ NIL operation ;
SWAP ;
PUSH mutez 0 ;
DIG 3 ;
TRANSFER_TOKENS ;
CONS } } ;
SWAP ;
APPLY ;
DIG 3 ;
PAIR ;
TRANSFER_TOKENS ;
NIL operation ;
SWAP ;
CONS } ;
PAIR }
{ SWAP ;
DUP ;
DUG 2 ;
GET 27 ;
SWAP ;
ITER { SWAP ; NONE nat ; DIG 2 ; UPDATE } ;
UPDATE 27 ;
NIL operation ;
PAIR } } }
{ IF_LEFT
{ DIG 2 ;
DROP ;
SWAP ;
DUP ;
DUG 2 ;
GET 3 ;
SENDER ;
COMPARE ;
NEQ ;
IF
{ SELF_ADDRESS ;
DIG 2 ;
DUP ;
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 }
{ SELF_ADDRESS ;
DUP 5 ;
PACK ;
SHA256 ;
PUSH string "removeRevealAdmin" ;
PAIR 3 ;
SWAP ;
PUSH mutez 0 ;
DIG 5 ;
DIG 5 ;
PAIR ;
LAMBDA
(pair (pair address address) unit)
(list operation)
{ CAR ;
UNPAIR ;
CONTRACT %removeRevealAdmin address ;
IF_NONE
{ DROP ;
PUSH string "no removeRevealAdmin entrypoint" ;
FAILWITH }
{ NIL operation ;
SWAP ;
PUSH mutez 0 ;
DIG 3 ;
TRANSFER_TOKENS ;
CONS } } ;
SWAP ;
APPLY ;
DIG 3 ;
PAIR ;
TRANSFER_TOKENS ;
NIL operation ;
SWAP ;
CONS } ;
PAIR }
{ SWAP ;
DUP ;
GET 43 ;
DIG 2 ;
PUSH bool False ;
SWAP ;
UPDATE ;
UPDATE 43 ;
NIL operation ;
PAIR } }
{ NIL operation ; DUG 2 ; PAIR 3 ; EXEC } } } }
{ IF_LEFT
{ IF_LEFT
{ IF_LEFT
{ SWAP ;
NIL operation ;
PAIR ;
SWAP ;
ITER { SWAP ; DUP ; CAR ; SWAP ; CDR ; DIG 2 ; PAIR 3 ; SWAP ; DUP ; DUG 2 ; SWAP ; EXEC } ;
SWAP ;
DROP }
{ DIG 2 ;
DROP ;
SWAP ;
DUP ;
DUG 2 ;
GET 3 ;
SENDER ;
COMPARE ;
NEQ ;
IF
{ SELF_ADDRESS ;
DIG 2 ;
DUP ;
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 }
{ SELF_ADDRESS ;
DUP 5 ;
PACK ;
SHA256 ;
PUSH string "setDogaAddress" ;
PAIR 3 ;
SWAP ;
PUSH mutez 0 ;
DIG 5 ;
DIG 5 ;
PAIR ;
LAMBDA
(pair (pair address address) unit)
(list operation)
{ CAR ;
UNPAIR ;
CONTRACT %setDogaAddress address ;
IF_NONE
{ DROP ;
PUSH string "no setDogaAddress entrypoint" ;
FAILWITH }
{ NIL operation ;
SWAP ;
PUSH mutez 0 ;
DIG 3 ;
TRANSFER_TOKENS ;
CONS } } ;
SWAP ;
APPLY ;
DIG 3 ;
PAIR ;
TRANSFER_TOKENS ;
NIL operation ;
SWAP ;
CONS } ;
PAIR }
{ UPDATE 7 ; NIL operation ; PAIR } } }
{ DIG 2 ;
DROP ;
IF_LEFT
{ SWAP ;
DUP ;
DUG 2 ;
GET 3 ;
SENDER ;
COMPARE ;
NEQ ;
IF
{ SELF_ADDRESS ;
DIG 2 ;
DUP ;
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 }
{ SELF_ADDRESS ;
DUP 5 ;
PACK ;
SHA256 ;
PUSH string "setFreeMetadata" ;
PAIR 3 ;
SWAP ;
PUSH mutez 0 ;
DIG 5 ;
DIG 5 ;
PAIR ;
LAMBDA
(pair
(pair address (pair (pair (map nat nat) nat) nat))
unit)
(list operation)
{ CAR ;
UNPAIR ;
CONTRACT %setFreeMetadata (pair
(pair
(map %free_metadata
nat
nat)
(nat %free_metadata_length))
(nat %version)) ;
IF_NONE
{ DROP ;
PUSH string "no setFreeMetadata entrypoint" ;
FAILWITH }
{ NIL operation ;
SWAP ;
PUSH mutez 0 ;
DIG 3 ;
TRANSFER_TOKENS ;
CONS } } ;
SWAP ;
APPLY ;
DIG 3 ;
PAIR ;
TRANSFER_TOKENS ;
NIL operation ;
SWAP ;
CONS } ;
PAIR }
{ LAMBDA
(pair (big_map nat nat) (pair nat nat))
(big_map nat nat)
{ UNPAIR ; SWAP ; DUP ; DUG 2 ; CDR ; SOME ; DIG 2 ; CAR ; UPDATE } ;
PUSH nat 1 ;
DUP 3 ;
CDR ;
COMPARE ;
EQ ;
IF
{ DUP 3 ;
GET 29 ;
DUP 3 ;
CAR ;
CAR ;
ITER { SWAP ; PAIR ; SWAP ; DUP ; DUG 2 ; SWAP ; EXEC } ;
SWAP ;
DROP ;
DIG 2 ;
SWAP ;
UPDATE 29 ;
SWAP ;
CAR ;
CDR ;
UPDATE 31 }
{ PUSH nat 2 ;
DUP 3 ;
CDR ;
COMPARE ;
EQ ;
IF
{ DUP 3 ;
GET 33 ;
DUP 3 ;
CAR ;
CAR ;
ITER { SWAP ; PAIR ; SWAP ; DUP ; DUG 2 ; SWAP ; EXEC } ;
SWAP ;
DROP ;
DIG 2 ;
SWAP ;
UPDATE 33 ;
SWAP ;
CAR ;
CDR ;
UPDATE 35 }
{ DROP 3 ; PUSH string "version not found" ; FAILWITH } } ;
NIL operation ;
PAIR } }
{ SWAP ;
DUP ;
DUG 2 ;
GET 3 ;
SENDER ;
COMPARE ;
NEQ ;
IF
{ SELF_ADDRESS ;
DIG 2 ;
DUP ;
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 }
{ SELF_ADDRESS ;
DUP 5 ;
PACK ;
SHA256 ;
PUSH string "setIpfsHashes" ;
PAIR 3 ;
SWAP ;
PUSH mutez 0 ;
DIG 5 ;
DIG 5 ;
PAIR ;
LAMBDA
(pair (pair address string) unit)
(list operation)
{ CAR ;
UNPAIR ;
CONTRACT %setIpfsHashes string ;
IF_NONE
{ DROP ;
PUSH string "no setIpfsHashes entrypoint" ;
FAILWITH }
{ NIL operation ;
SWAP ;
PUSH mutez 0 ;
DIG 3 ;
TRANSFER_TOKENS ;
CONS } } ;
SWAP ;
APPLY ;
DIG 3 ;
PAIR ;
TRANSFER_TOKENS ;
NIL operation ;
SWAP ;
CONS } ;
PAIR }
{ UPDATE 48 ; NIL operation ; PAIR } } } }
{ DIG 2 ;
DROP ;
IF_LEFT
{ IF_LEFT
{ SWAP ;
DUP ;
DUG 2 ;
GET 3 ;
SENDER ;
COMPARE ;
NEQ ;
IF
{ SELF_ADDRESS ;
DIG 2 ;
DUP ;
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 }
{ SELF_ADDRESS ;
DUP 5 ;
PACK ;
SHA256 ;
PUSH string "setMintParams" ;
PAIR 3 ;
SWAP ;
PUSH mutez 0 ;
DIG 5 ;
DIG 5 ;
PAIR ;
LAMBDA
(pair
(pair address
(pair bool
(pair nat
(pair nat
(pair nat
(pair timestamp
(pair
timestamp
timestamp)))))))
unit)
(list operation)
{ CAR ;
UNPAIR ;
CONTRACT %setMintParams (pair
(bool %is_private_sale)
(pair (nat %mint_price)
(pair
(nat %total_supply)
(pair
(nat %max_mint_per_address)
(pair
(timestamp %start_time)
(pair
(timestamp %end_time)
(timestamp %reveal_time))))))) ;
IF_NONE
{ DROP ;
PUSH string "no setMintParams entrypoint" ;
FAILWITH }
{ NIL operation ;
SWAP ;
PUSH mutez 0 ;
DIG 3 ;
TRANSFER_TOKENS ;
CONS } } ;
SWAP ;
APPLY ;
DIG 3 ;
PAIR ;
TRANSFER_TOKENS ;
NIL operation ;
SWAP ;
CONS } ;
PAIR }
{ PUSH nat 0 ;
SWAP ;
DUP ;
DUG 2 ;
GET 7 ;
COMPARE ;
EQ ;
PUSH nat 0 ;
DUP 3 ;
GET 5 ;
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 11 ;
SWAP ;
DUP ;
DUG 2 ;
GET 9 ;
COMPARE ;
GE ;
IF
{ DROP 2 ;
PUSH string "Invalid date format" ;
FAILWITH }
{ DUP ;
DUG 2 ;
CAR ;
UPDATE 11 ;
SWAP ;
DUP ;
DUG 2 ;
GET 3 ;
UPDATE 13 ;
SWAP ;
DUP ;
DUG 2 ;
GET 5 ;
UPDATE 15 ;
SWAP ;
DUP ;
DUG 2 ;
GET 7 ;
UPDATE 19 ;
SWAP ;
DUP ;
DUG 2 ;
GET 9 ;
UPDATE 21 ;
SWAP ;
DUP ;
DUG 2 ;
GET 11 ;
UPDATE 23 ;
SWAP ;
GET 12 ;
UPDATE 25 ;
NIL operation ;
PAIR } } } }
{ DROP ;
DUP ;
GET 3 ;
SENDER ;
COMPARE ;
NEQ ;
IF
{ SELF_ADDRESS ;
SWAP ;
DUP ;
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 }
{ SELF_ADDRESS ;
UNIT ;
PACK ;
SHA256 ;
PUSH string "setMintPerAddress" ;
PAIR 3 ;
SWAP ;
PUSH mutez 0 ;
DIG 4 ;
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 } } ;
SWAP ;
APPLY ;
DIG 3 ;
PAIR ;
TRANSFER_TOKENS ;
NIL operation ;
SWAP ;
CONS } ;
PAIR }
{ EMPTY_BIG_MAP address nat ; UPDATE 17 ; NIL operation ; PAIR } } }
{ IF_LEFT
{ SWAP ;
DUP ;
DUG 2 ;
GET 3 ;
SENDER ;
COMPARE ;
NEQ ;
IF
{ SELF_ADDRESS ;
DIG 2 ;
DUP ;
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 }
{ SELF_ADDRESS ;
DUP 5 ;
PACK ;
SHA256 ;
PUSH string "updateMultisig" ;
PAIR 3 ;
SWAP ;
PUSH mutez 0 ;
DIG 5 ;
DIG 5 ;
PAIR ;
LAMBDA
(pair (pair address address) unit)
(list operation)
{ CAR ;
UNPAIR ;
CONTRACT %updateMultisig address ;
IF_NONE
{ DROP ;
PUSH string "no updateMultisig entrypoint" ;
FAILWITH }
{ NIL operation ;
SWAP ;
PUSH mutez 0 ;
DIG 3 ;
TRANSFER_TOKENS ;
CONS } } ;
SWAP ;
APPLY ;
DIG 3 ;
PAIR ;
TRANSFER_TOKENS ;
NIL operation ;
SWAP ;
CONS } ;
PAIR }
{ UPDATE 3 ; NIL operation ; PAIR } }
{ SWAP ;
DUP ;
DUG 2 ;
GET 3 ;
SENDER ;
COMPARE ;
NEQ ;
IF
{ SELF_ADDRESS ;
DIG 2 ;
DUP ;
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 }
{ SELF_ADDRESS ;
DUP 5 ;
PACK ;
SHA256 ;
PUSH string "setNameList" ;
PAIR 3 ;
SWAP ;
PUSH mutez 0 ;
DIG 5 ;
DIG 5 ;
PAIR ;
LAMBDA
(pair (pair address (map nat bytes)) unit)
(list operation)
{ CAR ;
UNPAIR ;
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 } } ;
SWAP ;
APPLY ;
DIG 3 ;
PAIR ;
TRANSFER_TOKENS ;
NIL operation ;
SWAP ;
CONS } ;
PAIR }
{ SWAP ;
DUP ;
DUG 2 ;
GET 45 ;
SWAP ;
ITER { DUP ; DUG 2 ; CDR ; SOME ; DIG 2 ; CAR ; UPDATE } ;
UPDATE 45 ;
NIL operation ;
PAIR } } } } } }
{ DIG 2 ;
DROP ;
IF_LEFT
{ IF_LEFT
{ IF_LEFT
{ SWAP ;
DUP ;
DUG 2 ;
GET 3 ;
SENDER ;
COMPARE ;
NEQ ;
IF
{ SELF_ADDRESS ;
DIG 2 ;
DUP ;
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 }
{ SELF_ADDRESS ;
DUP 5 ;
PACK ;
SHA256 ;
PUSH string "setNftAddress" ;
PAIR 3 ;
SWAP ;
PUSH mutez 0 ;
DIG 5 ;
DIG 5 ;
PAIR ;
LAMBDA
(pair (pair address address) unit)
(list operation)
{ CAR ;
UNPAIR ;
CONTRACT %setNftAddress address ;
IF_NONE
{ DROP ;
PUSH string "no setNftAddress entrypoint" ;
FAILWITH }
{ NIL operation ;
SWAP ;
PUSH mutez 0 ;
DIG 3 ;
TRANSFER_TOKENS ;
CONS } } ;
SWAP ;
APPLY ;
DIG 3 ;
PAIR ;
TRANSFER_TOKENS ;
NIL operation ;
SWAP ;
CONS } ;
PAIR }
{ UPDATE 5 ; NIL operation ; PAIR } }
{ SWAP ;
DUP ;
DUG 2 ;
GET 3 ;
SENDER ;
COMPARE ;
NEQ ;
IF
{ SELF_ADDRESS ;
DIG 2 ;
DUP ;
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 }
{ SELF_ADDRESS ;
DUP 5 ;
PACK ;
SHA256 ;
PUSH string "setOracleAddress" ;
PAIR 3 ;
SWAP ;
PUSH mutez 0 ;
DIG 5 ;
DIG 5 ;
PAIR ;
LAMBDA
(pair (pair address address) unit)
(list operation)
{ CAR ;
UNPAIR ;
CONTRACT %setOracleAddress address ;
IF_NONE
{ DROP ;
PUSH string "no setOracleAddress entrypoint" ;
FAILWITH }
{ NIL operation ;
SWAP ;
PUSH mutez 0 ;
DIG 3 ;
TRANSFER_TOKENS ;
CONS } } ;
SWAP ;
APPLY ;
DIG 3 ;
PAIR ;
TRANSFER_TOKENS ;
NIL operation ;
SWAP ;
CONS } ;
PAIR }
{ UPDATE 47 ; NIL operation ; PAIR } } }
{ IF_LEFT
{ SWAP ;
DUP ;
DUG 2 ;
GET 3 ;
SENDER ;
COMPARE ;
NEQ ;
IF
{ SELF_ADDRESS ;
DIG 2 ;
DUP ;
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 }
{ SELF_ADDRESS ;
DUP 5 ;
PACK ;
SHA256 ;
PUSH string "setPause" ;
PAIR 3 ;
SWAP ;
PUSH mutez 0 ;
DIG 5 ;
DIG 5 ;
PAIR ;
LAMBDA
(pair (pair address bool) unit)
(list operation)
{ CAR ;
UNPAIR ;
CONTRACT %setPause bool ;
IF_NONE
{ DROP ;
PUSH string "no setPause entrypoint" ;
FAILWITH }
{ NIL operation ;
SWAP ;
PUSH mutez 0 ;
DIG 3 ;
TRANSFER_TOKENS ;
CONS } } ;
SWAP ;
APPLY ;
DIG 3 ;
PAIR ;
TRANSFER_TOKENS ;
NIL operation ;
SWAP ;
CONS } ;
PAIR }
{ UPDATE 1 ; NIL operation ; PAIR } }
{ SWAP ;
DUP ;
DUG 2 ;
GET 3 ;
SENDER ;
COMPARE ;
NEQ ;
IF
{ SELF_ADDRESS ;
DIG 2 ;
DUP ;
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 }
{ SELF_ADDRESS ;
DUP 5 ;
PACK ;
SHA256 ;
PUSH string "setRandomOffset" ;
PAIR 3 ;
SWAP ;
PUSH mutez 0 ;
DIG 5 ;
DIG 5 ;
PAIR ;
LAMBDA
(pair (pair address (pair nat nat)) unit)
(list operation)
{ CAR ;
UNPAIR ;
CONTRACT %setRandomOffset (pair (nat %from_)
(nat %to_)) ;
IF_NONE
{ DROP ;
PUSH string "no setRandomOffset entrypoint" ;
FAILWITH }
{ NIL operation ;
SWAP ;
PUSH mutez 0 ;
DIG 3 ;
TRANSFER_TOKENS ;
CONS } } ;
SWAP ;
APPLY ;
DIG 3 ;
PAIR ;
TRANSFER_TOKENS ;
NIL operation ;
SWAP ;
CONS } ;
PAIR }
{ SWAP ;
DUP ;
DUG 2 ;
GET 47 ;
SWAP ;
VIEW "getRandomBetween" nat ;
IF_NONE
{ PUSH string "Oracle failed to supply random number" ;
FAILWITH }
{} ;
UPDATE 39 ;
NIL operation ;
PAIR } } } }
{ IF_LEFT
{ SWAP ;
DUP ;
DUG 2 ;
GET 3 ;
SENDER ;
COMPARE ;
NEQ ;
IF
{ SELF_ADDRESS ;
DIG 2 ;
DUP ;
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 }
{ SELF_ADDRESS ;
DUP 5 ;
PACK ;
SHA256 ;
PUSH string "setReserveAddress" ;
PAIR 3 ;
SWAP ;
PUSH mutez 0 ;
DIG 5 ;
DIG 5 ;
PAIR ;
LAMBDA
(pair (pair address address) unit)
(list operation)
{ CAR ;
UNPAIR ;
CONTRACT %setReserveAddress address ;
IF_NONE
{ DROP ;
PUSH string "no setReserveAddress entrypoint" ;
FAILWITH }
{ NIL operation ;
SWAP ;
PUSH mutez 0 ;
DIG 3 ;
TRANSFER_TOKENS ;
CONS } } ;
SWAP ;
APPLY ;
DIG 3 ;
PAIR ;
TRANSFER_TOKENS ;
NIL operation ;
SWAP ;
CONS } ;
PAIR }
{ UPDATE 9 ; NIL operation ; PAIR } }
{ SWAP ;
DUP ;
DUG 2 ;
GET 3 ;
SENDER ;
COMPARE ;
NEQ ;
IF
{ SELF_ADDRESS ;
DIG 2 ;
DUP ;
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 }
{ SELF_ADDRESS ;
DUP 5 ;
PACK ;
SHA256 ;
PUSH string "setTokenIdToMetadataId" ;
PAIR 3 ;
SWAP ;
PUSH mutez 0 ;
DIG 5 ;
DIG 5 ;
PAIR ;
LAMBDA
(pair (pair address (map nat nat)) unit)
(list operation)
{ CAR ;
UNPAIR ;
CONTRACT %setTokenIdToMetadataId (map nat nat) ;
IF_NONE
{ DROP ;
PUSH string "no setTokenIdToMetadataId entrypoint" ;
FAILWITH }
{ NIL operation ;
SWAP ;
PUSH mutez 0 ;
DIG 3 ;
TRANSFER_TOKENS ;
CONS } } ;
SWAP ;
APPLY ;
DIG 3 ;
PAIR ;
TRANSFER_TOKENS ;
NIL operation ;
SWAP ;
CONS } ;
PAIR }
{ SWAP ;
DUP ;
DUG 2 ;
GET 37 ;
SWAP ;
ITER { DUP ; DUG 2 ; CDR ; SOME ; DIG 2 ; CAR ; UPDATE } ;
UPDATE 37 ;
NIL operation ;
PAIR } } } } }