@dynamic-labs/multi-wallet 0.13.6 → 0.13.8
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/package.json +1 -1
- package/src/index.d.ts +1 -0
- package/src/index.js +3 -1
- package/src/index.js.map +1 -1
- package/src/utils/convertors.d.ts +1 -3
- package/src/utils/convertors.js +3 -10
- package/src/utils/convertors.js.map +1 -1
- package/src/wallets/constants.d.ts +2 -0
- package/src/wallets/constants.js +7 -1
- package/src/wallets/constants.js.map +1 -1
- package/src/wallets/starknet/starknetProviderHelper.d.ts +1 -0
- package/src/wallets/starknet/starknetProviderHelper.js +12 -3
- package/src/wallets/starknet/starknetProviderHelper.js.map +1 -1
package/package.json
CHANGED
package/src/index.d.ts
CHANGED
|
@@ -15,3 +15,4 @@ export * from './wallets/clients/walletConnect';
|
|
|
15
15
|
export * from './wallets/clients/coinbase';
|
|
16
16
|
export type { EvmNetwork } from './wallets/ethereum/evm-network';
|
|
17
17
|
export * from './utils/isSameAddress';
|
|
18
|
+
export { defaultStarknetTypedDataDomain } from './wallets/constants';
|
package/src/index.js
CHANGED
|
@@ -17,7 +17,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
17
17
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
18
18
|
};
|
|
19
19
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
-
exports.getWalletLinks = exports.getWalletConnectMetadata = exports.walletMetadata = exports.normalizeWalletName = exports.isMobile = exports.isIPhone = exports.isIPad = exports.generateMessageToSign = exports.Console = void 0;
|
|
20
|
+
exports.defaultStarknetTypedDataDomain = exports.getWalletLinks = exports.getWalletConnectMetadata = exports.walletMetadata = exports.normalizeWalletName = exports.isMobile = exports.isIPhone = exports.isIPad = exports.generateMessageToSign = exports.Console = void 0;
|
|
21
21
|
const console_1 = __importDefault(require("./utils/console"));
|
|
22
22
|
exports.Console = console_1.default;
|
|
23
23
|
require("./polyfills");
|
|
@@ -40,4 +40,6 @@ Object.defineProperty(exports, "getWalletLinks", { enumerable: true, get: functi
|
|
|
40
40
|
__exportStar(require("./wallets/clients/walletConnect"), exports);
|
|
41
41
|
__exportStar(require("./wallets/clients/coinbase"), exports);
|
|
42
42
|
__exportStar(require("./utils/isSameAddress"), exports);
|
|
43
|
+
var constants_1 = require("./wallets/constants");
|
|
44
|
+
Object.defineProperty(exports, "defaultStarknetTypedDataDomain", { enumerable: true, get: function () { return constants_1.defaultStarknetTypedDataDomain; } });
|
|
43
45
|
//# 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,8DAAsC;AAO7B,kBAPF,iBAAO,CAOE;AALhB,uBAAqB;AAErB,iDAA+B;AAC/B,0CAAwB;AACxB,2CAAyB;AAQzB,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,uDAG+B;AAF7B,+GAAA,cAAc,OAAA;AACd,yHAAA,wBAAwB,OAAA;AAE1B,mDAAqD;AAA5C,6GAAA,cAAc,OAAA;AAGvB,kEAAgD;AAChD,6DAA2C;AAI3C,wDAAsC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/multi-wallet/src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,8DAAsC;AAO7B,kBAPF,iBAAO,CAOE;AALhB,uBAAqB;AAErB,iDAA+B;AAC/B,0CAAwB;AACxB,2CAAyB;AAQzB,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,uDAG+B;AAF7B,+GAAA,cAAc,OAAA;AACd,yHAAA,wBAAwB,OAAA;AAE1B,mDAAqD;AAA5C,6GAAA,cAAc,OAAA;AAGvB,kEAAgD;AAChD,6DAA2C;AAI3C,wDAAsC;AAEtC,iDAAqE;AAA5D,2HAAA,8BAA8B,OAAA"}
|
|
@@ -1,5 +1,3 @@
|
|
|
1
1
|
import { TypedData } from 'starknet/dist/utils/typedData';
|
|
2
2
|
export declare const bufferToBase64: (buf: Uint8Array) => string;
|
|
3
|
-
declare
|
|
4
|
-
export declare const formatTypedDataMessage: (inputMessage: string, chainId?: StarknetChainId) => TypedData;
|
|
5
|
-
export {};
|
|
3
|
+
export declare const formatTypedDataMessage: (inputMessage: string, chainId?: 'SN_MAIN' | 'SN_GOERLI') => TypedData;
|
package/src/utils/convertors.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.formatTypedDataMessage = exports.bufferToBase64 = void 0;
|
|
4
|
-
const
|
|
4
|
+
const constants_1 = require("../wallets/constants");
|
|
5
5
|
const bufferToBase64 = (buf) => {
|
|
6
6
|
const binstr = Array.prototype.map
|
|
7
7
|
.call(buf, (ch) => String.fromCharCode(ch))
|
|
@@ -9,13 +9,7 @@ const bufferToBase64 = (buf) => {
|
|
|
9
9
|
return btoa(binstr);
|
|
10
10
|
};
|
|
11
11
|
exports.bufferToBase64 = bufferToBase64;
|
|
12
|
-
const defaultTypedData = {
|
|
13
|
-
domain: {
|
|
14
|
-
name: 'Dynamic Sample DApp',
|
|
15
|
-
version: package_json_1.version,
|
|
16
|
-
},
|
|
17
|
-
primaryType: 'Message',
|
|
18
|
-
types: {
|
|
12
|
+
const defaultTypedData = Object.assign(Object.assign({}, constants_1.defaultStarknetTypedDataDomain), { primaryType: 'Message', types: {
|
|
19
13
|
Message: [
|
|
20
14
|
{
|
|
21
15
|
name: 'message',
|
|
@@ -36,8 +30,7 @@ const defaultTypedData = {
|
|
|
36
30
|
type: 'felt',
|
|
37
31
|
},
|
|
38
32
|
],
|
|
39
|
-
}
|
|
40
|
-
};
|
|
33
|
+
} });
|
|
41
34
|
const formatTypedDataMessage = (inputMessage, chainId = 'SN_MAIN') => {
|
|
42
35
|
const message = {
|
|
43
36
|
message: inputMessage.substring(0, 31),
|
|
@@ -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,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,2 +1,4 @@
|
|
|
1
|
+
import { TypedData } from 'starknet/dist/utils/typedData';
|
|
1
2
|
export declare const infuraId = "87939db78f824920ada5c872db3e56b8";
|
|
2
3
|
export declare const ethStarknetAddress = "0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7";
|
|
4
|
+
export declare const defaultStarknetTypedDataDomain: Partial<TypedData>;
|
package/src/wallets/constants.js
CHANGED
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ethStarknetAddress = exports.infuraId = void 0;
|
|
3
|
+
exports.defaultStarknetTypedDataDomain = exports.ethStarknetAddress = exports.infuraId = void 0;
|
|
4
4
|
exports.infuraId = '87939db78f824920ada5c872db3e56b8';
|
|
5
5
|
exports.ethStarknetAddress = '0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7';
|
|
6
|
+
exports.defaultStarknetTypedDataDomain = {
|
|
7
|
+
domain: {
|
|
8
|
+
name: 'Dynamic Sample dApp',
|
|
9
|
+
version: '0.0.1',
|
|
10
|
+
},
|
|
11
|
+
};
|
|
6
12
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../packages/multi-wallet/src/wallets/constants.ts"],"names":[],"mappings":";;;
|
|
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"}
|
|
@@ -3,6 +3,7 @@ import { AccountInterface } from 'starknet';
|
|
|
3
3
|
import { WalletEventListeners } from '../wallet-connector';
|
|
4
4
|
export declare class StarknetProviderHelper {
|
|
5
5
|
private _client?;
|
|
6
|
+
_getConnectedChainType(): 'SN_GOERLI' | 'SN_MAIN' | undefined;
|
|
6
7
|
_findProviderWithName(walletName: string): Promise<IStarknetWindowObject | undefined>;
|
|
7
8
|
getInstance(walletName: string): Promise<IStarknetWindowObject | undefined>;
|
|
8
9
|
isInstalledHelper(walletName: string): boolean;
|
|
@@ -17,12 +17,21 @@ const get_starknet_1 = require("get-starknet");
|
|
|
17
17
|
const starknet_1 = require("starknet");
|
|
18
18
|
const ethers_1 = require("ethers");
|
|
19
19
|
const uint256_1 = require("starknet/dist/utils/uint256");
|
|
20
|
+
const constants_1 = require("starknet/constants");
|
|
20
21
|
const convertors_1 = require("../../utils/convertors");
|
|
21
|
-
const
|
|
22
|
+
const constants_2 = require("../constants");
|
|
22
23
|
const ethereumContractAbi_json_1 = __importDefault(require("./ethereumContractAbi.json"));
|
|
23
24
|
const ACCOUNT_CHANGED_EVENT_LISTENER = 'accountsChanged';
|
|
24
25
|
const NETWORK_CHANGED_EVENT_LISTENER = 'networkChanged';
|
|
25
26
|
class StarknetProviderHelper {
|
|
27
|
+
_getConnectedChainType() {
|
|
28
|
+
var _a;
|
|
29
|
+
const chainId = (_a = this._client) === null || _a === void 0 ? void 0 : _a.account.chainId;
|
|
30
|
+
if (!chainId) {
|
|
31
|
+
return undefined;
|
|
32
|
+
}
|
|
33
|
+
return chainId === constants_1.StarknetChainId.TESTNET ? 'SN_GOERLI' : 'SN_MAIN';
|
|
34
|
+
}
|
|
26
35
|
_findProviderWithName(walletName) {
|
|
27
36
|
return __awaiter(this, void 0, void 0, function* () {
|
|
28
37
|
const providers = yield (0, get_starknet_1.getInstalledWallets)();
|
|
@@ -81,7 +90,7 @@ class StarknetProviderHelper {
|
|
|
81
90
|
return undefined;
|
|
82
91
|
}
|
|
83
92
|
const account = yield this.getConnectedAccountWithName(walletName);
|
|
84
|
-
const encodedMessage = (0, convertors_1.formatTypedDataMessage)(messageToSign);
|
|
93
|
+
const encodedMessage = (0, convertors_1.formatTypedDataMessage)(messageToSign, this._getConnectedChainType());
|
|
85
94
|
const signature = yield (account === null || account === void 0 ? void 0 : account.signMessage(encodedMessage));
|
|
86
95
|
return signature;
|
|
87
96
|
});
|
|
@@ -92,7 +101,7 @@ class StarknetProviderHelper {
|
|
|
92
101
|
if (!walletAddress) {
|
|
93
102
|
return undefined;
|
|
94
103
|
}
|
|
95
|
-
const contract = new starknet_1.Contract(ethereumContractAbi_json_1.default,
|
|
104
|
+
const contract = new starknet_1.Contract(ethereumContractAbi_json_1.default, constants_2.ethStarknetAddress);
|
|
96
105
|
try {
|
|
97
106
|
const { balance } = yield contract.balanceOf(walletAddress);
|
|
98
107
|
const formattedBalance = ethers_1.utils.formatUnits((0, uint256_1.uint256ToBN)(balance).toNumber(), 18);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"starknetProviderHelper.js","sourceRoot":"","sources":["../../../../../../packages/multi-wallet/src/wallets/starknet/starknetProviderHelper.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,+CAA0E;AAC1E,uCAA2D;AAC3D,mCAA+B;AAC/B,yDAA0D;
|
|
1
|
+
{"version":3,"file":"starknetProviderHelper.js","sourceRoot":"","sources":["../../../../../../packages/multi-wallet/src/wallets/starknet/starknetProviderHelper.ts"],"names":[],"mappings":"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"}
|