@tuwaio/sdk 0.0.9 → 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
@@ -11,17 +11,21 @@ The **Layer 8 (L8)** Core Umbrella SDK for the TUWA Ecosystem. It provides a uni
11
11
 
12
12
  `@tuwaio/sdk` is **Layer 8 (L8)** of the TUWA ecosystem architecture — the all-in-one UI and Logic foundation. Instead of manually resolving versions and importing from a dozen decoupled packages (`@tuwaio/pulsar-core`, `@tuwaio/nova-connect`, etc.), you install this single SDK and access clean, modular subpath exports.
13
13
 
14
- It abstracts away complex dependency management (automatically handling `zustand`, `framer-motion`, `radix-ui`, `siwe`, `iron-session`, etc.) and lets you focus on building your application.
14
+ It abstracts away complex dependency management (automatically handling `zustand`, `framer-motion`, `radix-ui`, etc.) and lets you focus on building your application.
15
15
 
16
16
  ---
17
17
 
18
18
  ## ✨ Key Features
19
19
 
20
- - **📦 Zero-Config Integration**: Combines Orbit (adapters), Pulsar (tracking), Satellite (connections), and Nova (UI) out of the box.
21
- - **⚡ Modular Subpath Imports**: Clean exports for each domain (e.g. `@tuwaio/sdk/pulsar`, `@tuwaio/sdk/satellite`, `@tuwaio/sdk/orbit`, `@tuwaio/sdk/nova-connect`).
20
+ - **📦 Zero-Config Integration**: Combines Orbit (adapters), Pulsar (tracking), Satellite (connections), Nova (UI), and SIWX (CAIP-122 Auth) out of the box.
21
+ - **⚡ Modular Subpath Imports**: Clean exports for each domain (e.g. `@tuwaio/sdk/pulsar`, `@tuwaio/sdk/satellite`, `@tuwaio/sdk/siwx`, `@tuwaio/sdk/nova-connect`).
22
+ - **🔐 Headless SIWX (CAIP-122) Auth**: Off-chain authentication across EVM and Solana with session management (`@tuwaio/sdk/siwx` and `@tuwaio/sdk/siwx/server`).
22
23
  - **🎨 Includes Nova UI & Styles**: Access beautifully styled wallet connection modals and transaction toasts with simple CSS imports (`@import '@tuwaio/sdk/styles/all.css'`).
23
24
  - **🛡️ Strict Singleton Contexts**: Uses intelligent peer dependencies to ensure you never run into multiple instances of React or Web3 singletons.
24
25
 
26
+ > [!WARNING]
27
+ > **SIWE Deprecation Notice**: Legacy SIWE authorization flows in Satellite are **deprecated**. Use `@tuwaio/sdk/siwx` and `@tuwaio/sdk/siwx/server` for multi-chain CAIP-122 authentication.
28
+
25
29
  ---
26
30
 
27
31
  ## 💾 Installation
@@ -155,28 +159,36 @@ Assembling the complete multi-chain ecosystem layout. Notice how both `EVMConnec
155
159
  // src/providers/AppProviders.tsx
156
160
  'use client';
157
161
 
158
- import { SatelliteConnectProvider } from '@tuwaio/sdk/satellite';
159
- import { NovaConnectProvider } from '@tuwaio/sdk/nova-connect';
160
- import { satelliteEVMAdapter } from '@tuwaio/evm-sdk/satellite';
161
- import { EVMConnectorsWatcher } from '@tuwaio/evm-sdk/nova-connect';
162
162
  import { satelliteSolanaAdapter } from '@tuwaio/solana-sdk/satellite';
163
163
  import { SolanaConnectorsWatcher } from '@tuwaio/solana-sdk/nova-connect';
164
+ import { useSiwx, useSiwxSession } from '@tuwaio/sdk/siwx';
165
+ import { isSafeApp, getAdapterFromConnectorType, OrbitAdapter } from '@tuwaio/sdk/orbit';
164
166
 
165
167
  import { appEVMChains, solanaRPCUrls, wagmiConfig } from '@/configs/appConfig';
166
- import { usePulsarStore } from '@/hooks/usePulsarStore';
168
+ import { usePulsarInMemoryStore, usePulsarStore } from '@/hooks/usePulsarStore';
167
169
  import { NovaTransactionsProvider } from '@/providers/NovaTransactionsProvider';
168
170
 
169
171
  export function AppProviders({ children }: { children: React.ReactNode }) {
170
172
  const getAdapter = usePulsarStore((state) => state.getAdapter);
171
173
  const transactionsPool = usePulsarStore((state) => state.transactionsPool);
172
174
 
175
+ const siwxSession = useSiwxSession();
176
+ const { signIn } = useSiwx();
177
+
173
178
  return (
174
179
  <SatelliteConnectProvider
175
180
  adapter={[satelliteEVMAdapter(wagmiConfig, appEVMChains), satelliteSolanaAdapter({ rpcUrls: solanaRPCUrls })]}
176
181
  autoConnect={true}
182
+ callbackAfterConnected={async (connection) => {
183
+ const isEVM = getAdapterFromConnectorType(connection.connectorType) === OrbitAdapter.EVM;
184
+ if (isEVM && isSafeApp) return;
185
+
186
+ // Trigger SIWX flow
187
+ await signIn();
188
+ }}
177
189
  >
178
- <EVMConnectorsWatcher wagmiConfig={wagmiConfig} />
179
- <SolanaConnectorsWatcher />
190
+ <EVMConnectorsWatcher wagmiConfig={wagmiConfig} siwx={siwxSession} />
191
+ <SolanaConnectorsWatcher siwx={siwxSession} />
180
192
 
181
193
  <NovaTransactionsProvider />
182
194
 
@@ -184,7 +196,7 @@ export function AppProviders({ children }: { children: React.ReactNode }) {
184
196
  appChains={appEVMChains}
185
197
  solanaRPCUrls={solanaRPCUrls}
186
198
  transactionPool={transactionsPool}
187
- pulsarAdapter={getAdapter() as any}
199
+ pulsarAdapter={getAdapter()}
188
200
  withImpersonated
189
201
  withBalance
190
202
  withChain
@@ -274,8 +286,9 @@ This package provides direct subpath entry points for clean, tree-shakeable impo
274
286
 
275
287
  - **`@tuwaio/sdk/pulsar`** — State machine & tracking stores (`createPulsarStore`, `createTxInMemoryStore`, `useInitializeTransactionsPool`).
276
288
  - **`@tuwaio/sdk/satellite`** — Wallet state & react hooks (`useSatelliteConnectStore`, `SatelliteConnectProvider`, `useAccount`).
277
- - **`@tuwaio/sdk/satellite/siwe`** — Client-side SIWE authentication utilities.
278
- - **`@tuwaio/sdk/satellite/siwe/server`** — Server-side SIWE API handler (`createSiweApiHandler`).
289
+ - **`@tuwaio/sdk/siwx`** — Client-side SIWX (CAIP-122) auto-authentication hooks.
290
+ - **`@tuwaio/sdk/siwx/core`** — SIWX core types, error handling, and message building logic.
291
+ - **`@tuwaio/sdk/siwx/server`** — Server-side SIWX session handlers.
279
292
  - **`@tuwaio/sdk/nova-connect`** — Connect UI main entry (`ConnectButton`, `NovaConnectProvider`).
280
293
  - **`@tuwaio/sdk/nova-connect/components`** — Standalone UI components (`ConnectButton`, Modals, Customization interfaces).
281
294
  - **`@tuwaio/sdk/nova-connect/hooks`** — Helper hooks (`useGetWalletNameAndAvatar`, `useWalletChainsList`).
@@ -9,7 +9,9 @@ import '@tuwaio/nova-transactions';
9
9
  import '@tuwaio/orbit-core';
10
10
  import '@tuwaio/pulsar-core';
11
11
  import '@tuwaio/pulsar-react';
12
- import '@tuwaio/satellite-siwe-next-auth/server';
13
- import '@tuwaio/satellite-siwe-next-auth';
14
12
  import '@tuwaio/satellite-core';
15
13
  import '@tuwaio/satellite-react';
14
+ import '@tuwaio/siwx-core';
15
+ import '@tuwaio/siwx-server/next';
16
+ import '@tuwaio/siwx-server';
17
+ import '@tuwaio/siwx-react';
@@ -9,7 +9,9 @@ import '@tuwaio/nova-transactions';
9
9
  import '@tuwaio/orbit-core';
10
10
  import '@tuwaio/pulsar-core';
11
11
  import '@tuwaio/pulsar-react';
12
- import '@tuwaio/satellite-siwe-next-auth/server';
13
- import '@tuwaio/satellite-siwe-next-auth';
14
12
  import '@tuwaio/satellite-core';
15
13
  import '@tuwaio/satellite-react';
14
+ import '@tuwaio/siwx-core';
15
+ import '@tuwaio/siwx-server/next';
16
+ import '@tuwaio/siwx-server';
17
+ import '@tuwaio/siwx-react';
@@ -1 +1 @@
1
- 'use strict';var satelliteCore=require('@tuwaio/satellite-core'),satelliteReact=require('@tuwaio/satellite-react');Object.defineProperty(exports,"SatelliteConnectProvider",{enumerable:true,get:function(){return satelliteReact.SatelliteConnectProvider}});Object.defineProperty(exports,"SatelliteStoreContext",{enumerable:true,get:function(){return satelliteReact.SatelliteStoreContext}});Object.defineProperty(exports,"useInitializeAutoConnect",{enumerable:true,get:function(){return satelliteReact.useInitializeAutoConnect}});Object.defineProperty(exports,"useSatelliteConnectStore",{enumerable:true,get:function(){return satelliteReact.useSatelliteConnectStore}});Object.keys(satelliteCore).forEach(function(k){if(k!=='default'&&!Object.prototype.hasOwnProperty.call(exports,k))Object.defineProperty(exports,k,{enumerable:true,get:function(){return satelliteCore[k]}})});
1
+ 'use strict';require('@tuwaio/satellite-react/evm'),require('@tuwaio/satellite-react/solana');var satelliteCore=require('@tuwaio/satellite-core'),satelliteReact=require('@tuwaio/satellite-react');Object.defineProperty(exports,"SatelliteConnectProvider",{enumerable:true,get:function(){return satelliteReact.SatelliteConnectProvider}});Object.defineProperty(exports,"SatelliteStoreContext",{enumerable:true,get:function(){return satelliteReact.SatelliteStoreContext}});Object.defineProperty(exports,"useInitializeAutoConnect",{enumerable:true,get:function(){return satelliteReact.useInitializeAutoConnect}});Object.defineProperty(exports,"useSatelliteConnectStore",{enumerable:true,get:function(){return satelliteReact.useSatelliteConnectStore}});Object.keys(satelliteCore).forEach(function(k){if(k!=='default'&&!Object.prototype.hasOwnProperty.call(exports,k))Object.defineProperty(exports,k,{enumerable:true,get:function(){return satelliteCore[k]}})});
package/dist/satellite.js CHANGED
@@ -1 +1 @@
1
- export*from'@tuwaio/satellite-core';export{SatelliteConnectProvider,SatelliteStoreContext,useInitializeAutoConnect,useSatelliteConnectStore}from'@tuwaio/satellite-react';
1
+ import'@tuwaio/satellite-react/evm';import'@tuwaio/satellite-react/solana';export*from'@tuwaio/satellite-core';export{SatelliteConnectProvider,SatelliteStoreContext,useInitializeAutoConnect,useSatelliteConnectStore}from'@tuwaio/satellite-react';
@@ -0,0 +1 @@
1
+ 'use strict';var siwxCore=require('@tuwaio/siwx-core');Object.keys(siwxCore).forEach(function(k){if(k!=='default'&&!Object.prototype.hasOwnProperty.call(exports,k))Object.defineProperty(exports,k,{enumerable:true,get:function(){return siwxCore[k]}})});
@@ -0,0 +1 @@
1
+ export * from '@tuwaio/siwx-core';
@@ -0,0 +1 @@
1
+ export * from '@tuwaio/siwx-core';
@@ -0,0 +1 @@
1
+ export*from'@tuwaio/siwx-core';
@@ -0,0 +1 @@
1
+ 'use strict';var next=require('@tuwaio/siwx-server/next');Object.keys(next).forEach(function(k){if(k!=='default'&&!Object.prototype.hasOwnProperty.call(exports,k))Object.defineProperty(exports,k,{enumerable:true,get:function(){return next[k]}})});
@@ -0,0 +1 @@
1
+ export * from '@tuwaio/siwx-server/next';
@@ -0,0 +1 @@
1
+ export * from '@tuwaio/siwx-server/next';
@@ -0,0 +1 @@
1
+ export*from'@tuwaio/siwx-server/next';
@@ -0,0 +1 @@
1
+ 'use strict';var siwxServer=require('@tuwaio/siwx-server');Object.keys(siwxServer).forEach(function(k){if(k!=='default'&&!Object.prototype.hasOwnProperty.call(exports,k))Object.defineProperty(exports,k,{enumerable:true,get:function(){return siwxServer[k]}})});
@@ -0,0 +1 @@
1
+ export * from '@tuwaio/siwx-server';
@@ -0,0 +1 @@
1
+ export * from '@tuwaio/siwx-server';
@@ -0,0 +1 @@
1
+ export*from'@tuwaio/siwx-server';
package/dist/siwx.cjs ADDED
@@ -0,0 +1 @@
1
+ 'use strict';var siwxReact=require('@tuwaio/siwx-react');Object.keys(siwxReact).forEach(function(k){if(k!=='default'&&!Object.prototype.hasOwnProperty.call(exports,k))Object.defineProperty(exports,k,{enumerable:true,get:function(){return siwxReact[k]}})});
@@ -0,0 +1 @@
1
+ export * from '@tuwaio/siwx-react';
package/dist/siwx.d.ts ADDED
@@ -0,0 +1 @@
1
+ export * from '@tuwaio/siwx-react';
package/dist/siwx.js ADDED
@@ -0,0 +1 @@
1
+ export*from'@tuwaio/siwx-react';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tuwaio/sdk",
3
- "version": "0.0.9",
3
+ "version": "0.1.1",
4
4
  "private": false,
5
5
  "author": "Oleksandr Tkach",
6
6
  "license": "Apache-2.0",
@@ -17,16 +17,6 @@
17
17
  "import": "./dist/satellite.js",
18
18
  "require": "./dist/satellite.cjs"
19
19
  },
20
- "./satellite/siwe": {
21
- "types": "./dist/satellite-siwe.d.ts",
22
- "import": "./dist/satellite-siwe.js",
23
- "require": "./dist/satellite-siwe.cjs"
24
- },
25
- "./satellite/siwe/server": {
26
- "types": "./dist/satellite-siwe-server.d.ts",
27
- "import": "./dist/satellite-siwe-server.js",
28
- "require": "./dist/satellite-siwe-server.cjs"
29
- },
30
20
  "./nova-connect": {
31
21
  "types": "./dist/nova-connect.d.ts",
32
22
  "import": "./dist/nova-connect.js",
@@ -75,7 +65,27 @@
75
65
  "./styles/nova-core.css": "./dist/styles/nova-core.css",
76
66
  "./styles/nova-transactions.css": "./dist/styles/nova-transactions.css",
77
67
  "./styles/nova-connect.css": "./dist/styles/nova-connect.css",
78
- "./styles/all.css": "./dist/styles/all.css"
68
+ "./styles/all.css": "./dist/styles/all.css",
69
+ "./siwx": {
70
+ "types": "./dist/siwx.d.ts",
71
+ "import": "./dist/siwx.js",
72
+ "require": "./dist/siwx.cjs"
73
+ },
74
+ "./siwx/core": {
75
+ "types": "./dist/siwx-core.d.ts",
76
+ "import": "./dist/siwx-core.js",
77
+ "require": "./dist/siwx-core.cjs"
78
+ },
79
+ "./siwx/server": {
80
+ "types": "./dist/siwx-server.d.ts",
81
+ "import": "./dist/siwx-server.js",
82
+ "require": "./dist/siwx-server.cjs"
83
+ },
84
+ "./siwx/server-next": {
85
+ "types": "./dist/siwx-server-next.d.ts",
86
+ "import": "./dist/siwx-server-next.js",
87
+ "require": "./dist/siwx-server-next.cjs"
88
+ }
79
89
  },
80
90
  "publishConfig": {
81
91
  "access": "public"
@@ -120,11 +130,10 @@
120
130
  "quasar",
121
131
  "cloud",
122
132
  "sdk",
123
- "siwe",
124
- "next-auth",
125
133
  "cosmos",
126
134
  "playground",
127
- "cli"
135
+ "cli",
136
+ "siwx"
128
137
  ],
129
138
  "repository": {
130
139
  "type": "git",
@@ -146,25 +155,25 @@
146
155
  "@heroicons/react": "^2.2.0",
147
156
  "@radix-ui/react-dialog": "^1.1.23",
148
157
  "@radix-ui/react-select": "^2.3.7",
149
- "@tuwaio/nova-connect": "^0.4.12",
150
- "@tuwaio/nova-core": "^0.4.11",
151
- "@tuwaio/nova-transactions": "^0.4.13",
158
+ "@tuwaio/nova-connect": "^0.5.0",
159
+ "@tuwaio/nova-core": "^0.5.0",
160
+ "@tuwaio/nova-transactions": "^0.5.0",
152
161
  "@tuwaio/orbit-core": "^0.2.15",
153
- "@tuwaio/pulsar-core": "^0.6.10",
154
- "@tuwaio/pulsar-react": "^0.4.8",
155
- "@tuwaio/satellite-core": "^0.3.8",
156
- "@tuwaio/satellite-react": "^0.3.11",
157
- "@tuwaio/satellite-siwe-next-auth": "^0.3.11",
162
+ "@tuwaio/pulsar-core": "^0.6.11",
163
+ "@tuwaio/pulsar-react": "^0.4.9",
164
+ "@tuwaio/satellite-core": "^0.4.1",
165
+ "@tuwaio/satellite-react": "^0.4.1",
166
+ "@tuwaio/siwx-core": "^0.1.0",
167
+ "@tuwaio/siwx-react": "^0.1.0",
168
+ "@tuwaio/siwx-server": "^0.1.0",
158
169
  "@web3icons/common": "^0.11.49",
159
170
  "@web3icons/react": "^4.1.20",
160
171
  "clsx": "^2.1.1",
161
172
  "dayjs": "^1.11.21",
162
173
  "ethereum-blockies-base64": "^1.0.2",
163
- "framer-motion": "^12.43.0",
164
- "immer": "^11.1.15",
165
- "iron-session": "^8.0.4",
174
+ "framer-motion": "^13.0.0",
175
+ "immer": "^11.1.16",
166
176
  "react-toastify": "^11.1.0",
167
- "siwe": "^3.0.0",
168
177
  "tailwind-merge": "^3.6.0",
169
178
  "zustand": "^5.0.14"
170
179
  },
@@ -1 +0,0 @@
1
- 'use strict';var server=require('@tuwaio/satellite-siwe-next-auth/server');Object.keys(server).forEach(function(k){if(k!=='default'&&!Object.prototype.hasOwnProperty.call(exports,k))Object.defineProperty(exports,k,{enumerable:true,get:function(){return server[k]}})});
@@ -1 +0,0 @@
1
- export * from '@tuwaio/satellite-siwe-next-auth/server';
@@ -1 +0,0 @@
1
- export * from '@tuwaio/satellite-siwe-next-auth/server';
@@ -1 +0,0 @@
1
- export*from'@tuwaio/satellite-siwe-next-auth/server';
@@ -1 +0,0 @@
1
- 'use strict';var satelliteSiweNextAuth=require('@tuwaio/satellite-siwe-next-auth');Object.keys(satelliteSiweNextAuth).forEach(function(k){if(k!=='default'&&!Object.prototype.hasOwnProperty.call(exports,k))Object.defineProperty(exports,k,{enumerable:true,get:function(){return satelliteSiweNextAuth[k]}})});
@@ -1 +0,0 @@
1
- export * from '@tuwaio/satellite-siwe-next-auth';
@@ -1 +0,0 @@
1
- export * from '@tuwaio/satellite-siwe-next-auth';
@@ -1 +0,0 @@
1
- export*from'@tuwaio/satellite-siwe-next-auth';