diff --git a/BlueComponents.js b/BlueComponents.js
index a53163641..9cd56ef41 100644
--- a/BlueComponents.js
+++ b/BlueComponents.js
@@ -8,7 +8,6 @@ import {
Alert,
Animated,
Dimensions,
- FlatList,
Image,
InputAccessoryView,
Keyboard,
@@ -458,17 +457,15 @@ export class BlueWalletNavigationHeader extends Component {
}
}
-export const BlueButtonLinkHook = props => {
+export const BlueButtonLink = props => {
const { colors } = useTheme();
return (
{props.title}
@@ -476,23 +473,6 @@ export const BlueButtonLinkHook = props => {
);
};
-export class BlueButtonLink extends Component {
- render() {
- return (
-
- {this.props.title}
-
- );
- }
-}
-
export const BlueAlertWalletExportReminder = ({ onSuccess = () => {}, onFailure }) => {
Alert.alert(
loc.wallets.details_title,
@@ -546,6 +526,8 @@ export const BlueNavigationStyle = (navigation, withNavigationCloseButton = fals
};
export const BlueCreateTxNavigationStyle = (navigation, withAdvancedOptionsMenuButton = false, advancedOptionsMenuButtonAction) => {
+ const { colors, closeImage } = useTheme();
+
let headerRight;
if (withAdvancedOptionsMenuButton) {
headerRight = () => (
@@ -554,7 +536,7 @@ export const BlueCreateTxNavigationStyle = (navigation, withAdvancedOptionsMenuB
onPress={advancedOptionsMenuButtonAction}
testID="advancedOptionsMenuButton"
>
-
+
);
} else {
@@ -568,9 +550,9 @@ export const BlueCreateTxNavigationStyle = (navigation, withAdvancedOptionsMenuB
},
headerTitleStyle: {
fontWeight: '600',
- color: BlueCurrentTheme.colors.foregroundColor,
+ color: colors.foregroundColor,
},
- headerTintColor: BlueCurrentTheme.colors.foregroundColor,
+ headerTintColor: colors.foregroundColor,
headerLeft: () => (
-
+
),
headerRight,
@@ -675,11 +657,9 @@ export const SafeBlueArea = props => {
return ;
};
-export class BlueCard extends Component {
- render() {
- return ;
- }
-}
+export const BlueCard = props => {
+ return ;
+};
export const BlueText = props => {
const { colors } = useTheme();
@@ -760,122 +740,111 @@ export const BlueFormLabel = props => {
return ;
};
-export class BlueFormInput extends Component {
- render() {
- return (
-
- );
- }
-}
+export const BlueFormInput = props => {
+ const { colors } = useTheme();
+ return (
+
+ );
+};
-export class BlueFormMultiInput extends Component {
- constructor(props) {
- super(props);
- this.state = {
- selection: { start: 0, end: 0 },
- };
- }
+export const BlueFormMultiInput = props => {
+ const { colors } = useTheme();
- render() {
- return (
-
- );
- }
-}
+ return (
+
+ );
+};
-export class BlueHeader extends Component {
- render() {
- return (
+export const BlueHeader = props => {
+ return (
+
+ );
+};
+
+export const BlueHeaderDefaultSub = props => {
+ const { colors } = useTheme();
+ return (
+
- );
- }
-}
-
-export class BlueHeaderDefaultSub extends Component {
- render() {
- return (
-
-
- {this.props.leftText}
-
- }
- rightComponent={
- {
- if (this.props.onClose) this.props.onClose();
- }}
- >
-
-
-
-
+ leftComponent={
+
+ {props.leftText}
+
+ }
+ rightComponent={
+ {
+ if (props.onClose) props.onClose();
+ }}
+ >
+
+
+
-
- }
- {...this.props}
- />
-
- );
- }
-}
+
+
+ }
+ {...props}
+ />
+
+ );
+};
export const BlueHeaderDefaultSubHooks = props => {
const { colors } = useTheme();
@@ -938,11 +907,9 @@ export const BlueHeaderDefaultMain = props => {
);
};
-export class BlueSpacing extends Component {
- render() {
- return ;
- }
-}
+export const BlueSpacing = props => {
+ return ;
+};
export const BlueSpacing40 = props => {
return ;
@@ -972,12 +939,6 @@ export const BlueSpacing10 = props => {
return ;
};
-export class BlueList extends Component {
- render() {
- return ;
- }
-}
-
export class BlueUseAllFundsButton extends Component {
static InputAccessoryViewID = 'useMaxInputAccessoryViewID';
static propTypes = {
@@ -1110,19 +1071,9 @@ export class BlueDoneAndDismissKeyboardInputAccessory extends Component {
}
}
-export class BlueLoading extends Component {
- render() {
- return (
-
-
-
- );
- }
-}
-
-export const BlueLoadingHook = () => {
+export const BlueLoading = props => {
return (
-
+
);
@@ -1421,93 +1372,6 @@ export const BlueReceiveButtonIcon = props => {
);
};
-export class BlueScanButton extends Component {
- render() {
- return (
-
-
-
-
-
-
-
- {loc.send.details_scan}
-
-
-
-
- );
- }
-}
-
-export class BlueSendButtonIcon extends Component {
- render() {
- return (
-
-
-
-
-
-
-
- {loc.send.header}
-
-
-
-
- );
- }
-}
-
export const BlueTransactionListItem = React.memo(({ item, itemPriceUnit = BitcoinUnit.BTC, timeElapsed }) => {
const [subtitleNumberOfLines, setSubtitleNumberOfLines] = useState(1);
const { colors } = useTheme();
diff --git a/Navigation.js b/Navigation.js
index 44e8d81bb..637c63e70 100644
--- a/Navigation.js
+++ b/Navigation.js
@@ -75,6 +75,7 @@ import DrawerList from './screen/wallets/drawerList';
import { isTablet } from 'react-native-device-info';
import SettingsPrivacy from './screen/settings/SettingsPrivacy';
import LNDViewAdditionalInvoicePreImage from './screen/lnd/lndViewAdditionalInvoicePreImage';
+import PsbtMultisigQRCode from './screen/send/psbtMultisigQRCode';
const defaultScreenOptions =
Platform.OS === 'ios'
@@ -182,6 +183,7 @@ const SendDetailsRoot = () => (
/>
+
{
+ LayoutAnimation.configureNext(LayoutAnimation.Presets.easeInEaseOut);
this.setState(prevState => ({ hideControls: !prevState.hideControls }));
}}
>
diff --git a/img/msvault.json b/img/msvault.json
index 82fa74205..86cadb99d 100644
--- a/img/msvault.json
+++ b/img/msvault.json
@@ -1 +1 @@
-{"ip":0,"fr":60,"v":"5.1.20","assets":[],"layers":[{"ty":4,"nm":"layer1","ip":0,"st":0,"ind":4,"hix":2,"ks":{"o":{"a":1,"k":[{"t":0,"s":[0],"e":[0],"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"t":90,"s":[0],"e":[100],"i":{"x":[0.515],"y":[0.955]},"o":{"x":[0.455],"y":[0.03]}},{"t":145}]},"or":{"a":0,"k":[0,0,0]},"a":{"a":0,"k":[136,126.5,0]},"p":{"s":true,"x":{"a":1,"k":[{"t":0,"s":[498.6695000000005],"e":[498.6695000000005],"i":{"x":[0.515],"y":[0.955]},"o":{"x":[0.455],"y":[0.03]}},{"t":112}]},"y":{"a":1,"k":[{"t":0,"s":[293.7280000000012],"e":[310.2990000000002],"i":{"x":[0.515],"y":[0.955]},"o":{"x":[0.455],"y":[0.03]}},{"t":90,"s":[310.2990000000002],"e":[321.7990000000002],"i":{"x":[0.515],"y":[0.955]},"o":{"x":[0.455],"y":[0.03]}},{"t":145}]}},"rx":{"a":0,"k":0},"ry":{"a":0,"k":0},"rz":{"a":0,"k":0},"s":{"a":0,"k":[100,100,100]}},"shapes":[{"ty":"gr","nm":"layer1 shape group","it":[{"ty":"sh","ks":{"a":0,"k":{"c":true,"v":[[1106.93414,744.000839],[1111.56595,746.152995],[1130.43379,767.809064],[1139.01627,782.605136],[1164.03939,827.985851],[1164.11506,828.314683],[1164.49126,830.221585],[1164.2188,839.906287],[1139.01627,886.312149],[1131.0671,900.018484],[1130.64529,900.744482],[1130.64529,900.744482],[1130.43379,901.10822],[1111.56595,922.764289],[1111.56595,922.764289],[1106.93414,924.916445],[1065.04345,924.9837],[1056.24745,924.999848],[1051.07164,925],[1020.42816,924.647426],[1006.26026,917.047625],[995.566211,901.10822],[995.354715,900.744482],[994.932895,900.018484],[986.983729,886.312149],[961.781202,839.906287],[961.508742,830.221585],[961.884941,828.314683],[961.960609,827.985851],[986.983729,782.605136],[995.566211,767.809064],[1014.43405,746.152995],[1014.43405,746.152995],[1019.06586,744.000839]],"i":[[0,0],[0,0],[-8.241909999999962,-14.325288],[-0.8173800000001847,-1.3450980000000072],[-1.1324499999998352,-4.763622000000055],[0,0],[-0.1273799999999028,-0.6880170000000589],[0.9536099999997987,-4.304311999999982],[24.11268999999993,-40.89096299999994],[3.717440000000124,-6.401139999999941],[0,0],[0,0],[0,0],[7.152070000000094,-3.2954879999999775],[0,0],[0,0],[0,0],[2.859559999999874,-0.0020719999999982974],[0,0],[1.1838399999999183,0.21252500000002783],[3.746319999999969,3.69901799999991],[4.972389000000021,8.608624000000077],[0.07044399999995221,0.1211830000000873],[0,0],[0.7735910000000104,1.2730380000000423],[1.3622990000000073,5.9856829999999945],[-0.7492640000000392,4.035292000000027],[-0.13463600000000042,0.6041080000001102],[0,0],[-21.09655900000007,35.80918399999996],[-3.9506659999999556,6.792741999999976],[-7.152069999999981,3.295488999999975],[0,0],[0,0]],"o":[[0,0],[7.152070000000094,3.295488999999975],[3.9506699999999455,6.792741999999976],[21.096559999999954,35.80918399999996],[0,0],[0.13463999999999032,0.6041080000001102],[0.7492600000000493,4.035292000000027],[-1.3623000000000047,5.9856829999999945],[-0.7735900000000129,1.2730380000000423],[0,0],[0,0],[0,0],[-8.241909999999962,14.325288],[0,0],[0,0],[0,0],[-2.9929699999997865,0.008742999999981294],[0,0],[-16.670429999999897,-0.011471000000028653],[-4.699929999999995,-0.8070589999999811],[-2.4521399999999858,-2.488429999999994],[-0.07054699999991954,-0.12129899999990812],[0,0],[-3.717439000000013,-6.401139999999941],[-24.11268800000005,-40.89096299999994],[-0.9536090000000286,-4.304311999999982],[0.1273750000000291,-0.6880170000000589],[0,0],[1.1324520000000575,-4.763622000000055],[0.8173789999999599,-1.3450980000000072],[8.241909000000078,-14.325288],[0,0],[0,0],[0,0]]}}},{"ty":"sh","ks":{"a":0,"k":{"c":true,"v":[[1084.28869,779.000839],[1041.71572,779.000839],[1050.40471,832.550349],[1034,858.33925],[1063,887.000839],[1092,858.33925],[1075.59529,832.550349],[1075.59529,832.550349]],"i":[[0,0],[0,0],[0,0],[0,-11.360174000000029],[-16.017160000000104,0],[0,15.821545000000015],[9.693089999999984,4.639825999999971],[0,0]],"o":[[0,0],[0,0],[-9.697499999999991,4.639825999999971],[0,15.821545000000015],[16.017160000000104,0],[0,-11.360174000000029],[0,0],[0,0]]}}},{"ty":"st","o":{"a":0,"k":0},"w":{"a":0,"k":0},"c":{"a":0,"k":[0,0,0,0]},"lc":3,"lj":1,"ml":1},{"ty":"gf","o":{"a":0,"k":100},"r":2,"g":{"p":2,"k":{"a":0,"k":[0,0.40784313725490196,0.7333333333333333,0.8823529411764706,1,0.5450980392156862,0.8431372549019608,0.9764705882352941]}},"t":1,"s":{"a":0,"k":[582.24563,25.2094246925]},"e":{"a":0,"k":[582.24563,925]}},{"ty":"tr","o":{"a":0,"k":100},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[-100,100]},"p":{"a":0,"k":[-927,959]},"r":{"a":0,"k":180.02333923010465}}]}],"op":145},{"ty":4,"nm":"layer2","ip":0,"st":0,"ind":3,"hix":3,"ks":{"o":{"a":1,"k":[{"t":0,"s":[0],"e":[0],"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"t":67,"s":[0],"e":[100],"i":{"x":[0.515],"y":[0.955]},"o":{"x":[0.455],"y":[0.03]}},{"t":125}]},"or":{"a":0,"k":[0,0,0]},"a":{"a":0,"k":[210,193.5,0]},"p":{"s":true,"x":{"a":0,"k":499.18443847656323},"y":{"a":1,"k":[{"t":0,"s":[307.7270000000012],"e":[307.7270000000012],"i":{"x":[0.515],"y":[0.955]},"o":{"x":[0.455],"y":[0.03]}},{"t":52,"s":[307.7270000000012],"e":[322.7275000000013],"i":{"x":[0.355],"y":[1]},"o":{"x":[0.645],"y":[0.045]}},{"t":125}]}},"rx":{"a":0,"k":0},"ry":{"a":0,"k":0},"rz":{"a":0,"k":0},"s":{"a":0,"k":[100,100,100]}},"shapes":[{"ty":"gr","nm":"layer2 shape group","it":[{"ty":"sh","ks":{"a":0,"k":{"c":true,"v":[[1138.37719,675.0008],[1146.32394,678.746265],[1178.69523,716.435003],[1178.69523,716.435003],[1179.20307,717.321045],[1179.20307,717.321045],[1179.70958,718.205364],[1180.21428,719.087116],[1180.71674,719.965455],[1193.42007,742.185073],[1237.12716,825.05348],[1236.6597,841.908071],[1193.42007,922.669654],[1180.71674,944.889272],[1180.21428,945.767611],[1179.70958,946.649362],[1179.20307,947.533682],[1179.20307,947.533682],[1178.69523,948.419724],[1146.32394,986.108462],[1146.32394,986.108462],[1138.37719,989.853927],[1066.50592,989.970973],[1050.28516,989.999806],[1043.62397,990],[989.960085,989.385744],[965.652401,976.159572],[947.304774,948.419724],[947.304774,948.419724],[946.796931,947.533682],[946.796931,947.533682],[946.290425,946.649362],[945.785715,945.767611],[945.283263,944.889272],[932.579927,922.669654],[889.340297,841.908071],[888.872842,825.05348],[932.579927,742.185073],[945.283263,719.965455],[945.785715,719.087116],[946.290425,718.205364],[946.796931,717.321045],[946.796931,717.321045],[947.304774,716.435003],[979.676064,678.746265],[979.676064,678.746265],[987.622807,675.0008]],"i":[[0,0],[0,0],[-14.140530000000126,-24.930749000000105],[0,0],[0,0],[0,0],[0,0],[-0.16787999999996828,-0.29339500000003227],[0,0],[-1.2621299999998428,-2.1068239999999605],[-1.9866899999999532,-10.885257000000024],[1.6361000000001695,-7.490928999999937],[41.36981000000014,-71.16383000000008],[6.0140499999999975,-10.516211999999996],[0,0],[0.16856000000007043,-0.2943920000000162],[0,0],[0,0],[0,0],[12.270700000000033,-5.735243000000082],[0,0],[0,0],[0,0],[5.2592500000000655,-0.0029430000000729706],[0,0],[2.056803999999943,0.37454600000000937],[6.427511999999979,6.437516999999957],[8.53106200000002,14.981857999999988],[0,0],[0,0],[0,0],[0,0],[0.16788600000006682,0.29339500000003227],[0,0],[1.2621299999999565,2.1068239999999605],[2.3372770000000855,10.41707400000007],[-1.2855029999999488,7.022745999999984],[-41.60353599999996,71.63201300000003],[-6.0140480000000025,10.516210999999998],[0,0],[-0.16856200000006538,0.2943920000000162],[0,0],[0,0],[0,0],[-12.27070500000002,5.735241999999971],[0,0],[0,0]],"o":[[0,0],[12.270700000000033,5.735241999999971],[0,0],[0,0],[0,0],[0,0],[0.16856000000007043,0.2943920000000162],[0,0],[6.0140499999999975,10.516210999999998],[41.603540000000066,71.63201300000003],[1.2854999999999563,7.022745999999984],[-2.3372699999999895,10.41707400000007],[-1.2621299999998428,2.1068239999999605],[0,0],[-0.16787999999996828,0.29339500000003227],[0,0],[0,0],[0,0],[-14.140530000000126,24.93074899999999],[0,0],[0,0],[0,0],[-5.529999999999973,0.016386000000011336],[0,0],[-29.13182000000006,-0.014982000000031803],[-8.063607000000047,-1.4045490000000882],[-4.207099000000085,-4.330693999999994],[0,0],[0,0],[0,0],[0,0],[-0.16856200000006538,-0.2943920000000162],[0,0],[-6.0140480000000025,-10.516211999999996],[-41.369808000000035,-71.16383000000008],[-1.6360939999999573,-7.490928999999937],[1.9866849999999658,-10.885257000000024],[1.2621299999999565,-2.1068239999999605],[0,0],[0.16788600000006682,-0.29339500000003227],[0,0],[0,0],[0,0],[14.140528000000018,-24.930749000000105],[0,0],[0,0],[0,0]]}}},{"ty":"sh","ks":{"a":0,"k":{"c":true,"v":[[1084.28869,778.0008],[1041.71572,778.0008],[1050.40471,831.55031],[1034,857.339211],[1063,886.0008],[1092,857.339211],[1075.59529,831.55031],[1075.59529,831.55031]],"i":[[0,0],[0,0],[0,0],[0,-11.360174000000029],[-16.017160000000104,0],[0,15.821545000000015],[9.693089999999984,4.639826000000085],[0,0]],"o":[[0,0],[0,0],[-9.697499999999991,4.639826000000085],[0,15.821545000000015],[16.017160000000104,0],[0,-11.360174000000029],[0,0],[0,0]]}}},{"ty":"st","o":{"a":0,"k":0},"w":{"a":0,"k":0},"c":{"a":0,"k":[0,0,0,0]},"lc":3,"lj":1,"ml":1},{"ty":"gf","o":{"a":0,"k":100},"r":2,"g":{"p":2,"k":{"a":0,"k":[0,0.24705882352941178,0.47058823529411764,0.8627450980392157,1,0.1843137254901961,0.37254901960784315,0.7019607843137254]}},"t":1,"s":{"a":0,"k":[652.8979164670848,990]},"e":{"a":0,"k":[652.8979164670848,0]}},{"ty":"tr","o":{"a":0,"k":100},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[-100,100]},"p":{"a":0,"k":[-853,1024]},"r":{"a":0,"k":180.02333923010465}}]}],"op":145},{"ty":4,"nm":"layer3","ip":0,"st":0,"ind":2,"hix":4,"ks":{"o":{"a":1,"k":[{"t":0,"s":[0],"e":[0],"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"t":31,"s":[0],"e":[100],"i":{"x":[0.515],"y":[0.955]},"o":{"x":[0.455],"y":[0.03]}},{"t":84}]},"or":{"a":0,"k":[0,0,0]},"a":{"a":0,"k":[285,272.5,0]},"p":{"s":true,"x":{"a":0,"k":499.26000000000073},"y":{"a":1,"k":[{"t":0,"s":[310.7280000000012],"e":[310.7280000000012],"i":{"x":[0.515],"y":[0.955]},"o":{"x":[0.455],"y":[0.03]}},{"t":31,"s":[310.7280000000012],"e":[322.7275000000013],"i":{"x":[0.355],"y":[1]},"o":{"x":[0.645],"y":[0.045]}},{"t":84}]}},"rx":{"a":0,"k":0},"ry":{"a":0,"k":0},"rz":{"a":0,"k":0},"s":{"a":0,"k":[100,100,100]}},"shapes":[{"ty":"gr","nm":"layer3 shape group","it":[{"ty":"sh","ks":{"a":0,"k":{"c":true,"v":[[1135.99518,599.121095],[1179.79758,612.506285],[1202.23956,626.2312],[1240.16108,669.919917],[1240.54725,670.589846],[1240.83219,671.084973],[1240.92693,671.249749],[1241.11682,671.580168],[1248.88101,685.07168],[1256.70702,698.686829],[1256.87838,698.995736],[1256.87838,698.995736],[1256.99092,699.199469],[1257.04692,699.301097],[1257.27099,699.709302],[1257.73612,700.563169],[1259.69642,703.75659],[1262.19748,708.173023],[1267.20192,716.991708],[1267.8581,718.138282],[1269.1599,720.403146],[1277.08617,734.187523],[1277.20813,734.402151],[1277.38998,734.722564],[1277.51151,734.936924],[1278.01501,735.82669],[1279.97531,739.088056],[1282.47637,743.504489],[1289.50638,755.734612],[1306.13508,790.726352],[1312.08355,818.244128],[1309.65008,866.485168],[1289.50638,913.367306],[1282.47637,925.597429],[1279.97531,930.013862],[1278.01501,933.275228],[1277.51151,934.164994],[1277.38998,934.379354],[1277.20813,934.699767],[1277.08617,934.914395],[1269.1599,948.698772],[1267.8581,950.963636],[1267.20192,952.11021],[1262.19748,960.928895],[1261.94712,961.398511],[1259.69642,965.345328],[1257.73612,968.606694],[1257.55724,968.928556],[1257.44136,969.136719],[1257.44136,969.136719],[1257.32743,969.34106],[1257.2148,969.5427],[1257.04692,969.842548],[1256.82168,970.243356],[1256.70702,970.446716],[1248.88101,984.030238],[1241.11682,997.521749],[1240.92693,997.852169],[1240.83219,998.016945],[1240.54725,998.512072],[1240.16108,999.182001],[1202.23956,1042.87072],[1179.79758,1056.59563],[1135.99518,1069.98082],[1064.58609,1070.99959],[1060.46691,1070.99959],[989.311203,1069.98082],[973.764053,1066.99124],[969.032312,1065.70028],[946.184762,1056.59563],[914.617288,1035.4647],[898.732157,1018.68225],[896.028305,1015.285],[887.700819,1002.45377],[887.280622,1001.73174],[886.651918,1000.64156],[886.027779,999.547009],[885.821263,999.182001],[885.645757,998.875031],[885.471884,998.571154],[877.10134,984.030238],[868.935428,969.842548],[868.767543,969.5427],[868.246224,968.606694],[867.988611,968.157299],[866.285931,965.345328],[863.784868,960.928895],[858.343182,951.345872],[857.905435,950.581979],[856.822449,948.698772],[849.338572,935.691143],[849.208691,935.463388],[848.896175,934.914395],[848.652953,934.486157],[848.592365,934.379354],[848.470841,934.164994],[848.470841,934.164994],[848.348272,933.948616],[847.967333,933.275228],[846.00704,930.013862],[843.505977,925.597429],[836.543558,913.367306],[822.686316,886.528981],[822.469288,885.973411],[822.253739,885.416503],[820.320445,880.413919],[816.39986,866.485168],[813.898796,818.244128],[819.847271,790.726352],[836.475962,755.734612],[843.505977,743.504489],[846.00704,739.088056],[847.967333,735.894635],[848.409731,735.095833],[848.53169,734.876364],[848.652953,734.658549],[848.896175,734.222993],[856.822449,720.403146],[857.905435,718.519938],[858.343182,717.756046],[863.784868,708.173023],[866.285931,703.75659],[867.878923,701.137764],[868.124128,700.709608],[868.246224,700.495224],[868.36623,700.279226],[868.767543,699.559218],[868.935428,699.25937],[877.10134,685.07168],[884.878604,671.604105],[885.050901,671.308335],[885.392149,670.723056],[885.562812,670.430573],[885.821263,669.987862],[896.028305,653.816922],[898.732157,650.419665],[946.184762,612.506285],[989.987166,599.121095],[1060.95844,598.000448],[1065.0239,598.000448]],"i":[[-5.133939999999939,-0.7324489999999741],[-16.290700000000015,-7.949580000000083],[-6.692039999999906,-5.163828999999964],[-10.883000000000038,-19.09258100000011],[-0.12720000000012988,-0.22088799999994535],[0,0],[-0.03159000000005108,-0.05494999999996253],[0,0],[-4.450090000000046,-7.700448000000051],[-1.1951100000001134,-2.1489840000000413],[0,0],[0,0],[0,0],[-0.018649999999979627,-0.0338729999999714],[0,0],[-0.162230000000136,-0.298958999999968],[-0.27038999999990665,-0.3397259999999278],[-1.0815400000001318,-2.038353999999913],[-2.108799999999974,-3.689345000000003],[0,0],[-0.42693000000008396,-0.7402439999999615],[-1.2662399999999252,-2.227265000000102],[0,0],[-0.060619999999971697,-0.10687800000005154],[0,0],[-0.17557000000010703,-0.3106070000000045],[-0.270390000000134,-0.3397260000000415],[-1.0815400000001318,-2.0383540000000266],[-2.771439999999984,-4.688214000000016],[-2.974240000000009,-9.444373000000041],[-1.5547100000001137,-12.90957400000002],[3.312220000000025,-14.540256999999997],[10.545029999999997,-18.073403999999982],[1.1491399999999885,-2.0383540000000266],[0.2703799999999319,-0.3397260000000415],[0.8111599999999726,-1.42684799999995],[0.1625699999999597,-0.28688899999997375],[0,0],[0.060750000000098225,-0.10695899999996072],[0,0],[5.1706799999999475,-8.972286999999938],[0.4378400000000511,-0.764049],[0,0],[0.8769700000000284,-1.555586000000062],[0,0],[0.24957999999992353,-0.3135929999999689],[0.8111599999999726,-1.42684799999995],[0.0585399999999936,-0.10522299999990992],[0,0],[0,0],[0,0],[0.03739999999993415,-0.06688799999994899],[0,0],[0.07583999999997104,-0.13466699999992215],[0,0],[5.081549999999879,-8.793798000000038],[1.5866399999999885,-2.761842999999999],[0,0],[0.03157999999984895,-0.05491299999994226],[0,0],[0.13068999999995867,-0.22648400000002766],[17.101859999999988,-13.181359999999813],[8.58474000000001,-4.144649999999956],[17.980620000000044,-2.581910000000107],[33.63390000000004,-0.01330999999981941],[0,0],[4.50461800000005,0.6658700000000408],[3.3122190000000273,0.8832800000000134],[1.2843299999999545,0.3397299999999177],[10.815408000000048,5.231780000000072],[10.747811999999954,9.308479999999918],[4.393758999999932,5.707390000000146],[0.20278899999993882,0.20383000000003904],[3.7122269999999844,6.356010000000083],[0,0],[0.20897400000001198,0.36437999999998283],[0,0],[0.06868599999995695,0.12164399999994657],[0.058179999999993015,0.10172099999999773],[0,0],[5.122054999999932,8.898619999999937],[1.2682160000000522,2.261620999999991],[0,0],[0.1825099999999793,0.32868500000006406],[0,0],[0.24192400000004,0.36475800000005165],[1.0815410000000156,2.038353000000029],[2.26217900000006,3.9511529999999766],[0,0],[0.3557700000000068,0.6168700000000626],[1.2070770000000266,2.1156089999999494],[0,0],[0.10211600000002363,0.17961800000000494],[0,0],[0.020206000000030144,0.035625999999979285],[0,0],[0,0],[0,0],[0.13168099999995775,0.23295500000006086],[0.27038600000003044,0.4076709999999366],[1.0815410000000156,2.038353999999913],[2.7038519999999835,4.688214000000016],[2.16308099999992,5.63944499999991],[0.07217900000000554,0.18568499999992127],[0,0],[0.28969900000004145,0.6406259999999975],[0.8787519999999631,3.940817999999922],[-1.8250999999999067,15.287653999999975],[-3.9205859999999575,12.50190299999997],[-8.179152999999928,13.996696000000043],[-1.149136999999996,2.038353999999913],[-0.2703849999999193,0.40766999999993914],[-0.8111550000000989,1.3589020000000573],[-0.14296300000000883,0.25748700000008284],[0,0],[-0.040382000000022344,0.07246499999996558],[0,0],[-5.170677999999953,8.972286000000054],[-0.3644239999999854,0.6353510000000142],[0,0],[-0.9374540000000025,1.6628680000000031],[-0.27038500000003296,0.4076710000000503],[-0.6937920000000304,1.2067560000000412],[0,0],[-0.040558000000032735,0.07134199999995872],[0,0],[-0.13088100000004488,0.23410699999999451],[0,0],[-5.573315000000093,9.644811000000004],[-1.5017930000000206,2.5788250000000517],[0,0],[-0.11357599999996637,0.19469299999991563],[0,0],[-0.08690999999998894,0.148832000000084],[-1.0815410000000156,0.8832859999999982],[-1.2843300000000681,1.6986279999999851],[-18.453791000000024,8.968755999999985],[-17.980617000000052,2.5819139999999834],[-33.19376000000011,0.014648999999963053],[0,0]],"o":[[17.980620000000044,2.5819139999999834],[8.58474000000001,4.144651999999951],[17.101859999999988,13.181355000000053],[0.13068999999995867,0.2264829999999165],[0,0],[0.03157999999984895,0.05491200000005847],[0,0],[1.5866399999999885,2.7618439999999964],[5.081549999999879,8.793798000000038],[0,0],[0,0],[0,0],[0.01869000000010601,0.03388699999993605],[0,0],[0.1501299999999901,0.2742950000000519],[0.8111599999999726,1.3589019999999437],[0.2703799999999319,0.4076710000000503],[0.8769700000000284,1.555586000000062],[0,0],[0.4378400000000511,0.7640480000000025],[5.1706799999999475,8.972286000000054],[0,0],[0.060750000000098225,0.10695799999996325],[0,0],[0.1625699999999597,0.28688899999997375],[0.8111599999999726,1.4268470000000661],[0.2703799999999319,0.40766999999993914],[1.1491399999999885,2.038353999999913],[8.17915999999991,13.996696000000043],[3.9205799999999726,12.50190299999997],[1.8251000000000204,15.287653999999975],[-3.1770199999998567,13.860805999999911],[-2.771439999999984,4.688214000000016],[-1.0815400000001318,2.038353999999913],[-0.270390000000134,0.4076709999999366],[-0.17557000000010703,0.31060600000000704],[0,0],[-0.060619999999971697,0.10687799999993786],[0,0],[-1.2662399999999252,2.2272649999999885],[-0.42693000000008396,0.7402440000000752],[0,0],[-2.108799999999974,3.689345000000003],[0,0],[-1.002770000000055,1.8722790000000487],[-0.27038999999990665,0.4076710000000503],[-0.06083000000012362,0.10956100000009883],[0,0],[0,0],[0,0],[-0.03773000000001048,0.06760100000008151],[0,0],[-0.07459999999991851,0.133036000000061],[0,0],[-1.1951100000001134,2.11735699999997],[-4.450090000000046,7.70044699999994],[0,0],[-0.03159000000005108,0.05494999999996253],[0,0],[-0.12720000000012988,0.22088700000006156],[-10.883000000000038,19.092579],[-6.692039999999906,5.163830000000189],[-16.290700000000015,7.949579999999969],[-4.670229999999947,0.6658700000000408],[0,0],[-33.63059000000021,-0.01330999999981941],[-6.692033999999921,-1.019170000000031],[-1.2843299999999545,-0.4076700000000528],[-7.841171000000031,-2.1742400000000544],[-11.694161000000008,-5.639439999999922],[-5.8808780000000525,-5.163829999999962],[-1.2843300000000681,-1.69862999999998],[-0.9245430000000852,-0.7550699999999324],[0,0],[-0.20999700000004395,-0.36213999999995394],[0,0],[-0.06898499999999785,-0.12168499999995674],[-0.05887400000005982,-0.10301400000003014],[0,0],[-1.6757670000000644,-2.927601999999979],[-5.573315000000093,-9.644811000000004],[0,0],[-0.16827599999999165,-0.3009949999999435],[0,0],[-0.731802000000016,-1.2665489999999409],[-0.27038500000003296,-0.3397260000000415],[-0.9374540000000025,-1.6628680000000031],[0,0],[-0.3644239999999854,-0.6353510000000142],[-4.586892000000034,-7.959285999999906],[0,0],[-0.10683300000005147,-0.18743100000006052],[0,0],[-0.020191000000068016,-0.0355850000000828],[0,0],[0,0],[0,0],[-0.12332299999991392,-0.2177920000000313],[-0.8111550000000989,-1.42684799999995],[-0.2703849999999193,-0.3397260000000415],[-1.149136999999996,-2.0383540000000266],[-6.8272269999999935,-11.75450699999999],[-0.07242500000006658,-0.18442300000003797],[0,0],[-0.8572709999999688,-2.223767000000066],[-0.6759629999999106,-1.766572999999994],[-3.3122190000000273,-14.268476000000078],[1.554715000000101,-12.90957400000002],[2.9742370000000165,-9.444373000000041],[2.771447999999964,-4.688214000000016],[1.0815410000000156,-2.0383540000000266],[0.27038600000003044,-0.3397260000000415],[0.1536279999999124,-0.27795800000001236],[0,0],[0.040497999999956846,-0.07281299999999646],[0,0],[1.2662420000000338,-2.2627350000000206],[0.3557700000000068,-0.616869999999949],[0,0],[2.26217900000006,-3.9511529999999766],[1.0815410000000156,-2.038353999999913],[0.2298279999999977,-0.2887670000000071],[0,0],[0.04081199999995988,-0.0715300000000525],[0,0],[0.13818500000002132,-0.24856899999997495],[0,0],[1.2682160000000522,-2.2616219999999885],[4.519294999999943,-7.851437000000033],[0,0],[0.11430300000006355,-0.1961540000000923],[0,0],[0.08555100000000948,-0.14658799999995153],[4.258566999999971,-7.6098539999999275],[0.20278899999993882,-0.2038360000000239],[11.28858200000002,-14.812037000000032],[16.290708999999993,-7.949580000000083],[5.133938999999941,-0.7324489999999741],[0,0],[33.193770000000086,0.014648999999963053]]}}},{"ty":"sh","ks":{"a":0,"k":{"c":true,"v":[[1084.28869,779],[1041.71572,779],[1050.40471,832.54951],[1034,858.338411],[1063,887],[1092,858.338411],[1075.59529,832.54951],[1075.59529,832.54951]],"i":[[0,0],[0,0],[0,0],[0,-11.360173999999915],[-16.017160000000104,0],[0,15.821545000000015],[9.693089999999984,4.639825999999971],[0,0]],"o":[[0,0],[0,0],[-9.697499999999991,4.639825999999971],[0,15.821545000000015],[16.017160000000104,0],[0,-11.360173999999915],[0,0],[0,0]]}}},{"ty":"st","o":{"a":0,"k":0},"w":{"a":0,"k":0},"c":{"a":0,"k":[0,0,0,0]},"lc":3,"lj":1,"ml":1},{"ty":"gf","o":{"a":0,"k":100},"r":2,"g":{"p":2,"k":{"a":0,"k":[0,0.09019607843137255,0.27450980392156865,0.592156862745098,1,0.047058823529411764,0.1450980392156863,0.3137254901960784]}},"t":1,"s":{"a":0,"k":[656.041775,1070.99959]},"e":{"a":0,"k":[656.041775,0]}},{"ty":"tr","o":{"a":0,"k":100},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[-100,100]},"p":{"a":0,"k":[-778,1105]},"r":{"a":0,"k":180.02333923010465}}]}],"op":145},{"ty":4,"ip":0,"st":0,"ind":0,"hix":1,"ks":{"o":{"a":0,"k":100},"or":{"a":0,"k":[0,0,0]},"a":{"a":0,"k":[0,0,0]},"p":{"a":0,"k":[0,0,0]},"rx":{"a":0,"k":0},"ry":{"a":0,"k":0},"rz":{"a":0,"k":0},"s":{"a":0,"k":[100,100,100]}},"shapes":[{"ty":"gr","nm":"undefined shape group","it":[{"ty":"rc","s":{"a":0,"k":[985.145,640.981]},"r":{"a":0,"k":0},"p":{"a":0,"k":[492.5725,320.4905]}},{"ty":"st","o":{"a":0,"k":0},"w":{"a":0,"k":0},"c":{"a":0,"k":[0,0,0,0]},"lc":3,"lj":1,"ml":1},{"ty":"fl","o":{"a":0,"k":100},"r":1,"c":{"a":0,"k":[1,1,1,0]}},{"ty":"tr","o":{"a":0,"k":100},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"p":{"a":0,"k":[0,0]},"r":{"a":0,"k":0}}]}],"op":145}],"op":145,"w":986,"h":641}
\ No newline at end of file
+{"ip":0,"fr":60,"v":"5.1.20","assets":[],"layers":[{"ty":4,"nm":"small","ip":0,"st":0,"ind":3,"hix":1,"ks":{"o":{"a":1,"k":[{"t":0,"s":[0],"e":[0],"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"t":100,"s":[0],"e":[100],"i":{"x":[0.515],"y":[0.955]},"o":{"x":[0.455],"y":[0.03]}},{"t":154}]},"or":{"a":0,"k":[0,0,0]},"a":{"a":0,"k":[26.5,23.5,0]},"p":{"s":true,"x":{"a":1,"k":[{"t":0,"s":[117.32],"e":[117.32],"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"t":100,"s":[117.32],"e":[117.32],"i":{"x":[0.515],"y":[0.955]},"o":{"x":[0.455],"y":[0.03]}},{"t":154}]},"y":{"a":1,"k":[{"t":0,"s":[82],"e":[82],"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"t":100,"s":[82],"e":[87.8],"i":{"x":[0.515],"y":[0.955]},"o":{"x":[0.455],"y":[0.03]}},{"t":154}]}},"rx":{"a":0,"k":0},"ry":{"a":0,"k":0},"rz":{"a":0,"k":0},"s":{"a":0,"k":[100,100,100]}},"shapes":[{"ty":"gr","nm":"small shape group","it":[{"ty":"sh","ks":{"a":0,"k":{"c":true,"v":[[82.0311248,50.0033291],[92.9141248,50.0207291],[94.1171248,50.5796291],[99.0191248,56.2030291],[101.249125,60.0450291],[107.565202,71.2151533],[107.597302,71.3126218],[107.640338,71.4550104],[107.666389,71.5488085],[107.666389,71.5488085],[107.702829,71.6902402],[107.702829,71.6902402],[107.726135,71.7864329],[107.797125,72.0948291],[107.868125,74.6098291],[107.533066,75.8844752],[107.483461,76.0084513],[101.249125,86.9748291],[99.0191248,90.8168291],[94.1171248,96.4398291],[92.9141248,96.9988291],[70.0861248,96.9988291],[68.8821248,96.4398291],[63.9801248,90.8168291],[63.7247846,90.3773366],[61.7511248,86.9748291],[55.3157336,75.4413277],[55.273801,75.288383],[55.215033,75.0367981],[55.1939209,74.9345446],[55.15298,74.7220141],[55.1321248,74.6098291],[55.1321248,74.6098291],[55.2029248,72.0948291],[55.2738991,71.7864329],[55.2972022,71.6902402],[55.2972022,71.6902402],[55.3336401,71.5488085],[55.3336401,71.5488085],[55.3596917,71.4550104],[55.4027292,71.3126218],[55.4348315,71.2151533],[61.7511248,60.0450291],[63.9801248,56.2030291],[66.7591248,52.0640291],[70.4401248,50.0906291],[77.5912152,50],[80.6121586,50.0001263]],"i":[[-0.47856000000000165,-0.0014000000000038426],[0,0],[0,0],[-2.1410000000000053,-3.7199000000000026],[-0.2120000000000033,-0.3492000000000033],[-0.37613999999999237,-1.104272299999991],[0,0],[-0.013487999999995282,-0.04700320000000602],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.02498799999999335,-0.10969409999999868],[0.1939999999999884,-1.0480000000000018],[0.1876439999999917,-0.4828088999999949],[0,0],[4.372940999999997,-7.4187293999999895],[1.0270002000000034,-1.76400000000001],[1.8589999999999947,-0.8559999999999945],[0,0],[0,0],[0,0],[2.141999999999996,3.719999999999999],[0,0],[0.19433339999999788,0.3199167000000074],[0.3465666999999968,1.1892792999999955],[0,0],[0.017985500000001764,0.08449439999999697],[0,0],[0.013703900000002989,0.07326249999999845],[0,0],[0,0],[-0.2476999999999947,1.117999999999995],[-0.023127600000002246,0.09735900000001152],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.015303000000002953,0.04810449999999378],[0,0],[-4.9382941,8.3693247],[-1.0259999999999962,1.7637999999999963],[-0.6370000000000005,0.6462000000000003],[-1.2220000000000084,0.20949999999999847],[-3.9299147999999917,0.006343100000002266],[0,0]],"o":[[0,0],[0,0],[1.8589999999999947,0.8556999999999988],[1.0270002000000034,1.7637999999999963],[4.938293999999999,8.3693247],[0,0],[0.015302000000005478,0.04810449999999378],[0,0],[0,0],[0,0],[0,0],[0,0],[0.023131000000006452,0.09735900000001152],[0.24800000000000466,1.117999999999995],[-0.08498800000000983,0.4585411999999991],[0,0],[-0.5151170000000036,1.252854599999992],[-0.2120000000000033,0.34900000000000375],[-2.1410000000000053,3.719999999999999],[0,0],[0,0],[0,0],[-1.858000000000004,-0.8559999999999945],[0,0],[-0.9304167000000021,-1.603090800000004],[-5.1144423,-8.67614119999999],[0,0],[-0.021638599999995733,-0.08405700000000138],[0,0],[-0.01381810000000172,-0.06884850000000142],[0,0],[0,0],[-0.19460000000000122,-1.0480000000000018],[0.02498119999999915,-0.10969409999999868],[0,0],[0,0],[0,0],[0,0],[0,0],[0.013487699999998881,-0.04700320000000602],[0,0],[0.37616979999999955,-1.104272299999991],[0.2120000000000033,-0.3492000000000033],[1.2920000000000016,-2.2353999999999985],[0.972999999999999,-0.9604999999999961],[0.2878599999999949,-0.05172600000000216],[0,0],[0.4667230000000018,0.0007382000000006883]]}}},{"ty":"sh","ks":{"a":0,"k":{"c":true,"v":[[81.5,59],[74,66.431],[78.242,73.117],[75.995,87],[87.006,87],[84.757,73.117],[89,66.431]],"i":[[4.141999999999996,0],[0,-4.101999999999997],[-2.5080000000000098,-1.203000000000003],[0,0],[0,0],[0,0],[0,2.9450000000000074]],"o":[[-4.143000000000001,0],[0,2.9450000000000074],[0,0],[0,0],[0,0],[2.506999999999991,-1.203000000000003],[0,-4.101999999999997]]}}},{"ty":"st","o":{"a":0,"k":0},"w":{"a":0,"k":0},"c":{"a":0,"k":[0,0,0,0]},"lc":3,"lj":1,"ml":1},{"ty":"gf","o":{"a":0,"k":100},"r":2,"g":{"p":2,"k":{"a":0,"k":[0,0.40784313725490196,0.7333333333333333,0.8823529411764706,1,0.5450980392156862,0.8431372549019608,0.9764705882352941]}},"t":1,"s":{"a":0,"k":[1.46990586575825,94.35509322727526]},"e":{"a":0,"k":[1.46990586575825,-0.00006617392922298921]}},{"ty":"tr","o":{"a":0,"k":100},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"p":{"a":0,"k":[-55,-50]},"r":{"a":0,"k":0}}]}],"op":154},{"ty":4,"nm":"medium","ip":0,"st":0,"ind":2,"hix":2,"ks":{"o":{"a":1,"k":[{"t":0,"s":[0],"e":[0],"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"t":63,"s":[0],"e":[100],"i":{"x":[0.515],"y":[0.955]},"o":{"x":[0.455],"y":[0.03]}},{"t":114}]},"or":{"a":0,"k":[0,0,0]},"a":{"a":0,"k":[45.5,41,0]},"p":{"s":true,"x":{"a":1,"k":[{"t":0,"s":[117.253],"e":[117.253],"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"t":63,"s":[117.253],"e":[117.253],"i":{"x":[0.515],"y":[0.955]},"o":{"x":[0.455],"y":[0.03]}},{"t":114}]},"y":{"a":1,"k":[{"t":0,"s":[80.4],"e":[80.4],"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"t":63,"s":[80.4],"e":[87.4],"i":{"x":[0.515],"y":[0.955]},"o":{"x":[0.455],"y":[0.03]}},{"t":114}]}},"rx":{"a":0,"k":0},"ry":{"a":0,"k":0},"rz":{"a":0,"k":0},"s":{"a":0,"k":[100,100]}},"shapes":[{"ty":"gr","nm":"medium shape group","it":[{"ty":"sh","ks":{"a":0,"k":{"c":true,"v":[[82.4111478,32.0077808],[101.098148,32.0381808],[103.164148,33.0131808],[111.581148,42.8242808],[113.751977,46.6318863],[114.019023,47.1013808],[115.409148,49.5274808],[125.349261,66.9529941],[125.47184,67.1975946],[126.479283,69.8034953],[126.513504,69.9451872],[126.530399,70.0170417],[126.564107,70.1634176],[126.651148,70.5509808],[126.773148,74.9389808],[126.66787,75.5009226],[126.637173,75.6528093],[126.637173,75.6528093],[126.60521,75.8027174],[126.475554,76.3265738],[126.431196,76.4802288],[115.409148,96.5109808],[114.019023,98.9369808],[113.751977,99.4064935],[111.581148,103.213981],[103.164148,113.024981],[101.098148,113.999981],[61.9021478,113.999981],[59.8361478,113.024981],[51.4192478,103.213981],[51.0898406,102.63832],[47.5907478,96.5109808],[36.5686966,76.4802288],[36.5243507,76.3265738],[36.3947512,75.8027174],[36.3628083,75.6528093],[36.3628083,75.6528093],[36.3321337,75.5009226],[36.2269478,74.9389808],[36.3484478,70.5509808],[36.4355847,70.1634176],[36.4693267,70.0170417],[36.4862379,69.9451872],[36.5204886,69.8034953],[37.5281355,67.1975946],[37.6507154,66.9529941],[47.5907478,49.5274808],[51.0898406,43.4000057],[51.4192478,42.8242808],[51.4192478,42.8242808],[56.1896478,35.6030808],[62.5091478,32.1600808],[75.0628822,32.0015683],[79.2887024,32.0012342]],"i":[[-1.0572058999999996,-0.003139699999998413],[0,0],[0,0],[-3.6769999999999925,-6.489899999999999],[-0.6407549999999986,-1.1265562999999972],[0,0],[-0.18250000000000455,-0.30469999999999686],[-1.212209999999999,-2.394906899999995],[0,0],[-0.179009999999991,-0.7264710999999977],[0,0],[-0.005620000000007508,-0.024085199999987594],[0,0],[-0.030350000000012756,-0.13560000000001082],[0.333999999999989,-1.828000000000003],[0.03528400000000431,-0.17875269999998977],[0,0],[0,0],[0,0],[0.04948699999999917,-0.17753610000001174],[0,0],[8.653599999999997,-14.917599999999993],[0.6911249999999995,-1.2150000000000034],[0,0],[0.7708750000000038,-1.346187999999998],[3.1899999999999977,-1.492999999999995],[0,0],[0,0],[0,0],[3.676499999999997,6.489999999999995],[0,0],[0.341906299999998,0.5709374999999994],[0.6183711999999986,2.070751999999999],[0,0],[0.03821699999999595,0.17413639999999475],[0,0],[0,0],[0,0],[0.036155000000000825,0.19831000000000643],[-0.42540000000000333,1.9499999999999886],[-0.02818990000000099,0.12367820000000052],[0,0],[-0.005653099999996414,0.023824999999987995],[0,0],[-0.6078662999999978,1.2259416999999928],[0,0],[-6.1309770000000015,10.559535000000004],[-1.6403584000000038,2.869322699999998],[0,0],[0,0],[-1.093900000000005,1.1274000000000015],[-2.0960000000000036,0.3656000000000006],[-6.8848594000000105,0.00997499999999718],[0,0]],"o":[[0,0],[0,0],[3.1899999999999977,1.493000000000002],[0.7708750000000038,1.346362500000005],[0,0],[0.6911249999999995,1.2149500000000018],[6.130920000000003,10.559535000000004],[0,0],[0.6078609999999998,1.2259416999999928],[0,0],[0.005648000000007869,0.023824999999987995],[0,0],[0.028160999999997216,0.12367820000000052],[0.4259999999999877,1.9499999999999886],[-0.03619000000000483,0.19831000000000643],[0,0],[0,0],[0,0],[-0.03823900000000435,0.17413639999999475],[0,0],[-0.6185279999999977,2.070751999999999],[-0.18250000000000455,0.30450000000000443],[0,0],[-0.6407549999999986,1.126596500000005],[-3.6769999999999925,6.489999999999995],[0,0],[0,0],[0,0],[-3.190799999999996,-1.492999999999995],[0,0],[-1.6403584000000038,-2.8690579999999954],[-8.65352,-14.917599999999993],[0,0],[-0.04947150000000278,-0.17753610000001174],[0,0],[0,0],[0,0],[-0.035257799999996564,-0.17875269999998977],[-0.3341999999999956,-1.828000000000003],[0.030384999999995443,-0.13560000000001082],[0,0],[0.0056248999999937155,-0.024085199999987594],[0,0],[0.17915769999999753,-0.7264710999999977],[0,0],[1.2122107,-2.394906899999995],[0.341906299999998,-0.5713124999999977],[0,0],[0,0],[2.2180999999999997,-3.900099999999995],[1.6714999999999947,-1.6758000000000024],[0.5017500000000013,-0.09142500000000098],[0,0],[1.0218837999999977,0.0012357000000022822]]}}},{"ty":"sh","ks":{"a":0,"k":{"c":true,"v":[[81.5,59],[74,66.431],[78.242,73.117],[75.995,87],[87.006,87],[84.757,73.117],[89,66.431]],"i":[[4.141999999999996,0],[0,-4.101999999999997],[-2.5080000000000098,-1.203000000000003],[0,0],[0,0],[0,0],[0,2.9450000000000074]],"o":[[-4.143000000000001,0],[0,2.9450000000000074],[0,0],[0,0],[0,0],[2.506999999999991,-1.203000000000003],[0,-4.101999999999997]]}}},{"ty":"st","o":{"a":0,"k":0},"w":{"a":0,"k":0},"c":{"a":0,"k":[0,0,0,0]},"lc":3,"lj":1,"ml":1},{"ty":"gf","o":{"a":0,"k":100},"r":2,"g":{"p":2,"k":{"a":0,"k":[0,0.24705882352941178,0.47058823529411764,0.8627450980392157,1,0.1843137254901961,0.37254901960784315,0.7019607843137254]}},"t":1,"s":{"a":0,"k":[130.2909583356113,-0.000026732233568627]},"e":{"a":0,"k":[130.2909583356113,113.999981]}},{"ty":"tr","o":{"a":0,"k":100},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"p":{"a":0,"k":[-36,-32]},"r":{"a":0,"k":0}}]}],"op":154},{"ty":4,"nm":"big","ip":0,"st":0,"ind":1,"hix":3,"ks":{"o":{"a":1,"k":[{"t":0,"s":[0],"e":[0],"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"t":24,"s":[0],"e":[100],"i":{"x":[0.515],"y":[0.955]},"o":{"x":[0.455],"y":[0.03]}},{"t":74}]},"or":{"a":0,"k":[0,0,0]},"a":{"a":0,"k":[65,61.5,0]},"p":{"s":true,"x":{"a":0,"k":116.8780517578125},"y":{"a":1,"k":[{"t":0,"s":[82.39898681640625],"e":[82.39898681640625],"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"t":24,"s":[82.39898681640625],"e":[87.8005],"i":{"x":[0.515],"y":[0.955]},"o":{"x":[0.455],"y":[0.03]}},{"t":74}]}},"rx":{"a":0,"k":0},"ry":{"a":0,"k":0},"rz":{"a":0,"k":0},"s":{"a":0,"k":[100,100,100]}},"shapes":[{"ty":"gr","nm":"big shape group","it":[{"ty":"sh","ks":{"a":0,"k":{"c":true,"v":[[83.0156787,12.0007419],[99.9791745,12.2640211],[111.367175,15.7447211],[117.202175,19.3138211],[127.062175,30.6747211],[127.177679,30.8754272],[127.291381,31.0733794],[129.329175,34.6148211],[131.631175,38.6256211],[132.141175,39.4737211],[132.791175,40.6221211],[134.063831,42.8658211],[134.333827,43.3375906],[134.601175,43.8025211],[134.753462,44.0667572],[136.671361,47.4027737],[136.785517,47.6038233],[136.904175,47.8133211],[137.413175,48.6614211],[138.064175,49.8098211],[139.344284,52.0534789],[139.618844,52.5252619],[139.892175,52.9902211],[145.129175,65.1820211],[145.762175,77.7260211],[144.215175,84.8820211],[139.892175,93.9810211],[139.618844,94.4459527],[139.344284,94.9177867],[138.064175,97.1620211],[137.413175,98.3100211],[136.904175,99.1580211],[136.785517,99.3676298],[136.671361,99.5687384],[136.213925,100.368521],[136.089297,100.585396],[134.601175,103.169021],[134.333827,103.63391],[134.063831,104.10563],[132.791175,106.349021],[132.141175,107.498021],[131.631175,108.328021],[131.017529,109.429273],[130.837239,109.744064],[129.329175,112.357021],[127.291381,115.89821],[127.12035,116.195934],[127.12035,116.195934],[127.062175,116.297021],[117.202175,127.658021],[111.367175,131.227021],[99.9791745,134.707021],[83.108239,134.996904],[82.0544485,134.998304],[82.0544485,134.998304],[79.9411517,134.998304],[62.0171745,134.707021],[50.6280745,131.227021],[38.2903745,121.368021],[37.5873745,120.484021],[34.9335745,116.279021],[32.6663745,112.357021],[30.3640745,108.346021],[29.8543745,107.498021],[29.2040745,106.349021],[27.9312776,104.10563],[27.661239,103.63391],[27.3938745,103.169021],[25.9059772,100.583972],[25.781362,100.366396],[25.3240977,99.55962],[25.2481489,99.4234879],[25.0915745,99.1410211],[24.5818745,98.3100211],[23.9315745,97.1620211],[22.1037745,93.9810211],[17.7802745,84.8820211],[16.2336745,77.7260211],[16.8839745,65.1820211],[17.9033745,61.5594211],[18.5184745,59.9693211],[22.1213745,52.9902211],[22.388739,52.5252619],[22.6587776,52.0534789],[23.9315745,49.8098211],[24.5818745,48.6614211],[25.0915745,47.8133211],[25.2100629,47.6038233],[25.3625912,47.3350679],[27.3938745,43.8025211],[27.526772,43.5717261],[27.661239,43.3375906],[27.9312776,42.8658211],[29.2040745,40.6221211],[29.8543745,39.4737211],[30.3640745,38.6256211],[32.6663745,34.6148211],[34.9335745,30.6747211],[37.5873745,26.4873211],[38.2903745,25.6038211],[42.4204745,21.2397211],[50.6280745,15.7447211],[56.5681745,13.3772211],[57.7991745,13.0414211],[61.8411745,12.2640211],[78.7390927,12.0007419]],"i":[[0,0],[-1.1398800000000051,-0.16251800000000038],[-4.234999999999999,-2.0671999999999997],[-1.7399999999999949,-1.3427999999999969],[-2.8299999999999983,-4.9649],[-0.03802500000000464,-0.0661428000000015],[0,0],[-1.1753080000000011,-2.0332231000000007],[-0.42200000000002547,-0.7597999999999985],[-0.06999999999999318,-0.10600000000000165],[-0.2810000000000059,-0.5300000000000011],[-0.5378440000000069,-0.941681299999999],[0,0],[-0.08787500000002524,-0.15238750000000323],[0,0],[-0.3187379999999962,-0.5604873999999995],[0,0],[-0.04125000000001933,-0.07289060000000092],[-0.06999999999999318,-0.10609999999999786],[-0.2810000000000059,-0.5300000000000011],[-0.5456719999999962,-0.9416952999999992],[0,0],[-0.09012500000000045,-0.1524000000000001],[-0.8259999999999934,-3.6049000000000007],[0.47399999999998954,-3.9749999999999943],[1.0190000000000055,-3.2510000000000048],[2.1260000000000048,-3.63900000000001],[0.09170600000001627,-0.15685350000001108],[0,0],[0.22350000000000136,-0.39750000000000796],[0.07099999999999795,-0.10599999999999454],[0.2109999999999843,-0.3709999999999951],[0.03832800000000702,-0.06762729999999806],[0,0],[0.1950000000000216,-0.339531000000008],[0,0],[0.730624999999975,-1.2678750000000036],[0.08995699999999829,-0.15682599999999525],[0,0],[0.22424999999998363,-0.39749999999999375],[0.06999999999999318,-0.10599999999999454],[0.2109999999999843,-0.35300000000000864],[0.27229299999999057,-0.4769059999999996],[0,0],[0.7459369999999979,-1.2910619999999966],[0.41747399999999857,-0.7275320000000107],[0,0],[0,0],[0,0],[4.447000000000003,-3.4280000000000115],[2.2319999999999993,-1.078000000000003],[4.675000499999996,-0.6709999999999923],[8.060794700000002,-0.014315000000010514],[0,0],[0,0],[0,0],[1.3075199999999967,0.1867200000000082],[4.235600000000005,2.066999999999979],[2.9350000000000023,3.850999999999999],[0.05269999999999442,0.05299999999999727],[1.1071999999999989,1.9789999999999992],[1.4235999999999933,2.472999999999999],[0.4217999999999975,0.7600000000000051],[0.07029999999999959,0.08800000000000807],[0.28119999999999834,0.5300000000000011],[0.5379468999999979,0.9415789999999902],[0,0],[0.08787500000000037,0.15237499999999216],[0.30955120000000136,0.539873],[0,0],[0.1273844000000004,0.22774290000000974],[0,0],[0.054912500000000364,0.09937499999999488],[0.07029999999999959,0.08799999999999386],[0.28119999999999834,0.5300000000000011],[0.720600000000001,1.218999999999994],[0.773299999999999,2.456000000000003],[0.4042999999999992,3.3569999999999993],[-0.8612000000000002,3.7099999999999937],[-0.1758000000000024,0.4596000000000018],[-0.2636000000000003,0.6713999999999984],[-1.775100000000002,3.056600000000003],[-0.08996760000000137,0.15684830000000005],[0,0],[-0.22409999999999997,0.39757499999999624],[-0.07030000000000314,0.08830000000000382],[-0.21089999999999876,0.3709999999999951],[-0.03828090000000017,0.06759950000000003],[0,0],[-1.3043750000000003,2.2637500000000017],[0,0],[-0.04498379999999713,0.07842070000000234],[0,0],[-0.22409999999999997,0.39757499999999624],[-0.07029999999999959,0.08830000000000382],[-0.2109000000000023,0.3710000000000022],[-1.7048000000000023,2.9506999999999977],[-0.47449999999999903,0.8304000000000009],[-0.28120000000000545,0.22970000000000113],[-0.33389999999999986,0.4416999999999973],[-1.5289999999999964,1.3428000000000004],[-3.0404999999999944,1.4665],[-2.0383999999999958,0.5653000000000006],[-0.3339999999999961,0.10609999999999964],[-1.740000000000002,0.26509999999999856],[-8.164910199999994,0.013001499999999666]],"o":[[8.16814860000001,0.013001499999999666],[4.675000499999996,0.6713999999999984],[2.2319999999999993,1.0777999999999999],[4.447000000000003,3.4277000000000015],[0.03915299999999888,0.06796149999999912],[0,0],[0.41747399999999857,0.7273813000000011],[1.7050000000000125,2.9506999999999977],[0.2109999999999843,0.3710000000000022],[0.06999999999999318,0.08830000000000382],[0.22424999999998363,0.39757499999999624],[0,0],[0.08995699999999829,0.15684140000000468],[0,0],[1.233883999999989,2.140948900000005],[0,0],[0.03832800000000702,0.06759950000000003],[0.2109999999999843,0.3709999999999951],[0.07099999999999795,0.08830000000000382],[0.22350000000000136,0.39757499999999624],[0,0],[0.09170600000001627,0.15684830000000005],[2.7409999999999854,4.699800000000003],[0.86099999999999,3.781000000000006],[-0.40500000000000114,3.3569999999999993],[-0.7729999999999961,2.456000000000003],[-0.09012500000000045,0.15237499999999216],[0,0],[-0.5456719999999962,0.9418594000000127],[-0.2810000000000059,0.5300000000000011],[-0.06999999999999318,0.08799999999999386],[-0.04125000000001933,0.07293749999999477],[0,0],[-0.12749499999998193,0.22423580000000243],[0,0],[-0.30957999999998265,0.538449],[-0.08787500000002524,0.15237499999999216],[0,0],[-0.5378440000000069,0.9415789999999902],[-0.2810000000000059,0.5300000000000011],[-0.06999999999999318,0.08800000000000807],[-0.19781300000002489,0.3646879999999868],[0,0],[-0.30904100000000767,0.538250000000005],[-1.1753080000000011,2.033307999999991],[0,0],[0,0],[0,0],[-2.8299999999999983,4.965000000000003],[-1.7399999999999949,1.3430000000000035],[-4.234999999999999,2.066999999999979],[-1.2535000000000025,0.17894000000001142],[0,0],[0,0],[0,0],[-8.445551600000002,-0.007468999999986181],[-4.675000000000004,-0.6709999999999923],[-4.797999999999995,-2.3329999999999984],[-0.33389999999999986,-0.44199999999999307],[-0.28120000000000545,-0.2289999999999992],[-0.47449999999999903,-0.8130000000000024],[-1.7048000000000023,-2.9510000000000076],[-0.2109000000000023,-0.3709999999999951],[-0.07029999999999959,-0.10599999999999454],[-0.22409999999999997,-0.39749999999999375],[0,0],[-0.08996759999999782,-0.15682599999999525],[-0.7304499999999976,-1.2678750000000036],[0,0],[-0.19497650000000277,-0.3408589999999947],[0,0],[-0.050591600000000625,-0.09090429999999117],[-0.21089999999999876,-0.3539999999999992],[-0.07030000000000314,-0.10599999999999454],[-0.29879999999999995,-0.5300000000000011],[-2.1266,-3.63900000000001],[-1.0193000000000012,-3.2510000000000048],[-0.47449999999999903,-3.9749999999999943],[0.22850000000000037,-1.0250000000000057],[0.08779999999999788,-0.19429999999999836],[0.5624000000000002,-1.4665000000000035],[0.08787499999999682,-0.1524000000000001],[0,0],[0.5379468999999979,-0.9416952999999992],[0.28119999999999834,-0.5300000000000011],[0.07029999999999959,-0.10609999999999786],[0.04118439999999879,-0.07289060000000092],[0,0],[0.3235342999999986,-0.5687064999999976],[0,0],[0.0446107999999974,-0.07757900000000006],[0,0],[0.5379468999999979,-0.941681299999999],[0.28119999999999834,-0.5300000000000011],[0.07029999999999959,-0.10600000000000165],[0.4217999999999975,-0.7597999999999985],[1.4235999999999933,-2.4735999999999976],[1.1071999999999989,-1.961199999999998],[0.05269999999999442,-0.053000000000000824],[1.142400000000002,-1.4841000000000015],[2.7944999999999993,-2.4206000000000003],[2.8120000000000047,-1.3604000000000003],[0.3340000000000032,-0.08840000000000003],[0.8609999999999971,-0.22960000000000136],[1.0993999999999957,-0.16251800000000038],[0,0]]}}},{"ty":"sh","ks":{"a":0,"k":{"c":false,"v":[[83.0156787,12.0007419]],"i":[[0,0]],"o":[[0,0]]}}},{"ty":"sh","ks":{"a":0,"k":{"c":true,"v":[[81.5,59],[74,66.431],[78.242,73.117],[75.995,87],[87.006,87],[84.757,73.117],[89,66.431]],"i":[[4.141999999999996,0],[0,-4.101999999999997],[-2.5080000000000098,-1.203000000000003],[0,0],[0,0],[0,0],[0,2.9450000000000074]],"o":[[-4.143000000000001,0],[0,2.9450000000000074],[0,0],[0,0],[0,0],[2.506999999999991,-1.203000000000003],[0,-4.101999999999997]]}}},{"ty":"st","o":{"a":0,"k":0},"w":{"a":0,"k":0},"c":{"a":0,"k":[0,0,0,0]},"lc":3,"lj":1,"ml":1},{"ty":"gf","o":{"a":0,"k":100},"r":2,"g":{"p":2,"k":{"a":0,"k":[0,0.09019607843137255,0.27450980392156865,0.592156862745098,1,0.047058823529411764,0.1450980392156863,0.3137254901960784]}},"t":1,"s":{"a":0,"k":[145.7622595420615,-0.000027438741028782045]},"e":{"a":0,"k":[145.7622595420615,134.9985780465571]}},{"ty":"tr","o":{"a":0,"k":100},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"p":{"a":0,"k":[-16,-12]},"r":{"a":0,"k":0}}]}],"op":154}],"op":154,"w":233,"h":176}
\ No newline at end of file
diff --git a/ios/BlueWallet.xcodeproj/project.pbxproj b/ios/BlueWallet.xcodeproj/project.pbxproj
index 43310111c..4e73376b3 100644
--- a/ios/BlueWallet.xcodeproj/project.pbxproj
+++ b/ios/BlueWallet.xcodeproj/project.pbxproj
@@ -1513,7 +1513,7 @@
"$(inherited)",
"$(PROJECT_DIR)",
);
- MARKETING_VERSION = 5.6.7;
+ MARKETING_VERSION = 5.6.8;
OTHER_LDFLAGS = (
"$(inherited)",
"-ObjC",
@@ -1556,7 +1556,7 @@
"$(inherited)",
"$(PROJECT_DIR)",
);
- MARKETING_VERSION = 5.6.7;
+ MARKETING_VERSION = 5.6.8;
OTHER_LDFLAGS = (
"$(inherited)",
"-ObjC",
@@ -1597,7 +1597,7 @@
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
- MARKETING_VERSION = 5.6.7;
+ MARKETING_VERSION = 5.6.8;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = io.bluewallet.bluewallet.TodayExtension;
@@ -1636,7 +1636,7 @@
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
- MARKETING_VERSION = 5.6.7;
+ MARKETING_VERSION = 5.6.8;
MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = io.bluewallet.bluewallet.TodayExtension;
PRODUCT_NAME = "BlueWallet - Bitcoin Price";
@@ -1675,7 +1675,7 @@
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
- MARKETING_VERSION = 5.6.7;
+ MARKETING_VERSION = 5.6.8;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = io.bluewallet.bluewallet.PriceWidget;
@@ -1717,7 +1717,7 @@
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
- MARKETING_VERSION = 5.6.7;
+ MARKETING_VERSION = 5.6.8;
MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = io.bluewallet.bluewallet.PriceWidget;
PRODUCT_NAME = "$(TARGET_NAME)";
@@ -1757,7 +1757,7 @@
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
- MARKETING_VERSION = 5.6.7;
+ MARKETING_VERSION = 5.6.8;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = io.bluewallet.bluewallet.MarketWidget;
@@ -1800,7 +1800,7 @@
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
- MARKETING_VERSION = 5.6.7;
+ MARKETING_VERSION = 5.6.8;
MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = io.bluewallet.bluewallet.MarketWidget;
PRODUCT_NAME = "$(TARGET_NAME)";
@@ -1841,7 +1841,7 @@
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
- MARKETING_VERSION = 5.6.7;
+ MARKETING_VERSION = 5.6.8;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = io.bluewallet.bluewallet.WalletInformationAndMarketWidget;
@@ -1885,7 +1885,7 @@
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
- MARKETING_VERSION = 5.6.7;
+ MARKETING_VERSION = 5.6.8;
MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = io.bluewallet.bluewallet.WalletInformationAndMarketWidget;
PRODUCT_NAME = "$(TARGET_NAME)";
@@ -1926,7 +1926,7 @@
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
- MARKETING_VERSION = 5.6.7;
+ MARKETING_VERSION = 5.6.8;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = io.bluewallet.bluewallet.WalletInformationWidget;
@@ -1969,7 +1969,7 @@
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
- MARKETING_VERSION = 5.6.7;
+ MARKETING_VERSION = 5.6.8;
MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = io.bluewallet.bluewallet.WalletInformationWidget;
PRODUCT_NAME = "$(TARGET_NAME)";
@@ -2111,7 +2111,7 @@
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
- MARKETING_VERSION = 5.6.7;
+ MARKETING_VERSION = 5.6.8;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = io.bluewallet.bluewallet.watch.extension;
@@ -2151,7 +2151,7 @@
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
- MARKETING_VERSION = 5.6.7;
+ MARKETING_VERSION = 5.6.8;
MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = io.bluewallet.bluewallet.watch.extension;
PRODUCT_NAME = "${TARGET_NAME}";
@@ -2185,7 +2185,7 @@
GCC_C_LANGUAGE_STANDARD = gnu11;
IBSC_MODULE = BlueWalletWatch_Extension;
INFOPLIST_FILE = BlueWalletWatch/Info.plist;
- MARKETING_VERSION = 5.6.7;
+ MARKETING_VERSION = 5.6.8;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = io.bluewallet.bluewallet.watch;
@@ -2221,7 +2221,7 @@
GCC_C_LANGUAGE_STANDARD = gnu11;
IBSC_MODULE = BlueWalletWatch_Extension;
INFOPLIST_FILE = BlueWalletWatch/Info.plist;
- MARKETING_VERSION = 5.6.7;
+ MARKETING_VERSION = 5.6.8;
MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = io.bluewallet.bluewallet.watch;
PRODUCT_NAME = "$(TARGET_NAME)";
diff --git a/ios/fastlane/metadata/en-US/release_notes.txt b/ios/fastlane/metadata/en-US/release_notes.txt
index f93da828f..673b18a7b 100644
--- a/ios/fastlane/metadata/en-US/release_notes.txt
+++ b/ios/fastlane/metadata/en-US/release_notes.txt
@@ -1,3 +1,26 @@
+v5.6.7
+======
+
+* ADD: coincontrol
+* ADD: Handle fiat rate from alternate sources
+* ADD: new languages: Bulgarian, Polish, Welsh
+* ADD: UYU currency
+* FIX: PayJoin is now BIP compliant
+* FIX: better support for BRD (aka bread) wallet with segwit
+* FIX: Disregarding curent denomination on send screen, scanning address always resets it to BTC
+* FIX: import *.txn file with txhex - extra newline characted prevented it from being recognized (closes #2161)
+* FIX: locale pt_BR, cs_CZ, sl_SI, es_ES, nl_NL, fi_FI, ru
+* FIX: translate message if Bitcoin address or LN invoice is in clipboard
+* FIX: Styling for large screens
+* FIX: exclude change address from recipients for Confirm screen
+* FIX: Dont show loading indicator on launch and onsnapitem
+* FIX: Show alert if storage access is denied
+* FIX: When wallet card has balance but no txs it displays 'pull to refresh'
+* FIX: broken wallet->send->longtap send btn->choose photo
+* FIX: Use system color on widgets
+* FIX: hide provide entropy button when creating Lightning or MS wallet
+* FIX: Can't paste in address block while building tx
+
v5.6.6
======
@@ -64,12 +87,3 @@ v5.6.1
* FIX: locales pt_BR, pt_PT, ru, sl_SI, ja_JP
* FIX: add margin for RTL languages
* FIX: Missing (NT) before $ sign
-
-v.5.6.0
-=======
-
-* FIX: some transactions displayed with 0 value
-* FIX: PSBT with HW wallets flow
-* FIX: rare crash on watch-only receive button
-* FIX: RBF cancel style
-* REF: updated languages sl_SI, de_DE, fi_FI, es_ES
diff --git a/loc/en.json b/loc/en.json
index 65d7bea7d..ef2b21281 100644
--- a/loc/en.json
+++ b/loc/en.json
@@ -314,6 +314,7 @@
"details_inputs": "Inputs",
"details_outputs": "Outputs",
"details_received": "Received",
+ "transaction_note_saved":"Transaction note has been successfully saved.",
"details_show_in_block_explorer": "View in block explorer",
"details_title": "Transaction",
"details_to": "Output",
diff --git a/loc/sl_SI.json b/loc/sl_SI.json
index f5563577a..6d5f15327 100644
--- a/loc/sl_SI.json
+++ b/loc/sl_SI.json
@@ -107,12 +107,13 @@
"lndViewInvoice": {
"additional_info": "Dodatne Informacije",
"for": "Za:",
+ "lightning_invoice": "Lightning Račun",
"has_been_paid": "Ta račun je bil plačan",
"open_direct_channel": "Odpri neposreden kanal s tem vozliščem:",
"please_pay": "Prosim plačajte",
"preimage": "Preimage",
"sats": "sats",
- "wasnt_paid_and_expired": "Ta račun ni bil plačan in je potekel"
+ "wasnt_paid_and_expired": "Ta račun ni bil plačan in je potekel."
},
"plausibledeniability": {
"create_fake_storage": "Ustvari Šifrirano shrambo",
@@ -358,7 +359,7 @@
"details_display": "prikaži na seznamu denarnic",
"details_export_backup": "Izvozi / varnostna kopija",
"details_marketplace": "Tržnica",
- "details_master_fingerprint": "Master fingerprint",
+ "details_master_fingerprint": "Glavni prstni odtis (fingerprint)",
"details_no_cancel": "Ne, prekliči",
"details_save": "Shrani",
"details_show_xpub": "Prikaži XPUB denarnice",
@@ -455,6 +456,10 @@
"view_edit_cosigners": "Prikaži/uredi sopodpisnike",
"this_cosigner_is_already_imported": "Ta sopodpisnik je že uvožen",
"export_signed_psbt": "Izvozi podpisano PSBT",
+ "input_fp": "Vnesite xfp (master key fingerprint)",
+ "input_fp_explain": "preskoči in uporabi privzetega (00000000)",
+ "input_path": "Vnesite pot izpeljave (derivation path)",
+ "input_path_explain": "preskoči in uporabi privzeto ({default})",
"view_edit_cosigners_title": "Urejanje sopodpisnikov"
},
"cc": {
diff --git a/package-lock.json b/package-lock.json
index 246d6bf21..e8b2d5a88 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,6 +1,6 @@
{
"name": "bluewallet",
- "version": "5.6.7",
+ "version": "5.6.8",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
@@ -8306,12 +8306,19 @@
}
},
"buffer": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz",
- "integrity": "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==",
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.1.tgz",
+ "integrity": "sha512-rVAXBwEcEoYtxnHSO5iWyhzV/O1WMtkUYWlfdLS7FjU4PnSJJHEfHXi/uHPI5EwltmOA794gN3bm3/pzuctWjQ==",
"requires": {
- "base64-js": "^1.0.2",
- "ieee754": "^1.1.4"
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.2.1"
+ },
+ "dependencies": {
+ "ieee754": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
+ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="
+ }
}
},
"buffer-alloc": {
@@ -18304,6 +18311,15 @@
"yargs": "^13.2.4"
},
"dependencies": {
+ "buffer": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
+ "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
+ "requires": {
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.1.13"
+ }
+ },
"cliui": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz",
@@ -19184,6 +19200,17 @@
"integrity": "sha512-ToyFSYuJp0/DQ7bXd/vTwF5m3yhNSRngIpVlBFBDccDZQmp2qIo0exrObCNlJLOOHb38dil726hM+GKjR1/60w==",
"requires": {
"buffer": "^5.4.3"
+ },
+ "dependencies": {
+ "buffer": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
+ "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
+ "requires": {
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.1.13"
+ }
+ }
}
},
"react-native-tooltip": {
diff --git a/package.json b/package.json
index 876513afb..b33360e8b 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "bluewallet",
- "version": "5.6.7",
+ "version": "5.6.8",
"license": "MIT",
"devDependencies": {
"@babel/core": "^7.10.4",
@@ -90,7 +90,7 @@
"bip39": "2.6.0",
"bitcoinjs-lib": "5.2.0",
"bolt11": "1.2.7",
- "buffer": "5.6.0",
+ "buffer": "6.0.1",
"buffer-reverse": "1.0.1",
"coinselect": "3.1.12",
"crypto-js": "3.1.9-1",
diff --git a/screen/receive/details.js b/screen/receive/details.js
index 967d4472a..261cec047 100644
--- a/screen/receive/details.js
+++ b/screen/receive/details.js
@@ -16,11 +16,11 @@ import Share from 'react-native-share';
import Handoff from 'react-native-handoff';
import {
- BlueLoadingHook,
+ BlueLoading,
BlueCopyTextToClipboard,
BlueButton,
SecondButton,
- BlueButtonLinkHook,
+ BlueButtonLink,
is,
BlueBitcoinAmount,
BlueText,
@@ -161,7 +161,7 @@ const ReceiveDetails = () => {
-
+
@@ -345,7 +345,7 @@ const ReceiveDetails = () => {
url={`https://blockstream.info/address/${address}`}
/>
)}
- {showAddress ? renderReceiveDetails() : }
+ {showAddress ? renderReceiveDetails() : }
);
};
diff --git a/screen/selftest.js b/screen/selftest.js
index d5111909f..2ee18d218 100644
--- a/screen/selftest.js
+++ b/screen/selftest.js
@@ -1,6 +1,6 @@
import React, { Component } from 'react';
import { ScrollView, View, StyleSheet } from 'react-native';
-import { BlueSpacing20, SafeBlueArea, BlueCard, BlueText, BlueNavigationStyle, BlueLoadingHook } from '../BlueComponents';
+import { BlueSpacing20, SafeBlueArea, BlueCard, BlueText, BlueNavigationStyle, BlueLoading } from '../BlueComponents';
import PropTypes from 'prop-types';
import { SegwitP2SHWallet, LegacyWallet, HDSegwitP2SHWallet, HDSegwitBech32Wallet } from '../class';
import { BlueCurrentTheme } from '../components/themes';
@@ -210,7 +210,7 @@ export default class Selftest extends Component {
render() {
if (this.state.isLoading) {
- return ;
+ return ;
}
return (
diff --git a/screen/send/ScanQRCode.js b/screen/send/ScanQRCode.js
index 0bd980a71..9229192a6 100644
--- a/screen/send/ScanQRCode.js
+++ b/screen/send/ScanQRCode.js
@@ -7,7 +7,7 @@ import ImagePicker from 'react-native-image-picker';
import { decodeUR, extractSingleWorkload } from 'bc-ur';
import { useNavigation, useRoute, useIsFocused, useTheme } from '@react-navigation/native';
import loc from '../../loc';
-import { BlueLoadingHook, BlueText, BlueButton, BlueSpacing40 } from '../../BlueComponents';
+import { BlueLoading, BlueText, BlueButton, BlueSpacing40 } from '../../BlueComponents';
import { BlueCurrentTheme } from '../../components/themes';
import { openPrivacyDesktopSettings } from '../../class/camera';
const LocalQRCode = require('@remobile/react-native-qrcode-local-image');
@@ -231,7 +231,7 @@ const ScanQRCode = () => {
return isLoading ? (
-
+
) : (
diff --git a/screen/send/details.js b/screen/send/details.js
index a30c46c34..eba50d1ca 100644
--- a/screen/send/details.js
+++ b/screen/send/details.js
@@ -647,7 +647,7 @@ export default class SendDetails extends Component {
this.props.navigation.navigate('PsbtMultisig', {
memo: this.state.memo,
psbtBase64: psbt.toBase64(),
- walletId: wallet.getID(),
+ walletID: wallet.getID(),
});
this.setState({ isLoading: false });
return;
@@ -976,7 +976,7 @@ export default class SendDetails extends Component {
this.props.navigation.navigate('PsbtMultisig', {
memo: this.state.memo,
psbtBase64: psbt.toBase64(),
- walletId: fromWallet.getID(),
+ walletID: fromWallet.getID(),
});
} catch (error) {
alert(loc.send.problem_with_psbt + ': ' + error.message);
diff --git a/screen/send/psbtMultisig.js b/screen/send/psbtMultisig.js
index 72c299f91..387cea369 100644
--- a/screen/send/psbtMultisig.js
+++ b/screen/send/psbtMultisig.js
@@ -1,22 +1,14 @@
/* global alert */
-import React, { useContext, useState } from 'react';
-import { FlatList, Platform, ScrollView, StyleSheet, Text, TouchableOpacity, View } from 'react-native';
-import { BlueButton, BlueButtonLink, BlueCard, BlueNavigationStyle, BlueSpacing20, BlueText, SafeBlueArea } from '../../BlueComponents';
-import { DynamicQRCode } from '../../components/DynamicQRCode';
-import { SquareButton } from '../../components/SquareButton';
-import { getSystemName } from 'react-native-device-info';
+import React, { useContext, useEffect, useState } from 'react';
+import { FlatList, StyleSheet, Text, TouchableOpacity, View } from 'react-native';
+import { BlueButton, BlueCard, BlueNavigationStyle, BlueText, SafeBlueArea } from '../../BlueComponents';
import loc from '../../loc';
import { Icon } from 'react-native-elements';
-import ImagePicker from 'react-native-image-picker';
-import ScanQRCode from './ScanQRCode';
import { useNavigation, useRoute, useTheme } from '@react-navigation/native';
import { BitcoinUnit } from '../../models/bitcoinUnits';
import { BlueStorageContext } from '../../blue_modules/storage-context';
const bitcoin = require('bitcoinjs-lib');
const currency = require('../../blue_modules/currency');
-const fs = require('../../blue_modules/fs');
-const LocalQRCode = require('@remobile/react-native-qrcode-local-image');
-const isDesktop = getSystemName() === 'Mac OS X';
const BigNumber = require('bignumber.js');
const shortenAddress = addr => {
@@ -25,21 +17,21 @@ const shortenAddress = addr => {
const PsbtMultisig = () => {
const { wallets } = useContext(BlueStorageContext);
- const navigation = useNavigation();
- const route = useRoute();
+ const { navigate, setParams } = useNavigation();
const { colors } = useTheme();
const [flatListHeight, setFlatListHeight] = useState(0);
-
- const walletId = route.params.walletId;
- const psbtBase64 = route.params.psbtBase64;
- const memo = route.params.memo;
-
+ const { walletID, psbtBase64, memo, receivedPSBTBase64 } = useRoute().params;
+ /** @type MultisigHDWallet */
+ const wallet = wallets.find(w => w.getID() === walletID);
const [psbt, setPsbt] = useState(bitcoin.Psbt.fromBase64(psbtBase64));
- const [isModalVisible, setIsModalVisible] = useState(false);
+ const data = new Array(wallet.getM());
const stylesHook = StyleSheet.create({
root: {
backgroundColor: colors.elevated,
},
+ whitespace: {
+ color: colors.elevated,
+ },
textBtc: {
color: colors.buttonAlternativeTextColor,
},
@@ -52,18 +44,12 @@ const PsbtMultisig = () => {
textDestination: {
color: colors.foregroundColor,
},
- modalContentShort: {
- backgroundColor: colors.elevated,
- },
textFiat: {
color: colors.alternativeTextColor,
},
provideSignatureButton: {
backgroundColor: colors.buttonDisabledBackgroundColor,
},
- exportButton: {
- backgroundColor: colors.buttonDisabledBackgroundColor,
- },
provideSignatureButtonText: {
color: colors.buttonTextColor,
},
@@ -83,8 +69,7 @@ const PsbtMultisig = () => {
color: colors.msSuccessBG,
},
});
- /** @type MultisigHDWallet */
- const wallet = wallets.find(w => w.getID() === walletId);
+
let destination = [];
let totalSat = 0;
const targets = [];
@@ -98,23 +83,22 @@ const PsbtMultisig = () => {
destination = shortenAddress(destination.join(', '));
const totalBtc = new BigNumber(totalSat).dividedBy(100000000).toNumber();
const totalFiat = currency.satoshiToLocalCurrency(totalSat);
- const fileName = `${Date.now()}.psbt`;
-
- const howManySignaturesWeHave = () => {
- return wallet.calculateHowManySignaturesWeHaveFromPsbt(psbt);
- };
const getFee = () => {
return wallet.calculateFeeFromPsbt(psbt);
};
const _renderItem = el => {
- if (el.index >= howManySignaturesWeHave()) return _renderItemUnsigned(el);
+ if (el.index >= howManySignaturesWeHave) return _renderItemUnsigned(el);
else return _renderItemSigned(el);
};
+ const navigateToPSBTMultisigQRCode = () => {
+ navigate('PsbtMultisigQRCode', { walletID, psbtBase64, isShowOpenScanner: isConfirmEnabled() });
+ };
+
const _renderItemUnsigned = el => {
- const renderProvideSignature = el.index === howManySignaturesWeHave();
+ const renderProvideSignature = el.index === howManySignaturesWeHave;
return (
@@ -133,9 +117,7 @@ const PsbtMultisig = () => {
{
- setIsModalVisible(true);
- }}
+ onPress={navigateToPSBTMultisigQRCode}
>
{loc.multisig.provide_signature}
@@ -162,31 +144,25 @@ const PsbtMultisig = () => {
);
};
- const _combinePSBT = receivedPSBTBase64 => {
+ // eslint-disable-next-line react-hooks/exhaustive-deps
+ useEffect(() => {
+ if (receivedPSBTBase64) {
+ _combinePSBT();
+ setParams({ receivedPSBTBase64: undefined });
+ }
+ // eslint-disable-next-line react-hooks/exhaustive-deps
+ }, [receivedPSBTBase64]);
+
+ const _combinePSBT = () => {
const receivedPSBT = bitcoin.Psbt.fromBase64(receivedPSBTBase64);
try {
const newPsbt = psbt.combine(receivedPSBT);
- navigation.dangerouslyGetParent().pop();
setPsbt(newPsbt);
- setIsModalVisible(false);
} catch (error) {
alert(error);
}
};
- const onBarScanned = ret => {
- if (!ret.data) ret = { data: ret };
- if (ret.data.toUpperCase().startsWith('UR')) {
- alert('BC-UR not decoded. This should never happen');
- } else if (ret.data.indexOf('+') === -1 && ret.data.indexOf('=') === -1 && ret.data.indexOf('=') === -1) {
- // this looks like NOT base64, so maybe its transaction's hex
- // we dont support it in this flow
- } else {
- // psbt base64?
- _combinePSBT(ret.data);
- }
- };
-
const onConfirm = () => {
try {
psbt.finalizeAllInputs();
@@ -195,7 +171,7 @@ const PsbtMultisig = () => {
try {
const tx = psbt.extractTransaction().toHex();
const satoshiPerByte = Math.round(getFee() / (tx.length / 2));
- navigation.navigate('Confirm', {
+ navigate('Confirm', {
fee: new BigNumber(getFee()).dividedBy(100000000).toNumber(),
memo: memo,
fromWallet: wallet,
@@ -208,83 +184,20 @@ const PsbtMultisig = () => {
}
};
- const openScanner = () => {
- if (isDesktop) {
- ImagePicker.launchCamera(
- {
- title: null,
- mediaType: 'photo',
- takePhotoButtonTitle: null,
- },
- response => {
- if (response.uri) {
- const uri = Platform.OS === 'ios' ? response.uri.toString().replace('file://', '') : response.path.toString();
- LocalQRCode.decode(uri, (error, result) => {
- if (!error) {
- onBarScanned(result);
- } else {
- alert(loc.send.qr_error_no_qrcode);
- }
- });
- } else if (response.error) {
- ScanQRCode.presentCameraNotAuthorizedAlert(response.error);
- }
- },
- );
- } else {
- navigation.navigate('ScanQRCodeRoot', {
- screen: 'ScanQRCode',
- params: {
- onBarScanned: onBarScanned,
- showFileImportButton: true,
- },
- });
- }
- };
-
- const exportPSBT = async () => {
- await fs.writeFileAndExport(fileName, psbt.toBase64());
- };
-
+ const howManySignaturesWeHave = wallet.calculateHowManySignaturesWeHaveFromPsbt(psbt);
const isConfirmEnabled = () => {
- return howManySignaturesWeHave() >= wallet.getM();
- };
-
- const renderDynamicQrCode = () => {
- return (
-
-
-
-
- {!isConfirmEnabled() && (
- <>
-
-
- >
- )}
-
-
-
- setIsModalVisible(false)} />
-
-
-
- );
+ return howManySignaturesWeHave >= wallet.getM();
};
const destinationAddress = () => {
// eslint-disable-next-line prefer-const
let destinationAddressView = [];
+ const whitespace = '_';
const destinations = Object.entries(destination.split(','));
for (const [index, address] of destinations) {
if (index > 1) {
destinationAddressView.push(
-
+
and {destinations.length - 2} more...
@@ -297,13 +210,15 @@ const PsbtMultisig = () => {
const lastFour = currentAddress.substring(currentAddress.length - 5, currentAddress.length);
const middle = currentAddress.split(firstFour)[1].split(lastFour)[0];
destinationAddressView.push(
-
-
- {firstFour}
-
- {middle}
-
- {lastFour}
+
+
+
+ {firstFour}
+ {whitespace}
+ {middle}
+ {whitespace}
+ {lastFour}
+
,
);
@@ -338,13 +253,10 @@ const PsbtMultisig = () => {
);
- if (isModalVisible) return renderDynamicQrCode();
-
const onLayout = e => {
setFlatListHeight(e.nativeEvent.layout.height);
};
- const data = new Array(wallet.getM());
return (
@@ -367,9 +279,7 @@ const PsbtMultisig = () => {
{
- setIsModalVisible(true);
- }}
+ onPress={navigateToPSBTMultisigQRCode}
>
{loc.multisig.export_signed_psbt}
@@ -422,7 +332,7 @@ const styles = StyleSheet.create({
flexDirection: 'row',
justifyContent: 'center',
},
- destionationTextContainer: {
+ destinationTextContainer: {
flexDirection: 'row',
marginBottom: 4,
paddingHorizontal: 60,
@@ -438,6 +348,9 @@ const styles = StyleSheet.create({
fontWeight: 'bold',
fontSize: 30,
},
+ textAlignCenter: {
+ textAlign: 'center',
+ },
textDestinationFirstFour: {
fontSize: 14,
},
@@ -447,21 +360,6 @@ const styles = StyleSheet.create({
fontSize: 14,
flexWrap: 'wrap',
},
- modalContentShort: {
- marginLeft: 20,
- marginRight: 20,
- },
- copyToClipboard: {
- justifyContent: 'center',
- alignItems: 'center',
- },
- exportButton: {
- height: 48,
- borderRadius: 8,
- flex: 1,
- justifyContent: 'center',
- paddingHorizontal: 16,
- },
provideSignatureButton: {
marginTop: 24,
marginLeft: 40,
diff --git a/screen/send/psbtMultisigQRCode.js b/screen/send/psbtMultisigQRCode.js
new file mode 100644
index 000000000..21863ea0b
--- /dev/null
+++ b/screen/send/psbtMultisigQRCode.js
@@ -0,0 +1,147 @@
+/* global alert */
+import React, { useState } from 'react';
+import { ActivityIndicator, Platform, ScrollView, StyleSheet, View } from 'react-native';
+import { BlueNavigationStyle, BlueSpacing20, SafeBlueArea } from '../../BlueComponents';
+import { DynamicQRCode } from '../../components/DynamicQRCode';
+import { SquareButton } from '../../components/SquareButton';
+import { getSystemName } from 'react-native-device-info';
+import loc from '../../loc';
+import ImagePicker from 'react-native-image-picker';
+import ScanQRCode from './ScanQRCode';
+import { useNavigation, useRoute, useTheme } from '@react-navigation/native';
+const bitcoin = require('bitcoinjs-lib');
+const fs = require('../../blue_modules/fs');
+const LocalQRCode = require('@remobile/react-native-qrcode-local-image');
+const isDesktop = getSystemName() === 'Mac OS X';
+
+const PsbtMultisigQRCode = () => {
+ const { navigate } = useNavigation();
+ const { colors } = useTheme();
+ const { psbtBase64, isShowOpenScanner } = useRoute().params;
+ const [isLoading, setIsLoading] = useState(false);
+
+ const psbt = bitcoin.Psbt.fromBase64(psbtBase64);
+ const stylesHook = StyleSheet.create({
+ root: {
+ backgroundColor: colors.elevated,
+ },
+ modalContentShort: {
+ backgroundColor: colors.elevated,
+ },
+ exportButton: {
+ backgroundColor: colors.buttonDisabledBackgroundColor,
+ },
+ });
+ const fileName = `${Date.now()}.psbt`;
+
+ const onBarScanned = ret => {
+ if (!ret.data) ret = { data: ret };
+ if (ret.data.toUpperCase().startsWith('UR')) {
+ alert('BC-UR not decoded. This should never happen');
+ } else if (ret.data.indexOf('+') === -1 && ret.data.indexOf('=') === -1 && ret.data.indexOf('=') === -1) {
+ // this looks like NOT base64, so maybe its transaction's hex
+ // we dont support it in this flow
+ } else {
+ // psbt base64?
+ navigate('PsbtMultisig', { receivedPSBTBase64: ret.data });
+ }
+ };
+
+ const openScanner = () => {
+ if (isDesktop) {
+ ImagePicker.launchCamera(
+ {
+ title: null,
+ mediaType: 'photo',
+ takePhotoButtonTitle: null,
+ },
+ response => {
+ if (response.uri) {
+ const uri = Platform.OS === 'ios' ? response.uri.toString().replace('file://', '') : response.path.toString();
+ LocalQRCode.decode(uri, (error, result) => {
+ if (!error) {
+ onBarScanned(result);
+ } else {
+ alert(loc.send.qr_error_no_qrcode);
+ }
+ });
+ } else if (response.error) {
+ ScanQRCode.presentCameraNotAuthorizedAlert(response.error);
+ }
+ },
+ );
+ } else {
+ navigate('ScanQRCodeRoot', {
+ screen: 'ScanQRCode',
+ params: {
+ onBarScanned: onBarScanned,
+ showFileImportButton: true,
+ },
+ });
+ }
+ };
+
+ const exportPSBT = () => {
+ setIsLoading(true);
+ setTimeout(() => fs.writeFileAndExport(fileName, psbt.toBase64()).finally(() => setIsLoading(false)), 10);
+ };
+
+ return (
+
+
+
+
+ {!isShowOpenScanner && (
+ <>
+
+
+ >
+ )}
+
+ {isLoading ? (
+
+ ) : (
+
+ )}
+
+
+
+ );
+};
+
+const styles = StyleSheet.create({
+ root: {
+ flex: 1,
+ },
+ scrollViewContent: {
+ flexGrow: 1,
+ justifyContent: 'space-between',
+ },
+ modalContentShort: {
+ marginLeft: 20,
+ marginRight: 20,
+ },
+ copyToClipboard: {
+ justifyContent: 'center',
+ alignItems: 'center',
+ },
+ exportButton: {
+ height: 48,
+ borderRadius: 8,
+ flex: 1,
+ justifyContent: 'center',
+ paddingHorizontal: 16,
+ },
+});
+
+PsbtMultisigQRCode.navigationOptions = () => ({
+ ...BlueNavigationStyle(null, false),
+ title: loc.multisig.header,
+});
+
+export default PsbtMultisigQRCode;
diff --git a/screen/send/success.js b/screen/send/success.js
index cd7a9602a..6a36363c3 100644
--- a/screen/send/success.js
+++ b/screen/send/success.js
@@ -15,7 +15,7 @@ const Success = () => {
};
const { colors } = useTheme();
const { dangerouslyGetParent } = useNavigation();
- const { amount = 0, fee = 0, amountUnit = BitcoinUnit.BTC, invoiceDescription = '', onDonePressed = pop } = useRoute().params;
+ const { amount, fee, amountUnit = BitcoinUnit.BTC, invoiceDescription = '', onDonePressed = pop } = useRoute().params;
const stylesHook = StyleSheet.create({
root: {
backgroundColor: colors.elevated,
@@ -76,10 +76,12 @@ export const SuccessView = ({ amount, amountUnit, fee, invoiceDescription, shoul
- <>
- {amount}
- {' ' + amountUnit}
- >
+ {amount && (
+ <>
+ {amount}
+ {' ' + amountUnit}
+ >
+ )}
{fee > 0 && (
diff --git a/screen/settings/encryptStorage.js b/screen/settings/encryptStorage.js
index d7f2a2c1b..6072f6a69 100644
--- a/screen/settings/encryptStorage.js
+++ b/screen/settings/encryptStorage.js
@@ -4,7 +4,7 @@ import { ScrollView, Alert, Platform, TouchableOpacity, TouchableWithoutFeedback
import { useNavigation } from '@react-navigation/native';
import ReactNativeHapticFeedback from 'react-native-haptic-feedback';
import {
- BlueLoadingHook,
+ BlueLoading,
SafeBlueArea,
BlueSpacing20,
BlueCard,
@@ -149,7 +149,7 @@ const EncryptStorage = () => {
return isLoading ? (
-
+
) : (
diff --git a/screen/settings/language.js b/screen/settings/language.js
index 9558e5d2f..88117a650 100644
--- a/screen/settings/language.js
+++ b/screen/settings/language.js
@@ -1,6 +1,6 @@
import React, { useState, useEffect, useCallback } from 'react';
import { FlatList, StyleSheet } from 'react-native';
-import { SafeBlueArea, BlueListItem, BlueCard, BlueLoadingHook, BlueNavigationStyle, BlueText } from '../../BlueComponents';
+import { SafeBlueArea, BlueListItem, BlueCard, BlueLoading, BlueNavigationStyle, BlueText } from '../../BlueComponents';
import { AvailableLanguages } from '../../loc/languages';
import loc from '../../loc';
@@ -40,7 +40,7 @@ const Language = () => {
);
return isLoading ? (
-
+
) : (
`${index}`} data={AvailableLanguages} renderItem={renderItem} />
diff --git a/screen/settings/licensing.js b/screen/settings/licensing.js
index d1fd9753c..2c35636c9 100644
--- a/screen/settings/licensing.js
+++ b/screen/settings/licensing.js
@@ -1,6 +1,6 @@
import React, { useState, useEffect } from 'react';
import { ScrollView, StyleSheet } from 'react-native';
-import { SafeBlueArea, BlueCard, BlueText, BlueNavigationStyle, BlueSpacing20, BlueLoadingHook } from '../../BlueComponents';
+import { SafeBlueArea, BlueCard, BlueText, BlueNavigationStyle, BlueSpacing20, BlueLoading } from '../../BlueComponents';
/** @type {AppStorage} */
const styles = StyleSheet.create({
@@ -17,7 +17,7 @@ const Licensing = () => {
}, []);
return isLoading ? (
-
+
) : (
diff --git a/screen/settings/lightningSettings.js b/screen/settings/lightningSettings.js
index d64614704..25b94986e 100644
--- a/screen/settings/lightningSettings.js
+++ b/screen/settings/lightningSettings.js
@@ -11,7 +11,7 @@ import {
SafeBlueArea,
BlueCard,
BlueNavigationStyle,
- BlueLoadingHook,
+ BlueLoading,
BlueText,
BlueButtonLink,
} from '../../BlueComponents';
@@ -130,7 +130,7 @@ const LightningSettings = () => {
- {isLoading ? : }
+ {isLoading ? : }
);
diff --git a/screen/transactions/details.js b/screen/transactions/details.js
index 9628d3c03..2dd24d3b8 100644
--- a/screen/transactions/details.js
+++ b/screen/transactions/details.js
@@ -1,5 +1,5 @@
/* global alert */
-import React, { Component } from 'react';
+import React, { useContext, useEffect, useState } from 'react';
import { View, ScrollView, TouchableOpacity, Text, TextInput, Linking, StatusBar, StyleSheet, Keyboard } from 'react-native';
import {
SafeBlueArea,
@@ -12,12 +12,227 @@ import {
} from '../../BlueComponents';
import HandoffSettings from '../../class/handoff';
import Handoff from 'react-native-handoff';
-import PropTypes from 'prop-types';
import loc from '../../loc';
-import { BlueCurrentTheme } from '../../components/themes';
import { BlueStorageContext } from '../../blue_modules/storage-context';
+import { useNavigation, useRoute, useTheme } from '@react-navigation/native';
const dayjs = require('dayjs');
+function onlyUnique(value, index, self) {
+ return self.indexOf(value) === index;
+}
+
+function arrDiff(a1, a2) {
+ const ret = [];
+ for (const v of a2) {
+ if (a1.indexOf(v) === -1) {
+ ret.push(v);
+ }
+ }
+ return ret;
+}
+
+const TransactionsDetails = () => {
+ const { setOptions } = useNavigation();
+ const { hash } = useRoute().params;
+ const { saveToDisk, txMetadata, wallets, getTransactions } = useContext(BlueStorageContext);
+ const [isHandOffUseEnabled, setIsHandOffUseEnabled] = useState(false);
+ const [from, setFrom] = useState();
+ const [to, setTo] = useState();
+ const [isLoading, setIsLoading] = useState(true);
+ const [tx, setTX] = useState();
+ const [memo, setMemo] = useState();
+ const { colors } = useTheme();
+ const stylesHooks = StyleSheet.create({
+ rowCaption: {
+ color: colors.foregroundColor,
+ },
+ txId: {
+ color: colors.foregroundColor,
+ },
+ txLink: {
+ color: colors.alternativeTextColor2,
+ },
+ saveText: {
+ color: colors.alternativeTextColor2,
+ },
+ memoTextInput: {
+ borderColor: colors.formBorder,
+ borderBottomColor: colors.formBorder,
+ backgroundColor: colors.inputBackgroundColor,
+ },
+ });
+
+ useEffect(() => {
+ setOptions({
+ headerRight: () => (
+
+ {loc.wallets.details_save}
+
+ ),
+ headerStyle: {
+ borderBottomWidth: 0,
+ elevation: 0,
+ shadowOpacity: 0,
+ shadowOffset: { height: 0, width: 0 },
+ backgroundColor: colors.customHeader,
+ },
+ });
+ // eslint-disable-next-line react-hooks/exhaustive-deps
+ }, [colors, isLoading, memo]);
+
+ useEffect(() => {
+ let foundTx = {};
+ let from = [];
+ let to = [];
+ for (const tx of getTransactions()) {
+ if (tx.hash === hash) {
+ foundTx = tx;
+ for (const input of foundTx.inputs) {
+ from = from.concat(input.addresses);
+ }
+ for (const output of foundTx.outputs) {
+ if (output.addresses) to = to.concat(output.addresses);
+ if (output.scriptPubKey && output.scriptPubKey.addresses) to = to.concat(output.scriptPubKey.addresses);
+ }
+ }
+ }
+
+ for (const w of wallets) {
+ for (const t of w.getTransactions()) {
+ if (t.hash === hash) {
+ console.log('tx', hash, 'belongs to', w.getLabel());
+ }
+ }
+ }
+ if (txMetadata[foundTx.hash]) {
+ if (txMetadata[foundTx.hash].memo) {
+ setMemo(txMetadata[foundTx.hash].memo);
+ }
+ }
+
+ setTX(foundTx);
+ setFrom(from);
+ setTo(to);
+ setIsLoading(false);
+ // eslint-disable-next-line react-hooks/exhaustive-deps
+ }, [hash]);
+
+ useEffect(() => {
+ HandoffSettings.isHandoffUseEnabled().then(setIsHandOffUseEnabled);
+ // eslint-disable-next-line react-hooks/exhaustive-deps
+ }, []);
+
+ const handleOnSaveButtonTapped = () => {
+ Keyboard.dismiss();
+ txMetadata[tx.hash] = { memo };
+ saveToDisk().then(_success => alert(loc.transactions.transaction_note_saved));
+ };
+
+ const handleOnOpenTransactionOnBlockExporerTapped = () => {
+ const url = `https://blockstream.info/tx/${tx.hash}`;
+ Linking.canOpenURL(url).then(supported => {
+ if (supported) {
+ Linking.openURL(url);
+ }
+ });
+ };
+
+ if (isLoading || !tx) {
+ return ;
+ }
+
+ return (
+
+ {isHandOffUseEnabled && (
+
+ )}
+
+
+
+
+
+
+
+
+ {from && (
+ <>
+
+ {loc.transactions.details_from}
+
+
+ {from.filter(onlyUnique).join(', ')}
+ >
+ )}
+
+ {to && (
+ <>
+
+ {loc.transactions.details_to}
+
+
+ {arrDiff(from, to.filter(onlyUnique)).join(', ')}
+ >
+ )}
+
+ {tx.fee && (
+ <>
+ {loc.send.create_fee}
+ {tx.fee + ' sats'}
+ >
+ )}
+
+ {tx.hash && (
+ <>
+
+ Txid
+
+
+ {tx.hash}
+
+ {loc.transactions.details_show_in_block_explorer}
+
+ >
+ )}
+
+ {tx.received && (
+ <>
+ {loc.transactions.details_received}
+ {dayjs(tx.received).format('MM/DD/YYYY h:mm A')}
+ >
+ )}
+
+ {tx.block_height > 0 && (
+ <>
+ {loc.transactions.details_block}
+ {tx.block_height}
+ >
+ )}
+
+ {tx.inputs && (
+ <>
+ {loc.transactions.details_inputs}
+ {tx.inputs.length}
+ >
+ )}
+
+ {tx.outputs.length > 0 && (
+ <>
+ {loc.transactions.details_outputs}
+ {tx.outputs.length}
+ >
+ )}
+
+
+
+ );
+};
+
const styles = StyleSheet.create({
root: {
flex: 1,
@@ -35,7 +250,6 @@ const styles = StyleSheet.create({
fontSize: 16,
fontWeight: '500',
marginBottom: 4,
- color: BlueCurrentTheme.colors.foregroundColor,
},
rowValue: {
marginBottom: 26,
@@ -44,7 +258,6 @@ const styles = StyleSheet.create({
txId: {
fontSize: 16,
fontWeight: '500',
- color: BlueCurrentTheme.colors.foregroundColor,
},
txHash: {
marginBottom: 8,
@@ -52,23 +265,16 @@ const styles = StyleSheet.create({
},
txLink: {
marginBottom: 26,
- color: BlueCurrentTheme.colors.alternativeTextColor2,
},
save: {
marginHorizontal: 16,
justifyContent: 'center',
alignItems: 'center',
},
- saveText: {
- color: BlueCurrentTheme.colors.alternativeTextColor2,
- },
memoTextInput: {
flexDirection: 'row',
- borderColor: BlueCurrentTheme.colors.formBorder,
- borderBottomColor: BlueCurrentTheme.colors.formBorder,
borderWidth: 1,
borderBottomWidth: 0.5,
- backgroundColor: BlueCurrentTheme.colors.inputBackgroundColor,
minHeight: 44,
height: 44,
alignItems: 'center',
@@ -79,221 +285,9 @@ const styles = StyleSheet.create({
},
});
-function onlyUnique(value, index, self) {
- return self.indexOf(value) === index;
-}
+export default TransactionsDetails;
-function arrDiff(a1, a2) {
- const ret = [];
- for (const v of a2) {
- if (a1.indexOf(v) === -1) {
- ret.push(v);
- }
- }
- return ret;
-}
-
-export default class TransactionsDetails extends Component {
- static contextType = BlueStorageContext;
-
- constructor(props, context) {
- super(props);
- const hash = props.route.params.hash;
- let foundTx = {};
- let from = [];
- let to = [];
- for (const tx of context.getTransactions()) {
- if (tx.hash === hash) {
- foundTx = tx;
- for (const input of foundTx.inputs) {
- from = from.concat(input.addresses);
- }
- for (const output of foundTx.outputs) {
- if (output.addresses) to = to.concat(output.addresses);
- if (output.scriptPubKey && output.scriptPubKey.addresses) to = to.concat(output.scriptPubKey.addresses);
- }
- }
- }
-
- let wallet = false;
- for (const w of context.wallets) {
- for (const t of w.getTransactions()) {
- if (t.hash === hash) {
- console.log('tx', hash, 'belongs to', w.getLabel());
- wallet = w;
- }
- }
- }
- let memo = '';
- if (context.txMetadata[foundTx.hash]) {
- if (context.txMetadata[foundTx.hash].memo) {
- memo = context.txMetadata[foundTx.hash].memo;
- }
- }
- this.state = {
- isLoading: true,
- tx: foundTx,
- from,
- to,
- wallet,
- isHandOffUseEnabled: false,
- memo,
- };
- }
-
- async componentDidMount() {
- console.log('transactions/details - componentDidMount');
- this.props.navigation.setParams({ handleOnSaveButtonTapped: this.handleOnSaveButtonTapped });
- const isHandOffUseEnabled = await HandoffSettings.isHandoffUseEnabled();
- this.setState({
- isLoading: false,
- isHandOffUseEnabled,
- });
- }
-
- handleOnSaveButtonTapped = () => {
- Keyboard.dismiss();
- this.context.txMetadata[this.state.tx.hash] = { memo: this.state.memo };
- this.context.saveToDisk().then(_success => alert('Transaction note has been successfully saved.'));
- };
-
- handleOnMemoChangeText = value => {
- this.setState({ memo: value });
- };
-
- render() {
- if (this.state.isLoading || !('tx' in this.state)) {
- return ;
- }
-
- return (
-
- {this.state.isHandOffUseEnabled && (
-
- )}
-
-
-
-
-
-
-
-
- {'from' in this.state && (
- <>
-
- {loc.transactions.details_from}
-
-
- {this.state.from.filter(onlyUnique).join(', ')}
- >
- )}
-
- {'to' in this.state && (
- <>
-
- {loc.transactions.details_to}
-
-
- {arrDiff(this.state.from, this.state.to.filter(onlyUnique)).join(', ')}
- >
- )}
-
- {'fee' in this.state.tx && (
- <>
- {loc.send.create_fee}
- {this.state.tx.fee + ' sats'}
- >
- )}
-
- {'hash' in this.state.tx && (
- <>
-
- Txid
-
-
- {this.state.tx.hash}
- {
- const url = `https://blockstream.info/tx/${this.state.tx.hash}`;
- Linking.canOpenURL(url).then(supported => {
- if (supported) {
- Linking.openURL(url);
- }
- });
- }}
- >
- {loc.transactions.details_show_in_block_explorer}
-
- >
- )}
-
- {'received' in this.state.tx && (
- <>
- {loc.transactions.details_received}
- {dayjs(this.state.tx.received).format('MM/DD/YYYY h:mm A')}
- >
- )}
-
- {'block_height' in this.state.tx && this.state.tx.block_height > 0 && (
- <>
- {loc.transactions.details_block}
- {this.state.tx.block_height}
- >
- )}
-
- {'inputs' in this.state.tx && (
- <>
- {loc.transactions.details_inputs}
- {this.state.tx.inputs.length}
- >
- )}
-
- {'outputs' in this.state.tx && this.state.tx.outputs.length > 0 && (
- <>
- {loc.transactions.details_outputs}
- {this.state.tx.outputs.length}
- >
- )}
-
-
-
- );
- }
-}
-
-TransactionsDetails.propTypes = {
- route: PropTypes.shape({
- name: PropTypes.string,
- params: PropTypes.shape({
- hash: PropTypes.string,
- }),
- }),
- navigation: PropTypes.shape({
- setParams: PropTypes.func,
- }),
-};
-
-TransactionsDetails.navigationOptions = ({ navigation, route }) => ({
+TransactionsDetails.navigationOptions = () => ({
...BlueNavigationStyle(),
title: loc.transactions.details_title,
- headerStyle: {
- ...BlueNavigationStyle().headerStyle,
- backgroundColor: BlueCurrentTheme.colors.customHeader,
- },
- headerRight: () => (
-
- {loc.wallets.details_save}
-
- ),
});
diff --git a/screen/wallets/add.js b/screen/wallets/add.js
index 4e7d6428d..26efa15b7 100644
--- a/screen/wallets/add.js
+++ b/screen/wallets/add.js
@@ -22,7 +22,7 @@ import {
BlueFormLabel,
BlueButton,
BlueNavigationStyle,
- BlueButtonLinkHook,
+ BlueButtonLink,
BlueSpacing20,
} from '../../BlueComponents';
import { HDSegwitBech32Wallet, SegwitP2SHWallet, HDSegwitP2SHWallet, LightningCustodianWallet, AppStorage } from '../../class';
@@ -310,7 +310,7 @@ const WalletsAdd = () => {
}
})()}
{isAdvancedOptionsEnabled && selectedWalletType === ButtonSelected.ONCHAIN && !isLoading && (
-
+
)}
@@ -321,7 +321,7 @@ const WalletsAdd = () => {
)}
{!isLoading && (
- {
if (cosignersCopy.length === n) setIsOnCreateButtonEnabled(true);
setIsProvideMnemonicsModalVisible(false);
setIsLoading(false);
+ setImportText('');
+ };
+
+ const isValidMnemonicSeed = mnemonicSeed => {
+ const hd = new HDSegwitBech32Wallet();
+ hd.setSecret(mnemonicSeed);
+ return hd.validateMnemonic();
};
const onBarScanned = ret => {
@@ -298,6 +305,9 @@ const WalletsAddMultisigStep2 = () => {
if (!ret.data) ret = { data: ret };
if (ret.data.toUpperCase().startsWith('UR')) {
alert('BC-UR not decoded. This should never happen');
+ } else if (isValidMnemonicSeed(ret.data)) {
+ setIsProvideMnemonicsModalVisible(true);
+ setImportText(ret.data);
} else {
let cosigner = new MultisigCosigner(ret.data);
if (!cosigner.isValid()) return alert(loc.multisig.invalid_cosigner);
@@ -572,7 +582,7 @@ const WalletsAddMultisigStep2 = () => {
) : (
)}
-
+
@@ -620,7 +630,7 @@ const WalletsAddMultisigStep2 = () => {
);
};
const footer = isLoading ? (
-
+
) : (
diff --git a/screen/wallets/details.js b/screen/wallets/details.js
index 295af51a2..8afa1392f 100644
--- a/screen/wallets/details.js
+++ b/screen/wallets/details.js
@@ -16,7 +16,7 @@ import {
StatusBar,
PermissionsAndroid,
} from 'react-native';
-import { SecondButton, SafeBlueArea, BlueCard, BlueSpacing20, BlueNavigationStyle, BlueText, BlueLoadingHook } from '../../BlueComponents';
+import { SecondButton, SafeBlueArea, BlueCard, BlueSpacing20, BlueNavigationStyle, BlueText, BlueLoading } from '../../BlueComponents';
import { LightningCustodianWallet } from '../../class/wallets/lightning-custodian-wallet';
import { HDLegacyBreadwalletWallet } from '../../class/wallets/hd-legacy-breadwallet-wallet';
import { HDLegacyP2PKHWallet } from '../../class/wallets/hd-legacy-p2pkh-wallet';
@@ -368,7 +368,7 @@ const WalletDetails = () => {
return isLoading ? (
-
+
) : (
diff --git a/screen/wallets/transactions.js b/screen/wallets/transactions.js
index a614f612b..21a792d07 100644
--- a/screen/wallets/transactions.js
+++ b/screen/wallets/transactions.js
@@ -140,6 +140,15 @@ const WalletTransactions = () => {
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [walletID]);
+ // if balance of the wallet positive and there are no transactions, then
+ // it'a freshly impoted wallet and we need to refresh transactions
+ useEffect(() => {
+ if (dataSource.length === 0 && wallet.current.getBalance() > 0) {
+ refreshTransactions();
+ }
+ // eslint-disable-next-line react-hooks/exhaustive-deps
+ }, []);
+
// if description of transaction has been changed we want to show new one
useFocusEffect(
useCallback(() => {
diff --git a/screen/wallets/viewEditMultisigCosigners.js b/screen/wallets/viewEditMultisigCosigners.js
index 019e01860..6682e5db3 100644
--- a/screen/wallets/viewEditMultisigCosigners.js
+++ b/screen/wallets/viewEditMultisigCosigners.js
@@ -22,9 +22,9 @@ import ImagePicker from 'react-native-image-picker';
import {
BlueButton,
- BlueButtonLinkHook,
+ BlueButtonLink,
BlueFormMultiInput,
- BlueLoadingHook,
+ BlueLoading,
BlueNavigationStyle,
BlueSpacing10,
BlueSpacing20,
@@ -441,7 +441,7 @@ const ViewEditMultisigCosigners = () => {
onPress={handleUseMnemonicPhrase}
/>
)}
-
+
@@ -451,7 +451,7 @@ const ViewEditMultisigCosigners = () => {
if (isLoading)
return (
-
+
);
diff --git a/scripts/edit-version-number.sh b/scripts/edit-version-number.sh
index 53d7a366c..cc8a4cc2b 100755
--- a/scripts/edit-version-number.sh
+++ b/scripts/edit-version-number.sh
@@ -1,12 +1,4 @@
-vim ios/BlueWallet/Info.plist
-vim ios/BlueWalletWatch/Info.plist
-vim "ios/BlueWalletWatch Extension/Info.plist"
-vim "ios/TodayExtension/Info.plist"
vim ios/BlueWallet.xcodeproj/project.pbxproj
-vim ios/WalletInformationWidget/Widgets/MarketWidget/Info.plist
-vim ios/WalletInformationWidget/Widgets/WalletInformationAndMarketWidget/Info.plist
-vim ios/WalletInformationWidget/Info.plist
-vim ios/WalletInformationWidget/Widgets/PriceWidget/Info.plist
vim android/app/build.gradle
vim package.json
vim package-lock.json