@Override protected void internalTransition(HardwareWalletClient client, HardwareWalletContext context, MessageEvent event) { switch (event.getEventType()) { case FEATURES: Features features = (Features) event.getMessage().get(); context.setFeatures(features); // Verify the Features through the client if (!client.verifyFeatures(features)) { features.setSupported(false); context.resetToFailed(); } else { features.setSupported(true); context.resetToInitialised(); } break; case FAILURE: HardwareWalletEvents.fireHardwareWalletEvent(HardwareWalletEventType.SHOW_OPERATION_FAILED, event.getMessage().get(), client.name()); context.resetToInitialised(); break; default: handleUnexpectedMessageEvent(context, event); } } }
context.resetToInitialised(); break; default:
@Override protected void internalTransition(HardwareWalletClient client, HardwareWalletContext context, MessageEvent event) { switch (event.getEventType()) { case BUTTON_REQUEST: // Device is asking for the user to acknowledge a word display HardwareWalletEvents.fireHardwareWalletEvent(HardwareWalletEventType.SHOW_BUTTON_PRESS, event.getMessage().get(), client.name()); client.buttonAck(); break; case SUCCESS: // Device has completed the create wallet operation HardwareWalletEvents.fireHardwareWalletEvent(HardwareWalletEventType.SHOW_OPERATION_SUCCEEDED, event.getMessage().get(), client.name()); // Ensure the Features are updated context.resetToConnected(); break; case FAILURE: // User has cancelled or operation failed HardwareWalletEvents.fireHardwareWalletEvent(HardwareWalletEventType.SHOW_OPERATION_FAILED, event.getMessage().get(), client.name()); context.resetToInitialised(); break; default: handleUnexpectedMessageEvent(context, event); } } }
@Override protected void internalTransition(HardwareWalletClient client, HardwareWalletContext context, MessageEvent event) { switch (event.getEventType()) { case PIN_MATRIX_REQUEST: // Device is asking for a PIN matrix to be displayed (user must read the screen carefully) HardwareWalletEvents.fireHardwareWalletEvent(HardwareWalletEventType.SHOW_PIN_ENTRY, event.getMessage().get(), client.name()); // Further state transitions will occur after the user has provided the PIN via the service break; case PASSPHRASE_REQUEST: // Device is asking for a passphrase screen to be displayed HardwareWalletEvents.fireHardwareWalletEvent(HardwareWalletEventType.SHOW_PASSPHRASE_ENTRY, client.name()); // Further state transitions will occur after the user has provided the passphrase via the service break; case PUBLIC_KEY: // Device has completed the operation and provided a public key HardwareWalletEvents.fireHardwareWalletEvent(HardwareWalletEventType.PUBLIC_KEY, event.getMessage().get(), client.name()); break; case FAILURE: // User has cancelled or operation failed HardwareWalletEvents.fireHardwareWalletEvent(HardwareWalletEventType.SHOW_OPERATION_FAILED, event.getMessage().get(), client.name()); context.resetToInitialised(); break; default: handleUnexpectedMessageEvent(context, event); } } }
context.resetToInitialised(); break; default:
context.resetToInitialised(); break; default:
context.resetToInitialised(); break; default:
@Override protected void internalTransition(HardwareWalletClient client, HardwareWalletContext context, MessageEvent event) { switch (event.getEventType()) { case BUTTON_REQUEST: // Device is asking for button press (entropy display, confirmation of reset etc) HardwareWalletEvents.fireHardwareWalletEvent(HardwareWalletEventType.SHOW_BUTTON_PRESS, event.getMessage().get(), client.name()); client.buttonAck(); break; case PIN_MATRIX_REQUEST: // Device is asking for a PIN matrix to be displayed (user must read the screen carefully) HardwareWalletEvents.fireHardwareWalletEvent(HardwareWalletEventType.SHOW_PIN_ENTRY, event.getMessage().get(), client.name()); // Further state transitions will occur after the user has provided the PIN via the service break; case PASSPHRASE_REQUEST: // Device is asking for a passphrase screen to be displayed HardwareWalletEvents.fireHardwareWalletEvent(HardwareWalletEventType.SHOW_PASSPHRASE_ENTRY, client.name()); // Further state transitions will occur after the user has provided the passphrase via the service break; case FAILURE: // User has cancelled or operation failed HardwareWalletEvents.fireHardwareWalletEvent(HardwareWalletEventType.SHOW_OPERATION_FAILED, event.getMessage().get(), client.name()); context.resetToInitialised(); break; default: handleUnexpectedMessageEvent(context, event); } } }
@Override protected void internalTransition(HardwareWalletClient client, HardwareWalletContext context, MessageEvent event) { switch (event.getEventType()) { case PIN_MATRIX_REQUEST: // Device is asking for a PIN matrix to be displayed (user must read the screen carefully) HardwareWalletEvents.fireHardwareWalletEvent(HardwareWalletEventType.SHOW_PIN_ENTRY, event.getMessage().get(), client.name()); // Further state transitions will occur after the user has provided the PIN via the service break; case PASSPHRASE_REQUEST: // Device is asking for a passphrase screen to be displayed HardwareWalletEvents.fireHardwareWalletEvent(HardwareWalletEventType.SHOW_PASSPHRASE_ENTRY, client.name()); // Further state transitions will occur after the user has provided the passphrase via the service break; case ENTROPY_REQUEST: // Device is asking for additional entropy from the user HardwareWalletEvents.fireHardwareWalletEvent(HardwareWalletEventType.PROVIDE_ENTROPY, client.name()); // Further state transitions will occur after the user has provided the entropy via the service break; case FAILURE: // User has cancelled or operation failed HardwareWalletEvents.fireHardwareWalletEvent(HardwareWalletEventType.SHOW_OPERATION_FAILED, event.getMessage().get(), client.name()); context.resetToInitialised(); break; default: handleUnexpectedMessageEvent(context, event); } } }
context.resetToInitialised(); break; default:
context.resetToInitialised(); break; default:
context.resetToInitialised(); break; default:
context.resetToInitialised(); break; default:
context.resetToInitialised(); break; default:
context.resetToInitialised(); break; default: