/// <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); }
/// <summary> /// Initializes the TransactionSpeedSlider. /// </summary> /// <param name="gasPriceObserver"> The current GasPriceObserver. </param> /// <param name="slider"> The slider which is used to represent transaction speed. </param> /// <param name="onGasPriceChanged"> Action called once the gas price is changed. </param> public TransactionSpeedSlider( GasPriceObserver gasPriceObserver, Slider slider, Action <GasPrice> onGasPriceChanged) { this.gasPriceObserver = gasPriceObserver; this.slider = slider; this.onGasPriceChanged = onGasPriceChanged; }
public void Construct( EthereumNetworkManager.Settings networkSettings, Hodler hodlerContract, UserWalletManager userWalletManager, GasPriceObserver gasPriceObserver, EtherBalanceObserver etherBalanceObserver) { this.networkSettings = networkSettings; this.hodlerContract = hodlerContract; this.userWalletManager = userWalletManager; this.gasPriceObserver = gasPriceObserver; this.etherBalanceObserver = etherBalanceObserver; }
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; } } }
/// <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(); }