@coinbase/wallet-sdk
Advanced tools
Comparing version 4.0.0 to 4.0.1
@@ -23,5 +23,3 @@ "use strict"; | ||
const util_1 = require("./core/type/util"); | ||
const SCWSigner_1 = require("./sign/scw/SCWSigner"); | ||
const util_2 = require("./sign/util"); | ||
const WalletLinkSigner_1 = require("./sign/walletlink/WalletLinkSigner"); | ||
const provider_1 = require("./util/provider"); | ||
@@ -168,24 +166,10 @@ const Communicator_1 = require("./core/communicator/Communicator"); | ||
initSigner(signerType) { | ||
switch (signerType) { | ||
case 'scw': | ||
return new SCWSigner_1.SCWSigner({ | ||
metadata: this.metadata, | ||
updateListener: this.updateListener, | ||
postMessageToPopup: this.communicator.postRequestAndWaitForResponse, | ||
}); | ||
case 'walletlink': | ||
return new WalletLinkSigner_1.WalletLinkSigner({ | ||
metadata: this.metadata, | ||
updateListener: this.updateListener, | ||
}); | ||
case 'extension': { | ||
const injectedSigner = (0, provider_1.getCoinbaseInjectedSigner)(); | ||
if (!injectedSigner) { | ||
throw error_1.standardErrors.rpc.internal('injected signer not found'); | ||
} | ||
return injectedSigner; | ||
} | ||
} | ||
return (0, util_2.createSigner)({ | ||
signerType, | ||
metadata: this.metadata, | ||
communicator: this.communicator, | ||
updateListener: this.updateListener, | ||
}); | ||
} | ||
} | ||
exports.CoinbaseWalletProvider = CoinbaseWalletProvider; |
@@ -37,3 +37,3 @@ import { Message, MessageID } from '../message'; | ||
*/ | ||
private waitForPopupLoaded; | ||
waitForPopupLoaded: () => Promise<Window>; | ||
} |
@@ -5,2 +5,2 @@ import { CoinbaseWalletSDK } from './CoinbaseWalletSDK'; | ||
export { CoinbaseWalletSDK } from './CoinbaseWalletSDK'; | ||
export type { ProviderInterface } from './core/provider/interface'; | ||
export type { AppMetadata, Preference, ProviderInterface } from './core/provider/interface'; |
import { StateUpdateListener } from '../interface'; | ||
import { RPCRequestMessage, RPCResponseMessage } from '../../core/message'; | ||
import { Communicator } from '../../core/communicator/Communicator'; | ||
import { AppMetadata, RequestArguments, Signer } from '../../core/provider/interface'; | ||
@@ -7,3 +7,3 @@ import { AddressString } from '../../core/type'; | ||
private readonly metadata; | ||
private readonly postMessageToPopup; | ||
private readonly communicator; | ||
private readonly keyManager; | ||
@@ -13,3 +13,3 @@ private readonly stateManager; | ||
metadata: AppMetadata; | ||
postMessageToPopup: (_: RPCRequestMessage) => Promise<RPCResponseMessage>; | ||
communicator: Communicator; | ||
updateListener: StateUpdateListener; | ||
@@ -16,0 +16,0 @@ }); |
@@ -12,3 +12,3 @@ "use strict"; | ||
this.metadata = params.metadata; | ||
this.postMessageToPopup = params.postMessageToPopup; | ||
this.communicator = params.communicator; | ||
this.keyManager = new SCWKeyManager_1.SCWKeyManager(); | ||
@@ -31,3 +31,3 @@ this.stateManager = new SCWStateManager_1.SCWStateManager({ | ||
}); | ||
const response = await this.postMessageToPopup(handshakeMessage); | ||
const response = await this.communicator.postRequestAndWaitForResponse(handshakeMessage); | ||
// store peer's public key | ||
@@ -52,2 +52,5 @@ if ('failure' in response.content) | ||
} | ||
// Open the popup before constructing the request message. | ||
// This is to ensure that the popup is not blocked by some browsers (i.e. Safari) | ||
await this.communicator.waitForPopupLoaded(); | ||
const response = await this.sendEncryptedRequest(request); | ||
@@ -101,3 +104,3 @@ const decrypted = await this.decryptResponseMessage(response); | ||
const message = await this.createRequestMessage({ encrypted }); | ||
return this.postMessageToPopup(message); | ||
return this.communicator.postRequestAndWaitForResponse(message); | ||
} | ||
@@ -104,0 +107,0 @@ async createRequestMessage(content) { |
@@ -0,4 +1,5 @@ | ||
import { StateUpdateListener } from './interface'; | ||
import { Communicator } from '../core/communicator/Communicator'; | ||
import { SignerType } from '../core/message'; | ||
import { AppMetadata, Preference } from '../core/provider/interface'; | ||
import { AppMetadata, Preference, Signer } from '../core/provider/interface'; | ||
export declare function loadSignerType(): SignerType | null; | ||
@@ -11,1 +12,7 @@ export declare function storeSignerType(signerType: SignerType): void; | ||
}): Promise<SignerType>; | ||
export declare function createSigner(params: { | ||
signerType: SignerType; | ||
metadata: AppMetadata; | ||
communicator: Communicator; | ||
updateListener: StateUpdateListener; | ||
}): Signer; |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.fetchSignerType = exports.storeSignerType = exports.loadSignerType = void 0; | ||
exports.createSigner = exports.fetchSignerType = exports.storeSignerType = exports.loadSignerType = void 0; | ||
const SCWSigner_1 = require("./scw/SCWSigner"); | ||
const WalletLinkSigner_1 = require("./walletlink/WalletLinkSigner"); | ||
const error_1 = require("../core/error"); | ||
const provider_1 = require("../util/provider"); | ||
const ScopedLocalStorage_1 = require("../util/ScopedLocalStorage"); | ||
@@ -28,2 +31,26 @@ const SIGNER_TYPE_KEY = 'SignerType'; | ||
exports.fetchSignerType = fetchSignerType; | ||
function createSigner(params) { | ||
const { signerType, metadata, communicator, updateListener } = params; | ||
switch (signerType) { | ||
case 'scw': | ||
return new SCWSigner_1.SCWSigner({ | ||
metadata, | ||
updateListener, | ||
communicator, | ||
}); | ||
case 'walletlink': | ||
return new WalletLinkSigner_1.WalletLinkSigner({ | ||
metadata, | ||
updateListener, | ||
}); | ||
case 'extension': { | ||
const injectedSigner = (0, provider_1.getCoinbaseInjectedSigner)(); | ||
if (!injectedSigner) { | ||
throw error_1.standardErrors.rpc.internal('injected signer not found'); | ||
} | ||
return injectedSigner; | ||
} | ||
} | ||
} | ||
exports.createSigner = createSigner; | ||
async function listenForWalletLinkSessionRequest(communicator, metadata) { | ||
@@ -30,0 +57,0 @@ await communicator.onMessage(({ event }) => event === 'WalletLinkSessionRequest'); |
@@ -1,1 +0,1 @@ | ||
export declare const LIB_VERSION = "4.0.0"; | ||
export declare const LIB_VERSION = "4.0.1"; |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.LIB_VERSION = void 0; | ||
exports.LIB_VERSION = '4.0.0'; | ||
exports.LIB_VERSION = '4.0.1'; |
{ | ||
"name": "@coinbase/wallet-sdk", | ||
"version": "4.0.0", | ||
"version": "4.0.1", | ||
"description": "Coinbase Wallet JavaScript SDK", | ||
@@ -5,0 +5,0 @@ "keywords": [ |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
254943
6024