Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
TrezorConnect.off(DEVICE_EVENT, connectHandler)
for (const connectEvent of connectEvents)
this.handleConnectTrezor(connectEvent)
TrezorConnect.on(DEVICE_EVENT, (event: any) => {
if (event.type === 'device-connect') {
this.handleConnectTrezor(event)
} else if (event.type === 'device-changed') {
this.handleChangeTrezor(event)
} else if (event.type === 'device-disconnect') {
this.handleDisconnectTrezor(event)
}
})
TrezorConnect.on(TRANSPORT_EVENT, (event) => {
// Log TrezorConnect's event raw:
try {
let device_id = event.payload && event.payload.features
? event.payload.features.device_id
: ''
this.keyring.emit(['Trezor', device_id, event.type], event)
} catch(e) {
console.error('Could not emit Trezor transport event', event, e)
}
})
TrezorConnect.on(UI.ADDRESS_VALIDATION, (event) => {
console.log('Confirm on Trezor', event)
})
return true
}
})
TrezorConnect.on(TRANSPORT_EVENT, (event) => {
// Log TrezorConnect's event raw:
try {
let device_id = event.payload && event.payload.features
? event.payload.features.device_id
: ''
this.keyring.emit(['Trezor', device_id, event.type], event)
} catch(e) {
console.error('Could not emit Trezor transport event', event, e)
}
})
TrezorConnect.on(UI.ADDRESS_VALIDATION, (event) => {
console.log('Confirm on Trezor', event)
})
return true
}
private async connectInit (args: TrezorConnectArgs): Promise {
// Collect connect events that happen during init, but don't handle them
// until after init has resolved. This awkward sequence is needed because we
// need TrezorConnect to be fully operational before we're able to process
// the events.
let connectEvents = []
let connectHandler = (event: any) => {
if (event.type === 'device-connect') {
connectEvents.push(event)
}
}
TrezorConnect.on(DEVICE_EVENT, connectHandler)
// TODO: using this in electron will needs some more scaffolding:
// https://github.com/szymonlesisz/trezor-connect-electron-boilerplate/blob/master/src/electron.js
await TrezorConnect.init({
...args,
popup: POPUP,
lazyLoad: false
})
TrezorConnect.off(DEVICE_EVENT, connectHandler)
for (const connectEvent of connectEvents)
this.handleConnectTrezor(connectEvent)
TrezorConnect.on(DEVICE_EVENT, (event: any) => {
if (event.type === 'device-connect') {
TrezorConnect.on(DEVICE_EVENT, connectHandler)
// TODO: using this in electron will needs some more scaffolding:
// https://github.com/szymonlesisz/trezor-connect-electron-boilerplate/blob/master/src/electron.js
await TrezorConnect.init({
...args,
popup: POPUP,
lazyLoad: false
})
TrezorConnect.off(DEVICE_EVENT, connectHandler)
for (const connectEvent of connectEvents)
this.handleConnectTrezor(connectEvent)
TrezorConnect.on(DEVICE_EVENT, (event: any) => {
if (event.type === 'device-connect') {
this.handleConnectTrezor(event)
} else if (event.type === 'device-changed') {
this.handleChangeTrezor(event)
} else if (event.type === 'device-disconnect') {
this.handleDisconnectTrezor(event)
}
})
TrezorConnect.on(TRANSPORT_EVENT, (event) => {
// Log TrezorConnect's event raw:
try {
let device_id = event.payload && event.payload.features
? event.payload.features.device_id
: ''
this.keyring.emit(['Trezor', device_id, event.type], event)
async connectWallet(derivationPath: string) {
const { loginWithTrezor, logout } = this.props;
const result = await TrezorConnect.ethereumGetAddress({
path: derivationPath,
});
TrezorConnect.on(DEVICE_EVENT, (event: any) => {
switch (event.type) {
case DEVICE.DISCONNECT: {
logout();
break;
}
default:
break;
}
});
if (result.success) {
const { address } = result.payload;
if (address) {
this.props.onSuccess();
async connectWallet(derivationPath) {
const { loginWithTrezor, logout } = this.props;
const result = await TrezorConnect.ethereumGetAddress({
path: derivationPath
});
TrezorConnect.on(DEVICE_EVENT, event => {
switch (event.type) {
case DEVICE.DISCONNECT: {
logout();
break;
}
default:
break;
}
});
if (result.success) {
const { address } = result.payload;
if (address) {
return loginWithTrezor(
address.toLowerCase(),
_addTrezorConnectEventListeners = (): void => {
if (TrezorConnect) {
TrezorConnect.on(DEVICE_EVENT, this._onTrezorDeviceEvent);
TrezorConnect.on(UI_EVENT, this._onTrezorUIEvent);
} else {
Logger.error('TrezorConnectStore::_addTrezorConnectEventListeners:: TrezorConnect not installed');
}
};