@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 +17 -0
- package/package.json +4 -5
- package/src/index.d.ts +1 -1
- package/src/index.js +1 -1
- package/src/index.js.map +1 -1
- package/src/utils/convertors.js +1 -1
- package/src/utils/convertors.js.map +1 -1
- package/src/wallets/constants.d.ts +2 -2
- package/src/wallets/constants.js +3 -3
- package/src/wallets/constants.js.map +1 -1
- package/src/wallets/starknet/argentx.js +1 -1
- package/src/wallets/starknet/argentx.js.map +1 -1
- package/src/wallets/starknet/braavos.js +1 -1
- package/src/wallets/starknet/braavos.js.map +1 -1
- package/src/wallets/starknet/starknetProvider.d.ts +22 -10
- package/src/wallets/starknet/starknetProvider.js +121 -23
- package/src/wallets/starknet/starknetProvider.js.map +1 -1
- package/src/wallets/window.d.ts +1 -0
- package/src/wallets/starknet/starknetProviderHelper.d.ts +0 -17
- package/src/wallets/starknet/starknetProviderHelper.js +0 -159
- package/src/wallets/starknet/starknetProviderHelper.js.map +0 -1
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.
|
|
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.
|
|
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.
|
|
32
|
-
"@dynamic-labs/wallet-connector-core": "0.16.0-RC.
|
|
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.
|
|
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,
|
|
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"}
|
package/src/utils/convertors.js
CHANGED
|
@@ -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.
|
|
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,
|
|
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
|
|
4
|
-
export declare const
|
|
3
|
+
export declare const ETH_STARKNET_ADDRESS = "0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7";
|
|
4
|
+
export declare const DEFAULT_STARKNET_TYPED_DATA_DOMAIN: Partial<TypedData>;
|
package/src/wallets/constants.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.DEFAULT_STARKNET_TYPED_DATA_DOMAIN = exports.ETH_STARKNET_ADDRESS = exports.infuraId = void 0;
|
|
4
4
|
exports.infuraId = '87939db78f824920ada5c872db3e56b8';
|
|
5
|
-
exports.
|
|
6
|
-
exports.
|
|
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,
|
|
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;
|
|
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;
|
|
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 {
|
|
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
|
-
|
|
4
|
-
|
|
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
|
-
|
|
12
|
-
|
|
13
|
-
|
|
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<
|
|
19
|
-
|
|
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
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
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.
|
|
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
|
|
33
|
-
|
|
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
|
|
44
|
-
return
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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.
|
|
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
|
|
96
|
-
|
|
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":";;;AAAA,+
|
|
1
|
+
{"version":3,"file":"starknetProvider.js","sourceRoot":"","sources":["../../../../../../packages/multi-wallet/src/wallets/starknet/starknetProvider.ts"],"names":[],"mappings":"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"}
|
package/src/wallets/window.d.ts
CHANGED
|
@@ -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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"}
|