x
882
1068
parameter (or
(or
(or
(or (list %addToWhitelist address) (list %flushPlaceholderMetadata nat))
(or (unit %getRandomMintIndex) (int %mint)))
(or
(or (address %removeFromWhitelist)
(list %revealMetadata (pair nat bytes)))
(or (address %setAdmin)
(or (address %setFluxNftAddress) (nat %setMaxMintPerAddress)))))
(or
(or (or (nat %setMaxSupply) (nat %setNextTokenId))
(or (nat %setNumberMinted)
(list %setPlaceholderMetadata (pair nat bytes))))
(or
(or (pair %setRandomMintIndex string (pair timestamp nat))
(nat %setWhitelistMaxMintPerAddress))
(or (nat %setWhitelistMaxSupply)
(or (unit %toggleSaleIsPaused) (unit %toggleWhitelistSaleIsPaused))))));
storage (pair
(pair
(pair (pair (address %admin) (address %fluxNftAddress))
(pair (address %fluxTeamAddress) (nat %maxMintPerAddress)))
(pair (pair (nat %maxSupply) (big_map %metadata string bytes))
(pair (big_map %mintedLedger address nat)
(pair (nat %nextTokenId) (nat %numberMinted)))))
(pair
(pair
(pair (address %oracleAddress) (big_map %placeholder_metadata nat bytes))
(pair (int %price) (pair (string %provenanceHash) (nat %randomMintIndex))))
(pair (pair (bool %saleIsPaused) (big_map %whitelistLedger address nat))
(pair (nat %whitelistMaxMintPerAddress)
(pair (nat %whitelistMaxSupply) (bool %whitelistSaleIsPaused))))));
code { UNPAIR ;
IF_LEFT
{ IF_LEFT
{ IF_LEFT
{ IF_LEFT
{ SENDER ;
DUP 3 ;
CAR ;
CAR ;
CAR ;
CAR ;
COMPARE ;
EQ ;
IF
{}
{ PUSH string "Only the contract admin can add to the whitelist." ;
FAILWITH } ;
DUP ;
ITER { DIG 2 ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
UNPAIR ;
SWAP ;
PUSH (option nat) (Some 0) ;
DIG 6 ;
UPDATE ;
SWAP ;
PAIR ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
SWAP } ;
DROP }
{ SENDER ;
DUP 3 ;
CAR ;
CAR ;
CAR ;
CAR ;
COMPARE ;
EQ ;
IF
{}
{ PUSH string "Only the contract admin can flush placeholder metadata." ;
FAILWITH } ;
DUP ;
ITER { DIG 2 ;
UNPAIR ;
SWAP ;
UNPAIR ;
UNPAIR ;
UNPAIR ;
SWAP ;
NONE bytes ;
DIG 6 ;
UPDATE ;
SWAP ;
PAIR ;
PAIR ;
PAIR ;
SWAP ;
PAIR ;
SWAP } ;
DROP } ;
NIL operation }
{ IF_LEFT
{ DROP ;
DUP ;
CAR ;
CAR ;
CAR ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF
{}
{ PUSH string "Only the admin can get random mint index." ;
FAILWITH } ;
DUP ;
GET 3 ;
CAR ;
CAR ;
CONTRACT %get (pair string
(contract (pair string (pair timestamp nat)))) ;
IF_NONE { PUSH int 219 ; FAILWITH } {} ;
NIL operation ;
SWAP ;
PUSH mutez 0 ;
SELF %setRandomMintIndex ;
PUSH string "XTZ-USD" ;
PAIR ;
TRANSFER_TOKENS ;
CONS }
{ PUSH bool False ;
DUP 3 ;
GET 5 ;
CAR ;
COMPARE ;
EQ ;
IF {} { PUSH string "Sale has not started yet." ; FAILWITH } ;
DUP ;
PUSH int 1 ;
COMPARE ;
EQ ;
IF
{}
{ PUSH string "You can only mint 1 at a time." ; FAILWITH } ;
SWAP ;
DUP ;
CAR ;
GET 3 ;
CAR ;
SWAP ;
DUP ;
DUG 3 ;
CAR ;
GET 8 ;
COMPARE ;
LE ;
IF {} { PUSH string "Max supply has been reached" ; FAILWITH } ;
PUSH bool False ;
DUP 3 ;
GET 5 ;
CAR ;
COMPARE ;
EQ ;
IF
{ PUSH bool False ;
DUP 3 ;
GET 10 ;
COMPARE ;
EQ ;
IF
{ SWAP ;
DUP ;
DUG 2 ;
GET 5 ;
CDR ;
SENDER ;
MEM ;
IF
{}
{ PUSH string "You are not on the whitelist." ;
FAILWITH } ;
SWAP ;
DUP ;
GET 9 ;
SWAP ;
DUP ;
DUG 3 ;
CAR ;
GET 8 ;
COMPARE ;
LE ;
IF
{}
{ PUSH string "Max whitelist supply has been reached" ;
FAILWITH } ;
AMOUNT ;
PUSH mutez 20000000 ;
COMPARE ;
EQ ;
IF
{}
{ PUSH string "Tez amount is not correct" ; FAILWITH } ;
SWAP ;
DUP ;
DUG 2 ;
GET 7 ;
PUSH nat 1 ;
DUP 4 ;
GET 5 ;
CDR ;
SENDER ;
GET ;
IF_NONE { PUSH int 165 ; FAILWITH } {} ;
ADD ;
COMPARE ;
LE ;
IF
{}
{ PUSH string "You have reached the max amount of mints for whitelist." ;
FAILWITH } ;
NIL operation ;
DUP 3 ;
CAR ;
CAR ;
CAR ;
CDR ;
CONTRACT %mint (pair (pair address int)
(pair (map string bytes) nat)) ;
IF_NONE { PUSH int 169 ; FAILWITH } {} ;
PUSH mutez 0 ;
DUP 5 ;
CAR ;
GET 7 ;
EMPTY_MAP string bytes ;
DIG 6 ;
DUP ;
GET 3 ;
CAR ;
CDR ;
SWAP ;
DUP ;
DUG 8 ;
CAR ;
GET 7 ;
GET ;
IF_NONE { PUSH int 158 ; FAILWITH } {} ;
SOME ;
PUSH string "" ;
UPDATE ;
PAIR ;
DIG 4 ;
SENDER ;
PAIR ;
PAIR ;
TRANSFER_TOKENS ;
CONS ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
GET 3 ;
CONTRACT unit ;
IF_NONE { PUSH int 172 ; FAILWITH } {} ;
AMOUNT ;
UNIT ;
TRANSFER_TOKENS ;
CONS ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
GET 3 ;
CAR ;
PUSH nat 1 ;
DUP 4 ;
CAR ;
GET 7 ;
ADD ;
COMPARE ;
GT ;
IF
{ SWAP ;
DUP ;
DUG 2 ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
CDR ;
DUP 7 ;
CAR ;
GET 3 ;
CAR ;
PUSH nat 1 ;
DIG 8 ;
CAR ;
GET 7 ;
ADD ;
SUB ;
ABS ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
SWAP }
{ SWAP ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
PUSH nat 1 ;
ADD ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
SWAP } ;
SWAP ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
PUSH nat 1 ;
ADD ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
UNPAIR ;
SWAP ;
DUP ;
SENDER ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 175 ; FAILWITH } {} ;
PUSH nat 1 ;
ADD ;
SOME ;
SWAP ;
UPDATE ;
SWAP ;
PAIR ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
DUP ;
DUG 2 ;
CAR ;
GET 5 ;
SENDER ;
MEM ;
IF
{ SWAP ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
DUP ;
SENDER ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 177 ; FAILWITH } {} ;
PUSH nat 1 ;
ADD ;
SOME ;
SWAP ;
UPDATE ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
SWAP }
{ SWAP ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
PUSH (option nat) (Some 1) ;
SENDER ;
UPDATE ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
SWAP } }
{ AMOUNT ;
PUSH mutez 20000000 ;
COMPARE ;
EQ ;
IF
{}
{ PUSH string "Tez amount is not correct" ; FAILWITH } ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
GET 5 ;
SENDER ;
MEM ;
IF
{ SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
GET 4 ;
PUSH nat 1 ;
DUP 4 ;
CAR ;
GET 5 ;
SENDER ;
GET ;
IF_NONE { PUSH int 185 ; FAILWITH } {} ;
ADD ;
COMPARE ;
LE ;
IF
{}
{ PUSH string "You have reached the max amount of mints per address." ;
FAILWITH } }
{} ;
NIL operation ;
DUP 3 ;
CAR ;
CAR ;
CAR ;
CDR ;
CONTRACT %mint (pair (pair address int)
(pair (map string bytes) nat)) ;
IF_NONE { PUSH int 187 ; FAILWITH } {} ;
PUSH mutez 0 ;
DUP 5 ;
CAR ;
GET 7 ;
EMPTY_MAP string bytes ;
DIG 6 ;
DUP ;
GET 3 ;
CAR ;
CDR ;
SWAP ;
DUP ;
DUG 8 ;
CAR ;
GET 7 ;
GET ;
IF_NONE { PUSH int 158 ; FAILWITH } {} ;
SOME ;
PUSH string "" ;
UPDATE ;
PAIR ;
DIG 4 ;
SENDER ;
PAIR ;
PAIR ;
TRANSFER_TOKENS ;
CONS ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
GET 3 ;
CONTRACT unit ;
IF_NONE { PUSH int 190 ; FAILWITH } {} ;
AMOUNT ;
UNIT ;
TRANSFER_TOKENS ;
CONS ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
GET 3 ;
CAR ;
PUSH nat 1 ;
DUP 4 ;
CAR ;
GET 7 ;
ADD ;
COMPARE ;
GT ;
IF
{ SWAP ;
DUP ;
DUG 2 ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
CDR ;
DUP 7 ;
CAR ;
GET 3 ;
CAR ;
PUSH nat 1 ;
DIG 8 ;
CAR ;
GET 7 ;
ADD ;
SUB ;
ABS ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
SWAP }
{ SWAP ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
PUSH nat 1 ;
ADD ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
SWAP } ;
SWAP ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
PUSH nat 1 ;
ADD ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
DUP ;
DUG 2 ;
CAR ;
GET 5 ;
SENDER ;
MEM ;
IF
{ SWAP ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
DUP ;
SENDER ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 194 ; FAILWITH } {} ;
PUSH nat 1 ;
ADD ;
SOME ;
SWAP ;
UPDATE ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
SWAP }
{ SWAP ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
PUSH (option nat) (Some 1) ;
SENDER ;
UPDATE ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
SWAP } } }
{ DROP ; NIL operation } } } }
{ IF_LEFT
{ IF_LEFT
{ SENDER ;
DUP 3 ;
CAR ;
CAR ;
CAR ;
CAR ;
COMPARE ;
EQ ;
IF
{}
{ PUSH string "Only the contract admin can remove from the whitelist." ;
FAILWITH } ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
UNPAIR ;
SWAP ;
NONE nat ;
DIG 6 ;
UPDATE ;
SWAP ;
PAIR ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
NIL operation }
{ SENDER ;
DUP 3 ;
CAR ;
CAR ;
CAR ;
CAR ;
COMPARE ;
EQ ;
IF
{}
{ PUSH string "Only the contract admin can reveal metadata." ;
FAILWITH } ;
NIL operation ;
DUP 3 ;
CAR ;
CAR ;
CAR ;
CDR ;
CONTRACT %reveal (list (pair nat bytes)) ;
IF_NONE { PUSH int 245 ; FAILWITH } {} ;
PUSH mutez 0 ;
DIG 3 ;
TRANSFER_TOKENS ;
CONS } }
{ IF_LEFT
{ SENDER ;
DUP 3 ;
CAR ;
CAR ;
CAR ;
CAR ;
COMPARE ;
EQ ;
IF
{}
{ PUSH string "Only the contract admin can designate a new admin." ;
FAILWITH } ;
SWAP ;
UNPAIR ;
UNPAIR ;
UNPAIR ;
CDR ;
DIG 4 ;
PAIR ;
PAIR ;
PAIR ;
PAIR }
{ IF_LEFT
{ SENDER ;
DUP 3 ;
CAR ;
CAR ;
CAR ;
CAR ;
COMPARE ;
EQ ;
IF
{}
{ PUSH string "Only the contract admin can set a new flux nft address." ;
FAILWITH } ;
SWAP ;
UNPAIR ;
UNPAIR ;
UNPAIR ;
CAR ;
DIG 4 ;
SWAP ;
PAIR ;
PAIR ;
PAIR ;
PAIR }
{ SENDER ;
DUP 3 ;
CAR ;
CAR ;
CAR ;
CAR ;
COMPARE ;
EQ ;
IF
{}
{ PUSH string "Only the contract admin can set the max mint per address." ;
FAILWITH } ;
SWAP ;
UNPAIR ;
UNPAIR ;
UNPAIR ;
SWAP ;
CAR ;
DIG 4 ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
PAIR } } ;
NIL operation } } }
{ IF_LEFT
{ IF_LEFT
{ IF_LEFT
{ SENDER ;
DUP 3 ;
CAR ;
CAR ;
CAR ;
CAR ;
COMPARE ;
EQ ;
IF
{}
{ PUSH string "Only the contract admin can set the max supply." ;
FAILWITH } ;
SWAP ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
CDR ;
DIG 4 ;
PAIR ;
PAIR ;
SWAP ;
PAIR ;
PAIR }
{ SENDER ;
DUP 3 ;
CAR ;
CAR ;
CAR ;
CAR ;
COMPARE ;
EQ ;
IF
{}
{ PUSH string "Only the contract admin can set the next token id." ;
FAILWITH } ;
SWAP ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
CDR ;
DIG 5 ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
PAIR } }
{ IF_LEFT
{ SENDER ;
DUP 3 ;
CAR ;
CAR ;
CAR ;
CAR ;
COMPARE ;
EQ ;
IF
{}
{ PUSH string "Only the contract admin can set the number minted." ;
FAILWITH } ;
SWAP ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
CAR ;
DIG 5 ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
PAIR }
{ SENDER ;
DUP 3 ;
CAR ;
CAR ;
CAR ;
CAR ;
COMPARE ;
EQ ;
IF
{}
{ PUSH string "Only the contract admin can set placeholder metadata." ;
FAILWITH } ;
DUP ;
ITER { DIG 2 ;
UNPAIR ;
SWAP ;
UNPAIR ;
UNPAIR ;
UNPAIR ;
SWAP ;
DUP 6 ;
CDR ;
SOME ;
DIG 6 ;
CAR ;
UPDATE ;
SWAP ;
PAIR ;
PAIR ;
PAIR ;
SWAP ;
PAIR ;
SWAP } ;
DROP } } }
{ IF_LEFT
{ IF_LEFT
{ SENDER ;
DUP 3 ;
GET 3 ;
CAR ;
CAR ;
COMPARE ;
EQ ;
IF
{}
{ PUSH string "Only the oracle can set random mint index." ;
FAILWITH } ;
SWAP ;
DUP ;
DUG 2 ;
UNPAIR ;
SWAP ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
CAR ;
DIG 6 ;
CAR ;
GET 3 ;
CAR ;
DUP 7 ;
GET 4 ;
EDIV ;
IF_NONE { PUSH int 211 ; FAILWITH } { CDR } ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
SWAP ;
PAIR ;
DUP ;
DUG 2 ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
CDR ;
DIG 6 ;
CAR ;
GET 3 ;
CAR ;
DIG 6 ;
GET 4 ;
EDIV ;
IF_NONE { PUSH int 212 ; FAILWITH } { CDR } ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
PAIR }
{ SENDER ;
DUP 3 ;
CAR ;
CAR ;
CAR ;
CAR ;
COMPARE ;
EQ ;
IF
{}
{ PUSH string "Only the contract admin can set the whitelist max mint per address." ;
FAILWITH } ;
UPDATE 7 } }
{ IF_LEFT
{ SENDER ;
DUP 3 ;
CAR ;
CAR ;
CAR ;
CAR ;
COMPARE ;
EQ ;
IF
{}
{ PUSH string "Only the contract admin can set the max whitelist supply." ;
FAILWITH } ;
UPDATE 9 }
{ IF_LEFT
{ DROP ;
DUP ;
CAR ;
CAR ;
CAR ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF
{}
{ PUSH string "Only the contract admin can toggle saleIsPaused bool." ;
FAILWITH } ;
DUP ;
GET 5 ;
CAR ;
PUSH bool True ;
COMPARE ;
EQ ;
IF
{ UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
CDR ;
PUSH bool False ;
PAIR ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
PAIR }
{ UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
CDR ;
PUSH bool True ;
PAIR ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
PAIR } }
{ DROP ;
DUP ;
CAR ;
CAR ;
CAR ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF
{}
{ PUSH string "Only the contract admin can toggle whitelistSaleIsPaused bool." ;
FAILWITH } ;
DUP ;
GET 10 ;
PUSH bool True ;
COMPARE ;
EQ ;
IF
{ PUSH bool False ; UPDATE 10 }
{ PUSH bool True ; UPDATE 10 } } } } } ;
NIL operation } ;
NIL operation ;
SWAP ;
ITER { CONS } ;
PAIR }