{
  "version": 3,
  "sources": ["../src/actions/public/getBalance.ts", "../src/actions/public/getDataVar.ts", "../src/actions/public/multicall.ts"],
  "sourcesContent": [
    "import type { Client } from \"../../clients/types.ts\";\nimport { MalformedResponseError } from \"../../errors/response.ts\";\n\nexport type GetBalanceParams = {\n\taddress: string;\n};\n\nexport async function getBalance(\n\tclient: Client,\n\tparams: GetBalanceParams,\n): Promise<bigint> {\n\tconst data = await client.request(\n\t\t`/v2/accounts/${encodeURIComponent(params.address)}`,\n\t\t{\n\t\t\tmethod: \"GET\",\n\t\t},\n\t);\n\tconst balance = (data as { balance?: unknown })?.balance;\n\tif (typeof balance !== \"string\" && typeof balance !== \"number\") {\n\t\tthrow new MalformedResponseError(\n\t\t\t`getBalance: /v2/accounts/${params.address} response is missing \"balance\"`,\n\t\t);\n\t}\n\treturn BigInt(balance);\n}\n",
    "import { deserializeCVBytes } from \"../../clarity/deserialize.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\";\n\nexport type GetDataVarParams = {\n\tcontract: string; // \"address.name\"\n\tvarName: string;\n};\n\nexport async function getDataVar<T extends ClarityValue = ClarityValue>(\n\tclient: Client,\n\tparams: GetDataVarParams,\n): Promise<T> {\n\tconst [address, name] = parseContractId(params.contract);\n\tconst path = `/v2/data_var/${address}/${name}/${params.varName}?proof=0`;\n\n\tconst data = await client.request(path, { method: \"GET\" });\n\n\tif (typeof data?.data !== \"string\") {\n\t\tthrow new MalformedResponseError(\n\t\t\t`getDataVar: /v2/data_var/${address}/${name}/${params.varName} response is missing \"data\"`,\n\t\t);\n\t}\n\treturn deserializeCVBytes<T>(data.data);\n}\n",
    "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\t/**\n\t * Reads in flight at once. Default 8. Each call is its own\n\t * `/v2/contracts/call-read` request (Stacks nodes have no batch RPC), so\n\t * an uncapped fan-out turns one multicall into a burst that trips rate\n\t * limits and then retries in lockstep.\n\t */\n\tconcurrency?: number;\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\n/** Run `fn` over `items` with at most `limit` in flight, preserving order. */\nasync function mapWithConcurrency<T, R>(\n\titems: readonly T[],\n\tlimit: number,\n\tfn: (item: T) => Promise<R>,\n): Promise<PromiseSettledResult<R>[]> {\n\tconst results: PromiseSettledResult<R>[] = new Array(items.length);\n\tlet cursor = 0;\n\tconst worker = async () => {\n\t\twhile (cursor < items.length) {\n\t\t\tconst index = cursor++;\n\t\t\ttry {\n\t\t\t\tresults[index] = {\n\t\t\t\t\tstatus: \"fulfilled\",\n\t\t\t\t\tvalue: await fn(items[index] as T),\n\t\t\t\t};\n\t\t\t} catch (reason) {\n\t\t\t\tresults[index] = { status: \"rejected\", reason };\n\t\t\t}\n\t\t}\n\t};\n\tconst workers = Math.max(1, Math.min(limit, items.length));\n\tawait Promise.all(Array.from({ length: workers }, worker));\n\treturn results;\n}\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, concurrency = 8 } = params;\n\tif (!Number.isInteger(concurrency) || concurrency < 1) {\n\t\tthrow new RangeError(\n\t\t\t`multicall concurrency must be a positive integer, got ${concurrency}`,\n\t\t);\n\t}\n\n\tconst settled = await mapWithConcurrency(calls, concurrency, (call) =>\n\t\treadContract(client, call),\n\t);\n\n\tif (allowFailure) {\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: ClarityValue[] = [];\n\tfor (const r of settled) {\n\t\tif (r.status === \"rejected\") throw r.reason;\n\t\tresults.push(r.value);\n\t}\n\treturn results as MulticallResult<TAllowFailure>;\n}\n"
  ],
  "mappings": ";AAOA,eAAsB,UAAU,CAC/B,QACA,QACkB;AAAA,EAClB,MAAM,OAAO,MAAM,OAAO,QACzB,gBAAgB,mBAAmB,OAAO,OAAO,KACjD;AAAA,IACC,QAAQ;AAAA,EACT,CACD;AAAA,EACA,MAAM,UAAW,MAAgC;AAAA,EACjD,IAAI,OAAO,YAAY,YAAY,OAAO,YAAY,UAAU;AAAA,IAC/D,MAAM,IAAI,uBACT,4BAA4B,OAAO,uCACpC;AAAA,EACD;AAAA,EACA,OAAO,OAAO,OAAO;AAAA;;;ACZtB,eAAsB,UAAiD,CACtE,QACA,QACa;AAAA,EACb,OAAO,SAAS,QAAQ,gBAAgB,OAAO,QAAQ;AAAA,EACvD,MAAM,OAAO,gBAAgB,WAAW,QAAQ,OAAO;AAAA,EAEvD,MAAM,OAAO,MAAM,OAAO,QAAQ,MAAM,EAAE,QAAQ,MAAM,CAAC;AAAA,EAEzD,IAAI,OAAO,MAAM,SAAS,UAAU;AAAA,IACnC,MAAM,IAAI,uBACT,4BAA4B,WAAW,QAAQ,OAAO,oCACvD;AAAA,EACD;AAAA,EACA,OAAO,mBAAsB,KAAK,IAAI;AAAA;;;ACSvC,eAAe,kBAAwB,CACtC,OACA,OACA,IACqC;AAAA,EACrC,MAAM,UAAqC,IAAI,MAAM,MAAM,MAAM;AAAA,EACjE,IAAI,SAAS;AAAA,EACb,MAAM,SAAS,YAAY;AAAA,IAC1B,OAAO,SAAS,MAAM,QAAQ;AAAA,MAC7B,MAAM,QAAQ;AAAA,MACd,IAAI;AAAA,QACH,QAAQ,SAAS;AAAA,UAChB,QAAQ;AAAA,UACR,OAAO,MAAM,GAAG,MAAM,MAAW;AAAA,QAClC;AAAA,QACC,OAAO,QAAQ;AAAA,QAChB,QAAQ,SAAS,EAAE,QAAQ,YAAY,OAAO;AAAA;AAAA,IAEhD;AAAA;AAAA,EAED,MAAM,UAAU,KAAK,IAAI,GAAG,KAAK,IAAI,OAAO,MAAM,MAAM,CAAC;AAAA,EACzD,MAAM,QAAQ,IAAI,MAAM,KAAK,EAAE,QAAQ,QAAQ,GAAG,MAAM,CAAC;AAAA,EACzD,OAAO;AAAA;AAGR,eAAsB,SAA+C,CACpE,QACA,QAC0C;AAAA,EAC1C,QAAQ,OAAO,eAAe,MAAM,cAAc,MAAM;AAAA,EACxD,IAAI,CAAC,OAAO,UAAU,WAAW,KAAK,cAAc,GAAG;AAAA,IACtD,MAAM,IAAI,WACT,yDAAyD,aAC1D;AAAA,EACD;AAAA,EAEA,MAAM,UAAU,MAAM,mBAAmB,OAAO,aAAa,CAAC,SAC7D,aAAa,QAAQ,IAAI,CAC1B;AAAA,EAEA,IAAI,cAAc;AAAA,IACjB,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,UAA0B,CAAC;AAAA,EACjC,WAAW,KAAK,SAAS;AAAA,IACxB,IAAI,EAAE,WAAW;AAAA,MAAY,MAAM,EAAE;AAAA,IACrC,QAAQ,KAAK,EAAE,KAAK;AAAA,EACrB;AAAA,EACA,OAAO;AAAA;",
  "debugId": "2ED93CB99726CB7964756E2164756E21",
  "names": []
}