some-shit
Version:
Web3Modal implementation for Angular
61 lines • 7.21 kB
JavaScript
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
import { EventEmitter, Injectable, Optional } from '@angular/core';
import { CONNECT_EVENT, ERROR_EVENT, Web3WalletConnector } from '@mindsorg/web3modal-ts';
import { take } from 'rxjs/operators';
export class Web3ModalService {
constructor(configOptions) {
this.shouldOpen = new EventEmitter();
this.providers = new EventEmitter();
this.web3WalletConnector = new Web3WalletConnector(configOptions);
}
open() {
return __awaiter(this, void 0, void 0, function* () {
this.providers.next(this.web3WalletConnector.providers);
return yield new Promise((resolve, reject) => {
this.web3WalletConnector.providerController.on(CONNECT_EVENT, provider => {
resolve(provider);
});
this.web3WalletConnector.providerController.on(ERROR_EVENT, error => {
reject(error);
});
this.shouldOpen.next(true);
this.shouldOpen.pipe(take(1)).subscribe({
next: (open) => {
if (!open) {
reject('Dismissed modal');
}
}
});
}).finally(() => {
this.close();
});
});
}
setConfiguration(options) {
this.web3WalletConnector.setConfiguration(options);
}
clearCachedProvider() {
this.web3WalletConnector.providerController.clearCachedProvider();
}
setCachedProvider(id) {
this.web3WalletConnector.providerController.setCachedProvider(id);
}
close() {
this.shouldOpen.next(false);
}
}
Web3ModalService.decorators = [
{ type: Injectable }
];
Web3ModalService.ctorParameters = () => [
{ type: undefined, decorators: [{ type: Optional }] }
];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViMy1tb2RhbC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Ii9Vc2Vycy9ocnlob3JpaW9wYW5hc2Vua28vRGVza3RvcC9zaGl0L3dlYjNtb2RhbC1hbmd1bGFyL3Byb2plY3RzL3NvbWUtc2hpdC9zcmMvIiwic291cmNlcyI6WyJsaWIvd2ViMy1tb2RhbC93ZWIzLW1vZGFsLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25FLE9BQU8sRUFDTCxhQUFhLEVBQ2IsV0FBVyxFQUVYLG1CQUFtQixFQUVwQixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUd0QyxNQUFNLE9BQU8sZ0JBQWdCO0lBTTNCLFlBQXdCLGFBQTBDO1FBSDNELGVBQVUsR0FBMEIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN2RCxjQUFTLEdBQXlDLElBQUksWUFBWSxFQUFFLENBQUM7UUFHMUUsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksbUJBQW1CLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUVLLElBQUk7O1lBQ1IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBRXhELE9BQU8sTUFBTSxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtnQkFDM0MsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsUUFBUSxDQUFDLEVBQUU7b0JBQ3ZFLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDcEIsQ0FBQyxDQUFDLENBQUM7Z0JBRUgsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLEVBQUU7b0JBQ2xFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDaEIsQ0FBQyxDQUFDLENBQUM7Z0JBRUgsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBRTNCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztvQkFDdEMsSUFBSSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUU7d0JBQ2IsSUFBSSxDQUFDLElBQUksRUFBRTs0QkFDVCxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQzt5QkFDM0I7b0JBQ0gsQ0FBQztpQkFDRixDQUFDLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFO2dCQUNkLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNmLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztLQUFBO0lBRUQsZ0JBQWdCLENBQUMsT0FBbUM7UUFDbEQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCxtQkFBbUI7UUFDakIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGtCQUFrQixDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDcEUsQ0FBQztJQUVELGlCQUFpQixDQUFDLEVBQVU7UUFDMUIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGtCQUFrQixDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsQ0FBQzs7O1lBbkRGLFVBQVU7Ozs0Q0FPSSxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRFbWl0dGVyLCBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQ09OTkVDVF9FVkVOVCxcbiAgRVJST1JfRVZFTlQsXG4gIElQcm92aWRlckNvbnRyb2xsZXJPcHRpb25zLFxuICBXZWIzV2FsbGV0Q29ubmVjdG9yLFxuICBJUHJvdmlkZXJVc2VyT3B0aW9uc1xufSBmcm9tICdAbWluZHNvcmcvd2ViM21vZGFsLXRzJztcbmltcG9ydCB7IHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBXZWIzTW9kYWxTZXJ2aWNlIHtcbiAgcHJpdmF0ZSB3ZWIzV2FsbGV0Q29ubmVjdG9yOiBXZWIzV2FsbGV0Q29ubmVjdG9yO1xuXG4gIHB1YmxpYyBzaG91bGRPcGVuOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIHB1YmxpYyBwcm92aWRlcnM6IEV2ZW50RW1pdHRlcjxJUHJvdmlkZXJVc2VyT3B0aW9uc1tdPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBjb25maWdPcHRpb25zPzogSVByb3ZpZGVyQ29udHJvbGxlck9wdGlvbnMpIHtcbiAgICB0aGlzLndlYjNXYWxsZXRDb25uZWN0b3IgPSBuZXcgV2ViM1dhbGxldENvbm5lY3Rvcihjb25maWdPcHRpb25zKTtcbiAgfVxuXG4gIGFzeW5jIG9wZW4oKSB7XG4gICAgdGhpcy5wcm92aWRlcnMubmV4dCh0aGlzLndlYjNXYWxsZXRDb25uZWN0b3IucHJvdmlkZXJzKTtcblxuICAgIHJldHVybiBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB0aGlzLndlYjNXYWxsZXRDb25uZWN0b3IucHJvdmlkZXJDb250cm9sbGVyLm9uKENPTk5FQ1RfRVZFTlQsIHByb3ZpZGVyID0+IHtcbiAgICAgICAgcmVzb2x2ZShwcm92aWRlcik7XG4gICAgICB9KTtcblxuICAgICAgdGhpcy53ZWIzV2FsbGV0Q29ubmVjdG9yLnByb3ZpZGVyQ29udHJvbGxlci5vbihFUlJPUl9FVkVOVCwgZXJyb3IgPT4ge1xuICAgICAgICByZWplY3QoZXJyb3IpO1xuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuc2hvdWxkT3Blbi5uZXh0KHRydWUpO1xuXG4gICAgICB0aGlzLnNob3VsZE9wZW4ucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiAob3BlbikgPT4ge1xuICAgICAgICAgIGlmICghb3Blbikge1xuICAgICAgICAgICAgcmVqZWN0KCdEaXNtaXNzZWQgbW9kYWwnKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pLmZpbmFsbHkoKCkgPT4ge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH0pO1xuICB9XG5cbiAgc2V0Q29uZmlndXJhdGlvbihvcHRpb25zOiBJUHJvdmlkZXJDb250cm9sbGVyT3B0aW9ucykge1xuICAgIHRoaXMud2ViM1dhbGxldENvbm5lY3Rvci5zZXRDb25maWd1cmF0aW9uKG9wdGlvbnMpO1xuICB9XG5cbiAgY2xlYXJDYWNoZWRQcm92aWRlcigpOiB2b2lkIHtcbiAgICB0aGlzLndlYjNXYWxsZXRDb25uZWN0b3IucHJvdmlkZXJDb250cm9sbGVyLmNsZWFyQ2FjaGVkUHJvdmlkZXIoKTtcbiAgfVxuXG4gIHNldENhY2hlZFByb3ZpZGVyKGlkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLndlYjNXYWxsZXRDb25uZWN0b3IucHJvdmlkZXJDb250cm9sbGVyLnNldENhY2hlZFByb3ZpZGVyKGlkKTtcbiAgfVxuXG4gIGNsb3NlKCkge1xuICAgIHRoaXMuc2hvdWxkT3Blbi5uZXh0KGZhbHNlKTtcbiAgfVxufVxuIl19