@@ -66,6 +66,9 @@ angular.module('copayApp.controllers').controller('walletHomeController', functi
66
66
return ( b . charAt ( 0 ) > 0 && ! ( c || "." ) . lastIndexOf ( "." ) ? b . replace ( / ( \d ) (? = ( \d { 3 } ) + $ ) / g, "$1," ) : b ) + c ;
67
67
} ) ;
68
68
} ;
69
+
70
+ $scope . send_label = null ;
71
+ this . send_label = null ;
69
72
70
73
var vanillaScope = ret ;
71
74
@@ -482,6 +485,19 @@ angular.module('copayApp.controllers').controller('walletHomeController', functi
482
485
enumerable : true ,
483
486
configurable : true
484
487
} ) ;
488
+
489
+ Object . defineProperty ( $scope ,
490
+ "_token" , {
491
+ get : function ( ) {
492
+ return $scope . __token ;
493
+ } ,
494
+ set : function ( newValue ) {
495
+ $scope . __token = newValue ;
496
+ self . resetError ( ) ;
497
+ } ,
498
+ enumerable : true ,
499
+ configurable : true
500
+ } ) ;
485
501
486
502
// [temporary] token property
487
503
$scope . token = '' ;
@@ -632,6 +648,9 @@ angular.module('copayApp.controllers').controller('walletHomeController', functi
632
648
else self . resetForm ( ) ;
633
649
} ) ;
634
650
}
651
+
652
+ $scope . send_label = null ;
653
+ self . send_label = null ;
635
654
} ) ;
636
655
637
656
} , 100 ) ;
@@ -729,7 +748,7 @@ angular.module('copayApp.controllers').controller('walletHomeController', functi
729
748
} ) ;
730
749
} ;
731
750
732
- this . setForm = function ( to , amount , comment ) {
751
+ this . setForm = function ( to , amount , comment , asset ) {
733
752
var form = $scope . sendForm ;
734
753
if ( to ) {
735
754
form . address . $setViewValue ( to ) ;
@@ -750,6 +769,11 @@ angular.module('copayApp.controllers').controller('walletHomeController', functi
750
769
form . comment . $isValid = true ;
751
770
form . comment . $render ( ) ;
752
771
}
772
+
773
+ if ( asset ) {
774
+ this . lockSendToken = true ;
775
+ $scope . _token = asset ;
776
+ }
753
777
} ;
754
778
755
779
this . resetForm = function ( ) {
@@ -760,8 +784,11 @@ angular.module('copayApp.controllers').controller('walletHomeController', functi
760
784
761
785
this . lockAddress = false ;
762
786
this . lockAmount = false ;
787
+ this . lockSendToken = false ;
788
+
789
+ $scope . send_label = null ;
763
790
764
- this . _amount = this . _address = null ;
791
+ this . _amount = this . _address = null ; this . _token = null ;
765
792
766
793
var form = $scope . sendForm ;
767
794
@@ -779,6 +806,13 @@ angular.module('copayApp.controllers').controller('walletHomeController', functi
779
806
form . address . $setViewValue ( '' ) ;
780
807
form . address . $render ( ) ;
781
808
}
809
+
810
+ if ( form . token ) {
811
+ form . token . $pristine = tru ;
812
+ form . token . $setViewValue ( 'BTC' ) ;
813
+ form . token . $render ( ) ;
814
+ }
815
+ $scope . _token = 'BTC' ;
782
816
}
783
817
$timeout ( function ( ) {
784
818
$rootScope . $digest ( ) ;
@@ -898,6 +932,13 @@ angular.module('copayApp.controllers').controller('walletHomeController', functi
898
932
} ;
899
933
900
934
var satToUnit = 1 / this . unitToSatoshi ;
935
+
936
+ var isCounterparty = uri . includes ( 'counterparty:' ) ;
937
+ var uri = uri . replace ( 'counterparty:' , 'bitcoin:' ) ;
938
+ var extraParams = [ ] ;
939
+ if ( this . isCounterparty ) {
940
+ extraParams . push ( 'asset' ) ;
941
+ }
901
942
902
943
// URI extensions for Payment Protocol with non-backwards-compatible request
903
944
if ( ( / ^ b i t c o i n : \? r = [ \w + ] / ) . exec ( uri ) ) {
@@ -910,27 +951,37 @@ angular.module('copayApp.controllers').controller('walletHomeController', functi
910
951
} else {
911
952
uri = sanitizeUri ( uri ) ;
912
953
913
- if ( ! bitcore . URI . isValid ( uri ) ) {
954
+ if ( ! bitcore . URI . isValid ( uri , extraParams ) ) {
914
955
return uri ;
915
956
}
916
- var parsed = new bitcore . URI ( uri ) ;
957
+ var parsed = new bitcore . URI ( uri , extraParams ) ;
958
+
959
+ if ( parsed . label ) {
960
+ this . send_label = parsed . label ;
961
+ $scope . send_label = parsed . label ;
962
+ }
917
963
918
964
var addr = parsed . address ? parsed . address . toString ( ) : '' ;
919
965
var message = parsed . message ;
966
+ var asset = parsed . extras . asset || 'BTC' ;
920
967
921
- var amount = parsed . amount ?
922
- ( parsed . amount . toFixed ( 0 ) * satToUnit ) . toFixed ( this . unitDecimals ) : 0 ;
923
-
968
+ if ( asset == 'BTC' ) {
969
+ var amount = parsed . amount ?
970
+ ( parsed . amount . toFixed ( 0 ) * satToUnit ) . toFixed ( this . unitDecimals ) : 0 ;
971
+ }
972
+ else {
973
+ var amount = ( parsed . amount / 100000000 ) . toFixed ( 8 ) || 0 ;
974
+ }
924
975
925
976
if ( parsed . r ) {
926
977
this . setFromPayPro ( parsed . r , function ( err ) {
927
978
if ( err && addr && amount ) {
928
- self . setForm ( addr , amount , message ) ;
979
+ self . setForm ( addr , amount , message , asset ) ;
929
980
return addr ;
930
981
}
931
982
} ) ;
932
983
} else {
933
- this . setForm ( addr , amount , message ) ;
984
+ this . setForm ( addr , amount , message , asset ) ;
934
985
return addr ;
935
986
}
936
987
}
@@ -944,14 +995,16 @@ angular.module('copayApp.controllers').controller('walletHomeController', functi
944
995
if ( this . _paypro )
945
996
return value ;
946
997
947
- if ( value . indexOf ( 'bitcoin:' ) === 0 ) {
998
+ if ( value . indexOf ( 'bitcoin:' ) === 0 || value . indexOf ( 'counterparty:' ) === 0 ) {
948
999
return this . setFromUri ( value ) ;
949
1000
} else if ( / ^ h t t p s ? : \/ \/ / . test ( value ) ) {
950
1001
return this . setFromPayPro ( value ) ;
951
1002
} else {
952
1003
return value ;
953
1004
}
954
1005
} ;
1006
+
1007
+
955
1008
956
1009
// History
957
1010
0 commit comments