@@ -1350,11 +1350,31 @@ class _SendViewState extends ConsumerState<SendView> {
13501350 selectAll: false ,
13511351 ),
13521352 onChanged: (newValue) {
1353- _address = newValue.trim ();
1353+ final trimmed = newValue.trim ();
1354+
1355+ if ((trimmed.length - (_address? .length ?? 0 )).abs () > 1 ) {
1356+ if (coin is Monero && Uri .parse (trimmed).scheme == "monero" ) {
1357+ final parsedUri = Uri .parse (trimmed);
1358+ final addr = parsedUri.path;
1359+ sendToController.text = addr;
1360+ _address = addr;
1361+ cryptoAmountController.text = parsedUri.queryParameters["tx_amount" ] ?? "" ;
1362+ } else if (coin is Bitcoin && Uri .parse (trimmed).scheme == "bitcoin" ) {
1363+ final parsedUri = Uri .parse (trimmed);
1364+ final addr = parsedUri.path;
1365+ sendToController.text = addr;
1366+ _address = addr;
1367+ cryptoAmountController.text = parsedUri.queryParameters["amount" ] ?? "" ;
1368+ }
1369+ } else {
1370+ sendToController.text = trimmed;
1371+ _address = trimmed;
1372+ }
1373+
13541374 _setValidAddressProviders (_address);
13551375
13561376 setState (() {
1357- _addressToggleFlag = newValue .isNotEmpty;
1377+ _addressToggleFlag = trimmed .isNotEmpty;
13581378 });
13591379 },
13601380 focusNode: _addressFocusNode,
@@ -1433,13 +1453,28 @@ class _SendViewState extends ConsumerState<SendView> {
14331453 content,
14341454 );
14351455 }
1436- sendToController.text =
1437- content.trim ();
1438- _address = content.trim ();
14391456
1440- _setValidAddressProviders (
1441- _address,
1442- );
1457+ final trimmed = content.trim ();
1458+
1459+ if (coin is Monero && Uri .parse (trimmed).scheme == "monero" ) {
1460+ final parsedUri = Uri .parse (trimmed);
1461+ final addr = parsedUri.path;
1462+ sendToController.text = addr;
1463+ _address = addr;
1464+ cryptoAmountController.text = parsedUri.queryParameters["tx_amount" ] ?? "" ;
1465+ } else if (coin is Bitcoin && Uri .parse (trimmed).scheme == "bitcoin" ) {
1466+ final parsedUri = Uri .parse (trimmed);
1467+ final addr = parsedUri.path;
1468+ sendToController.text = addr;
1469+ _address = addr;
1470+ cryptoAmountController.text = parsedUri.queryParameters["amount" ] ?? "" ;
1471+ } else {
1472+ sendToController.text = trimmed;
1473+ _address = trimmed;
1474+ }
1475+
1476+ _setValidAddressProviders (_address,);
1477+
14431478 setState (() {
14441479 _addressToggleFlag =
14451480 sendToController
0 commit comments