@chipi-stack/starknet-connector 0.1.0 → 0.1.1

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
@@ -66,6 +66,7 @@ new ChipiConnector({
66
66
  id: "chipi", // connector id
67
67
  name: "Connect with Chipi", // display name
68
68
  icon: "data:image/svg+xml;base64,...", // display icon
69
+ register: true, // self-register on window (default)
69
70
  });
70
71
  ```
71
72
 
@@ -75,6 +76,16 @@ new ChipiConnector({
75
76
  - `starknet` **>= 8.1.2** (peer) — `WalletAccount.connect` is identical across 8/9
76
77
  - **Starknet mainnet** (v1). The wallet is mainnet-only.
77
78
 
79
+ ## Discovery
80
+
81
+ Instantiating the connector also **self-registers** the wallet on `window`
82
+ (`window.starknet_chipi` + a `starknet:announceWallet` event — the get-starknet /
83
+ Starknet-Wallet-Standard discovery path), so dApps that *scan* for wallets find
84
+ "Connect with Chipi" even if they don't import this package — the same mechanism
85
+ Cartridge Controller uses. Pass `register: false` to opt out (e.g. to avoid a
86
+ duplicate entry in a picker that already lists the connector explicitly). It's a
87
+ no-op during SSR. You can also call `registerChipiWallet(swo)` directly.
88
+
78
89
  ## Notes / limits (v1)
79
90
 
80
91
  - **Popup-based** (external dApps). The in-app-browser ("parent") mode is in the
@@ -25,6 +25,15 @@ export interface ChipiConnectorOptions {
25
25
  name?: string;
26
26
  icon?: ConnectorIcons;
27
27
  transport?: ChipiTransportOptions;
28
+ /**
29
+ * Self-register the wallet on `window` (set `window.starknet_chipi` + announce
30
+ * via `starknet:announceWallet`) so dApps that *scan* for wallets — raw
31
+ * get-starknet / Wallet-Standard consumers that don't import this connector —
32
+ * also discover "Connect with Chipi". Defaults to `true` in a browser; pass
33
+ * `false` to opt out (e.g. to avoid a double entry in a picker that already
34
+ * lists the connector explicitly). No-op during SSR.
35
+ */
36
+ register?: boolean;
28
37
  }
29
38
  export declare class ChipiConnector extends Connector {
30
39
  private readonly transport;
@@ -33,7 +42,16 @@ export declare class ChipiConnector extends Connector {
33
42
  private readonly _icon;
34
43
  private _account;
35
44
  private _swo;
45
+ private _registration;
36
46
  constructor(options?: ChipiConnectorOptions);
47
+ /**
48
+ * Announce this wallet to scanning dApps (`window.starknet_chipi` +
49
+ * `starknet:announceWallet`). Called automatically from the constructor
50
+ * unless `register: false`. Idempotent and SSR-safe.
51
+ */
52
+ register(): void;
53
+ /** Undo {@link register} — remove the window object + announce listener. */
54
+ unregister(): void;
37
55
  get id(): string;
38
56
  get name(): string;
39
57
  get icon(): ConnectorIcons;
@@ -1 +1 @@
1
- {"version":3,"file":"connector.d.ts","sourceRoot":"","sources":["../src/connector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AACpE,OAAO,KAAK,EACV,UAAU,EACV,aAAa,EACb,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAuB,KAAK,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAIjF,KAAK,cAAc,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;AACnD,KAAK,aAAa,GAAG;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAU5D,MAAM,WAAW,qBAAqB;IACpC,0EAA0E;IAC1E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oEAAoE;IACpE,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,SAAS,CAAC,EAAE,qBAAqB,CAAC;CAInC;AAED,qBAAa,cAAe,SAAQ,SAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAsB;IAChD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAiB;IACvC,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,IAAI,CAAqC;gBAErC,OAAO,GAAE,qBAA0B;IAc/C,IAAI,EAAE,IAAI,MAAM,CAEf;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,IAAI,IAAI,cAAc,CAEzB;IAED,iEAAiE;IACjE,SAAS,IAAI,OAAO;IAIpB,+EAA+E;IACzE,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC;IAI/B,sEAAsE;IACtE,OAAO,CAAC,GAAG;IAsBL,OAAO,IAAI,OAAO,CAAC,aAAa,CAAC;IAWjC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAUjC,OAAO,CAAC,SAAS;IAIX,OAAO,CAAC,QAAQ,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAO/D,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;IAI1B,OAAO,CAAC,CAAC,SAAS,UAAU,CAAC,MAAM,CAAC,EACxC,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,GACrB,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;CAG7C"}
1
+ {"version":3,"file":"connector.d.ts","sourceRoot":"","sources":["../src/connector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AACpE,OAAO,KAAK,EACV,UAAU,EACV,aAAa,EACb,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAuB,KAAK,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAKjF,KAAK,cAAc,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;AACnD,KAAK,aAAa,GAAG;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAU5D,MAAM,WAAW,qBAAqB;IACpC,0EAA0E;IAC1E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oEAAoE;IACpE,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,SAAS,CAAC,EAAE,qBAAqB,CAAC;IAClC;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CAIpB;AAED,qBAAa,cAAe,SAAQ,SAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAsB;IAChD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAiB;IACvC,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,IAAI,CAAqC;IACjD,OAAO,CAAC,aAAa,CAAkC;gBAE3C,OAAO,GAAE,qBAA0B;IAe/C;;;;OAIG;IACH,QAAQ,IAAI,IAAI;IAKhB,4EAA4E;IAC5E,UAAU,IAAI,IAAI;IAKlB,IAAI,EAAE,IAAI,MAAM,CAEf;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,IAAI,IAAI,cAAc,CAEzB;IAED,iEAAiE;IACjE,SAAS,IAAI,OAAO;IAIpB,+EAA+E;IACzE,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC;IAI/B,sEAAsE;IACtE,OAAO,CAAC,GAAG;IAsBL,OAAO,IAAI,OAAO,CAAC,aAAa,CAAC;IAWjC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAUjC,OAAO,CAAC,SAAS;IAIX,OAAO,CAAC,QAAQ,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAO/D,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;IAI1B,OAAO,CAAC,CAAC,SAAS,UAAU,CAAC,MAAM,CAAC,EACxC,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,GACrB,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;CAG7C"}
package/dist/connector.js CHANGED
@@ -11,6 +11,7 @@
11
11
  import { Connector } from "@starknet-react/core";
12
12
  import { WalletAccount } from "starknet";
13
13
  import { ChipiPopupTransport } from "./transport.js";
14
+ import { registerChipiWallet } from "./register.js";
14
15
  /** Starknet mainnet chain id (felt of the shortstring "SN_MAIN"). */
15
16
  const SN_MAIN = BigInt("0x534e5f4d41494e");
16
17
  // A tiny neobrutalist "C" mark (precomputed data URI); swap for the real Chipi
@@ -21,6 +22,7 @@ export class ChipiConnector extends Connector {
21
22
  super();
22
23
  this._account = null;
23
24
  this._swo = null;
25
+ this._registration = null;
24
26
  const walletUrl = options.walletUrl ?? options.transport?.walletUrl ?? "https://connect.chipipay.com";
25
27
  this.transport = new ChipiPopupTransport({
26
28
  ...options.transport,
@@ -30,6 +32,23 @@ export class ChipiConnector extends Connector {
30
32
  this._id = options.id ?? "chipi";
31
33
  this._name = options.name ?? "Connect with Chipi";
32
34
  this._icon = options.icon ?? CHIPI_ICON;
35
+ if (options.register !== false)
36
+ this.register();
37
+ }
38
+ /**
39
+ * Announce this wallet to scanning dApps (`window.starknet_chipi` +
40
+ * `starknet:announceWallet`). Called automatically from the constructor
41
+ * unless `register: false`. Idempotent and SSR-safe.
42
+ */
43
+ register() {
44
+ if (this._registration)
45
+ return;
46
+ this._registration = registerChipiWallet(this.swo());
47
+ }
48
+ /** Undo {@link register} — remove the window object + announce listener. */
49
+ unregister() {
50
+ this._registration?.dispose();
51
+ this._registration = null;
33
52
  }
34
53
  get id() {
35
54
  return this._id;
@@ -1 +1 @@
1
- {"version":3,"file":"connector.js","sourceRoot":"","sources":["../src/connector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connector.js","sourceRoot":"","sources":["../src/connector.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -2,6 +2,8 @@ export { ChipiConnector } from "./connector.js";
2
2
  export type { ChipiConnectorOptions } from "./connector.js";
3
3
  export { ChipiPopupTransport } from "./transport.js";
4
4
  export type { ChipiTransportOptions } from "./transport.js";
5
+ export { registerChipiWallet, CHIPI_WINDOW_KEY } from "./register.js";
6
+ export type { ChipiRegistration } from "./register.js";
5
7
  export { CHIPI_WC, isChipiWalletMessage, isChipiDappMessage } from "./protocol.js";
6
8
  export type { ChipiRpcCall, ChipiReadyMessage, ChipiRpcRequestMessage, ChipiRpcResultMessage, ChipiEventMessage, ChipiWalletMessage, ChipiDappMessage, } from "./protocol.js";
7
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,YAAY,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,YAAY,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnF,YAAY,EACV,YAAY,EACZ,iBAAiB,EACjB,sBAAsB,EACtB,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,YAAY,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,YAAY,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtE,YAAY,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnF,YAAY,EACV,YAAY,EACZ,iBAAiB,EACjB,sBAAsB,EACtB,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,eAAe,CAAC"}
package/dist/index.js CHANGED
@@ -7,5 +7,6 @@
7
7
  //
8
8
  export { ChipiConnector } from "./connector.js";
9
9
  export { ChipiPopupTransport } from "./transport.js";
10
+ export { registerChipiWallet, CHIPI_WINDOW_KEY } from "./register.js";
10
11
  export { CHIPI_WC, isChipiWalletMessage, isChipiDappMessage } from "./protocol.js";
11
12
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,sEAAsE;AACtE,iBAAiB;AACjB,EAAE;AACF,sEAAsE;AACtE,8EAA8E;AAC9E,EAAE;AACF,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAErD,OAAO,EAAE,QAAQ,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,sEAAsE;AACtE,iBAAiB;AACjB,EAAE;AACF,sEAAsE;AACtE,8EAA8E;AAC9E,EAAE;AACF,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAErD,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEtE,OAAO,EAAE,QAAQ,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,24 @@
1
+ import type { StarknetWindowObject } from "@starknet-io/types-js";
2
+ /** Window key get-starknet discovers by scanning for `starknet*` properties. */
3
+ export declare const CHIPI_WINDOW_KEY = "starknet_chipi";
4
+ export interface ChipiRegistration {
5
+ /** Remove `window.starknet_chipi` + the announce listener. */
6
+ dispose: () => void;
7
+ }
8
+ /**
9
+ * Make a Chipi `StarknetWindowObject` discoverable to any get-starknet /
10
+ * starknet-react / starknetkit dApp on the page — WITHOUT an upstream PR. This
11
+ * is the same self-registration trick Cartridge Controller uses; it covers the
12
+ * apps that scan for wallets rather than importing our connector explicitly.
13
+ *
14
+ * Discovery is announced two ways for maximum reach:
15
+ * 1. **window scan** — set `window.starknet_chipi`. get-starknet v4's
16
+ * `getAvailableWallets()` finds every `window` key starting with `starknet`.
17
+ * 2. **event announce** — dispatch `starknet:announceWallet` now and again on
18
+ * the dApp's `starknet:requestWallets` (the EIP-6963-style, timing-robust
19
+ * Starknet Wallet Standard discovery path).
20
+ *
21
+ * SSR-safe (no-ops when there's no `window`) and idempotent per (target, wallet).
22
+ */
23
+ export declare function registerChipiWallet(wallet: StarknetWindowObject, target?: (Window & typeof globalThis) | undefined): ChipiRegistration;
24
+ //# sourceMappingURL=register.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../src/register.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAElE,gFAAgF;AAChF,eAAO,MAAM,gBAAgB,mBAAmB,CAAC;AAEjD,MAAM,WAAW,iBAAiB;IAChC,8DAA8D;IAC9D,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,oBAAoB,EAC5B,MAAM,GAAE,CAAC,MAAM,GAAG,OAAO,UAAU,CAAC,GAAG,SAE1B,GACZ,iBAAiB,CAoBnB"}
@@ -0,0 +1,39 @@
1
+ /** Window key get-starknet discovers by scanning for `starknet*` properties. */
2
+ export const CHIPI_WINDOW_KEY = "starknet_chipi";
3
+ /**
4
+ * Make a Chipi `StarknetWindowObject` discoverable to any get-starknet /
5
+ * starknet-react / starknetkit dApp on the page — WITHOUT an upstream PR. This
6
+ * is the same self-registration trick Cartridge Controller uses; it covers the
7
+ * apps that scan for wallets rather than importing our connector explicitly.
8
+ *
9
+ * Discovery is announced two ways for maximum reach:
10
+ * 1. **window scan** — set `window.starknet_chipi`. get-starknet v4's
11
+ * `getAvailableWallets()` finds every `window` key starting with `starknet`.
12
+ * 2. **event announce** — dispatch `starknet:announceWallet` now and again on
13
+ * the dApp's `starknet:requestWallets` (the EIP-6963-style, timing-robust
14
+ * Starknet Wallet Standard discovery path).
15
+ *
16
+ * SSR-safe (no-ops when there's no `window`) and idempotent per (target, wallet).
17
+ */
18
+ export function registerChipiWallet(wallet, target = typeof window !== "undefined"
19
+ ? window
20
+ : undefined) {
21
+ if (!target)
22
+ return { dispose: () => { } };
23
+ const store = target;
24
+ // 1. Classic window-scan discovery.
25
+ store[CHIPI_WINDOW_KEY] = wallet;
26
+ // 2. Event-based discovery (announce now + whenever a dApp asks).
27
+ const announce = () => target.dispatchEvent(new CustomEvent("starknet:announceWallet", { detail: wallet }));
28
+ target.addEventListener("starknet:requestWallets", announce);
29
+ announce();
30
+ return {
31
+ dispose: () => {
32
+ target.removeEventListener("starknet:requestWallets", announce);
33
+ // Only remove our own object — never clobber a newer injector's wallet.
34
+ if (store[CHIPI_WINDOW_KEY] === wallet)
35
+ delete store[CHIPI_WINDOW_KEY];
36
+ },
37
+ };
38
+ }
39
+ //# sourceMappingURL=register.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register.js","sourceRoot":"","sources":["../src/register.ts"],"names":[],"mappings":"AAEA,gFAAgF;AAChF,MAAM,CAAC,MAAM,gBAAgB,GAAG,gBAAgB,CAAC;AAOjD;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,mBAAmB,CACjC,MAA4B,EAC5B,SAAmD,OAAO,MAAM,KAAK,WAAW;IAC9E,CAAC,CAAC,MAAM;IACR,CAAC,CAAC,SAAS;IAEb,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,CAAC;IAE1C,MAAM,KAAK,GAAG,MAA4C,CAAC;IAC3D,oCAAoC;IACpC,KAAK,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAAC;IAEjC,kEAAkE;IAClE,MAAM,QAAQ,GAAG,GAAG,EAAE,CACpB,MAAM,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,yBAAyB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IACvF,MAAM,CAAC,gBAAgB,CAAC,yBAAyB,EAAE,QAAQ,CAAC,CAAC;IAC7D,QAAQ,EAAE,CAAC;IAEX,OAAO;QACL,OAAO,EAAE,GAAG,EAAE;YACZ,MAAM,CAAC,mBAAmB,CAAC,yBAAyB,EAAE,QAAQ,CAAC,CAAC;YAChE,wEAAwE;YACxE,IAAI,KAAK,CAAC,gBAAgB,CAAC,KAAK,MAAM;gBAAE,OAAO,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACzE,CAAC;KACF,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chipi-stack/starknet-connector",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "\"Connect with Chipi\" — a starknet-react / get-starknet connector that lets any Starknet dApp connect to a Chipi hosted smart-account wallet (passkey, gasless). No browser extension, no WalletConnect.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",