function generateMigrations()
 {
     $result = array();
     foreach ($this->getAccounts() as $account) {
         $instance = Accounts::getInstance($account);
         $result[] = new GeneratedAccountInstanceMigration($instance);
     }
     return $result;
 }
Пример #2
0
<?php

/**
 * Discovered account currencies.
 */
if (!$exchange) {
    throw new JobException("No exchange defined");
}
$factory = new \Core\DiscoveredCurrencyFactory();
$instance = \DiscoveredComponents\Accounts::getInstance($exchange);
$currencies = $instance->fetchSupportedCurrencies($factory, $logger);
$logger->info("Found " . count($currencies) . " currencies: " . implode(", ", $currencies));
$persistent = new \Core\PersistentAccountType($instance, db());
$persistent->storeSupportedCurrencies($currencies, $logger);
Пример #3
0
function get_accounts_wizard_config_basic($exchange)
{
    switch ($exchange) {
        // --- securities ---
        case "btct":
            return array('inputs' => array('api_key' => array('title' => 'Read-Only API key', 'callback' => 'is_valid_btct_apikey')), 'table' => 'accounts_btct');
        case "litecoinglobal":
            return array('inputs' => array('api_key' => array('title' => 'Read-Only API key', 'callback' => 'is_valid_litecoinglobal_apikey')), 'table' => 'accounts_litecoinglobal');
        case "cryptostocks":
            return array('inputs' => array('api_email' => array('title' => 'Account e-mail', 'callback' => 'is_valid_generic_key'), 'api_key_coin' => array('title' => 'get_coin_balances API key', 'callback' => 'is_valid_generic_key'), 'api_key_share' => array('title' => 'get_share_balances API key', 'callback' => 'is_valid_generic_key')), 'table' => 'accounts_cryptostocks');
        case "havelock":
            return array('inputs' => array('api_key' => array('title' => 'API key', 'callback' => 'is_valid_havelock_apikey')), 'table' => 'accounts_havelock');
        case "bitfunder":
            return array('inputs' => array('btc_address' => array('title' => 'BTC Address', 'callback' => array(Currencies::getInstance('btc'), 'isValid'))), 'table' => 'accounts_bitfunder');
        case "796":
            return array('inputs' => array('api_app_id' => array('title' => 'Application ID', 'callback' => 'is_numeric'), 'api_key' => array('title' => 'API Key', 'callback' => 'is_valid_796_apikey'), 'api_secret' => array('title' => 'API Secret', 'callback' => 'is_valid_796_apisecret')), 'table' => 'accounts_796');
        case "litecoininvest":
            return array('inputs' => array('api_key' => array('title' => 'API key', 'callback' => 'is_valid_litecoininvest_apikey')), 'table' => 'accounts_litecoininvest');
        case "btcinve":
            return array('inputs' => array('api_key' => array('title' => 'API key', 'callback' => 'is_valid_litecoininvest_apikey')), 'table' => 'accounts_btcinve');
            // --- securities ---
        // --- securities ---
        case "individual_litecoinglobal":
            return array('inputs' => array('quantity' => array('title' => t('Quantity'), 'callback' => 'is_valid_quantity'), 'security_id' => array('title' => t('Security'), 'dropdown' => 'dropdown_get_litecoinglobal_securities', 'callback' => 'is_valid_id')), 'table' => 'accounts_individual_litecoinglobal');
        case "individual_btct":
            return array('inputs' => array('quantity' => array('title' => t('Quantity'), 'callback' => 'is_valid_quantity'), 'security_id' => array('title' => t('Security'), 'dropdown' => 'dropdown_get_btct_securities', 'callback' => 'is_valid_id')), 'table' => 'accounts_individual_btct');
        case "individual_bitfunder":
            return array('inputs' => array('quantity' => array('title' => t('Quantity'), 'callback' => 'is_valid_quantity'), 'security_id' => array('title' => t('Security'), 'dropdown' => 'dropdown_get_bitfunder_securities', 'callback' => 'is_valid_id')), 'table' => 'accounts_individual_bitfunder');
        case "individual_cryptostocks":
            return array('inputs' => array('quantity' => array('title' => t('Quantity'), 'callback' => 'is_valid_quantity'), 'security_id' => array('title' => t('Security'), 'dropdown' => 'dropdown_get_cryptostocks_securities', 'callback' => 'is_valid_id')), 'table' => 'accounts_individual_cryptostocks');
        case "individual_havelock":
            return array('inputs' => array('quantity' => array('title' => t('Quantity'), 'callback' => 'is_valid_quantity'), 'security_id' => array('title' => t('Security'), 'dropdown' => 'dropdown_get_havelock_securities', 'callback' => 'is_valid_id')), 'table' => 'accounts_individual_havelock');
        case "individual_crypto-trade":
            return array('inputs' => array('quantity' => array('title' => t('Quantity'), 'callback' => 'is_valid_quantity'), 'security_id' => array('title' => t('Security'), 'dropdown' => 'dropdown_get_cryptotrade_securities', 'callback' => 'is_valid_id')), 'table' => 'accounts_individual_cryptotrade');
        case "individual_796":
            return array('inputs' => array('quantity' => array('title' => t('Quantity'), 'callback' => 'is_valid_quantity'), 'security_id' => array('title' => t('Security'), 'dropdown' => 'dropdown_get_796_securities', 'callback' => 'is_valid_id')), 'table' => 'accounts_individual_796');
        case "individual_litecoininvest":
            return array('inputs' => array('quantity' => array('title' => t('Quantity'), 'callback' => 'is_valid_quantity'), 'security_id' => array('title' => t('Security'), 'dropdown' => 'dropdown_get_litecoininvest_securities', 'callback' => 'is_valid_id')), 'table' => 'accounts_individual_litecoininvest');
        case "individual_btcinve":
            return array('inputs' => array('quantity' => array('title' => t('Quantity'), 'callback' => 'is_valid_quantity'), 'security_id' => array('title' => t('Security'), 'dropdown' => 'dropdown_get_btcinve_securities', 'callback' => 'is_valid_id')), 'table' => 'accounts_individual_btcinve');
            // --- other ---
        // --- other ---
        case "generic":
            return array('inputs' => array('api_url' => array('title' => 'URL', 'callback' => 'is_valid_generic_url', 'length' => 255), 'currency' => array('title' => t('Currency'), 'dropdown' => 'dropdown_currency_list', 'callback' => 'is_valid_currency', 'style_prefix' => 'currency_name_'), 'multiplier' => array('title' => t('Multiplier'), 'inline_title' => t('value'), 'callback' => 'is_numeric', 'length' => 6, 'default' => 1, 'number' => true)), 'table' => 'accounts_generic', 'title' => 'Generic API');
        default:
            // --- discovered accounts ---
            if (Accounts::hasKey($exchange)) {
                $account = Accounts::getInstance($exchange);
                $inputs = array();
                foreach ($account->getFields() as $key => $field) {
                    $inputs[$key] = array('title' => $field['title'], 'callback' => array(new AccountFieldCheck($field), 'check'));
                    if (isset($field['type']) && $field['type'] == "confirm") {
                        $inputs[$key]['checkbox'] = true;
                    }
                    if (isset($field['note']) && $field['note']) {
                        $inputs[$key]['note'] = t($field['note'][0], $field['note'][1]);
                    }
                    if (isset($field['interaction']) && $field['interaction']) {
                        $inputs[$key]['interaction'] = $field['interaction'];
                    }
                }
                return array('inputs' => $inputs, 'table' => 'accounts_' . safe_table_name($exchange), 'interaction' => $account instanceof \Account\UserInteractionAccount ? array($account, 'interaction') : false);
            }
            // --- offsets ---
            if (substr($exchange, 0, strlen("offset_")) === "offset_") {
                $cur = substr($exchange, strlen("offset_"));
                return array('inputs' => array('balance' => array('title' => t('Value'), 'inline_title' => t('value'), 'callback' => 'is_numeric', 'length' => 6, 'default' => 1, 'number' => true)), 'fixed_inputs' => array('currency' => $cur), 'table' => 'offsets', 'title' => get_currency_abbr($cur) . " offset");
            }
            throw new Exception("Unknown accounts type '{$exchange}'");
    }
}