@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 +11 -0
- package/dist/connector.d.ts +18 -0
- package/dist/connector.d.ts.map +1 -1
- package/dist/connector.js +19 -0
- package/dist/connector.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/register.d.ts +24 -0
- package/dist/register.d.ts.map +1 -0
- package/dist/register.js +39 -0
- package/dist/register.js.map +1 -0
- package/package.json +1 -1
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
|
package/dist/connector.d.ts
CHANGED
|
@@ -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;
|
package/dist/connector.d.ts.map
CHANGED
|
@@ -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;
|
|
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;
|
package/dist/connector.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connector.js","sourceRoot":"","sources":["../src/connector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAQzC,OAAO,EAAE,mBAAmB,EAA8B,MAAM,gBAAgB,CAAC;
|
|
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
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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"}
|
package/dist/register.js
ADDED
|
@@ -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.
|
|
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",
|