private void SavePasswordButtonClicked() { settingsPopupAnimator.ShowLoadingIcon(saveButton.gameObject, loadingIcon, true); var promise = (dynamicDataCache.GetData("pass") as ProtectedString)?.CreateDisposableData(); promise.OnSuccess(disposableData => walletDecryptor.DecryptWallet(walletInfo, (byte[])disposableData.ByteValue.Clone(), seed => walletEncryptor.EncryptWallet(seed, confirmPasswordField.InputFieldBytes, OnNewWalletEncrypted))); }
public void SignTransaction(string walletAddress, string path, byte[] encryptedPasswordBytes, Action <TransactionSignedUnityRequest> onRequestReceived) { var plainTextBytes = passwordEncryptor.Decrypt(encryptedPasswordBytes); walletDecryptor.DecryptWallet(hopeWalletInfoManager.GetWalletInfo(walletAddress), plainTextBytes, seed => { TransactionSignedUnityRequest request = new TransactionSignedUnityRequest( new Wallet(seed, path).GetAccount(walletAddress), ethereumNetworkManager.CurrentNetwork.NetworkUrl); MainThreadExecutor.QueueAction(() => onRequestReceived?.Invoke(request)); ClearData(seed, plainTextBytes); }); }