def __init__(self, crypto=None, supply_data=None, genesis_date=None, blocktime_adjustments=True):
if crypto:<EOL><INDENT>try:<EOL><INDENT>cd = crypto_data[crypto.lower()]<EOL><DEDENT>except KeyError:<EOL><INDENT>raise CurrencyNotSupported("<STR_LIT>" % crypto)<EOL><DEDENT>try:<EOL><INDENT>self.genesis_date = cd['<STR_LIT>']<EOL>self.supply_data = cd['<STR_LIT>']<EOL><DEDENT>except KeyError:<EOL><INDENT>raise NotImplementedError("<STR_LIT>" % crypto.upper())<EOL><DEDENT><DEDENT>else:<EOL><INDENT>self.supply_data = supply_data<EOL>self.genesis_date = genesis_date<EOL><DEDENT>self.minutes_per_block = self.supply_data['<STR_LIT>']<EOL>self.method = self.supply_data['<STR_LIT>']<EOL>self.blocktime_adjustments = blocktime_adjustments<EOL>if blocktime_adjustments is True:<EOL><INDENT>self.blocktime_adjustments = adjustments.get(crypto)<EOL><DEDENT>
Can be initilaized by either passing in a crypto symbol, or by passing in
supply_data and genesis_date together. If blocktime_adjustments is True,
the blocktime adjustments will be taken from the samples bundled with moneywagon.
You can also pass in your own samples (using `get_block_adjustments`)