UNPKG

@venly/connect

Version:

Venly Connect SDK

216 lines • 11.2 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.PopupSigner = void 0; var tslib_1 = require("tslib"); var BuildTransactionRequest_1 = require("../models/transaction/build/BuildTransactionRequest"); var BuildSimpleTransactionRequest_1 = require("../models/transaction/build/BuildSimpleTransactionRequest"); var BuildTokenTransferRequest_1 = require("../models/transaction/build/BuildTokenTransferRequest"); var BuildNftTransferRequest_1 = require("../models/transaction/build/BuildNftTransferRequest"); var BuildGasTransferRequest_1 = require("../models/transaction/build/BuildGasTransferRequest"); var BuildContractExecutionRequest_1 = require("../models/transaction/build/BuildContractExecutionRequest"); var Popup_1 = tslib_1.__importDefault(require("../popup/Popup")); var EventTypes_1 = require("../types/EventTypes"); var Utils_1 = tslib_1.__importDefault(require("../utils/Utils")); var BuildMessageSignRequest_1 = require("../models/transaction/build/BuildMessageSignRequest"); var BuildEip712SignRequest_1 = require("../models/transaction/build/BuildEip712SignRequest"); var ImportWalletRequest_1 = require("../models/wallet/ImportWalletRequest"); var DialogWindow_1 = require("../dialog/DialogWindow"); var PopupSigner = /** @class */ (function () { function PopupSigner(bearerTokenProvider, clientId, options) { this.bearerTokenProvider = bearerTokenProvider; this.options = options; this.clientId = clientId; } PopupSigner.prototype.openPopup = function () { var _this = this; this.popup = new PopupSignerPopup(Utils_1.default.urls.connect + "/popup/transaction/init.html", this.bearerTokenProvider, this.options); window.addEventListener('beforeunload', function () { _this.closePopup(); }); }; PopupSigner.prototype.closePopup = function () { if (this.popup) this.popup.close(); }; PopupSigner.prototype.isOpen = function () { if (this.popup) return this.popup.isOpen(); else return false; }; PopupSigner.prototype.sign = function (signatureRequest) { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { signatureRequest.hash = typeof signatureRequest.hash === 'undefined' ? true : signatureRequest.hash; signatureRequest.prefix = typeof signatureRequest.hash === 'undefined' ? true : signatureRequest.prefix; return [2 /*return*/, this.signRequest(signatureRequest)]; }); }); }; PopupSigner.prototype.signMessage = function (buildDate) { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { return [2 /*return*/, this.signData(BuildMessageSignRequest_1.BuildMessageSignRequest.fromData(buildDate))]; }); }); }; PopupSigner.prototype.signEip712 = function (buildDate) { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { return [2 /*return*/, this.signData(BuildEip712SignRequest_1.BuildEip712SignRequest.fromData(buildDate))]; }); }); }; /** Deprecated since 1.1.9. Use sign instead */ PopupSigner.prototype.signTransaction = function (signatureRequest) { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { return [2 /*return*/, this.sign(signatureRequest)]; }); }); }; PopupSigner.prototype.executeNativeTransaction = function (transactionRequest) { return tslib_1.__awaiter(this, void 0, void 0, function () { var _this = this; return tslib_1.__generator(this, function (_a) { return [2 /*return*/, DialogWindow_1.DialogWindow.openActionDialog(this.clientId, 'execute-transaction').then(function () { return _this.handleRequest("execute/" + transactionRequest.type, transactionRequest); })]; }); }); }; /** Deprecated since 1.4.0. Use transfer functions instead */ PopupSigner.prototype.executeTransaction = function (genericTransactionRequestOrTransactionId) { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { if (typeof genericTransactionRequestOrTransactionId === 'string') { return [2 /*return*/, this.execute({ transactionId: genericTransactionRequestOrTransactionId })]; } else { return [2 /*return*/, this.execute(BuildTransactionRequest_1.BuildTransactionRequest.fromData(genericTransactionRequestOrTransactionId))]; } return [2 /*return*/]; }); }); }; PopupSigner.prototype.executeTransfer = function (buildTransactionData) { return this.execute(BuildSimpleTransactionRequest_1.BuildSimpleTransactionRequest.fromData(buildTransactionData)); }; PopupSigner.prototype.executeTokenTransfer = function (buildTransactionData) { return this.execute(BuildTokenTransferRequest_1.BuildTokenTransferRequest.fromData(buildTransactionData)); }; PopupSigner.prototype.executeNftTransfer = function (buildTransactionData) { return this.execute(BuildNftTransferRequest_1.BuildNftTransferRequest.fromData(buildTransactionData)); }; PopupSigner.prototype.executeGasTransfer = function (buildTransactionData) { return this.execute(BuildGasTransferRequest_1.BuildGasTransferRequest.fromData(buildTransactionData)); }; PopupSigner.prototype.executeContract = function (buildTransactionData) { return this.execute(BuildContractExecutionRequest_1.BuildContractExecutionRequest.fromData(buildTransactionData)); }; PopupSigner.prototype.executeSavedTransaction = function (transactionId) { var _this = this; return DialogWindow_1.DialogWindow.openActionDialog(this.clientId, 'execute-transaction').then(function () { return _this.handleRequest("execute/" + transactionId, {}); }); }; PopupSigner.prototype.resubmitTransaction = function (transactionId) { var _this = this; return DialogWindow_1.DialogWindow.openActionDialog(this.clientId, 'execute-transaction').then(function () { return _this.handleRequest('resubmit', { transactionId: transactionId }); }); }; PopupSigner.prototype.cancelTransaction = function (transactionId) { return this.handleRequest('cancel', { transactionId: transactionId }); }; PopupSigner.prototype.importWallet = function (request) { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { return [2 /*return*/, this.confirm(ImportWalletRequest_1.ImportWalletRequest.fromData(request))]; }); }); }; PopupSigner.prototype.confirm = function (request) { return tslib_1.__awaiter(this, void 0, void 0, function () { var _this = this; return tslib_1.__generator(this, function (_a) { return [2 /*return*/, DialogWindow_1.DialogWindow.openActionDialog(this.clientId, 'import-wallet').then(function () { return _this.handleRequest('confirm', request); })]; }); }); }; PopupSigner.prototype.execute = function (requestData) { return tslib_1.__awaiter(this, void 0, void 0, function () { var _this = this; return tslib_1.__generator(this, function (_a) { return [2 /*return*/, DialogWindow_1.DialogWindow.openActionDialog(this.clientId, 'execute-transaction').then(function () { return _this.handleRequest('execute', requestData); })]; }); }); }; PopupSigner.prototype.signData = function (requestData) { return tslib_1.__awaiter(this, void 0, void 0, function () { var _this = this; return tslib_1.__generator(this, function (_a) { return [2 /*return*/, DialogWindow_1.DialogWindow.openActionDialog(this.clientId, 'sign-data').then(function () { return _this.handleRequest('sign', requestData); })]; }); }); }; PopupSigner.prototype.signRequest = function (requestData) { return tslib_1.__awaiter(this, void 0, void 0, function () { var _this = this; return tslib_1.__generator(this, function (_a) { return [2 /*return*/, DialogWindow_1.DialogWindow.openActionDialog(this.clientId, 'sign-transaction').then(function () { return _this.handleRequest('sign', requestData); })]; }); }); }; PopupSigner.prototype.handleRequest = function (action, requestData) { return tslib_1.__awaiter(this, void 0, void 0, function () { var _this = this; return tslib_1.__generator(this, function (_a) { this.openPopup(); this.popup.focus(); return [2 /*return*/, this.popup .sendData(action, Object.assign({}, requestData)) .finally(function () { _this.closePopup(); })]; }); }); }; return PopupSigner; }()); exports.PopupSigner = PopupSigner; var PopupSignerPopup = /** @class */ (function (_super) { tslib_1.__extends(PopupSignerPopup, _super); function PopupSignerPopup(url, bearerTokenProvider, options) { var _this = _super.call(this, url, bearerTokenProvider, options) || this; _this.finishedEventType = EventTypes_1.EventTypes.SIGNER_FINISHED; _this.sendDataEventType = EventTypes_1.EventTypes.SEND_TRANSACTION_DATA; return _this; } PopupSignerPopup.prototype.sendData = function (action, requestData) { var _this = this; return new Promise(function (resolve, reject) { _this.onPopupMountedQueue.push(_this.attachFinishedListener(resolve, reject)); _this.onPopupMountedQueue.push(_this.sendDataToPopup(action, requestData)); _this.processPopupMountedQueue(); }); }; PopupSignerPopup.prototype.sendDataToPopup = function (action, requestData) { var _this = this; return function () { if (_this.isOpen()) { _this.popupWindow.postMessage({ type: _this.sendDataEventType, params: { action: action, transactionRequest: requestData, bearerToken: _this.bearerTokenProvider() } }, Utils_1.default.urls.connect); } }; }; return PopupSignerPopup; }(Popup_1.default)); //# sourceMappingURL=PopupSigner.js.map