UNPKG

@0xsticks/web3modal-angular-sticks

Version:

Web3Modal implementation for Angular

52 lines 6.87 kB
import { EventEmitter, Injectable, Optional } from '@angular/core'; import { CONNECT_EVENT, ERROR_EVENT, Web3WalletConnector } from '@mindsorg/web3modal-ts'; import { take } from 'rxjs/operators'; import * as i0 from "@angular/core"; export class Web3ModalService { constructor(configOptions) { this.shouldOpen = new EventEmitter(); this.providers = new EventEmitter(); this.web3WalletConnector = new Web3WalletConnector(configOptions); } async open() { this.providers.next(this.web3WalletConnector.providers); return await 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.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: Web3ModalService, deps: "invalid", target: i0.ɵɵFactoryTarget.Injectable }); Web3ModalService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: Web3ModalService }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: Web3ModalService, decorators: [{ type: Injectable }], ctorParameters: function () { return [{ type: undefined, decorators: [{ type: Optional }] }]; } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViMy1tb2RhbC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvd2ViM21vZGFsL3NyYy9saWIvd2ViMy1tb2RhbC93ZWIzLW1vZGFsLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25FLE9BQU8sRUFDTCxhQUFhLEVBQ2IsV0FBVyxFQUVYLG1CQUFtQixFQUVwQixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFHdEMsTUFBTSxPQUFPLGdCQUFnQjtJQU0zQixZQUF5QixhQUEwQztRQUg1RCxlQUFVLEdBQTBCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDdkQsY0FBUyxHQUF5QyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRzFFLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLG1CQUFtQixDQUFDLGFBQWEsQ0FBQyxDQUFBO0lBQ25FLENBQUM7SUFFRCxLQUFLLENBQUMsSUFBSTtRQUNSLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUV2RCxPQUFPLE1BQU0sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDM0MsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsUUFBUSxDQUFDLEVBQUU7Z0JBQ3ZFLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNwQixDQUFDLENBQUMsQ0FBQztZQUVILElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxFQUFFO2dCQUNsRSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDaEIsQ0FBQyxDQUFDLENBQUM7WUFFSCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUUxQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7Z0JBQ3RDLElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFO29CQUNiLElBQUksQ0FBQyxJQUFJLEVBQUU7d0JBQ1QsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7cUJBQzNCO2dCQUNILENBQUM7YUFDRixDQUFDLENBQUE7UUFDSixDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFBO1FBQ2QsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsT0FBbUM7UUFDbEQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQ3BELENBQUM7SUFFRCxtQkFBbUI7UUFDakIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGtCQUFrQixDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDcEUsQ0FBQztJQUVELGlCQUFpQixDQUFDLEVBQVU7UUFDMUIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGtCQUFrQixDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDN0IsQ0FBQzs7NkdBbERVLGdCQUFnQjtpSEFBaEIsZ0JBQWdCOzJGQUFoQixnQkFBZ0I7a0JBRDVCLFVBQVU7OzBCQU9LLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEVtaXR0ZXIsIEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBDT05ORUNUX0VWRU5ULFxuICBFUlJPUl9FVkVOVCxcbiAgSVByb3ZpZGVyQ29udHJvbGxlck9wdGlvbnMsXG4gIFdlYjNXYWxsZXRDb25uZWN0b3IsXG4gIElQcm92aWRlclVzZXJPcHRpb25zXG59IGZyb20gJ0BtaW5kc29yZy93ZWIzbW9kYWwtdHMnO1xuaW1wb3J0IHsgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFdlYjNNb2RhbFNlcnZpY2Uge1xuICBwcml2YXRlIHdlYjNXYWxsZXRDb25uZWN0b3I6IFdlYjNXYWxsZXRDb25uZWN0b3JcblxuICBwdWJsaWMgc2hvdWxkT3BlbjogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBwdWJsaWMgcHJvdmlkZXJzOiBFdmVudEVtaXR0ZXI8SVByb3ZpZGVyVXNlck9wdGlvbnNbXT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgY29uc3RydWN0b3IgKEBPcHRpb25hbCgpIGNvbmZpZ09wdGlvbnM/OiBJUHJvdmlkZXJDb250cm9sbGVyT3B0aW9ucykge1xuICAgIHRoaXMud2ViM1dhbGxldENvbm5lY3RvciA9IG5ldyBXZWIzV2FsbGV0Q29ubmVjdG9yKGNvbmZpZ09wdGlvbnMpXG4gIH1cblxuICBhc3luYyBvcGVuKCkge1xuICAgIHRoaXMucHJvdmlkZXJzLm5leHQodGhpcy53ZWIzV2FsbGV0Q29ubmVjdG9yLnByb3ZpZGVycylcblxuICAgIHJldHVybiBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB0aGlzLndlYjNXYWxsZXRDb25uZWN0b3IucHJvdmlkZXJDb250cm9sbGVyLm9uKENPTk5FQ1RfRVZFTlQsIHByb3ZpZGVyID0+IHtcbiAgICAgICAgcmVzb2x2ZShwcm92aWRlcik7XG4gICAgICB9KTtcbiAgXG4gICAgICB0aGlzLndlYjNXYWxsZXRDb25uZWN0b3IucHJvdmlkZXJDb250cm9sbGVyLm9uKEVSUk9SX0VWRU5ULCBlcnJvciA9PiB7XG4gICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICB9KTtcblxuICAgICAgdGhpcy5zaG91bGRPcGVuLm5leHQodHJ1ZSlcblxuICAgICAgdGhpcy5zaG91bGRPcGVuLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKG9wZW4pID0+IHtcbiAgICAgICAgICBpZiAoIW9wZW4pIHtcbiAgICAgICAgICAgIHJlamVjdCgnRGlzbWlzc2VkIG1vZGFsJyk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH0pLmZpbmFsbHkoKCkgPT4ge1xuICAgICAgdGhpcy5jbG9zZSgpXG4gICAgfSlcbiAgfVxuXG4gIHNldENvbmZpZ3VyYXRpb24ob3B0aW9uczogSVByb3ZpZGVyQ29udHJvbGxlck9wdGlvbnMpIHtcbiAgICB0aGlzLndlYjNXYWxsZXRDb25uZWN0b3Iuc2V0Q29uZmlndXJhdGlvbihvcHRpb25zKVxuICB9XG5cbiAgY2xlYXJDYWNoZWRQcm92aWRlcigpOiB2b2lkIHtcbiAgICB0aGlzLndlYjNXYWxsZXRDb25uZWN0b3IucHJvdmlkZXJDb250cm9sbGVyLmNsZWFyQ2FjaGVkUHJvdmlkZXIoKTtcbiAgfVxuXG4gIHNldENhY2hlZFByb3ZpZGVyKGlkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLndlYjNXYWxsZXRDb25uZWN0b3IucHJvdmlkZXJDb250cm9sbGVyLnNldENhY2hlZFByb3ZpZGVyKGlkKTtcbiAgfVxuXG4gIGNsb3NlKCkge1xuICAgIHRoaXMuc2hvdWxkT3Blbi5uZXh0KGZhbHNlKVxuICB9XG59XG4iXX0=