FIX: tcp module warnings

This commit is contained in:
Overtorment 2020-06-15 11:05:11 +01:00
parent c7be4fb3e4
commit 8a4bd4d8a6
7 changed files with 42 additions and 29 deletions

View file

@ -14,6 +14,8 @@ import TcpSocket from 'react-native-tcp-socket';
*/
function Socket() {
this._socket = false; // reference to socket thats gona be created later
// defaults:
this._noDelay = true;
this._listeners = {};
@ -21,7 +23,12 @@ function Socket() {
this.setTimeout = () => {};
this.setEncoding = () => {};
this.setKeepAlive = () => {};
this.setNoDelay = () => {};
// proxying call to real socket object:
this.setNoDelay = noDelay => {
if (this._socket) this._socket.setNoDelay(noDelay);
this._noDelay = noDelay;
};
this.connect = (port, host, callback) => {
this._socket = TcpSocket.createConnection(
@ -36,15 +43,6 @@ function Socket() {
this._socket.on('data', data => {
this._passOnEvent('data', data);
});
this._socket.on('end', data => {
this._passOnEvent('end', data);
});
this._socket.on('timeout', () => {
this._passOnEvent('timeout');
});
this._socket.on('onerror', data => {
this._passOnEvent('onerror', data);
});
this._socket.on('error', data => {
this._passOnEvent('error', data);
});
@ -53,9 +51,7 @@ function Socket() {
});
this._socket.on('connect', data => {
this._passOnEvent('connect', data);
});
this._socket.on('secureConnect', data => {
this._passOnEvent('secureConnect', data);
this._socket.setNoDelay(this._noDelay);
});
this._socket.on('connection', data => {
this._passOnEvent('connection', data);

View file

@ -22,10 +22,23 @@ function connect(config, callback) {
callback,
);
// defaults:
this._noDelay = true;
// functions not supported by RN module, yet:
client.setTimeout = () => {};
client.setEncoding = () => {};
client.setKeepAlive = () => {};
client.setNoDelay = () => {};
// we will save `noDelay` and proxy it to socket object when its actually created and connected:
const realSetNoDelay = client.setNoDelay; // reference to real setter
client.setNoDelay = noDelay => {
this._noDelay = noDelay;
};
client.on('connect', () => {
realSetNoDelay.apply(client, [this._noDelay]);
});
return client;
}

View file

@ -2,6 +2,7 @@ PODS:
- boost-for-react-native (1.63.0)
- BVLinearGradient (2.5.6):
- React
- CocoaAsyncSocket (7.6.4)
- DoubleConversion (1.1.6)
- EFQRCode (5.1.0):
- swift_qrcodejs (~> 1.1.1)
@ -214,7 +215,8 @@ PODS:
- React
- react-native-slider (2.0.8):
- React
- react-native-tcp (3.3.2):
- react-native-tcp-socket (3.7.1):
- CocoaAsyncSocket
- React
- react-native-webview (6.11.1):
- React
@ -283,7 +285,7 @@ PODS:
- React
- RNSecureKeyStore (1.0.0):
- React
- RNSentry (1.3.7):
- RNSentry (1.3.9):
- React
- Sentry (~> 4.4.0)
- RNShare (2.0.0):
@ -331,7 +333,7 @@ DEPENDENCIES:
- react-native-randombytes (from `../node_modules/react-native-randombytes`)
- react-native-safe-area-context (from `../node_modules/react-native-safe-area-context`)
- "react-native-slider (from `../node_modules/@react-native-community/slider`)"
- react-native-tcp (from `../node_modules/react-native-tcp`)
- react-native-tcp-socket (from `../node_modules/react-native-tcp-socket`)
- react-native-webview (from `../node_modules/react-native-webview`)
- React-RCTActionSheet (from `../node_modules/react-native/Libraries/ActionSheetIOS`)
- React-RCTAnimation (from `../node_modules/react-native/Libraries/NativeAnimation`)
@ -370,6 +372,7 @@ DEPENDENCIES:
SPEC REPOS:
trunk:
- boost-for-react-native
- CocoaAsyncSocket
- EFQRCode
- lottie-ios
- Sentry
@ -426,8 +429,8 @@ EXTERNAL SOURCES:
:path: "../node_modules/react-native-safe-area-context"
react-native-slider:
:path: "../node_modules/@react-native-community/slider"
react-native-tcp:
:path: "../node_modules/react-native-tcp"
react-native-tcp-socket:
:path: "../node_modules/react-native-tcp-socket"
react-native-webview:
:path: "../node_modules/react-native-webview"
React-RCTActionSheet:
@ -498,6 +501,7 @@ EXTERNAL SOURCES:
SPEC CHECKSUMS:
boost-for-react-native: 39c7adb57c4e60d6c5479dd8623128eb5b3f0f2c
BVLinearGradient: e3aad03778a456d77928f594a649e96995f1c872
CocoaAsyncSocket: 694058e7c0ed05a9e217d1b3c7ded962f4180845
DoubleConversion: 5805e889d232975c086db112ece9ed034df7a0b2
EFQRCode: 07ee69f29196329e974b9bffa5381240cc09ea4c
FBLazyVector: aaeaf388755e4f29cd74acbc9e3b8da6d807c37f
@ -524,7 +528,7 @@ SPEC CHECKSUMS:
react-native-randombytes: 991545e6eaaf700b4ee384c291ef3d572e0b2ca8
react-native-safe-area-context: 0b0460e3298465bdb4b859ea43c2d7b9128cf988
react-native-slider: b2f361499888302147205f17f6fffa921a7bda70
react-native-tcp: be8e119e631970aaeda7f6e3207f6b7be72d5eb8
react-native-tcp-socket: 96a4f104cdcc9c6621aafe92937f163d88447c5b
react-native-webview: f11ac6c8bcaba5b71ddda1c12a10c8ea059b080f
React-RCTActionSheet: 600b4d10e3aea0913b5a92256d2719c0cdd26d76
React-RCTAnimation: 791a87558389c80908ed06cc5dfc5e7920dfa360
@ -551,7 +555,7 @@ SPEC CHECKSUMS:
RNReactNativeHapticFeedback: 2566b468cc8d0e7bb2f84b23adc0f4614594d071
RNScreens: 62211832af51e0aebcf6e8c36bcf7dd65592f244
RNSecureKeyStore: f1ad870e53806453039f650720d2845c678d89c8
RNSentry: 370623102247ebea20191b5fb549ecc7a275b324
RNSentry: 9c9783b13fb5cba387fff55f085cc1da3854ce71
RNShare: 8b171d4b43c1d886917fdd303bf7a4b87167b05c
RNSVG: 8ba35cbeb385a52fd960fd28db9d7d18b4c2974f
RNVectorIcons: 0bb4def82230be1333ddaeee9fcba45f0b288ed4

6
package-lock.json generated
View file

@ -12087,9 +12087,9 @@
}
},
"react-native-tcp-socket": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/react-native-tcp-socket/-/react-native-tcp-socket-3.6.0.tgz",
"integrity": "sha512-lGnlklcHNCQSgdVhrF4fwslc6Xjk3nXLVqjqvJY1pSEJ9H8S4clZR4uwohfbM16VrHnUhBh4o/1wGRO/xrp7nQ==",
"version": "3.7.1",
"resolved": "https://registry.npmjs.org/react-native-tcp-socket/-/react-native-tcp-socket-3.7.1.tgz",
"integrity": "sha512-ToyFSYuJp0/DQ7bXd/vTwF5m3yhNSRngIpVlBFBDccDZQmp2qIo0exrObCNlJLOOHb38dil726hM+GKjR1/60w==",
"requires": {
"buffer": "^5.4.3"
}

View file

@ -133,7 +133,7 @@
"react-native-snap-carousel": "3.9.1",
"react-native-sortable-list": "0.0.24",
"react-native-svg": "9.13.6",
"react-native-tcp-socket": "3.6.0",
"react-native-tcp-socket": "3.7.1",
"react-native-tooltip": "git+https://github.com/marcosrdz/react-native-tooltip.git",
"react-native-vector-icons": "6.6.0",
"react-native-watch-connectivity": "0.4.2",

View file

@ -32,9 +32,6 @@ const styles = StyleSheet.create({
paddingRight: 16,
borderRadius: 20,
},
connectText: {
fontWeight: '600',
},
containerConnected: {
backgroundColor: '#D2F8D6',
},
@ -43,9 +40,11 @@ const styles = StyleSheet.create({
},
textConnected: {
color: '#37C0A1',
fontWeight: 'bold',
},
textDisconnected: {
color: '#D0021B',
fontWeight: 'bold',
},
hostname: {
textAlign: 'center',
@ -161,7 +160,7 @@ export default class ElectrumSettings extends Component {
<BlueText style={styles.status}>Status</BlueText>
<View style={styles.connectWrap}>
<View style={[styles.container, this.state.config.status === 1 ? styles.containerConnected : styles.containerDisconnected]}>
<BlueText style={[styles.connectText, this.state.config.status === 1 ? styles.textConnected : styles.textDisconnected]}>
<BlueText style={this.state.config.status === 1 ? styles.textConnected : styles.textDisconnected}>
{(this.state.config.status === 1 && 'Connected') || 'Not Connected'}
</BlueText>
</View>

View file

@ -200,6 +200,7 @@ export default class WalletsList extends Component {
await BlueApp.fetchWalletTransactions();
const end = +new Date();
console.log('fetch all wallet txs took', (end - start) / 1000, 'sec');
await BlueApp.saveToDisk();
} catch (error) {
console.log(error);
}