@trezor/connect
Version:
High-level javascript interface for Trezor hardware wallet.
59 lines (58 loc) • 1.79 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
const schema_utils_1 = require("@trezor/schema-utils");
const AbstractMethod_1 = require("../core/AbstractMethod");
const paramsValidator_1 = require("./common/paramsValidator");
const DataManager_1 = require("../data/DataManager");
const requestLogin_1 = require("../types/api/requestLogin");
class RequestLogin extends AbstractMethod_1.AbstractMethod {
init() {
this.requiredPermissions = ['read', 'write'];
this.firmwareRange = (0, paramsValidator_1.getFirmwareRange)(this.name, null, this.firmwareRange);
this.useEmptyPassphrase = true;
const {
payload
} = this;
(0, schema_utils_1.Assert)(requestLogin_1.RequestLoginSchema, payload);
const identity = {};
const settings = DataManager_1.DataManager.getSettings();
let origin;
if (settings.trustedHost && payload.origin) {
origin = payload.origin;
} else if (settings.origin) {
origin = settings.origin;
}
if (origin) {
const [proto, host, port] = origin.split(':');
identity.proto = proto;
identity.host = host.substring(2);
if (port) {
identity.port = port;
}
identity.index = 0;
}
this.params = {
identity,
challenge_hidden: payload.challengeHidden || '',
challenge_visual: payload.challengeVisual || ''
};
}
get info() {
return 'Login';
}
async run() {
const cmd = this.device.getCommands();
const {
message
} = await cmd.typedCall('SignIdentity', 'SignedIdentity', this.params);
return {
address: message.address,
publicKey: message.public_key,
signature: message.signature
};
}
}
exports.default = RequestLogin;
//# sourceMappingURL=requestLogin.js.map