Multi-wallet for Bitcoin, Ethereum, Binance Smart Chain and other emerging blockchains. Non-custodial storage, decentralized exchange, and extensive analytics for thousands of tokens and NFTs. Implemented on Swift.
We are primarily looking for on chain transactions that would put a condition on the output in regards to when the provided inspects can be spent by the recipient
[x] Settings Tab
-- add new "Experimental" cell to main Settings page. Should appear as the last item in the top block.
-- the "Experimental" controller should have text (provided below) as well as cells to transition to individual experimental features. For the time being it's just a single item, "Lock Bitcoins".
[x] "Experimental" controller
-- controller text:
Disclaimer: The features below are experimental and should be used with caution. While we have throughly tested these features using our own crypto funds we can not guarantee they work as expected in all possible cases.
[x] "Lock Bitcoins" info controller
-- controller text:
Enables you to send Bitcoins that can not be spent until specified date. The receiver of such transaction should use Unstoppable wallet.
Only Unstoppable wallet can correctly identify such transactions on Bitcoin network as well as enable receiver to spend those Bitcoins after the lock period expires.
If you’re a HODLer, you may use this feature to force yourself into hodling your Bitcoins by sending such transaction to yourself. Being an experimental feature the maximum amount per transaction is limited to 0.5 BTCs.
[x] when "Lock Bitcoins" feature activated the user should have additional options in Send Controller (layout attached below).
[x] the max. amount the user can send in the locked transaction is 0.5 BTC per transaction. No limit on the number of such transactions.
[x] while on Send Controller, if the user has set the Lock period then input form should accept at most 0.5 BTC. If the user has already entered the value higher than 0.5 before setting the Lock then the error (Max. amount: 0.5 BTC) should be shown below the input form.
[x] while on Send Controller, if the user has set the Lock period then the address input form should acceptably P2PKH addresses. In other words, the check should take place upon the activation/deactivation/change of the setting. If the user has already entered the address which isn't a P2PKH address then following error (should be localizable) should be shown
Invalid Address. Time locking works only with P2PKH addresses (starting with 1).
[x] Lock Time menu options:
-- Off
-- 1 hour
-- 1 month
-- 6 months
-- 1 year
[x] Balance Tab
-- Bitcoin cell collapsed: No changes in the collapsed cell state
-- Bitcoin cell expanded: should display extra data: Available, Locked amounts
[x] Transactions Tab
-- show the lock icon next to amount in the corresponding transaction cell
[x] Transaction Info
-- should have an extra entry >> "Locked Until : [unlock_date]"
-- add "info" icon next to the lock date
-- clicking on the info icon should present "Info" controller, with an option to close.
-- (for sender) should have an extra entry >> "Receiver : [address of receiver]"
[x] "Info" controller text
The sender sent these funds with a spending lock that will expire on shown date.
No worries, the received Bitcoins are already yours but until the lock period expires you can not spend them on the Bitcoin network.
[x] Layout designs attached below. For the final version refer to Figma, the ones attached here are not final.
We are primarily looking for on chain transactions that would put a condition on the output in regards to when the provided inspects can be spent by the recipient
Note: it should not affect change output :)
UPDATE:
Integration tasks:
[x] Settings Tab -- add new "Experimental" cell to main Settings page. Should appear as the last item in the top block. -- the "Experimental" controller should have text (provided below) as well as cells to transition to individual experimental features. For the time being it's just a single item, "Lock Bitcoins".
[x] "Experimental" controller -- controller text:
[x] "Lock Bitcoins" info controller -- controller text:
[x] when "Lock Bitcoins" feature activated the user should have additional options in Send Controller (layout attached below).
[x] the max. amount the user can send in the locked transaction is 0.5 BTC per transaction. No limit on the number of such transactions.
[x] while on Send Controller, if the user has set the Lock period then input form should accept at most 0.5 BTC. If the user has already entered the value higher than 0.5 before setting the Lock then the error (Max. amount: 0.5 BTC) should be shown below the input form.
[x] while on Send Controller, if the user has set the Lock period then the address input form should acceptably P2PKH addresses. In other words, the check should take place upon the activation/deactivation/change of the setting. If the user has already entered the address which isn't a P2PKH address then following error (should be localizable) should be shown
[x] Lock Time menu options: -- Off -- 1 hour -- 1 month -- 6 months -- 1 year
[x] Balance Tab -- Bitcoin cell collapsed: No changes in the collapsed cell state -- Bitcoin cell expanded: should display extra data: Available, Locked amounts
[x] Transactions Tab -- show the lock icon next to amount in the corresponding transaction cell
[x] Transaction Info -- should have an extra entry >> "Locked Until : [unlock_date]" -- add "info" icon next to the lock date -- clicking on the info icon should present "Info" controller, with an option to close. -- (for sender) should have an extra entry >> "Receiver : [address of receiver]"
[x] "Info" controller text
[x] Layout designs attached below. For the final version refer to Figma, the ones attached here are not final.
Settings >> Experimental
Locked Transactions
Send Controller