@injectivelabs/wallet-wallet-connect 0.0.2

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/README.md ADDED
@@ -0,0 +1,113 @@
1
+ # 🌟 Injective Protocol - Wallet connect Wallet Strategy
2
+
3
+ <!-- TODO -->
4
+
5
+ [![downloads](https://img.shields.io/npm/dm/@injectivelabs/wallet-ts.svg)](https://www.npmjs.com/package/@injectivelabs/wallet-ts)
6
+ [![npm-version](https://img.shields.io/npm/v/@injectivelabs/wallet-ts.svg)](https://www.npmjs.com/package/@injectivelabs/wallet-ts)
7
+ [![license](https://img.shields.io/npm/l/express.svg)]()
8
+
9
+ _Package to use Wallet Connect Wallets on Injective via the wallet strategy._
10
+
11
+ ---
12
+
13
+ ## 📚 Installation
14
+
15
+ ```bash
16
+ yarn add @injectivelabs/wallet-wallet-connect
17
+ ```
18
+
19
+ ---
20
+
21
+ ## 📖 Documentation
22
+
23
+ Injective's wallet packages are intended to make it easy for developers to choose exactly what wallets - and subsequent dependencies - they
24
+ want to include in their projects.
25
+
26
+ Regardless of which wallet package(s) you choose to use you must also have `@injectivelabs/wallet-core` and `@injectivelabs/wallet-base`
27
+ installed. These contain all of the types and core wallet functionality, with the separate wallet packages only providing the necessary
28
+ dependencies and implementations for their specific wallets.
29
+
30
+ Here's a brief example of how to use this package to send 1 INJ.:
31
+
32
+ ```typescript
33
+ import { Wallet } from '@injectivelabs/wallet-base';
34
+ import { BaseWalletStrategy, MsgBroadcaster } from '@injectivelabs/wallet-core';
35
+ import { WalletConnectStrategy } from '@injectivelabs/wallet-wallet-connect';
36
+
37
+ const strategyArgs: WalletStrategyArguments = {
38
+ chainId: ChainId.Mainnet,
39
+ wallet: Wallet.WalletConnect,
40
+ strategies: {
41
+ [Wallet.WalletConnect]: new WalletConnectStrategy({
42
+ chainId: ChainId.Mainnet,
43
+ metadata: {
44
+ projectId: 'YOUR_PROJECT_ID',
45
+ },
46
+ ethereumOptions: {
47
+ ethereumChainId: EthereumChainId.Mainnet,
48
+ },
49
+ }),
50
+ },
51
+ }
52
+ const walletStrategy = new BaseWalletStrategy(strategyArgs)
53
+
54
+ const msgBroadcaster = new MsgBroadcaster({
55
+ walletStrategy,
56
+ simulateTx: true,
57
+ network: Network.Mainnet,
58
+ })
59
+
60
+ const sendTX = async () => {
61
+ const injectiveAddress = 'someInjectiveAddress'
62
+
63
+ const message = MsgSend.fromJSON({
64
+ srcInjectiveAddress: injectiveAddress,
65
+ dstInjectiveAddress: injectiveAddress,
66
+ amount: {
67
+ amount: '1',
68
+ denom: 'inj',
69
+ },
70
+ })
71
+
72
+ return await msgBroadcaster.broadcast({ msgs: message })
73
+ }
74
+
75
+ const result = await sendTX()
76
+ ```
77
+
78
+ Read more and find example usages on our [WalletStrategy Docs](https://docs.ts.injective.network/wallet/wallet-wallet-strategy)
79
+
80
+ ---
81
+
82
+ ## 📜 Contribution
83
+
84
+ **Contribution guides and practices will be available once there is a stable foundation of the whole package set within the `injective-ts` repo.**
85
+
86
+ ---
87
+
88
+ ## ⛑ Support
89
+
90
+ Reach out to us at one of the following places!
91
+
92
+ - Website at <a href="https://injective.com" target="_blank">`injective.com`</a>
93
+ - Twitter at <a href="https://twitter.com/Injective_" target="_blank">`@Injective`</a>
94
+ - Discord at <a href="https://discord.com/invite/NK4qdbv" target="_blank">`Discord`</a>
95
+ - Telegram at <a href="https://t.me/joininjective" target="_blank">`Telegram`</a>
96
+
97
+ ---
98
+
99
+ ## 🔓 License
100
+
101
+ Copyright © 2021 - 2022 Injective Labs Inc. (https://injectivelabs.org/)
102
+
103
+ <a href="https://iili.io/mNneZN.md.png"><img src="https://iili.io/mNneZN.md.png" style="width: 300px; max-width: 100%; height: auto" />
104
+
105
+ Originally released by Injective Labs Inc. under: <br />
106
+ Apache License <br />
107
+ Version 2.0, January 2004 <br />
108
+ http://www.apache.org/licenses/
109
+
110
+ <p>&nbsp;</p>
111
+ <div align="center">
112
+ <sub><em>Powering the future of decentralized finance.</em></sub>
113
+ </div>
@@ -0,0 +1,2 @@
1
+ export { WalletConnect as WalletConnectStrategy } from './strategy/strategy';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,IAAI,qBAAqB,EAAE,MAAM,qBAAqB,CAAA"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WalletConnectStrategy = void 0;
4
+ var strategy_1 = require("./strategy/strategy");
5
+ Object.defineProperty(exports, "WalletConnectStrategy", { enumerable: true, get: function () { return strategy_1.WalletConnect; } });
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,gDAA4E;AAAnE,iHAAA,aAAa,OAAyB"}
@@ -0,0 +1,3 @@
1
+ {
2
+ "type": "commonjs"
3
+ }
@@ -0,0 +1,46 @@
1
+ import { StdSignDoc, WalletDeviceType, BaseConcreteStrategy, WalletConnectMetadata, ConcreteWalletStrategy, SendTransactionOptions, ConcreteEthereumWalletStrategyArgs } from '@injectivelabs/wallet-base';
2
+ import Provider from '@walletconnect/ethereum-provider';
3
+ import { AccountAddress, EthereumChainId } from '@injectivelabs/ts-types';
4
+ import { TxRaw, TxResponse, DirectSignResponse, AminoSignResponse } from '@injectivelabs/sdk-ts';
5
+ interface WalletConnectArgs extends ConcreteEthereumWalletStrategyArgs {
6
+ metadata?: WalletConnectMetadata;
7
+ }
8
+ export declare class WalletConnect extends BaseConcreteStrategy implements ConcreteWalletStrategy {
9
+ provider: Provider | undefined;
10
+ metadata?: WalletConnectMetadata;
11
+ constructor(args: WalletConnectArgs);
12
+ getWalletDeviceType(): Promise<WalletDeviceType>;
13
+ enable(args?: {
14
+ topic: string;
15
+ }): Promise<boolean>;
16
+ disconnect(): Promise<void>;
17
+ getAddresses(): Promise<string[]>;
18
+ getSessionOrConfirm(_address: AccountAddress): Promise<string>;
19
+ sendEthereumTransaction(transaction: unknown, _options: {
20
+ address: AccountAddress;
21
+ ethereumChainId: EthereumChainId;
22
+ }): Promise<string>;
23
+ sendTransaction(transaction: TxRaw, options: SendTransactionOptions): Promise<TxResponse>;
24
+ signEip712TypedData(eip712json: string, address: AccountAddress): Promise<string>;
25
+ signAminoCosmosTransaction(_transaction: {
26
+ address: string;
27
+ signDoc: StdSignDoc;
28
+ }): Promise<AminoSignResponse>;
29
+ signCosmosTransaction(_transaction: {
30
+ txRaw: TxRaw;
31
+ accountNumber: number;
32
+ chainId: string;
33
+ address: string;
34
+ }): Promise<DirectSignResponse>;
35
+ signArbitrary(signer: AccountAddress, data: string | Uint8Array): Promise<string>;
36
+ getEthereumChainId(): Promise<string>;
37
+ getEthereumTransactionReceipt(_txHash: string): Promise<string>;
38
+ getPubKey(): Promise<string>;
39
+ onChainIdChanged(callback: (chain: string) => void): Promise<void>;
40
+ onAccountChange(callback: (account: AccountAddress) => void): Promise<void>;
41
+ private getWalletConnect;
42
+ private getConnectedWalletConnect;
43
+ private connectWalletConnect;
44
+ }
45
+ export {};
46
+ //# sourceMappingURL=strategy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strategy.d.ts","sourceRoot":"","sources":["../../../src/strategy/strategy.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,UAAU,EAEV,gBAAgB,EAEhB,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,kCAAkC,EACnC,MAAM,4BAA4B,CAAA;AACnC,OAAO,QAGN,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACzE,OAAO,EACL,KAAK,EAGL,UAAU,EACV,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,uBAAuB,CAAA;AAO9B,UAAU,iBAAkB,SAAQ,kCAAkC;IACpE,QAAQ,CAAC,EAAE,qBAAqB,CAAA;CACjC;AAED,qBAAa,aACX,SAAQ,oBACR,YAAW,sBAAsB;IAE1B,QAAQ,EAAE,QAAQ,GAAG,SAAS,CAAA;IAE9B,QAAQ,CAAC,EAAE,qBAAqB,CAAA;gBAE3B,IAAI,EAAE,iBAAiB;IAM7B,mBAAmB,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAIhD,MAAM,CAAC,IAAI,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAM3C,UAAU;IA2BjB,YAAY,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAgBjC,mBAAmB,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;IAM9D,uBAAuB,CAC3B,WAAW,EAAE,OAAO,EACpB,QAAQ,EAAE;QAAE,OAAO,EAAE,cAAc,CAAC;QAAC,eAAe,EAAE,eAAe,CAAA;KAAE,GACtE,OAAO,CAAC,MAAM,CAAC;IAiBZ,eAAe,CACnB,WAAW,EAAE,KAAK,EAClB,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,UAAU,CAAC;IAyBhB,mBAAmB,CACvB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,MAAM,CAAC;IAiBZ,0BAA0B,CAAC,YAAY,EAAE;QAC7C,OAAO,EAAE,MAAM,CAAA;QACf,OAAO,EAAE,UAAU,CAAA;KACpB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAYxB,qBAAqB,CAAC,YAAY,EAAE;QACxC,KAAK,EAAE,KAAK,CAAA;QACZ,aAAa,EAAE,MAAM,CAAA;QACrB,OAAO,EAAE,MAAM,CAAA;QACf,OAAO,EAAE,MAAM,CAAA;KAChB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAWzB,aAAa,CACjB,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,MAAM,GAAG,UAAU,GACxB,OAAO,CAAC,MAAM,CAAC;IAmBZ,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC;IAcrC,6BAA6B,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAY/D,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC;IAM5B,gBAAgB,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAUlE,eAAe,CACnB,QAAQ,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,IAAI,GAC1C,OAAO,CAAC,IAAI,CAAC;YAUF,gBAAgB;YAuEhB,yBAAyB;YAYzB,oBAAoB;CAWnC"}
@@ -0,0 +1,300 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.WalletConnect = void 0;
13
+ /* eslint-disable class-methods-use-this */
14
+ const exceptions_1 = require("@injectivelabs/exceptions");
15
+ const wallet_base_1 = require("@injectivelabs/wallet-base");
16
+ const ethereum_provider_1 = require("@walletconnect/ethereum-provider");
17
+ const ts_types_1 = require("@injectivelabs/ts-types");
18
+ const sdk_ts_1 = require("@injectivelabs/sdk-ts");
19
+ const WalletConnectIds = {
20
+ FireBlocks: '5864e2ced7c293ed18ac35e0db085c09ed567d67346ccb6f58a0327a75137489',
21
+ };
22
+ class WalletConnect extends wallet_base_1.BaseConcreteStrategy {
23
+ constructor(args) {
24
+ super(args);
25
+ this.metadata = args.metadata;
26
+ }
27
+ getWalletDeviceType() {
28
+ return __awaiter(this, void 0, void 0, function* () {
29
+ return Promise.resolve(wallet_base_1.WalletDeviceType.Browser);
30
+ });
31
+ }
32
+ enable(args) {
33
+ return __awaiter(this, void 0, void 0, function* () {
34
+ yield this.connectWalletConnect(args === null || args === void 0 ? void 0 : args.topic);
35
+ return Promise.resolve(true);
36
+ });
37
+ }
38
+ disconnect() {
39
+ return __awaiter(this, void 0, void 0, function* () {
40
+ if (this.listeners[wallet_base_1.WalletEventListener.AccountChange]) {
41
+ const wc = yield this.getConnectedWalletConnect();
42
+ wc.removeListener('accountsChanged', this.listeners[wallet_base_1.WalletEventListener.AccountChange]);
43
+ }
44
+ if (this.listeners[wallet_base_1.WalletEventListener.ChainIdChange]) {
45
+ const wc = yield this.getConnectedWalletConnect();
46
+ wc.removeListener('chainChanged', this.listeners[wallet_base_1.WalletEventListener.ChainIdChange]);
47
+ }
48
+ this.listeners = {};
49
+ if (this.provider) {
50
+ yield this.provider.disconnect();
51
+ this.provider = undefined;
52
+ }
53
+ });
54
+ }
55
+ getAddresses() {
56
+ return __awaiter(this, void 0, void 0, function* () {
57
+ const wc = yield this.getConnectedWalletConnect();
58
+ try {
59
+ return yield wc.request({
60
+ method: 'eth_requestAccounts',
61
+ });
62
+ }
63
+ catch (e) {
64
+ throw new exceptions_1.MetamaskException(new Error(e.message), {
65
+ code: exceptions_1.UnspecifiedErrorCode,
66
+ type: exceptions_1.ErrorType.WalletError,
67
+ contextModule: wallet_base_1.WalletAction.GetAccounts,
68
+ });
69
+ }
70
+ });
71
+ }
72
+ getSessionOrConfirm(_address) {
73
+ return __awaiter(this, void 0, void 0, function* () {
74
+ var _a;
75
+ const wc = yield this.getConnectedWalletConnect();
76
+ return ((_a = wc.session) === null || _a === void 0 ? void 0 : _a.topic) || '';
77
+ });
78
+ }
79
+ sendEthereumTransaction(transaction, _options) {
80
+ return __awaiter(this, void 0, void 0, function* () {
81
+ const wc = yield this.getConnectedWalletConnect();
82
+ try {
83
+ return yield wc.request({
84
+ method: 'eth_sendTransaction',
85
+ params: [transaction],
86
+ });
87
+ }
88
+ catch (e) {
89
+ throw new exceptions_1.MetamaskException(new Error(e.message), {
90
+ code: exceptions_1.UnspecifiedErrorCode,
91
+ type: exceptions_1.ErrorType.WalletError,
92
+ contextModule: wallet_base_1.WalletAction.SendEthereumTransaction,
93
+ });
94
+ }
95
+ });
96
+ }
97
+ sendTransaction(transaction, options) {
98
+ return __awaiter(this, void 0, void 0, function* () {
99
+ const { endpoints, txTimeout } = options;
100
+ if (!endpoints) {
101
+ throw new exceptions_1.WalletException(new Error('You have to pass endpoints within the options for using Ethereum native wallets'));
102
+ }
103
+ const txApi = new sdk_ts_1.TxGrpcApi(endpoints.grpc);
104
+ const response = yield txApi.broadcast(transaction, { txTimeout });
105
+ if (response.code !== 0) {
106
+ throw new exceptions_1.TransactionException(new Error(response.rawLog), {
107
+ code: exceptions_1.UnspecifiedErrorCode,
108
+ contextCode: response.code,
109
+ contextModule: response.codespace,
110
+ });
111
+ }
112
+ return response;
113
+ });
114
+ }
115
+ signEip712TypedData(eip712json, address) {
116
+ return __awaiter(this, void 0, void 0, function* () {
117
+ const wc = yield this.getConnectedWalletConnect();
118
+ try {
119
+ return yield wc.request({
120
+ method: 'eth_signTypedData_v4',
121
+ params: [address, eip712json],
122
+ });
123
+ }
124
+ catch (e) {
125
+ throw new exceptions_1.MetamaskException(new Error(e.message), {
126
+ code: exceptions_1.UnspecifiedErrorCode,
127
+ type: exceptions_1.ErrorType.WalletError,
128
+ contextModule: wallet_base_1.WalletAction.SignTransaction,
129
+ });
130
+ }
131
+ });
132
+ }
133
+ signAminoCosmosTransaction(_transaction) {
134
+ return __awaiter(this, void 0, void 0, function* () {
135
+ throw new exceptions_1.WalletException(new Error('This wallet does not support signing Cosmos transactions'), {
136
+ code: exceptions_1.UnspecifiedErrorCode,
137
+ type: exceptions_1.ErrorType.WalletError,
138
+ contextModule: wallet_base_1.WalletAction.SignTransaction,
139
+ });
140
+ });
141
+ }
142
+ // eslint-disable-next-line class-methods-use-this
143
+ signCosmosTransaction(_transaction) {
144
+ return __awaiter(this, void 0, void 0, function* () {
145
+ throw new exceptions_1.WalletException(new Error('This wallet does not support signing Cosmos transactions'), {
146
+ code: exceptions_1.UnspecifiedErrorCode,
147
+ type: exceptions_1.ErrorType.WalletError,
148
+ contextModule: wallet_base_1.WalletAction.SignTransaction,
149
+ });
150
+ });
151
+ }
152
+ signArbitrary(signer, data) {
153
+ return __awaiter(this, void 0, void 0, function* () {
154
+ const wc = yield this.getConnectedWalletConnect();
155
+ try {
156
+ const signature = yield wc.request({
157
+ method: 'personal_sign',
158
+ params: [(0, sdk_ts_1.toUtf8)(data), signer],
159
+ });
160
+ return signature;
161
+ }
162
+ catch (e) {
163
+ throw new exceptions_1.MetamaskException(new Error(e.message), {
164
+ code: exceptions_1.UnspecifiedErrorCode,
165
+ type: exceptions_1.ErrorType.WalletError,
166
+ contextModule: wallet_base_1.WalletAction.SignArbitrary,
167
+ });
168
+ }
169
+ });
170
+ }
171
+ getEthereumChainId() {
172
+ return __awaiter(this, void 0, void 0, function* () {
173
+ const wc = yield this.getConnectedWalletConnect();
174
+ try {
175
+ return wc.request({ method: 'eth_chainId' });
176
+ }
177
+ catch (e) {
178
+ throw new exceptions_1.MetamaskException(new Error(e.message), {
179
+ code: exceptions_1.UnspecifiedErrorCode,
180
+ type: exceptions_1.ErrorType.WalletError,
181
+ contextModule: wallet_base_1.WalletAction.GetChainId,
182
+ });
183
+ }
184
+ });
185
+ }
186
+ getEthereumTransactionReceipt(_txHash) {
187
+ return __awaiter(this, void 0, void 0, function* () {
188
+ throw new exceptions_1.WalletException(new Error('This wallet does not support awaiting Ethereum transactions'), {
189
+ code: exceptions_1.UnspecifiedErrorCode,
190
+ type: exceptions_1.ErrorType.WalletError,
191
+ contextModule: wallet_base_1.WalletAction.GetEthereumTransactionReceipt,
192
+ });
193
+ });
194
+ }
195
+ // eslint-disable-next-line class-methods-use-this
196
+ getPubKey() {
197
+ return __awaiter(this, void 0, void 0, function* () {
198
+ throw new exceptions_1.WalletException(new Error('You can only fetch PubKey from Cosmos native wallets'));
199
+ });
200
+ }
201
+ onChainIdChanged(callback) {
202
+ return __awaiter(this, void 0, void 0, function* () {
203
+ const wc = yield this.getConnectedWalletConnect();
204
+ this.listeners = {
205
+ [wallet_base_1.WalletEventListener.ChainIdChange]: callback,
206
+ };
207
+ wc.on('chainChanged', callback);
208
+ });
209
+ }
210
+ onAccountChange(callback) {
211
+ return __awaiter(this, void 0, void 0, function* () {
212
+ const wc = yield this.getConnectedWalletConnect();
213
+ this.listeners = {
214
+ [wallet_base_1.WalletEventListener.AccountChange]: callback,
215
+ };
216
+ wc.on('accountsChanged', (accounts) => callback(accounts[0]));
217
+ });
218
+ }
219
+ getWalletConnect() {
220
+ return __awaiter(this, void 0, void 0, function* () {
221
+ if (this.provider) {
222
+ return this.provider;
223
+ }
224
+ if (!this.metadata) {
225
+ throw new exceptions_1.WalletException(new Error('Please provide metadata for WalletConnect'), {
226
+ code: exceptions_1.UnspecifiedErrorCode,
227
+ type: exceptions_1.ErrorType.WalletError,
228
+ contextModule: wallet_base_1.WalletAction.GetAccounts,
229
+ });
230
+ }
231
+ if (!this.metadata.projectId) {
232
+ throw new exceptions_1.WalletException(new Error('Please provide projectId alongside the metadata for WalletConnect'), {
233
+ code: exceptions_1.UnspecifiedErrorCode,
234
+ type: exceptions_1.ErrorType.WalletError,
235
+ contextModule: wallet_base_1.WalletAction.GetAccounts,
236
+ });
237
+ }
238
+ try {
239
+ this.provider = yield ethereum_provider_1.EthereumProvider.init({
240
+ projectId: this.metadata.projectId,
241
+ metadata: this.metadata
242
+ .metadata,
243
+ showQrModal: true,
244
+ optionalChains: this.ethereumChainId
245
+ ? [this.ethereumChainId]
246
+ : [ts_types_1.EthereumChainId.Mainnet, ts_types_1.EthereumChainId.Sepolia],
247
+ qrModalOptions: {
248
+ explorerRecommendedWalletIds: [WalletConnectIds.FireBlocks],
249
+ explorerExcludedWalletIds: 'ALL',
250
+ mobileWallets: [],
251
+ walletImages: {
252
+ [WalletConnectIds.FireBlocks]: '/wallet-connect/fireblocks.webp',
253
+ },
254
+ desktopWallets: [
255
+ {
256
+ id: WalletConnectIds.FireBlocks,
257
+ name: 'Fireblocks',
258
+ links: {
259
+ native: 'fireblocks-wc://',
260
+ universal: 'https://console.fireblocks.io/v2/',
261
+ },
262
+ },
263
+ ],
264
+ },
265
+ });
266
+ return this.provider;
267
+ }
268
+ catch (e) {
269
+ throw new exceptions_1.WalletException(new Error('WalletConnect not supported for this wallet'), {
270
+ code: exceptions_1.UnspecifiedErrorCode,
271
+ type: exceptions_1.ErrorType.WalletError,
272
+ contextModule: wallet_base_1.WalletAction.GetAccounts,
273
+ });
274
+ }
275
+ });
276
+ }
277
+ getConnectedWalletConnect() {
278
+ return __awaiter(this, void 0, void 0, function* () {
279
+ var _a;
280
+ if (!this.provider) {
281
+ yield this.getWalletConnect();
282
+ }
283
+ if (!((_a = this.provider) === null || _a === void 0 ? void 0 : _a.connected)) {
284
+ yield this.enable();
285
+ }
286
+ return this.provider;
287
+ });
288
+ }
289
+ connectWalletConnect(topic) {
290
+ return __awaiter(this, void 0, void 0, function* () {
291
+ if (this.provider && this.provider.connected) {
292
+ return;
293
+ }
294
+ const wc = yield this.getWalletConnect();
295
+ yield wc.connect(Object.assign({}, (topic && { pairingTopic: topic })));
296
+ });
297
+ }
298
+ }
299
+ exports.WalletConnect = WalletConnect;
300
+ //# sourceMappingURL=strategy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strategy.js","sourceRoot":"","sources":["../../../src/strategy/strategy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { WalletConnect as WalletConnectStrategy } from './strategy/strategy';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,IAAI,qBAAqB,EAAE,MAAM,qBAAqB,CAAA"}
@@ -0,0 +1,2 @@
1
+ export { WalletConnect as WalletConnectStrategy } from './strategy/strategy';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,IAAI,qBAAqB,EAAE,MAAM,qBAAqB,CAAA"}
@@ -0,0 +1,3 @@
1
+ {
2
+ "type": "module"
3
+ }
@@ -0,0 +1,46 @@
1
+ import { StdSignDoc, WalletDeviceType, BaseConcreteStrategy, WalletConnectMetadata, ConcreteWalletStrategy, SendTransactionOptions, ConcreteEthereumWalletStrategyArgs } from '@injectivelabs/wallet-base';
2
+ import Provider from '@walletconnect/ethereum-provider';
3
+ import { AccountAddress, EthereumChainId } from '@injectivelabs/ts-types';
4
+ import { TxRaw, TxResponse, DirectSignResponse, AminoSignResponse } from '@injectivelabs/sdk-ts';
5
+ interface WalletConnectArgs extends ConcreteEthereumWalletStrategyArgs {
6
+ metadata?: WalletConnectMetadata;
7
+ }
8
+ export declare class WalletConnect extends BaseConcreteStrategy implements ConcreteWalletStrategy {
9
+ provider: Provider | undefined;
10
+ metadata?: WalletConnectMetadata;
11
+ constructor(args: WalletConnectArgs);
12
+ getWalletDeviceType(): Promise<WalletDeviceType>;
13
+ enable(args?: {
14
+ topic: string;
15
+ }): Promise<boolean>;
16
+ disconnect(): Promise<void>;
17
+ getAddresses(): Promise<string[]>;
18
+ getSessionOrConfirm(_address: AccountAddress): Promise<string>;
19
+ sendEthereumTransaction(transaction: unknown, _options: {
20
+ address: AccountAddress;
21
+ ethereumChainId: EthereumChainId;
22
+ }): Promise<string>;
23
+ sendTransaction(transaction: TxRaw, options: SendTransactionOptions): Promise<TxResponse>;
24
+ signEip712TypedData(eip712json: string, address: AccountAddress): Promise<string>;
25
+ signAminoCosmosTransaction(_transaction: {
26
+ address: string;
27
+ signDoc: StdSignDoc;
28
+ }): Promise<AminoSignResponse>;
29
+ signCosmosTransaction(_transaction: {
30
+ txRaw: TxRaw;
31
+ accountNumber: number;
32
+ chainId: string;
33
+ address: string;
34
+ }): Promise<DirectSignResponse>;
35
+ signArbitrary(signer: AccountAddress, data: string | Uint8Array): Promise<string>;
36
+ getEthereumChainId(): Promise<string>;
37
+ getEthereumTransactionReceipt(_txHash: string): Promise<string>;
38
+ getPubKey(): Promise<string>;
39
+ onChainIdChanged(callback: (chain: string) => void): Promise<void>;
40
+ onAccountChange(callback: (account: AccountAddress) => void): Promise<void>;
41
+ private getWalletConnect;
42
+ private getConnectedWalletConnect;
43
+ private connectWalletConnect;
44
+ }
45
+ export {};
46
+ //# sourceMappingURL=strategy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strategy.d.ts","sourceRoot":"","sources":["../../../src/strategy/strategy.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,UAAU,EAEV,gBAAgB,EAEhB,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,kCAAkC,EACnC,MAAM,4BAA4B,CAAA;AACnC,OAAO,QAGN,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACzE,OAAO,EACL,KAAK,EAGL,UAAU,EACV,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,uBAAuB,CAAA;AAO9B,UAAU,iBAAkB,SAAQ,kCAAkC;IACpE,QAAQ,CAAC,EAAE,qBAAqB,CAAA;CACjC;AAED,qBAAa,aACX,SAAQ,oBACR,YAAW,sBAAsB;IAE1B,QAAQ,EAAE,QAAQ,GAAG,SAAS,CAAA;IAE9B,QAAQ,CAAC,EAAE,qBAAqB,CAAA;gBAE3B,IAAI,EAAE,iBAAiB;IAM7B,mBAAmB,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAIhD,MAAM,CAAC,IAAI,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAM3C,UAAU;IA2BjB,YAAY,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAgBjC,mBAAmB,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;IAM9D,uBAAuB,CAC3B,WAAW,EAAE,OAAO,EACpB,QAAQ,EAAE;QAAE,OAAO,EAAE,cAAc,CAAC;QAAC,eAAe,EAAE,eAAe,CAAA;KAAE,GACtE,OAAO,CAAC,MAAM,CAAC;IAiBZ,eAAe,CACnB,WAAW,EAAE,KAAK,EAClB,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,UAAU,CAAC;IAyBhB,mBAAmB,CACvB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,MAAM,CAAC;IAiBZ,0BAA0B,CAAC,YAAY,EAAE;QAC7C,OAAO,EAAE,MAAM,CAAA;QACf,OAAO,EAAE,UAAU,CAAA;KACpB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAYxB,qBAAqB,CAAC,YAAY,EAAE;QACxC,KAAK,EAAE,KAAK,CAAA;QACZ,aAAa,EAAE,MAAM,CAAA;QACrB,OAAO,EAAE,MAAM,CAAA;QACf,OAAO,EAAE,MAAM,CAAA;KAChB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAWzB,aAAa,CACjB,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,MAAM,GAAG,UAAU,GACxB,OAAO,CAAC,MAAM,CAAC;IAmBZ,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC;IAcrC,6BAA6B,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAY/D,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC;IAM5B,gBAAgB,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAUlE,eAAe,CACnB,QAAQ,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,IAAI,GAC1C,OAAO,CAAC,IAAI,CAAC;YAUF,gBAAgB;YAuEhB,yBAAyB;YAYzB,oBAAoB;CAWnC"}
@@ -0,0 +1,251 @@
1
+ /* eslint-disable class-methods-use-this */
2
+ import { ErrorType, WalletException, MetamaskException, UnspecifiedErrorCode, TransactionException, } from '@injectivelabs/exceptions';
3
+ import { WalletAction, WalletDeviceType, WalletEventListener, BaseConcreteStrategy, } from '@injectivelabs/wallet-base';
4
+ import { EthereumProvider, } from '@walletconnect/ethereum-provider';
5
+ import { EthereumChainId } from '@injectivelabs/ts-types';
6
+ import { toUtf8, TxGrpcApi, } from '@injectivelabs/sdk-ts';
7
+ const WalletConnectIds = {
8
+ FireBlocks: '5864e2ced7c293ed18ac35e0db085c09ed567d67346ccb6f58a0327a75137489',
9
+ };
10
+ export class WalletConnect extends BaseConcreteStrategy {
11
+ provider;
12
+ metadata;
13
+ constructor(args) {
14
+ super(args);
15
+ this.metadata = args.metadata;
16
+ }
17
+ async getWalletDeviceType() {
18
+ return Promise.resolve(WalletDeviceType.Browser);
19
+ }
20
+ async enable(args) {
21
+ await this.connectWalletConnect(args?.topic);
22
+ return Promise.resolve(true);
23
+ }
24
+ async disconnect() {
25
+ if (this.listeners[WalletEventListener.AccountChange]) {
26
+ const wc = await this.getConnectedWalletConnect();
27
+ wc.removeListener('accountsChanged', this.listeners[WalletEventListener.AccountChange]);
28
+ }
29
+ if (this.listeners[WalletEventListener.ChainIdChange]) {
30
+ const wc = await this.getConnectedWalletConnect();
31
+ wc.removeListener('chainChanged', this.listeners[WalletEventListener.ChainIdChange]);
32
+ }
33
+ this.listeners = {};
34
+ if (this.provider) {
35
+ await this.provider.disconnect();
36
+ this.provider = undefined;
37
+ }
38
+ }
39
+ async getAddresses() {
40
+ const wc = await this.getConnectedWalletConnect();
41
+ try {
42
+ return await wc.request({
43
+ method: 'eth_requestAccounts',
44
+ });
45
+ }
46
+ catch (e) {
47
+ throw new MetamaskException(new Error(e.message), {
48
+ code: UnspecifiedErrorCode,
49
+ type: ErrorType.WalletError,
50
+ contextModule: WalletAction.GetAccounts,
51
+ });
52
+ }
53
+ }
54
+ async getSessionOrConfirm(_address) {
55
+ const wc = await this.getConnectedWalletConnect();
56
+ return wc.session?.topic || '';
57
+ }
58
+ async sendEthereumTransaction(transaction, _options) {
59
+ const wc = await this.getConnectedWalletConnect();
60
+ try {
61
+ return await wc.request({
62
+ method: 'eth_sendTransaction',
63
+ params: [transaction],
64
+ });
65
+ }
66
+ catch (e) {
67
+ throw new MetamaskException(new Error(e.message), {
68
+ code: UnspecifiedErrorCode,
69
+ type: ErrorType.WalletError,
70
+ contextModule: WalletAction.SendEthereumTransaction,
71
+ });
72
+ }
73
+ }
74
+ async sendTransaction(transaction, options) {
75
+ const { endpoints, txTimeout } = options;
76
+ if (!endpoints) {
77
+ throw new WalletException(new Error('You have to pass endpoints within the options for using Ethereum native wallets'));
78
+ }
79
+ const txApi = new TxGrpcApi(endpoints.grpc);
80
+ const response = await txApi.broadcast(transaction, { txTimeout });
81
+ if (response.code !== 0) {
82
+ throw new TransactionException(new Error(response.rawLog), {
83
+ code: UnspecifiedErrorCode,
84
+ contextCode: response.code,
85
+ contextModule: response.codespace,
86
+ });
87
+ }
88
+ return response;
89
+ }
90
+ async signEip712TypedData(eip712json, address) {
91
+ const wc = await this.getConnectedWalletConnect();
92
+ try {
93
+ return await wc.request({
94
+ method: 'eth_signTypedData_v4',
95
+ params: [address, eip712json],
96
+ });
97
+ }
98
+ catch (e) {
99
+ throw new MetamaskException(new Error(e.message), {
100
+ code: UnspecifiedErrorCode,
101
+ type: ErrorType.WalletError,
102
+ contextModule: WalletAction.SignTransaction,
103
+ });
104
+ }
105
+ }
106
+ async signAminoCosmosTransaction(_transaction) {
107
+ throw new WalletException(new Error('This wallet does not support signing Cosmos transactions'), {
108
+ code: UnspecifiedErrorCode,
109
+ type: ErrorType.WalletError,
110
+ contextModule: WalletAction.SignTransaction,
111
+ });
112
+ }
113
+ // eslint-disable-next-line class-methods-use-this
114
+ async signCosmosTransaction(_transaction) {
115
+ throw new WalletException(new Error('This wallet does not support signing Cosmos transactions'), {
116
+ code: UnspecifiedErrorCode,
117
+ type: ErrorType.WalletError,
118
+ contextModule: WalletAction.SignTransaction,
119
+ });
120
+ }
121
+ async signArbitrary(signer, data) {
122
+ const wc = await this.getConnectedWalletConnect();
123
+ try {
124
+ const signature = await wc.request({
125
+ method: 'personal_sign',
126
+ params: [toUtf8(data), signer],
127
+ });
128
+ return signature;
129
+ }
130
+ catch (e) {
131
+ throw new MetamaskException(new Error(e.message), {
132
+ code: UnspecifiedErrorCode,
133
+ type: ErrorType.WalletError,
134
+ contextModule: WalletAction.SignArbitrary,
135
+ });
136
+ }
137
+ }
138
+ async getEthereumChainId() {
139
+ const wc = await this.getConnectedWalletConnect();
140
+ try {
141
+ return wc.request({ method: 'eth_chainId' });
142
+ }
143
+ catch (e) {
144
+ throw new MetamaskException(new Error(e.message), {
145
+ code: UnspecifiedErrorCode,
146
+ type: ErrorType.WalletError,
147
+ contextModule: WalletAction.GetChainId,
148
+ });
149
+ }
150
+ }
151
+ async getEthereumTransactionReceipt(_txHash) {
152
+ throw new WalletException(new Error('This wallet does not support awaiting Ethereum transactions'), {
153
+ code: UnspecifiedErrorCode,
154
+ type: ErrorType.WalletError,
155
+ contextModule: WalletAction.GetEthereumTransactionReceipt,
156
+ });
157
+ }
158
+ // eslint-disable-next-line class-methods-use-this
159
+ async getPubKey() {
160
+ throw new WalletException(new Error('You can only fetch PubKey from Cosmos native wallets'));
161
+ }
162
+ async onChainIdChanged(callback) {
163
+ const wc = await this.getConnectedWalletConnect();
164
+ this.listeners = {
165
+ [WalletEventListener.ChainIdChange]: callback,
166
+ };
167
+ wc.on('chainChanged', callback);
168
+ }
169
+ async onAccountChange(callback) {
170
+ const wc = await this.getConnectedWalletConnect();
171
+ this.listeners = {
172
+ [WalletEventListener.AccountChange]: callback,
173
+ };
174
+ wc.on('accountsChanged', (accounts) => callback(accounts[0]));
175
+ }
176
+ async getWalletConnect() {
177
+ if (this.provider) {
178
+ return this.provider;
179
+ }
180
+ if (!this.metadata) {
181
+ throw new WalletException(new Error('Please provide metadata for WalletConnect'), {
182
+ code: UnspecifiedErrorCode,
183
+ type: ErrorType.WalletError,
184
+ contextModule: WalletAction.GetAccounts,
185
+ });
186
+ }
187
+ if (!this.metadata.projectId) {
188
+ throw new WalletException(new Error('Please provide projectId alongside the metadata for WalletConnect'), {
189
+ code: UnspecifiedErrorCode,
190
+ type: ErrorType.WalletError,
191
+ contextModule: WalletAction.GetAccounts,
192
+ });
193
+ }
194
+ try {
195
+ this.provider = await EthereumProvider.init({
196
+ projectId: this.metadata.projectId,
197
+ metadata: this.metadata
198
+ .metadata,
199
+ showQrModal: true,
200
+ optionalChains: this.ethereumChainId
201
+ ? [this.ethereumChainId]
202
+ : [EthereumChainId.Mainnet, EthereumChainId.Sepolia],
203
+ qrModalOptions: {
204
+ explorerRecommendedWalletIds: [WalletConnectIds.FireBlocks],
205
+ explorerExcludedWalletIds: 'ALL',
206
+ mobileWallets: [],
207
+ walletImages: {
208
+ [WalletConnectIds.FireBlocks]: '/wallet-connect/fireblocks.webp',
209
+ },
210
+ desktopWallets: [
211
+ {
212
+ id: WalletConnectIds.FireBlocks,
213
+ name: 'Fireblocks',
214
+ links: {
215
+ native: 'fireblocks-wc://',
216
+ universal: 'https://console.fireblocks.io/v2/',
217
+ },
218
+ },
219
+ ],
220
+ },
221
+ });
222
+ return this.provider;
223
+ }
224
+ catch (e) {
225
+ throw new WalletException(new Error('WalletConnect not supported for this wallet'), {
226
+ code: UnspecifiedErrorCode,
227
+ type: ErrorType.WalletError,
228
+ contextModule: WalletAction.GetAccounts,
229
+ });
230
+ }
231
+ }
232
+ async getConnectedWalletConnect() {
233
+ if (!this.provider) {
234
+ await this.getWalletConnect();
235
+ }
236
+ if (!this.provider?.connected) {
237
+ await this.enable();
238
+ }
239
+ return this.provider;
240
+ }
241
+ async connectWalletConnect(topic) {
242
+ if (this.provider && this.provider.connected) {
243
+ return;
244
+ }
245
+ const wc = await this.getWalletConnect();
246
+ await wc.connect({
247
+ ...(topic && { pairingTopic: topic }),
248
+ });
249
+ }
250
+ }
251
+ //# sourceMappingURL=strategy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strategy.js","sourceRoot":"","sources":["../../../src/strategy/strategy.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,54 @@
1
+ {
2
+ "name": "@injectivelabs/wallet-wallet-connect",
3
+ "description": "Wallet connect strategy for use with @injectivelabs/wallet-core.",
4
+ "version": "0.0.2",
5
+ "sideEffects": false,
6
+ "author": {
7
+ "name": "InjectiveLabs",
8
+ "email": "admin@injectivelabs.org"
9
+ },
10
+ "license": "Apache-2.0",
11
+ "types": "dist/cjs/index.d.ts",
12
+ "main": "dist/cjs/index.js",
13
+ "module": "dist/esm/index.js",
14
+ "files": [
15
+ "dist"
16
+ ],
17
+ "_moduleAliases": {
18
+ "~wallet-wallet-connect": "dist"
19
+ },
20
+ "scripts": {
21
+ "postinstall": "link-module-alias",
22
+ "build:cjs": "BUILD_MODE=cjs tsc --build tsconfig.build.json",
23
+ "build:esm": "BUILD_MODE=esm tsc --build tsconfig.build.esm.json",
24
+ "build": "yarn build:esm && yarn build:cjs && yarn build:post && link-module-alias",
25
+ "build:watch": "tsc --build -w tsconfig.build.json && tsc -w --build tsconfig.build.esm.json && yarn build:post && link-module-alias",
26
+ "build:post": "shx cp ../../../etc/stub/package.json.stub dist/cjs/package.json && shx cp ../../../etc/stub/package.esm.json.stub dist/esm/package.json",
27
+ "clean": "tsc --build tsconfig.build.json --clean && tsc --build tsconfig.build.esm.json --clean && shx rm -rf coverage *.log junit.xml dist && jest --clearCache && shx mkdir -p dist",
28
+ "test": "jest",
29
+ "test:watch": "jest --watch",
30
+ "test:ci": "jest --coverage --ci --reporters='jest-junit'",
31
+ "coverage": "jest --coverage",
32
+ "coverage:show": "live-server coverage",
33
+ "dev": "ts-node -r tsconfig-paths/register src/index.ts",
34
+ "start": "node dist/index.js"
35
+ },
36
+ "dependencies": {
37
+ "@injectivelabs/exceptions": "^1.14.14",
38
+ "@injectivelabs/sdk-ts": "^1.14.15",
39
+ "@injectivelabs/ts-types": "^1.14.14",
40
+ "@injectivelabs/utils": "^1.14.14",
41
+ "@injectivelabs/wallet-base": "^0.0.2",
42
+ "@walletconnect/ethereum-provider": "^2.12.2"
43
+ },
44
+ "gitHead": "6442ae377bbfb3459d2fb3a44c650630a5b7f445",
45
+ "typedoc": {
46
+ "entryPoint": "./src/index.ts",
47
+ "readmeFile": "./README.md",
48
+ "displayName": "wallet-connect API Documentation"
49
+ },
50
+ "resolutions": {
51
+ "**/libsodium": "npm:@bangjelkoski/noop",
52
+ "**/libsodium-wrappers": "npm:@bangjelkoski/noop"
53
+ }
54
+ }