sats-connect 4.2.1 → 4.3.0-0a6bd22

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 CHANGED
@@ -58,6 +58,10 @@ await request('sendTransfer', {...});
58
58
  await Wallet.disconnect();
59
59
  ```
60
60
 
61
+ ### SIP-030 network discovery and listeners
62
+
63
+ The default `Wallet` object supports `Wallet.request('stx_getNetworks', null)` and synchronous `Wallet.listen(event, callback)` subscriptions for `stx_networkChange` and `stx_accountChange`. The named Core APIs are also re-exported. See [SIP-030 listener usage and rollout](SIP030_LISTENERS.md) for provider selection, cleanup, compatibility and Xverse's deliberate Gaia placeholder policy.
64
+
61
65
  ## 💻 Development
62
66
  ### Build the package
63
67
  ```bash
package/dist/index.d.mts CHANGED
@@ -1,4 +1,4 @@
1
- import { SupportedWallet, Requests, Params, RpcResult, AddListener } from '@sats-connect/core';
1
+ import { SupportedWallet, Method, RpcRequestParams, RequestReturn, Listen, AddListener } from '@sats-connect/core';
2
2
  export * from '@sats-connect/core';
3
3
  import { Config } from '@sats-connect/ui';
4
4
 
@@ -10,7 +10,9 @@ declare class Wallet {
10
10
  setCreateCustomConfig(createCustomConfig: (providers: SupportedWallet[]) => Config): void;
11
11
  selectProvider(): Promise<void>;
12
12
  disconnect(): Promise<void>;
13
- request<Method extends keyof Requests>(method: Method, params: Params<Method>): Promise<RpcResult<Method>>;
13
+ request<M extends Method>(method: M, params: RpcRequestParams<M>): Promise<RequestReturn<M>>;
14
+ /** SIP-030 subscriptions never open selection/approval UI or change legacy listeners. */
15
+ listen: Listen;
14
16
  addListener: AddListener;
15
17
  }
16
18
 
package/dist/index.mjs CHANGED
@@ -5,6 +5,7 @@ import {
5
5
  defaultAdapters,
6
6
  getDefaultProvider,
7
7
  getSupportedWallets,
8
+ listen as listenProvider,
8
9
  removeDefaultProvider,
9
10
  setDefaultProvider
10
11
  } from "@sats-connect/core";
@@ -84,6 +85,18 @@ var Wallet = class {
84
85
  }
85
86
  return response;
86
87
  }
88
+ /** SIP-030 subscriptions never open selection/approval UI or change legacy listeners. */
89
+ listen = (event, callback) => {
90
+ const providerId = this.providerId ?? getDefaultProvider();
91
+ if (!providerId) {
92
+ throw new Error("Select a wallet provider before registering SIP-030 listeners.");
93
+ }
94
+ this.providerId = providerId;
95
+ const Adapter = this.defaultAdapters[providerId];
96
+ const adapter = Adapter ? new Adapter() : void 0;
97
+ if (adapter?.listen) return adapter.listen(event, callback);
98
+ return listenProvider(event, callback, providerId);
99
+ };
87
100
  addListener = (...rawArgs) => {
88
101
  const listenerInfo = (() => {
89
102
  if (rawArgs.length === 1) return rawArgs[0];
package/package.json CHANGED
@@ -1,12 +1,14 @@
1
1
  {
2
2
  "name": "sats-connect",
3
- "version": "4.2.1",
3
+ "version": "4.3.0-0a6bd22",
4
4
  "main": "dist/index.mjs",
5
5
  "files": [
6
6
  "dist"
7
7
  ],
8
8
  "scripts": {
9
9
  "test": "jest",
10
+ "test:listeners": "npm run build && node --test tests/listeners.test.mjs",
11
+ "check-types": "tsc --noEmit && tsc --noEmit -p tests/tsconfig.json",
10
12
  "build": "npm run clean && tsup src/index.ts --format esm --dts",
11
13
  "build:watch": "npm run clean && tsup src/index.ts --format esm --dts --watch",
12
14
  "dev:build": "tsup src/index.ts --format esm --dts --watch",
@@ -24,10 +26,10 @@
24
26
  ]
25
27
  },
26
28
  "dependencies": {
27
- "@sats-connect/core": "0.10.0",
29
+ "@sats-connect/core": "0.19.0-d1718be",
28
30
  "@sats-connect/make-default-provider-config": "0.0.10",
29
31
  "@sats-connect/ui": "0.0.7",
30
- "valibot": "1.1.0"
32
+ "valibot": "1.2.0"
31
33
  },
32
34
  "devDependencies": {
33
35
  "husky": "9.1.7",