@dynamic-labs/multi-wallet 0.16.0-RC.12 → 0.16.0-RC.13

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 CHANGED
@@ -1,4 +1,21 @@
1
1
 
2
+ ## [0.16.0-RC.13](https://github.com/dynamic-labs/DynamicAuth/compare/v0.16.0-RC.12...v0.16.0-RC.13) (2023-04-11)
3
+
4
+
5
+ ### Features
6
+
7
+ * add cosmos to the new wallet chain options ([ba93570](https://github.com/dynamic-labs/DynamicAuth/commit/ba93570a1b51d79135e985273c9a8ac7b417b690))
8
+ * add glow and starknet to shouldManuallyReconnectOnRefresh ([a971787](https://github.com/dynamic-labs/DynamicAuth/commit/a97178750aa2ff6b2e6c8b84bf8587f43faaf243))
9
+ * starknet update signature for getWeb3Provider and updated isInstalled ([94e84ac](https://github.com/dynamic-labs/DynamicAuth/commit/94e84ac04e4ceb20a6b13ede4ff22230b0bb08f5))
10
+
11
+
12
+ ### Bug Fixes
13
+
14
+ * **connect-only:** manually reconnect connector based on shouldManuallyReconnectOnRefresh ([e81ec1c](https://github.com/dynamic-labs/DynamicAuth/commit/e81ec1ccee9fe4361dc4e12e358a4d199b750478))
15
+ * remove useFetchPublicAddress ([5cb5659](https://github.com/dynamic-labs/DynamicAuth/commit/5cb5659aa8b3d03589f6e6a065a087ff54afe863))
16
+ * starknet properly teardown the listeners ([1212251](https://github.com/dynamic-labs/DynamicAuth/commit/121225146ed2d7e6dff58f00681f7876ba20bd6e))
17
+ * update kycEnabled value when projectSettings change ([#1836](https://github.com/dynamic-labs/DynamicAuth/issues/1836)) ([56f4312](https://github.com/dynamic-labs/DynamicAuth/commit/56f431218648d34275d4ea0ab5e5dbfadd8ed7b3))
18
+
2
19
  ## [0.16.0-RC.12](https://github.com/dynamic-labs/DynamicAuth/compare/v0.16.0-RC.11...v0.16.0-RC.12) (2023-04-06)
3
20
 
4
21
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dynamic-labs/multi-wallet",
3
- "version": "0.16.0-RC.12",
3
+ "version": "0.16.0-RC.13",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/dynamic-labs/DynamicAuth.git",
@@ -11,7 +11,7 @@
11
11
  "@coinbase/wallet-sdk": "3.6.4",
12
12
  "@dynamic-labs/iconic": "0.1.16",
13
13
  "@dynamic-labs/sdk-api": "0.0.173",
14
- "@dynamic-labs/wallet-book": "0.0.8",
14
+ "@dynamic-labs/wallet-book": "0.0.10",
15
15
  "@keplr-wallet/types": "0.11.51",
16
16
  "@onflow/fcl": "1.3.2",
17
17
  "@randlabs/myalgo-connect": "1.4.2",
@@ -25,11 +25,10 @@
25
25
  "get-starknet": "1.5.0",
26
26
  "magic-sdk": "16.0.1",
27
27
  "react": "18.2.0",
28
- "react-dom": "18.2.0",
29
28
  "starknet": "3.19.0",
30
29
  "tslib": "2.4.1",
31
- "@dynamic-labs/logger": "0.16.0-RC.12",
32
- "@dynamic-labs/wallet-connector-core": "0.16.0-RC.12"
30
+ "@dynamic-labs/logger": "0.16.0-RC.13",
31
+ "@dynamic-labs/wallet-connector-core": "0.16.0-RC.13"
33
32
  },
34
33
  "devDependencies": {
35
34
  "@walletconnect/types": "^2.2.1"
package/src/index.d.ts CHANGED
@@ -17,4 +17,4 @@ export * from './wallets/clients/coinbase';
17
17
  export type { EvmNetwork } from './wallets/ethereum/evm-network';
18
18
  export { Keplr } from './wallets/cosmos/keplr';
19
19
  export * from './utils/isSameAddress';
20
- export { defaultStarknetTypedDataDomain } from './wallets/constants';
20
+ export { DEFAULT_STARKNET_TYPED_DATA_DOMAIN as defaultStarknetTypedDataDomain } from './wallets/constants';
package/src/index.js CHANGED
@@ -31,5 +31,5 @@ var keplr_1 = require("./wallets/cosmos/keplr");
31
31
  Object.defineProperty(exports, "Keplr", { enumerable: true, get: function () { return keplr_1.Keplr; } });
32
32
  tslib_1.__exportStar(require("./utils/isSameAddress"), exports);
33
33
  var constants_1 = require("./wallets/constants");
34
- Object.defineProperty(exports, "defaultStarknetTypedDataDomain", { enumerable: true, get: function () { return constants_1.defaultStarknetTypedDataDomain; } });
34
+ Object.defineProperty(exports, "defaultStarknetTypedDataDomain", { enumerable: true, get: function () { return constants_1.DEFAULT_STARKNET_TYPED_DATA_DOMAIN; } });
35
35
  //# sourceMappingURL=index.js.map
package/src/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/multi-wallet/src/index.ts"],"names":[],"mappings":";;;;AAAA,uBAAqB;AAErB,yDAA+B;AAC/B,kDAAwB;AACxB,mDAAyB;AACzB,yDAA+B;AAC/B,yDAA+B;AAC/B,4EAAkD;AAElD,2CAAwD;AAA/C,gHAAA,qBAAqB,OAAA;AAC9B,6CAA8D;AAArD,kGAAA,MAAM,OAAA;AAAE,oGAAA,QAAQ,OAAA;AAAE,oGAAA,QAAQ,OAAA;AAEnC,mEAAkE;AAAzD,0HAAA,mBAAmB,OAAA;AAC5B,yEAAwE;AAA/D,gIAAA,sBAAsB,OAAA;AAC/B,+EAA8E;AAArE,sIAAA,yBAAyB,OAAA;AAClC,qDAAoD;AAA3C,4GAAA,YAAY,OAAA;AACrB,6EAA4E;AAAnE,oIAAA,wBAAwB,OAAA;AAEjC,0EAAgD;AAChD,qEAA2C;AAI3C,gDAA+C;AAAtC,8FAAA,KAAK,OAAA;AAEd,gEAAsC;AAEtC,iDAAqE;AAA5D,2HAAA,8BAA8B,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/multi-wallet/src/index.ts"],"names":[],"mappings":";;;;AAAA,uBAAqB;AAErB,yDAA+B;AAC/B,kDAAwB;AACxB,mDAAyB;AACzB,yDAA+B;AAC/B,yDAA+B;AAC/B,4EAAkD;AAElD,2CAAwD;AAA/C,gHAAA,qBAAqB,OAAA;AAC9B,6CAA8D;AAArD,kGAAA,MAAM,OAAA;AAAE,oGAAA,QAAQ,OAAA;AAAE,oGAAA,QAAQ,OAAA;AAEnC,mEAAkE;AAAzD,0HAAA,mBAAmB,OAAA;AAC5B,yEAAwE;AAA/D,gIAAA,sBAAsB,OAAA;AAC/B,+EAA8E;AAArE,sIAAA,yBAAyB,OAAA;AAClC,qDAAoD;AAA3C,4GAAA,YAAY,OAAA;AACrB,6EAA4E;AAAnE,oIAAA,wBAAwB,OAAA;AAEjC,0EAAgD;AAChD,qEAA2C;AAI3C,gDAA+C;AAAtC,8FAAA,KAAK,OAAA;AAEd,gEAAsC;AAEtC,iDAA2G;AAAlG,2HAAA,kCAAkC,OAAkC"}
@@ -9,7 +9,7 @@ const bufferToBase64 = (buf) => {
9
9
  return btoa(binstr);
10
10
  };
11
11
  exports.bufferToBase64 = bufferToBase64;
12
- const defaultTypedData = Object.assign(Object.assign({}, constants_1.defaultStarknetTypedDataDomain), { primaryType: 'Message', types: {
12
+ const defaultTypedData = Object.assign(Object.assign({}, constants_1.DEFAULT_STARKNET_TYPED_DATA_DOMAIN), { primaryType: 'Message', types: {
13
13
  Message: [
14
14
  {
15
15
  name: 'message',
@@ -1 +1 @@
1
- {"version":3,"file":"convertors.js","sourceRoot":"","sources":["../../../../../packages/multi-wallet/src/utils/convertors.ts"],"names":[],"mappings":";;;AAEA,oDAAsE;AAE/D,MAAM,cAAc,GAAG,CAAC,GAAe,EAAU,EAAE;IACxD,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG;SAC/B,IAAI,CAAC,GAAG,EAAE,CAAC,EAAU,EAAE,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;SAClD,IAAI,CAAC,EAAE,CAAC,CAAC;IACZ,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;AACtB,CAAC,CAAC;AALW,QAAA,cAAc,kBAKzB;AAEF,MAAM,gBAAgB,mCACjB,0CAA8B,KACjC,WAAW,EAAE,SAAS,EACtB,KAAK,EAAE;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,MAAM;aACb;SACF;QACD,cAAc,EAAE;YACd;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,MAAM;aACb;YACD;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,MAAM;aACb;YACD;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,MAAM;aACb;SACF;KACF,GACF,CAAC;AAEK,MAAM,sBAAsB,GAAG,CACpC,YAAoB,EACpB,UAAmC,SAAS,EACjC,EAAE;IACb,MAAM,OAAO,GAA4B;QACvC,OAAO,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC;KACvC,CAAC;IAEF,OAAO,gCACF,gBAAgB,KACnB,MAAM,kCACD,gBAAgB,CAAC,MAAM,KAC1B,OAAO,KAET,OAAO,GACK,CAAC;AACjB,CAAC,CAAC;AAhBW,QAAA,sBAAsB,0BAgBjC"}
1
+ {"version":3,"file":"convertors.js","sourceRoot":"","sources":["../../../../../packages/multi-wallet/src/utils/convertors.ts"],"names":[],"mappings":";;;AAEA,oDAA0E;AAEnE,MAAM,cAAc,GAAG,CAAC,GAAe,EAAU,EAAE;IACxD,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG;SAC/B,IAAI,CAAC,GAAG,EAAE,CAAC,EAAU,EAAE,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;SAClD,IAAI,CAAC,EAAE,CAAC,CAAC;IACZ,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;AACtB,CAAC,CAAC;AALW,QAAA,cAAc,kBAKzB;AAEF,MAAM,gBAAgB,mCACjB,8CAAkC,KACrC,WAAW,EAAE,SAAS,EACtB,KAAK,EAAE;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,MAAM;aACb;SACF;QACD,cAAc,EAAE;YACd;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,MAAM;aACb;YACD;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,MAAM;aACb;YACD;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,MAAM;aACb;SACF;KACF,GACF,CAAC;AAEK,MAAM,sBAAsB,GAAG,CACpC,YAAoB,EACpB,UAAmC,SAAS,EACjC,EAAE;IACb,MAAM,OAAO,GAA4B;QACvC,OAAO,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC;KACvC,CAAC;IAEF,OAAO,gCACF,gBAAgB,KACnB,MAAM,kCACD,gBAAgB,CAAC,MAAM,KAC1B,OAAO,KAET,OAAO,GACK,CAAC;AACjB,CAAC,CAAC;AAhBW,QAAA,sBAAsB,0BAgBjC"}
@@ -1,4 +1,4 @@
1
1
  import { TypedData } from 'starknet/dist/utils/typedData';
2
2
  export declare const infuraId = "87939db78f824920ada5c872db3e56b8";
3
- export declare const ethStarknetAddress = "0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7";
4
- export declare const defaultStarknetTypedDataDomain: Partial<TypedData>;
3
+ export declare const ETH_STARKNET_ADDRESS = "0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7";
4
+ export declare const DEFAULT_STARKNET_TYPED_DATA_DOMAIN: Partial<TypedData>;
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.defaultStarknetTypedDataDomain = exports.ethStarknetAddress = exports.infuraId = void 0;
3
+ exports.DEFAULT_STARKNET_TYPED_DATA_DOMAIN = exports.ETH_STARKNET_ADDRESS = exports.infuraId = void 0;
4
4
  exports.infuraId = '87939db78f824920ada5c872db3e56b8';
5
- exports.ethStarknetAddress = '0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7';
6
- exports.defaultStarknetTypedDataDomain = {
5
+ exports.ETH_STARKNET_ADDRESS = '0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7';
6
+ exports.DEFAULT_STARKNET_TYPED_DATA_DOMAIN = {
7
7
  domain: {
8
8
  name: 'Dynamic Sample dApp',
9
9
  version: '0.0.1',
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../packages/multi-wallet/src/wallets/constants.ts"],"names":[],"mappings":";;;AAEa,QAAA,QAAQ,GAAG,kCAAkC,CAAC;AAE9C,QAAA,kBAAkB,GAC7B,oEAAoE,CAAC;AAE1D,QAAA,8BAA8B,GAAuB;IAChE,MAAM,EAAE;QACN,IAAI,EAAE,qBAAqB;QAC3B,OAAO,EAAE,OAAO;KACjB;CACF,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../packages/multi-wallet/src/wallets/constants.ts"],"names":[],"mappings":";;;AAEa,QAAA,QAAQ,GAAG,kCAAkC,CAAC;AAE9C,QAAA,oBAAoB,GAC/B,oEAAoE,CAAC;AAE1D,QAAA,kCAAkC,GAAuB;IACpE,MAAM,EAAE;QACN,IAAI,EAAE,qBAAqB;QAC3B,OAAO,EAAE,OAAO;KACjB;CACF,CAAC"}
@@ -4,7 +4,7 @@ const tslib_1 = require("tslib");
4
4
  const starknetProvider_1 = tslib_1.__importDefault(require("./starknetProvider"));
5
5
  class ArgentX extends starknetProvider_1.default {
6
6
  constructor() {
7
- super('Argent X');
7
+ super('Argent X', 'argentX');
8
8
  }
9
9
  }
10
10
  exports.default = ArgentX;
@@ -1 +1 @@
1
- {"version":3,"file":"argentx.js","sourceRoot":"","sources":["../../../../../../packages/multi-wallet/src/wallets/starknet/argentx.ts"],"names":[],"mappings":";;;AAEA,kFAAkD;AAElD,MAAM,OAAQ,SAAQ,0BAAgB;IACpC;QACE,KAAK,CAAC,UAAU,CAAC,CAAC;IACpB,CAAC;CACF;AAED,kBAAe,OAAO,CAAC"}
1
+ {"version":3,"file":"argentx.js","sourceRoot":"","sources":["../../../../../../packages/multi-wallet/src/wallets/starknet/argentx.ts"],"names":[],"mappings":";;;AAEA,kFAAkD;AAElD,MAAM,OAAQ,SAAQ,0BAAgB;IACpC;QACE,KAAK,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IAC/B,CAAC;CACF;AAED,kBAAe,OAAO,CAAC"}
@@ -5,7 +5,7 @@ const isMobile_1 = require("../../utils/isMobile");
5
5
  const starknetProvider_1 = tslib_1.__importDefault(require("./starknetProvider"));
6
6
  class Braavos extends starknetProvider_1.default {
7
7
  constructor() {
8
- super('Braavos');
8
+ super('Braavos', 'braavos');
9
9
  }
10
10
  fetchPublicAddress() {
11
11
  const _super = Object.create(null, {
@@ -1 +1 @@
1
- {"version":3,"file":"braavos.js","sourceRoot":"","sources":["../../../../../../packages/multi-wallet/src/wallets/starknet/braavos.ts"],"names":[],"mappings":";;;AAEA,mDAAgD;AAEhD,kFAAkD;AAElD,MAAM,OAAQ,SAAQ,0BAAgB;IACpC;QACE,KAAK,CAAC,SAAS,CAAC,CAAC;IACnB,CAAC;IAEc,kBAAkB;;;;;YAC/B,IAAI,IAAI,CAAC,oBAAoB,EAAE,EAAE;gBAC/B,OAAO,OAAM,kBAAkB,YAAG;aACnC;YAED;;;eAGG;YACH,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;YACpE,MAAM,SAAS,GAAG,mBAAmB,GAAG,EAAE,CAAC;YAE3C,IAAI,IAAA,mBAAQ,GAAE,EAAE;gBACd,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;aACnC;YAED,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACpC,CAAC;KAAA;CACF;AAED,kBAAe,OAAO,CAAC"}
1
+ {"version":3,"file":"braavos.js","sourceRoot":"","sources":["../../../../../../packages/multi-wallet/src/wallets/starknet/braavos.ts"],"names":[],"mappings":";;;AAEA,mDAAgD;AAEhD,kFAAkD;AAElD,MAAM,OAAQ,SAAQ,0BAAgB;IACpC;QACE,KAAK,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAC9B,CAAC;IAEc,kBAAkB;;;;;YAC/B,IAAI,IAAI,CAAC,oBAAoB,EAAE,EAAE;gBAC/B,OAAO,OAAM,kBAAkB,YAAG;aACnC;YAED;;;eAGG;YACH,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;YACpE,MAAM,SAAS,GAAG,mBAAmB,GAAG,EAAE,CAAC;YAE3C,IAAI,IAAA,mBAAQ,GAAE,EAAE;gBACd,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;aACnC;YAED,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACpC,CAAC;KAAA;CACF;AAED,kBAAe,OAAO,CAAC"}
@@ -1,32 +1,44 @@
1
- import { SignerInterface } from 'starknet';
1
+ import { IStarknetWindowObject } from 'get-starknet';
2
+ import { AccountInterface, ProviderInterface } from 'starknet';
2
3
  import { Chain, WalletConnector, WalletEventListeners } from '@dynamic-labs/wallet-connector-core';
3
- import { StarknetProviderHelper } from './starknetProviderHelper';
4
- declare class StarknetProvider extends StarknetProviderHelper implements WalletConnector {
4
+ type AccountChangeEventHandler = (address: {
5
+ toString(): string;
6
+ }) => Promise<void>;
7
+ type NetworkChangeEventHandler = (network: {
8
+ toString(): string;
9
+ }) => Promise<void>;
10
+ type WalletKeys = 'braavos' | 'argentX';
11
+ declare abstract class StarknetProvider implements WalletConnector {
5
12
  name: string;
13
+ windowKey: WalletKeys;
6
14
  connectedChain: Chain;
7
15
  supportedChains: Chain[];
8
16
  canConnectViaQrCode: boolean;
9
17
  canConnectViaCustodialService: boolean;
10
18
  isWalletConnect: boolean;
11
- protected starknetProviderHelper: StarknetProviderHelper;
12
- constructor(name: string);
13
- getDeepLink(): string | undefined;
19
+ wallet: IStarknetWindowObject | undefined;
20
+ handleAccountChange: AccountChangeEventHandler | undefined;
21
+ handleNetworkChange: NetworkChangeEventHandler | undefined;
22
+ constructor(name: string, windowKey: WalletKeys);
14
23
  get key(): string;
15
24
  connect(): Promise<void>;
16
25
  fetchPublicAddress(): Promise<string | undefined>;
17
26
  getNetwork(): Promise<number | undefined>;
18
- getSigner(): Promise<SignerInterface | undefined>;
19
- getWeb3Provider(): void;
27
+ getSigner(): Promise<AccountInterface | undefined>;
28
+ getWallet(): Promise<IStarknetWindowObject | undefined>;
29
+ getWeb3Provider(): Promise<ProviderInterface | undefined>;
20
30
  getRpcProvider(): Promise<void>;
21
31
  signMessage(messageToSign: string): Promise<string | undefined>;
22
32
  proveOwnership(messageToSign: string): Promise<string | undefined>;
23
33
  getBalance(): Promise<string | undefined>;
24
34
  endSession(): Promise<void>;
35
+ getStarknetWindowObject(): IStarknetWindowObject | undefined;
25
36
  isInstalledOnBrowser(): boolean;
26
37
  supportsNetworkSwitching(): boolean;
27
38
  switchNetwork(): Promise<void>;
28
- setupEventListeners(listeners: WalletEventListeners): void;
29
- teardownEventListeners(): void;
30
39
  getConnectedAccounts(): Promise<string[]>;
40
+ setupEventListeners(listeners: WalletEventListeners): void;
41
+ teardownEventListeners(): Promise<void>;
42
+ getDeepLink(): string | undefined;
31
43
  }
32
44
  export default StarknetProvider;
@@ -2,35 +2,48 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
4
  const get_starknet_1 = require("get-starknet");
5
+ const starknet_1 = require("starknet");
6
+ const constants_1 = require("starknet/constants");
7
+ const uint256_1 = require("starknet/dist/utils/uint256");
5
8
  const errors_1 = require("../../errors");
6
9
  const normalizeWalletName_1 = require("../../utils/normalizeWalletName");
7
- const starknetProviderHelper_1 = require("./starknetProviderHelper");
8
- class StarknetProvider extends starknetProviderHelper_1.StarknetProviderHelper {
9
- constructor(name) {
10
- super();
10
+ const logger_1 = require("../../utils/logger");
11
+ const convertors_1 = require("../../utils/convertors");
12
+ const constants_2 = require("../constants");
13
+ const ethereumContractAbi_json_1 = tslib_1.__importDefault(require("./ethereumContractAbi.json"));
14
+ const ACCOUNT_CHANGED_EVENT_LISTENER = 'accountsChanged';
15
+ const NETWORK_CHANGED_EVENT_LISTENER = 'networkChanged';
16
+ class StarknetProvider {
17
+ constructor(name, windowKey) {
11
18
  this.connectedChain = 'STARK';
12
19
  this.supportedChains = ['STARK'];
13
20
  this.canConnectViaQrCode = false;
14
21
  this.canConnectViaCustodialService = false;
15
22
  this.isWalletConnect = false;
16
- this.starknetProviderHelper = new starknetProviderHelper_1.StarknetProviderHelper();
17
23
  this.name = name;
18
- }
19
- getDeepLink() {
20
- return undefined;
24
+ this.windowKey = windowKey;
21
25
  }
22
26
  get key() {
23
27
  return (0, normalizeWalletName_1.normalizeWalletName)(this.name);
24
28
  }
25
29
  connect() {
26
30
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
27
- yield this.starknetProviderHelper.connectWithName(this.name);
31
+ const wallet = yield this.getWallet();
32
+ try {
33
+ if (wallet && !wallet.isConnected) {
34
+ yield wallet.enable({ showModal: false });
35
+ }
36
+ }
37
+ catch (err) {
38
+ logger_1.logger.error(err);
39
+ }
28
40
  });
29
41
  }
30
42
  fetchPublicAddress() {
31
43
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
32
- const address = yield this.starknetProviderHelper.getPublicAddressWithName(this.name);
33
- return address;
44
+ const wallet = yield this.getWallet();
45
+ yield this.connect();
46
+ return Promise.resolve(wallet === null || wallet === void 0 ? void 0 : wallet.selectedAddress);
34
47
  });
35
48
  }
36
49
  getNetwork() {
@@ -40,12 +53,24 @@ class StarknetProvider extends starknetProviderHelper_1.StarknetProviderHelper {
40
53
  }
41
54
  getSigner() {
42
55
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
43
- const account = yield this.starknetProviderHelper.getConnectedAccountWithName(this.name);
44
- return account === null || account === void 0 ? void 0 : account.signer;
56
+ const wallet = yield this.getWallet();
57
+ return wallet === null || wallet === void 0 ? void 0 : wallet.account;
58
+ });
59
+ }
60
+ getWallet() {
61
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
62
+ if (!this.wallet) {
63
+ const providers = yield (0, get_starknet_1.getInstalledWallets)();
64
+ this.wallet = providers.find((provider) => provider.name === this.name);
65
+ }
66
+ return this.wallet;
45
67
  });
46
68
  }
47
69
  getWeb3Provider() {
48
- return;
70
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
71
+ const wallet = yield this.getWallet();
72
+ return wallet === null || wallet === void 0 ? void 0 : wallet.provider;
73
+ });
49
74
  }
50
75
  getRpcProvider() {
51
76
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
@@ -54,7 +79,16 @@ class StarknetProvider extends starknetProviderHelper_1.StarknetProviderHelper {
54
79
  }
55
80
  signMessage(messageToSign) {
56
81
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
57
- const signature = yield this.starknetProviderHelper._signMessage(this.name, messageToSign);
82
+ const wallet = yield this.getWallet();
83
+ const walletAddress = yield this.fetchPublicAddress();
84
+ if (!walletAddress || !wallet) {
85
+ logger_1.logger.error('Could not fetch wallet address for signing message');
86
+ return undefined;
87
+ }
88
+ const { account } = wallet;
89
+ const chainId = account.chainId === constants_1.StarknetChainId.TESTNET ? 'SN_GOERLI' : 'SN_MAIN';
90
+ const encodedMessage = (0, convertors_1.formatTypedDataMessage)(messageToSign, chainId);
91
+ const signature = yield (account === null || account === void 0 ? void 0 : account.signMessage(encodedMessage));
58
92
  return signature === null || signature === void 0 ? void 0 : signature.join(',');
59
93
  });
60
94
  }
@@ -65,7 +99,25 @@ class StarknetProvider extends starknetProviderHelper_1.StarknetProviderHelper {
65
99
  }
66
100
  getBalance() {
67
101
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
68
- return this.starknetProviderHelper._getBalance(this.name);
102
+ const walletAddress = yield this.fetchPublicAddress();
103
+ const provider = yield this.getWeb3Provider();
104
+ if (!walletAddress || !provider) {
105
+ logger_1.logger.error('Could not fetch wallet address for getting balance');
106
+ return undefined;
107
+ }
108
+ const contract = new starknet_1.Contract(ethereumContractAbi_json_1.default, constants_2.ETH_STARKNET_ADDRESS, provider);
109
+ try {
110
+ const { balance } = yield contract.balanceOf(walletAddress);
111
+ const gweiBalance = parseInt((0, uint256_1.uint256ToBN)(balance).toString(10));
112
+ /**
113
+ * Dividing by 1e18 as the returned balance is a Gwei number.
114
+ * Read more here: https://www.investopedia.com/terms/g/gwei-ethereum.asp#toc-what-is-gwei
115
+ */
116
+ return (gweiBalance / 1e18).toFixed(6);
117
+ }
118
+ catch (error) {
119
+ throw new errors_1.DynamicError('Something went wrong');
120
+ }
69
121
  });
70
122
  }
71
123
  endSession() {
@@ -75,8 +127,19 @@ class StarknetProvider extends starknetProviderHelper_1.StarknetProviderHelper {
75
127
  });
76
128
  });
77
129
  }
130
+ getStarknetWindowObject() {
131
+ const starknetWindowInstance = window[`starknet_${this.windowKey}`] || window['starknet'];
132
+ if ((starknetWindowInstance === null || starknetWindowInstance === void 0 ? void 0 : starknetWindowInstance.name) === this.name) {
133
+ return starknetWindowInstance;
134
+ }
135
+ else {
136
+ return undefined;
137
+ }
138
+ }
78
139
  isInstalledOnBrowser() {
79
- return this.starknetProviderHelper.isInstalledHelper(this.name);
140
+ var _a;
141
+ const starknetWindowInstance = (_a = window[`starknet_${this.windowKey}`]) !== null && _a !== void 0 ? _a : window['starknet'];
142
+ return (starknetWindowInstance === null || starknetWindowInstance === void 0 ? void 0 : starknetWindowInstance.name) === this.name;
80
143
  }
81
144
  supportsNetworkSwitching() {
82
145
  return false;
@@ -84,18 +147,53 @@ class StarknetProvider extends starknetProviderHelper_1.StarknetProviderHelper {
84
147
  switchNetwork() {
85
148
  throw new errors_1.DynamicError('switchNetwork - Not supported');
86
149
  }
150
+ getConnectedAccounts() {
151
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
152
+ const wallet = yield this.getWallet();
153
+ return wallet ? [wallet.account.address] : [];
154
+ });
155
+ }
87
156
  setupEventListeners(listeners) {
88
- this.starknetProviderHelper._setupEventListeners(listeners, this.name);
157
+ const wallet = this.getStarknetWindowObject();
158
+ this.handleAccountChange = (address) => tslib_1.__awaiter(this, void 0, void 0, function* () {
159
+ var _a, _b;
160
+ if (!address) {
161
+ yield ((_a = listeners.onDisconnect) === null || _a === void 0 ? void 0 : _a.call(listeners));
162
+ return;
163
+ }
164
+ if (address.toString()) {
165
+ yield ((_b = listeners.onAccountChange) === null || _b === void 0 ? void 0 : _b.call(listeners, [address.toString()]));
166
+ }
167
+ });
168
+ this.handleNetworkChange = (network) => tslib_1.__awaiter(this, void 0, void 0, function* () {
169
+ var _c, _d;
170
+ if (!network) {
171
+ yield ((_c = listeners.onDisconnect) === null || _c === void 0 ? void 0 : _c.call(listeners));
172
+ return;
173
+ }
174
+ if (network.toString()) {
175
+ yield ((_d = listeners.onChainChange) === null || _d === void 0 ? void 0 : _d.call(listeners, network.toString()));
176
+ }
177
+ });
178
+ wallet === null || wallet === void 0 ? void 0 : wallet.on(ACCOUNT_CHANGED_EVENT_LISTENER, this.handleAccountChange);
179
+ wallet === null || wallet === void 0 ? void 0 : wallet.on(NETWORK_CHANGED_EVENT_LISTENER, this.handleNetworkChange);
89
180
  }
90
181
  teardownEventListeners() {
91
- this.starknetProviderHelper._teardownEventListeners(this.name);
92
- }
93
- getConnectedAccounts() {
94
182
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
95
- const account = yield this.starknetProviderHelper.getConnectedAccountWithName(this.name);
96
- return (account === null || account === void 0 ? void 0 : account.address) ? [account === null || account === void 0 ? void 0 : account.address] : [];
183
+ const wallet = yield this.getWallet();
184
+ if (this.handleAccountChange) {
185
+ wallet === null || wallet === void 0 ? void 0 : wallet.off(ACCOUNT_CHANGED_EVENT_LISTENER, this.handleAccountChange);
186
+ this.handleAccountChange = undefined;
187
+ }
188
+ if (this.handleNetworkChange) {
189
+ wallet === null || wallet === void 0 ? void 0 : wallet.off(NETWORK_CHANGED_EVENT_LISTENER, this.handleNetworkChange);
190
+ this.handleNetworkChange = undefined;
191
+ }
97
192
  });
98
193
  }
194
+ getDeepLink() {
195
+ return undefined;
196
+ }
99
197
  }
100
198
  exports.default = StarknetProvider;
101
199
  //# sourceMappingURL=starknetProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"starknetProvider.js","sourceRoot":"","sources":["../../../../../../packages/multi-wallet/src/wallets/starknet/starknetProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"starknetProvider.js","sourceRoot":"","sources":["../../../../../../packages/multi-wallet/src/wallets/starknet/starknetProvider.ts"],"names":[],"mappings":"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"}
@@ -42,6 +42,7 @@ export interface IWindow {
42
42
  solana: ISolana;
43
43
  solflare: ISolana;
44
44
  starknet: IStarknetWindowObject;
45
+ starknet_argentX: IStarknetWindowObject;
45
46
  starknet_braavos: IStarknetWindowObject;
46
47
  }
47
48
  export interface IEthereum {
@@ -1,17 +0,0 @@
1
- import { IStarknetWindowObject } from 'get-starknet';
2
- import { AccountInterface } from 'starknet';
3
- import { WalletEventListeners } from '@dynamic-labs/wallet-connector-core';
4
- export declare class StarknetProviderHelper {
5
- private _client?;
6
- _getConnectedChainType(): 'SN_GOERLI' | 'SN_MAIN' | undefined;
7
- _getProviderFromWallet(walletName: string): Promise<IStarknetWindowObject | undefined>;
8
- getInstance(walletName: string): Promise<IStarknetWindowObject | undefined>;
9
- isInstalledHelper(walletName: string): boolean;
10
- getPublicAddressWithName(walletName: string): Promise<string | undefined>;
11
- connectWithName(walletName: string): Promise<IStarknetWindowObject | undefined>;
12
- _signMessage(walletName: string, messageToSign: string): Promise<string[] | undefined>;
13
- _getBalance(walletName: string): Promise<string | undefined>;
14
- _setupEventListeners(listeners: WalletEventListeners, walletName: string): Promise<() => void>;
15
- _teardownEventListeners(walletName: string): Promise<void>;
16
- getConnectedAccountWithName(walletName: string): Promise<AccountInterface | undefined>;
17
- }
@@ -1,159 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.StarknetProviderHelper = void 0;
4
- const tslib_1 = require("tslib");
5
- const get_starknet_1 = require("get-starknet");
6
- const starknet_1 = require("starknet");
7
- const uint256_1 = require("starknet/dist/utils/uint256");
8
- const constants_1 = require("starknet/constants");
9
- const convertors_1 = require("../../utils/convertors");
10
- const constants_2 = require("../constants");
11
- const errors_1 = require("../../errors");
12
- const ethereumContractAbi_json_1 = tslib_1.__importDefault(require("./ethereumContractAbi.json"));
13
- const ACCOUNT_CHANGED_EVENT_LISTENER = 'accountsChanged';
14
- const NETWORK_CHANGED_EVENT_LISTENER = 'networkChanged';
15
- class StarknetProviderHelper {
16
- _getConnectedChainType() {
17
- var _a;
18
- const chainId = (_a = this._client) === null || _a === void 0 ? void 0 : _a.account.chainId;
19
- if (!chainId) {
20
- return undefined;
21
- }
22
- return chainId === constants_1.StarknetChainId.TESTNET ? 'SN_GOERLI' : 'SN_MAIN';
23
- }
24
- _getProviderFromWallet(walletName) {
25
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
26
- const providers = yield (0, get_starknet_1.getInstalledWallets)();
27
- return providers.find((provider) => provider.name === walletName);
28
- });
29
- }
30
- getInstance(walletName) {
31
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
32
- if (!this._client) {
33
- this._client = yield this.connectWithName(walletName);
34
- }
35
- return this._client;
36
- });
37
- }
38
- isInstalledHelper(walletName) {
39
- let starknetWindowInstance;
40
- if (walletName === 'Braavos') {
41
- starknetWindowInstance = window.starknet_braavos;
42
- }
43
- else {
44
- starknetWindowInstance = window.starknet;
45
- }
46
- return (starknetWindowInstance === null || starknetWindowInstance === void 0 ? void 0 : starknetWindowInstance.name) === walletName;
47
- }
48
- getPublicAddressWithName(walletName) {
49
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
50
- const instance = yield this.getInstance(walletName);
51
- if (!(instance === null || instance === void 0 ? void 0 : instance.isConnected)) {
52
- return undefined;
53
- }
54
- const { selectedAddress } = instance;
55
- return selectedAddress || Promise.resolve(undefined);
56
- });
57
- }
58
- connectWithName(walletName) {
59
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
60
- const provider = yield this._getProviderFromWallet(walletName);
61
- if (!provider) {
62
- return undefined;
63
- }
64
- try {
65
- if (!provider.isConnected) {
66
- yield provider.enable({ showModal: false });
67
- }
68
- return provider;
69
- }
70
- catch (err) {
71
- return undefined;
72
- }
73
- });
74
- }
75
- _signMessage(walletName, messageToSign) {
76
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
77
- const walletAddress = yield this.getPublicAddressWithName(walletName);
78
- if (!walletAddress) {
79
- return undefined;
80
- }
81
- const account = yield this.getConnectedAccountWithName(walletName);
82
- const encodedMessage = (0, convertors_1.formatTypedDataMessage)(messageToSign, this._getConnectedChainType());
83
- const signature = yield (account === null || account === void 0 ? void 0 : account.signMessage(encodedMessage));
84
- return signature;
85
- });
86
- }
87
- _getBalance(walletName) {
88
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
89
- const walletAddress = yield this.getPublicAddressWithName(walletName);
90
- if (!walletAddress) {
91
- return undefined;
92
- }
93
- const instance = yield this._getProviderFromWallet(walletName);
94
- if (!instance) {
95
- return undefined;
96
- }
97
- const { provider } = instance;
98
- const contract = new starknet_1.Contract(ethereumContractAbi_json_1.default, constants_2.ethStarknetAddress, provider);
99
- try {
100
- const { balance } = yield contract.functions['balanceOf'](walletAddress);
101
- const gweiBalance = parseInt((0, uint256_1.uint256ToBN)(balance).toString(10));
102
- /**
103
- * I'm dividing per 1e18 the returned balance as Starknet returns a Gwei number.
104
- * Read more here: https://www.investopedia.com/terms/g/gwei-ethereum.asp#toc-what-is-gwei
105
- */
106
- return (gweiBalance / 1e18).toFixed(6);
107
- }
108
- catch (error) {
109
- throw new errors_1.DynamicError('Something went wrong');
110
- }
111
- });
112
- }
113
- _setupEventListeners(listeners, walletName) {
114
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
115
- const instance = yield this._getProviderFromWallet(walletName);
116
- const handleAccountChange = (address) => tslib_1.__awaiter(this, void 0, void 0, function* () {
117
- var _a, _b;
118
- if (!address) {
119
- yield ((_a = listeners.onDisconnect) === null || _a === void 0 ? void 0 : _a.call(listeners));
120
- return;
121
- }
122
- if (address.toString()) {
123
- yield ((_b = listeners.onAccountChange) === null || _b === void 0 ? void 0 : _b.call(listeners, [address.toString()]));
124
- }
125
- });
126
- const handleNetworkChange = (network) => tslib_1.__awaiter(this, void 0, void 0, function* () {
127
- var _c, _d;
128
- if (!network) {
129
- yield ((_c = listeners.onDisconnect) === null || _c === void 0 ? void 0 : _c.call(listeners));
130
- return;
131
- }
132
- if (network.toString()) {
133
- yield ((_d = listeners.onChainChange) === null || _d === void 0 ? void 0 : _d.call(listeners, network.toString()));
134
- }
135
- });
136
- instance === null || instance === void 0 ? void 0 : instance.on(ACCOUNT_CHANGED_EVENT_LISTENER, handleAccountChange);
137
- instance === null || instance === void 0 ? void 0 : instance.on(NETWORK_CHANGED_EVENT_LISTENER, handleNetworkChange);
138
- return () => { };
139
- });
140
- }
141
- _teardownEventListeners(walletName) {
142
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
143
- const instance = yield this._getProviderFromWallet(walletName);
144
- instance === null || instance === void 0 ? void 0 : instance.off(ACCOUNT_CHANGED_EVENT_LISTENER, () => { });
145
- instance === null || instance === void 0 ? void 0 : instance.off(NETWORK_CHANGED_EVENT_LISTENER, () => { });
146
- });
147
- }
148
- getConnectedAccountWithName(walletName) {
149
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
150
- const instance = yield this._getProviderFromWallet(walletName);
151
- if (!(instance === null || instance === void 0 ? void 0 : instance.isConnected)) {
152
- return undefined;
153
- }
154
- return instance === null || instance === void 0 ? void 0 : instance.account;
155
- });
156
- }
157
- }
158
- exports.StarknetProviderHelper = StarknetProviderHelper;
159
- //# sourceMappingURL=starknetProviderHelper.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"starknetProviderHelper.js","sourceRoot":"","sources":["../../../../../../packages/multi-wallet/src/wallets/starknet/starknetProviderHelper.ts"],"names":[],"mappings":"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"}