public void Construct(
     EthereumTransactionManager ethereumTransactionManager,
     EthereumNetworkManager.Settings ethereumNetworkSettings,
     EthereumPendingTransactionManager ethereumPendingTransactionManager,
     TokenContractManager tokenContractManager,
     TradableAssetManager tradableAssetManager,
     TradableAssetPriceManager tradableAssetPriceManager,
     TradableAssetNotificationManager notificationManager,
     LockedPRPSManager lockedPrpsManager,
     PRPS prpsContract,
     CurrencyManager currencyManager,
     HopeWalletInfoManager hopeWalletInfoManager,
     UserWalletManager userWalletManager,
     LogoutHandler logoutHandler)
 {
     this.ethereumNetworkSettings           = ethereumNetworkSettings;
     this.ethereumTransactionManager        = ethereumTransactionManager;
     this.ethereumPendingTransactionManager = ethereumPendingTransactionManager;
     this.tokenContractManager      = tokenContractManager;
     this.tradableAssetManager      = tradableAssetManager;
     this.tradableAssetPriceManager = tradableAssetPriceManager;
     this.notificationManager       = notificationManager;
     this.lockedPrpsManager         = lockedPrpsManager;
     this.prpsContract          = prpsContract;
     this.currencyManager       = currencyManager;
     this.hopeWalletInfoManager = hopeWalletInfoManager;
     this.userWalletManager     = userWalletManager;
     this.logoutHandler         = logoutHandler;
 }
Beispiel #2
0
        /// <summary>
        /// Initializes the <see cref="AmountManager"/> by assigning the references to the popup, max toggle, and amount input field.
        /// </summary>
        /// <param name="currencyManager"> The active <see cref="CurrencyManager"/>. </param>
        /// <param name="tradableAssetPriceManager"> The active <see cref="TradableAssetPriceManager"/>. </param>
        /// <param name="maxToggle"> The toggle for switching between maximum sendable amount and the entered amount. </param>
        /// <param name="maxText"> The max text header. </param>
        /// <param name="amountInputField"> The input field used for entering the sendable amount. </param>
        /// <param name="currencyText"> The currency text object. </param>
        /// <param name="oppositeCurrencyAmountText"> The opposite currency amount text object. </param>
        /// <param name="currencyButton"> The currency button. </param>
        /// <param name="tokenSymbol"> The token symbol. </param>
        public AmountManager(
            CurrencyManager currencyManager,
            TradableAssetPriceManager tradableAssetPriceManager,
            Toggle maxToggle,
            GameObject maxText,
            HopeInputField amountInputField,
            TMP_Text currencyText,
            TMP_Text oppositeCurrencyAmountText,
            Button currencyButton,
            string tokenSymbol)
        {
            this.maxToggle                  = maxToggle;
            this.maxText                    = maxText;
            this.amountInputField           = amountInputField;
            this.currencyText               = currencyText;
            this.oppositeCurrencyAmountText = oppositeCurrencyAmountText;
            this.currencyButton             = currencyButton;
            this.currencyManager            = currencyManager;
            this.tradableAssetPriceManager  = tradableAssetPriceManager;
            tradableTokenSymbol             = tokenSymbol;

            currencyText.text = currencyManager.ActiveCurrency.ToString();

            amountInputField.SetPlaceholderText("Amount<style=Symbol> (" + tokenSymbol + ")</style>");
            SetupListeners();
        }
        /// <summary>
        /// Initializes the <see cref="GasManager"/> by assigning all required references.
        /// </summary>
        /// <param name="tradableAssetManager"> The active <see cref="TradableAssetManager"/>. </param>
        /// <param name="tradableAssetPriceManager"> The active <see cref="TradableAssetPriceManager"/>. </param>
        /// <param name="currencyManager"> The active <see cref="CurrencyManager"/>. </param>
        /// <param name="gasPriceObserver"> The active <see cref="GasPriceObserver"/>. </param>
        /// <param name="periodicUpdateManager"> The active <see cref="PeriodicUpdateManager"/>. </param>
        /// <param name="advancedModeToggle"> The toggle for switching between advanced and simple mode. </param>
        /// <param name="slider"> The slider used to control transaction speed. </param>
        /// <param name="gasLimitField"> The input field for the gas limit when in advanced mode. </param>
        /// <param name="gasPriceField"> The input field for the gas price when in advanced mode. </param>
        /// <param name="transactionFeeText"> The text component to use to set the transaction fee. </param>
        public GasManager(
            TradableAssetManager tradableAssetManager,
            TradableAssetPriceManager tradableAssetPriceManager,
            CurrencyManager currencyManager,
            GasPriceObserver gasPriceObserver,
            PeriodicUpdateManager periodicUpdateManager,
            Toggle advancedModeToggle,
            Slider slider,
            HopeInputField gasLimitField,
            HopeInputField gasPriceField,
            TMP_Text transactionFeeText)
        {
            this.tradableAssetManager      = tradableAssetManager;
            this.tradableAssetPriceManager = tradableAssetPriceManager;
            this.currencyManager           = currencyManager;
            this.periodicUpdateManager     = periodicUpdateManager;
            this.advancedModeToggle        = advancedModeToggle;
            this.gasLimitField             = gasLimitField;
            this.gasPriceField             = gasPriceField;
            this.transactionFeeText        = transactionFeeText;

            transactionSpeedSlider = new TransactionSpeedSlider(gasPriceObserver, slider, UpdateGasPriceEstimate);

            OnGasChanged += UpdateTransactionFeeVisuals;

            AddListenersAndObservables();
            EstimateGasLimit();
            transactionSpeedSlider.Start();
        }
    public void Construct(
        CurrencyManager currencyManager,
        UserWalletManager userWalletManager,
        TradableAssetManager tradableAssetManager,
        TradableAssetPriceManager tradableAssetPriceManager,
        EthereumTransactionButtonManager ethereumTransactionButtonManager,
        EtherBalanceObserver etherBalanceObserver,
        GasPriceObserver gasPriceObserver,
        UpdateManager updateManager,
        DynamicDataCache dynamicDataCache,
        PeriodicUpdateManager periodicUpdateManager,
        ContactsManager contactsManager,
        ButtonClickObserver buttonClickObserver,
        RestrictedAddressManager restrictedAddressManager)
    {
        this.ethereumTransactionButtonManager = ethereumTransactionButtonManager;
        this.userWalletManager   = userWalletManager;
        this.dynamicDataCache    = dynamicDataCache;
        this.buttonClickObserver = buttonClickObserver;

        Asset   = new AssetManager(tradableAssetManager, etherBalanceObserver, updateManager, assetSymbol, assetBalance, assetImage);
        Gas     = new GasManager(tradableAssetManager, tradableAssetPriceManager, currencyManager, gasPriceObserver, periodicUpdateManager, advancedModeToggle, transactionSpeedSlider, gasLimitField, gasPriceField, transactionFee);
        Address = new AddressManager(addressField, contactName, contactsManager, restrictedAddressManager);
        Amount  = new AmountManager(currencyManager, tradableAssetPriceManager, maxToggle, maxText, amountField, currencyText, oppositeCurrencyAmountText, currencyButton, assetSymbol.text);

        Gas.SetupDependencies(Amount);
        Amount.SetupDependencies(Gas, Asset);

        simpleModeSelectableFields.Add(addressField.InputFieldBase);
        simpleModeSelectableFields.Add(amountField.InputFieldBase);

        advancedModeSelectableFields.AddRange(simpleModeSelectableFields);
        advancedModeSelectableFields.Add(gasLimitField.InputFieldBase);
        advancedModeSelectableFields.Add(gasPriceField.InputFieldBase);
    }
        public PriceManager(
            CurrencyManager currencyManager,
            TradableAssetPriceManager tradableAssetPriceManager,
            TradableAssetManager tradableAssetManager,
            TMP_Text priceText)
        {
            this.currencyManager           = currencyManager;
            this.tradableAssetPriceManager = tradableAssetPriceManager;
            this.tradableAssetManager      = tradableAssetManager;
            this.priceText = priceText;

            currencyManager.OnCurrencyChanged                += OnCurrencyChanged;
            tradableAssetManager.OnBalancesUpdated           += UpdateAssetValue;
            tradableAssetPriceManager.OnPriceUpdateSucceeded += UpdateAssetValue;
        }
    public void Construct(
        TradableAssetPriceManager tradableAssetPriceManager,
        CurrencyManager currencyManager,
        LockPRPSManager lockPRPSManager,
        LockedPRPSManager lockedPRPSManager,
        GasPriceObserver gasPriceObserver,
        EtherBalanceObserver etherBalanceObserver,
        Hodler hodlerContract,
        UserWalletManager userWalletManager,
        ButtonClickObserver buttonClickObserver)
    {
        this.lockedPRPSManager    = lockedPRPSManager;
        this.etherBalanceObserver = etherBalanceObserver;
        this.userWalletManager    = userWalletManager;
        this.hodlerContract       = hodlerContract;
        this.buttonClickObserver  = buttonClickObserver;
        etherBalanceObserver.SubscribeObservable(this);
        buttonClickObserver.SubscribeObservable(this);

        Gas    = new GasManager(tradableAssetPriceManager, currencyManager, lockPRPSManager, gasPriceObserver, slider, transactionFeeText, this);
        Amount = new AmountManager(lockPRPSManager, maxToggle, amountInputField, prpsBalanceText, dubiBalanceText, dubiRewardText, tooltipItems[2]);
        Time   = new TimeManager(Amount, threeMonthsButton, sixMonthsButton, twelveMonthsButton, dubiRewardText);

        if (lockPRPSManager.PRPSBalance == 0)
        {
            maxToggle.SetInteractable(false);
            maxText.color = UIColors.LightGrey;
        }

        bool showTooltips = SecurePlayerPrefs.GetBool(PlayerPrefConstants.SETTING_SHOW_TOOLTIPS);

        foreach (TooltipItem tooltip in tooltipItems)
        {
            if (showTooltips)
            {
                tooltip.PopupManager = popupManager;
            }
            else if (tooltip.infoIcon)
            {
                tooltip.gameObject.SetActive(false);
            }
            else
            {
                tooltip.enabled = false;
            }
        }
    }
Beispiel #7
0
        /// <summary>
        /// Initializes the GasMAnager by assigning required dependencies.
        /// </summary>
        /// <param name="tradableAssetPriceManager"> The active TradableAssetPriceManager. </param>
        /// <param name="currencyManager"> The active CurrencyManager. </param>
        /// <param name="lockPRPSManager"> The active LockPRPSManager. </param>
        /// <param name="gasPriceObserver"> The active GasPriceObserver. </param>
        /// <param name="slider"> The slider for controlling the gas prices. </param>
        /// <param name="transactionFeeText"> The text used for displaying the gas cost of the transaction. </param>
        /// <param name="lockPRPSPopup"></param>
        public GasManager(
            TradableAssetPriceManager tradableAssetPriceManager,
            CurrencyManager currencyManager,
            LockPRPSManager lockPRPSManager,
            GasPriceObserver gasPriceObserver,
            Slider slider,
            TMP_Text transactionFeeText,
            LockPRPSPopup lockPRPSPopup)
        {
            this.tradableAssetPriceManager = tradableAssetPriceManager;
            this.currencyManager           = currencyManager;
            this.lockPRPSManager           = lockPRPSManager;
            this.transactionFeeText        = transactionFeeText;
            this.lockPRPSPopup             = lockPRPSPopup;

            transactionSpeedSlider = new TransactionSpeedSlider(gasPriceObserver, slider, UpdateGasPriceEstimate);
            transactionSpeedSlider.Start();
        }