@secondlayer/stacks 2.14.1 → 2.15.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.
Files changed (61) hide show
  1. package/README.md +37 -0
  2. package/dist/shared/{stacks-f66v961k.js → stacks-1k0kmpcw.js} +2 -2
  3. package/dist/shared/{stacks-6mhsf8hk.cjs → stacks-1xk4wby6.cjs} +10 -21
  4. package/dist/shared/{stacks-6mhsf8hk.cjs.map → stacks-1xk4wby6.cjs.map} +5 -6
  5. package/dist/shared/{stacks-tswh2xav.js → stacks-2x04a6ss.js} +12 -26
  6. package/dist/shared/{stacks-tswh2xav.js.map → stacks-2x04a6ss.js.map} +5 -6
  7. package/dist/shared/stacks-3kj51c6p.cjs +16 -0
  8. package/dist/shared/stacks-3kj51c6p.cjs.map +10 -0
  9. package/dist/shared/{stacks-jcgvn5v5.cjs → stacks-70xxh5h1.cjs} +15 -6
  10. package/dist/shared/{stacks-dmrvk1mz.js.map → stacks-70xxh5h1.cjs.map} +3 -3
  11. package/dist/shared/stacks-f0hfqaj5.js +22 -0
  12. package/dist/shared/stacks-f0hfqaj5.js.map +10 -0
  13. package/dist/shared/{stacks-3vyvtahh.js → stacks-ggxnnph5.cjs} +2 -46
  14. package/dist/shared/stacks-ggxnnph5.cjs.map +10 -0
  15. package/dist/shared/stacks-pdcz1w1d.js +33 -0
  16. package/dist/shared/stacks-pdcz1w1d.js.map +10 -0
  17. package/dist/shared/{stacks-fjrpnkt3.cjs → stacks-q45x3389.js} +20 -15
  18. package/dist/shared/stacks-q45x3389.js.map +10 -0
  19. package/dist/shared/{stacks-hxp7v905.js → stacks-refg7hca.js} +7 -5
  20. package/dist/shared/{stacks-hxp7v905.js.map → stacks-refg7hca.js.map} +2 -2
  21. package/dist/shared/{stacks-dmrvk1mz.js → stacks-y9w78e2b.js} +15 -6
  22. package/dist/shared/{stacks-jcgvn5v5.cjs.map → stacks-y9w78e2b.js.map} +3 -3
  23. package/dist/shared/stacks-yetejw9x.cjs +16 -0
  24. package/dist/shared/stacks-yetejw9x.cjs.map +10 -0
  25. package/dist/src/actions/index.js +12 -8
  26. package/dist/src/actions/index.js.map +1 -1
  27. package/dist/src/bns/index.js +5 -4
  28. package/dist/src/bns/index.js.map +2 -2
  29. package/dist/src/connect/index.cjs +47 -6
  30. package/dist/src/connect/index.cjs.map +8 -4
  31. package/dist/src/connect/index.js +47 -6
  32. package/dist/src/connect/index.js.map +8 -4
  33. package/dist/src/index.js +11 -7
  34. package/dist/src/index.js.map +2 -2
  35. package/dist/src/pox/index.js +5 -4
  36. package/dist/src/pox/index.js.map +2 -2
  37. package/dist/src/pox5/index.cjs +513 -0
  38. package/dist/src/pox5/index.cjs.map +16 -0
  39. package/dist/src/pox5/index.d.cts +646 -0
  40. package/dist/src/pox5/index.d.ts +646 -0
  41. package/dist/src/pox5/index.js +540 -0
  42. package/dist/src/pox5/index.js.map +16 -0
  43. package/dist/src/sbtc/index.js +5 -4
  44. package/dist/src/sbtc/index.js.map +2 -2
  45. package/dist/src/stackingdao/index.js +5 -4
  46. package/dist/src/stackingdao/index.js.map +2 -2
  47. package/dist/src/tools/btc/index.cjs +6 -5
  48. package/dist/src/tools/btc/index.cjs.map +3 -3
  49. package/dist/src/tools/btc/index.d.cts +2 -1
  50. package/dist/src/tools/btc/index.d.ts +2 -1
  51. package/dist/src/tools/btc/index.js +6 -5
  52. package/dist/src/tools/btc/index.js.map +3 -3
  53. package/dist/src/tools/index.cjs +323 -43
  54. package/dist/src/tools/index.cjs.map +10 -9
  55. package/dist/src/tools/index.js +323 -46
  56. package/dist/src/tools/index.js.map +10 -9
  57. package/dist/src/x402/index.js +2 -2
  58. package/package.json +7 -2
  59. package/dist/shared/stacks-3vyvtahh.js.map +0 -11
  60. package/dist/shared/stacks-fjrpnkt3.cjs.map +0 -11
  61. /package/dist/shared/{stacks-f66v961k.js.map → stacks-1k0kmpcw.js.map} +0 -0
@@ -2,7 +2,7 @@
2
2
  "version": 3,
3
3
  "sources": ["../src/actions/public/estimateFee.ts", "../src/actions/public/getBlockHeight.ts", "../src/errors/http.ts", "../src/actions/public/getNonce.ts", "../src/actions/public/txSources.ts", "../src/errors/transaction.ts", "../src/actions/public/waitForTransactionReceipt.ts", "../src/actions/wallet/sendTransaction.ts", "../src/actions/wallet/nonceManager.ts", "../src/actions/wallet/utils.ts"],
4
4
  "sourcesContent": [
5
- "import type { Client } from \"../../clients/types.ts\";\nimport type { StacksTransaction } from \"../../transactions/types.ts\";\nimport {\n\tserializePayload,\n\tserializeTransaction,\n} from \"../../transactions/wire/serialize.ts\";\nimport { bytesToHex } from \"../../utils/encoding.ts\";\n\nexport type EstimateFeeParams = {\n\ttransaction: StacksTransaction;\n};\n\nexport type FeeEstimation = {\n\tfeeRate: number;\n\tfee: number;\n};\n\nexport async function estimateFee(\n\tclient: Client,\n\tparams: EstimateFeeParams,\n): Promise<FeeEstimation[]> {\n\tconst payloadHex = bytesToHex(serializePayload(params.transaction.payload));\n\tconst txHex = bytesToHex(serializeTransaction(params.transaction));\n\n\tconst data = await client.request(\"/v2/fees/transaction\", {\n\t\tmethod: \"POST\",\n\t\tbody: {\n\t\t\testimated_len: Math.ceil(txHex.length / 2),\n\t\t\ttransaction_payload: `0x${payloadHex}`,\n\t\t},\n\t});\n\n\t// biome-ignore lint/suspicious/noExplicitAny: interop boundary or dynamic-shape value where typing adds friction without runtime safety\n\treturn (data.estimations ?? []).map((e: any) => ({\n\t\tfeeRate: e.fee_rate,\n\t\tfee: e.fee,\n\t}));\n}\n",
5
+ "import type { Client } from \"../../clients/types.ts\";\nimport { MalformedResponseError } from \"../../errors/response.ts\";\nimport type { StacksTransaction } from \"../../transactions/types.ts\";\nimport {\n\tserializePayload,\n\tserializeTransaction,\n} from \"../../transactions/wire/serialize.ts\";\nimport { bytesToHex } from \"../../utils/encoding.ts\";\n\nexport type EstimateFeeParams = {\n\ttransaction: StacksTransaction;\n};\n\nexport type FeeEstimation = {\n\tfeeRate: number;\n\tfee: number;\n};\n\nfunction isValidEstimation(\n\te: unknown,\n): e is { fee_rate: number | string; fee: number | string } {\n\treturn (\n\t\ttypeof e === \"object\" &&\n\t\te !== null &&\n\t\t\"fee_rate\" in e &&\n\t\t\"fee\" in e &&\n\t\t(typeof (e as Record<string, unknown>).fee_rate === \"number\" ||\n\t\t\ttypeof (e as Record<string, unknown>).fee_rate === \"string\") &&\n\t\t(typeof (e as Record<string, unknown>).fee === \"number\" ||\n\t\t\ttypeof (e as Record<string, unknown>).fee === \"string\")\n\t);\n}\n\nexport async function estimateFee(\n\tclient: Client,\n\tparams: EstimateFeeParams,\n): Promise<FeeEstimation[]> {\n\tconst payloadHex = bytesToHex(serializePayload(params.transaction.payload));\n\tconst txHex = bytesToHex(serializeTransaction(params.transaction));\n\n\tconst data = await client.request(\"/v2/fees/transaction\", {\n\t\tmethod: \"POST\",\n\t\tbody: {\n\t\t\testimated_len: Math.ceil(txHex.length / 2),\n\t\t\ttransaction_payload: `0x${payloadHex}`,\n\t\t},\n\t});\n\n\tconst raw = (data as { estimations?: unknown[] })?.estimations ?? [];\n\treturn raw.map((e) => {\n\t\tif (!isValidEstimation(e)) {\n\t\t\tthrow new MalformedResponseError(\n\t\t\t\t\"estimateFee: node response contains invalid fee estimation entry\",\n\t\t\t);\n\t\t}\n\t\treturn {\n\t\t\tfeeRate: Number(e.fee_rate),\n\t\t\tfee: Number(e.fee),\n\t\t};\n\t});\n}\n",
6
6
  "import type { Client } from \"../../clients/types.ts\";\nimport { MalformedResponseError } from \"../../errors/response.ts\";\n\nexport async function getBlockHeight(client: Client): Promise<number> {\n\tconst data = await client.request(\"/v2/info\", { method: \"GET\" });\n\tif (typeof data?.stacks_tip_height !== \"number\") {\n\t\tthrow new MalformedResponseError(\n\t\t\t'getBlockHeight: /v2/info response is missing \"stacks_tip_height\"',\n\t\t);\n\t}\n\treturn data.stacks_tip_height;\n}\n",
7
7
  "import { BaseError } from \"./base.ts\";\n\n/** Thrown by the HTTP transport when a response's status isn't 2xx. */\nexport class HttpRequestError extends BaseError {\n\toverride name = \"HttpRequestError\";\n\tstatus: number;\n\n\tconstructor(status: number, options?: { cause?: Error; details?: string }) {\n\t\tsuper(`HTTP request failed with status ${status}`, options);\n\t\tthis.status = status;\n\t}\n}\n",
8
8
  "import type { Client } from \"../../clients/types.ts\";\n\nexport type GetNonceParams = {\n\taddress: string;\n};\n\nexport type GetNonceResult = {\n\tnonce: bigint;\n\tpossibleNextNonce: bigint;\n};\n\nexport async function getNonce(\n\tclient: Client,\n\tparams: GetNonceParams,\n): Promise<bigint> {\n\tconst data = await client.request(`/v2/accounts/${params.address}`, {\n\t\tmethod: \"GET\",\n\t});\n\tconst nonce = (data as { nonce?: unknown })?.nonce;\n\tif (typeof nonce !== \"number\" && typeof nonce !== \"string\") {\n\t\tthrow new Error(\n\t\t\t`getNonce: unexpected /v2/accounts response for ${params.address} (missing numeric nonce)`,\n\t\t);\n\t}\n\treturn BigInt(nonce);\n}\n",
@@ -13,7 +13,7 @@
13
13
  "import type { Client } from \"../../clients/types.ts\";\nimport { BroadcastError } from \"../../errors/transaction.ts\";\nimport type { StacksTransaction } from \"../../transactions/types.ts\";\nimport { getNonce } from \"../public/getNonce.ts\";\nimport { sendTransaction } from \"./sendTransaction.ts\";\n\n/**\n * Provides the confirmed on-chain nonce floor for an address.\n *\n * The default {@link jsonRpcSource} reads the configured node's `/v2/accounts`\n * endpoint — node-agnostic, no Hiro dependency. Other sources (mempool-aware,\n * first-party Index) can be swapped in without touching the manager.\n */\nexport type NonceManagerSource = {\n\tget(params: { client: Client; address: string }): Promise<bigint>;\n};\n\n/**\n * Holds per-address allocation state and hands out the next nonce.\n *\n * `reserve` MUST be atomic per `key`: two concurrent reservations for the same\n * key must never return the same value. The in-memory {@link memoryStore}\n * serializes with a per-key promise chain; a persisted store (Redis `INCR`,\n * Postgres `SELECT ... FOR UPDATE`) becomes the cross-process lock for the\n * multi-builder / smart-wallet-as-a-service case.\n */\nexport type NonceStore = {\n\t/**\n\t * Reserve the next nonce for `key`. `getFloor` reads the confirmed on-chain\n\t * nonce; it is only invoked when the store has no tracked value (cold start\n\t * or after {@link NonceStore.reset}).\n\t */\n\treserve(key: string, getFloor: () => Promise<bigint>): Promise<bigint>;\n\t/** Forget tracked state for `key` so the next reserve re-syncs from the floor. */\n\treset(key: string): void | Promise<void>;\n\t/**\n\t * Return the next nonce that {@link NonceStore.reserve} would hand out for\n\t * `key` WITHOUT consuming it, or `undefined` if `key` is untracked. Used by\n\t * {@link reconcileNonce} to detect drift. Optional — stores that omit it\n\t * simply opt out of reconciliation.\n\t */\n\tpeek?(key: string): Promise<bigint | undefined> | bigint | undefined;\n};\n\n/** Allocates mempool-safe sequential nonces across rapid broadcasts from one account. */\nexport type NonceManager = {\n\tconsume(params: { client: Client; address: string }): Promise<bigint>;\n\treset(params: { client: Client; address: string }): void | Promise<void>;\n\t/** Next nonce that {@link NonceManager.consume} would return without consuming it, or `undefined` if untracked. */\n\tpeek(params: {\n\t\tclient: Client;\n\t\taddress: string;\n\t}): Promise<bigint | undefined>;\n};\n\nexport type CreateNonceManagerParams = {\n\tsource?: NonceManagerSource;\n\tstore?: NonceStore;\n};\n\n/** Confirmed-nonce source backed by the configured node's `/v2/accounts` RPC (no Hiro dependency). */\nexport function jsonRpcSource(): NonceManagerSource {\n\treturn {\n\t\tget: ({ client, address }) => getNonce(client, { address }),\n\t};\n}\n\n/**\n * In-memory, single-process store. Tracks the next nonce per key and serializes\n * concurrent reservations with a per-key promise chain.\n *\n * Correct only within one process — swap in a persisted store for multi-process\n * deployments that share a signing key.\n */\nexport function memoryStore(): NonceStore {\n\tconst next = new Map<string, bigint>();\n\tconst locks = new Map<string, Promise<unknown>>();\n\n\tfunction withLock<T>(key: string, fn: () => Promise<T>): Promise<T> {\n\t\tconst prev = locks.get(key) ?? Promise.resolve();\n\t\t// Chain onto the prior reservation regardless of how it settled, so a\n\t\t// rejected reserve never wedges the key.\n\t\tconst run = prev.then(fn, fn);\n\t\tlocks.set(\n\t\t\tkey,\n\t\t\trun.catch(() => {}),\n\t\t);\n\t\treturn run;\n\t}\n\n\treturn {\n\t\treserve(key, getFloor) {\n\t\t\treturn withLock(key, async () => {\n\t\t\t\tlet current = next.get(key);\n\t\t\t\tif (current === undefined) current = await getFloor();\n\t\t\t\tnext.set(key, current + 1n);\n\t\t\t\treturn current;\n\t\t\t});\n\t\t},\n\t\treset(key) {\n\t\t\tnext.delete(key);\n\t\t},\n\t\tpeek(key) {\n\t\t\treturn next.get(key);\n\t\t},\n\t};\n}\n\nfunction nonceKey(client: Client, address: string): string {\n\treturn `${client.chain?.id ?? \"stacks\"}:${address}`;\n}\n\n/**\n * Create a nonce manager that floors on a confirmed-nonce {@link NonceManagerSource}\n * and increments a {@link NonceStore} on every {@link NonceManager.consume}.\n *\n * Defaults to {@link jsonRpcSource} + {@link memoryStore} — node-agnostic,\n * single-process, zero external dependencies.\n */\nexport function createNonceManager(\n\tparams: CreateNonceManagerParams = {},\n): NonceManager {\n\tconst source = params.source ?? jsonRpcSource();\n\tconst store = params.store ?? memoryStore();\n\n\treturn {\n\t\tconsume({ client, address }) {\n\t\t\treturn store.reserve(nonceKey(client, address), () =>\n\t\t\t\tsource.get({ client, address }),\n\t\t\t);\n\t\t},\n\t\treset({ client, address }) {\n\t\t\treturn store.reset(nonceKey(client, address));\n\t\t},\n\t\tasync peek({ client, address }) {\n\t\t\treturn store.peek?.(nonceKey(client, address));\n\t\t},\n\t};\n}\n\n/** Resolve the next nonce via the client's nonce manager, falling back to a confirmed read. */\nexport async function resolveNonce(\n\tclient: Client,\n\taddress: string,\n): Promise<bigint> {\n\tif (client.nonceManager)\n\t\treturn client.nonceManager.consume({ client, address });\n\treturn getNonce(client, { address });\n}\n\nexport type ReconcileNonceParams = {\n\tclient: Client;\n\taddress: string;\n\t/** Authoritative (ideally mempool-aware) source to reconcile against. */\n\tsource: NonceManagerSource;\n\t/**\n\t * Allow resetting DOWNWARD when the source's next nonce is below what the\n\t * store tracks — i.e. a previously-allocated tx is no longer pending or\n\t * confirmed (dropped/GC'd), so its nonce should be reused. Default `true`.\n\t *\n\t * Downward resets rely on `source` being current: with a go-forward mempool\n\t * source that lags broadcast, run reconciliation on an interval comfortably\n\t * longer than mempool propagation so a still-missing tx is genuinely dropped.\n\t * Set `false` for upward-only reconciliation (always safe).\n\t */\n\tdownward?: boolean;\n};\n\nexport type ReconcileNonceResult = {\n\t/** Whether the manager was reset (drift detected). */\n\treset: boolean;\n\t/** Authoritative next nonce from `source`. */\n\tauthoritative: bigint;\n\t/** Next nonce the store tracked, or `undefined` if untracked. */\n\ttracked: bigint | undefined;\n};\n\n/**\n * Reconcile a tracked nonce against an authoritative source, healing silent\n * drift that produces no broadcast error (a dropped/GC'd mempool tx leaving the\n * counter overshot, or the chain advancing past the local view).\n *\n * When the source's next nonce differs from the tracked value, the manager is\n * {@link NonceManager.reset}; the next `consume` re-seeds from `source`. A no-op\n * if the store is untracked or does not implement `peek`.\n */\nexport async function reconcileNonce(\n\tmanager: NonceManager,\n\tparams: ReconcileNonceParams,\n): Promise<ReconcileNonceResult> {\n\tconst { client, address, source } = params;\n\tconst downward = params.downward ?? true;\n\n\tconst authoritative = await source.get({ client, address });\n\tconst tracked = await manager.peek({ client, address });\n\n\tif (tracked === undefined || authoritative === tracked) {\n\t\treturn { reset: false, authoritative, tracked };\n\t}\n\tif (authoritative < tracked && !downward) {\n\t\treturn { reset: false, authoritative, tracked };\n\t}\n\n\tawait manager.reset({ client, address });\n\treturn { reset: true, authoritative, tracked };\n}\n\nexport type StartNonceReconcilerParams = {\n\tclient: Client;\n\taddresses: string[];\n\tsource: NonceManagerSource;\n\t/** Reconcile interval in ms. Default 60_000. Keep well above mempool propagation. */\n\tintervalMs?: number;\n\tdownward?: boolean;\n\t/** Per-address callback after each reconcile (observability). */\n\tonReconcile?: (address: string, result: ReconcileNonceResult) => void;\n\t/** Per-address error callback; reconciliation continues on the next tick. */\n\tonError?: (address: string, error: unknown) => void;\n};\n\n/**\n * Run {@link reconcileNonce} on a timer for a set of addresses.\n *\n * SINGLE-WRITER: run this in exactly ONE process. With a shared persisted store,\n * a reconciler resetting the counter while other workers allocate is racy — keep\n * reconciliation on one designated process and let the others only allocate.\n *\n * Returns a handle; call `stop()` to clear the timer.\n */\nexport function startNonceReconciler(\n\tmanager: NonceManager,\n\tparams: StartNonceReconcilerParams,\n): { stop: () => void } {\n\tconst { client, addresses, source } = params;\n\tconst intervalMs = params.intervalMs ?? 60_000;\n\n\tconst tick = async () => {\n\t\tfor (const address of addresses) {\n\t\t\ttry {\n\t\t\t\tconst result = await reconcileNonce(manager, {\n\t\t\t\t\tclient,\n\t\t\t\t\taddress,\n\t\t\t\t\tsource,\n\t\t\t\t\tdownward: params.downward,\n\t\t\t\t});\n\t\t\t\tparams.onReconcile?.(address, result);\n\t\t\t} catch (error) {\n\t\t\t\ttry {\n\t\t\t\t\tparams.onError?.(address, error);\n\t\t\t\t} catch {\n\t\t\t\t\t// A throwing onError callback must not abort the reconcile loop\n\t\t\t\t\t// or surface as an unhandled rejection on the interval timer.\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\tconst timer = setInterval(tick, intervalMs);\n\t// Don't keep the event loop alive solely for reconciliation (Node/Bun).\n\t(timer as { unref?: () => void }).unref?.();\n\n\treturn {\n\t\tstop: () => clearInterval(timer),\n\t};\n}\n\n/** True when a broadcast was rejected for a nonce conflict (`ConflictingNonceInMempool`, `BadNonce`). */\nexport function isNonceConflictError(error: unknown): boolean {\n\tif (!(error instanceof BroadcastError)) return false;\n\tif (\n\t\terror.reason === \"ConflictingNonceInMempool\" ||\n\t\terror.reason === \"BadNonce\"\n\t) {\n\t\treturn true;\n\t}\n\t// Typed reason present but not nonce-related — trust it over the message\n\t// (e.g. a FeeTooLow message mentioning \"nonce\" must not trigger a reset).\n\tif (error.reason !== undefined) return false;\n\t// No structured reason (older nodes/proxies) — fall back to message match.\n\treturn error.message.toLowerCase().includes(\"nonce\");\n}\n\n/**\n * Broadcast a signed transaction; on a nonce-conflict rejection, reset the\n * manager so the next build re-syncs to the confirmed floor.\n */\nexport async function broadcastWithNonceReset(\n\tclient: Client,\n\tparams: { transaction: StacksTransaction; address: string },\n): Promise<string> {\n\ttry {\n\t\tconst result = await sendTransaction(client, {\n\t\t\ttransaction: params.transaction,\n\t\t});\n\t\treturn result.txid;\n\t} catch (error) {\n\t\tif (client.nonceManager && isNonceConflictError(error)) {\n\t\t\tawait client.nonceManager.reset({ client, address: params.address });\n\t\t}\n\t\tthrow error;\n\t}\n}\n",
14
14
  "import type { ProviderAccount } from \"../../accounts/types.ts\";\nimport type { Account, Client } from \"../../clients/types.ts\";\nimport type { StacksTransaction } from \"../../transactions/types.ts\";\nimport { serializeTransaction } from \"../../transactions/wire/serialize.ts\";\nimport type { IntegerType } from \"../../utils/encoding.ts\";\nimport { intToBigInt } from \"../../utils/encoding.ts\";\nimport { estimateFee } from \"../public/estimateFee.ts\";\n\nexport function isProviderAccount(\n\taccount: Account,\n): account is ProviderAccount {\n\treturn account.type === \"provider\";\n}\n\n/**\n * Named fee tiers. `'low' | 'mid' | 'high'` map to the node's three fee\n * estimations; `'min'` is the node's minimum relay fee — 1 uSTX per byte of\n * the serialized transaction, computable offline.\n */\nexport type FeeTier = \"min\" | \"low\" | \"mid\" | \"high\";\n\n/** Fee input accepted by wallet actions: an explicit amount or a named tier. */\nexport type FeeParam = IntegerType | FeeTier;\n\nconst FEE_TIERS: readonly FeeTier[] = [\"min\", \"low\", \"mid\", \"high\"];\nconst TIER_INDEX = { low: 0, mid: 1, high: 2 } as const;\n\nexport function isFeeTier(fee: FeeParam | undefined): fee is FeeTier {\n\treturn typeof fee === \"string\" && FEE_TIERS.includes(fee as FeeTier);\n}\n\n/**\n * Minimum relay fee: 1 uSTX per byte of the serialized transaction. The fee\n * field is fixed-width (8 bytes), so the size — and therefore this floor — is\n * stable regardless of the fee value later set on the spending condition.\n */\nexport function minimumFee(transaction: StacksTransaction): bigint {\n\treturn BigInt(serializeTransaction(transaction).length);\n}\n\n/**\n * Resolve a fee param to a concrete amount. Numeric input passes through.\n * Tiers `'low' | 'mid' | 'high'` index the node's estimations (nearest\n * available when fewer than three are returned); `'min'` — and any estimation\n * failure (e.g. NoEstimateAvailable) — resolves to {@link minimumFee}, which\n * needs no network round-trip.\n */\nexport async function resolveFee(\n\tclient: Client,\n\ttransaction: StacksTransaction,\n\tfee: FeeParam | undefined,\n): Promise<bigint> {\n\tif (fee !== undefined && !isFeeTier(fee)) return intToBigInt(fee);\n\n\tconst tier = fee ?? \"mid\";\n\tif (tier === \"min\") return minimumFee(transaction);\n\n\ttry {\n\t\tconst estimates = await estimateFee(client, { transaction });\n\t\tconst pick = estimates[TIER_INDEX[tier]] ?? estimates[estimates.length - 1];\n\t\tif (pick) return BigInt(pick.fee);\n\t} catch {\n\t\t// Node could not produce an estimate — fall through to the relay floor.\n\t}\n\treturn minimumFee(transaction);\n}\n\n/** Set the resolved fee on an unsigned transaction's origin spending condition. */\nexport function setUnsignedFee(\n\ttransaction: StacksTransaction,\n\tfee: bigint,\n): void {\n\t// biome-ignore lint/suspicious/noExplicitAny: interop boundary or dynamic-shape value where typing adds friction without runtime safety\n\t(transaction.auth.spendingCondition as any).fee = fee;\n}\n\n/** Throw when a named fee tier is used with a provider (wallet) account. */\nexport function assertNoFeeTierForProvider(fee: FeeParam | undefined): void {\n\tif (isFeeTier(fee)) {\n\t\tthrow new Error(\n\t\t\t`Fee tier '${fee}' requires local signing; provider (wallet) accounts set their own fee`,\n\t\t);\n\t}\n}\n"
15
15
  ],
16
- "mappings": "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",
17
- "debugId": "E46CDD11E1FC62DE64756E2164756E21",
16
+ "mappings": "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",
17
+ "debugId": "55072949E868CA5264756E2164756E21",
18
18
  "names": []
19
19
  }
@@ -0,0 +1,22 @@
1
+ import {
2
+ readContract
3
+ } from "./stacks-msmgyerb.js";
4
+
5
+ // src/actions/public/multicall.ts
6
+ async function multicall(client, params) {
7
+ const { calls, allowFailure = true } = params;
8
+ if (allowFailure) {
9
+ const settled = await Promise.allSettled(calls.map((call) => readContract(client, call)));
10
+ return settled.map((r) => r.status === "fulfilled" ? { status: "success", result: r.value } : {
11
+ status: "failure",
12
+ error: r.reason instanceof Error ? r.reason : new Error(String(r.reason))
13
+ });
14
+ }
15
+ const results = await Promise.all(calls.map((call) => readContract(client, call)));
16
+ return results;
17
+ }
18
+
19
+ export { multicall };
20
+
21
+ //# debugId=7B700090E4A219F464756E2164756E21
22
+ //# sourceMappingURL=stacks-f0hfqaj5.js.map
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/actions/public/multicall.ts"],
4
+ "sourcesContent": [
5
+ "import type { ClarityValue } from \"../../clarity/types.ts\";\nimport type { Client } from \"../../clients/types.ts\";\nimport { readContract } from \"./readContract.ts\";\n\nexport type MulticallCall = {\n\tcontract: string;\n\tfunctionName: string;\n\targs?: ClarityValue[];\n\tsender?: string;\n};\n\nexport type MulticallParams<TAllowFailure extends boolean = true> = {\n\tcalls: readonly MulticallCall[];\n\tallowFailure?: TAllowFailure;\n};\n\nexport type MulticallSuccessResult = {\n\tstatus: \"success\";\n\tresult: ClarityValue;\n};\nexport type MulticallFailureResult = { status: \"failure\"; error: Error };\n\nexport type MulticallResult<T extends boolean> = T extends true\n\t? (MulticallSuccessResult | MulticallFailureResult)[]\n\t: ClarityValue[];\n\nexport async function multicall<TAllowFailure extends boolean = true>(\n\tclient: Client,\n\tparams: MulticallParams<TAllowFailure>,\n): Promise<MulticallResult<TAllowFailure>> {\n\tconst { calls, allowFailure = true } = params;\n\n\tif (allowFailure) {\n\t\tconst settled = await Promise.allSettled(\n\t\t\tcalls.map((call) => readContract(client, call)),\n\t\t);\n\t\treturn settled.map((r) =>\n\t\t\tr.status === \"fulfilled\"\n\t\t\t\t? { status: \"success\" as const, result: r.value }\n\t\t\t\t: {\n\t\t\t\t\t\tstatus: \"failure\" as const,\n\t\t\t\t\t\terror:\n\t\t\t\t\t\t\tr.reason instanceof Error\n\t\t\t\t\t\t\t\t? r.reason\n\t\t\t\t\t\t\t\t: new Error(String(r.reason)),\n\t\t\t\t\t},\n\t\t) as MulticallResult<TAllowFailure>;\n\t}\n\n\tconst results = await Promise.all(\n\t\tcalls.map((call) => readContract(client, call)),\n\t);\n\treturn results as MulticallResult<TAllowFailure>;\n}\n"
6
+ ],
7
+ "mappings": ";;;;;AA0BA,eAAsB,SAA+C,CACpE,QACA,QAC0C;AAAA,EAC1C,QAAQ,OAAO,eAAe,SAAS;AAAA,EAEvC,IAAI,cAAc;AAAA,IACjB,MAAM,UAAU,MAAM,QAAQ,WAC7B,MAAM,IAAI,CAAC,SAAS,aAAa,QAAQ,IAAI,CAAC,CAC/C;AAAA,IACA,OAAO,QAAQ,IAAI,CAAC,MACnB,EAAE,WAAW,cACV,EAAE,QAAQ,WAAoB,QAAQ,EAAE,MAAM,IAC9C;AAAA,MACA,QAAQ;AAAA,MACR,OACC,EAAE,kBAAkB,QACjB,EAAE,SACF,IAAI,MAAM,OAAO,EAAE,MAAM,CAAC;AAAA,IAC/B,CACH;AAAA,EACD;AAAA,EAEA,MAAM,UAAU,MAAM,QAAQ,IAC7B,MAAM,IAAI,CAAC,SAAS,aAAa,QAAQ,IAAI,CAAC,CAC/C;AAAA,EACA,OAAO;AAAA;",
8
+ "debugId": "7B700090E4A219F464756E2164756E21",
9
+ "names": []
10
+ }
@@ -1,45 +1,3 @@
1
- import {
2
- assertNoFeeTierForProvider,
3
- broadcastWithNonceReset,
4
- isFeeTier,
5
- isProviderAccount,
6
- resolveFee,
7
- resolveNonce,
8
- setUnsignedFee
9
- } from "./stacks-dmrvk1mz.js";
10
- import {
11
- MalformedResponseError
12
- } from "./stacks-fh48neva.js";
13
- import {
14
- buildContractCall,
15
- signTransactionWithAccount
16
- } from "./stacks-ssndnbbd.js";
17
- import {
18
- deserializeCVBytes,
19
- serializeCVBytes
20
- } from "./stacks-2mm20wqf.js";
21
- import {
22
- parseContractId
23
- } from "./stacks-azp00pve.js";
24
- import {
25
- bytesToHex,
26
- with0x
27
- } from "./stacks-qs5fzts5.js";
28
-
29
- // src/actions/public/getMapEntry.ts
30
- async function getMapEntry(client, params) {
31
- const [address, name] = parseContractId(params.contract);
32
- const serializedKey = with0x(bytesToHex(serializeCVBytes(params.key)));
33
- const data = await client.request(`/v2/map_entry/${address}/${name}/${params.mapName}`, {
34
- method: "POST",
35
- body: serializedKey
36
- });
37
- if (typeof data?.data !== "string") {
38
- throw new MalformedResponseError(`getMapEntry: /v2/map_entry/${address}/${name}/${params.mapName} response is missing "data"`);
39
- }
40
- return deserializeCVBytes(data.data);
41
- }
42
-
43
1
  // src/actions/wallet/callContract.ts
44
2
  async function callContract(client, params) {
45
3
  const account = client.account;
@@ -79,7 +37,5 @@ async function callContract(client, params) {
79
37
  });
80
38
  }
81
39
 
82
- export { getMapEntry, callContract };
83
-
84
- //# debugId=FF3F274BBCF0781464756E2164756E21
85
- //# sourceMappingURL=stacks-3vyvtahh.js.map
40
+ //# debugId=1FB5D6EE02D1F44B64756E2164756E21
41
+ //# sourceMappingURL=stacks-ggxnnph5.cjs.map
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/actions/wallet/callContract.ts"],
4
+ "sourcesContent": [
5
+ "import type { ClarityValue } from \"../../clarity/types.ts\";\nimport type { Client } from \"../../clients/types.ts\";\nimport type { PostCondition } from \"../../postconditions/types.ts\";\nimport { buildContractCall } from \"../../transactions/build.ts\";\nimport { signTransactionWithAccount } from \"../../transactions/signer.ts\";\nimport { parseContractId } from \"../../utils/address.ts\";\nimport type { IntegerType } from \"../../utils/encoding.ts\";\nimport { broadcastWithNonceReset, resolveNonce } from \"./nonceManager.ts\";\nimport {\n\ttype FeeParam,\n\tassertNoFeeTierForProvider,\n\tisFeeTier,\n\tisProviderAccount,\n\tresolveFee,\n\tsetUnsignedFee,\n} from \"./utils.ts\";\n\nexport type CallContractParams = {\n\tcontract: string; // \"address.name\"\n\tfunctionName: string;\n\tfunctionArgs?: ClarityValue[];\n\tfee?: FeeParam;\n\tnonce?: IntegerType;\n\tpostConditionMode?: \"allow\" | \"deny\";\n\tpostConditions?: PostCondition[];\n};\n\n/** Build, sign, and broadcast a contract call */\nexport async function callContract(\n\tclient: Client,\n\tparams: CallContractParams,\n): Promise<string> {\n\tconst account = client.account;\n\tif (!account) throw new Error(\"Account required\");\n\n\t// Validate the contract id up front so both the provider and local paths\n\t// reject malformed input instead of forwarding it to the wallet.\n\tconst [contractAddress, contractName] = parseContractId(params.contract);\n\n\t// Provider: delegate to wallet\n\tif (isProviderAccount(account)) {\n\t\tassertNoFeeTierForProvider(params.fee);\n\t\tconst result = await account.provider.request(\"stx_callContract\", {\n\t\t\tcontract: params.contract,\n\t\t\tfunctionName: params.functionName,\n\t\t\tfunctionArgs: params.functionArgs ?? [],\n\t\t});\n\t\treturn result.txid;\n\t}\n\n\t// Local/Custom: build → sign → broadcast\n\tconst nonce = params.nonce ?? (await resolveNonce(client, account.address));\n\n\tconst needsFeeResolution = params.fee === undefined || isFeeTier(params.fee);\n\n\tconst unsigned = buildContractCall({\n\t\tcontractAddress,\n\t\tcontractName,\n\t\tfunctionName: params.functionName,\n\t\tfunctionArgs: params.functionArgs ?? [],\n\t\tfee: needsFeeResolution ? 0n : (params.fee as IntegerType),\n\t\tnonce,\n\t\tpublicKey: account.publicKey,\n\t\tchain: client.chain,\n\t\tpostConditionMode: params.postConditionMode,\n\t\tpostConditions: params.postConditions,\n\t});\n\n\tif (needsFeeResolution) {\n\t\tsetUnsignedFee(unsigned, await resolveFee(client, unsigned, params.fee));\n\t}\n\n\tconst signed = await signTransactionWithAccount(unsigned, account);\n\treturn broadcastWithNonceReset(client, {\n\t\ttransaction: signed,\n\t\taddress: account.address,\n\t});\n}\n"
6
+ ],
7
+ "mappings": ";AA4BA,eAAsB,YAAY,CACjC,QACA,QACkB;AAAA,EAClB,MAAM,UAAU,OAAO;AAAA,EACvB,IAAI,CAAC;AAAA,IAAS,MAAM,IAAI,MAAM,kBAAkB;AAAA,EAIhD,OAAO,iBAAiB,gBAAgB,gBAAgB,OAAO,QAAQ;AAAA,EAGvE,IAAI,kBAAkB,OAAO,GAAG;AAAA,IAC/B,2BAA2B,OAAO,GAAG;AAAA,IACrC,MAAM,SAAS,MAAM,QAAQ,SAAS,QAAQ,oBAAoB;AAAA,MACjE,UAAU,OAAO;AAAA,MACjB,cAAc,OAAO;AAAA,MACrB,cAAc,OAAO,gBAAgB,CAAC;AAAA,IACvC,CAAC;AAAA,IACD,OAAO,OAAO;AAAA,EACf;AAAA,EAGA,MAAM,QAAQ,OAAO,SAAU,MAAM,aAAa,QAAQ,QAAQ,OAAO;AAAA,EAEzE,MAAM,qBAAqB,OAAO,QAAQ,aAAa,UAAU,OAAO,GAAG;AAAA,EAE3E,MAAM,WAAW,kBAAkB;AAAA,IAClC;AAAA,IACA;AAAA,IACA,cAAc,OAAO;AAAA,IACrB,cAAc,OAAO,gBAAgB,CAAC;AAAA,IACtC,KAAK,qBAAqB,KAAM,OAAO;AAAA,IACvC;AAAA,IACA,WAAW,QAAQ;AAAA,IACnB,OAAO,OAAO;AAAA,IACd,mBAAmB,OAAO;AAAA,IAC1B,gBAAgB,OAAO;AAAA,EACxB,CAAC;AAAA,EAED,IAAI,oBAAoB;AAAA,IACvB,eAAe,UAAU,MAAM,WAAW,QAAQ,UAAU,OAAO,GAAG,CAAC;AAAA,EACxE;AAAA,EAEA,MAAM,SAAS,MAAM,2BAA2B,UAAU,OAAO;AAAA,EACjE,OAAO,wBAAwB,QAAQ;AAAA,IACtC,aAAa;AAAA,IACb,SAAS,QAAQ;AAAA,EAClB,CAAC;AAAA;",
8
+ "debugId": "1FB5D6EE02D1F44B64756E2164756E21",
9
+ "names": []
10
+ }
@@ -0,0 +1,33 @@
1
+ import {
2
+ MalformedResponseError
3
+ } from "./stacks-fh48neva.js";
4
+ import {
5
+ deserializeCVBytes,
6
+ serializeCVBytes
7
+ } from "./stacks-2mm20wqf.js";
8
+ import {
9
+ parseContractId
10
+ } from "./stacks-azp00pve.js";
11
+ import {
12
+ bytesToHex,
13
+ with0x
14
+ } from "./stacks-qs5fzts5.js";
15
+
16
+ // src/actions/public/getMapEntry.ts
17
+ async function getMapEntry(client, params) {
18
+ const [address, name] = parseContractId(params.contract);
19
+ const serializedKey = with0x(bytesToHex(serializeCVBytes(params.key)));
20
+ const data = await client.request(`/v2/map_entry/${address}/${name}/${params.mapName}`, {
21
+ method: "POST",
22
+ body: serializedKey
23
+ });
24
+ if (typeof data?.data !== "string") {
25
+ throw new MalformedResponseError(`getMapEntry: /v2/map_entry/${address}/${name}/${params.mapName} response is missing "data"`);
26
+ }
27
+ return deserializeCVBytes(data.data);
28
+ }
29
+
30
+ export { getMapEntry };
31
+
32
+ //# debugId=40C1AB36F929B54264756E2164756E21
33
+ //# sourceMappingURL=stacks-pdcz1w1d.js.map
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/actions/public/getMapEntry.ts"],
4
+ "sourcesContent": [
5
+ "import { deserializeCVBytes } from \"../../clarity/deserialize.ts\";\nimport { serializeCVBytes } from \"../../clarity/serialize.ts\";\nimport type { ClarityValue } from \"../../clarity/types.ts\";\nimport type { Client } from \"../../clients/types.ts\";\nimport { MalformedResponseError } from \"../../errors/response.ts\";\nimport { parseContractId } from \"../../utils/address.ts\";\nimport { bytesToHex, with0x } from \"../../utils/encoding.ts\";\n\nexport type GetMapEntryParams = {\n\tcontract: string; // \"address.name\"\n\tmapName: string;\n\tkey: ClarityValue;\n};\n\nexport async function getMapEntry<T extends ClarityValue = ClarityValue>(\n\tclient: Client,\n\tparams: GetMapEntryParams,\n): Promise<T> {\n\tconst [address, name] = parseContractId(params.contract);\n\tconst serializedKey = with0x(bytesToHex(serializeCVBytes(params.key)));\n\n\tconst data = await client.request(\n\t\t`/v2/map_entry/${address}/${name}/${params.mapName}`,\n\t\t{\n\t\t\tmethod: \"POST\",\n\t\t\tbody: serializedKey,\n\t\t},\n\t);\n\n\tif (typeof data?.data !== \"string\") {\n\t\tthrow new MalformedResponseError(\n\t\t\t`getMapEntry: /v2/map_entry/${address}/${name}/${params.mapName} response is missing \"data\"`,\n\t\t);\n\t}\n\treturn deserializeCVBytes<T>(data.data);\n}\n"
6
+ ],
7
+ "mappings": ";;;;;;;;;;;;;;;;AAcA,eAAsB,WAAkD,CACvE,QACA,QACa;AAAA,EACb,OAAO,SAAS,QAAQ,gBAAgB,OAAO,QAAQ;AAAA,EACvD,MAAM,gBAAgB,OAAO,WAAW,iBAAiB,OAAO,GAAG,CAAC,CAAC;AAAA,EAErE,MAAM,OAAO,MAAM,OAAO,QACzB,iBAAiB,WAAW,QAAQ,OAAO,WAC3C;AAAA,IACC,QAAQ;AAAA,IACR,MAAM;AAAA,EACP,CACD;AAAA,EAEA,IAAI,OAAO,MAAM,SAAS,UAAU;AAAA,IACnC,MAAM,IAAI,uBACT,8BAA8B,WAAW,QAAQ,OAAO,oCACzD;AAAA,EACD;AAAA,EACA,OAAO,mBAAsB,KAAK,IAAI;AAAA;",
8
+ "debugId": "40C1AB36F929B54264756E2164756E21",
9
+ "names": []
10
+ }
@@ -1,16 +1,19 @@
1
- // src/actions/public/getMapEntry.ts
2
- async function getMapEntry(client, params) {
3
- const [address, name] = parseContractId(params.contract);
4
- const serializedKey = with0x(bytesToHex(serializeCVBytes(params.key)));
5
- const data = await client.request(`/v2/map_entry/${address}/${name}/${params.mapName}`, {
6
- method: "POST",
7
- body: serializedKey
8
- });
9
- if (typeof data?.data !== "string") {
10
- throw new MalformedResponseError(`getMapEntry: /v2/map_entry/${address}/${name}/${params.mapName} response is missing "data"`);
11
- }
12
- return deserializeCVBytes(data.data);
13
- }
1
+ import {
2
+ assertNoFeeTierForProvider,
3
+ broadcastWithNonceReset,
4
+ isFeeTier,
5
+ isProviderAccount,
6
+ resolveFee,
7
+ resolveNonce,
8
+ setUnsignedFee
9
+ } from "./stacks-y9w78e2b.js";
10
+ import {
11
+ buildContractCall,
12
+ signTransactionWithAccount
13
+ } from "./stacks-ssndnbbd.js";
14
+ import {
15
+ parseContractId
16
+ } from "./stacks-azp00pve.js";
14
17
 
15
18
  // src/actions/wallet/callContract.ts
16
19
  async function callContract(client, params) {
@@ -51,5 +54,7 @@ async function callContract(client, params) {
51
54
  });
52
55
  }
53
56
 
54
- //# debugId=B9CB858E212A7D7264756E2164756E21
55
- //# sourceMappingURL=stacks-fjrpnkt3.cjs.map
57
+ export { callContract };
58
+
59
+ //# debugId=8D1D615ACA3C254F64756E2164756E21
60
+ //# sourceMappingURL=stacks-q45x3389.js.map
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/actions/wallet/callContract.ts"],
4
+ "sourcesContent": [
5
+ "import type { ClarityValue } from \"../../clarity/types.ts\";\nimport type { Client } from \"../../clients/types.ts\";\nimport type { PostCondition } from \"../../postconditions/types.ts\";\nimport { buildContractCall } from \"../../transactions/build.ts\";\nimport { signTransactionWithAccount } from \"../../transactions/signer.ts\";\nimport { parseContractId } from \"../../utils/address.ts\";\nimport type { IntegerType } from \"../../utils/encoding.ts\";\nimport { broadcastWithNonceReset, resolveNonce } from \"./nonceManager.ts\";\nimport {\n\ttype FeeParam,\n\tassertNoFeeTierForProvider,\n\tisFeeTier,\n\tisProviderAccount,\n\tresolveFee,\n\tsetUnsignedFee,\n} from \"./utils.ts\";\n\nexport type CallContractParams = {\n\tcontract: string; // \"address.name\"\n\tfunctionName: string;\n\tfunctionArgs?: ClarityValue[];\n\tfee?: FeeParam;\n\tnonce?: IntegerType;\n\tpostConditionMode?: \"allow\" | \"deny\";\n\tpostConditions?: PostCondition[];\n};\n\n/** Build, sign, and broadcast a contract call */\nexport async function callContract(\n\tclient: Client,\n\tparams: CallContractParams,\n): Promise<string> {\n\tconst account = client.account;\n\tif (!account) throw new Error(\"Account required\");\n\n\t// Validate the contract id up front so both the provider and local paths\n\t// reject malformed input instead of forwarding it to the wallet.\n\tconst [contractAddress, contractName] = parseContractId(params.contract);\n\n\t// Provider: delegate to wallet\n\tif (isProviderAccount(account)) {\n\t\tassertNoFeeTierForProvider(params.fee);\n\t\tconst result = await account.provider.request(\"stx_callContract\", {\n\t\t\tcontract: params.contract,\n\t\t\tfunctionName: params.functionName,\n\t\t\tfunctionArgs: params.functionArgs ?? [],\n\t\t});\n\t\treturn result.txid;\n\t}\n\n\t// Local/Custom: build → sign → broadcast\n\tconst nonce = params.nonce ?? (await resolveNonce(client, account.address));\n\n\tconst needsFeeResolution = params.fee === undefined || isFeeTier(params.fee);\n\n\tconst unsigned = buildContractCall({\n\t\tcontractAddress,\n\t\tcontractName,\n\t\tfunctionName: params.functionName,\n\t\tfunctionArgs: params.functionArgs ?? [],\n\t\tfee: needsFeeResolution ? 0n : (params.fee as IntegerType),\n\t\tnonce,\n\t\tpublicKey: account.publicKey,\n\t\tchain: client.chain,\n\t\tpostConditionMode: params.postConditionMode,\n\t\tpostConditions: params.postConditions,\n\t});\n\n\tif (needsFeeResolution) {\n\t\tsetUnsignedFee(unsigned, await resolveFee(client, unsigned, params.fee));\n\t}\n\n\tconst signed = await signTransactionWithAccount(unsigned, account);\n\treturn broadcastWithNonceReset(client, {\n\t\ttransaction: signed,\n\t\taddress: account.address,\n\t});\n}\n"
6
+ ],
7
+ "mappings": ";;;;;;;;;;;;;;;;;;AA4BA,eAAsB,YAAY,CACjC,QACA,QACkB;AAAA,EAClB,MAAM,UAAU,OAAO;AAAA,EACvB,IAAI,CAAC;AAAA,IAAS,MAAM,IAAI,MAAM,kBAAkB;AAAA,EAIhD,OAAO,iBAAiB,gBAAgB,gBAAgB,OAAO,QAAQ;AAAA,EAGvE,IAAI,kBAAkB,OAAO,GAAG;AAAA,IAC/B,2BAA2B,OAAO,GAAG;AAAA,IACrC,MAAM,SAAS,MAAM,QAAQ,SAAS,QAAQ,oBAAoB;AAAA,MACjE,UAAU,OAAO;AAAA,MACjB,cAAc,OAAO;AAAA,MACrB,cAAc,OAAO,gBAAgB,CAAC;AAAA,IACvC,CAAC;AAAA,IACD,OAAO,OAAO;AAAA,EACf;AAAA,EAGA,MAAM,QAAQ,OAAO,SAAU,MAAM,aAAa,QAAQ,QAAQ,OAAO;AAAA,EAEzE,MAAM,qBAAqB,OAAO,QAAQ,aAAa,UAAU,OAAO,GAAG;AAAA,EAE3E,MAAM,WAAW,kBAAkB;AAAA,IAClC;AAAA,IACA;AAAA,IACA,cAAc,OAAO;AAAA,IACrB,cAAc,OAAO,gBAAgB,CAAC;AAAA,IACtC,KAAK,qBAAqB,KAAM,OAAO;AAAA,IACvC;AAAA,IACA,WAAW,QAAQ;AAAA,IACnB,OAAO,OAAO;AAAA,IACd,mBAAmB,OAAO;AAAA,IAC1B,gBAAgB,OAAO;AAAA,EACxB,CAAC;AAAA,EAED,IAAI,oBAAoB;AAAA,IACvB,eAAe,UAAU,MAAM,WAAW,QAAQ,UAAU,OAAO,GAAG,CAAC;AAAA,EACxE;AAAA,EAEA,MAAM,SAAS,MAAM,2BAA2B,UAAU,OAAO;AAAA,EACjE,OAAO,wBAAwB,QAAQ;AAAA,IACtC,aAAa;AAAA,IACb,SAAS,QAAQ;AAAA,EAClB,CAAC;AAAA;",
8
+ "debugId": "8D1D615ACA3C254F64756E2164756E21",
9
+ "names": []
10
+ }
@@ -1,14 +1,16 @@
1
1
  import {
2
- callContract,
3
2
  getMapEntry
4
- } from "./stacks-3vyvtahh.js";
3
+ } from "./stacks-pdcz1w1d.js";
4
+ import {
5
+ callContract
6
+ } from "./stacks-q45x3389.js";
5
7
  import {
6
8
  readContract
7
9
  } from "./stacks-msmgyerb.js";
8
10
  import {
9
11
  estimateFee,
10
12
  resolveNonce
11
- } from "./stacks-dmrvk1mz.js";
13
+ } from "./stacks-y9w78e2b.js";
12
14
  import {
13
15
  clarityValueToJSUntyped,
14
16
  jsToClarityValue,
@@ -188,5 +190,5 @@ class ContractResponseError extends Error {
188
190
 
189
191
  export { getContract, resolveNetworkContract, ContractResponseError };
190
192
 
191
- //# debugId=BBB428C76B76C91764756E2164756E21
192
- //# sourceMappingURL=stacks-hxp7v905.js.map
193
+ //# debugId=653570D9D2B660C664756E2164756E21
194
+ //# sourceMappingURL=stacks-refg7hca.js.map
@@ -4,7 +4,7 @@
4
4
  "sourcesContent": [
5
5
  "import type {\n\tAbiContract,\n\tAbiFunction,\n\tAbiMap,\n\tAbiType,\n\tAbiTypesOf,\n\tContractTypes,\n\tExtractFunctionArgs,\n\tExtractFunctionOutput,\n\tExtractMapKey,\n\tExtractMapNames,\n\tExtractMapValue,\n\tExtractPublicFunctions,\n\tExtractReadOnlyFunctions,\n} from \"../clarity/abi/index.ts\";\nimport { type ToCamelCase, toCamelCase } from \"../clarity/abi/utils.ts\";\nimport {\n\tclarityValueToJSUntyped,\n\tjsToClarityValue,\n} from \"../clarity/bridge.ts\";\nimport type { ClarityValue } from \"../clarity/types.ts\";\nimport type { Client } from \"../clients/types.ts\";\nimport type { PostCondition } from \"../postconditions/types.ts\";\nimport { buildContractCall } from \"../transactions/build.ts\";\nimport type { StacksTransaction } from \"../transactions/types.ts\";\nimport { publicKeyToAddress } from \"../utils/address.ts\";\nimport type { IntegerType } from \"../utils/encoding.ts\";\nimport { estimateFee } from \"./public/estimateFee.ts\";\nimport { getMapEntry } from \"./public/getMapEntry.ts\";\nimport { readContract } from \"./public/readContract.ts\";\nimport { callContract } from \"./wallet/callContract.ts\";\nimport { resolveNonce } from \"./wallet/nonceManager.ts\";\n\n// --- Type helpers for unwrapping response types ---\n\n/**\n * Unwrap `(response ok err)` → just the `ok` branch type. Distributes over the\n * `{ ok } | { err }` union: the `err` branch maps to `never` (it throws\n * `ContractResponseError` at runtime, so it never reaches the caller).\n */\ntype UnwrapResponse<T> = T extends { ok: infer O }\n\t? O\n\t: T extends { err: unknown }\n\t\t? never\n\t\t: T;\n\ntype ReadMethodReturn<\n\tC extends AbiContract,\n\tN extends ExtractReadOnlyFunctions<C>,\n> = UnwrapResponse<ExtractFunctionOutput<C, N>>;\n\n// --- Public type for the contract instance ---\n\n/**\n * When the ABI carries a codegen brand (`TypedAbi`), method types resolve to\n * the generated named aliases — cleaner hovers and error messages. Un-branded\n * ABIs fall back to structural inference over the as-const literal.\n */\ntype TypedReadMethods<T extends ContractTypes> = {\n\t[K in keyof T[\"functions\"] as T[\"functions\"][K][\"access\"] extends \"read-only\"\n\t\t? K\n\t\t: never]: (\n\t\targs: T[\"functions\"][K][\"args\"],\n\t) => Promise<UnwrapResponse<T[\"functions\"][K][\"ret\"]>>;\n};\n\ntype TypedCallMethods<T extends ContractTypes> = {\n\t[K in keyof T[\"functions\"] as T[\"functions\"][K][\"access\"] extends \"public\"\n\t\t? K\n\t\t: never]: (\n\t\targs: T[\"functions\"][K][\"args\"],\n\t\toptions?: ContractCallOptions,\n\t) => Promise<string>;\n};\n\ntype TypedMapMethods<T extends ContractTypes> = {\n\t[K in keyof NonNullable<T[\"maps\"]>]: (\n\t\tkey: NonNullable<T[\"maps\"]>[K][\"key\"],\n\t) => Promise<NonNullable<T[\"maps\"]>[K][\"value\"] | null>;\n};\n\ntype ReadMethods<C extends AbiContract> = [AbiTypesOf<C>] extends [never]\n\t? {\n\t\t\t[N in ExtractReadOnlyFunctions<C> as ToCamelCase<N>]: (\n\t\t\t\targs: ExtractFunctionArgs<C, N>,\n\t\t\t) => Promise<ReadMethodReturn<C, N>>;\n\t\t}\n\t: TypedReadMethods<AbiTypesOf<C>>;\n\ntype CallMethods<C extends AbiContract> = [AbiTypesOf<C>] extends [never]\n\t? {\n\t\t\t[N in ExtractPublicFunctions<C> as ToCamelCase<N>]: (\n\t\t\t\targs: ExtractFunctionArgs<C, N>,\n\t\t\t\toptions?: ContractCallOptions,\n\t\t\t) => Promise<string>;\n\t\t}\n\t: TypedCallMethods<AbiTypesOf<C>>;\n\ntype MapMethods<C extends AbiContract> = [AbiTypesOf<C>] extends [never]\n\t? {\n\t\t\t[N in ExtractMapNames<C> as ToCamelCase<N>]: (\n\t\t\t\tkey: ExtractMapKey<C, N>,\n\t\t\t) => Promise<ExtractMapValue<C, N> | null>;\n\t\t}\n\t: TypedMapMethods<AbiTypesOf<C>>;\n\nexport type ContractCallOptions = {\n\tfee?: IntegerType;\n\tnonce?: IntegerType;\n\tpostConditionMode?: \"allow\" | \"deny\";\n\tpostConditions?: PostCondition[];\n};\n\n/**\n * Options for `buildCall.*` — building an unsigned transaction for\n * wallet-signs-later flows. `publicKey` defaults to the client account's\n * public key; `fee`/`nonce` are resolved from the network when omitted.\n */\nexport type ContractBuildCallOptions = ContractCallOptions & {\n\tpublicKey?: string;\n\tsponsored?: boolean;\n};\n\ntype TypedBuildCallMethods<T extends ContractTypes> = {\n\t[K in keyof T[\"functions\"] as T[\"functions\"][K][\"access\"] extends \"public\"\n\t\t? K\n\t\t: never]: (\n\t\targs: T[\"functions\"][K][\"args\"],\n\t\toptions?: ContractBuildCallOptions,\n\t) => Promise<StacksTransaction>;\n};\n\ntype BuildCallMethods<C extends AbiContract> = [AbiTypesOf<C>] extends [never]\n\t? {\n\t\t\t[N in ExtractPublicFunctions<C> as ToCamelCase<N>]: (\n\t\t\t\targs: ExtractFunctionArgs<C, N>,\n\t\t\t\toptions?: ContractBuildCallOptions,\n\t\t\t) => Promise<StacksTransaction>;\n\t\t}\n\t: TypedBuildCallMethods<AbiTypesOf<C>>;\n\nexport type ContractInstance<C extends AbiContract> = {\n\tread: ReadMethods<C>;\n\tcall: CallMethods<C>;\n\t/** Build unsigned transactions (wallet-signs-later) — never broadcasts. */\n\tbuildCall: BuildCallMethods<C>;\n\tmaps: MapMethods<C>;\n};\n\nexport type GetContractParams<C extends AbiContract> = {\n\tclient: Client;\n\taddress: string;\n\tname: string;\n\tabi: C;\n};\n\nexport function getContract<const TAbi extends AbiContract>(\n\tparams: GetContractParams<TAbi>,\n): ContractInstance<TAbi> {\n\tconst { client, address, name: contractName, abi } = params;\n\tconst contractId = `${address}.${contractName}`;\n\n\t// Index functions/maps by name for fast lookup\n\tconst fnByName = new Map<string, AbiFunction>();\n\tfor (const fn of abi.functions) {\n\t\tfnByName.set(fn.name, fn as AbiFunction);\n\t}\n\n\tconst mapByName = new Map<string, AbiMap>();\n\tif (abi.maps) {\n\t\tfor (const m of abi.maps) {\n\t\t\tmapByName.set(m.name, m as AbiMap);\n\t\t}\n\t}\n\n\t// Build kebab→camel reverse map for function/map names\n\tconst camelToKebab = new Map<string, string>();\n\tfor (const fn of abi.functions) {\n\t\tcamelToKebab.set(toCamelCase(fn.name), fn.name);\n\t}\n\tif (abi.maps) {\n\t\tfor (const m of abi.maps) {\n\t\t\tcamelToKebab.set(toCamelCase(m.name), m.name);\n\t\t}\n\t}\n\n\tconst read = new Proxy({} as ReadMethods<TAbi>, {\n\t\tget(_target, prop: string) {\n\t\t\tconst fnName = camelToKebab.get(prop) ?? prop;\n\t\t\tconst fn = fnByName.get(fnName);\n\t\t\tif (!fn || fn.access !== \"read-only\") return undefined;\n\n\t\t\treturn async (args: Record<string, unknown>) => {\n\t\t\t\tconst clarityArgs = buildFunctionArgs(fn, args);\n\t\t\t\tconst result = await readContract(client, {\n\t\t\t\t\tcontract: contractId,\n\t\t\t\t\tfunctionName: fn.name,\n\t\t\t\t\targs: clarityArgs,\n\t\t\t\t});\n\n\t\t\t\tconst jsValue = clarityValueToJSUntyped(fn.outputs as AbiType, result);\n\n\t\t\t\t// Auto-unwrap: if output is response type, unwrap ok / throw on err\n\t\t\t\tif (isResponseOutput(fn.outputs as AbiType)) {\n\t\t\t\t\tconst resp = jsValue as { ok?: unknown; err?: unknown };\n\t\t\t\t\tif (\"ok\" in resp) return resp.ok;\n\t\t\t\t\tthrow new ContractResponseError(\n\t\t\t\t\t\t`${contractId}::${fn.name} returned (err ${formatErrValue(resp.err)})`,\n\t\t\t\t\t\tresp.err,\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn jsValue;\n\t\t\t};\n\t\t},\n\t});\n\n\tconst call = new Proxy({} as CallMethods<TAbi>, {\n\t\tget(_target, prop: string) {\n\t\t\tconst fnName = camelToKebab.get(prop) ?? prop;\n\t\t\tconst fn = fnByName.get(fnName);\n\t\t\tif (!fn || fn.access !== \"public\") return undefined;\n\n\t\t\treturn async (\n\t\t\t\targs: Record<string, unknown>,\n\t\t\t\toptions?: ContractCallOptions,\n\t\t\t) => {\n\t\t\t\tconst clarityArgs = buildFunctionArgs(fn, args);\n\t\t\t\treturn callContract(client, {\n\t\t\t\t\tcontract: contractId,\n\t\t\t\t\tfunctionName: fn.name,\n\t\t\t\t\tfunctionArgs: clarityArgs,\n\t\t\t\t\t...options,\n\t\t\t\t});\n\t\t\t};\n\t\t},\n\t});\n\n\tconst buildCall = new Proxy({} as BuildCallMethods<TAbi>, {\n\t\tget(_target, prop: string) {\n\t\t\tconst fnName = camelToKebab.get(prop) ?? prop;\n\t\t\tconst fn = fnByName.get(fnName);\n\t\t\tif (!fn || fn.access !== \"public\") return undefined;\n\n\t\t\treturn async (\n\t\t\t\targs: Record<string, unknown>,\n\t\t\t\toptions?: ContractBuildCallOptions,\n\t\t\t) => {\n\t\t\t\tconst publicKey = options?.publicKey ?? client.account?.publicKey;\n\t\t\t\tif (!publicKey) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\"buildCall requires a publicKey (pass options.publicKey or configure a client account)\",\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tconst functionArgs = buildFunctionArgs(fn, args);\n\t\t\t\tconst network = client.chain?.network ?? \"mainnet\";\n\t\t\t\tconst nonce =\n\t\t\t\t\toptions?.nonce ??\n\t\t\t\t\t(await resolveNonce(client, publicKeyToAddress(publicKey, network)));\n\n\t\t\t\tconst unsigned = buildContractCall({\n\t\t\t\t\tcontractAddress: address,\n\t\t\t\t\tcontractName,\n\t\t\t\t\tfunctionName: fn.name,\n\t\t\t\t\tfunctionArgs,\n\t\t\t\t\tfee: options?.fee ?? 0n,\n\t\t\t\t\tnonce,\n\t\t\t\t\tpublicKey,\n\t\t\t\t\tchain: client.chain,\n\t\t\t\t\tpostConditionMode: options?.postConditionMode,\n\t\t\t\t\tpostConditions: options?.postConditions,\n\t\t\t\t\tsponsored: options?.sponsored,\n\t\t\t\t});\n\n\t\t\t\tif (options?.fee === undefined) {\n\t\t\t\t\tconst estimates = await estimateFee(client, {\n\t\t\t\t\t\ttransaction: unsigned,\n\t\t\t\t\t});\n\t\t\t\t\tconst mid = estimates[1] ?? estimates[0];\n\t\t\t\t\tif (mid) {\n\t\t\t\t\t\t// biome-ignore lint/suspicious/noExplicitAny: interop boundary or dynamic-shape value where typing adds friction without runtime safety\n\t\t\t\t\t\t(unsigned.auth.spendingCondition as any).fee = BigInt(mid.fee);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn unsigned;\n\t\t\t};\n\t\t},\n\t});\n\n\tconst maps = new Proxy({} as MapMethods<TAbi>, {\n\t\tget(_target, prop: string) {\n\t\t\tconst mapName = camelToKebab.get(prop) ?? prop;\n\t\t\tconst map = mapByName.get(mapName);\n\t\t\tif (!map) return undefined;\n\n\t\t\treturn async (key: unknown) => {\n\t\t\t\tconst clarityKey = jsToClarityValue(map.key as AbiType, key);\n\t\t\t\tconst result = await getMapEntry(client, {\n\t\t\t\t\tcontract: contractId,\n\t\t\t\t\tmapName: map.name,\n\t\t\t\t\tkey: clarityKey,\n\t\t\t\t});\n\n\t\t\t\t// Map entries come back as (optional ...). If none, return null.\n\t\t\t\tif (result.type === \"none\") return null;\n\t\t\t\tif (result.type === \"some\") {\n\t\t\t\t\treturn clarityValueToJSUntyped(map.value as AbiType, result.value);\n\t\t\t\t}\n\t\t\t\t// Direct value (shouldn't normally happen, but handle gracefully)\n\t\t\t\treturn clarityValueToJSUntyped(map.value as AbiType, result);\n\t\t\t};\n\t\t},\n\t});\n\n\treturn { read, call, buildCall, maps };\n}\n\n/**\n * Resolve a network-keyed contract config for the client's chain. The contracts\n * map is keyed by network (\"mainnet\" | \"testnet\"), so selection is a direct\n * index — no per-call ternary. Throws if the client has no chain configured.\n */\nexport function resolveNetworkContract<\n\tT extends Record<\"mainnet\" | \"testnet\", { address: string }>,\n>(client: Client, contracts: T): T[\"mainnet\"] | T[\"testnet\"] {\n\tif (!client.chain) {\n\t\tthrow new Error(\"Client must have a chain configured\");\n\t}\n\treturn contracts[client.chain.network];\n}\n\n// --- Helpers ---\n\nfunction buildFunctionArgs(\n\tfn: AbiFunction,\n\targs: Record<string, unknown>,\n): ClarityValue[] {\n\treturn fn.args.map((arg) => {\n\t\tconst camelKey = toCamelCase(arg.name);\n\t\tconst hasOriginal = arg.name in args;\n\t\tconst hasCamel = camelKey in args;\n\t\tconst value = hasOriginal\n\t\t\t? args[arg.name]\n\t\t\t: hasCamel\n\t\t\t\t? args[camelKey]\n\t\t\t\t: undefined;\n\t\tif (value === undefined) throw new Error(`Missing argument: ${arg.name}`);\n\t\treturn jsToClarityValue(arg.type as AbiType, value);\n\t});\n}\n\nfunction isResponseOutput(type: AbiType): boolean {\n\treturn typeof type === \"object\" && type !== null && \"response\" in type;\n}\n\nfunction formatErrValue(value: unknown): string {\n\tif (typeof value === \"bigint\") return value.toString();\n\tif (typeof value === \"string\") return `\"${value}\"`;\n\treturn String(value);\n}\n\nexport class ContractResponseError extends Error {\n\toverride name = \"ContractResponseError\";\n\tconstructor(\n\t\tmessage: string,\n\t\tpublic readonly errorValue: unknown,\n\t) {\n\t\tsuper(message);\n\t}\n}\n"
6
6
  ],
7
- "mappings": "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",
8
- "debugId": "BBB428C76B76C91764756E2164756E21",
7
+ "mappings": "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",
8
+ "debugId": "653570D9D2B660C664756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -18,6 +18,9 @@ import {
18
18
  } from "./stacks-qs5fzts5.js";
19
19
 
20
20
  // src/actions/public/estimateFee.ts
21
+ function isValidEstimation(e) {
22
+ return typeof e === "object" && e !== null && "fee_rate" in e && "fee" in e && (typeof e.fee_rate === "number" || typeof e.fee_rate === "string") && (typeof e.fee === "number" || typeof e.fee === "string");
23
+ }
21
24
  async function estimateFee(client, params) {
22
25
  const payloadHex = bytesToHex(serializePayload(params.transaction.payload));
23
26
  const txHex = bytesToHex(serializeTransaction(params.transaction));
@@ -28,10 +31,16 @@ async function estimateFee(client, params) {
28
31
  transaction_payload: `0x${payloadHex}`
29
32
  }
30
33
  });
31
- return (data.estimations ?? []).map((e) => ({
32
- feeRate: e.fee_rate,
33
- fee: e.fee
34
- }));
34
+ const raw = data?.estimations ?? [];
35
+ return raw.map((e) => {
36
+ if (!isValidEstimation(e)) {
37
+ throw new MalformedResponseError("estimateFee: node response contains invalid fee estimation entry");
38
+ }
39
+ return {
40
+ feeRate: Number(e.fee_rate),
41
+ fee: Number(e.fee)
42
+ };
43
+ });
35
44
  }
36
45
 
37
46
  // src/actions/public/getBlockHeight.ts
@@ -466,5 +475,5 @@ function assertNoFeeTierForProvider(fee) {
466
475
 
467
476
  export { estimateFee, getBlockHeight, HttpRequestError, getNonce, extendedApiSource, indexTxSource, TransactionError, BroadcastError, TransactionAbortedError, TransactionDroppedError, WaitForTransactionTimeoutError, SerializationError, SigningError, waitForTransactionReceipt, sendTransaction, jsonRpcSource, memoryStore, createNonceManager, resolveNonce, reconcileNonce, startNonceReconciler, isNonceConflictError, broadcastWithNonceReset, isProviderAccount, isFeeTier, minimumFee, resolveFee, setUnsignedFee, assertNoFeeTierForProvider };
468
477
 
469
- //# debugId=E46CDD11E1FC62DE64756E2164756E21
470
- //# sourceMappingURL=stacks-dmrvk1mz.js.map
478
+ //# debugId=7F389EDDFF59212164756E2164756E21
479
+ //# sourceMappingURL=stacks-y9w78e2b.js.map
@@ -2,7 +2,7 @@
2
2
  "version": 3,
3
3
  "sources": ["../src/actions/public/estimateFee.ts", "../src/actions/public/getBlockHeight.ts", "../src/errors/http.ts", "../src/actions/public/getNonce.ts", "../src/actions/public/txSources.ts", "../src/errors/transaction.ts", "../src/actions/public/waitForTransactionReceipt.ts", "../src/actions/wallet/sendTransaction.ts", "../src/actions/wallet/nonceManager.ts", "../src/actions/wallet/utils.ts"],
4
4
  "sourcesContent": [
5
- "import type { Client } from \"../../clients/types.ts\";\nimport type { StacksTransaction } from \"../../transactions/types.ts\";\nimport {\n\tserializePayload,\n\tserializeTransaction,\n} from \"../../transactions/wire/serialize.ts\";\nimport { bytesToHex } from \"../../utils/encoding.ts\";\n\nexport type EstimateFeeParams = {\n\ttransaction: StacksTransaction;\n};\n\nexport type FeeEstimation = {\n\tfeeRate: number;\n\tfee: number;\n};\n\nexport async function estimateFee(\n\tclient: Client,\n\tparams: EstimateFeeParams,\n): Promise<FeeEstimation[]> {\n\tconst payloadHex = bytesToHex(serializePayload(params.transaction.payload));\n\tconst txHex = bytesToHex(serializeTransaction(params.transaction));\n\n\tconst data = await client.request(\"/v2/fees/transaction\", {\n\t\tmethod: \"POST\",\n\t\tbody: {\n\t\t\testimated_len: Math.ceil(txHex.length / 2),\n\t\t\ttransaction_payload: `0x${payloadHex}`,\n\t\t},\n\t});\n\n\t// biome-ignore lint/suspicious/noExplicitAny: interop boundary or dynamic-shape value where typing adds friction without runtime safety\n\treturn (data.estimations ?? []).map((e: any) => ({\n\t\tfeeRate: e.fee_rate,\n\t\tfee: e.fee,\n\t}));\n}\n",
5
+ "import type { Client } from \"../../clients/types.ts\";\nimport { MalformedResponseError } from \"../../errors/response.ts\";\nimport type { StacksTransaction } from \"../../transactions/types.ts\";\nimport {\n\tserializePayload,\n\tserializeTransaction,\n} from \"../../transactions/wire/serialize.ts\";\nimport { bytesToHex } from \"../../utils/encoding.ts\";\n\nexport type EstimateFeeParams = {\n\ttransaction: StacksTransaction;\n};\n\nexport type FeeEstimation = {\n\tfeeRate: number;\n\tfee: number;\n};\n\nfunction isValidEstimation(\n\te: unknown,\n): e is { fee_rate: number | string; fee: number | string } {\n\treturn (\n\t\ttypeof e === \"object\" &&\n\t\te !== null &&\n\t\t\"fee_rate\" in e &&\n\t\t\"fee\" in e &&\n\t\t(typeof (e as Record<string, unknown>).fee_rate === \"number\" ||\n\t\t\ttypeof (e as Record<string, unknown>).fee_rate === \"string\") &&\n\t\t(typeof (e as Record<string, unknown>).fee === \"number\" ||\n\t\t\ttypeof (e as Record<string, unknown>).fee === \"string\")\n\t);\n}\n\nexport async function estimateFee(\n\tclient: Client,\n\tparams: EstimateFeeParams,\n): Promise<FeeEstimation[]> {\n\tconst payloadHex = bytesToHex(serializePayload(params.transaction.payload));\n\tconst txHex = bytesToHex(serializeTransaction(params.transaction));\n\n\tconst data = await client.request(\"/v2/fees/transaction\", {\n\t\tmethod: \"POST\",\n\t\tbody: {\n\t\t\testimated_len: Math.ceil(txHex.length / 2),\n\t\t\ttransaction_payload: `0x${payloadHex}`,\n\t\t},\n\t});\n\n\tconst raw = (data as { estimations?: unknown[] })?.estimations ?? [];\n\treturn raw.map((e) => {\n\t\tif (!isValidEstimation(e)) {\n\t\t\tthrow new MalformedResponseError(\n\t\t\t\t\"estimateFee: node response contains invalid fee estimation entry\",\n\t\t\t);\n\t\t}\n\t\treturn {\n\t\t\tfeeRate: Number(e.fee_rate),\n\t\t\tfee: Number(e.fee),\n\t\t};\n\t});\n}\n",
6
6
  "import type { Client } from \"../../clients/types.ts\";\nimport { MalformedResponseError } from \"../../errors/response.ts\";\n\nexport async function getBlockHeight(client: Client): Promise<number> {\n\tconst data = await client.request(\"/v2/info\", { method: \"GET\" });\n\tif (typeof data?.stacks_tip_height !== \"number\") {\n\t\tthrow new MalformedResponseError(\n\t\t\t'getBlockHeight: /v2/info response is missing \"stacks_tip_height\"',\n\t\t);\n\t}\n\treturn data.stacks_tip_height;\n}\n",
7
7
  "import { BaseError } from \"./base.ts\";\n\n/** Thrown by the HTTP transport when a response's status isn't 2xx. */\nexport class HttpRequestError extends BaseError {\n\toverride name = \"HttpRequestError\";\n\tstatus: number;\n\n\tconstructor(status: number, options?: { cause?: Error; details?: string }) {\n\t\tsuper(`HTTP request failed with status ${status}`, options);\n\t\tthis.status = status;\n\t}\n}\n",
8
8
  "import type { Client } from \"../../clients/types.ts\";\n\nexport type GetNonceParams = {\n\taddress: string;\n};\n\nexport type GetNonceResult = {\n\tnonce: bigint;\n\tpossibleNextNonce: bigint;\n};\n\nexport async function getNonce(\n\tclient: Client,\n\tparams: GetNonceParams,\n): Promise<bigint> {\n\tconst data = await client.request(`/v2/accounts/${params.address}`, {\n\t\tmethod: \"GET\",\n\t});\n\tconst nonce = (data as { nonce?: unknown })?.nonce;\n\tif (typeof nonce !== \"number\" && typeof nonce !== \"string\") {\n\t\tthrow new Error(\n\t\t\t`getNonce: unexpected /v2/accounts response for ${params.address} (missing numeric nonce)`,\n\t\t);\n\t}\n\treturn BigInt(nonce);\n}\n",
@@ -13,7 +13,7 @@
13
13
  "import type { Client } from \"../../clients/types.ts\";\nimport { BroadcastError } from \"../../errors/transaction.ts\";\nimport type { StacksTransaction } from \"../../transactions/types.ts\";\nimport { getNonce } from \"../public/getNonce.ts\";\nimport { sendTransaction } from \"./sendTransaction.ts\";\n\n/**\n * Provides the confirmed on-chain nonce floor for an address.\n *\n * The default {@link jsonRpcSource} reads the configured node's `/v2/accounts`\n * endpoint — node-agnostic, no Hiro dependency. Other sources (mempool-aware,\n * first-party Index) can be swapped in without touching the manager.\n */\nexport type NonceManagerSource = {\n\tget(params: { client: Client; address: string }): Promise<bigint>;\n};\n\n/**\n * Holds per-address allocation state and hands out the next nonce.\n *\n * `reserve` MUST be atomic per `key`: two concurrent reservations for the same\n * key must never return the same value. The in-memory {@link memoryStore}\n * serializes with a per-key promise chain; a persisted store (Redis `INCR`,\n * Postgres `SELECT ... FOR UPDATE`) becomes the cross-process lock for the\n * multi-builder / smart-wallet-as-a-service case.\n */\nexport type NonceStore = {\n\t/**\n\t * Reserve the next nonce for `key`. `getFloor` reads the confirmed on-chain\n\t * nonce; it is only invoked when the store has no tracked value (cold start\n\t * or after {@link NonceStore.reset}).\n\t */\n\treserve(key: string, getFloor: () => Promise<bigint>): Promise<bigint>;\n\t/** Forget tracked state for `key` so the next reserve re-syncs from the floor. */\n\treset(key: string): void | Promise<void>;\n\t/**\n\t * Return the next nonce that {@link NonceStore.reserve} would hand out for\n\t * `key` WITHOUT consuming it, or `undefined` if `key` is untracked. Used by\n\t * {@link reconcileNonce} to detect drift. Optional — stores that omit it\n\t * simply opt out of reconciliation.\n\t */\n\tpeek?(key: string): Promise<bigint | undefined> | bigint | undefined;\n};\n\n/** Allocates mempool-safe sequential nonces across rapid broadcasts from one account. */\nexport type NonceManager = {\n\tconsume(params: { client: Client; address: string }): Promise<bigint>;\n\treset(params: { client: Client; address: string }): void | Promise<void>;\n\t/** Next nonce that {@link NonceManager.consume} would return without consuming it, or `undefined` if untracked. */\n\tpeek(params: {\n\t\tclient: Client;\n\t\taddress: string;\n\t}): Promise<bigint | undefined>;\n};\n\nexport type CreateNonceManagerParams = {\n\tsource?: NonceManagerSource;\n\tstore?: NonceStore;\n};\n\n/** Confirmed-nonce source backed by the configured node's `/v2/accounts` RPC (no Hiro dependency). */\nexport function jsonRpcSource(): NonceManagerSource {\n\treturn {\n\t\tget: ({ client, address }) => getNonce(client, { address }),\n\t};\n}\n\n/**\n * In-memory, single-process store. Tracks the next nonce per key and serializes\n * concurrent reservations with a per-key promise chain.\n *\n * Correct only within one process — swap in a persisted store for multi-process\n * deployments that share a signing key.\n */\nexport function memoryStore(): NonceStore {\n\tconst next = new Map<string, bigint>();\n\tconst locks = new Map<string, Promise<unknown>>();\n\n\tfunction withLock<T>(key: string, fn: () => Promise<T>): Promise<T> {\n\t\tconst prev = locks.get(key) ?? Promise.resolve();\n\t\t// Chain onto the prior reservation regardless of how it settled, so a\n\t\t// rejected reserve never wedges the key.\n\t\tconst run = prev.then(fn, fn);\n\t\tlocks.set(\n\t\t\tkey,\n\t\t\trun.catch(() => {}),\n\t\t);\n\t\treturn run;\n\t}\n\n\treturn {\n\t\treserve(key, getFloor) {\n\t\t\treturn withLock(key, async () => {\n\t\t\t\tlet current = next.get(key);\n\t\t\t\tif (current === undefined) current = await getFloor();\n\t\t\t\tnext.set(key, current + 1n);\n\t\t\t\treturn current;\n\t\t\t});\n\t\t},\n\t\treset(key) {\n\t\t\tnext.delete(key);\n\t\t},\n\t\tpeek(key) {\n\t\t\treturn next.get(key);\n\t\t},\n\t};\n}\n\nfunction nonceKey(client: Client, address: string): string {\n\treturn `${client.chain?.id ?? \"stacks\"}:${address}`;\n}\n\n/**\n * Create a nonce manager that floors on a confirmed-nonce {@link NonceManagerSource}\n * and increments a {@link NonceStore} on every {@link NonceManager.consume}.\n *\n * Defaults to {@link jsonRpcSource} + {@link memoryStore} — node-agnostic,\n * single-process, zero external dependencies.\n */\nexport function createNonceManager(\n\tparams: CreateNonceManagerParams = {},\n): NonceManager {\n\tconst source = params.source ?? jsonRpcSource();\n\tconst store = params.store ?? memoryStore();\n\n\treturn {\n\t\tconsume({ client, address }) {\n\t\t\treturn store.reserve(nonceKey(client, address), () =>\n\t\t\t\tsource.get({ client, address }),\n\t\t\t);\n\t\t},\n\t\treset({ client, address }) {\n\t\t\treturn store.reset(nonceKey(client, address));\n\t\t},\n\t\tasync peek({ client, address }) {\n\t\t\treturn store.peek?.(nonceKey(client, address));\n\t\t},\n\t};\n}\n\n/** Resolve the next nonce via the client's nonce manager, falling back to a confirmed read. */\nexport async function resolveNonce(\n\tclient: Client,\n\taddress: string,\n): Promise<bigint> {\n\tif (client.nonceManager)\n\t\treturn client.nonceManager.consume({ client, address });\n\treturn getNonce(client, { address });\n}\n\nexport type ReconcileNonceParams = {\n\tclient: Client;\n\taddress: string;\n\t/** Authoritative (ideally mempool-aware) source to reconcile against. */\n\tsource: NonceManagerSource;\n\t/**\n\t * Allow resetting DOWNWARD when the source's next nonce is below what the\n\t * store tracks — i.e. a previously-allocated tx is no longer pending or\n\t * confirmed (dropped/GC'd), so its nonce should be reused. Default `true`.\n\t *\n\t * Downward resets rely on `source` being current: with a go-forward mempool\n\t * source that lags broadcast, run reconciliation on an interval comfortably\n\t * longer than mempool propagation so a still-missing tx is genuinely dropped.\n\t * Set `false` for upward-only reconciliation (always safe).\n\t */\n\tdownward?: boolean;\n};\n\nexport type ReconcileNonceResult = {\n\t/** Whether the manager was reset (drift detected). */\n\treset: boolean;\n\t/** Authoritative next nonce from `source`. */\n\tauthoritative: bigint;\n\t/** Next nonce the store tracked, or `undefined` if untracked. */\n\ttracked: bigint | undefined;\n};\n\n/**\n * Reconcile a tracked nonce against an authoritative source, healing silent\n * drift that produces no broadcast error (a dropped/GC'd mempool tx leaving the\n * counter overshot, or the chain advancing past the local view).\n *\n * When the source's next nonce differs from the tracked value, the manager is\n * {@link NonceManager.reset}; the next `consume` re-seeds from `source`. A no-op\n * if the store is untracked or does not implement `peek`.\n */\nexport async function reconcileNonce(\n\tmanager: NonceManager,\n\tparams: ReconcileNonceParams,\n): Promise<ReconcileNonceResult> {\n\tconst { client, address, source } = params;\n\tconst downward = params.downward ?? true;\n\n\tconst authoritative = await source.get({ client, address });\n\tconst tracked = await manager.peek({ client, address });\n\n\tif (tracked === undefined || authoritative === tracked) {\n\t\treturn { reset: false, authoritative, tracked };\n\t}\n\tif (authoritative < tracked && !downward) {\n\t\treturn { reset: false, authoritative, tracked };\n\t}\n\n\tawait manager.reset({ client, address });\n\treturn { reset: true, authoritative, tracked };\n}\n\nexport type StartNonceReconcilerParams = {\n\tclient: Client;\n\taddresses: string[];\n\tsource: NonceManagerSource;\n\t/** Reconcile interval in ms. Default 60_000. Keep well above mempool propagation. */\n\tintervalMs?: number;\n\tdownward?: boolean;\n\t/** Per-address callback after each reconcile (observability). */\n\tonReconcile?: (address: string, result: ReconcileNonceResult) => void;\n\t/** Per-address error callback; reconciliation continues on the next tick. */\n\tonError?: (address: string, error: unknown) => void;\n};\n\n/**\n * Run {@link reconcileNonce} on a timer for a set of addresses.\n *\n * SINGLE-WRITER: run this in exactly ONE process. With a shared persisted store,\n * a reconciler resetting the counter while other workers allocate is racy — keep\n * reconciliation on one designated process and let the others only allocate.\n *\n * Returns a handle; call `stop()` to clear the timer.\n */\nexport function startNonceReconciler(\n\tmanager: NonceManager,\n\tparams: StartNonceReconcilerParams,\n): { stop: () => void } {\n\tconst { client, addresses, source } = params;\n\tconst intervalMs = params.intervalMs ?? 60_000;\n\n\tconst tick = async () => {\n\t\tfor (const address of addresses) {\n\t\t\ttry {\n\t\t\t\tconst result = await reconcileNonce(manager, {\n\t\t\t\t\tclient,\n\t\t\t\t\taddress,\n\t\t\t\t\tsource,\n\t\t\t\t\tdownward: params.downward,\n\t\t\t\t});\n\t\t\t\tparams.onReconcile?.(address, result);\n\t\t\t} catch (error) {\n\t\t\t\ttry {\n\t\t\t\t\tparams.onError?.(address, error);\n\t\t\t\t} catch {\n\t\t\t\t\t// A throwing onError callback must not abort the reconcile loop\n\t\t\t\t\t// or surface as an unhandled rejection on the interval timer.\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\tconst timer = setInterval(tick, intervalMs);\n\t// Don't keep the event loop alive solely for reconciliation (Node/Bun).\n\t(timer as { unref?: () => void }).unref?.();\n\n\treturn {\n\t\tstop: () => clearInterval(timer),\n\t};\n}\n\n/** True when a broadcast was rejected for a nonce conflict (`ConflictingNonceInMempool`, `BadNonce`). */\nexport function isNonceConflictError(error: unknown): boolean {\n\tif (!(error instanceof BroadcastError)) return false;\n\tif (\n\t\terror.reason === \"ConflictingNonceInMempool\" ||\n\t\terror.reason === \"BadNonce\"\n\t) {\n\t\treturn true;\n\t}\n\t// Typed reason present but not nonce-related — trust it over the message\n\t// (e.g. a FeeTooLow message mentioning \"nonce\" must not trigger a reset).\n\tif (error.reason !== undefined) return false;\n\t// No structured reason (older nodes/proxies) — fall back to message match.\n\treturn error.message.toLowerCase().includes(\"nonce\");\n}\n\n/**\n * Broadcast a signed transaction; on a nonce-conflict rejection, reset the\n * manager so the next build re-syncs to the confirmed floor.\n */\nexport async function broadcastWithNonceReset(\n\tclient: Client,\n\tparams: { transaction: StacksTransaction; address: string },\n): Promise<string> {\n\ttry {\n\t\tconst result = await sendTransaction(client, {\n\t\t\ttransaction: params.transaction,\n\t\t});\n\t\treturn result.txid;\n\t} catch (error) {\n\t\tif (client.nonceManager && isNonceConflictError(error)) {\n\t\t\tawait client.nonceManager.reset({ client, address: params.address });\n\t\t}\n\t\tthrow error;\n\t}\n}\n",
14
14
  "import type { ProviderAccount } from \"../../accounts/types.ts\";\nimport type { Account, Client } from \"../../clients/types.ts\";\nimport type { StacksTransaction } from \"../../transactions/types.ts\";\nimport { serializeTransaction } from \"../../transactions/wire/serialize.ts\";\nimport type { IntegerType } from \"../../utils/encoding.ts\";\nimport { intToBigInt } from \"../../utils/encoding.ts\";\nimport { estimateFee } from \"../public/estimateFee.ts\";\n\nexport function isProviderAccount(\n\taccount: Account,\n): account is ProviderAccount {\n\treturn account.type === \"provider\";\n}\n\n/**\n * Named fee tiers. `'low' | 'mid' | 'high'` map to the node's three fee\n * estimations; `'min'` is the node's minimum relay fee — 1 uSTX per byte of\n * the serialized transaction, computable offline.\n */\nexport type FeeTier = \"min\" | \"low\" | \"mid\" | \"high\";\n\n/** Fee input accepted by wallet actions: an explicit amount or a named tier. */\nexport type FeeParam = IntegerType | FeeTier;\n\nconst FEE_TIERS: readonly FeeTier[] = [\"min\", \"low\", \"mid\", \"high\"];\nconst TIER_INDEX = { low: 0, mid: 1, high: 2 } as const;\n\nexport function isFeeTier(fee: FeeParam | undefined): fee is FeeTier {\n\treturn typeof fee === \"string\" && FEE_TIERS.includes(fee as FeeTier);\n}\n\n/**\n * Minimum relay fee: 1 uSTX per byte of the serialized transaction. The fee\n * field is fixed-width (8 bytes), so the size — and therefore this floor — is\n * stable regardless of the fee value later set on the spending condition.\n */\nexport function minimumFee(transaction: StacksTransaction): bigint {\n\treturn BigInt(serializeTransaction(transaction).length);\n}\n\n/**\n * Resolve a fee param to a concrete amount. Numeric input passes through.\n * Tiers `'low' | 'mid' | 'high'` index the node's estimations (nearest\n * available when fewer than three are returned); `'min'` — and any estimation\n * failure (e.g. NoEstimateAvailable) — resolves to {@link minimumFee}, which\n * needs no network round-trip.\n */\nexport async function resolveFee(\n\tclient: Client,\n\ttransaction: StacksTransaction,\n\tfee: FeeParam | undefined,\n): Promise<bigint> {\n\tif (fee !== undefined && !isFeeTier(fee)) return intToBigInt(fee);\n\n\tconst tier = fee ?? \"mid\";\n\tif (tier === \"min\") return minimumFee(transaction);\n\n\ttry {\n\t\tconst estimates = await estimateFee(client, { transaction });\n\t\tconst pick = estimates[TIER_INDEX[tier]] ?? estimates[estimates.length - 1];\n\t\tif (pick) return BigInt(pick.fee);\n\t} catch {\n\t\t// Node could not produce an estimate — fall through to the relay floor.\n\t}\n\treturn minimumFee(transaction);\n}\n\n/** Set the resolved fee on an unsigned transaction's origin spending condition. */\nexport function setUnsignedFee(\n\ttransaction: StacksTransaction,\n\tfee: bigint,\n): void {\n\t// biome-ignore lint/suspicious/noExplicitAny: interop boundary or dynamic-shape value where typing adds friction without runtime safety\n\t(transaction.auth.spendingCondition as any).fee = fee;\n}\n\n/** Throw when a named fee tier is used with a provider (wallet) account. */\nexport function assertNoFeeTierForProvider(fee: FeeParam | undefined): void {\n\tif (isFeeTier(fee)) {\n\t\tthrow new Error(\n\t\t\t`Fee tier '${fee}' requires local signing; provider (wallet) accounts set their own fee`,\n\t\t);\n\t}\n}\n"
15
15
  ],
16
- "mappings": "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",
17
- "debugId": "E7253B9E2CB4DB3264756E2164756E21",
16
+ "mappings": "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",
17
+ "debugId": "7F389EDDFF59212164756E2164756E21",
18
18
  "names": []
19
19
  }
@@ -0,0 +1,16 @@
1
+ // src/actions/public/getMapEntry.ts
2
+ async function getMapEntry(client, params) {
3
+ const [address, name] = parseContractId(params.contract);
4
+ const serializedKey = with0x(bytesToHex(serializeCVBytes(params.key)));
5
+ const data = await client.request(`/v2/map_entry/${address}/${name}/${params.mapName}`, {
6
+ method: "POST",
7
+ body: serializedKey
8
+ });
9
+ if (typeof data?.data !== "string") {
10
+ throw new MalformedResponseError(`getMapEntry: /v2/map_entry/${address}/${name}/${params.mapName} response is missing "data"`);
11
+ }
12
+ return deserializeCVBytes(data.data);
13
+ }
14
+
15
+ //# debugId=8FF1E30688CBB1D764756E2164756E21
16
+ //# sourceMappingURL=stacks-yetejw9x.cjs.map
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/actions/public/getMapEntry.ts"],
4
+ "sourcesContent": [
5
+ "import { deserializeCVBytes } from \"../../clarity/deserialize.ts\";\nimport { serializeCVBytes } from \"../../clarity/serialize.ts\";\nimport type { ClarityValue } from \"../../clarity/types.ts\";\nimport type { Client } from \"../../clients/types.ts\";\nimport { MalformedResponseError } from \"../../errors/response.ts\";\nimport { parseContractId } from \"../../utils/address.ts\";\nimport { bytesToHex, with0x } from \"../../utils/encoding.ts\";\n\nexport type GetMapEntryParams = {\n\tcontract: string; // \"address.name\"\n\tmapName: string;\n\tkey: ClarityValue;\n};\n\nexport async function getMapEntry<T extends ClarityValue = ClarityValue>(\n\tclient: Client,\n\tparams: GetMapEntryParams,\n): Promise<T> {\n\tconst [address, name] = parseContractId(params.contract);\n\tconst serializedKey = with0x(bytesToHex(serializeCVBytes(params.key)));\n\n\tconst data = await client.request(\n\t\t`/v2/map_entry/${address}/${name}/${params.mapName}`,\n\t\t{\n\t\t\tmethod: \"POST\",\n\t\t\tbody: serializedKey,\n\t\t},\n\t);\n\n\tif (typeof data?.data !== \"string\") {\n\t\tthrow new MalformedResponseError(\n\t\t\t`getMapEntry: /v2/map_entry/${address}/${name}/${params.mapName} response is missing \"data\"`,\n\t\t);\n\t}\n\treturn deserializeCVBytes<T>(data.data);\n}\n"
6
+ ],
7
+ "mappings": ";AAcA,eAAsB,WAAkD,CACvE,QACA,QACa;AAAA,EACb,OAAO,SAAS,QAAQ,gBAAgB,OAAO,QAAQ;AAAA,EACvD,MAAM,gBAAgB,OAAO,WAAW,iBAAiB,OAAO,GAAG,CAAC,CAAC;AAAA,EAErE,MAAM,OAAO,MAAM,OAAO,QACzB,iBAAiB,WAAW,QAAQ,OAAO,WAC3C;AAAA,IACC,QAAQ;AAAA,IACR,MAAM;AAAA,EACP,CACD;AAAA,EAEA,IAAI,OAAO,MAAM,SAAS,UAAU;AAAA,IACnC,MAAM,IAAI,uBACT,8BAA8B,WAAW,QAAQ,OAAO,oCACzD;AAAA,EACD;AAAA,EACA,OAAO,mBAAsB,KAAK,IAAI;AAAA;",
8
+ "debugId": "8FF1E30688CBB1D764756E2164756E21",
9
+ "names": []
10
+ }