@secondlayer/stacks 0.0.3 → 0.0.4

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.
@@ -32,6 +32,19 @@ module.exports = __toCommonJS(exports_src);
32
32
 
33
33
  // src/clients/createClient.ts
34
34
  var BASE_KEYS = new Set(["chain", "account", "transport", "request", "extend"]);
35
+ function bindExtend(base) {
36
+ return (fn) => {
37
+ const extensions = fn(base);
38
+ const next = { ...base };
39
+ for (const [key, value] of Object.entries(extensions)) {
40
+ if (BASE_KEYS.has(key))
41
+ continue;
42
+ next[key] = value;
43
+ }
44
+ next.extend = bindExtend(next);
45
+ return next;
46
+ };
47
+ }
35
48
  function createClient(config) {
36
49
  const transport = config.transport({ chain: config.chain });
37
50
  const client = {
@@ -39,28 +52,9 @@ function createClient(config) {
39
52
  account: config.account,
40
53
  transport,
41
54
  request: transport.request,
42
- extend(fn) {
43
- const extensions = fn(client);
44
- const extended = { ...client };
45
- for (const [key, value] of Object.entries(extensions)) {
46
- if (BASE_KEYS.has(key))
47
- continue;
48
- extended[key] = value;
49
- }
50
- extended.extend = (nextFn) => {
51
- const nextExtensions = nextFn(extended);
52
- const next = { ...extended };
53
- for (const [key, value] of Object.entries(nextExtensions)) {
54
- if (BASE_KEYS.has(key))
55
- continue;
56
- next[key] = value;
57
- }
58
- next.extend = extended.extend;
59
- return next;
60
- };
61
- return extended;
62
- }
55
+ extend: null
63
56
  };
57
+ client.extend = bindExtend(client);
64
58
  return client;
65
59
  }
66
60
  // src/clients/decorators/public.ts
@@ -553,5 +547,5 @@ function webSocket(url, config) {
553
547
  };
554
548
  }
555
549
 
556
- //# debugId=2199EE0D4F7EBD2864756E2164756E21
550
+ //# debugId=14D412871FDC247A64756E2164756E21
557
551
  //# sourceMappingURL=index.cjs.map
@@ -2,7 +2,7 @@
2
2
  "version": 3,
3
3
  "sources": ["../src/clients/createClient.ts", "../src/clients/decorators/public.ts", "../src/clients/createPublicClient.ts", "../src/clients/decorators/wallet.ts", "../src/clients/createWalletClient.ts", "../src/clients/decorators/multisig.ts", "../src/clients/createMultiSigClient.ts", "../src/transports/createTransport.ts", "../src/transports/http.ts", "../src/transports/custom.ts", "../src/transports/fallback.ts", "../src/transports/webSocket.ts"],
4
4
  "sourcesContent": [
5
- "import type { Client, ClientConfig } from \"./types.ts\";\n\nconst BASE_KEYS = new Set([\"chain\", \"account\", \"transport\", \"request\", \"extend\"]);\n\n/**\n * Create a base client with transport and optional chain/account.\n * Use `.extend()` to compose action decorators (public, wallet, multisig).\n */\nexport function createClient<\n TExtended extends Record<string, unknown> = Record<string, unknown>,\n>(config: ClientConfig): Client<TExtended> {\n const transport = config.transport({ chain: config.chain });\n\n const client: Client = {\n chain: config.chain,\n account: config.account,\n transport,\n request: transport.request,\n extend(fn) {\n const extensions = fn(client);\n const extended = { ...client };\n\n for (const [key, value] of Object.entries(extensions)) {\n if (BASE_KEYS.has(key)) continue; // protect base properties\n (extended as any)[key] = value;\n }\n\n // re-bind extend so it chains\n extended.extend = (nextFn: any) => {\n const nextExtensions = nextFn(extended);\n const next = { ...extended };\n for (const [key, value] of Object.entries(nextExtensions)) {\n if (BASE_KEYS.has(key)) continue;\n (next as any)[key] = value;\n }\n next.extend = extended.extend;\n return next as any;\n };\n\n return extended as any;\n },\n };\n\n return client as Client<TExtended>;\n}\n",
5
+ "import type { Client, ClientConfig } from \"./types.ts\";\n\nconst BASE_KEYS = new Set([\"chain\", \"account\", \"transport\", \"request\", \"extend\"]);\n\nfunction bindExtend(base: Client): Client[\"extend\"] {\n return ((fn: any) => {\n const extensions = fn(base);\n const next = { ...base };\n for (const [key, value] of Object.entries(extensions)) {\n if (BASE_KEYS.has(key)) continue;\n (next as any)[key] = value;\n }\n next.extend = bindExtend(next);\n return next as any;\n }) as Client[\"extend\"];\n}\n\n/**\n * Create a base client with transport and optional chain/account.\n * Use `.extend()` to compose action decorators (public, wallet, multisig).\n */\nexport function createClient<\n TExtended extends Record<string, unknown> = Record<string, unknown>,\n>(config: ClientConfig): Client<TExtended> {\n const transport = config.transport({ chain: config.chain });\n\n const client: Client = {\n chain: config.chain,\n account: config.account,\n transport,\n request: transport.request,\n extend: null as any,\n };\n\n client.extend = bindExtend(client);\n\n return client as Client<TExtended>;\n}\n",
6
6
  "import type { Client } from \"../types.ts\";\nimport { getNonce, type GetNonceParams } from \"../../actions/public/getNonce.ts\";\nimport { getBalance, type GetBalanceParams } from \"../../actions/public/getBalance.ts\";\nimport { getAccountInfo, type GetAccountInfoParams, type AccountInfo } from \"../../actions/public/getAccountInfo.ts\";\nimport { getBlock, type GetBlockParams } from \"../../actions/public/getBlock.ts\";\nimport { getBlockHeight } from \"../../actions/public/getBlockHeight.ts\";\nimport { readContract, type ReadContractParams } from \"../../actions/public/readContract.ts\";\nimport { getContractAbi, type GetContractAbiParams } from \"../../actions/public/getContractAbi.ts\";\nimport { getMapEntry, type GetMapEntryParams } from \"../../actions/public/getMapEntry.ts\";\nimport { estimateFee, type EstimateFeeParams, type FeeEstimation } from \"../../actions/public/estimateFee.ts\";\nimport { multicall, type MulticallParams, type MulticallResult } from \"../../actions/public/multicall.ts\";\nimport { simulateCall, type SimulateCallParams, type SimulateCallResult } from \"../../actions/public/simulateCall.ts\";\nimport { simulateTransaction, type SimulateTransactionParams, type SimulateTransactionResult } from \"../../actions/public/simulateTransaction.ts\";\nimport type { ClarityValue } from \"../../clarity/types.ts\";\nimport type { Subscription } from \"../../subscriptions/types.ts\";\nimport {\n watchBlocks, type WatchBlocksParams,\n watchMempool, type WatchMempoolParams,\n watchTransaction, type WatchTransactionParams,\n watchAddress, type WatchAddressParams,\n watchAddressBalance, type WatchAddressBalanceParams,\n watchNftEvent, type WatchNftEventParams,\n} from \"../../subscriptions/actions.ts\";\n\n/** Read-only actions: balance queries, contract reads, block data, and event subscriptions. */\nexport type PublicActions = {\n getNonce: (params: GetNonceParams) => Promise<bigint>;\n getBalance: (params: GetBalanceParams) => Promise<bigint>;\n getAccountInfo: (params: GetAccountInfoParams) => Promise<AccountInfo>;\n getBlock: (params: GetBlockParams) => Promise<any>;\n getBlockHeight: () => Promise<number>;\n readContract: (params: ReadContractParams) => Promise<ClarityValue>;\n getContractAbi: (params: GetContractAbiParams) => Promise<any>;\n getMapEntry: (params: GetMapEntryParams) => Promise<ClarityValue>;\n estimateFee: (params: EstimateFeeParams) => Promise<FeeEstimation[]>;\n multicall: <T extends boolean = true>(params: MulticallParams<T>) => Promise<MulticallResult<T>>;\n simulateCall: (params: SimulateCallParams) => Promise<SimulateCallResult>;\n simulateTransaction: (params: SimulateTransactionParams) => Promise<SimulateTransactionResult>;\n watchBlocks: (params: WatchBlocksParams) => Promise<Subscription>;\n watchMempool: (params: WatchMempoolParams) => Promise<Subscription>;\n watchTransaction: (params: WatchTransactionParams) => Promise<Subscription>;\n watchAddress: (params: WatchAddressParams) => Promise<Subscription>;\n watchAddressBalance: (params: WatchAddressBalanceParams) => Promise<Subscription>;\n watchNftEvent: (params: WatchNftEventParams) => Promise<Subscription>;\n};\n\n/** Decorator that binds {@link PublicActions} to a client instance. */\nexport function publicActions(client: Client): PublicActions {\n return {\n getNonce: (params) => getNonce(client, params),\n getBalance: (params) => getBalance(client, params),\n getAccountInfo: (params) => getAccountInfo(client, params),\n getBlock: (params) => getBlock(client, params),\n getBlockHeight: () => getBlockHeight(client),\n readContract: (params) => readContract(client, params),\n getContractAbi: (params) => getContractAbi(client, params),\n getMapEntry: (params) => getMapEntry(client, params),\n estimateFee: (params) => estimateFee(client, params),\n multicall: (params) => multicall(client, params),\n simulateCall: (params) => simulateCall(client, params),\n simulateTransaction: (params) => simulateTransaction(client, params),\n watchBlocks: (params) => watchBlocks(client, params),\n watchMempool: (params) => watchMempool(client, params),\n watchTransaction: (params) => watchTransaction(client, params),\n watchAddress: (params) => watchAddress(client, params),\n watchAddressBalance: (params) => watchAddressBalance(client, params),\n watchNftEvent: (params) => watchNftEvent(client, params),\n };\n}\n",
7
7
  "import type { ClientConfig, Client } from \"./types.ts\";\nimport { createClient } from \"./createClient.ts\";\nimport { publicActions, type PublicActions } from \"./decorators/public.ts\";\n\n/** Configuration for {@link createPublicClient} (no account needed). */\nexport type PublicClientConfig = Omit<ClientConfig, \"account\">;\n\n/**\n * Create a read-only client pre-extended with {@link PublicActions}.\n * Use for queries, contract reads, and event subscriptions.\n */\nexport function createPublicClient(\n config: PublicClientConfig\n): Client<PublicActions> & PublicActions {\n return createClient(config).extend(publicActions);\n}\n",
8
8
  "import type { Client } from \"../types.ts\";\nimport { sendTransaction, type SendTransactionParams, type SendTransactionResult } from \"../../actions/wallet/sendTransaction.ts\";\nimport { signTransactionAction, type SignTransactionParams } from \"../../actions/wallet/signTransaction.ts\";\nimport { transferStx, type TransferStxParams } from \"../../actions/wallet/transferStx.ts\";\nimport { callContract, type CallContractParams } from \"../../actions/wallet/callContract.ts\";\nimport { deployContract, type DeployContractParams } from \"../../actions/wallet/deployContract.ts\";\nimport { signMessage, type SignMessageParams } from \"../../actions/wallet/signMessage.ts\";\nimport { sponsorTransaction, type SponsorTransactionParams } from \"../../actions/wallet/sponsorTransaction.ts\";\nimport type { StacksTransaction } from \"../../transactions/types.ts\";\n\n/** Signing actions: send transactions, transfer STX, call/deploy contracts, sign messages. */\nexport type WalletActions = {\n sendTransaction: (params: SendTransactionParams) => Promise<SendTransactionResult>;\n signTransaction: (params: SignTransactionParams) => Promise<StacksTransaction>;\n transferStx: (params: TransferStxParams) => Promise<string>;\n callContract: (params: CallContractParams) => Promise<string>;\n deployContract: (params: DeployContractParams) => Promise<string>;\n signMessage: (params: SignMessageParams) => Promise<string>;\n sponsorTransaction: (params: SponsorTransactionParams) => Promise<StacksTransaction>;\n};\n\n/** Decorator that binds {@link WalletActions} to a client instance. */\nexport function walletActions(client: Client): WalletActions {\n return {\n sendTransaction: (params) => sendTransaction(client, params),\n signTransaction: (params) => signTransactionAction(client, params),\n transferStx: (params) => transferStx(client, params),\n callContract: (params) => callContract(client, params),\n deployContract: (params) => deployContract(client, params),\n signMessage: (params) => signMessage(client, params),\n sponsorTransaction: (params) => sponsorTransaction(client, params),\n };\n}\n",
@@ -15,7 +15,7 @@
15
15
  "import type { TransportFactory } from \"./types.ts\";\nimport { createTransport } from \"./createTransport.ts\";\n\n/** Create a transport that tries each transport in order until one succeeds. */\nexport function fallback(transports: TransportFactory[]): TransportFactory {\n return (params) => {\n const resolved = transports.map((t) => t(params));\n\n return createTransport(\"fallback\", {\n request: async (path, options) => {\n let lastError: Error | undefined;\n for (const transport of resolved) {\n try {\n return await transport.request(path, options);\n } catch (error) {\n lastError =\n error instanceof Error ? error : new Error(String(error));\n }\n }\n throw lastError ?? new Error(\"All transports failed\");\n },\n });\n };\n}\n",
16
16
  "import type { StacksChain } from \"../chains/types.ts\";\nimport type { Transport, TransportConfig, TransportFactory } from \"./types.ts\";\nimport type { Subscription, WsSubscribeParams } from \"../subscriptions/types.ts\";\nimport { buildRequestFn } from \"./createTransport.ts\";\nimport { WebSocketError } from \"../errors/websocket.ts\";\n\n/** Configuration for the WebSocket transport, extending base {@link TransportConfig}. */\nexport type WebSocketTransportConfig = TransportConfig & {\n /** WebSocket URL (resolved from chain if omitted) */\n url?: string;\n /** Enable auto-reconnect (default: true) */\n reconnect?: boolean;\n /** Max reconnect attempts (default: 10) */\n reconnectMaxAttempts?: number;\n /** Base delay in ms for exponential backoff (default: 1000) */\n reconnectBaseDelay?: number;\n};\n\n/** Transport with WebSocket subscription capabilities and auto-reconnect. */\nexport type WebSocketTransport = Transport & {\n type: \"webSocket\";\n subscribe: (\n params: WsSubscribeParams,\n callback: (data: any) => void\n ) => Promise<Subscription>;\n destroy: () => void;\n};\n\ntype JsonRpcRequest = {\n jsonrpc: \"2.0\";\n id: number;\n method: string;\n params: Record<string, unknown>;\n};\n\ntype JsonRpcResponse = {\n jsonrpc: \"2.0\";\n id: number;\n result?: unknown;\n error?: { code: number; message: string };\n};\n\ntype JsonRpcNotification = {\n jsonrpc: \"2.0\";\n method: string;\n params: unknown;\n};\n\ntype SubEntry = {\n params: WsSubscribeParams;\n callbacks: Set<(data: any) => void>;\n};\n\nfunction subKey(params: WsSubscribeParams): string {\n const parts: string[] = [params.event];\n if (params.tx_id) parts.push(`tx_id:${params.tx_id}`);\n if (params.address) parts.push(`address:${params.address}`);\n if (params.asset_identifier)\n parts.push(`asset:${params.asset_identifier}`);\n if (params.value) parts.push(`value:${params.value}`);\n return parts.join(\"|\");\n}\n\nexport class WebSocketChannel {\n private ws: WebSocket | null = null;\n private url: string;\n private nextId = 1;\n private pending = new Map<\n number,\n { resolve: (v: unknown) => void; reject: (e: Error) => void }\n >();\n private subs = new Map<string, SubEntry>();\n private destroyed = false;\n private reconnecting = false;\n private reconnectAttempt = 0;\n private reconnectTimer: ReturnType<typeof setTimeout> | null = null;\n\n private reconnect: boolean;\n private reconnectMaxAttempts: number;\n private reconnectBaseDelay: number;\n\n constructor(url: string, config?: WebSocketTransportConfig) {\n this.url = url;\n this.reconnect = config?.reconnect ?? true;\n this.reconnectMaxAttempts = config?.reconnectMaxAttempts ?? 10;\n this.reconnectBaseDelay = config?.reconnectBaseDelay ?? 1000;\n }\n\n private connect(): Promise<void> {\n if (this.ws?.readyState === WebSocket.OPEN) return Promise.resolve();\n if (this.ws?.readyState === WebSocket.CONNECTING) {\n return new Promise((resolve, reject) => {\n const onOpen = () => {\n this.ws?.removeEventListener(\"error\", onError);\n resolve();\n };\n const onError = (e: Event) => {\n this.ws?.removeEventListener(\"open\", onOpen);\n reject(\n new WebSocketError(\"WebSocket connection failed\", {\n details: String(e),\n })\n );\n };\n this.ws!.addEventListener(\"open\", onOpen, { once: true });\n this.ws!.addEventListener(\"error\", onError, { once: true });\n });\n }\n\n return new Promise((resolve, reject) => {\n this.ws = new WebSocket(this.url);\n\n this.ws.addEventListener(\n \"open\",\n () => {\n this.reconnectAttempt = 0;\n this.reconnecting = false;\n resolve();\n },\n { once: true }\n );\n\n this.ws.addEventListener(\n \"error\",\n (e) => {\n reject(\n new WebSocketError(\"WebSocket connection failed\", {\n details: String(e),\n })\n );\n },\n { once: true }\n );\n\n this.ws.addEventListener(\"message\", (event) => {\n this.handleMessage(event.data);\n });\n\n this.ws.addEventListener(\"close\", () => {\n if (!this.destroyed) this.handleDisconnect();\n });\n });\n }\n\n private handleMessage(raw: string | ArrayBuffer | Blob) {\n const data =\n typeof raw === \"string\" ? raw : new TextDecoder().decode(raw as ArrayBuffer);\n\n let msg: JsonRpcResponse | JsonRpcNotification;\n try {\n msg = JSON.parse(data);\n } catch {\n return;\n }\n\n // RPC response\n if (\"id\" in msg && msg.id != null) {\n const rpc = msg as JsonRpcResponse;\n const p = this.pending.get(rpc.id);\n if (!p) return;\n this.pending.delete(rpc.id);\n if (rpc.error) {\n p.reject(\n new WebSocketError(rpc.error.message, {\n details: `JSON-RPC error ${rpc.error.code}`,\n })\n );\n } else {\n p.resolve(rpc.result);\n }\n return;\n }\n\n // Notification\n const notif = msg as JsonRpcNotification;\n if (!notif.method) return;\n\n for (const [, entry] of this.subs) {\n if (entry.params.event === notif.method) {\n for (const cb of entry.callbacks) {\n try {\n cb(notif.params);\n } catch {\n // subscriber error — don't crash channel\n }\n }\n }\n }\n }\n\n private handleDisconnect() {\n this.ws = null;\n\n // reject pending RPCs\n for (const [, p] of this.pending) {\n p.reject(new WebSocketError(\"WebSocket disconnected\"));\n }\n this.pending.clear();\n\n if (\n this.reconnect &&\n this.subs.size > 0 &&\n this.reconnectAttempt < this.reconnectMaxAttempts\n ) {\n this.scheduleReconnect();\n }\n }\n\n private scheduleReconnect() {\n if (this.destroyed || this.reconnecting) return;\n this.reconnecting = true;\n const delay = this.reconnectBaseDelay * 2 ** this.reconnectAttempt;\n this.reconnectAttempt++;\n\n this.reconnectTimer = setTimeout(async () => {\n this.reconnecting = false;\n try {\n await this.connect();\n await this.resubscribeAll();\n } catch {\n if (!this.destroyed && this.subs.size > 0) {\n this.handleDisconnect();\n }\n }\n }, delay);\n }\n\n private async resubscribeAll() {\n for (const [, entry] of this.subs) {\n await this.sendRpc(\"subscribe\", entry.params);\n }\n }\n\n private sendRpc(method: string, params: Record<string, unknown>): Promise<unknown> {\n return new Promise((resolve, reject) => {\n if (!this.ws || this.ws.readyState !== WebSocket.OPEN) {\n return reject(new WebSocketError(\"WebSocket not connected\"));\n }\n\n const id = this.nextId++;\n const msg: JsonRpcRequest = {\n jsonrpc: \"2.0\",\n id,\n method,\n params,\n };\n\n this.pending.set(id, { resolve, reject });\n this.ws.send(JSON.stringify(msg));\n });\n }\n\n async subscribe(\n params: WsSubscribeParams,\n callback: (data: any) => void\n ): Promise<Subscription> {\n if (this.destroyed) {\n throw new WebSocketError(\"WebSocket channel has been destroyed\");\n }\n\n await this.connect();\n\n const key = subKey(params);\n let entry = this.subs.get(key);\n\n if (entry) {\n // Dedup: reuse existing WS subscription\n entry.callbacks.add(callback);\n } else {\n // New WS subscription\n entry = { params, callbacks: new Set([callback]) };\n this.subs.set(key, entry);\n await this.sendRpc(\"subscribe\", params);\n }\n\n return {\n unsubscribe: () => {\n const e = this.subs.get(key);\n if (!e) return;\n e.callbacks.delete(callback);\n if (e.callbacks.size === 0) {\n this.subs.delete(key);\n // Best-effort unsubscribe RPC\n if (this.ws?.readyState === WebSocket.OPEN) {\n this.sendRpc(\"unsubscribe\", params).catch(() => {});\n }\n // Auto-close when no subscribers remain\n if (this.subs.size === 0) this.closeQuietly();\n }\n },\n };\n }\n\n private closeQuietly() {\n if (this.ws) {\n this.ws.close();\n this.ws = null;\n }\n }\n\n destroy() {\n this.destroyed = true;\n if (this.reconnectTimer) clearTimeout(this.reconnectTimer);\n\n for (const [, p] of this.pending) {\n p.reject(new WebSocketError(\"WebSocket channel destroyed\"));\n }\n this.pending.clear();\n this.subs.clear();\n\n if (this.ws) {\n this.ws.close();\n this.ws = null;\n }\n }\n}\n\nfunction deriveWsUrl(httpUrl: string): string {\n return httpUrl.replace(/^http/, \"ws\").replace(/\\/$/, \"\") + \"/extended/v1/ws\";\n}\n\n/**\n * Create a WebSocket transport for real-time Stacks event subscriptions.\n * HTTP requests use the resolved RPC URL; subscriptions use the WS endpoint.\n */\nexport function webSocket(\n url?: string,\n config?: WebSocketTransportConfig\n): TransportFactory {\n return (params) => {\n const httpUrl =\n config?.url ??\n params?.chain?.rpcUrls.default.http[0] ??\n \"http://localhost:3999\";\n\n const wsUrl =\n url ??\n params?.chain?.rpcUrls.default.ws?.[0] ??\n deriveWsUrl(httpUrl);\n\n const resolvedHttpConfig: TransportConfig = {\n ...config,\n url: httpUrl,\n };\n\n const channel = new WebSocketChannel(wsUrl, config);\n\n const transport: WebSocketTransport = {\n type: \"webSocket\",\n request: buildRequestFn(httpUrl, resolvedHttpConfig),\n config: resolvedHttpConfig,\n subscribe: (subParams, callback) =>\n channel.subscribe(subParams, callback),\n destroy: () => channel.destroy(),\n };\n\n return transport;\n };\n}\n"
17
17
  ],
18
- "mappings": "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",
19
- "debugId": "2199EE0D4F7EBD2864756E2164756E21",
18
+ "mappings": "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",
19
+ "debugId": "14D412871FDC247A64756E2164756E21",
20
20
  "names": []
21
21
  }
package/dist/src/index.js CHANGED
@@ -76,6 +76,19 @@ import {
76
76
 
77
77
  // src/clients/createClient.ts
78
78
  var BASE_KEYS = new Set(["chain", "account", "transport", "request", "extend"]);
79
+ function bindExtend(base) {
80
+ return (fn) => {
81
+ const extensions = fn(base);
82
+ const next = { ...base };
83
+ for (const [key, value] of Object.entries(extensions)) {
84
+ if (BASE_KEYS.has(key))
85
+ continue;
86
+ next[key] = value;
87
+ }
88
+ next.extend = bindExtend(next);
89
+ return next;
90
+ };
91
+ }
79
92
  function createClient(config) {
80
93
  const transport = config.transport({ chain: config.chain });
81
94
  const client = {
@@ -83,28 +96,9 @@ function createClient(config) {
83
96
  account: config.account,
84
97
  transport,
85
98
  request: transport.request,
86
- extend(fn) {
87
- const extensions = fn(client);
88
- const extended = { ...client };
89
- for (const [key, value] of Object.entries(extensions)) {
90
- if (BASE_KEYS.has(key))
91
- continue;
92
- extended[key] = value;
93
- }
94
- extended.extend = (nextFn) => {
95
- const nextExtensions = nextFn(extended);
96
- const next = { ...extended };
97
- for (const [key, value] of Object.entries(nextExtensions)) {
98
- if (BASE_KEYS.has(key))
99
- continue;
100
- next[key] = value;
101
- }
102
- next.extend = extended.extend;
103
- return next;
104
- };
105
- return extended;
106
- }
99
+ extend: null
107
100
  };
101
+ client.extend = bindExtend(client);
108
102
  return client;
109
103
  }
110
104
  // src/clients/decorators/public.ts
@@ -625,5 +619,5 @@ export {
625
619
  AddressVersion
626
620
  };
627
621
 
628
- //# debugId=BE2F1CEE4CB45C8564756E2164756E21
622
+ //# debugId=E1DE3DF4C2B2776D64756E2164756E21
629
623
  //# sourceMappingURL=index.js.map
@@ -2,7 +2,7 @@
2
2
  "version": 3,
3
3
  "sources": ["../src/clients/createClient.ts", "../src/clients/decorators/public.ts", "../src/clients/createPublicClient.ts", "../src/clients/decorators/wallet.ts", "../src/clients/createWalletClient.ts", "../src/clients/decorators/multisig.ts", "../src/clients/createMultiSigClient.ts", "../src/transports/createTransport.ts", "../src/transports/http.ts", "../src/transports/custom.ts", "../src/transports/fallback.ts", "../src/transports/webSocket.ts"],
4
4
  "sourcesContent": [
5
- "import type { Client, ClientConfig } from \"./types.ts\";\n\nconst BASE_KEYS = new Set([\"chain\", \"account\", \"transport\", \"request\", \"extend\"]);\n\n/**\n * Create a base client with transport and optional chain/account.\n * Use `.extend()` to compose action decorators (public, wallet, multisig).\n */\nexport function createClient<\n TExtended extends Record<string, unknown> = Record<string, unknown>,\n>(config: ClientConfig): Client<TExtended> {\n const transport = config.transport({ chain: config.chain });\n\n const client: Client = {\n chain: config.chain,\n account: config.account,\n transport,\n request: transport.request,\n extend(fn) {\n const extensions = fn(client);\n const extended = { ...client };\n\n for (const [key, value] of Object.entries(extensions)) {\n if (BASE_KEYS.has(key)) continue; // protect base properties\n (extended as any)[key] = value;\n }\n\n // re-bind extend so it chains\n extended.extend = (nextFn: any) => {\n const nextExtensions = nextFn(extended);\n const next = { ...extended };\n for (const [key, value] of Object.entries(nextExtensions)) {\n if (BASE_KEYS.has(key)) continue;\n (next as any)[key] = value;\n }\n next.extend = extended.extend;\n return next as any;\n };\n\n return extended as any;\n },\n };\n\n return client as Client<TExtended>;\n}\n",
5
+ "import type { Client, ClientConfig } from \"./types.ts\";\n\nconst BASE_KEYS = new Set([\"chain\", \"account\", \"transport\", \"request\", \"extend\"]);\n\nfunction bindExtend(base: Client): Client[\"extend\"] {\n return ((fn: any) => {\n const extensions = fn(base);\n const next = { ...base };\n for (const [key, value] of Object.entries(extensions)) {\n if (BASE_KEYS.has(key)) continue;\n (next as any)[key] = value;\n }\n next.extend = bindExtend(next);\n return next as any;\n }) as Client[\"extend\"];\n}\n\n/**\n * Create a base client with transport and optional chain/account.\n * Use `.extend()` to compose action decorators (public, wallet, multisig).\n */\nexport function createClient<\n TExtended extends Record<string, unknown> = Record<string, unknown>,\n>(config: ClientConfig): Client<TExtended> {\n const transport = config.transport({ chain: config.chain });\n\n const client: Client = {\n chain: config.chain,\n account: config.account,\n transport,\n request: transport.request,\n extend: null as any,\n };\n\n client.extend = bindExtend(client);\n\n return client as Client<TExtended>;\n}\n",
6
6
  "import type { Client } from \"../types.ts\";\nimport { getNonce, type GetNonceParams } from \"../../actions/public/getNonce.ts\";\nimport { getBalance, type GetBalanceParams } from \"../../actions/public/getBalance.ts\";\nimport { getAccountInfo, type GetAccountInfoParams, type AccountInfo } from \"../../actions/public/getAccountInfo.ts\";\nimport { getBlock, type GetBlockParams } from \"../../actions/public/getBlock.ts\";\nimport { getBlockHeight } from \"../../actions/public/getBlockHeight.ts\";\nimport { readContract, type ReadContractParams } from \"../../actions/public/readContract.ts\";\nimport { getContractAbi, type GetContractAbiParams } from \"../../actions/public/getContractAbi.ts\";\nimport { getMapEntry, type GetMapEntryParams } from \"../../actions/public/getMapEntry.ts\";\nimport { estimateFee, type EstimateFeeParams, type FeeEstimation } from \"../../actions/public/estimateFee.ts\";\nimport { multicall, type MulticallParams, type MulticallResult } from \"../../actions/public/multicall.ts\";\nimport { simulateCall, type SimulateCallParams, type SimulateCallResult } from \"../../actions/public/simulateCall.ts\";\nimport { simulateTransaction, type SimulateTransactionParams, type SimulateTransactionResult } from \"../../actions/public/simulateTransaction.ts\";\nimport type { ClarityValue } from \"../../clarity/types.ts\";\nimport type { Subscription } from \"../../subscriptions/types.ts\";\nimport {\n watchBlocks, type WatchBlocksParams,\n watchMempool, type WatchMempoolParams,\n watchTransaction, type WatchTransactionParams,\n watchAddress, type WatchAddressParams,\n watchAddressBalance, type WatchAddressBalanceParams,\n watchNftEvent, type WatchNftEventParams,\n} from \"../../subscriptions/actions.ts\";\n\n/** Read-only actions: balance queries, contract reads, block data, and event subscriptions. */\nexport type PublicActions = {\n getNonce: (params: GetNonceParams) => Promise<bigint>;\n getBalance: (params: GetBalanceParams) => Promise<bigint>;\n getAccountInfo: (params: GetAccountInfoParams) => Promise<AccountInfo>;\n getBlock: (params: GetBlockParams) => Promise<any>;\n getBlockHeight: () => Promise<number>;\n readContract: (params: ReadContractParams) => Promise<ClarityValue>;\n getContractAbi: (params: GetContractAbiParams) => Promise<any>;\n getMapEntry: (params: GetMapEntryParams) => Promise<ClarityValue>;\n estimateFee: (params: EstimateFeeParams) => Promise<FeeEstimation[]>;\n multicall: <T extends boolean = true>(params: MulticallParams<T>) => Promise<MulticallResult<T>>;\n simulateCall: (params: SimulateCallParams) => Promise<SimulateCallResult>;\n simulateTransaction: (params: SimulateTransactionParams) => Promise<SimulateTransactionResult>;\n watchBlocks: (params: WatchBlocksParams) => Promise<Subscription>;\n watchMempool: (params: WatchMempoolParams) => Promise<Subscription>;\n watchTransaction: (params: WatchTransactionParams) => Promise<Subscription>;\n watchAddress: (params: WatchAddressParams) => Promise<Subscription>;\n watchAddressBalance: (params: WatchAddressBalanceParams) => Promise<Subscription>;\n watchNftEvent: (params: WatchNftEventParams) => Promise<Subscription>;\n};\n\n/** Decorator that binds {@link PublicActions} to a client instance. */\nexport function publicActions(client: Client): PublicActions {\n return {\n getNonce: (params) => getNonce(client, params),\n getBalance: (params) => getBalance(client, params),\n getAccountInfo: (params) => getAccountInfo(client, params),\n getBlock: (params) => getBlock(client, params),\n getBlockHeight: () => getBlockHeight(client),\n readContract: (params) => readContract(client, params),\n getContractAbi: (params) => getContractAbi(client, params),\n getMapEntry: (params) => getMapEntry(client, params),\n estimateFee: (params) => estimateFee(client, params),\n multicall: (params) => multicall(client, params),\n simulateCall: (params) => simulateCall(client, params),\n simulateTransaction: (params) => simulateTransaction(client, params),\n watchBlocks: (params) => watchBlocks(client, params),\n watchMempool: (params) => watchMempool(client, params),\n watchTransaction: (params) => watchTransaction(client, params),\n watchAddress: (params) => watchAddress(client, params),\n watchAddressBalance: (params) => watchAddressBalance(client, params),\n watchNftEvent: (params) => watchNftEvent(client, params),\n };\n}\n",
7
7
  "import type { ClientConfig, Client } from \"./types.ts\";\nimport { createClient } from \"./createClient.ts\";\nimport { publicActions, type PublicActions } from \"./decorators/public.ts\";\n\n/** Configuration for {@link createPublicClient} (no account needed). */\nexport type PublicClientConfig = Omit<ClientConfig, \"account\">;\n\n/**\n * Create a read-only client pre-extended with {@link PublicActions}.\n * Use for queries, contract reads, and event subscriptions.\n */\nexport function createPublicClient(\n config: PublicClientConfig\n): Client<PublicActions> & PublicActions {\n return createClient(config).extend(publicActions);\n}\n",
8
8
  "import type { Client } from \"../types.ts\";\nimport { sendTransaction, type SendTransactionParams, type SendTransactionResult } from \"../../actions/wallet/sendTransaction.ts\";\nimport { signTransactionAction, type SignTransactionParams } from \"../../actions/wallet/signTransaction.ts\";\nimport { transferStx, type TransferStxParams } from \"../../actions/wallet/transferStx.ts\";\nimport { callContract, type CallContractParams } from \"../../actions/wallet/callContract.ts\";\nimport { deployContract, type DeployContractParams } from \"../../actions/wallet/deployContract.ts\";\nimport { signMessage, type SignMessageParams } from \"../../actions/wallet/signMessage.ts\";\nimport { sponsorTransaction, type SponsorTransactionParams } from \"../../actions/wallet/sponsorTransaction.ts\";\nimport type { StacksTransaction } from \"../../transactions/types.ts\";\n\n/** Signing actions: send transactions, transfer STX, call/deploy contracts, sign messages. */\nexport type WalletActions = {\n sendTransaction: (params: SendTransactionParams) => Promise<SendTransactionResult>;\n signTransaction: (params: SignTransactionParams) => Promise<StacksTransaction>;\n transferStx: (params: TransferStxParams) => Promise<string>;\n callContract: (params: CallContractParams) => Promise<string>;\n deployContract: (params: DeployContractParams) => Promise<string>;\n signMessage: (params: SignMessageParams) => Promise<string>;\n sponsorTransaction: (params: SponsorTransactionParams) => Promise<StacksTransaction>;\n};\n\n/** Decorator that binds {@link WalletActions} to a client instance. */\nexport function walletActions(client: Client): WalletActions {\n return {\n sendTransaction: (params) => sendTransaction(client, params),\n signTransaction: (params) => signTransactionAction(client, params),\n transferStx: (params) => transferStx(client, params),\n callContract: (params) => callContract(client, params),\n deployContract: (params) => deployContract(client, params),\n signMessage: (params) => signMessage(client, params),\n sponsorTransaction: (params) => sponsorTransaction(client, params),\n };\n}\n",
@@ -15,7 +15,7 @@
15
15
  "import type { TransportFactory } from \"./types.ts\";\nimport { createTransport } from \"./createTransport.ts\";\n\n/** Create a transport that tries each transport in order until one succeeds. */\nexport function fallback(transports: TransportFactory[]): TransportFactory {\n return (params) => {\n const resolved = transports.map((t) => t(params));\n\n return createTransport(\"fallback\", {\n request: async (path, options) => {\n let lastError: Error | undefined;\n for (const transport of resolved) {\n try {\n return await transport.request(path, options);\n } catch (error) {\n lastError =\n error instanceof Error ? error : new Error(String(error));\n }\n }\n throw lastError ?? new Error(\"All transports failed\");\n },\n });\n };\n}\n",
16
16
  "import type { StacksChain } from \"../chains/types.ts\";\nimport type { Transport, TransportConfig, TransportFactory } from \"./types.ts\";\nimport type { Subscription, WsSubscribeParams } from \"../subscriptions/types.ts\";\nimport { buildRequestFn } from \"./createTransport.ts\";\nimport { WebSocketError } from \"../errors/websocket.ts\";\n\n/** Configuration for the WebSocket transport, extending base {@link TransportConfig}. */\nexport type WebSocketTransportConfig = TransportConfig & {\n /** WebSocket URL (resolved from chain if omitted) */\n url?: string;\n /** Enable auto-reconnect (default: true) */\n reconnect?: boolean;\n /** Max reconnect attempts (default: 10) */\n reconnectMaxAttempts?: number;\n /** Base delay in ms for exponential backoff (default: 1000) */\n reconnectBaseDelay?: number;\n};\n\n/** Transport with WebSocket subscription capabilities and auto-reconnect. */\nexport type WebSocketTransport = Transport & {\n type: \"webSocket\";\n subscribe: (\n params: WsSubscribeParams,\n callback: (data: any) => void\n ) => Promise<Subscription>;\n destroy: () => void;\n};\n\ntype JsonRpcRequest = {\n jsonrpc: \"2.0\";\n id: number;\n method: string;\n params: Record<string, unknown>;\n};\n\ntype JsonRpcResponse = {\n jsonrpc: \"2.0\";\n id: number;\n result?: unknown;\n error?: { code: number; message: string };\n};\n\ntype JsonRpcNotification = {\n jsonrpc: \"2.0\";\n method: string;\n params: unknown;\n};\n\ntype SubEntry = {\n params: WsSubscribeParams;\n callbacks: Set<(data: any) => void>;\n};\n\nfunction subKey(params: WsSubscribeParams): string {\n const parts: string[] = [params.event];\n if (params.tx_id) parts.push(`tx_id:${params.tx_id}`);\n if (params.address) parts.push(`address:${params.address}`);\n if (params.asset_identifier)\n parts.push(`asset:${params.asset_identifier}`);\n if (params.value) parts.push(`value:${params.value}`);\n return parts.join(\"|\");\n}\n\nexport class WebSocketChannel {\n private ws: WebSocket | null = null;\n private url: string;\n private nextId = 1;\n private pending = new Map<\n number,\n { resolve: (v: unknown) => void; reject: (e: Error) => void }\n >();\n private subs = new Map<string, SubEntry>();\n private destroyed = false;\n private reconnecting = false;\n private reconnectAttempt = 0;\n private reconnectTimer: ReturnType<typeof setTimeout> | null = null;\n\n private reconnect: boolean;\n private reconnectMaxAttempts: number;\n private reconnectBaseDelay: number;\n\n constructor(url: string, config?: WebSocketTransportConfig) {\n this.url = url;\n this.reconnect = config?.reconnect ?? true;\n this.reconnectMaxAttempts = config?.reconnectMaxAttempts ?? 10;\n this.reconnectBaseDelay = config?.reconnectBaseDelay ?? 1000;\n }\n\n private connect(): Promise<void> {\n if (this.ws?.readyState === WebSocket.OPEN) return Promise.resolve();\n if (this.ws?.readyState === WebSocket.CONNECTING) {\n return new Promise((resolve, reject) => {\n const onOpen = () => {\n this.ws?.removeEventListener(\"error\", onError);\n resolve();\n };\n const onError = (e: Event) => {\n this.ws?.removeEventListener(\"open\", onOpen);\n reject(\n new WebSocketError(\"WebSocket connection failed\", {\n details: String(e),\n })\n );\n };\n this.ws!.addEventListener(\"open\", onOpen, { once: true });\n this.ws!.addEventListener(\"error\", onError, { once: true });\n });\n }\n\n return new Promise((resolve, reject) => {\n this.ws = new WebSocket(this.url);\n\n this.ws.addEventListener(\n \"open\",\n () => {\n this.reconnectAttempt = 0;\n this.reconnecting = false;\n resolve();\n },\n { once: true }\n );\n\n this.ws.addEventListener(\n \"error\",\n (e) => {\n reject(\n new WebSocketError(\"WebSocket connection failed\", {\n details: String(e),\n })\n );\n },\n { once: true }\n );\n\n this.ws.addEventListener(\"message\", (event) => {\n this.handleMessage(event.data);\n });\n\n this.ws.addEventListener(\"close\", () => {\n if (!this.destroyed) this.handleDisconnect();\n });\n });\n }\n\n private handleMessage(raw: string | ArrayBuffer | Blob) {\n const data =\n typeof raw === \"string\" ? raw : new TextDecoder().decode(raw as ArrayBuffer);\n\n let msg: JsonRpcResponse | JsonRpcNotification;\n try {\n msg = JSON.parse(data);\n } catch {\n return;\n }\n\n // RPC response\n if (\"id\" in msg && msg.id != null) {\n const rpc = msg as JsonRpcResponse;\n const p = this.pending.get(rpc.id);\n if (!p) return;\n this.pending.delete(rpc.id);\n if (rpc.error) {\n p.reject(\n new WebSocketError(rpc.error.message, {\n details: `JSON-RPC error ${rpc.error.code}`,\n })\n );\n } else {\n p.resolve(rpc.result);\n }\n return;\n }\n\n // Notification\n const notif = msg as JsonRpcNotification;\n if (!notif.method) return;\n\n for (const [, entry] of this.subs) {\n if (entry.params.event === notif.method) {\n for (const cb of entry.callbacks) {\n try {\n cb(notif.params);\n } catch {\n // subscriber error — don't crash channel\n }\n }\n }\n }\n }\n\n private handleDisconnect() {\n this.ws = null;\n\n // reject pending RPCs\n for (const [, p] of this.pending) {\n p.reject(new WebSocketError(\"WebSocket disconnected\"));\n }\n this.pending.clear();\n\n if (\n this.reconnect &&\n this.subs.size > 0 &&\n this.reconnectAttempt < this.reconnectMaxAttempts\n ) {\n this.scheduleReconnect();\n }\n }\n\n private scheduleReconnect() {\n if (this.destroyed || this.reconnecting) return;\n this.reconnecting = true;\n const delay = this.reconnectBaseDelay * 2 ** this.reconnectAttempt;\n this.reconnectAttempt++;\n\n this.reconnectTimer = setTimeout(async () => {\n this.reconnecting = false;\n try {\n await this.connect();\n await this.resubscribeAll();\n } catch {\n if (!this.destroyed && this.subs.size > 0) {\n this.handleDisconnect();\n }\n }\n }, delay);\n }\n\n private async resubscribeAll() {\n for (const [, entry] of this.subs) {\n await this.sendRpc(\"subscribe\", entry.params);\n }\n }\n\n private sendRpc(method: string, params: Record<string, unknown>): Promise<unknown> {\n return new Promise((resolve, reject) => {\n if (!this.ws || this.ws.readyState !== WebSocket.OPEN) {\n return reject(new WebSocketError(\"WebSocket not connected\"));\n }\n\n const id = this.nextId++;\n const msg: JsonRpcRequest = {\n jsonrpc: \"2.0\",\n id,\n method,\n params,\n };\n\n this.pending.set(id, { resolve, reject });\n this.ws.send(JSON.stringify(msg));\n });\n }\n\n async subscribe(\n params: WsSubscribeParams,\n callback: (data: any) => void\n ): Promise<Subscription> {\n if (this.destroyed) {\n throw new WebSocketError(\"WebSocket channel has been destroyed\");\n }\n\n await this.connect();\n\n const key = subKey(params);\n let entry = this.subs.get(key);\n\n if (entry) {\n // Dedup: reuse existing WS subscription\n entry.callbacks.add(callback);\n } else {\n // New WS subscription\n entry = { params, callbacks: new Set([callback]) };\n this.subs.set(key, entry);\n await this.sendRpc(\"subscribe\", params);\n }\n\n return {\n unsubscribe: () => {\n const e = this.subs.get(key);\n if (!e) return;\n e.callbacks.delete(callback);\n if (e.callbacks.size === 0) {\n this.subs.delete(key);\n // Best-effort unsubscribe RPC\n if (this.ws?.readyState === WebSocket.OPEN) {\n this.sendRpc(\"unsubscribe\", params).catch(() => {});\n }\n // Auto-close when no subscribers remain\n if (this.subs.size === 0) this.closeQuietly();\n }\n },\n };\n }\n\n private closeQuietly() {\n if (this.ws) {\n this.ws.close();\n this.ws = null;\n }\n }\n\n destroy() {\n this.destroyed = true;\n if (this.reconnectTimer) clearTimeout(this.reconnectTimer);\n\n for (const [, p] of this.pending) {\n p.reject(new WebSocketError(\"WebSocket channel destroyed\"));\n }\n this.pending.clear();\n this.subs.clear();\n\n if (this.ws) {\n this.ws.close();\n this.ws = null;\n }\n }\n}\n\nfunction deriveWsUrl(httpUrl: string): string {\n return httpUrl.replace(/^http/, \"ws\").replace(/\\/$/, \"\") + \"/extended/v1/ws\";\n}\n\n/**\n * Create a WebSocket transport for real-time Stacks event subscriptions.\n * HTTP requests use the resolved RPC URL; subscriptions use the WS endpoint.\n */\nexport function webSocket(\n url?: string,\n config?: WebSocketTransportConfig\n): TransportFactory {\n return (params) => {\n const httpUrl =\n config?.url ??\n params?.chain?.rpcUrls.default.http[0] ??\n \"http://localhost:3999\";\n\n const wsUrl =\n url ??\n params?.chain?.rpcUrls.default.ws?.[0] ??\n deriveWsUrl(httpUrl);\n\n const resolvedHttpConfig: TransportConfig = {\n ...config,\n url: httpUrl,\n };\n\n const channel = new WebSocketChannel(wsUrl, config);\n\n const transport: WebSocketTransport = {\n type: \"webSocket\",\n request: buildRequestFn(httpUrl, resolvedHttpConfig),\n config: resolvedHttpConfig,\n subscribe: (subParams, callback) =>\n channel.subscribe(subParams, callback),\n destroy: () => channel.destroy(),\n };\n\n return transport;\n };\n}\n"
17
17
  ],
18
- "mappings": "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",
19
- "debugId": "BE2F1CEE4CB45C8564756E2164756E21",
18
+ "mappings": "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",
19
+ "debugId": "E1DE3DF4C2B2776D64756E2164756E21",
20
20
  "names": []
21
21
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@secondlayer/stacks",
3
- "version": "0.0.3",
3
+ "version": "0.0.4",
4
4
  "description": "A viem-style SDK for the Stacks blockchain",
5
5
  "type": "module",
6
6
  "main": "./dist/src/index.cjs",