UNPKG

@bhayward93/web3modal-angular

Version:

Web3Modal implementation for Angular

52 lines 6.84 kB
import { EventEmitter, Injectable, Optional } from '@angular/core'; import { CONNECT_EVENT, ERROR_EVENT, Web3WalletConnector } from '../web3modal-ts/src'; 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); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: Web3ModalService, deps: "invalid", target: i0.ɵɵFactoryTarget.Injectable }); } static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: Web3ModalService }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: Web3ModalService, decorators: [{ type: Injectable }], ctorParameters: () => [{ type: undefined, decorators: [{ type: Optional }] }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViMy1tb2RhbC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvd2ViM21vZGFsL3NyYy9saWIvd2ViMy1tb2RhbC93ZWIzLW1vZGFsLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFvRCxtQkFBbUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hJLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFHdEMsTUFBTSxPQUFPLGdCQUFnQjtJQU0zQixZQUF5QixhQUEwQztRQUg1RCxlQUFVLEdBQTBCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDdkQsY0FBUyxHQUF5QyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRzFFLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLG1CQUFtQixDQUFDLGFBQWEsQ0FBQyxDQUFBO0lBQ25FLENBQUM7SUFFRCxLQUFLLENBQUMsSUFBSTtRQUNSLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUV2RCxPQUFPLE1BQU0sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDM0MsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsUUFBUSxDQUFDLEVBQUU7Z0JBQ3ZFLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNwQixDQUFDLENBQUMsQ0FBQztZQUVILElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxFQUFFO2dCQUNsRSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDaEIsQ0FBQyxDQUFDLENBQUM7WUFFSCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUUxQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7Z0JBQ3RDLElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFO29CQUNiLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQzt3QkFDVixNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztvQkFDNUIsQ0FBQztnQkFDSCxDQUFDO2FBQ0YsQ0FBQyxDQUFBO1FBQ0osQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQTtRQUNkLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELGdCQUFnQixDQUFDLE9BQW1DO1FBQ2xELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUNwRCxDQUFDO0lBRUQsbUJBQW1CO1FBQ2pCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxrQkFBa0IsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQ3BFLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxFQUFVO1FBQzFCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxrQkFBa0IsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQzdCLENBQUM7K0dBbERVLGdCQUFnQjttSEFBaEIsZ0JBQWdCOzs0RkFBaEIsZ0JBQWdCO2tCQUQ1QixVQUFVOzswQkFPSyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRFbWl0dGVyLCBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ09OTkVDVF9FVkVOVCwgRVJST1JfRVZFTlQsIElQcm92aWRlckNvbnRyb2xsZXJPcHRpb25zLCBJUHJvdmlkZXJVc2VyT3B0aW9ucywgV2ViM1dhbGxldENvbm5lY3RvciB9IGZyb20gJy4uL3dlYjNtb2RhbC10cy9zcmMnO1xuaW1wb3J0IHsgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFdlYjNNb2RhbFNlcnZpY2Uge1xuICBwcml2YXRlIHdlYjNXYWxsZXRDb25uZWN0b3I6IFdlYjNXYWxsZXRDb25uZWN0b3JcblxuICBwdWJsaWMgc2hvdWxkT3BlbjogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBwdWJsaWMgcHJvdmlkZXJzOiBFdmVudEVtaXR0ZXI8SVByb3ZpZGVyVXNlck9wdGlvbnNbXT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgY29uc3RydWN0b3IgKEBPcHRpb25hbCgpIGNvbmZpZ09wdGlvbnM/OiBJUHJvdmlkZXJDb250cm9sbGVyT3B0aW9ucykge1xuICAgIHRoaXMud2ViM1dhbGxldENvbm5lY3RvciA9IG5ldyBXZWIzV2FsbGV0Q29ubmVjdG9yKGNvbmZpZ09wdGlvbnMpXG4gIH1cblxuICBhc3luYyBvcGVuKCkge1xuICAgIHRoaXMucHJvdmlkZXJzLm5leHQodGhpcy53ZWIzV2FsbGV0Q29ubmVjdG9yLnByb3ZpZGVycylcblxuICAgIHJldHVybiBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB0aGlzLndlYjNXYWxsZXRDb25uZWN0b3IucHJvdmlkZXJDb250cm9sbGVyLm9uKENPTk5FQ1RfRVZFTlQsIHByb3ZpZGVyID0+IHtcbiAgICAgICAgcmVzb2x2ZShwcm92aWRlcik7XG4gICAgICB9KTtcblxuICAgICAgdGhpcy53ZWIzV2FsbGV0Q29ubmVjdG9yLnByb3ZpZGVyQ29udHJvbGxlci5vbihFUlJPUl9FVkVOVCwgZXJyb3IgPT4ge1xuICAgICAgICByZWplY3QoZXJyb3IpO1xuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuc2hvdWxkT3Blbi5uZXh0KHRydWUpXG5cbiAgICAgIHRoaXMuc2hvdWxkT3Blbi5waXBlKHRha2UoMSkpLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IChvcGVuKSA9PiB7XG4gICAgICAgICAgaWYgKCFvcGVuKSB7XG4gICAgICAgICAgICByZWplY3QoJ0Rpc21pc3NlZCBtb2RhbCcpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9KS5maW5hbGx5KCgpID0+IHtcbiAgICAgIHRoaXMuY2xvc2UoKVxuICAgIH0pXG4gIH1cblxuICBzZXRDb25maWd1cmF0aW9uKG9wdGlvbnM6IElQcm92aWRlckNvbnRyb2xsZXJPcHRpb25zKSB7XG4gICAgdGhpcy53ZWIzV2FsbGV0Q29ubmVjdG9yLnNldENvbmZpZ3VyYXRpb24ob3B0aW9ucylcbiAgfVxuXG4gIGNsZWFyQ2FjaGVkUHJvdmlkZXIoKTogdm9pZCB7XG4gICAgdGhpcy53ZWIzV2FsbGV0Q29ubmVjdG9yLnByb3ZpZGVyQ29udHJvbGxlci5jbGVhckNhY2hlZFByb3ZpZGVyKCk7XG4gIH1cblxuICBzZXRDYWNoZWRQcm92aWRlcihpZDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy53ZWIzV2FsbGV0Q29ubmVjdG9yLnByb3ZpZGVyQ29udHJvbGxlci5zZXRDYWNoZWRQcm92aWRlcihpZCk7XG4gIH1cblxuICBjbG9zZSgpIHtcbiAgICB0aGlzLnNob3VsZE9wZW4ubmV4dChmYWxzZSlcbiAgfVxufVxuIl19