@dynamic-labs/starknet 4.0.0-alpha.27 → 4.0.0-alpha.28
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +19 -0
- package/package.cjs +1 -1
- package/package.js +1 -1
- package/package.json +13 -10
- package/src/StarknetWalletConnector.cjs +233 -0
- package/src/StarknetWalletConnector.d.ts +58 -0
- package/src/StarknetWalletConnector.js +229 -0
- package/src/getAvailableWallets.cjs +27 -0
- package/src/getAvailableWallets.d.ts +8 -0
- package/src/getAvailableWallets.js +21 -0
- package/src/index.cjs +12 -13
- package/src/index.d.ts +16 -7
- package/src/index.js +11 -13
- package/src/types.d.ts +26 -11
- package/src/utils/convertors.cjs +1 -1
- package/src/utils/convertors.d.ts +1 -1
- package/src/utils/convertors.js +1 -1
- package/src/utils/starknetSnap.d.ts +2 -2
- package/src/wallet/StarknetWallet.cjs +0 -3
- package/src/wallet/StarknetWallet.d.ts +4 -4
- package/src/wallet/StarknetWallet.js +0 -3
- package/src/wallets/argent/argentMobile/argentMobile.cjs +73 -0
- package/src/wallets/argent/argentMobile/argentMobile.d.ts +16 -0
- package/src/wallets/argent/argentMobile/argentMobile.js +69 -0
- package/src/wallets/argent/base.cjs +50 -0
- package/src/wallets/argent/base.d.ts +5 -0
- package/src/wallets/argent/base.js +46 -0
- package/src/wallets/argent/injected/argentx.cjs +33 -0
- package/src/wallets/argent/injected/argentx.d.ts +8 -0
- package/src/wallets/argent/injected/argentx.js +29 -0
- package/src/wallets/argent/webwallet/webwallet.cjs +37 -0
- package/src/wallets/argent/webwallet/webwallet.d.ts +10 -0
- package/src/wallets/argent/webwallet/webwallet.js +33 -0
- package/src/wallets/injected/fetchStarknetInjectedWalletConnectors.cjs +34 -0
- package/src/wallets/injected/fetchStarknetInjectedWalletConnectors.d.ts +5 -0
- package/src/wallets/injected/fetchStarknetInjectedWalletConnectors.js +30 -0
- package/src/wallets/injected/injected.cjs +138 -0
- package/src/wallets/injected/injected.d.ts +9 -0
- package/src/wallets/injected/injected.js +134 -0
- package/src/wallets/{metamask.d.ts → injected/metamask.d.ts} +2 -4
- package/src/starknetWalletConnector.cjs +0 -320
- package/src/starknetWalletConnector.d.ts +0 -128
- package/src/starknetWalletConnector.js +0 -314
- package/src/utils/starknetSnap.cjs +0 -92
- package/src/utils/starknetSnap.js +0 -88
- package/src/wallets/argentx.cjs +0 -24
- package/src/wallets/argentx.d.ts +0 -8
- package/src/wallets/argentx.js +0 -20
- package/src/wallets/argentxBase.cjs +0 -50
- package/src/wallets/argentxBase.d.ts +0 -16
- package/src/wallets/argentxBase.js +0 -48
- package/src/wallets/argentxMobile.cjs +0 -100
- package/src/wallets/argentxMobile.d.ts +0 -13
- package/src/wallets/argentxMobile.js +0 -96
- package/src/wallets/argentxWeb.cjs +0 -57
- package/src/wallets/argentxWeb.d.ts +0 -8
- package/src/wallets/argentxWeb.js +0 -53
- package/src/wallets/bitget.cjs +0 -22
- package/src/wallets/bitget.d.ts +0 -7
- package/src/wallets/bitget.js +0 -18
- package/src/wallets/braavos.cjs +0 -37
- package/src/wallets/braavos.d.ts +0 -8
- package/src/wallets/braavos.js +0 -33
- package/src/wallets/metamask.cjs +0 -121
- package/src/wallets/metamask.js +0 -117
- package/src/wallets/okx.cjs +0 -15
- package/src/wallets/okx.d.ts +0 -6
- package/src/wallets/okx.js +0 -11
package/src/index.cjs
CHANGED
|
@@ -5,29 +5,28 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
|
|
6
6
|
var assertPackageVersion = require('@dynamic-labs/assert-package-version');
|
|
7
7
|
var _package = require('../package.cjs');
|
|
8
|
-
var argentx = require('./wallets/argentx.cjs');
|
|
9
|
-
var
|
|
10
|
-
var
|
|
11
|
-
var
|
|
12
|
-
|
|
13
|
-
var okx = require('./wallets/okx.cjs');
|
|
14
|
-
var metamask = require('./wallets/metamask.cjs');
|
|
8
|
+
var argentx = require('./wallets/argent/injected/argentx.cjs');
|
|
9
|
+
var argentMobile = require('./wallets/argent/argentMobile/argentMobile.cjs');
|
|
10
|
+
var webwallet = require('./wallets/argent/webwallet/webwallet.cjs');
|
|
11
|
+
var fetchStarknetInjectedWalletConnectors = require('./wallets/injected/fetchStarknetInjectedWalletConnectors.cjs');
|
|
12
|
+
require('./getAvailableWallets.cjs');
|
|
15
13
|
require('@dynamic-labs/starknet-core');
|
|
16
14
|
var StarknetWallet = require('./wallet/StarknetWallet.cjs');
|
|
17
15
|
var isStarknetWallet = require('./wallet/isStarknetWallet/isStarknetWallet.cjs');
|
|
16
|
+
var StarknetWalletConnector = require('./StarknetWalletConnector.cjs');
|
|
18
17
|
|
|
19
18
|
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
20
19
|
assertPackageVersion.assertPackageVersion('@dynamic-labs/starknet', _package.version);
|
|
21
20
|
const StarknetWalletConnectors = (props) => [
|
|
21
|
+
...fetchStarknetInjectedWalletConnectors.fetchStarknetInjectedWalletConnectors(props),
|
|
22
22
|
argentx.ArgentX,
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
bitget.Bitget,
|
|
28
|
-
metamask.MetaMask,
|
|
23
|
+
argentMobile.ArgentMobile,
|
|
24
|
+
webwallet.WebWallet,
|
|
25
|
+
// TODO(starknet-v6): Add these back once they support v6
|
|
26
|
+
// MetaMask,
|
|
29
27
|
];
|
|
30
28
|
|
|
31
29
|
exports.StarknetWallet = StarknetWallet.StarknetWallet;
|
|
32
30
|
exports.isStarknetWallet = isStarknetWallet.isStarknetWallet;
|
|
31
|
+
exports.StarknetWalletConnector = StarknetWalletConnector.StarknetWalletConnector;
|
|
33
32
|
exports.StarknetWalletConnectors = StarknetWalletConnectors;
|
package/src/index.d.ts
CHANGED
|
@@ -1,9 +1,18 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { WebWallet } from './wallets/argent/webwallet/webwallet';
|
|
2
|
+
import type { ArgentMobileWalletConnectorType } from './wallets/argent/argentMobile/argentMobile';
|
|
3
|
+
import type { WebWalletConnectorType } from './wallets/argent/webwallet/webwallet';
|
|
4
|
+
import './getAvailableWallets';
|
|
2
5
|
import '@dynamic-labs/starknet-core';
|
|
3
|
-
export declare const StarknetWalletConnectors: (props: any) => (typeof
|
|
4
|
-
export type { StarknetWalletConnectorType } from './
|
|
5
|
-
export type { ArgentXWalletConnectorType } from './wallets/argentx';
|
|
6
|
-
export type {
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
export declare const StarknetWalletConnectors: (props: any) => (import("dist/packages/wallet-connector-core/src").WalletConnectorConstructor | typeof WebWallet)[];
|
|
7
|
+
export type { StarknetWalletConnectorType } from './StarknetWalletConnector';
|
|
8
|
+
export type { ArgentXWalletConnectorType } from './wallets/argent/injected/argentx';
|
|
9
|
+
export type {
|
|
10
|
+
/** Deprecated. Use ArgentMobileWalletConnectorType */
|
|
11
|
+
ArgentMobileWalletConnectorType as ArgentXMobileWalletConnectorType, };
|
|
12
|
+
export type { ArgentMobileWalletConnectorType };
|
|
13
|
+
export type {
|
|
14
|
+
/** Deprecated. Use WebWalletConnectorType */
|
|
15
|
+
WebWalletConnectorType as ArgentXWebWalletConnectorType, };
|
|
16
|
+
export type { WebWalletConnectorType };
|
|
9
17
|
export { StarknetWallet, isStarknetWallet } from './wallet';
|
|
18
|
+
export { StarknetWalletConnector } from './StarknetWalletConnector';
|
package/src/index.js
CHANGED
|
@@ -1,27 +1,25 @@
|
|
|
1
1
|
'use client'
|
|
2
2
|
import { assertPackageVersion } from '@dynamic-labs/assert-package-version';
|
|
3
3
|
import { version } from '../package.js';
|
|
4
|
-
import { ArgentX } from './wallets/argentx.js';
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import
|
|
9
|
-
import { Okx } from './wallets/okx.js';
|
|
10
|
-
import { MetaMask } from './wallets/metamask.js';
|
|
4
|
+
import { ArgentX } from './wallets/argent/injected/argentx.js';
|
|
5
|
+
import { ArgentMobile } from './wallets/argent/argentMobile/argentMobile.js';
|
|
6
|
+
import { WebWallet } from './wallets/argent/webwallet/webwallet.js';
|
|
7
|
+
import { fetchStarknetInjectedWalletConnectors } from './wallets/injected/fetchStarknetInjectedWalletConnectors.js';
|
|
8
|
+
import './getAvailableWallets.js';
|
|
11
9
|
import '@dynamic-labs/starknet-core';
|
|
12
10
|
export { StarknetWallet } from './wallet/StarknetWallet.js';
|
|
13
11
|
export { isStarknetWallet } from './wallet/isStarknetWallet/isStarknetWallet.js';
|
|
12
|
+
export { StarknetWalletConnector } from './StarknetWalletConnector.js';
|
|
14
13
|
|
|
15
14
|
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
16
15
|
assertPackageVersion('@dynamic-labs/starknet', version);
|
|
17
16
|
const StarknetWalletConnectors = (props) => [
|
|
17
|
+
...fetchStarknetInjectedWalletConnectors(props),
|
|
18
18
|
ArgentX,
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
Bitget,
|
|
24
|
-
MetaMask,
|
|
19
|
+
ArgentMobile,
|
|
20
|
+
WebWallet,
|
|
21
|
+
// TODO(starknet-v6): Add these back once they support v6
|
|
22
|
+
// MetaMask,
|
|
25
23
|
];
|
|
26
24
|
|
|
27
25
|
export { StarknetWalletConnectors };
|
package/src/types.d.ts
CHANGED
|
@@ -1,11 +1,26 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
}
|
|
11
|
-
|
|
1
|
+
import { StarknetWindowObject } from '@starknet-io/types-js';
|
|
2
|
+
import { IChainRpcProviders } from '@dynamic-labs/rpc-providers';
|
|
3
|
+
import { NetworkConfiguration } from '@dynamic-labs/sdk-api-core';
|
|
4
|
+
import { WalletBookSchema, WalletSchema } from '@dynamic-labs/wallet-book';
|
|
5
|
+
import { WalletMetadata } from '@dynamic-labs/wallet-connector-core';
|
|
6
|
+
/** Models the currently active Starknet wallet data */
|
|
7
|
+
export type WalletData = {
|
|
8
|
+
account: string | undefined;
|
|
9
|
+
chainId: bigint | undefined;
|
|
10
|
+
};
|
|
11
|
+
/** Options to pass to the prompt call which triggers a connection to a wallet */
|
|
12
|
+
export type PromptOptions = {
|
|
13
|
+
/** Whether or not a wallet popup is desired */
|
|
14
|
+
silently: boolean;
|
|
15
|
+
};
|
|
16
|
+
export type PromptResult = {
|
|
17
|
+
wallet: StarknetWindowObject | undefined;
|
|
18
|
+
data: WalletData | undefined;
|
|
19
|
+
};
|
|
20
|
+
export type StarknetWalletConnectorProps = {
|
|
21
|
+
chainRpcProviders: IChainRpcProviders;
|
|
22
|
+
starknetNetworks: NetworkConfiguration[];
|
|
23
|
+
walletBook: WalletBookSchema;
|
|
24
|
+
walletBookWallet: WalletSchema;
|
|
25
|
+
metadata?: WalletMetadata;
|
|
26
|
+
};
|
package/src/utils/convertors.cjs
CHANGED
|
@@ -30,7 +30,7 @@ const defaultTypedData = {
|
|
|
30
30
|
],
|
|
31
31
|
},
|
|
32
32
|
};
|
|
33
|
-
const formatTypedDataMessage = (inputMessage, chainId = starknet.constants.
|
|
33
|
+
const formatTypedDataMessage = (inputMessage, chainId = starknet.constants.StarknetChainId.SN_MAIN) => {
|
|
34
34
|
let nonce, domain;
|
|
35
35
|
try {
|
|
36
36
|
const { nonce: parsedNonce, domain: parsedDomain } = JSON.parse(inputMessage);
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { TypedData, constants } from 'starknet';
|
|
2
|
-
export declare const formatTypedDataMessage: (inputMessage: string, chainId?: constants.
|
|
2
|
+
export declare const formatTypedDataMessage: (inputMessage: string, chainId?: constants.StarknetChainId) => TypedData;
|
package/src/utils/convertors.js
CHANGED
|
@@ -26,7 +26,7 @@ const defaultTypedData = {
|
|
|
26
26
|
],
|
|
27
27
|
},
|
|
28
28
|
};
|
|
29
|
-
const formatTypedDataMessage = (inputMessage, chainId = constants.
|
|
29
|
+
const formatTypedDataMessage = (inputMessage, chainId = constants.StarknetChainId.SN_MAIN) => {
|
|
30
30
|
let nonce, domain;
|
|
31
31
|
try {
|
|
32
32
|
const { nonce: parsedNonce, domain: parsedDomain } = JSON.parse(inputMessage);
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { StarknetWindowObject } from '
|
|
1
|
+
import { StarknetWindowObject } from '@starknet-io/types-js';
|
|
2
2
|
import { IEthereum } from '@dynamic-labs/utils';
|
|
3
3
|
/**
|
|
4
4
|
*
|
|
5
5
|
* @param {IEthereum} provider the metamask window provider object
|
|
6
6
|
* @returns {StarknetWindowObject} the metamask provider wrapper formed into starknet window object
|
|
7
7
|
*/
|
|
8
|
-
export declare const createMetaMaskProviderWrapper: (provider: IEthereum) => StarknetWindowObject
|
|
8
|
+
export declare const createMetaMaskProviderWrapper: (provider: IEthereum) => Promise<StarknetWindowObject | undefined>;
|
|
@@ -24,9 +24,6 @@ class StarknetWallet extends walletConnectorCore.Wallet {
|
|
|
24
24
|
getProvider() {
|
|
25
25
|
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
26
26
|
const provider = yield this._connector.getProvider();
|
|
27
|
-
if (!provider) {
|
|
28
|
-
throw new Error('unable to retrieve Starknet provider');
|
|
29
|
-
}
|
|
30
27
|
utils.wrapMethodWithCallback(provider, 'callContract', (originalCallContract, call, blockIdentifier) => _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
31
28
|
yield this.sync();
|
|
32
29
|
return originalCallContract(call, blockIdentifier);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { RpcProvider, WalletAccount } from 'starknet';
|
|
2
2
|
import { Wallet } from '@dynamic-labs/wallet-connector-core';
|
|
3
|
-
import StarknetWalletConnector from '../
|
|
3
|
+
import { StarknetWalletConnector } from '../StarknetWalletConnector';
|
|
4
4
|
export declare class StarknetWallet extends Wallet<StarknetWalletConnector> {
|
|
5
|
-
getWalletAccount(): Promise<
|
|
6
|
-
getProvider(): Promise<
|
|
5
|
+
getWalletAccount(): Promise<WalletAccount>;
|
|
6
|
+
getProvider(): Promise<RpcProvider>;
|
|
7
7
|
}
|
|
@@ -20,9 +20,6 @@ class StarknetWallet extends Wallet {
|
|
|
20
20
|
getProvider() {
|
|
21
21
|
return __awaiter(this, void 0, void 0, function* () {
|
|
22
22
|
const provider = yield this._connector.getProvider();
|
|
23
|
-
if (!provider) {
|
|
24
|
-
throw new Error('unable to retrieve Starknet provider');
|
|
25
|
-
}
|
|
26
23
|
wrapMethodWithCallback(provider, 'callContract', (originalCallContract, call, blockIdentifier) => __awaiter(this, void 0, void 0, function* () {
|
|
27
24
|
yield this.sync();
|
|
28
25
|
return originalCallContract(call, blockIdentifier);
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
5
|
+
|
|
6
|
+
var _tslib = require('../../../../_virtual/_tslib.cjs');
|
|
7
|
+
var starknetkit = require('starknetkit');
|
|
8
|
+
var argentMobile = require('starknetkit/argentMobile');
|
|
9
|
+
var starknet = require('starknet');
|
|
10
|
+
var base = require('../base.cjs');
|
|
11
|
+
|
|
12
|
+
class ArgentMobile extends base.ArgentBase {
|
|
13
|
+
constructor(opts) {
|
|
14
|
+
super('Argent X - Mobile', 'argentXMobile', opts);
|
|
15
|
+
this.canConnectViaCustodialService = true;
|
|
16
|
+
this.overrideKey = 'argentxmobile';
|
|
17
|
+
this.projectId = opts.projectId;
|
|
18
|
+
this.appName = opts.appName;
|
|
19
|
+
this.appLogoUrls = opts.appLogoUrl
|
|
20
|
+
? [opts.appLogoUrl]
|
|
21
|
+
: undefined;
|
|
22
|
+
}
|
|
23
|
+
isInstalledOnBrowser() {
|
|
24
|
+
return false;
|
|
25
|
+
}
|
|
26
|
+
filter() {
|
|
27
|
+
if (super.filter()) {
|
|
28
|
+
return !argentMobile.isInArgentMobileAppBrowser();
|
|
29
|
+
}
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
prompt(options) {
|
|
33
|
+
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
34
|
+
const { connectorData, wallet } = yield starknetkit.connect({
|
|
35
|
+
connectors: [
|
|
36
|
+
new argentMobile.ArgentMobileBaseConnector({
|
|
37
|
+
chainId: this.getNetworkName() || starknet.constants.NetworkName.SN_MAIN,
|
|
38
|
+
dappName: this.appName,
|
|
39
|
+
icons: this.appLogoUrls,
|
|
40
|
+
projectId: this.projectId,
|
|
41
|
+
rpcUrl: this.getNodeUrl(),
|
|
42
|
+
url: window.location.hostname,
|
|
43
|
+
}),
|
|
44
|
+
],
|
|
45
|
+
modalMode: options.silently ? 'neverAsk' : 'canAsk',
|
|
46
|
+
});
|
|
47
|
+
return {
|
|
48
|
+
data: {
|
|
49
|
+
account: connectorData === null || connectorData === void 0 ? void 0 : connectorData.account,
|
|
50
|
+
chainId: connectorData === null || connectorData === void 0 ? void 0 : connectorData.chainId,
|
|
51
|
+
},
|
|
52
|
+
wallet: wallet !== null && wallet !== void 0 ? wallet : undefined,
|
|
53
|
+
};
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
getNetworkName() {
|
|
57
|
+
const [network] = this.starknetNetworks;
|
|
58
|
+
if (!network) {
|
|
59
|
+
return undefined;
|
|
60
|
+
}
|
|
61
|
+
return this.mapChainIdToNetworkName(network.chainId);
|
|
62
|
+
}
|
|
63
|
+
getNodeUrl() {
|
|
64
|
+
var _a;
|
|
65
|
+
const [network] = this.starknetNetworks;
|
|
66
|
+
if (!network) {
|
|
67
|
+
return undefined;
|
|
68
|
+
}
|
|
69
|
+
return ((_a = network.privateCustomerRpcUrls) === null || _a === void 0 ? void 0 : _a[0]) || network.rpcUrls[0];
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
exports.ArgentMobile = ArgentMobile;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { PromptOptions, PromptResult } from '../../../types';
|
|
2
|
+
import { ArgentBase } from '../base';
|
|
3
|
+
export declare class ArgentMobile extends ArgentBase {
|
|
4
|
+
private projectId;
|
|
5
|
+
private appName;
|
|
6
|
+
private appLogoUrls;
|
|
7
|
+
canConnectViaCustodialService: boolean;
|
|
8
|
+
overrideKey: string;
|
|
9
|
+
constructor(opts: any);
|
|
10
|
+
isInstalledOnBrowser(): boolean;
|
|
11
|
+
filter(): boolean;
|
|
12
|
+
prompt(options: PromptOptions): Promise<PromptResult>;
|
|
13
|
+
private getNetworkName;
|
|
14
|
+
private getNodeUrl;
|
|
15
|
+
}
|
|
16
|
+
export type ArgentMobileWalletConnectorType = ArgentMobile;
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
import { __awaiter } from '../../../../_virtual/_tslib.js';
|
|
3
|
+
import { connect } from 'starknetkit';
|
|
4
|
+
import { isInArgentMobileAppBrowser, ArgentMobileBaseConnector } from 'starknetkit/argentMobile';
|
|
5
|
+
import { constants } from 'starknet';
|
|
6
|
+
import { ArgentBase } from '../base.js';
|
|
7
|
+
|
|
8
|
+
class ArgentMobile extends ArgentBase {
|
|
9
|
+
constructor(opts) {
|
|
10
|
+
super('Argent X - Mobile', 'argentXMobile', opts);
|
|
11
|
+
this.canConnectViaCustodialService = true;
|
|
12
|
+
this.overrideKey = 'argentxmobile';
|
|
13
|
+
this.projectId = opts.projectId;
|
|
14
|
+
this.appName = opts.appName;
|
|
15
|
+
this.appLogoUrls = opts.appLogoUrl
|
|
16
|
+
? [opts.appLogoUrl]
|
|
17
|
+
: undefined;
|
|
18
|
+
}
|
|
19
|
+
isInstalledOnBrowser() {
|
|
20
|
+
return false;
|
|
21
|
+
}
|
|
22
|
+
filter() {
|
|
23
|
+
if (super.filter()) {
|
|
24
|
+
return !isInArgentMobileAppBrowser();
|
|
25
|
+
}
|
|
26
|
+
return false;
|
|
27
|
+
}
|
|
28
|
+
prompt(options) {
|
|
29
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
30
|
+
const { connectorData, wallet } = yield connect({
|
|
31
|
+
connectors: [
|
|
32
|
+
new ArgentMobileBaseConnector({
|
|
33
|
+
chainId: this.getNetworkName() || constants.NetworkName.SN_MAIN,
|
|
34
|
+
dappName: this.appName,
|
|
35
|
+
icons: this.appLogoUrls,
|
|
36
|
+
projectId: this.projectId,
|
|
37
|
+
rpcUrl: this.getNodeUrl(),
|
|
38
|
+
url: window.location.hostname,
|
|
39
|
+
}),
|
|
40
|
+
],
|
|
41
|
+
modalMode: options.silently ? 'neverAsk' : 'canAsk',
|
|
42
|
+
});
|
|
43
|
+
return {
|
|
44
|
+
data: {
|
|
45
|
+
account: connectorData === null || connectorData === void 0 ? void 0 : connectorData.account,
|
|
46
|
+
chainId: connectorData === null || connectorData === void 0 ? void 0 : connectorData.chainId,
|
|
47
|
+
},
|
|
48
|
+
wallet: wallet !== null && wallet !== void 0 ? wallet : undefined,
|
|
49
|
+
};
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
getNetworkName() {
|
|
53
|
+
const [network] = this.starknetNetworks;
|
|
54
|
+
if (!network) {
|
|
55
|
+
return undefined;
|
|
56
|
+
}
|
|
57
|
+
return this.mapChainIdToNetworkName(network.chainId);
|
|
58
|
+
}
|
|
59
|
+
getNodeUrl() {
|
|
60
|
+
var _a;
|
|
61
|
+
const [network] = this.starknetNetworks;
|
|
62
|
+
if (!network) {
|
|
63
|
+
return undefined;
|
|
64
|
+
}
|
|
65
|
+
return ((_a = network.privateCustomerRpcUrls) === null || _a === void 0 ? void 0 : _a[0]) || network.rpcUrls[0];
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
export { ArgentMobile };
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
5
|
+
|
|
6
|
+
var _tslib = require('../../../_virtual/_tslib.cjs');
|
|
7
|
+
var starknetkit = require('starknetkit');
|
|
8
|
+
var StarknetWalletConnector = require('../../StarknetWalletConnector.cjs');
|
|
9
|
+
|
|
10
|
+
class ArgentBase extends StarknetWalletConnector.StarknetWalletConnector {
|
|
11
|
+
getConnectedAccounts() {
|
|
12
|
+
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
13
|
+
var _a;
|
|
14
|
+
if ((_a = this.walletData) === null || _a === void 0 ? void 0 : _a.account) {
|
|
15
|
+
return [this.walletData.account];
|
|
16
|
+
}
|
|
17
|
+
let data;
|
|
18
|
+
let wallet;
|
|
19
|
+
this.logger.debug('[getConnectedAccounts] No existing account, attempting to silently connect');
|
|
20
|
+
try {
|
|
21
|
+
({ data, wallet } = yield this.prompt({
|
|
22
|
+
silently: true,
|
|
23
|
+
}));
|
|
24
|
+
}
|
|
25
|
+
catch (error) {
|
|
26
|
+
this.logger.debug(`[getConnectedAccounts] Silent connect errored out: ${error}`);
|
|
27
|
+
return [];
|
|
28
|
+
}
|
|
29
|
+
this.logger.debug(`[getConnectedAccounts] Connect returned account: ${data === null || data === void 0 ? void 0 : data.account}`);
|
|
30
|
+
if (!(data === null || data === void 0 ? void 0 : data.account) || !wallet) {
|
|
31
|
+
return [];
|
|
32
|
+
}
|
|
33
|
+
this.walletData = data;
|
|
34
|
+
this.wallet = wallet;
|
|
35
|
+
this.setupEventListeners();
|
|
36
|
+
return [data.account];
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
endSession() {
|
|
40
|
+
const _super = Object.create(null, {
|
|
41
|
+
endSession: { get: () => super.endSession }
|
|
42
|
+
});
|
|
43
|
+
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
44
|
+
yield _super.endSession.call(this);
|
|
45
|
+
yield starknetkit.disconnect();
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
exports.ArgentBase = ArgentBase;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
import { __awaiter } from '../../../_virtual/_tslib.js';
|
|
3
|
+
import { disconnect } from 'starknetkit';
|
|
4
|
+
import { StarknetWalletConnector } from '../../StarknetWalletConnector.js';
|
|
5
|
+
|
|
6
|
+
class ArgentBase extends StarknetWalletConnector {
|
|
7
|
+
getConnectedAccounts() {
|
|
8
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
9
|
+
var _a;
|
|
10
|
+
if ((_a = this.walletData) === null || _a === void 0 ? void 0 : _a.account) {
|
|
11
|
+
return [this.walletData.account];
|
|
12
|
+
}
|
|
13
|
+
let data;
|
|
14
|
+
let wallet;
|
|
15
|
+
this.logger.debug('[getConnectedAccounts] No existing account, attempting to silently connect');
|
|
16
|
+
try {
|
|
17
|
+
({ data, wallet } = yield this.prompt({
|
|
18
|
+
silently: true,
|
|
19
|
+
}));
|
|
20
|
+
}
|
|
21
|
+
catch (error) {
|
|
22
|
+
this.logger.debug(`[getConnectedAccounts] Silent connect errored out: ${error}`);
|
|
23
|
+
return [];
|
|
24
|
+
}
|
|
25
|
+
this.logger.debug(`[getConnectedAccounts] Connect returned account: ${data === null || data === void 0 ? void 0 : data.account}`);
|
|
26
|
+
if (!(data === null || data === void 0 ? void 0 : data.account) || !wallet) {
|
|
27
|
+
return [];
|
|
28
|
+
}
|
|
29
|
+
this.walletData = data;
|
|
30
|
+
this.wallet = wallet;
|
|
31
|
+
this.setupEventListeners();
|
|
32
|
+
return [data.account];
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
endSession() {
|
|
36
|
+
const _super = Object.create(null, {
|
|
37
|
+
endSession: { get: () => super.endSession }
|
|
38
|
+
});
|
|
39
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
40
|
+
yield _super.endSession.call(this);
|
|
41
|
+
yield disconnect();
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
export { ArgentBase };
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
5
|
+
|
|
6
|
+
var _tslib = require('../../../../_virtual/_tslib.cjs');
|
|
7
|
+
var starknetkit = require('starknetkit');
|
|
8
|
+
var injected = require('starknetkit/injected');
|
|
9
|
+
var base = require('../base.cjs');
|
|
10
|
+
|
|
11
|
+
class ArgentX extends base.ArgentBase {
|
|
12
|
+
constructor(opts) {
|
|
13
|
+
super('Argent X', 'argentX', opts);
|
|
14
|
+
this.overrideKey = 'argentx';
|
|
15
|
+
}
|
|
16
|
+
prompt() {
|
|
17
|
+
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
18
|
+
const { connectorData, wallet } = yield starknetkit.connect({
|
|
19
|
+
connectors: [new injected.InjectedConnector({ options: { id: this.id } })],
|
|
20
|
+
modalMode: 'canAsk',
|
|
21
|
+
});
|
|
22
|
+
return {
|
|
23
|
+
data: {
|
|
24
|
+
account: connectorData === null || connectorData === void 0 ? void 0 : connectorData.account,
|
|
25
|
+
chainId: connectorData === null || connectorData === void 0 ? void 0 : connectorData.chainId,
|
|
26
|
+
},
|
|
27
|
+
wallet: wallet !== null && wallet !== void 0 ? wallet : undefined,
|
|
28
|
+
};
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
exports.ArgentX = ArgentX;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { PromptResult } from '../../../types';
|
|
2
|
+
import { ArgentBase } from '../base';
|
|
3
|
+
export declare class ArgentX extends ArgentBase {
|
|
4
|
+
overrideKey: string;
|
|
5
|
+
constructor(opts: any);
|
|
6
|
+
prompt(): Promise<PromptResult>;
|
|
7
|
+
}
|
|
8
|
+
export type ArgentXWalletConnectorType = ArgentX;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
import { __awaiter } from '../../../../_virtual/_tslib.js';
|
|
3
|
+
import { connect } from 'starknetkit';
|
|
4
|
+
import { InjectedConnector } from 'starknetkit/injected';
|
|
5
|
+
import { ArgentBase } from '../base.js';
|
|
6
|
+
|
|
7
|
+
class ArgentX extends ArgentBase {
|
|
8
|
+
constructor(opts) {
|
|
9
|
+
super('Argent X', 'argentX', opts);
|
|
10
|
+
this.overrideKey = 'argentx';
|
|
11
|
+
}
|
|
12
|
+
prompt() {
|
|
13
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
14
|
+
const { connectorData, wallet } = yield connect({
|
|
15
|
+
connectors: [new InjectedConnector({ options: { id: this.id } })],
|
|
16
|
+
modalMode: 'canAsk',
|
|
17
|
+
});
|
|
18
|
+
return {
|
|
19
|
+
data: {
|
|
20
|
+
account: connectorData === null || connectorData === void 0 ? void 0 : connectorData.account,
|
|
21
|
+
chainId: connectorData === null || connectorData === void 0 ? void 0 : connectorData.chainId,
|
|
22
|
+
},
|
|
23
|
+
wallet: wallet !== null && wallet !== void 0 ? wallet : undefined,
|
|
24
|
+
};
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export { ArgentX };
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
5
|
+
|
|
6
|
+
var _tslib = require('../../../../_virtual/_tslib.cjs');
|
|
7
|
+
var starknetkit = require('starknetkit');
|
|
8
|
+
var webwallet = require('starknetkit/webwallet');
|
|
9
|
+
var base = require('../base.cjs');
|
|
10
|
+
|
|
11
|
+
class WebWallet extends base.ArgentBase {
|
|
12
|
+
constructor(opts) {
|
|
13
|
+
super('Argent X - Web', 'argentWebWallet', opts);
|
|
14
|
+
this.overrideKey = 'argentxweb';
|
|
15
|
+
this.canConnectViaCustodialService = true;
|
|
16
|
+
}
|
|
17
|
+
isInstalledOnBrowser() {
|
|
18
|
+
return false;
|
|
19
|
+
}
|
|
20
|
+
prompt(options) {
|
|
21
|
+
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
22
|
+
const { connectorData, wallet } = yield starknetkit.connect({
|
|
23
|
+
connectors: [new webwallet.WebWalletConnector({ url: 'https://web.argent.xyz' })],
|
|
24
|
+
modalMode: options.silently ? 'neverAsk' : 'canAsk',
|
|
25
|
+
});
|
|
26
|
+
return {
|
|
27
|
+
data: {
|
|
28
|
+
account: connectorData === null || connectorData === void 0 ? void 0 : connectorData.account,
|
|
29
|
+
chainId: connectorData === null || connectorData === void 0 ? void 0 : connectorData.chainId,
|
|
30
|
+
},
|
|
31
|
+
wallet: wallet !== null && wallet !== void 0 ? wallet : undefined,
|
|
32
|
+
};
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
exports.WebWallet = WebWallet;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { PromptOptions, PromptResult } from '../../../types';
|
|
2
|
+
import { ArgentBase } from '../base';
|
|
3
|
+
export declare class WebWallet extends ArgentBase {
|
|
4
|
+
overrideKey: string;
|
|
5
|
+
canConnectViaCustodialService: boolean;
|
|
6
|
+
constructor(opts: any);
|
|
7
|
+
isInstalledOnBrowser(): boolean;
|
|
8
|
+
prompt(options: PromptOptions): Promise<PromptResult>;
|
|
9
|
+
}
|
|
10
|
+
export type WebWalletConnectorType = WebWallet;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
import { __awaiter } from '../../../../_virtual/_tslib.js';
|
|
3
|
+
import { connect } from 'starknetkit';
|
|
4
|
+
import { WebWalletConnector } from 'starknetkit/webwallet';
|
|
5
|
+
import { ArgentBase } from '../base.js';
|
|
6
|
+
|
|
7
|
+
class WebWallet extends ArgentBase {
|
|
8
|
+
constructor(opts) {
|
|
9
|
+
super('Argent X - Web', 'argentWebWallet', opts);
|
|
10
|
+
this.overrideKey = 'argentxweb';
|
|
11
|
+
this.canConnectViaCustodialService = true;
|
|
12
|
+
}
|
|
13
|
+
isInstalledOnBrowser() {
|
|
14
|
+
return false;
|
|
15
|
+
}
|
|
16
|
+
prompt(options) {
|
|
17
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
18
|
+
const { connectorData, wallet } = yield connect({
|
|
19
|
+
connectors: [new WebWalletConnector({ url: 'https://web.argent.xyz' })],
|
|
20
|
+
modalMode: options.silently ? 'neverAsk' : 'canAsk',
|
|
21
|
+
});
|
|
22
|
+
return {
|
|
23
|
+
data: {
|
|
24
|
+
account: connectorData === null || connectorData === void 0 ? void 0 : connectorData.account,
|
|
25
|
+
chainId: connectorData === null || connectorData === void 0 ? void 0 : connectorData.chainId,
|
|
26
|
+
},
|
|
27
|
+
wallet: wallet !== null && wallet !== void 0 ? wallet : undefined,
|
|
28
|
+
};
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export { WebWallet };
|