(define-constant DEPLOYER tx-sender)
(define-constant ERR_NOT_ENOUGH_PASSES u300)
(define-constant ERR_PUBLIC_SALE_DISABLED u301)
(define-constant ERR_CONTRACT_INITIALIZED u302)
(define-constant ERR_UNAUTHORIZED u302)
(define-map mint-passes principal uint)
(define-data-var premint-enabled bool true)
(define-data-var sale-enabled bool false)
(define-public (claim)
(mint (list true))
)
(define-public (claim-three)
(mint (list true true true))
)
(define-public (claim-five)
(mint (list true true true true true))
)
(define-public (claim-ten)
(mint (list true true true true true true true true true true))
)
(define-private (mint (orders (list 10 bool)))
(let (
(passes (get-passes tx-sender))
)
(if (var-get premint-enabled)
(begin
(asserts! (>= passes (len orders)) (err ERR_NOT_ENOUGH_PASSES))
(map-set mint-passes tx-sender (- passes (len orders)))
(contract-call? .trubit-domino mint orders)
)
(begin
(asserts! (var-get sale-enabled) (err ERR_PUBLIC_SALE_DISABLED))
(contract-call? .trubit-domino mint orders)
)
)
)
)
(define-public (toggle-sale-state)
(let (
(premint (not (var-get premint-enabled)))
(sale (not (var-get sale-enabled)))
)
(asserts! (is-eq tx-sender DEPLOYER) (err ERR_UNAUTHORIZED))
(var-set premint-enabled premint)
(var-set sale-enabled sale)
(print { premint: premint, sale: sale })
(ok true)
)
)
(define-public (init)
(begin
(asserts! (is-eq tx-sender DEPLOYER) (err ERR_UNAUTHORIZED))
(ok (var-set premint-enabled true))
)
)
(define-read-only (get-passes (caller principal))
(default-to u0 (map-get? mint-passes caller))
)
(contract-call? .trubit-domino set-mint-addr (as-contract tx-sender))
(contract-call? .trubit-domino mint (list true true))
(contract-call? .trubit-domino transfer u1 tx-sender 'SP1XPG9QFX5M95G36SGN9R8YJ4KJ0JB7ZXNH892N6)
(contract-call? .trubit-domino transfer u2 tx-sender 'SP1XPG9QFX5M95G36SGN9R8YJ4KJ0JB7ZXNH892N6)
(map-set mint-passes 'SP36KZRX2ET7W215D568EDTA4A392EWN14FT12TAN u1)
(map-set mint-passes 'SP3JEDN0F8T5GKENRQX2JYXMPJF0YDQ2N0P7ZBMN0 u1)
(map-set mint-passes 'SP3RQVBVZQ9WC6M4NM68QR0W9G8YV8N2P323Y389D u1)
(map-set mint-passes 'SP1DJ41QN24326E481D8DRE5J03V3TRWW75D858SP u1)
(map-set mint-passes 'SP17FSET7PKJVD1VD3J74PM2R6XRQ9TE9ECTWCG7H u1)
(map-set mint-passes 'SP26SB34D9THJ8BMSPT6EJHW9JDGBHWMX74PVDFEN u1)
(map-set mint-passes 'SP3R5TCK97NMBS1V1MARCK0YTDFWG1FKJ94EFQTF4 u1)
(map-set mint-passes 'SP2NV953TABCH5EFM2X655M0BXQ9M79XDNYCVFH49 u1)
(map-set mint-passes 'SP1GJFV97C5KNYZ017E58S0DY2SSXKJV7DWKMJ2BD u1)
(map-set mint-passes 'SP1XTJ67E8YJ06MQXNGDRSPPXE1DXC8K4FF7G5419 u1)
(map-set mint-passes 'SP1K81030XZM9ASBDWS278Z4E4G39BC2VFW3VVGQ9 u1)
(map-set mint-passes 'SP2HVP68NY5BD2RDFX0JNXSYRS8AA6R7S30N08NJZ u1)
(map-set mint-passes 'SP1ZQX86FCXXRVBP2RA8KZZ29VE2F74C8EH1ER1K2 u1)
(map-set mint-passes 'SP3T7SA543GTWEPD3022B66RYN2WZ4SQW64S686AA u1)
(map-set mint-passes 'SPFS69WZA0Z14HGZ3RTGREF1B0BC1RXS81YMK7ET u1)
(map-set mint-passes 'SP1C6WQ9KTV3769S8X8YNAWBXKDG2Y65P5EEDRWR6 u1)
(map-set mint-passes 'SPZ99H1N8WFX7C3K3F23B9GNB9FJN4YAQW574NV5 u1)
(map-set mint-passes 'SP3R8A7MPGZCKHVQTBREYE8WFQZX1TP69C9AF0G5K u1)
(map-set mint-passes 'SP180XPD6ZC3WWTE61GXHVCE34EA7CK2F3K147C8Y u1)
(map-set mint-passes 'SP3ZF6T34TT2CCKBD46Y1C5FW5FKKNQFJW5DY2VX2 u1)
(map-set mint-passes 'SP235VD14JSA9EZJT2SPWAYS70BV5QFGF9JFS754A u1)
(map-set mint-passes 'SP2EFHG2729NAJ0YAMVKXTQV22HJ5ZW5SC9BVWHJ0 u1)
(map-set mint-passes 'SP1KBMRDJCD1T95B4Y04QAE8ZM1NDPFRXD4DJ4B3X u1)
(map-set mint-passes 'SP3P8QGR2V6TA8WC7703DFEEZEVBKJSB8CQMFZR84 u1)
(map-set mint-passes 'SP3M16X85R7ED2RR70ANNB3X0HXPHGSAXBEGGZKK0 u1)
(map-set mint-passes 'SPNQ4E5VDBN8WZ9NFMYT0WRRHEQFJKF27Q99NJH3 u1)
(map-set mint-passes 'SP19WSDJWTH4CW3YG554XS5CAXJJGAN83P8CFZ4K1 u1)
(map-set mint-passes 'SPJ3XAPS4BN9G95SVQPAFSS9N8STS53NF6DYZWT0 u1)
(map-set mint-passes 'SPY1KNBBM90SA08C5Q4EZQ092Q43KWMM2X0Y4ENM u1)
(map-set mint-passes 'SP3JWJQ0107Q40NXXRJQ12P8NCH98TFK3D9YRNGVF u1)
(map-set mint-passes 'SP27P4FECZXC2TXPS24C1CCTNKB0K1JEK3SZK7CB u1)
(map-set mint-passes 'SP16P2AM7FR9185BGC0GW6HGMGGBMAKTWEVSJVDQN u1)
(map-set mint-passes 'SP2P8QYQX5PMKVBXQ9FWK8F96J8DJXXW7NB7AA5DT u1)
(map-set mint-passes 'SP27JJS3774KPR0MMB5FH77VWBD8KD0SVNZ4QNX5X u1)
(map-set mint-passes 'SP352RBHYS1YVSEYGTBSGNDKJFDC68HGR6M9WYV28 u1)
(map-set mint-passes 'SP25YMWRMDTKBQERY22511R2JF26504THQDRGNNMJ u1)
(map-set mint-passes 'SP26A8SPA2N8RA06MPVME8DJ9WHVE6VZ5GKTAJ2A u1)
(map-set mint-passes 'SPPKDYQQ5QP3REJ2G98Y5NAYJYQ2WKVJ2MBBBCBH u1)
(map-set mint-passes 'SP3N56EKWSNN2SQ0WJ8MJGXPFSE9TRGCVSTSFG50J u1)
(map-set mint-passes 'SP2Q9QA7MXSH893611KKWH8AZW67MPW47RYAG9GPX u1)
(map-set mint-passes 'SP195SPGFN1HRZSRJB6YWE5CMGRVJFK475A7F55E1 u1)
(map-set mint-passes 'SP3M6D6M2BS7FNEFV111ZF6WQYATNJZ89Q7MXSPAE u1)
(map-set mint-passes 'SP2R0W8QZ2RJSQ56R5J6B66AVXM6N8PMFY5X1X5XE u1)
(map-set mint-passes 'SP1NYHBF7GNF9CE7P5KB27VZTHK3V8XANTMXNHD2 u1)
(map-set mint-passes 'SP1PS8F8KCW6NAQZBPRXMV9MJYT90CBRMY8K38Y67 u1)
(map-set mint-passes 'SPBTHBWMJ95JM8PF0Q8EP4BH0YAAKTJ29MXWA71F u1)
(map-set mint-passes 'SP2S5GQXWE6MB9XXMSE0D0KR3YYFJCJQ56N7WYTMM u1)
(map-set mint-passes 'SP2K5K6S8BQGMGV9T9WNXV1EQF6N8S8EWJSG0EGV5 u1)
(map-set mint-passes 'SP27THC0ZG9W8YF2G0X511G73R2D7E8EZK0RZB02V u1)
(map-set mint-passes 'SP17YP1HGWK7DP5Q69GRG14W34E078S4D78YM1FA5 u1)
(map-set mint-passes 'SPCRHA45AXN05RYBDYY5WZK5F7J5SH574F0R0VR6 u1)
(map-set mint-passes 'SPVTS7AM6JD5ADC9C292FMBDTZVA86TKPN774QD u1)
(map-set mint-passes 'SP3QC4R6M7M0DAZBXSZCW4FWGDCNDD05FV8Y0AY8C u1)
(map-set mint-passes 'SP8N60NXJXAJC9BW0JXFFN65YFVMQ2NP9D8D89QC u1)
(map-set mint-passes 'SP14MEFA3FSV9Y1JS72PTJAJMCPYSQ539V5WX0J25 u1)
(map-set mint-passes 'SP3VQM46NM7Z41VP3ZR80M1YRZC92QWK6SSV1EEHG u1)
(map-set mint-passes 'SP235K55AAYBERTEV43W219KESGPBFND8CQTNFH4G u1)
(map-set mint-passes 'SP3R4NKXMGW6YXA44X2ESZPKJNV25X4ZN7DPW0RXR u1)
(map-set mint-passes 'SP2GCTK4J5B11TFZAWMF34S1XV999DWB1DBR379VA u1)
(map-set mint-passes 'SP3MMG05H6T48W5NJEEST0RR3FTPGKPM7C19X5M16 u1)
(map-set mint-passes 'SP299P7WE9RFST0FDAZZ6MN5B2H4CWJ6W2H8F25DN u1)
(map-set mint-passes 'SPZ3VQZEDZ8SYX5DN4FRW6N02SM0FXCS6D1HAFX3 u1)
(map-set mint-passes 'SP314E6K9TJK511VW56X8ZDGSPFZ7HHA9HJYJQA6J u1)
(map-set mint-passes 'SP38J10VQRENJWK6NY2CX95D8RKXSYTCDJT8EDYYX u1)
(map-set mint-passes 'SPNNXMY01SNT92EEK9DRRG2QW1FA256MCNBPPSRX u1)
(map-set mint-passes 'SP17NC8T17TBXXXDQMQQ4EC3GS8RC42XC22P3CPAF u1)
(map-set mint-passes 'SP3950ZX51YWKXBHW5SJGYE9CJ0WTY9FW4VYYJC5R u1)
(map-set mint-passes 'SP2SFZX1WJSKT1GA2STDT6E5NWDX44GW4BB8DW4DJ u1)
(map-set mint-passes 'SP284ZQ91D6QBPK5ZZF0WZVN4C5N88JX24Q7X112C u1)
(map-set mint-passes 'SP2V02W9HB14AF8EC6JBFZJZKHTX6TQD4DM5VPFPK u1)
(map-set mint-passes 'SP2069715QFEA9GK8Q2E7QREFABGKRP78C08NTDTK u1)
(map-set mint-passes 'SP12BEEDG31J0AH68DFDJJYZ36D002PKDZCP1DZQE u1)
(map-set mint-passes 'SPX5F21SSNTWTM55F24TM03S095QYQM7JARDA1F u1)
(map-set mint-passes 'SP1N6Y75ZNFWSXH5K29A1SN59MQP0DSATAK1AMRVV u1)
(map-set mint-passes 'SPMJ6PTDSHM17HCDQBV7FYYMM98R1Y2ZQ7GRM06W u1)
(map-set mint-passes 'SPK4Q9XQ6W0Q567JVJH9ME6RXQBGAZ25Y35W4DWV u1)
(map-set mint-passes 'SPR6W7PNM02H4GJV28P5QDT779YY82ZG94FDZ90J u1)
(map-set mint-passes 'SPHJXDEQ89DSTMP45CG3RQCCYCDYMMVEV43CWQPS u1)
(map-set mint-passes 'SPH7P46DMTTFNSHDD33N6G8GFE1MQB2R0QW176B1 u1)
(map-set mint-passes 'SP1A86KRVMMXD3QFXRWHWKNAEW07A6KTDX21SK40F u1)
(map-set mint-passes 'SP3JFG3FSFTS14PD6QV26R2TZCJV50ZB48FS9DCTX u1)
(map-set mint-passes 'SPH5FFZAVTXMTV4115Y89JQR5GEZ9CMDENSK5T7J u1)
(map-set mint-passes 'SP322C73BSZGPEFNMND6XQQ53Y6QA3XEG0CTSY1WW u1)
(map-set mint-passes 'SPCXYQ2AF41TJZ69J3MV8ZEVRNBWHTD93PH2YGEC u1)
(map-set mint-passes 'SP17E4DK10BA1SDVR4BSS6Z440JTE0FKV2120TMVM u1)
(map-set mint-passes 'SP3M5HQJH19J6AKFME7N5BN3NWBXQGBVXKXS5WPRF u1)
(map-set mint-passes 'SP2VG7S0R4Z8PYNYCAQ04HCBX1MH75VT11VXCWQ6G u1)
(map-set mint-passes 'SP1QTDKH3SH4J6F14K0RNZMJE3Y94KKTFS5THSQ6 u1)
(map-set mint-passes 'SP1H45JS07GWQWMT57JE20X17AQCNVYAS7NHW2HVR u1)
(map-set mint-passes 'SP1Q3W9ZK6VEJBJYJTS1W295Z5HQXA1FEHGBF1JGR u1)
(map-set mint-passes 'SP1GK1YMVRYZAFQ5BCMZ8KQDXGGFRZ8V3GF1PX0KH u1)
(map-set mint-passes 'SP2WPTFTP17PGJM8328QWG3SNV9EZ9W1C7EGTD5BQ u1)
(map-set mint-passes 'SPWTFHWKN9VGXQPZ3Z3RMZ0CJ0EVS0VYA5T8J7FT u1)
(map-set mint-passes 'SP3HXJJMJQ06GNAZ8XWDN1QM48JEDC6PP6W3YZPZJ u1)
(map-set mint-passes 'SP1YVF9EWSK6HM0JZR4B3KCM7V3NKVE18VVNFSQV5 u1)
(map-set mint-passes 'SP2DFX28F1S3CB46B5XH9M5JQ7N4SMCE7CQY1TNYS u1)