UNPKG

@airgap/beacon-dapp

Version:

Use this package on your dApp to instanciate a DAppClient object and communicate to wallets.

35 lines • 1.46 kB
import { StorageKey, TransportStatus } from '@airgap/beacon-types'; import { Logger } from '@airgap/beacon-core'; import { WalletConnectTransport } from '@airgap/beacon-transport-walletconnect'; import { isMobileOS } from '@airgap/beacon-ui'; const logger = new Logger('DappWalletConnectTransport'); /** * @internalapi * * */ export class DappWalletConnectTransport extends WalletConnectTransport { constructor(name, keyPair, storage, wcOptions, isLeader) { super(name, keyPair, storage, StorageKey.TRANSPORT_WALLETCONNECT_PEERS_DAPP, wcOptions, isLeader); this.client.listenForChannelOpening(async (peer) => { await this.addPeer(peer); this._isConnected = isMobileOS(window) || (await isLeader()) ? TransportStatus.CONNECTED : TransportStatus.SECONDARY_TAB_CONNECTED; this.isReady.isPending() && this.isReady.resolve(true); if (this.newPeerListener) { this.newPeerListener(peer); this.newPeerListener = undefined; // TODO: Remove this once we use the id } }); } async listenForNewPeer(newPeerListener) { // logger.log('listenForNewPeer') this.newPeerListener = newPeerListener; } async stopListeningForNewPeers() { logger.log('stopListeningForNewPeers'); this.newPeerListener = undefined; } } //# sourceMappingURL=DappWalletConnectTransport.js.map