@@ -128,15 +128,11 @@ pub enum InvoiceParseError {
128
128
impl RgbInvoice {
129
129
#[ inline]
130
130
fn non_default_chain ( & self ) -> Option < Chain > {
131
- if self . beneficiary . has_chain_info ( ) {
132
- return None ;
133
- }
134
- if let Some ( chain) = self . chain {
135
- if chain != Chain :: Bitcoin {
136
- return Some ( chain) ;
137
- }
131
+ if self . chain == Chain :: Bitcoin {
132
+ None
133
+ } else {
134
+ Some ( self . chain )
138
135
}
139
- None
140
136
}
141
137
142
138
#[ inline]
@@ -387,7 +383,7 @@ impl FromStr for RgbInvoice {
387
383
assignment : None ,
388
384
beneficiary,
389
385
owned_state : value,
390
- chain,
386
+ chain : chain . unwrap_or ( Chain :: Bitcoin ) ,
391
387
expiry,
392
388
unknown_query : query_params,
393
389
} )
@@ -486,7 +482,10 @@ mod test {
486
482
. set_chain ( Chain :: Testnet3 )
487
483
. unwrap ( )
488
484
. finish ( ) ;
489
- assert_eq ! ( invoice. to_string( ) , "rgb:~/RGB20/mxVFsFW5N4mu1HPkxPttorvocvzeZ7KZyk" ) ;
485
+ assert_eq ! (
486
+ invoice. to_string( ) ,
487
+ "rgb:~/RGB20/mxVFsFW5N4mu1HPkxPttorvocvzeZ7KZyk?chain=testnet"
488
+ ) ;
490
489
491
490
// address-based regtest - mismatching
492
491
assert ! (
@@ -502,44 +501,44 @@ mod test {
502
501
"rgb:~/RGB20/utxob:egXsFnw-5Eud7WKYn-7DVQvcPbc-rR69YmgmG-veacwmUFo-uMFKFb" ,
503
502
)
504
503
. unwrap ( ) ;
505
- assert_eq ! ( invoice. chain, None ) ;
504
+ assert_eq ! ( invoice. chain, Chain :: Bitcoin ) ;
506
505
507
506
let invoice = RgbInvoice :: from_str (
508
507
"rgb:~/RGB20/utxob:egXsFnw-5Eud7WKYn-7DVQvcPbc-rR69YmgmG-veacwmUFo-uMFKFb?\
509
508
chain=testnet",
510
509
)
511
510
. unwrap ( ) ;
512
- assert_eq ! ( invoice. chain, Some ( Chain :: Testnet3 ) ) ;
511
+ assert_eq ! ( invoice. chain, Chain :: Testnet3 ) ;
513
512
514
513
let invoice = RgbInvoice :: from_str (
515
514
"rgb:~/RGB20/utxob:egXsFnw-5Eud7WKYn-7DVQvcPbc-rR69YmgmG-veacwmUFo-uMFKFb?\
516
515
chain=testnet3",
517
516
)
518
517
. unwrap ( ) ;
519
- assert_eq ! ( invoice. chain, Some ( Chain :: Testnet3 ) ) ;
518
+ assert_eq ! ( invoice. chain, Chain :: Testnet3 ) ;
520
519
521
520
let invoice = RgbInvoice :: from_str (
522
521
"rgb:~/RGB20/utxob:egXsFnw-5Eud7WKYn-7DVQvcPbc-rR69YmgmG-veacwmUFo-uMFKFb?chain=signet" ,
523
522
)
524
523
. unwrap ( ) ;
525
- assert_eq ! ( invoice. chain, Some ( Chain :: Signet ) ) ;
524
+ assert_eq ! ( invoice. chain, Chain :: Signet ) ;
526
525
527
526
let invoice = RgbInvoice :: from_str (
528
527
"rgb:~/RGB20/utxob:egXsFnw-5Eud7WKYn-7DVQvcPbc-rR69YmgmG-veacwmUFo-uMFKFb?\
529
528
chain=regtest",
530
529
)
531
530
. unwrap ( ) ;
532
- assert_eq ! ( invoice. chain, Some ( Chain :: Regtest ) ) ;
531
+ assert_eq ! ( invoice. chain, Chain :: Regtest ) ;
533
532
534
533
let invoice =
535
534
RgbInvoice :: from_str ( "rgb:~/RGB20/bc1qpws79r3ea4yy2ujsahwrmy2gutdj8w5whnhket" ) . unwrap ( ) ;
536
- assert_eq ! ( invoice. chain, None ) ;
535
+ assert_eq ! ( invoice. chain, Chain :: Bitcoin ) ;
537
536
538
537
let invoice = RgbInvoice :: from_str (
539
538
"rgb:~/RGB20/bc1qpws79r3ea4yy2ujsahwrmy2gutdj8w5whnhket?chain=bitcoin" ,
540
539
)
541
540
. unwrap ( ) ;
542
- assert_eq ! ( invoice. chain, Some ( Chain :: Bitcoin ) ) ;
541
+ assert_eq ! ( invoice. chain, Chain :: Bitcoin ) ;
543
542
544
543
assert_eq ! (
545
544
RgbInvoice :: from_str(
@@ -554,12 +553,12 @@ mod test {
554
553
let invoice =
555
554
RgbInvoice :: from_str ( "rgb:~/RGB20/mxVFsFW5N4mu1HPkxPttorvocvzeZ7KZyk?chain=testnet" )
556
555
. unwrap ( ) ;
557
- assert_eq ! ( invoice. chain, Some ( Chain :: Testnet3 ) ) ;
556
+ assert_eq ! ( invoice. chain, Chain :: Testnet3 ) ;
558
557
559
558
let invoice =
560
559
RgbInvoice :: from_str ( "rgb:~/RGB20/mxVFsFW5N4mu1HPkxPttorvocvzeZ7KZyk?chain=signet" )
561
560
. unwrap ( ) ;
562
- assert_eq ! ( invoice. chain, Some ( Chain :: Signet ) ) ;
561
+ assert_eq ! ( invoice. chain, Chain :: Signet ) ;
563
562
564
563
assert_eq ! (
565
564
RgbInvoice :: from_str( "rgb:~/RGB20/mxVFsFW5N4mu1HPkxPttorvocvzeZ7KZyk?chain=regtest" , ) ,
0 commit comments