Btc address types (#1263)
* inital migration changes
* feat: rest of changes
* minor fix [skip ci]
* fix: P2wshAddress & wallet address index
* fix: address review comments
* fix: address type restore
* feat: add testnet
* Fix review comments
Remove bitcoin_base from cw_core
* Fix address not matching selected type on start
* remove un-necessary parameter [skip ci]
* Remove bitcoin specific code from main lib
Fix possible runtime exception from list wrong access
* Minor fix
* fix: fixes for Testnet
* fix: bitcoin receive option dependency breaks monerocom
* Fix issues when building Monero.com
* feat: Transaction Builder changes
* fix: discover addresses, testnet restoring, duplicate unspent coins, and taproot address vs schnorr sig tweak
* fix: remove print
* feat: improve error when failed broadcast response
* feat: create fish shell env script
* fix: unmodifiable maps
* fix: build
* fix: build
* fix: computed observable side effect bug
* feat: add nix script for android build_all
* fix: wrong keypairs used for signing
* fix: wrong addresses when using fromScriptPubKey scripts
* fix(actual commit): testnet tx expanded + wrong addresses when using fromScriptPubKey scripts (update bitcoin_base deps)
* fix: self-send [skip ci]
* fix: p2wsh
* fix: testnet fees
* New versions
* Update macos build number
Minor UI fix
* fix: use new bitcoin_base ref, fix tx list wrong hex value & refactor hidden vs hd use
- if always use sideHd for isHidden, it is easier to simplify the functions instead of passing both which can be error prone
- (ps: now this could probably be changed, for example from isHidden to isChange since with address list we now see "hidden" addresses)
* Fix if condition to handle litecoin case
* fix: self-send, change address was always making direction incoming
* refactor: improve estimation function, add more inputs if balance missing
* fix: new bitcoin_base update, fixes script issues
* Update evm chain wallet service arguments
* Fix translation [skip ci]
* Fix translation [skip ci]
* Update strings_fr.arb [skip ci]
* fix: async isChange function not being awaited, refactor to reduce looping into a single place
* fix: _address vs address, missing p2sh
* fix: minor mistake in storing p2sh page type [skip ci]
* refactor: use already matched addresses property
* feat: improved perfomance for fetching transaction histories
* feat: continue perfomance change, improve address discovery only to last address by type with history
* fix: make sure transaction list is sorted by date
* refactor: isTestnet only for bitcoin
* fix: walletInfo type null case
* fix: deprecated p2pk
* refactor: make condition more readable
* refactor: remove unnecessary Str variant
* refactor: make condition more readable
* fix: infinite loop possible
* Revert removing isTestnet from other wallets [skip ci]
* refactor: rename addresses when matched by receive type
* Make the beta build [skip ci]
Remove app_env.fish
---------
Co-authored-by: OmarHatem <omarh.ismail1@gmail.com>
2024-02-23 16:13:30 +00:00
|
|
|
import 'package:bitcoin_base/bitcoin_base.dart';
|
2020-07-06 20:09:03 +00:00
|
|
|
import 'package:cake_wallet/generated/i18n.dart';
|
|
|
|
import 'package:cake_wallet/core/validator.dart';
|
CW-555-Add-Solana-Wallet (#1272)
* chore: Create cw_solana package and clean up files
* feat: Add Solana Wallet - Create, Restore form seed, restore from Key, Restore from QR, Send, Receive, transaction history, spl tokens
* fix: Make transactions file specific to solana only for solana transactions
* chore: Revert inject app details script
* fix: Fix issue with node and switch current node to main beta instead of testnet
* fix: Fix merge conflicts and adjust migration version
* fix: Fetch spl token error
Signed-off-by: Blazebrain <davidadegoke16@gmail.com>
* fix: Diplay and activate spl tokens bug
* fix: Review and fixes
* fix: reverted formatting for cryptocurrency class
* fix: Review comments, split sending flow into signing and sending separately, fix issues
* fix: Revert throwing unimplenented error
* chore: Fix comment
* chore: Fix comment
* fix: Errors in flow
* Update provider_types.dart [skip ci]
* fix: Issues with solana wallet
* Update solana_wallet.dart [skip ci]
* fix: Review comments
* fix: Date time config
* fix: Revert bash script for app details
* fix: Error with balance, displaying fees, fixing sent or received identifier bug, displaying token symbol with token transaction item in transactions list
* fix: Issues with address validation when sending spl tokens and walletconnect initial setup
* fix: Issues with sending, fetching transactions history, almost wrapping up walletconnect
* fix: Adjust imports that would affect monerocom building successfully
* fix: Refine transaction direction and continue work on walletconnect
* feat: Display SPL token transfers in the transaction history and finally settle the transaction direction
* fix: Delay in transactions history dispaly, show native token transactions first, then process spl token transactions
* feat: Switch node and revert solana chain id to previous id
* fix: Remove print statement
* fix: Remove await for transactions, fetch all transaction histories instantly and adjust solana send success message
* chore: Code refactoring and streamlined wallet type check for solana send success message
* fix: Make timeout error for node silent and add spl token images
---------
Signed-off-by: Blazebrain <davidadegoke16@gmail.com>
Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
2024-02-23 13:39:19 +00:00
|
|
|
import 'package:cake_wallet/solana/solana.dart';
|
2021-12-24 12:37:24 +00:00
|
|
|
import 'package:cw_core/crypto_currency.dart';
|
2023-08-04 17:01:49 +00:00
|
|
|
import 'package:cw_core/erc20_token.dart';
|
2020-07-06 20:09:03 +00:00
|
|
|
|
|
|
|
class AddressValidator extends TextValidator {
|
2022-10-12 17:09:57 +00:00
|
|
|
AddressValidator({required CryptoCurrency type})
|
2020-07-06 20:09:03 +00:00
|
|
|
: super(
|
|
|
|
errorMessage: S.current.error_text_address,
|
Btc address types (#1263)
* inital migration changes
* feat: rest of changes
* minor fix [skip ci]
* fix: P2wshAddress & wallet address index
* fix: address review comments
* fix: address type restore
* feat: add testnet
* Fix review comments
Remove bitcoin_base from cw_core
* Fix address not matching selected type on start
* remove un-necessary parameter [skip ci]
* Remove bitcoin specific code from main lib
Fix possible runtime exception from list wrong access
* Minor fix
* fix: fixes for Testnet
* fix: bitcoin receive option dependency breaks monerocom
* Fix issues when building Monero.com
* feat: Transaction Builder changes
* fix: discover addresses, testnet restoring, duplicate unspent coins, and taproot address vs schnorr sig tweak
* fix: remove print
* feat: improve error when failed broadcast response
* feat: create fish shell env script
* fix: unmodifiable maps
* fix: build
* fix: build
* fix: computed observable side effect bug
* feat: add nix script for android build_all
* fix: wrong keypairs used for signing
* fix: wrong addresses when using fromScriptPubKey scripts
* fix(actual commit): testnet tx expanded + wrong addresses when using fromScriptPubKey scripts (update bitcoin_base deps)
* fix: self-send [skip ci]
* fix: p2wsh
* fix: testnet fees
* New versions
* Update macos build number
Minor UI fix
* fix: use new bitcoin_base ref, fix tx list wrong hex value & refactor hidden vs hd use
- if always use sideHd for isHidden, it is easier to simplify the functions instead of passing both which can be error prone
- (ps: now this could probably be changed, for example from isHidden to isChange since with address list we now see "hidden" addresses)
* Fix if condition to handle litecoin case
* fix: self-send, change address was always making direction incoming
* refactor: improve estimation function, add more inputs if balance missing
* fix: new bitcoin_base update, fixes script issues
* Update evm chain wallet service arguments
* Fix translation [skip ci]
* Fix translation [skip ci]
* Update strings_fr.arb [skip ci]
* fix: async isChange function not being awaited, refactor to reduce looping into a single place
* fix: _address vs address, missing p2sh
* fix: minor mistake in storing p2sh page type [skip ci]
* refactor: use already matched addresses property
* feat: improved perfomance for fetching transaction histories
* feat: continue perfomance change, improve address discovery only to last address by type with history
* fix: make sure transaction list is sorted by date
* refactor: isTestnet only for bitcoin
* fix: walletInfo type null case
* fix: deprecated p2pk
* refactor: make condition more readable
* refactor: remove unnecessary Str variant
* refactor: make condition more readable
* fix: infinite loop possible
* Revert removing isTestnet from other wallets [skip ci]
* refactor: rename addresses when matched by receive type
* Make the beta build [skip ci]
Remove app_env.fish
---------
Co-authored-by: OmarHatem <omarh.ismail1@gmail.com>
2024-02-23 16:13:30 +00:00
|
|
|
useAdditionalValidation: type == CryptoCurrency.btc
|
|
|
|
? (String txt) => validateAddress(address: txt, network: BitcoinNetwork.mainnet)
|
|
|
|
: null,
|
2020-07-06 20:09:03 +00:00
|
|
|
pattern: getPattern(type),
|
|
|
|
length: getLength(type));
|
|
|
|
|
|
|
|
static String getPattern(CryptoCurrency type) {
|
2023-08-04 17:01:49 +00:00
|
|
|
if (type is Erc20Token) {
|
|
|
|
return '0x[0-9a-zA-Z]';
|
|
|
|
}
|
2020-07-06 20:09:03 +00:00
|
|
|
switch (type) {
|
|
|
|
case CryptoCurrency.xmr:
|
Cw 126 check validation for new currencies (#501)
* update address validation
xmr, ape, avaxc, eth, usdc, hbar, sc, sol, usdcsoul, usdttrc20, btt, bttsc, doge,firo, xvg, zen, tzec, zzec
* fix formating
2022-09-07 12:53:33 +00:00
|
|
|
return '^4[0-9a-zA-Z]{94}\$|^8[0-9a-zA-Z]{94}\$|^[0-9a-zA-Z]{106}\$';
|
2020-07-06 20:09:03 +00:00
|
|
|
case CryptoCurrency.ada:
|
2021-02-23 18:38:36 +00:00
|
|
|
return '^[0-9a-zA-Z]{59}\$|^[0-9a-zA-Z]{92}\$|^[0-9a-zA-Z]{104}\$'
|
|
|
|
'|^[0-9a-zA-Z]{105}\$|^addr1[0-9a-zA-Z]{98}\$';
|
2020-07-06 20:09:03 +00:00
|
|
|
case CryptoCurrency.btc:
|
Btc address types (#1263)
* inital migration changes
* feat: rest of changes
* minor fix [skip ci]
* fix: P2wshAddress & wallet address index
* fix: address review comments
* fix: address type restore
* feat: add testnet
* Fix review comments
Remove bitcoin_base from cw_core
* Fix address not matching selected type on start
* remove un-necessary parameter [skip ci]
* Remove bitcoin specific code from main lib
Fix possible runtime exception from list wrong access
* Minor fix
* fix: fixes for Testnet
* fix: bitcoin receive option dependency breaks monerocom
* Fix issues when building Monero.com
* feat: Transaction Builder changes
* fix: discover addresses, testnet restoring, duplicate unspent coins, and taproot address vs schnorr sig tweak
* fix: remove print
* feat: improve error when failed broadcast response
* feat: create fish shell env script
* fix: unmodifiable maps
* fix: build
* fix: build
* fix: computed observable side effect bug
* feat: add nix script for android build_all
* fix: wrong keypairs used for signing
* fix: wrong addresses when using fromScriptPubKey scripts
* fix(actual commit): testnet tx expanded + wrong addresses when using fromScriptPubKey scripts (update bitcoin_base deps)
* fix: self-send [skip ci]
* fix: p2wsh
* fix: testnet fees
* New versions
* Update macos build number
Minor UI fix
* fix: use new bitcoin_base ref, fix tx list wrong hex value & refactor hidden vs hd use
- if always use sideHd for isHidden, it is easier to simplify the functions instead of passing both which can be error prone
- (ps: now this could probably be changed, for example from isHidden to isChange since with address list we now see "hidden" addresses)
* Fix if condition to handle litecoin case
* fix: self-send, change address was always making direction incoming
* refactor: improve estimation function, add more inputs if balance missing
* fix: new bitcoin_base update, fixes script issues
* Update evm chain wallet service arguments
* Fix translation [skip ci]
* Fix translation [skip ci]
* Update strings_fr.arb [skip ci]
* fix: async isChange function not being awaited, refactor to reduce looping into a single place
* fix: _address vs address, missing p2sh
* fix: minor mistake in storing p2sh page type [skip ci]
* refactor: use already matched addresses property
* feat: improved perfomance for fetching transaction histories
* feat: continue perfomance change, improve address discovery only to last address by type with history
* fix: make sure transaction list is sorted by date
* refactor: isTestnet only for bitcoin
* fix: walletInfo type null case
* fix: deprecated p2pk
* refactor: make condition more readable
* refactor: remove unnecessary Str variant
* refactor: make condition more readable
* fix: infinite loop possible
* Revert removing isTestnet from other wallets [skip ci]
* refactor: rename addresses when matched by receive type
* Make the beta build [skip ci]
Remove app_env.fish
---------
Co-authored-by: OmarHatem <omarh.ismail1@gmail.com>
2024-02-23 16:13:30 +00:00
|
|
|
return '^${P2pkhAddress.regex.pattern}\$|^${P2shAddress.regex.pattern}\$|^${P2wpkhAddress.regex.pattern}\$|${P2trAddress.regex.pattern}\$|^${P2wshAddress.regex.pattern}\$';
|
2020-07-06 20:09:03 +00:00
|
|
|
case CryptoCurrency.nano:
|
|
|
|
return '[0-9a-zA-Z_]';
|
2023-10-05 01:09:07 +00:00
|
|
|
case CryptoCurrency.banano:
|
|
|
|
return '[0-9a-zA-Z_]';
|
Cw 126 check validation for new currencies (#501)
* update address validation
xmr, ape, avaxc, eth, usdc, hbar, sc, sol, usdcsoul, usdttrc20, btt, bttsc, doge,firo, xvg, zen, tzec, zzec
* fix formating
2022-09-07 12:53:33 +00:00
|
|
|
case CryptoCurrency.usdc:
|
2022-10-20 17:23:36 +00:00
|
|
|
case CryptoCurrency.usdcpoly:
|
2023-12-13 14:03:07 +00:00
|
|
|
case CryptoCurrency.usdtPoly:
|
|
|
|
case CryptoCurrency.usdcEPoly:
|
2022-10-20 17:23:36 +00:00
|
|
|
case CryptoCurrency.ape:
|
|
|
|
case CryptoCurrency.avaxc:
|
|
|
|
case CryptoCurrency.eth:
|
|
|
|
case CryptoCurrency.mana:
|
|
|
|
case CryptoCurrency.matic:
|
|
|
|
case CryptoCurrency.maticpoly:
|
|
|
|
case CryptoCurrency.mkr:
|
|
|
|
case CryptoCurrency.oxt:
|
|
|
|
case CryptoCurrency.paxg:
|
|
|
|
case CryptoCurrency.uni:
|
2023-07-13 14:31:45 +00:00
|
|
|
case CryptoCurrency.aave:
|
|
|
|
case CryptoCurrency.bat:
|
|
|
|
case CryptoCurrency.comp:
|
|
|
|
case CryptoCurrency.cro:
|
|
|
|
case CryptoCurrency.ens:
|
|
|
|
case CryptoCurrency.ftm:
|
|
|
|
case CryptoCurrency.frax:
|
|
|
|
case CryptoCurrency.gusd:
|
|
|
|
case CryptoCurrency.gtc:
|
|
|
|
case CryptoCurrency.grt:
|
|
|
|
case CryptoCurrency.ldo:
|
|
|
|
case CryptoCurrency.nexo:
|
|
|
|
case CryptoCurrency.pepe:
|
|
|
|
case CryptoCurrency.storj:
|
|
|
|
case CryptoCurrency.tusd:
|
|
|
|
case CryptoCurrency.wbtc:
|
|
|
|
case CryptoCurrency.weth:
|
|
|
|
case CryptoCurrency.zrx:
|
|
|
|
case CryptoCurrency.dydx:
|
|
|
|
case CryptoCurrency.steth:
|
2023-08-04 17:01:49 +00:00
|
|
|
case CryptoCurrency.shib:
|
Cw 126 check validation for new currencies (#501)
* update address validation
xmr, ape, avaxc, eth, usdc, hbar, sc, sol, usdcsoul, usdttrc20, btt, bttsc, doge,firo, xvg, zen, tzec, zzec
* fix formating
2022-09-07 12:53:33 +00:00
|
|
|
return '0x[0-9a-zA-Z]';
|
2020-07-06 20:09:03 +00:00
|
|
|
case CryptoCurrency.xrp:
|
2021-01-13 17:26:02 +00:00
|
|
|
return '^[0-9a-zA-Z]{34}\$|^X[0-9a-zA-Z]{46}\$';
|
2022-03-30 15:57:04 +00:00
|
|
|
case CryptoCurrency.xhv:
|
2022-06-01 11:12:09 +00:00
|
|
|
return '^hvx|hvi|hvs[0-9a-zA-Z]';
|
2022-03-30 15:57:04 +00:00
|
|
|
case CryptoCurrency.xag:
|
|
|
|
case CryptoCurrency.xau:
|
|
|
|
case CryptoCurrency.xaud:
|
|
|
|
case CryptoCurrency.xbtc:
|
|
|
|
case CryptoCurrency.xcad:
|
|
|
|
case CryptoCurrency.xchf:
|
|
|
|
case CryptoCurrency.xcny:
|
|
|
|
case CryptoCurrency.xeur:
|
|
|
|
case CryptoCurrency.xgbp:
|
|
|
|
case CryptoCurrency.xjpy:
|
|
|
|
case CryptoCurrency.xnok:
|
|
|
|
case CryptoCurrency.xnzd:
|
|
|
|
case CryptoCurrency.xusd:
|
2022-10-20 17:23:36 +00:00
|
|
|
case CryptoCurrency.usdt:
|
|
|
|
case CryptoCurrency.usdterc20:
|
|
|
|
case CryptoCurrency.xlm:
|
|
|
|
case CryptoCurrency.trx:
|
|
|
|
case CryptoCurrency.dai:
|
|
|
|
case CryptoCurrency.dash:
|
|
|
|
case CryptoCurrency.eos:
|
Btc address types (#1263)
* inital migration changes
* feat: rest of changes
* minor fix [skip ci]
* fix: P2wshAddress & wallet address index
* fix: address review comments
* fix: address type restore
* feat: add testnet
* Fix review comments
Remove bitcoin_base from cw_core
* Fix address not matching selected type on start
* remove un-necessary parameter [skip ci]
* Remove bitcoin specific code from main lib
Fix possible runtime exception from list wrong access
* Minor fix
* fix: fixes for Testnet
* fix: bitcoin receive option dependency breaks monerocom
* Fix issues when building Monero.com
* feat: Transaction Builder changes
* fix: discover addresses, testnet restoring, duplicate unspent coins, and taproot address vs schnorr sig tweak
* fix: remove print
* feat: improve error when failed broadcast response
* feat: create fish shell env script
* fix: unmodifiable maps
* fix: build
* fix: build
* fix: computed observable side effect bug
* feat: add nix script for android build_all
* fix: wrong keypairs used for signing
* fix: wrong addresses when using fromScriptPubKey scripts
* fix(actual commit): testnet tx expanded + wrong addresses when using fromScriptPubKey scripts (update bitcoin_base deps)
* fix: self-send [skip ci]
* fix: p2wsh
* fix: testnet fees
* New versions
* Update macos build number
Minor UI fix
* fix: use new bitcoin_base ref, fix tx list wrong hex value & refactor hidden vs hd use
- if always use sideHd for isHidden, it is easier to simplify the functions instead of passing both which can be error prone
- (ps: now this could probably be changed, for example from isHidden to isChange since with address list we now see "hidden" addresses)
* Fix if condition to handle litecoin case
* fix: self-send, change address was always making direction incoming
* refactor: improve estimation function, add more inputs if balance missing
* fix: new bitcoin_base update, fixes script issues
* Update evm chain wallet service arguments
* Fix translation [skip ci]
* Fix translation [skip ci]
* Update strings_fr.arb [skip ci]
* fix: async isChange function not being awaited, refactor to reduce looping into a single place
* fix: _address vs address, missing p2sh
* fix: minor mistake in storing p2sh page type [skip ci]
* refactor: use already matched addresses property
* feat: improved perfomance for fetching transaction histories
* feat: continue perfomance change, improve address discovery only to last address by type with history
* fix: make sure transaction list is sorted by date
* refactor: isTestnet only for bitcoin
* fix: walletInfo type null case
* fix: deprecated p2pk
* refactor: make condition more readable
* refactor: remove unnecessary Str variant
* refactor: make condition more readable
* fix: infinite loop possible
* Revert removing isTestnet from other wallets [skip ci]
* refactor: rename addresses when matched by receive type
* Make the beta build [skip ci]
Remove app_env.fish
---------
Co-authored-by: OmarHatem <omarh.ismail1@gmail.com>
2024-02-23 16:13:30 +00:00
|
|
|
return '[0-9a-zA-Z]';
|
2022-10-20 17:23:36 +00:00
|
|
|
case CryptoCurrency.bch:
|
2023-12-22 21:31:06 +00:00
|
|
|
return '^(?!bitcoincash:)[0-9a-zA-Z]*\$|^(?!bitcoincash:)q|p[0-9a-zA-Z]{41}\$|^(?!bitcoincash:)q|p[0-9a-zA-Z]{42}\$|^bitcoincash:q|p[0-9a-zA-Z]{41}\$|^bitcoincash:q|p[0-9a-zA-Z]{42}\$';
|
2022-10-20 17:23:36 +00:00
|
|
|
case CryptoCurrency.bnb:
|
2022-03-30 15:57:04 +00:00
|
|
|
return '[0-9a-zA-Z]';
|
2023-05-24 13:48:06 +00:00
|
|
|
case CryptoCurrency.ltc:
|
|
|
|
return '^(?!(ltc|LTC)1)[0-9a-zA-Z]*\$|(^LTC1[A-Z0-9]*\$)|(^ltc1[a-z0-9]*\$)';
|
2023-05-15 12:39:00 +00:00
|
|
|
case CryptoCurrency.hbar:
|
Cw 126 check validation for new currencies (#501)
* update address validation
xmr, ape, avaxc, eth, usdc, hbar, sc, sol, usdcsoul, usdttrc20, btt, bttsc, doge,firo, xvg, zen, tzec, zzec
* fix formating
2022-09-07 12:53:33 +00:00
|
|
|
return '[0-9a-zA-Z.]';
|
|
|
|
case CryptoCurrency.zaddr:
|
2022-09-14 19:46:14 +00:00
|
|
|
return '^zs[0-9a-zA-Z]{75}';
|
Cw 126 check validation for new currencies (#501)
* update address validation
xmr, ape, avaxc, eth, usdc, hbar, sc, sol, usdcsoul, usdttrc20, btt, bttsc, doge,firo, xvg, zen, tzec, zzec
* fix formating
2022-09-07 12:53:33 +00:00
|
|
|
case CryptoCurrency.zec:
|
|
|
|
return '^t1[0-9a-zA-Z]{33}\$|^t3[0-9a-zA-Z]{33}\$';
|
2022-10-20 17:23:36 +00:00
|
|
|
case CryptoCurrency.dcr:
|
|
|
|
return 'D[ksecS]([0-9a-zA-Z])+';
|
|
|
|
case CryptoCurrency.rvn:
|
|
|
|
return '[Rr]([1-9a-km-zA-HJ-NP-Z]){33}';
|
|
|
|
case CryptoCurrency.near:
|
|
|
|
return '[0-9a-f]{64}';
|
|
|
|
case CryptoCurrency.rune:
|
|
|
|
return 'thor1[0-9a-z]{38}';
|
|
|
|
case CryptoCurrency.scrt:
|
|
|
|
return 'secret1[0-9a-z]{38}';
|
|
|
|
case CryptoCurrency.stx:
|
|
|
|
return 'S[MP][0-9a-zA-Z]+';
|
|
|
|
case CryptoCurrency.kmd:
|
|
|
|
return 'R[0-9a-zA-Z]{33}';
|
|
|
|
case CryptoCurrency.pivx:
|
|
|
|
return 'D([1-9a-km-zA-HJ-NP-Z]){33}';
|
2023-04-20 18:55:44 +00:00
|
|
|
case CryptoCurrency.btcln:
|
|
|
|
return '^(lnbc|LNBC)([0-9]{1,}[a-zA-Z0-9]+)';
|
2020-07-06 20:09:03 +00:00
|
|
|
default:
|
|
|
|
return '[0-9a-zA-Z]';
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2022-10-12 17:09:57 +00:00
|
|
|
static List<int>? getLength(CryptoCurrency type) {
|
2023-08-04 17:01:49 +00:00
|
|
|
if (type is Erc20Token) {
|
|
|
|
return [42];
|
|
|
|
}
|
CW-555-Add-Solana-Wallet (#1272)
* chore: Create cw_solana package and clean up files
* feat: Add Solana Wallet - Create, Restore form seed, restore from Key, Restore from QR, Send, Receive, transaction history, spl tokens
* fix: Make transactions file specific to solana only for solana transactions
* chore: Revert inject app details script
* fix: Fix issue with node and switch current node to main beta instead of testnet
* fix: Fix merge conflicts and adjust migration version
* fix: Fetch spl token error
Signed-off-by: Blazebrain <davidadegoke16@gmail.com>
* fix: Diplay and activate spl tokens bug
* fix: Review and fixes
* fix: reverted formatting for cryptocurrency class
* fix: Review comments, split sending flow into signing and sending separately, fix issues
* fix: Revert throwing unimplenented error
* chore: Fix comment
* chore: Fix comment
* fix: Errors in flow
* Update provider_types.dart [skip ci]
* fix: Issues with solana wallet
* Update solana_wallet.dart [skip ci]
* fix: Review comments
* fix: Date time config
* fix: Revert bash script for app details
* fix: Error with balance, displaying fees, fixing sent or received identifier bug, displaying token symbol with token transaction item in transactions list
* fix: Issues with address validation when sending spl tokens and walletconnect initial setup
* fix: Issues with sending, fetching transactions history, almost wrapping up walletconnect
* fix: Adjust imports that would affect monerocom building successfully
* fix: Refine transaction direction and continue work on walletconnect
* feat: Display SPL token transfers in the transaction history and finally settle the transaction direction
* fix: Delay in transactions history dispaly, show native token transactions first, then process spl token transactions
* feat: Switch node and revert solana chain id to previous id
* fix: Remove print statement
* fix: Remove await for transactions, fetch all transaction histories instantly and adjust solana send success message
* chore: Code refactoring and streamlined wallet type check for solana send success message
* fix: Make timeout error for node silent and add spl token images
---------
Signed-off-by: Blazebrain <davidadegoke16@gmail.com>
Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
2024-02-23 13:39:19 +00:00
|
|
|
|
|
|
|
if (solana != null) {
|
|
|
|
final length = solana!.getValidationLength(type);
|
|
|
|
if (length != null) return length;
|
|
|
|
}
|
|
|
|
|
2020-07-06 20:09:03 +00:00
|
|
|
switch (type) {
|
|
|
|
case CryptoCurrency.xmr:
|
Cw 126 check validation for new currencies (#501)
* update address validation
xmr, ape, avaxc, eth, usdc, hbar, sc, sol, usdcsoul, usdttrc20, btt, bttsc, doge,firo, xvg, zen, tzec, zzec
* fix formating
2022-09-07 12:53:33 +00:00
|
|
|
return null;
|
2020-07-06 20:09:03 +00:00
|
|
|
case CryptoCurrency.ada:
|
2021-02-23 18:38:36 +00:00
|
|
|
return null;
|
2020-07-06 20:09:03 +00:00
|
|
|
case CryptoCurrency.btc:
|
2021-03-26 12:45:46 +00:00
|
|
|
return null;
|
2020-07-06 20:09:03 +00:00
|
|
|
case CryptoCurrency.dash:
|
|
|
|
return [34];
|
|
|
|
case CryptoCurrency.eos:
|
|
|
|
return [42];
|
|
|
|
case CryptoCurrency.eth:
|
2023-07-13 14:31:45 +00:00
|
|
|
case CryptoCurrency.usdcpoly:
|
2023-12-13 14:03:07 +00:00
|
|
|
case CryptoCurrency.usdtPoly:
|
|
|
|
case CryptoCurrency.usdcEPoly:
|
2023-07-13 14:31:45 +00:00
|
|
|
case CryptoCurrency.mana:
|
|
|
|
case CryptoCurrency.matic:
|
|
|
|
case CryptoCurrency.maticpoly:
|
|
|
|
case CryptoCurrency.mkr:
|
|
|
|
case CryptoCurrency.oxt:
|
|
|
|
case CryptoCurrency.paxg:
|
|
|
|
case CryptoCurrency.uni:
|
|
|
|
case CryptoCurrency.dai:
|
|
|
|
case CryptoCurrency.ape:
|
|
|
|
case CryptoCurrency.usdc:
|
|
|
|
case CryptoCurrency.usdterc20:
|
|
|
|
case CryptoCurrency.aave:
|
|
|
|
case CryptoCurrency.bat:
|
|
|
|
case CryptoCurrency.comp:
|
|
|
|
case CryptoCurrency.cro:
|
|
|
|
case CryptoCurrency.ens:
|
|
|
|
case CryptoCurrency.ftm:
|
|
|
|
case CryptoCurrency.frax:
|
|
|
|
case CryptoCurrency.gusd:
|
|
|
|
case CryptoCurrency.gtc:
|
|
|
|
case CryptoCurrency.grt:
|
|
|
|
case CryptoCurrency.ldo:
|
|
|
|
case CryptoCurrency.nexo:
|
|
|
|
case CryptoCurrency.pepe:
|
|
|
|
case CryptoCurrency.storj:
|
|
|
|
case CryptoCurrency.tusd:
|
|
|
|
case CryptoCurrency.wbtc:
|
|
|
|
case CryptoCurrency.weth:
|
|
|
|
case CryptoCurrency.zrx:
|
|
|
|
case CryptoCurrency.dydx:
|
|
|
|
case CryptoCurrency.steth:
|
2023-08-04 17:01:49 +00:00
|
|
|
case CryptoCurrency.shib:
|
|
|
|
case CryptoCurrency.avaxc:
|
2023-10-12 22:50:16 +00:00
|
|
|
return [42];
|
2023-08-04 17:01:49 +00:00
|
|
|
case CryptoCurrency.bch:
|
2023-10-12 22:50:16 +00:00
|
|
|
return [42, 43, 44, 54, 55];
|
2023-08-04 17:01:49 +00:00
|
|
|
case CryptoCurrency.bnb:
|
2020-07-06 20:09:03 +00:00
|
|
|
return [42];
|
|
|
|
case CryptoCurrency.ltc:
|
2023-05-24 13:48:06 +00:00
|
|
|
return [34, 43, 63];
|
2020-07-06 20:09:03 +00:00
|
|
|
case CryptoCurrency.nano:
|
|
|
|
return [64, 65];
|
2023-10-05 01:09:07 +00:00
|
|
|
case CryptoCurrency.banano:
|
|
|
|
return [64, 65];
|
Cw 126 check validation for new currencies (#501)
* update address validation
xmr, ape, avaxc, eth, usdc, hbar, sc, sol, usdcsoul, usdttrc20, btt, bttsc, doge,firo, xvg, zen, tzec, zzec
* fix formating
2022-09-07 12:53:33 +00:00
|
|
|
case CryptoCurrency.sc:
|
|
|
|
return [76];
|
|
|
|
case CryptoCurrency.sol:
|
CW-555-Add-Solana-Wallet (#1272)
* chore: Create cw_solana package and clean up files
* feat: Add Solana Wallet - Create, Restore form seed, restore from Key, Restore from QR, Send, Receive, transaction history, spl tokens
* fix: Make transactions file specific to solana only for solana transactions
* chore: Revert inject app details script
* fix: Fix issue with node and switch current node to main beta instead of testnet
* fix: Fix merge conflicts and adjust migration version
* fix: Fetch spl token error
Signed-off-by: Blazebrain <davidadegoke16@gmail.com>
* fix: Diplay and activate spl tokens bug
* fix: Review and fixes
* fix: reverted formatting for cryptocurrency class
* fix: Review comments, split sending flow into signing and sending separately, fix issues
* fix: Revert throwing unimplenented error
* chore: Fix comment
* chore: Fix comment
* fix: Errors in flow
* Update provider_types.dart [skip ci]
* fix: Issues with solana wallet
* Update solana_wallet.dart [skip ci]
* fix: Review comments
* fix: Date time config
* fix: Revert bash script for app details
* fix: Error with balance, displaying fees, fixing sent or received identifier bug, displaying token symbol with token transaction item in transactions list
* fix: Issues with address validation when sending spl tokens and walletconnect initial setup
* fix: Issues with sending, fetching transactions history, almost wrapping up walletconnect
* fix: Adjust imports that would affect monerocom building successfully
* fix: Refine transaction direction and continue work on walletconnect
* feat: Display SPL token transfers in the transaction history and finally settle the transaction direction
* fix: Delay in transactions history dispaly, show native token transactions first, then process spl token transactions
* feat: Switch node and revert solana chain id to previous id
* fix: Remove print statement
* fix: Remove await for transactions, fetch all transaction histories instantly and adjust solana send success message
* chore: Code refactoring and streamlined wallet type check for solana send success message
* fix: Make timeout error for node silent and add spl token images
---------
Signed-off-by: Blazebrain <davidadegoke16@gmail.com>
Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
2024-02-23 13:39:19 +00:00
|
|
|
case CryptoCurrency.usdtSol:
|
|
|
|
case CryptoCurrency.usdcsol:
|
Cw 126 check validation for new currencies (#501)
* update address validation
xmr, ape, avaxc, eth, usdc, hbar, sc, sol, usdcsoul, usdttrc20, btt, bttsc, doge,firo, xvg, zen, tzec, zzec
* fix formating
2022-09-07 12:53:33 +00:00
|
|
|
return [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44];
|
2020-07-06 20:09:03 +00:00
|
|
|
case CryptoCurrency.trx:
|
|
|
|
return [34];
|
|
|
|
case CryptoCurrency.usdt:
|
2022-02-08 08:57:02 +00:00
|
|
|
return [34];
|
Cw 126 check validation for new currencies (#501)
* update address validation
xmr, ape, avaxc, eth, usdc, hbar, sc, sol, usdcsoul, usdttrc20, btt, bttsc, doge,firo, xvg, zen, tzec, zzec
* fix formating
2022-09-07 12:53:33 +00:00
|
|
|
case CryptoCurrency.usdttrc20:
|
|
|
|
return [34];
|
2020-07-06 20:09:03 +00:00
|
|
|
case CryptoCurrency.xlm:
|
|
|
|
return [56];
|
|
|
|
case CryptoCurrency.xrp:
|
2021-01-13 17:26:02 +00:00
|
|
|
return null;
|
2022-03-30 15:57:04 +00:00
|
|
|
case CryptoCurrency.xhv:
|
|
|
|
case CryptoCurrency.xag:
|
|
|
|
case CryptoCurrency.xau:
|
|
|
|
case CryptoCurrency.xaud:
|
|
|
|
case CryptoCurrency.xbtc:
|
|
|
|
case CryptoCurrency.xcad:
|
|
|
|
case CryptoCurrency.xchf:
|
|
|
|
case CryptoCurrency.xcny:
|
|
|
|
case CryptoCurrency.xeur:
|
|
|
|
case CryptoCurrency.xgbp:
|
|
|
|
case CryptoCurrency.xjpy:
|
|
|
|
case CryptoCurrency.xnok:
|
|
|
|
case CryptoCurrency.xnzd:
|
|
|
|
case CryptoCurrency.xusd:
|
|
|
|
return [98, 99, 106];
|
Cw 126 check validation for new currencies (#501)
* update address validation
xmr, ape, avaxc, eth, usdc, hbar, sc, sol, usdcsoul, usdttrc20, btt, bttsc, doge,firo, xvg, zen, tzec, zzec
* fix formating
2022-09-07 12:53:33 +00:00
|
|
|
case CryptoCurrency.btt:
|
2022-11-30 19:18:12 +00:00
|
|
|
case CryptoCurrency.bttc:
|
Cw 126 check validation for new currencies (#501)
* update address validation
xmr, ape, avaxc, eth, usdc, hbar, sc, sol, usdcsoul, usdttrc20, btt, bttsc, doge,firo, xvg, zen, tzec, zzec
* fix formating
2022-09-07 12:53:33 +00:00
|
|
|
case CryptoCurrency.doge:
|
|
|
|
case CryptoCurrency.firo:
|
|
|
|
return [34];
|
|
|
|
case CryptoCurrency.hbar:
|
|
|
|
return [4, 5, 6, 7, 8, 9, 10, 11];
|
2023-05-15 12:39:00 +00:00
|
|
|
case CryptoCurrency.xvg:
|
Cw 126 check validation for new currencies (#501)
* update address validation
xmr, ape, avaxc, eth, usdc, hbar, sc, sol, usdcsoul, usdttrc20, btt, bttsc, doge,firo, xvg, zen, tzec, zzec
* fix formating
2022-09-07 12:53:33 +00:00
|
|
|
return [34];
|
2023-05-15 12:39:00 +00:00
|
|
|
case CryptoCurrency.zen:
|
Cw 126 check validation for new currencies (#501)
* update address validation
xmr, ape, avaxc, eth, usdc, hbar, sc, sol, usdcsoul, usdttrc20, btt, bttsc, doge,firo, xvg, zen, tzec, zzec
* fix formating
2022-09-07 12:53:33 +00:00
|
|
|
return [35];
|
|
|
|
case CryptoCurrency.zaddr:
|
|
|
|
return null;
|
|
|
|
case CryptoCurrency.zec:
|
|
|
|
return null;
|
2022-10-20 17:23:36 +00:00
|
|
|
case CryptoCurrency.kmd:
|
|
|
|
case CryptoCurrency.pivx:
|
|
|
|
case CryptoCurrency.rvn:
|
|
|
|
return [34];
|
|
|
|
case CryptoCurrency.dcr:
|
|
|
|
return [35];
|
|
|
|
case CryptoCurrency.stx:
|
|
|
|
return [40, 41, 42];
|
|
|
|
case CryptoCurrency.rune:
|
|
|
|
return [43];
|
|
|
|
case CryptoCurrency.scrt:
|
|
|
|
return [45];
|
|
|
|
case CryptoCurrency.near:
|
|
|
|
return [64];
|
2023-04-20 18:55:44 +00:00
|
|
|
case CryptoCurrency.btcln:
|
2024-02-23 17:09:24 +00:00
|
|
|
case CryptoCurrency.kaspa:
|
2020-07-06 20:09:03 +00:00
|
|
|
default:
|
2024-02-23 17:09:24 +00:00
|
|
|
return null;
|
2020-07-06 20:09:03 +00:00
|
|
|
}
|
|
|
|
}
|
2023-01-24 18:24:46 +00:00
|
|
|
|
|
|
|
static String? getAddressFromStringPattern(CryptoCurrency type) {
|
|
|
|
switch (type) {
|
|
|
|
case CryptoCurrency.xmr:
|
|
|
|
return '([^0-9a-zA-Z]|^)4[0-9a-zA-Z]{94}([^0-9a-zA-Z]|\$)'
|
|
|
|
'|([^0-9a-zA-Z]|^)8[0-9a-zA-Z]{94}([^0-9a-zA-Z]|\$)'
|
|
|
|
'|([^0-9a-zA-Z]|^)[0-9a-zA-Z]{106}([^0-9a-zA-Z]|\$)';
|
|
|
|
case CryptoCurrency.btc:
|
2024-03-01 19:38:48 +00:00
|
|
|
return '([^0-9a-zA-Z]|^)([1mn][a-km-zA-HJ-NP-Z1-9]{25,34})([^0-9a-zA-Z]|\$)' //P2pkhAddress type
|
|
|
|
'|([^0-9a-zA-Z]|^)([23][a-km-zA-HJ-NP-Z1-9]{25,34})([^0-9a-zA-Z]|\$)' //P2shAddress type
|
|
|
|
'|([^0-9a-zA-Z]|^)((bc|tb)1q[ac-hj-np-z02-9]{25,39})([^0-9a-zA-Z]|\$)' //P2wpkhAddress type
|
|
|
|
'|([^0-9a-zA-Z]|^)((bc|tb)1q[ac-hj-np-z02-9]{40,80})([^0-9a-zA-Z]|\$)' //P2wshAddress type
|
2024-03-21 02:51:57 +00:00
|
|
|
'|([^0-9a-zA-Z]|^)((bc|tb)1p([ac-hj-np-z02-9]{39}|[ac-hj-np-z02-9]{59}|[ac-hj-np-z02-9]{8,89}))([^0-9a-zA-Z]|\$)'; //P2trAddress type
|
2023-02-02 16:36:57 +00:00
|
|
|
case CryptoCurrency.ltc:
|
|
|
|
return '([^0-9a-zA-Z]|^)^L[a-zA-Z0-9]{26,33}([^0-9a-zA-Z]|\$)'
|
|
|
|
'|([^0-9a-zA-Z]|^)[LM][a-km-zA-HJ-NP-Z1-9]{26,33}([^0-9a-zA-Z]|\$)'
|
|
|
|
'|([^0-9a-zA-Z]|^)ltc[a-zA-Z0-9]{26,45}([^0-9a-zA-Z]|\$)';
|
2023-08-04 17:01:49 +00:00
|
|
|
case CryptoCurrency.eth:
|
|
|
|
return '0x[0-9a-zA-Z]{42}';
|
2023-12-02 02:26:43 +00:00
|
|
|
case CryptoCurrency.maticpoly:
|
|
|
|
return '0x[0-9a-zA-Z]{42}';
|
2023-10-09 15:18:59 +00:00
|
|
|
case CryptoCurrency.nano:
|
|
|
|
return 'nano_[0-9a-zA-Z]{60}';
|
|
|
|
case CryptoCurrency.banano:
|
|
|
|
return 'ban_[0-9a-zA-Z]{60}';
|
2023-10-12 22:50:16 +00:00
|
|
|
case CryptoCurrency.bch:
|
|
|
|
return 'bitcoincash:q[0-9a-zA-Z]{41}([^0-9a-zA-Z]|\$)'
|
|
|
|
'|bitcoincash:q[0-9a-zA-Z]{42}([^0-9a-zA-Z]|\$)'
|
|
|
|
'|([^0-9a-zA-Z]|^)q[0-9a-zA-Z]{41}([^0-9a-zA-Z]|\$)'
|
|
|
|
'|([^0-9a-zA-Z]|^)q[0-9a-zA-Z]{42}([^0-9a-zA-Z]|\$)';
|
CW-555-Add-Solana-Wallet (#1272)
* chore: Create cw_solana package and clean up files
* feat: Add Solana Wallet - Create, Restore form seed, restore from Key, Restore from QR, Send, Receive, transaction history, spl tokens
* fix: Make transactions file specific to solana only for solana transactions
* chore: Revert inject app details script
* fix: Fix issue with node and switch current node to main beta instead of testnet
* fix: Fix merge conflicts and adjust migration version
* fix: Fetch spl token error
Signed-off-by: Blazebrain <davidadegoke16@gmail.com>
* fix: Diplay and activate spl tokens bug
* fix: Review and fixes
* fix: reverted formatting for cryptocurrency class
* fix: Review comments, split sending flow into signing and sending separately, fix issues
* fix: Revert throwing unimplenented error
* chore: Fix comment
* chore: Fix comment
* fix: Errors in flow
* Update provider_types.dart [skip ci]
* fix: Issues with solana wallet
* Update solana_wallet.dart [skip ci]
* fix: Review comments
* fix: Date time config
* fix: Revert bash script for app details
* fix: Error with balance, displaying fees, fixing sent or received identifier bug, displaying token symbol with token transaction item in transactions list
* fix: Issues with address validation when sending spl tokens and walletconnect initial setup
* fix: Issues with sending, fetching transactions history, almost wrapping up walletconnect
* fix: Adjust imports that would affect monerocom building successfully
* fix: Refine transaction direction and continue work on walletconnect
* feat: Display SPL token transfers in the transaction history and finally settle the transaction direction
* fix: Delay in transactions history dispaly, show native token transactions first, then process spl token transactions
* feat: Switch node and revert solana chain id to previous id
* fix: Remove print statement
* fix: Remove await for transactions, fetch all transaction histories instantly and adjust solana send success message
* chore: Code refactoring and streamlined wallet type check for solana send success message
* fix: Make timeout error for node silent and add spl token images
---------
Signed-off-by: Blazebrain <davidadegoke16@gmail.com>
Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
2024-02-23 13:39:19 +00:00
|
|
|
case CryptoCurrency.sol:
|
|
|
|
return '([^0-9a-zA-Z]|^)[1-9A-HJ-NP-Za-km-z]{43,44}([^0-9a-zA-Z]|\$)';
|
2023-01-24 18:24:46 +00:00
|
|
|
default:
|
2024-03-04 17:32:10 +00:00
|
|
|
if (type.tag == CryptoCurrency.eth.title) {
|
|
|
|
return '0x[0-9a-zA-Z]{42}';
|
|
|
|
}
|
|
|
|
if (type.tag == CryptoCurrency.maticpoly.tag) {
|
|
|
|
return '0x[0-9a-zA-Z]{42}';
|
|
|
|
}
|
|
|
|
if (type.tag == CryptoCurrency.sol.title) {
|
|
|
|
return '([^0-9a-zA-Z]|^)[1-9A-HJ-NP-Za-km-z]{43,44}([^0-9a-zA-Z]|\$)';
|
|
|
|
}
|
|
|
|
|
2023-01-24 18:24:46 +00:00
|
|
|
return null;
|
|
|
|
}
|
|
|
|
}
|
Btc address types (#1263)
* inital migration changes
* feat: rest of changes
* minor fix [skip ci]
* fix: P2wshAddress & wallet address index
* fix: address review comments
* fix: address type restore
* feat: add testnet
* Fix review comments
Remove bitcoin_base from cw_core
* Fix address not matching selected type on start
* remove un-necessary parameter [skip ci]
* Remove bitcoin specific code from main lib
Fix possible runtime exception from list wrong access
* Minor fix
* fix: fixes for Testnet
* fix: bitcoin receive option dependency breaks monerocom
* Fix issues when building Monero.com
* feat: Transaction Builder changes
* fix: discover addresses, testnet restoring, duplicate unspent coins, and taproot address vs schnorr sig tweak
* fix: remove print
* feat: improve error when failed broadcast response
* feat: create fish shell env script
* fix: unmodifiable maps
* fix: build
* fix: build
* fix: computed observable side effect bug
* feat: add nix script for android build_all
* fix: wrong keypairs used for signing
* fix: wrong addresses when using fromScriptPubKey scripts
* fix(actual commit): testnet tx expanded + wrong addresses when using fromScriptPubKey scripts (update bitcoin_base deps)
* fix: self-send [skip ci]
* fix: p2wsh
* fix: testnet fees
* New versions
* Update macos build number
Minor UI fix
* fix: use new bitcoin_base ref, fix tx list wrong hex value & refactor hidden vs hd use
- if always use sideHd for isHidden, it is easier to simplify the functions instead of passing both which can be error prone
- (ps: now this could probably be changed, for example from isHidden to isChange since with address list we now see "hidden" addresses)
* Fix if condition to handle litecoin case
* fix: self-send, change address was always making direction incoming
* refactor: improve estimation function, add more inputs if balance missing
* fix: new bitcoin_base update, fixes script issues
* Update evm chain wallet service arguments
* Fix translation [skip ci]
* Fix translation [skip ci]
* Update strings_fr.arb [skip ci]
* fix: async isChange function not being awaited, refactor to reduce looping into a single place
* fix: _address vs address, missing p2sh
* fix: minor mistake in storing p2sh page type [skip ci]
* refactor: use already matched addresses property
* feat: improved perfomance for fetching transaction histories
* feat: continue perfomance change, improve address discovery only to last address by type with history
* fix: make sure transaction list is sorted by date
* refactor: isTestnet only for bitcoin
* fix: walletInfo type null case
* fix: deprecated p2pk
* refactor: make condition more readable
* refactor: remove unnecessary Str variant
* refactor: make condition more readable
* fix: infinite loop possible
* Revert removing isTestnet from other wallets [skip ci]
* refactor: rename addresses when matched by receive type
* Make the beta build [skip ci]
Remove app_env.fish
---------
Co-authored-by: OmarHatem <omarh.ismail1@gmail.com>
2024-02-23 16:13:30 +00:00
|
|
|
}
|