abstract class Account\MiningPool \ AbstractMMCFEAccount

All implemented interfaces:
AccountType, Miner, AccountTypeInformation
All known direct subclasses:
PoolX,WeMineFTC,WeMineLTC

Many mining pools are using mmcfe mining pool software.

Instances of this account may be represented as an Account, and can be used to obtain current balances for this account. For example, get the current wallet balances for a mining pool or exchange wallet.

In theory this could also be extended to cryptocurrency addresses? (from AccountType)


Method Summary

Name Description
fetchBalances($account, CurrencyFactory $factory, Logger $logger) Get all balances for this account. May block.
fetchSupportedHashrateCurrencies(CurrencyFactory $factory, Logger $logger) Assumes that all supported balance currencies also supports hashrates
getBaseAPI() Get the API URL for the given key.
getFields() All MPOS accounts have the same API keys

Inherited Method Summary

Name Description
checkFields($account) Basic implementation of #checkFields() using regular expressions. (from SimpleAccountType)
fetchBalance($currency, $account, CurrencyFactory $factory, Logger $logger) Helper function to get all balances for the given currency for this account, or null if there is no balance for this currency. May block. (from SimpleAccountType)
fetchConfirmedBalance($currency, $account, CurrencyFactory $factory, Logger $logger) Helper function to get the current, confirmed, available balance of the given currency for this account. May block. (from SimpleAccountType)
throttle(Logger $logger, $default = 3) This allows all exchanges to optionally throttle multiple repeated requests based on a runtime configuration value. The throttle time is selected from either the accounts_NAME_throttle or accounts_throttle config values, or $default seconds; which is the time in seconds to wait between repeated requests. (from SimpleAccountType)
fetchJSON($url, Logger $logger, $throttle = 3) Fetch the JSON from the given GET URL, or throw a {@Link AccountFetchException} if something bad happened. (from AbstractMiner)
jsonDecode($raw) By default, calls Fetch#jsonDecode() (from AbstractMiner)

public function fetchBalances($account, CurrencyFactory $factory, Logger $logger)

Get all balances for this account. May block. (from fetchBalances)

We need to have a reference to a CurrencyFactory because we might need to find out runtime properties of a currency in order to correctly distinguish hash rates, currency codes etc.

Returned results may include: - confirmed: raw confirmed currency balance (e.g. 1.0 = 1 BTC) - unconfirmed: raw unconfirmed balance (e.g. 1.0 = 1 BTC) - hashrate: raw hash rate per second (e.g. 1.0 = 1 H/s) - workers: number of workers (from fetchBalances)

Parameters:
$account - fields that satisfy #getFields()
Returns:
all account balances
Throws:
AccountFetchException - if something bad happened

public function fetchSupportedHashrateCurrencies(CurrencyFactory $factory, Logger $logger)

Assumes that all supported balance currencies also supports hashrates


abstract function getBaseAPI()

Get the API URL for the given key.


public function getFields()

All MPOS accounts have the same API keys

Returns:
an array of fields that need to be provided in order to get balances, e.g. API keys