Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MOB-1898 - Send crypto #480

Merged
merged 31 commits into from
Apr 4, 2024

Conversation

Oleg-Pecheneg
Copy link
Contributor

No description provided.

Oleg-Pecheneg and others added 26 commits March 20, 2024 16:07
* Updated receive button place. Removed current profile switcher.
Added send button

* Updated home screen title view
* Updated receive button place. Removed current profile switcher.
Added send button

* Updated home screen title view

* Added send crypto view.
Show from the home view.
Added input field and scan qr option

* Added section with user's wallets

* Added send crypto view model
Added UI for following selection

* Refactoring

* Updated nav bar customisation

* Disable interactive dismiss when navigate
* Updated receive button place. Removed current profile switcher.
Added send button

* Updated home screen title view

* Added send crypto view.
Show from the home view.
Added input field and scan qr option

* Added section with user's wallets

* Added send crypto view model
Added UI for following selection

* Refactoring

* Updated nav bar customisation

* Disable interactive dismiss when navigate

* Extracted tab selection view from explore module

* Refactoring

* Created UI for token balance

* Make tokens selectable

* Added UI for domains list in assets selection
Adjusted navigation header UI

* Created senc crypto flow actions
Handle actions in view model
Hide empty sections on receiver selection screen

* Pass actions from select receiver and asset type views
* Updated receive button place. Removed current profile switcher.
Added send button

* Updated home screen title view

* Added send crypto view.
Show from the home view.
Added input field and scan qr option

* Added section with user's wallets

* Added send crypto view model
Added UI for following selection

* Refactoring

* Updated nav bar customisation

* Disable interactive dismiss when navigate

* Extracted tab selection view from explore module

* Refactoring

* Created UI for token balance

* Make tokens selectable

* Added UI for domains list in assets selection
Adjusted navigation header UI

* Created senc crypto flow actions
Handle actions in view model
Hide empty sections on receiver selection screen

* Pass actions from select receiver and asset type views

* Refactoring

* Fixed initial onAppear call in token icons view

* Created UDNumberButtonView

* Created number pad view and input interpreter.
Created tests for interpreter

* Improved number pad logic

* Added UI for input and token info

* Added converted value label and toggle

* Added confirmation button

* Refactoring

* Disable animation for primary input view

* Swap buy and send actions on home screen

* Fixed copy on select receiver screen

* Added token icon near primary input value

* Adjusted UI for nav bar and in the IP SE
* Updated receive button place. Removed current profile switcher.
Added send button

* Updated home screen title view

* Added send crypto view.
Show from the home view.
Added input field and scan qr option

* Added section with user's wallets

* Added send crypto view model
Added UI for following selection

* Refactoring

* Updated nav bar customisation

* Disable interactive dismiss when navigate

* Extracted tab selection view from explore module

* Refactoring

* Created UI for token balance

* Make tokens selectable

* Added UI for domains list in assets selection
Adjusted navigation header UI

* Created senc crypto flow actions
Handle actions in view model
Hide empty sections on receiver selection screen

* Pass actions from select receiver and asset type views

* Refactoring

* Fixed initial onAppear call in token icons view

* Created UDNumberButtonView

* Created number pad view and input interpreter.
Created tests for interpreter

* Improved number pad logic

* Added UI for input and token info

* Added converted value label and toggle

* Added confirmation button

* Refactoring

* Disable animation for primary input view

* Swap buy and send actions on home screen

* Fixed copy on select receiver screen

* Added token icon near primary input value

* Adjusted UI for nav bar and in the IP SE

* Added search by domain profiles

* Show direct wallet address result

* Fixed first responder reset issue
* Updated receive button place. Removed current profile switcher.
Added send button

* Updated home screen title view

* Added send crypto view.
Show from the home view.
Added input field and scan qr option

* Added section with user's wallets

* Added send crypto view model
Added UI for following selection

* Refactoring

* Updated nav bar customisation

* Disable interactive dismiss when navigate

* Extracted tab selection view from explore module

* Refactoring

* Created UI for token balance

* Make tokens selectable

* Added UI for domains list in assets selection
Adjusted navigation header UI

* Created senc crypto flow actions
Handle actions in view model
Hide empty sections on receiver selection screen

* Pass actions from select receiver and asset type views

* Refactoring

* Fixed initial onAppear call in token icons view

* Created UDNumberButtonView

* Created number pad view and input interpreter.
Created tests for interpreter

* Improved number pad logic

* Added UI for input and token info

* Added converted value label and toggle

* Added confirmation button

* Refactoring

* Disable animation for primary input view

* Swap buy and send actions on home screen

* Fixed copy on select receiver screen

* Added token icon near primary input value

* Adjusted UI for nav bar and in the IP SE

* Added search by domain profiles

* Show direct wallet address result

* Fixed first responder reset issue

* Implemented UI for token's sending value info

* Implemented UI for connector between sender and receiver

* Created curve shape for info section

* Implemented UI for send info

* Added confirm button
Adjusted UI for IP SE

* Updated icons on info view

* Localize content

* Use data from selected token

* Created structure for asset receiver.
Pass structure from select receiver screen.

* Pass data to SelectTokenAssetAmountToSendView

* Pass data to ConfirmSendTokenView

* Show receiver info on confirmation screen

* Show sender information

* Calculate and show formatted amount  to send

* Added convertation and formatting on select amount and confirm screens
* Moved camera preview logic to separate view

* Created QRWalletAddressScannerView

* Customise scanner hint

* Added UI and functions to control torch is on.
Added passing of camera capabilities

* Control torch enabled state

* Handle wallet address recognised

* Added more space

* Updated home view actions UI

* Updated crypto input copy
* Moved camera preview logic to separate view

* Created QRWalletAddressScannerView

* Customise scanner hint

* Added UI and functions to control torch is on.
Added passing of camera capabilities

* Control torch enabled state

* Handle wallet address recognised

* Added more space

* Updated home view actions UI

* Updated crypto input copy

* Added search field when select domains

* Home domains section data refactoring

* Refactoring

* Use UI  for domains from home screen.
Filter for UD domains only

* Adjusted UI

* Added onButtonTap handling to nav more button
* Created confirm transfer view and navigation path to it

* Refactoring

* Implemented UI of confirm transfer screen

* Implemented UI to confirm domain transfer

* Localize transfer confirmation

* Payment refactoring
Handling transfer action

* Created UI of success screen

* Localize success screen

* Created transaction status tracker

* Finalise transfer functionality

* Filter domains by available to transfer

* Cleaning
* Created confirm transfer view and navigation path to it

* Refactoring

* Implemented UI of confirm transfer screen

* Implemented UI to confirm domain transfer

* Localize transfer confirmation

* Payment refactoring
Handling transfer action

* Created UI of success screen

* Localize success screen

* Created transaction status tracker

* Finalise transfer functionality

* Filter domains by available to transfer

* Cleaning

* Show max crypto info pull up

* Implemented UI of insufficient funds state on input view

* Disable confirm button if insufficient funds

* Implemented UI of insufficient funds state on confirm view

* Implement UI for different wallet states

* Added UI for transaction speed selection

* Updated mock copies
* Updated confirm send transaction pull up

* Fixed wallet icons tint color on receiver selection screen

* Fixed copy for max token pull up

* Fixed icon for external wallet in select receiver screen
* Updated confirm send transaction pull up

* Fixed wallet icons tint color on receiver selection screen

* Fixed copy for max token pull up

* Added activity view to tab

* Created wallet transactions service and API to get transactions

* Removed test code

* Refactoring

* Updated transactions response structure.

* Moved cache transactions logic to separate service.
Created tests for transactions service

* Refactoring.
Added wallet txs service to app context.
Created functions to create mock txs related objects

* Updated tx timestamp property

* Created structure for WalletTransactionDisplayInfo

* Load txs in view model

* Setup home activity stack

* Created simple ui for transactions

* Fixed icon for external wallet in select receiver screen

* Open Tx details on tap
Updated UI for nft Txs.
Added PTR

* Pass force refresh flag to request
* initted

* refactoring

* refact

* Update CryptoSenderProtocol.swift

* added hash property into description

* rm StoredTx

* create TX

also extracting JRPC methods

* refactor protocol

* extracting sendTx from WC2

* extracted fetchGasLimit()

* added working demo with Sepolia

* factor in amount and chain env

* fixed amount computation

* helper init

* check support of native tokens

* take use of default gas price

* added TxSpeed, top-level CryptoSender

* computeGasFeeFrom() finalyzed

* refactoring

* refact

* refactor

* support ext wallets

* transferring chain to ext wallet

* ext wallet fix

* fetching range of gas prices

* Update navigation title

* Will use domain name for wallet on receiver selection screen if available

* new enum SupportedToken

* default body nil

* removed double-checking

* removed repeated code

* refactored computeGasPrice()

* computed gas fee in token units (Double)

* Fixed preview target

* Implemented use max crypto to send calculations.
Updated show pull up logic

---------

Co-authored-by: rommex <roman@unstoppabledomains.com>
* initted

* refactoring

* refact

* Update CryptoSenderProtocol.swift

* added hash property into description

* rm StoredTx

* create TX

also extracting JRPC methods

* refactor protocol

* extracting sendTx from WC2

* extracted fetchGasLimit()

* added working demo with Sepolia

* factor in amount and chain env

* fixed amount computation

* helper init

* check support of native tokens

* take use of default gas price

* added TxSpeed, top-level CryptoSender

* computeGasFeeFrom() finalyzed

* refactoring

* refact

* refactor

* support ext wallets

* transferring chain to ext wallet

* ext wallet fix

* fetching range of gas prices

* Update navigation title

* Will use domain name for wallet on receiver selection screen if available

* new enum SupportedToken

* default body nil

* removed double-checking

* removed repeated code

* refactored computeGasPrice()

* computed gas fee in token units (Double)

* use speed-based gas price

* Fixed preview target

* Implemented use max crypto to send calculations.
Updated show pull up logic

* Filter tokens by can send

* Refactoring

* Created bridge functions to send crypto in view model

* Added ui entity for transaction speed

* Fetch gas fee and display on the UI.

* Updated gas fee price formatting

* Updated token formatting and saved value

* Refactoring

* Restore limited scope of requested porfolio data

* Remove speed estimation in sec from UI

* Run refresh gas timer

* Submit send crypto

* introduced EVMTokenAmount, extra helper method fetchGasPrices()

* fix: Eth Tx is build with WEIs only

* refactoring

* Update gas fee and prices calculations

* renaming (#452)

* Fix merging issue

* Gas fee and gas prices refactoring

* Fixed gas prices preserved and refactoring

* Handle send all tokens

* Check for user's fund is enough to cover gas before sending.

* Force refresh wallet update

* Add biometric verification to confirm send transaction.

* Updated using max button title

---------

Co-authored-by: rommex <roman@unstoppabledomains.com>
* initted

* refactoring

* refact

* Update CryptoSenderProtocol.swift

* added hash property into description

* rm StoredTx

* create TX

also extracting JRPC methods

* refactor protocol

* extracting sendTx from WC2

* extracted fetchGasLimit()

* added working demo with Sepolia

* factor in amount and chain env

* fixed amount computation

* helper init

* check support of native tokens

* take use of default gas price

* added TxSpeed, top-level CryptoSender

* computeGasFeeFrom() finalyzed

* refactoring

* refact

* refactor

* support ext wallets

* transferring chain to ext wallet

* ext wallet fix

* fetching range of gas prices

* Update navigation title

* Will use domain name for wallet on receiver selection screen if available

* new enum SupportedToken

* default body nil

* removed double-checking

* removed repeated code

* refactored computeGasPrice()

* computed gas fee in token units (Double)

* use speed-based gas price

* Fixed preview target

* Implemented use max crypto to send calculations.
Updated show pull up logic

* Filter tokens by can send

* Refactoring

* Created bridge functions to send crypto in view model

* Added ui entity for transaction speed

* Fetch gas fee and display on the UI.

* Updated gas fee price formatting

* Updated token formatting and saved value

* Refactoring

* Restore limited scope of requested porfolio data

* Remove speed estimation in sec from UI

* Run refresh gas timer

* Submit send crypto

* introduced EVMTokenAmount, extra helper method fetchGasPrices()

* fix: Eth Tx is build with WEIs only

* refactoring

* Update gas fee and prices calculations

* renaming (#452)

* Fix merging issue

* Gas fee and gas prices refactoring

* Fixed gas prices preserved and refactoring

* Handle send all tokens

* Check for user's fund is enough to cover gas before sending.

* Force refresh wallet update

* Add biometric verification to confirm send transaction.

* Updated using max button title

* Added crypto views lifecycle analytic events

* Fixed typo

* Added analytic events for scan qr code and select receiver views

* Added analytics to asset selection and token input views

* Added analytics to transfer domain view

* Added analytics to send crypto view

* Added analytics to success screen

* Log send asset error

* Refactoring

---------

Co-authored-by: rommex <roman@unstoppabledomains.com>
* initted

* refactoring

* refact

* Update CryptoSenderProtocol.swift

* added hash property into description

* rm StoredTx

* create TX

also extracting JRPC methods

* refactor protocol

* extracting sendTx from WC2

* extracted fetchGasLimit()

* added working demo with Sepolia

* factor in amount and chain env

* fixed amount computation

* helper init

* check support of native tokens

* take use of default gas price

* added TxSpeed, top-level CryptoSender

* computeGasFeeFrom() finalyzed

* refactoring

* refact

* refactor

* support ext wallets

* transferring chain to ext wallet

* ext wallet fix

* fetching range of gas prices

* Update navigation title

* Will use domain name for wallet on receiver selection screen if available

* new enum SupportedToken

* default body nil

* removed double-checking

* removed repeated code

* refactored computeGasPrice()

* computed gas fee in token units (Double)

* use speed-based gas price

* Fixed preview target

* Implemented use max crypto to send calculations.
Updated show pull up logic

* Filter tokens by can send

* Refactoring

* Created bridge functions to send crypto in view model

* Added ui entity for transaction speed

* Fetch gas fee and display on the UI.

* Updated gas fee price formatting

* Updated token formatting and saved value

* Refactoring

* Restore limited scope of requested porfolio data

* Remove speed estimation in sec from UI

* Run refresh gas timer

* Submit send crypto

* introduced EVMTokenAmount, extra helper method fetchGasPrices()

* fix: Eth Tx is build with WEIs only

* refactoring

* Update gas fee and prices calculations

* renaming (#452)

* Fix merging issue

* Gas fee and gas prices refactoring

* Fixed gas prices preserved and refactoring

* Handle send all tokens

* Check for user's fund is enough to cover gas before sending.

* Force refresh wallet update

* Add biometric verification to confirm send transaction.

* Updated using max button title

* Added crypto views lifecycle analytic events

* Fixed typo

* Added analytic events for scan qr code and select receiver views

* Added analytics to asset selection and token input views

* Added analytics to transfer domain view

* Added analytics to send crypto view

* Added analytics to success screen

* Log send asset error

* Refactoring

* Refactoring

* Updated and localized tx list items

* Adjust UI for long values in tx list

* Fixed targets

* Extend tx id

* Updated tx icons ui

* bump version to 5.3.0(1)

* Added tx type indicator
Updated titles of tx

* Prepared mock data

* Adjusted UI for nft indicator

* Fixed tests target

* Fixed loading more txs logic

* Updated txs grouping rules

* Updated UI of txs list

---------

Co-authored-by: rommex <roman@unstoppabledomains.com>
* initted

* refactoring

* refact

* Update CryptoSenderProtocol.swift

* added hash property into description

* rm StoredTx

* create TX

also extracting JRPC methods

* refactor protocol

* extracting sendTx from WC2

* extracted fetchGasLimit()

* added working demo with Sepolia

* factor in amount and chain env

* fixed amount computation

* helper init

* check support of native tokens

* take use of default gas price

* added TxSpeed, top-level CryptoSender

* computeGasFeeFrom() finalyzed

* refactoring

* refact

* refactor

* support ext wallets

* transferring chain to ext wallet

* ext wallet fix

* fetching range of gas prices

* Update navigation title

* Will use domain name for wallet on receiver selection screen if available

* new enum SupportedToken

* default body nil

* removed double-checking

* removed repeated code

* refactored computeGasPrice()

* computed gas fee in token units (Double)

* use speed-based gas price

* Fixed preview target

* Implemented use max crypto to send calculations.
Updated show pull up logic

* Filter tokens by can send

* Refactoring

* Created bridge functions to send crypto in view model

* Added ui entity for transaction speed

* Fetch gas fee and display on the UI.

* Updated gas fee price formatting

* Updated token formatting and saved value

* Refactoring

* Restore limited scope of requested porfolio data

* Remove speed estimation in sec from UI

* Run refresh gas timer

* Submit send crypto

* introduced EVMTokenAmount, extra helper method fetchGasPrices()

* fix: Eth Tx is build with WEIs only

* refactoring

* Update gas fee and prices calculations

* renaming (#452)

* Fix merging issue

* Gas fee and gas prices refactoring

* Fixed gas prices preserved and refactoring

* Handle send all tokens

* Check for user's fund is enough to cover gas before sending.

* Force refresh wallet update

* Add biometric verification to confirm send transaction.

* Updated using max button title

* Added crypto views lifecycle analytic events

* Fixed typo

* Added analytic events for scan qr code and select receiver views

* Added analytics to asset selection and token input views

* Added analytics to transfer domain view

* Added analytics to send crypto view

* Added analytics to success screen

* Log send asset error

* Refactoring

* Refactoring

* Updated and localized tx list items

* Adjust UI for long values in tx list

* Fixed targets

* Extend tx id

* Updated tx icons ui

* bump version to 5.3.0(1)

* added fetchInfuraGasPrices()

* refactoring

* rm auth key

---------

Co-authored-by: Oleg <oleg@unstoppabledomains.com>
…ypto

# Conflicts:
#	unstoppable-ios-app/domains-manager-ios.xcodeproj/project.pbxproj
#	unstoppable-ios-app/domains-manager-ios/Modules/Home/HomeWalletView/Subviews/HomeWalletTokenRowView.swift
* Removed estimated time when send crypto

* Implemented empty states for domains and tokens

* Show total estimate when sending crypto

* Cleaning
…ypto

# Conflicts:
#	unstoppable-ios-app/domains-manager-ios/Services/AnalyticsService/AnalyticsServiceEnvironment.swift
@Oleg-Pecheneg Oleg-Pecheneg requested a review from rommex April 4, 2024 08:00
@Oleg-Pecheneg Oleg-Pecheneg merged commit 4a9d72d into development Apr 4, 2024
@Oleg-Pecheneg Oleg-Pecheneg deleted the dev/feat/send_crypto/MOB-1898-send-crypto branch April 4, 2024 11:12
rommex added a commit that referenced this pull request Apr 4, 2024
* development:
  Use own property in StripeService to check for Apple pay is supported
  Updated MEW icon
  MOB-1898 - Send crypto (#480)
  MOB-1398 - Enable MEW wallet (#481)
  MOB-1863 - Buy domain with other methods (#474)
  Handle unknown UD products (#475)
  MOB-1922 - Fixed issue when porfolio values were missing sometimes (#476)
  MOB-1901 - Fixed issue when user couldn't start community chat sometimes (#477)
  MOB-1938 - Adjusted pull up height calculations (#478)
  MOB-1930 - Show profile recommendations if only ens domain owned (#479)
  MOB-1935 - Basic Base chain support (#472)
  MOB-1937 - Removed refer-a-friend feature (#469)
  MOB-1940 - Updated search domain to purchase title (#470)
  Added urm_source query parameter to buy crypto url (#456)
  Cache additional balances of domain (#458)
  Fixed issue when minting in progress screen wasn't opened  (#448)
  MOB-1897 - Updated base endpoint (#447)
  MOB-1891 - Added privacy manifest (#445)
  MOB-1892 - Load SOL and BTC balances on public profile (#444)
  MOB-1842 - Updated search domains to buy API (#446)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants