/// <summary> /// Initializes the EthereumTransactionManager by initializing all collections and adding the proper methods to the events needed. /// </summary> /// <param name="disposableComponentManager"> The active DisposableComponentManager. </param> /// <param name="periodicUpdateManager"> The PeriodicUpdateManager to use when periodically checking for new transactions. </param> /// <param name="updateManager"> The UpdateManager to use when getting the transactions for each asset. </param> /// <param name="userWalletManager"> The active UserWalletManager. </param> /// <param name="apiService"> The active EtherscanApiService. </param> /// <param name="tradableAssetManager"> The active TradableAssetManager. </param> public EthereumTransactionManager( DisposableComponentManager disposableComponentManager, PeriodicUpdateManager periodicUpdateManager, UpdateManager updateManager, TradableAssetManager tradableAssetManager, UserWalletManager userWalletManager, EtherscanApiService apiService) { tradableAssetManager.OnTradableAssetAdded += AddAssetToScrape; OptimizedScrollview.OnOptimizedScrollviewInitialized += optimizedScrollview => { if (optimizedScrollview.scrollviewKey.Equals("asset_scrollview")) { scrollview = optimizedScrollview; scrollview.OnVisibleItemsChanged += OnVisibleAssetsChanged; periodicUpdateManager.AddPeriodicUpdater(this); } }; this.tradableAssetManager = tradableAssetManager; this.userWalletManager = userWalletManager; this.apiService = apiService; disposableComponentManager.AddDisposable(this); updateManager.AddUpdater(this); }
/// <summary> /// Starts the EtherBalanceObserver. /// </summary> /// <param name="periodicUpdateManager"> The active PeriodicUpdateManager. </param> /// <param name="tradableAssetManager"> The active TradableAssetManager. </param> private void StartObserver(PeriodicUpdateManager periodicUpdateManager, TradableAssetManager tradableAssetManager) { etherAsset = tradableAssetManager.EtherAsset; etherAsset.OnAssetBalanceChanged += OnEtherBalanceChanged; periodicUpdateManager.AddPeriodicUpdater(this, true); }
/// <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); }
private static void UpdateDependenciesRecord(Settings.InstalledKit installed) { installed.Meta.RemoveAll(tuple => tuple.Key.Equals(DependenciesKey, StringComparison.OrdinalIgnoreCase)); installed.Meta.Add(new Settings.InstalledKit.MetaTuple { Key = DependenciesKey, Value = SerializeDependenciesRecord(PeriodicUpdateManager.TransitiveDependencyChainFor(installed.Name)) }); }
/// <summary> /// Initializes the TradableAssetManager by adding required methods to events and adding this class to the PeriodicUpdateManager. /// </summary> /// <param name="tokenContractManager"> The active TokenContractManager. </param> /// <param name="periodicUpdateManager"> The PeriodicUpdateManager to use to run this class's periodic updates. </param> /// <param name="disposableComponentManager"> The active DisposableComponentManager. </param> public TradableAssetManager(TokenContractManager tokenContractManager, PeriodicUpdateManager periodicUpdateManager, DisposableComponentManager disposableComponentManager) { disposableComponentManager.AddDisposable(this); tokenContractManager.OnTokenAdded += AddTradableAsset; tokenContractManager.OnTokenRemoved += RemoveTradableAsset; UserWalletManager.OnWalletLoadSuccessful += () => periodicUpdateManager.AddPeriodicUpdater(this); }
/// <summary> /// Initializes the LockPRPSManager with all dependencies. /// </summary> /// <param name="userWalletManager"> The active UserWalletManager. </param> /// <param name="periodicUpdateManager"> The active PeriodicUpdateManager. </param> /// <param name="prpsContract"> The active PRPS smart contract. </param> /// <param name="dubiContract"> The active DUBI smart contract. </param> /// <param name="hodlerContract"> The active Hodler smart contract. </param> /// <param name="tradableAssetManager"> The active TradableAssetManager. </param> public LockPRPSManager( UserWalletManager userWalletManager, PeriodicUpdateManager periodicUpdateManager, PRPS prpsContract, DUBI dubiContract, Hodler hodlerContract, TradableAssetManager tradableAssetManager) { this.prpsContract = prpsContract; this.dubiContract = dubiContract; this.hodlerContract = hodlerContract; this.userWalletManager = userWalletManager; this.periodicUpdateManager = periodicUpdateManager; tradableAssetManager.OnTradableAssetAdded += CheckIfPRPSAdded; tradableAssetManager.OnTradableAssetRemoved += CheckIfPRPSRemoved; }
public TradableAssetPriceManager( CoinMarketCapDataManager coinMarketCapDataManager, DubiExDataManager dubiexDataManager, CurrencyManager currencyManager, TradableAssetManager tradableAssetManager, TradableAssetButtonManager tradableAssetButtonManager, PeriodicUpdateManager periodicUpdateManager) { this.coinMarketCapDataManager = coinMarketCapDataManager; this.dubiexDataManager = dubiexDataManager; this.tradableAssetManager = tradableAssetManager; tradableAssetButtonManager.OnActiveButtonChanged += activeButton => UpdatePrice(activeButton.ButtonInfo); currencyManager.OnCurrencyChanged += ClearPrices; UserWalletManager.OnWalletLoadSuccessful += () => periodicUpdateManager.AddPeriodicUpdater(this); }
public LockedPRPSManager( DisposableComponentManager disposableComponentManager, UserWalletManager userWalletManager, Hodler hodlerContract, PRPS prpsContract, PeriodicUpdateManager periodicUpdateManager, EtherscanApiService apiService, TradableAssetManager tradableAssetManager) { this.userWalletManager = userWalletManager; this.periodicUpdateManager = periodicUpdateManager; this.hodlerContract = hodlerContract; this.prpsContract = prpsContract; this.apiService = apiService; disposableComponentManager.AddDisposable(this); tradableAssetManager.OnTradableAssetAdded += CheckIfPRPSAdded; tradableAssetManager.OnTradableAssetRemoved += CheckIfPRPSRemoved; }
/// <summary> /// Initializes the GasPriceObserver. /// </summary> /// <param name="periodicUpdateManager"> The active PeriodicUpdateManager. </param> public GasPriceObserver(PeriodicUpdateManager periodicUpdateManager) { ChooseWalletMenu.OnAppLoaded += () => periodicUpdateManager.AddPeriodicUpdater(this, true); }
public void Construct(TWallet hardwareWallet, PeriodicUpdateManager periodicUpdateManager) { this.hardwareWallet = hardwareWallet; this.periodicUpdateManager = periodicUpdateManager; }
/// <summary> /// Initializes the EtherBalanceObserver once all tokens have been loaded. /// </summary> /// <param name="tokenContractManager"> The active TokenContractManager. </param> /// <param name="periodicUpdateManager"> The active PeriodicUpdateManager. </param> /// <param name="tradableAssetManager"> The active TradableAssetManager. </param> public EtherBalanceObserver(TokenContractManager tokenContractManager, PeriodicUpdateManager periodicUpdateManager, TradableAssetManager tradableAssetManager) { tokenContractManager.OnTokensLoaded += () => StartObserver(periodicUpdateManager, tradableAssetManager); }