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