@haneullabs/walletconnect-wallet 0.1.0 → 1.0.3

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,12 +1,52 @@
1
- # @haneullabs/walletconnect-wallet
1
+ # @mysten/walletconnect-wallet
2
+
3
+ ## 1.0.2
4
+
5
+ ### Patch Changes
6
+
7
+ - 99d1e00: Add default export condition
8
+ - Updated dependencies [99d1e00]
9
+ - @mysten/wallet-standard@0.20.1
10
+ - @mysten/utils@0.3.1
11
+ - @mysten/sui@2.3.2
12
+
13
+ ## 1.0.1
14
+
15
+ ### Patch Changes
16
+
17
+ - Updated dependencies [339d1e0]
18
+ - @mysten/utils@0.3.0
19
+ - @mysten/sui@2.0.1
20
+ - @mysten/wallet-standard@0.20.0
21
+
22
+ ## 1.0.0
23
+
24
+ ### Patch Changes
25
+
26
+ - Updated dependencies [e00788c]
27
+ - Updated dependencies [e00788c]
28
+ - Updated dependencies [e00788c]
29
+ - Updated dependencies [e00788c]
30
+ - Updated dependencies [e00788c]
31
+ - Updated dependencies [e00788c]
32
+ - Updated dependencies [e00788c]
33
+ - Updated dependencies [e00788c]
34
+ - Updated dependencies [e00788c]
35
+ - Updated dependencies [e00788c]
36
+ - Updated dependencies [e00788c]
37
+ - Updated dependencies [e00788c]
38
+ - Updated dependencies [e00788c]
39
+ - Updated dependencies [e00788c]
40
+ - @mysten/sui@2.0.0
41
+ - @mysten/wallet-standard@0.20.0
2
42
 
3
43
  ## 0.1.12
4
44
 
5
45
  ### Patch Changes
6
46
 
7
47
  - Updated dependencies [29e8b92]
8
- - @haneullabs/haneul@1.45.2
9
- - @haneullabs/wallet-standard@0.19.9
48
+ - @mysten/sui@1.45.2
49
+ - @mysten/wallet-standard@0.19.9
10
50
 
11
51
  ## 0.1.11
12
52
 
@@ -14,38 +54,38 @@
14
54
 
15
55
  - e3811f1: update valibot
16
56
  - Updated dependencies [e3811f1]
17
- - @haneullabs/haneul@1.45.1
18
- - @haneullabs/wallet-standard@0.19.8
57
+ - @mysten/sui@1.45.1
58
+ - @mysten/wallet-standard@0.19.8
19
59
 
20
60
  ## 0.1.10
21
61
 
22
62
  ### Patch Changes
23
63
 
24
64
  - Updated dependencies [88bdbac]
25
- - @haneullabs/haneul@1.45.0
26
- - @haneullabs/wallet-standard@0.19.7
65
+ - @mysten/sui@1.45.0
66
+ - @mysten/wallet-standard@0.19.7
27
67
 
28
68
  ## 0.1.9
29
69
 
30
70
  ### Patch Changes
31
71
 
32
72
  - Updated dependencies [44d9b4f]
33
- - @haneullabs/haneul@1.44.0
34
- - @haneullabs/wallet-standard@0.19.6
73
+ - @mysten/sui@1.44.0
74
+ - @mysten/wallet-standard@0.19.6
35
75
 
36
76
  ## 0.1.8
37
77
 
38
78
  ### Patch Changes
39
79
 
40
- - @haneullabs/haneul@1.43.2
41
- - @haneullabs/wallet-standard@0.19.5
80
+ - @mysten/sui@1.43.2
81
+ - @mysten/wallet-standard@0.19.5
42
82
 
43
83
  ## 0.1.7
44
84
 
45
85
  ### Patch Changes
46
86
 
47
- - @haneullabs/haneul@1.43.1
48
- - @haneullabs/wallet-standard@0.19.4
87
+ - @mysten/sui@1.43.1
88
+ - @mysten/wallet-standard@0.19.4
49
89
 
50
90
  ## 0.1.6
51
91
 
@@ -53,16 +93,16 @@
53
93
 
54
94
  - Updated dependencies [f3b19a7]
55
95
  - Updated dependencies [bf9f85c]
56
- - @haneullabs/haneul@1.43.0
57
- - @haneullabs/wallet-standard@0.19.3
96
+ - @mysten/sui@1.43.0
97
+ - @mysten/wallet-standard@0.19.3
58
98
 
59
99
  ## 0.1.5
60
100
 
61
101
  ### Patch Changes
62
102
 
63
103
  - Updated dependencies [98c8a27]
64
- - @haneullabs/haneul@1.42.0
65
- - @haneullabs/wallet-standard@0.19.2
104
+ - @mysten/sui@1.42.0
105
+ - @mysten/wallet-standard@0.19.2
66
106
 
67
107
  ## 0.1.4
68
108
 
@@ -70,8 +110,8 @@
70
110
 
71
111
  - Updated dependencies [d554cd2]
72
112
  - Updated dependencies [04fcfbc]
73
- - @haneullabs/haneul@1.41.0
74
- - @haneullabs/wallet-standard@0.19.1
113
+ - @mysten/sui@1.41.0
114
+ - @mysten/wallet-standard@0.19.1
75
115
 
76
116
  ## 0.1.3
77
117
 
@@ -79,16 +119,16 @@
79
119
 
80
120
  - Updated dependencies [f5fc0c0]
81
121
  - Updated dependencies [f5fc0c0]
82
- - @haneullabs/wallet-standard@0.19.0
83
- - @haneullabs/haneul@1.40.0
122
+ - @mysten/wallet-standard@0.19.0
123
+ - @mysten/sui@1.40.0
84
124
 
85
125
  ## 0.1.2
86
126
 
87
127
  ### Patch Changes
88
128
 
89
129
  - Updated dependencies [a9f9035]
90
- - @haneullabs/haneul@1.39.1
91
- - @haneullabs/wallet-standard@0.18.1
130
+ - @mysten/sui@1.39.1
131
+ - @mysten/wallet-standard@0.18.1
92
132
 
93
133
  ## 0.1.1
94
134
 
@@ -97,8 +137,8 @@
97
137
  - Updated dependencies [566b9ae]
98
138
  - Updated dependencies [ca92487]
99
139
  - Updated dependencies [5ab3c0a]
100
- - @haneullabs/wallet-standard@0.18.0
101
- - @haneullabs/haneul@1.39.0
140
+ - @mysten/wallet-standard@0.18.0
141
+ - @mysten/sui@1.39.0
102
142
 
103
143
  ## 0.1.0
104
144
 
@@ -0,0 +1,2 @@
1
+ import { GetClient, WALLETCONNECT_WALLET_NAME, WalletConnectWallet, registerWalletConnectWallet } from "./wallet/index.mjs";
2
+ export { type GetClient, WALLETCONNECT_WALLET_NAME, WalletConnectWallet, registerWalletConnectWallet };
package/dist/index.mjs ADDED
@@ -0,0 +1,3 @@
1
+ import { WALLETCONNECT_WALLET_NAME, WalletConnectWallet, registerWalletConnectWallet } from "./wallet/index.mjs";
2
+
3
+ export { WALLETCONNECT_WALLET_NAME, WalletConnectWallet, registerWalletConnectWallet };
@@ -0,0 +1,53 @@
1
+ import { HaneulSignAndExecuteTransactionFeature, HaneulSignPersonalMessageFeature, HaneulSignTransactionFeature, ReadonlyWalletAccount, StandardConnectFeature, StandardDisconnectFeature, StandardEventsFeature, Wallet } from "@haneullabs/wallet-standard";
2
+ import * as valibot0 from "valibot";
3
+ import { InferOutput } from "valibot";
4
+ import { ClientWithCoreApi } from "@haneullabs/haneul/client";
5
+
6
+ //#region src/wallet/index.d.ts
7
+ type SupportedNetwork = 'mainnet' | 'testnet' | 'devnet' | 'localnet';
8
+ type GetClient = (network: SupportedNetwork) => ClientWithCoreApi;
9
+ type WalletMetadata = InferOutput<typeof WalletMetadataSchema>;
10
+ declare const WALLETCONNECT_WALLET_NAME: "WalletConnect";
11
+ declare const WalletMetadataSchema: valibot0.ObjectSchema<{
12
+ readonly id: valibot0.StringSchema<"Wallet ID is required">;
13
+ readonly walletName: valibot0.StringSchema<"Wallet name is required">;
14
+ readonly icon: valibot0.StringSchema<"Icon must be a valid wallet icon format">;
15
+ readonly enabled: valibot0.BooleanSchema<"Enabled is required">;
16
+ }, undefined>;
17
+ declare class WalletConnectWallet implements Wallet {
18
+ #private;
19
+ get name(): string;
20
+ get id(): string;
21
+ get icon(): `data:image/svg+xml;base64,${string}` | `data:image/webp;base64,${string}` | `data:image/png;base64,${string}` | `data:image/gif;base64,${string}`;
22
+ get version(): "1.0.0";
23
+ get chains(): readonly ["haneul:devnet", "haneul:testnet", "haneul:localnet", "haneul:mainnet"];
24
+ get accounts(): ReadonlyWalletAccount[];
25
+ get features(): StandardConnectFeature & StandardDisconnectFeature & StandardEventsFeature & HaneulSignTransactionFeature & HaneulSignPersonalMessageFeature & HaneulSignAndExecuteTransactionFeature;
26
+ constructor({
27
+ metadata,
28
+ projectId,
29
+ getClient
30
+ }: {
31
+ metadata: WalletMetadata;
32
+ projectId: string;
33
+ getClient: GetClient;
34
+ });
35
+ init(): Promise<void>;
36
+ updateMetadata(metadata: WalletMetadata): void;
37
+ }
38
+ type RegisterWalletConnectWallet = {
39
+ projectId: string;
40
+ getClient: GetClient;
41
+ metadata?: WalletMetadata;
42
+ };
43
+ declare function registerWalletConnectWallet({
44
+ projectId,
45
+ getClient,
46
+ metadata
47
+ }: RegisterWalletConnectWallet): {
48
+ wallet: WalletConnectWallet;
49
+ unregister: () => void;
50
+ } | undefined;
51
+ //#endregion
52
+ export { GetClient, WALLETCONNECT_WALLET_NAME, WalletConnectWallet, registerWalletConnectWallet };
53
+ //# sourceMappingURL=index.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../../src/wallet/index.ts"],"sourcesContent":[],"mappings":";;;;;;KA8CK,gBAAA;KAEO,SAAA,aAAsB,qBAAqB;AAVY,KAW9D,cAAA,GAAiB,WAHD,CAAA,OAGoB,oBAHpB,CAAA;AAET,cAMC,yBAN0C,EAAA,eAAiB;AAAC,cAyBnE,oBAxBmC,WAwBf,YAxBO,CAAA;EAKpB,SAAA,EAAA,EAwBX,QAAA,CAAA,YAxB+D,CAAA,uBAAA,CAAA;EAmB3D,SAAA,UAAA,uBAKJ,CAAA,yBAAA,CAAA;EAAA,SAAA,IAAA,uBAAA,CAAA,yCAAA,CAAA;;;cAiBW,mBAAA,YAA+B;UAtBlB;EAAA,IAAA,IAAA,CAAA,CAAA,EAAA,MAAA;EAsBb,IAAA,EAAA,CAAA,CAAA,EAAA,MAAA;EA8BA,IAAA,IAAA,CAAA,CAAA,EAAA,6BAAA,MAAA,EAAA,GAAA,0BAAA,MAAA,EAAA,GAAA,yBAAA,MAAA,EAAA,GAAA,yBAAA,MAAA,EAAA;EAII,IAAA,OAAA,CAAA,CAAA,EAAA,OAAA;EACf,IAAA,MAAA,CAAA,CAAA,EAAA,SAAA,CAAA,eAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,gBAAA,CAAA;EACA,IAAA,QAAA,CAAA,CAAA,EANW,qBAMX,EAAA;EACA,IAAA,QAAA,CAAA,CAAA,EAHe,sBAGf,GAFA,yBAEA,GADA,qBACA,GAAA,4BAAA,GACA,gCADA,GAEA,sCAFA;EACA,WAAA,CAAA;IAAA,QAAA;IAAA,SAAA;IAAA;EAiCA,CAjCA,EAAA;IACA,QAAA,EAkCU,cAlCV;IA8BA,SAAA,EAAA,MAAA;IACA,SAAA,EAKW,SALX;EACA,CAAA;EAEU,IAAA,CAAA,CAAA,EAcD,OAdC,CAAA,IAAA,CAAA;EAEC,cAAA,CAAA,QAAA,EAuLa,cAvLb,CAAA,EAAA,IAAA;;KA4LR,2BAAA,GALqB;EAlQkB,SAAA,EAAA,MAAA;EAAM,SAAA,EAyQtC,SAzQsC;EAuQ7C,QAAA,CAAA,EAGO,cAHP;AAML,CAAA;AACC,iBADe,2BAAA,CACf;EAAA,SAAA;EAAA,SAAA;EAAA;AAAA,CAAA,EAGE,2BAHF,CAAA,EAAA;EACA,MAAA,qBAAA;EACA,UAAA,EAAA,GAAA,GAAA,IAAA;CACE,GAAA,SAAA"}
@@ -0,0 +1,259 @@
1
+ import { fromBase64, toBase64 } from "@haneullabs/haneul/utils";
2
+ import { HANEUL_CHAINS, HaneulSignAndExecuteTransaction, HaneulSignPersonalMessage, HaneulSignTransaction, ReadonlyWalletAccount, StandardConnect, StandardDisconnect, StandardEvents, getWallets } from "@haneullabs/wallet-standard";
3
+ import { mitt } from "@haneullabs/utils";
4
+ import { boolean, object, string } from "valibot";
5
+ import { UniversalConnector } from "@reown/appkit-universal-connector";
6
+ import { Transaction } from "@haneullabs/haneul/transactions";
7
+
8
+ //#region src/wallet/index.ts
9
+ const icon = "data:image/svg+xml;base64,PHN2ZyBmaWxsPSJub25lIiBoZWlnaHQ9IjQwMCIgdmlld0JveD0iMCAwIDQwMCA0MDAiIHdpZHRoPSI0MDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxjbGlwUGF0aCBpZD0iYSI+PHBhdGggZD0ibTAgMGg0MDB2NDAwaC00MDB6Ii8+PC9jbGlwUGF0aD48ZyBjbGlwLXBhdGg9InVybCgjYSkiPjxjaXJjbGUgY3g9IjIwMCIgY3k9IjIwMCIgZmlsbD0iIzE0MTQxNCIgcj0iMTk5LjUiIHN0cm9rZT0iIzNiNDA0MCIvPjxwYXRoIGQ9Im0xMjIuNTE5IDE0OC45NjVjNDIuNzkxLTQxLjcyOSAxMTIuMTcxLTQxLjcyOSAxNTQuOTYyIDBsNS4xNSA1LjAyMmMyLjE0IDIuMDg2IDIuMTQgNS40NjkgMCA3LjU1NWwtMTcuNjE3IDE3LjE4Yy0xLjA3IDEuMDQzLTIuODA0IDEuMDQzLTMuODc0IDBsLTcuMDg3LTYuOTExYy0yOS44NTMtMjkuMTExLTc4LjI1My0yOS4xMTEtMTA4LjEwNiAwbC03LjU5IDcuNDAxYy0xLjA3IDEuMDQzLTIuODA0IDEuMDQzLTMuODc0IDBsLTE3LjYxNy0xNy4xOGMtMi4xNC0yLjA4Ni0yLjE0LTUuNDY5IDAtNy41NTV6bTE5MS4zOTcgMzUuNTI5IDE1LjY3OSAxNS4yOWMyLjE0IDIuMDg2IDIuMTQgNS40NjkgMCA3LjU1NWwtNzAuNyA2OC45NDRjLTIuMTM5IDIuMDg3LTUuNjA4IDIuMDg3LTcuNzQ4IDBsLTUwLjE3OC00OC45MzFjLS41MzUtLjUyMi0xLjQwMi0uNTIyLTEuOTM3IDBsLTUwLjE3OCA0OC45MzFjLTIuMTM5IDIuMDg3LTUuNjA4IDIuMDg3LTcuNzQ4IDBsLTcwLjcwMTUtNjguOTQ1Yy0yLjEzOTYtMi4wODYtMi4xMzk2LTUuNDY5IDAtNy41NTVsMTUuNjc5NS0xNS4yOWMyLjEzOTYtMi4wODcgNS42MDg1LTIuMDg3IDcuNzQ4MSAwbDUwLjE3ODkgNDguOTMyYy41MzUuNTIyIDEuNDAyLjUyMiAxLjkzNyAwbDUwLjE3Ny00OC45MzJjMi4xMzktMi4wODcgNS42MDgtMi4wODcgNy43NDggMGw1MC4xNzkgNDguOTMyYy41MzUuNTIyIDEuNDAyLjUyMiAxLjkzNyAwbDUwLjE3OS00OC45MzFjMi4xMzktMi4wODcgNS42MDgtMi4wODcgNy43NDggMHoiIGZpbGw9IiNmZmYiLz48L2c+PC9zdmc+";
10
+ const WALLETCONNECT_WALLET_NAME = "WalletConnect";
11
+ const walletAccountFeatures = [
12
+ "haneul:signTransaction",
13
+ "haneul:signAndExecuteTransaction",
14
+ "haneul:signPersonalMessage"
15
+ ];
16
+ const HaneulCaipNetworks = HANEUL_CHAINS.map((chain) => {
17
+ const [_, chainId] = chain.split(":");
18
+ return {
19
+ id: chainId,
20
+ chainNamespace: "haneul",
21
+ caipNetworkId: `haneul:${chainId}`,
22
+ name: `Haneul ${chainId}`,
23
+ nativeCurrency: {
24
+ name: "HANEUL",
25
+ symbol: "HANEUL",
26
+ decimals: 9
27
+ },
28
+ rpcUrls: { default: { http: [`https://haneul-${chainId}.gateway.tatum.io`] } }
29
+ };
30
+ });
31
+ object({
32
+ id: string("Wallet ID is required"),
33
+ walletName: string("Wallet name is required"),
34
+ icon: string("Icon must be a valid wallet icon format"),
35
+ enabled: boolean("Enabled is required")
36
+ });
37
+ const toStandardAccounts = (accounts, chains) => {
38
+ return accounts.map((account) => {
39
+ return new ReadonlyWalletAccount({
40
+ address: account.address,
41
+ chains,
42
+ features: walletAccountFeatures,
43
+ publicKey: fromBase64(account.pubkey)
44
+ });
45
+ });
46
+ };
47
+ var WalletConnectWallet = class {
48
+ #id;
49
+ #events;
50
+ #accounts;
51
+ #walletName;
52
+ #icon;
53
+ #connector;
54
+ #projectId;
55
+ #getClient;
56
+ get name() {
57
+ return this.#walletName;
58
+ }
59
+ get id() {
60
+ return this.#id;
61
+ }
62
+ get icon() {
63
+ return this.#icon;
64
+ }
65
+ get version() {
66
+ return "1.0.0";
67
+ }
68
+ get chains() {
69
+ return HANEUL_CHAINS;
70
+ }
71
+ get accounts() {
72
+ return this.#accounts;
73
+ }
74
+ get features() {
75
+ return {
76
+ [StandardConnect]: {
77
+ version: "1.0.0",
78
+ connect: this.#connect
79
+ },
80
+ [StandardDisconnect]: {
81
+ version: "1.0.0",
82
+ disconnect: this.#disconnect
83
+ },
84
+ [StandardEvents]: {
85
+ version: "1.0.0",
86
+ on: this.#on
87
+ },
88
+ [HaneulSignTransaction]: {
89
+ version: "2.0.0",
90
+ signTransaction: this.#signTransaction
91
+ },
92
+ [HaneulSignPersonalMessage]: {
93
+ version: "1.1.0",
94
+ signPersonalMessage: this.#signPersonalMessage
95
+ },
96
+ [HaneulSignAndExecuteTransaction]: {
97
+ version: "2.0.0",
98
+ signAndExecuteTransaction: this.#signAndExecuteTransaction
99
+ }
100
+ };
101
+ }
102
+ constructor({ metadata, projectId, getClient }) {
103
+ this.#id = metadata.id;
104
+ this.#accounts = [];
105
+ this.#events = mitt();
106
+ this.#walletName = metadata.walletName;
107
+ this.#icon = icon;
108
+ this.#projectId = projectId;
109
+ this.#getClient = getClient;
110
+ this.init();
111
+ }
112
+ async init() {
113
+ this.#connector = await UniversalConnector.init({
114
+ projectId: this.#projectId,
115
+ metadata: {
116
+ name: this.#walletName,
117
+ description: "WalletConnect",
118
+ url: "https://walletconnect.org",
119
+ icons: [this.#icon]
120
+ },
121
+ networks: [{
122
+ namespace: "haneul",
123
+ methods: [
124
+ "haneul_signTransaction",
125
+ "haneul_signPersonalMessage",
126
+ "haneul_signAndExecuteTransaction",
127
+ "haneul_getAccounts"
128
+ ],
129
+ events: ["chainChanged", "accountsChanged"],
130
+ chains: HaneulCaipNetworks
131
+ }],
132
+ modalConfig: { themeVariables: { "--w3m-z-index": 2147483647 } }
133
+ });
134
+ this.#accounts = await this.#getPreviouslyAuthorizedAccounts();
135
+ }
136
+ #signTransaction = async ({ transaction, account, chain }) => {
137
+ const tx = await transaction.toJSON();
138
+ const response = await this.#connector?.request({
139
+ method: "haneul_signTransaction",
140
+ params: {
141
+ transaction: tx,
142
+ address: account.address
143
+ }
144
+ }, chain);
145
+ return {
146
+ bytes: response.transactionBytes,
147
+ signature: response.signature
148
+ };
149
+ };
150
+ #signAndExecuteTransaction = async ({ transaction, account, chain }) => {
151
+ const [, network] = chain.split(":");
152
+ const client = this.#getClient(network);
153
+ const data = await transaction.toJSON();
154
+ const bytes = await Transaction.from(data).build({ client });
155
+ const response = await this.#connector?.request({
156
+ method: "haneul_signAndExecuteTransaction",
157
+ params: {
158
+ transaction: data,
159
+ address: account.address
160
+ }
161
+ }, chain);
162
+ const tx = await client.core.waitForTransaction({
163
+ digest: response.digest,
164
+ include: { effects: true }
165
+ });
166
+ const result = tx.Transaction ?? tx.FailedTransaction;
167
+ return {
168
+ digest: response.digest,
169
+ signature: result.signatures[0] ?? "",
170
+ bytes: toBase64(bytes),
171
+ effects: result.effects?.bcs ? toBase64(result.effects.bcs) : ""
172
+ };
173
+ };
174
+ #signPersonalMessage = async ({ message, account, chain }) => {
175
+ const messageString = new TextDecoder().decode(message);
176
+ return {
177
+ signature: (await this.#connector?.request({
178
+ method: "haneul_signPersonalMessage",
179
+ params: {
180
+ message: messageString,
181
+ address: account.address
182
+ }
183
+ }, chain ?? "haneul:mainnet")).signature,
184
+ bytes: toBase64(message)
185
+ };
186
+ };
187
+ #on = (event, listener) => {
188
+ this.#events.on(event, listener);
189
+ return () => this.#events.off(event, listener);
190
+ };
191
+ #setAccounts(accounts) {
192
+ this.#accounts = accounts;
193
+ this.#events.emit("change", { accounts: this.accounts });
194
+ }
195
+ #getAccounts = async () => {
196
+ let accounts = JSON.parse(this.#connector?.provider?.session?.sessionProperties?.["haneul_getAccounts"] ?? "[]");
197
+ if (!accounts?.length) accounts = await this.#connector?.request({ method: "haneul_getAccounts" }, "haneul:mainnet");
198
+ return toStandardAccounts(accounts, this.chains);
199
+ };
200
+ #connect = async (input) => {
201
+ if (input?.silent) {
202
+ const accounts$1 = await this.#getPreviouslyAuthorizedAccounts();
203
+ if (accounts$1.length > 0) {
204
+ this.#setAccounts(accounts$1);
205
+ return { accounts: accounts$1 };
206
+ }
207
+ }
208
+ if (!this.#connector?.provider?.session?.namespaces?.haneul) await this.#connector?.connect();
209
+ const accounts = await this.#getAccounts();
210
+ this.#setAccounts(accounts);
211
+ return { accounts: this.accounts };
212
+ };
213
+ #getPreviouslyAuthorizedAccounts = async () => {
214
+ const session = this.#connector?.provider?.session;
215
+ if (!session?.namespaces?.haneul) return [];
216
+ return toStandardAccounts(JSON.parse(session.sessionProperties?.["haneul_getAccounts"] ?? "[]"), HANEUL_CHAINS);
217
+ };
218
+ #disconnect = async () => {
219
+ this.#connector?.disconnect();
220
+ this.#setAccounts([]);
221
+ };
222
+ updateMetadata(metadata) {
223
+ this.#id = metadata.id;
224
+ this.#walletName = metadata.walletName;
225
+ }
226
+ };
227
+ function registerWalletConnectWallet({ projectId, getClient, metadata }) {
228
+ const wallets = getWallets();
229
+ let unregister = null;
230
+ wallets.on("register", (wallet) => {
231
+ if (wallet.id === "walletconnect") unregister?.();
232
+ });
233
+ if (wallets.get().find((wallet) => wallet.id === "walletconnect")) return;
234
+ const fullMetadata = {
235
+ id: "walletconnect",
236
+ walletName: "Wallet Connect",
237
+ icon,
238
+ enabled: true,
239
+ ...metadata
240
+ };
241
+ const walletConnectWalletInstance = new WalletConnectWallet({
242
+ metadata: fullMetadata,
243
+ projectId,
244
+ getClient
245
+ });
246
+ unregister = wallets.register(walletConnectWalletInstance);
247
+ walletConnectWalletInstance.updateMetadata({
248
+ ...fullMetadata,
249
+ enabled: true
250
+ });
251
+ return {
252
+ wallet: walletConnectWalletInstance,
253
+ unregister
254
+ };
255
+ }
256
+
257
+ //#endregion
258
+ export { WALLETCONNECT_WALLET_NAME, WalletConnectWallet, registerWalletConnectWallet };
259
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","names":["#walletName","#id","#icon","#accounts","#connect","#disconnect","#on","#signTransaction","#signPersonalMessage","#signAndExecuteTransaction","#events","#projectId","#getClient","#connector","#getPreviouslyAuthorizedAccounts","accounts","#setAccounts","#getAccounts"],"sources":["../../src/wallet/index.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { fromBase64, toBase64 } from '@haneullabs/haneul/utils';\nimport type {\n\tIdentifierArray,\n\tStandardConnectFeature,\n\tStandardConnectMethod,\n\tStandardDisconnectFeature,\n\tStandardDisconnectMethod,\n\tStandardEventsFeature,\n\tStandardEventsListeners,\n\tStandardEventsOnMethod,\n\tHaneulSignAndExecuteTransactionFeature,\n\tHaneulSignAndExecuteTransactionMethod,\n\tHaneulSignPersonalMessageFeature,\n\tHaneulSignPersonalMessageMethod,\n\tHaneulSignTransactionFeature,\n\tHaneulSignTransactionMethod,\n\tWallet,\n\tWalletIcon,\n} from '@haneullabs/wallet-standard';\nimport {\n\tgetWallets,\n\tReadonlyWalletAccount,\n\tStandardConnect,\n\tStandardDisconnect,\n\tStandardEvents,\n\tHANEUL_CHAINS,\n\tHaneulSignAndExecuteTransaction,\n\tHaneulSignPersonalMessage,\n\tHaneulSignTransaction,\n} from '@haneullabs/wallet-standard';\nimport { mitt, type Emitter } from '@haneullabs/utils';\nimport type { InferOutput } from 'valibot';\nimport { boolean, object, string } from 'valibot';\nimport type { CustomCaipNetwork } from '@reown/appkit-universal-connector';\nimport { UniversalConnector } from '@reown/appkit-universal-connector';\nimport type { ClientWithCoreApi } from '@haneullabs/haneul/client';\nimport { Transaction } from '@haneullabs/haneul/transactions';\n\n// -- Types --\ntype WalletEventsMap = {\n\t[E in keyof StandardEventsListeners]: Parameters<StandardEventsListeners[E]>[0];\n};\n\ntype SupportedNetwork = 'mainnet' | 'testnet' | 'devnet' | 'localnet';\n\nexport type GetClient = (network: SupportedNetwork) => ClientWithCoreApi;\ntype WalletMetadata = InferOutput<typeof WalletMetadataSchema>;\n\n// -- Constants --\nconst icon =\n\t'data:image/svg+xml;base64,PHN2ZyBmaWxsPSJub25lIiBoZWlnaHQ9IjQwMCIgdmlld0JveD0iMCAwIDQwMCA0MDAiIHdpZHRoPSI0MDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxjbGlwUGF0aCBpZD0iYSI+PHBhdGggZD0ibTAgMGg0MDB2NDAwaC00MDB6Ii8+PC9jbGlwUGF0aD48ZyBjbGlwLXBhdGg9InVybCgjYSkiPjxjaXJjbGUgY3g9IjIwMCIgY3k9IjIwMCIgZmlsbD0iIzE0MTQxNCIgcj0iMTk5LjUiIHN0cm9rZT0iIzNiNDA0MCIvPjxwYXRoIGQ9Im0xMjIuNTE5IDE0OC45NjVjNDIuNzkxLTQxLjcyOSAxMTIuMTcxLTQxLjcyOSAxNTQuOTYyIDBsNS4xNSA1LjAyMmMyLjE0IDIuMDg2IDIuMTQgNS40NjkgMCA3LjU1NWwtMTcuNjE3IDE3LjE4Yy0xLjA3IDEuMDQzLTIuODA0IDEuMDQzLTMuODc0IDBsLTcuMDg3LTYuOTExYy0yOS44NTMtMjkuMTExLTc4LjI1My0yOS4xMTEtMTA4LjEwNiAwbC03LjU5IDcuNDAxYy0xLjA3IDEuMDQzLTIuODA0IDEuMDQzLTMuODc0IDBsLTE3LjYxNy0xNy4xOGMtMi4xNC0yLjA4Ni0yLjE0LTUuNDY5IDAtNy41NTV6bTE5MS4zOTcgMzUuNTI5IDE1LjY3OSAxNS4yOWMyLjE0IDIuMDg2IDIuMTQgNS40NjkgMCA3LjU1NWwtNzAuNyA2OC45NDRjLTIuMTM5IDIuMDg3LTUuNjA4IDIuMDg3LTcuNzQ4IDBsLTUwLjE3OC00OC45MzFjLS41MzUtLjUyMi0xLjQwMi0uNTIyLTEuOTM3IDBsLTUwLjE3OCA0OC45MzFjLTIuMTM5IDIuMDg3LTUuNjA4IDIuMDg3LTcuNzQ4IDBsLTcwLjcwMTUtNjguOTQ1Yy0yLjEzOTYtMi4wODYtMi4xMzk2LTUuNDY5IDAtNy41NTVsMTUuNjc5NS0xNS4yOWMyLjEzOTYtMi4wODcgNS42MDg1LTIuMDg3IDcuNzQ4MSAwbDUwLjE3ODkgNDguOTMyYy41MzUuNTIyIDEuNDAyLjUyMiAxLjkzNyAwbDUwLjE3Ny00OC45MzJjMi4xMzktMi4wODcgNS42MDgtMi4wODcgNy43NDggMGw1MC4xNzkgNDguOTMyYy41MzUuNTIyIDEuNDAyLjUyMiAxLjkzNyAwbDUwLjE3OS00OC45MzFjMi4xMzktMi4wODcgNS42MDgtMi4wODcgNy43NDggMHoiIGZpbGw9IiNmZmYiLz48L2c+PC9zdmc+';\nexport const WALLETCONNECT_WALLET_NAME = 'WalletConnect' as const;\nconst walletAccountFeatures = [\n\t'haneul:signTransaction',\n\t'haneul:signAndExecuteTransaction',\n\t'haneul:signPersonalMessage',\n] as const;\n\nconst HaneulCaipNetworks = HANEUL_CHAINS.map((chain) => {\n\tconst [_, chainId] = chain.split(':');\n\treturn {\n\t\tid: chainId,\n\t\tchainNamespace: 'haneul',\n\t\tcaipNetworkId: `haneul:${chainId}`,\n\t\tname: `Haneul ${chainId}`,\n\t\tnativeCurrency: { name: 'HANEUL', symbol: 'HANEUL', decimals: 9 },\n\t\trpcUrls: { default: { http: [`https://haneul-${chainId}.gateway.tatum.io`] } },\n\t} as unknown as CustomCaipNetwork;\n});\n\nconst WalletMetadataSchema = object({\n\tid: string('Wallet ID is required'),\n\twalletName: string('Wallet name is required'),\n\ticon: string('Icon must be a valid wallet icon format'),\n\tenabled: boolean('Enabled is required'),\n});\n\nconst toStandardAccounts = (\n\taccounts: { address: string; pubkey: string }[],\n\tchains: IdentifierArray,\n) => {\n\treturn accounts.map((account) => {\n\t\treturn new ReadonlyWalletAccount({\n\t\t\taddress: account.address,\n\t\t\tchains,\n\t\t\tfeatures: walletAccountFeatures,\n\t\t\tpublicKey: fromBase64(account.pubkey),\n\t\t});\n\t});\n};\n\n// -- Wallet --\nexport class WalletConnectWallet implements Wallet {\n\t#id: string;\n\t#events: Emitter<WalletEventsMap>;\n\t#accounts: ReadonlyWalletAccount[];\n\t#walletName: string;\n\t#icon: WalletIcon;\n\t#connector?: UniversalConnector;\n\t#projectId: string;\n\t#getClient: GetClient;\n\n\tget name() {\n\t\treturn this.#walletName;\n\t}\n\n\tget id() {\n\t\treturn this.#id;\n\t}\n\n\tget icon() {\n\t\treturn this.#icon;\n\t}\n\n\tget version() {\n\t\treturn '1.0.0' as const;\n\t}\n\n\tget chains() {\n\t\treturn HANEUL_CHAINS;\n\t}\n\n\tget accounts() {\n\t\treturn this.#accounts;\n\t}\n\n\tget features(): StandardConnectFeature &\n\t\tStandardDisconnectFeature &\n\t\tStandardEventsFeature &\n\t\tHaneulSignTransactionFeature &\n\t\tHaneulSignPersonalMessageFeature &\n\t\tHaneulSignAndExecuteTransactionFeature {\n\t\treturn {\n\t\t\t[StandardConnect]: {\n\t\t\t\tversion: '1.0.0',\n\t\t\t\tconnect: this.#connect,\n\t\t\t},\n\t\t\t[StandardDisconnect]: {\n\t\t\t\tversion: '1.0.0',\n\t\t\t\tdisconnect: this.#disconnect,\n\t\t\t},\n\t\t\t[StandardEvents]: {\n\t\t\t\tversion: '1.0.0',\n\t\t\t\ton: this.#on,\n\t\t\t},\n\t\t\t[HaneulSignTransaction]: {\n\t\t\t\tversion: '2.0.0',\n\t\t\t\tsignTransaction: this.#signTransaction,\n\t\t\t},\n\t\t\t[HaneulSignPersonalMessage]: {\n\t\t\t\tversion: '1.1.0',\n\t\t\t\tsignPersonalMessage: this.#signPersonalMessage,\n\t\t\t},\n\t\t\t[HaneulSignAndExecuteTransaction]: {\n\t\t\t\tversion: '2.0.0',\n\t\t\t\tsignAndExecuteTransaction: this.#signAndExecuteTransaction,\n\t\t\t},\n\t\t};\n\t}\n\n\tconstructor({\n\t\tmetadata,\n\t\tprojectId,\n\t\tgetClient,\n\t}: {\n\t\tmetadata: WalletMetadata;\n\t\tprojectId: string;\n\t\tgetClient: GetClient;\n\t}) {\n\t\tthis.#id = metadata.id;\n\t\tthis.#accounts = [];\n\t\tthis.#events = mitt();\n\t\tthis.#walletName = metadata.walletName;\n\t\tthis.#icon = icon;\n\t\tthis.#projectId = projectId;\n\t\tthis.#getClient = getClient;\n\t\tthis.init();\n\t}\n\n\tasync init() {\n\t\tthis.#connector = await UniversalConnector.init({\n\t\t\tprojectId: this.#projectId,\n\n\t\t\t// TODO: Use dapp metadata\n\t\t\tmetadata: {\n\t\t\t\tname: this.#walletName,\n\t\t\t\tdescription: 'WalletConnect',\n\t\t\t\turl: 'https://walletconnect.org',\n\t\t\t\ticons: [this.#icon],\n\t\t\t},\n\t\t\tnetworks: [\n\t\t\t\t{\n\t\t\t\t\tnamespace: 'haneul',\n\t\t\t\t\tmethods: [\n\t\t\t\t\t\t'haneul_signTransaction',\n\t\t\t\t\t\t'haneul_signPersonalMessage',\n\t\t\t\t\t\t'haneul_signAndExecuteTransaction',\n\t\t\t\t\t\t'haneul_getAccounts',\n\t\t\t\t\t],\n\t\t\t\t\tevents: ['chainChanged', 'accountsChanged'],\n\t\t\t\t\tchains: HaneulCaipNetworks,\n\t\t\t\t},\n\t\t\t],\n\t\t\tmodalConfig: {\n\t\t\t\tthemeVariables: {\n\t\t\t\t\t'--w3m-z-index': 2147483647,\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\t\tthis.#accounts = await this.#getPreviouslyAuthorizedAccounts();\n\t}\n\n\t#signTransaction: HaneulSignTransactionMethod = async ({ transaction, account, chain }) => {\n\t\tconst tx = await transaction.toJSON();\n\n\t\tconst response = (await this.#connector?.request(\n\t\t\t{\n\t\t\t\tmethod: 'haneul_signTransaction',\n\t\t\t\tparams: {\n\t\t\t\t\ttransaction: tx,\n\t\t\t\t\taddress: account.address,\n\t\t\t\t},\n\t\t\t},\n\t\t\tchain,\n\t\t)) as { transactionBytes: string; signature: string };\n\n\t\treturn {\n\t\t\tbytes: response.transactionBytes,\n\t\t\tsignature: response.signature,\n\t\t};\n\t};\n\n\t#signAndExecuteTransaction: HaneulSignAndExecuteTransactionMethod = async ({\n\t\ttransaction,\n\t\taccount,\n\t\tchain,\n\t}) => {\n\t\tconst [, network] = chain.split(':');\n\t\tconst client = this.#getClient(network as SupportedNetwork);\n\t\tconst data = await transaction.toJSON();\n\t\tconst parsedTransaction = Transaction.from(data);\n\t\tconst bytes = await parsedTransaction.build({ client });\n\t\tconst response = (await this.#connector?.request(\n\t\t\t{\n\t\t\t\tmethod: 'haneul_signAndExecuteTransaction',\n\t\t\t\tparams: {\n\t\t\t\t\ttransaction: data,\n\t\t\t\t\taddress: account.address,\n\t\t\t\t},\n\t\t\t},\n\t\t\tchain,\n\t\t)) as { digest: string };\n\n\t\tconst tx = await client.core.waitForTransaction({\n\t\t\tdigest: response.digest,\n\t\t\tinclude: { effects: true },\n\t\t});\n\n\t\tconst result = tx.Transaction ?? tx.FailedTransaction;\n\n\t\treturn {\n\t\t\tdigest: response.digest,\n\t\t\tsignature: result.signatures[0] ?? '',\n\t\t\tbytes: toBase64(bytes),\n\t\t\teffects: result.effects?.bcs ? toBase64(result.effects.bcs) : '',\n\t\t};\n\t};\n\n\t#signPersonalMessage: HaneulSignPersonalMessageMethod = async ({ message, account, chain }) => {\n\t\tconst messageString = new TextDecoder().decode(message);\n\t\tconst response = (await this.#connector?.request(\n\t\t\t{\n\t\t\t\tmethod: 'haneul_signPersonalMessage',\n\t\t\t\tparams: {\n\t\t\t\t\tmessage: messageString,\n\t\t\t\t\taddress: account.address,\n\t\t\t\t},\n\t\t\t},\n\t\t\tchain ?? 'haneul:mainnet',\n\t\t)) as { signature: string };\n\n\t\treturn {\n\t\t\tsignature: response.signature,\n\t\t\tbytes: toBase64(message),\n\t\t};\n\t};\n\n\t#on: StandardEventsOnMethod = (event, listener) => {\n\t\tthis.#events.on(event, listener);\n\t\treturn () => this.#events.off(event, listener);\n\t};\n\n\t#setAccounts(accounts: ReadonlyWalletAccount[]) {\n\t\tthis.#accounts = accounts;\n\t\tthis.#events.emit('change', { accounts: this.accounts });\n\t}\n\n\t#getAccounts = async () => {\n\t\tlet accounts: { address: string; pubkey: string }[] | undefined = JSON.parse(\n\t\t\tthis.#connector?.provider?.session?.sessionProperties?.['haneul_getAccounts'] ?? '[]',\n\t\t);\n\n\t\tif (!accounts?.length) {\n\t\t\taccounts = (await this.#connector?.request({ method: 'haneul_getAccounts' }, 'haneul:mainnet')) as {\n\t\t\t\taddress: string;\n\t\t\t\tpubkey: string;\n\t\t\t}[];\n\t\t}\n\n\t\treturn toStandardAccounts(accounts, this.chains);\n\t};\n\n\t#connect: StandardConnectMethod = async (input) => {\n\t\tif (input?.silent) {\n\t\t\tconst accounts = await this.#getPreviouslyAuthorizedAccounts();\n\t\t\tif (accounts.length > 0) {\n\t\t\t\tthis.#setAccounts(accounts);\n\t\t\t\treturn { accounts };\n\t\t\t}\n\t\t}\n\n\t\tif (!this.#connector?.provider?.session?.namespaces?.haneul) {\n\t\t\tawait this.#connector?.connect();\n\t\t}\n\n\t\tconst accounts = await this.#getAccounts();\n\t\tthis.#setAccounts(accounts);\n\n\t\treturn { accounts: this.accounts };\n\t};\n\n\t#getPreviouslyAuthorizedAccounts = async () => {\n\t\tconst session = this.#connector?.provider?.session;\n\t\tif (!session?.namespaces?.haneul) {\n\t\t\treturn [];\n\t\t}\n\n\t\tconst accounts = JSON.parse(session.sessionProperties?.['haneul_getAccounts'] ?? '[]') as {\n\t\t\taddress: string;\n\t\t\tpubkey: string;\n\t\t}[];\n\n\t\treturn toStandardAccounts(accounts, HANEUL_CHAINS);\n\t};\n\n\t#disconnect: StandardDisconnectMethod = async () => {\n\t\tthis.#connector?.disconnect();\n\t\tthis.#setAccounts([]);\n\t};\n\n\tupdateMetadata(metadata: WalletMetadata) {\n\t\tthis.#id = metadata.id;\n\t\tthis.#walletName = metadata.walletName;\n\t}\n}\ntype RegisterWalletConnectWallet = {\n\tprojectId: string;\n\tgetClient: GetClient;\n\tmetadata?: WalletMetadata;\n};\n\nexport function registerWalletConnectWallet({\n\tprojectId,\n\tgetClient,\n\tmetadata,\n}: RegisterWalletConnectWallet) {\n\tconst wallets = getWallets();\n\n\tlet unregister: (() => void) | null = null;\n\n\t// listen for wallet registration\n\twallets.on('register', (wallet: Wallet) => {\n\t\tif (wallet.id === 'walletconnect') {\n\t\t\tunregister?.();\n\t\t}\n\t});\n\n\tconst extension = wallets.get().find((wallet: Wallet) => wallet.id === 'walletconnect');\n\tif (extension) {\n\t\treturn;\n\t}\n\n\tconst fullMetadata = {\n\t\tid: 'walletconnect',\n\t\twalletName: 'Wallet Connect',\n\t\ticon,\n\t\tenabled: true,\n\t\t...metadata,\n\t};\n\n\tconst walletConnectWalletInstance = new WalletConnectWallet({\n\t\tmetadata: fullMetadata,\n\t\tprojectId,\n\t\tgetClient,\n\t});\n\tunregister = wallets.register(walletConnectWalletInstance);\n\n\twalletConnectWalletInstance.updateMetadata({\n\t\t...fullMetadata,\n\t\tenabled: true,\n\t});\n\n\treturn {\n\t\twallet: walletConnectWalletInstance,\n\t\tunregister,\n\t};\n}\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,54 +1,55 @@
1
1
  {
2
- "name": "@haneullabs/walletconnect-wallet",
3
- "version": "0.1.0",
4
- "description": "Wallet adapter for WalletConnect on Sui",
5
- "license": "Apache-2.0",
6
- "author": "Haneul Labs <build@haneullabs.com>",
7
- "type": "commonjs",
8
- "main": "./dist/cjs/index.js",
9
- "module": "./dist/esm/index.js",
10
- "types": "./dist/cjs/index.d.ts",
11
- "exports": {
12
- ".": {
13
- "import": "./dist/esm/index.js",
14
- "require": "./dist/cjs/index.js"
15
- }
16
- },
17
- "sideEffects": false,
18
- "files": [
19
- "CHANGELOG.md",
20
- "dist"
21
- ],
22
- "repository": {
23
- "type": "git",
24
- "url": "git+https://github.com/GeunhwaJeong/haneul-ts-sdks.git"
25
- },
26
- "bugs": {
27
- "url": "https://github.com/haneullabs/ts-sdks/issues"
28
- },
29
- "homepage": "https://github.com/GeunhwaJeong/haneul-ts-sdks/tree/main/packages/walletconnect-wallet#readme",
30
- "devDependencies": {
31
- "@types/node": "^24.10.1",
32
- "typescript": "^5.9.3",
33
- "vitest": "^4.0.15",
34
- "@haneullabs/build-scripts": "0.1.0"
35
- },
36
- "dependencies": {
37
- "@reown/appkit-universal-connector": "1.8.14",
38
- "mitt": "^3.0.1",
39
- "valibot": "^1.2.0",
40
- "@haneullabs/haneul": "0.1.0",
41
- "@haneullabs/utils": "0.1.0",
42
- "@haneullabs/wallet-standard": "0.1.0"
43
- },
44
- "scripts": {
45
- "clean": "rm -rf tsconfig.tsbuildinfo ./dist",
46
- "build": "build-package",
47
- "prettier:check": "prettier -c --ignore-unknown .",
48
- "prettier:fix": "prettier -w --ignore-unknown .",
49
- "eslint:check": "eslint --max-warnings=0 .",
50
- "eslint:fix": "pnpm run eslint:check --fix",
51
- "lint": "pnpm run eslint:check && pnpm run prettier:check",
52
- "lint:fix": "pnpm run eslint:fix && pnpm run prettier:fix"
53
- }
54
- }
2
+ "name": "@haneullabs/walletconnect-wallet",
3
+ "version": "1.0.3",
4
+ "description": "Wallet adapter for WalletConnect on Haneul",
5
+ "license": "Apache-2.0",
6
+ "author": "Haneul Labs <build@haneul-labs.com>",
7
+ "type": "module",
8
+ "main": "./dist/index.mjs",
9
+ "types": "./dist/index.d.mts",
10
+ "exports": {
11
+ ".": {
12
+ "types": "./dist/index.d.mts",
13
+ "import": "./dist/index.mjs",
14
+ "default": "./dist/index.mjs"
15
+ }
16
+ },
17
+ "sideEffects": false,
18
+ "files": [
19
+ "CHANGELOG.md",
20
+ "dist"
21
+ ],
22
+ "scripts": {
23
+ "clean": "rm -rf tsconfig.tsbuildinfo ./dist",
24
+ "build": "rm -rf dist && tsc --noEmit && tsdown",
25
+ "prettier:check": "prettier -c --ignore-unknown .",
26
+ "prettier:fix": "prettier -w --ignore-unknown .",
27
+ "oxlint:check": "oxlint .",
28
+ "oxlint:fix": "oxlint --fix",
29
+ "lint": "pnpm run oxlint:check && pnpm run prettier:check",
30
+ "lint:fix": "pnpm run oxlint:fix && pnpm run prettier:fix"
31
+ },
32
+ "repository": {
33
+ "type": "git",
34
+ "url": "git+https://github.com/GeunhwaJeong/ts-sdks.git"
35
+ },
36
+ "bugs": {
37
+ "url": "https://github.com/mystenlabs/ts-sdks/issues"
38
+ },
39
+ "homepage": "https://github.com/GeunhwaJeong/ts-sdks/tree/main/packages/walletconnect-wallet#readme",
40
+ "devDependencies": {
41
+ "@haneullabs/haneul": "workspace:^",
42
+ "@types/node": "^25.0.8",
43
+ "typescript": "^5.9.3",
44
+ "vitest": "^4.0.17"
45
+ },
46
+ "dependencies": {
47
+ "@haneullabs/utils": "workspace:^",
48
+ "@haneullabs/wallet-standard": "workspace:^",
49
+ "@reown/appkit-universal-connector": "1.8.16",
50
+ "valibot": "^1.2.0"
51
+ },
52
+ "peerDependencies": {
53
+ "@haneullabs/haneul": "workspace:^"
54
+ }
55
+ }
@@ -1 +0,0 @@
1
- export { registerWalletConnectWallet, WalletConnectWallet, WALLETCONNECT_WALLET_NAME, type GetClient, } from './wallet/index.js';