@bhayward93/web3modal-angular
Version:
Web3Modal implementation for Angular
52 lines • 6.84 kB
JavaScript
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