@dynamic-labs-sdk/aleo 1.30.3 → 1.31.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{constants-qOTdlckF.esm.js → constants-B5ZekPm3.esm.js} +2 -2
- package/dist/{constants-qOTdlckF.esm.js.map → constants-B5ZekPm3.esm.js.map} +1 -1
- package/dist/{constants-Cabc99e2.cjs → constants-CQhfKFAa.cjs} +2 -2
- package/dist/{constants-Cabc99e2.cjs.map → constants-CQhfKFAa.cjs.map} +1 -1
- package/dist/{getNetworkByChainId-DI-rIQUs.cjs → getNetworkByChainId-BeDTMZiX.cjs} +2 -2
- package/dist/{getNetworkByChainId-DI-rIQUs.cjs.map → getNetworkByChainId-BeDTMZiX.cjs.map} +1 -1
- package/dist/{getNetworkByChainId-DxLO0OY8.esm.js → getNetworkByChainId-BfPBALUQ.esm.js} +2 -2
- package/dist/{getNetworkByChainId-DxLO0OY8.esm.js.map → getNetworkByChainId-BfPBALUQ.esm.js.map} +1 -1
- package/dist/index.cjs +2 -2
- package/dist/index.esm.js +2 -2
- package/dist/{registerAleoNetworkProviderBuilder-lvp1G1zm.cjs → registerAleoNetworkProviderBuilder-8z8X2G-v.cjs} +2 -2
- package/dist/{registerAleoNetworkProviderBuilder-lvp1G1zm.cjs.map → registerAleoNetworkProviderBuilder-8z8X2G-v.cjs.map} +1 -1
- package/dist/{registerAleoNetworkProviderBuilder-CNmpTA0V.esm.js → registerAleoNetworkProviderBuilder-Dzpmsc0Z.esm.js} +2 -2
- package/dist/{registerAleoNetworkProviderBuilder-CNmpTA0V.esm.js.map → registerAleoNetworkProviderBuilder-Dzpmsc0Z.esm.js.map} +1 -1
- package/dist/tsconfig.lib.tsbuildinfo +1 -1
- package/dist/waas.cjs +2 -2
- package/dist/waas.esm.js +2 -2
- package/dist/walletStandard.cjs +3 -3
- package/dist/walletStandard.esm.js +3 -3
- package/package.json +3 -3
|
@@ -2,7 +2,7 @@ import { BaseError } from "@dynamic-labs-sdk/client";
|
|
|
2
2
|
|
|
3
3
|
//#region package.json
|
|
4
4
|
var name = "@dynamic-labs-sdk/aleo";
|
|
5
|
-
var version = "1.
|
|
5
|
+
var version = "1.31.1";
|
|
6
6
|
|
|
7
7
|
//#endregion
|
|
8
8
|
//#region src/errors/AleoFeatureUnsupportedError/AleoFeatureUnsupportedError.ts
|
|
@@ -40,4 +40,4 @@ const ALEO_TESTNET_NETWORK_ID = 1;
|
|
|
40
40
|
|
|
41
41
|
//#endregion
|
|
42
42
|
export { name as a, AleoFeatureUnsupportedError as i, ALEO_TESTNET_NETWORK_ID as n, version as o, MICROCREDITS_PER_CREDIT as r, ALEO_MAINNET_NETWORK_ID as t };
|
|
43
|
-
//# sourceMappingURL=constants-
|
|
43
|
+
//# sourceMappingURL=constants-B5ZekPm3.esm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants-
|
|
1
|
+
{"version":3,"file":"constants-B5ZekPm3.esm.js","names":[],"sources":["../package.json","../src/errors/AleoFeatureUnsupportedError/AleoFeatureUnsupportedError.ts","../src/utils/constants.ts"],"sourcesContent":["","import { BaseError } from '@dynamic-labs-sdk/client';\n\n/**\n * Thrown when an Aleo wallet does not advertise a feature the caller asked\n * for — e.g. a wallet that lacks `aleo:decrypt` when `decrypt(...)` is\n * invoked. Carries the feature name and the wallet display name so the\n * UI / logs can surface which wallet was missing what.\n */\nexport class AleoFeatureUnsupportedError extends BaseError {\n public readonly featureName: string;\n\n public readonly walletName: string;\n\n constructor(params: { featureName: string; walletName: string }) {\n super({\n cause: null,\n code: 'aleo_feature_unsupported_error',\n docsUrl: null,\n name: 'AleoFeatureUnsupportedError',\n shortMessage: `${params.walletName} does not support ${params.featureName}`,\n });\n\n this.featureName = params.featureName;\n this.walletName = params.walletName;\n }\n}\n","/**\n * Aleo credits are denominated in microcredits — 1 credit = 1,000,000 mc.\n * Mirrors the SUN_PER_TRX / lamports-per-sol pattern in sibling chain packages.\n */\nexport const MICROCREDITS_PER_CREDIT = 1_000_000;\n\nexport const ALEO_MAINNET_NETWORK_ID = 0;\nexport const ALEO_TESTNET_NETWORK_ID = 1;\n"],"mappings":";;;;;;;;;;;;;;ACQA,IAAa,8BAAb,cAAiD,UAAU;CACzD,AAAgB;CAEhB,AAAgB;CAEhB,YAAY,QAAqD;AAC/D,QAAM;GACJ,OAAO;GACP,MAAM;GACN,SAAS;GACT,MAAM;GACN,cAAc,GAAG,OAAO,WAAW,oBAAoB,OAAO;GAC/D,CAAC;AAEF,OAAK,cAAc,OAAO;AAC1B,OAAK,aAAa,OAAO;;;;;;;;;;ACnB7B,MAAa,0BAA0B;AAEvC,MAAa,0BAA0B;AACvC,MAAa,0BAA0B"}
|
|
@@ -2,7 +2,7 @@ let _dynamic_labs_sdk_client = require("@dynamic-labs-sdk/client");
|
|
|
2
2
|
|
|
3
3
|
//#region package.json
|
|
4
4
|
var name = "@dynamic-labs-sdk/aleo";
|
|
5
|
-
var version = "1.
|
|
5
|
+
var version = "1.31.1";
|
|
6
6
|
|
|
7
7
|
//#endregion
|
|
8
8
|
//#region src/errors/AleoFeatureUnsupportedError/AleoFeatureUnsupportedError.ts
|
|
@@ -75,4 +75,4 @@ Object.defineProperty(exports, 'version', {
|
|
|
75
75
|
return version;
|
|
76
76
|
}
|
|
77
77
|
});
|
|
78
|
-
//# sourceMappingURL=constants-
|
|
78
|
+
//# sourceMappingURL=constants-CQhfKFAa.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants-
|
|
1
|
+
{"version":3,"file":"constants-CQhfKFAa.cjs","names":["BaseError"],"sources":["../package.json","../src/errors/AleoFeatureUnsupportedError/AleoFeatureUnsupportedError.ts","../src/utils/constants.ts"],"sourcesContent":["","import { BaseError } from '@dynamic-labs-sdk/client';\n\n/**\n * Thrown when an Aleo wallet does not advertise a feature the caller asked\n * for — e.g. a wallet that lacks `aleo:decrypt` when `decrypt(...)` is\n * invoked. Carries the feature name and the wallet display name so the\n * UI / logs can surface which wallet was missing what.\n */\nexport class AleoFeatureUnsupportedError extends BaseError {\n public readonly featureName: string;\n\n public readonly walletName: string;\n\n constructor(params: { featureName: string; walletName: string }) {\n super({\n cause: null,\n code: 'aleo_feature_unsupported_error',\n docsUrl: null,\n name: 'AleoFeatureUnsupportedError',\n shortMessage: `${params.walletName} does not support ${params.featureName}`,\n });\n\n this.featureName = params.featureName;\n this.walletName = params.walletName;\n }\n}\n","/**\n * Aleo credits are denominated in microcredits — 1 credit = 1,000,000 mc.\n * Mirrors the SUN_PER_TRX / lamports-per-sol pattern in sibling chain packages.\n */\nexport const MICROCREDITS_PER_CREDIT = 1_000_000;\n\nexport const ALEO_MAINNET_NETWORK_ID = 0;\nexport const ALEO_TESTNET_NETWORK_ID = 1;\n"],"mappings":";;;;;;;;;;;;;;ACQA,IAAa,8BAAb,cAAiDA,mCAAU;CACzD,AAAgB;CAEhB,AAAgB;CAEhB,YAAY,QAAqD;AAC/D,QAAM;GACJ,OAAO;GACP,MAAM;GACN,SAAS;GACT,MAAM;GACN,cAAc,GAAG,OAAO,WAAW,oBAAoB,OAAO;GAC/D,CAAC;AAEF,OAAK,cAAc,OAAO;AAC1B,OAAK,aAAa,OAAO;;;;;;;;;;ACnB7B,MAAa,0BAA0B;AAEvC,MAAa,0BAA0B;AACvC,MAAa,0BAA0B"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const require_constants = require('./constants-
|
|
1
|
+
const require_constants = require('./constants-CQhfKFAa.cjs');
|
|
2
2
|
let _provablehq_aleo_types = require("@provablehq/aleo-types");
|
|
3
3
|
|
|
4
4
|
//#region src/utils/getNetworkByChainId/getNetworkByChainId.ts
|
|
@@ -44,4 +44,4 @@ Object.defineProperty(exports, 'getNetworkByChainId', {
|
|
|
44
44
|
return getNetworkByChainId;
|
|
45
45
|
}
|
|
46
46
|
});
|
|
47
|
-
//# sourceMappingURL=getNetworkByChainId-
|
|
47
|
+
//# sourceMappingURL=getNetworkByChainId-BeDTMZiX.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getNetworkByChainId-
|
|
1
|
+
{"version":3,"file":"getNetworkByChainId-BeDTMZiX.cjs","names":["ALEO_NETWORK_TO_ID_MAP: Partial<Record<Network, number>>","Network","ALEO_MAINNET_NETWORK_ID","ALEO_TESTNET_NETWORK_ID"],"sources":["../src/utils/getNetworkByChainId/getNetworkByChainId.ts"],"sourcesContent":["import { Network } from '@provablehq/aleo-types';\n\nimport {\n ALEO_MAINNET_NETWORK_ID,\n ALEO_TESTNET_NETWORK_ID,\n} from '../constants';\n\n/**\n * Map from `@provablehq/aleo-types` Network enum to the numeric chain id used\n * everywhere else in the SDK (`0` = mainnet, `1` = testnet).\n */\nexport const ALEO_NETWORK_TO_ID_MAP: Partial<Record<Network, number>> = {\n [Network.MAINNET]: ALEO_MAINNET_NETWORK_ID,\n [Network.TESTNET]: ALEO_TESTNET_NETWORK_ID,\n};\n\ntype GetNetworkByChainIdParams = {\n chainId: number;\n};\n\n/**\n * Resolve the `@provablehq/aleo-types` Network enum value for a numeric\n * chain id, the bridge between the SDK's chain ids and the on-chain\n * network identifier the Aleo libraries expect.\n *\n * @example\n * ```ts\n * const network = getNetworkByChainId({ chainId: 0 });\n * // → Network.MAINNET\n * ```\n *\n * @param params.chainId - The numeric chain id (`0` = mainnet, `1` = testnet).\n * @returns The matching `Network` enum value, or `undefined` when the id is not a known Aleo network.\n * @see getAleoExplorerTxUrl\n * @see isAleoNetworkProvider\n * @notInstrumented\n */\nexport const getNetworkByChainId = ({\n chainId,\n}: GetNetworkByChainIdParams): Network | undefined => {\n const entry = (\n Object.entries(ALEO_NETWORK_TO_ID_MAP) as [Network, number][]\n ).find(([, id]) => id === chainId);\n return entry?.[0];\n};\n"],"mappings":";;;;;;;;AAWA,MAAaA,yBAA2D;EACrEC,+BAAQ,UAAUC;EAClBD,+BAAQ,UAAUE;CACpB;;;;;;;;;;;;;;;;;;AAuBD,MAAa,uBAAuB,EAClC,cACoD;AAIpD,QAFE,OAAO,QAAQ,uBAAuB,CACtC,MAAM,GAAG,QAAQ,OAAO,QAAQ,GACnB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { n as ALEO_TESTNET_NETWORK_ID, t as ALEO_MAINNET_NETWORK_ID } from "./constants-
|
|
1
|
+
import { n as ALEO_TESTNET_NETWORK_ID, t as ALEO_MAINNET_NETWORK_ID } from "./constants-B5ZekPm3.esm.js";
|
|
2
2
|
import { Network } from "@provablehq/aleo-types";
|
|
3
3
|
|
|
4
4
|
//#region src/utils/getNetworkByChainId/getNetworkByChainId.ts
|
|
@@ -33,4 +33,4 @@ const getNetworkByChainId = ({ chainId }) => {
|
|
|
33
33
|
|
|
34
34
|
//#endregion
|
|
35
35
|
export { getNetworkByChainId as n, ALEO_NETWORK_TO_ID_MAP as t };
|
|
36
|
-
//# sourceMappingURL=getNetworkByChainId-
|
|
36
|
+
//# sourceMappingURL=getNetworkByChainId-BfPBALUQ.esm.js.map
|
package/dist/{getNetworkByChainId-DxLO0OY8.esm.js.map → getNetworkByChainId-BfPBALUQ.esm.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getNetworkByChainId-
|
|
1
|
+
{"version":3,"file":"getNetworkByChainId-BfPBALUQ.esm.js","names":["ALEO_NETWORK_TO_ID_MAP: Partial<Record<Network, number>>"],"sources":["../src/utils/getNetworkByChainId/getNetworkByChainId.ts"],"sourcesContent":["import { Network } from '@provablehq/aleo-types';\n\nimport {\n ALEO_MAINNET_NETWORK_ID,\n ALEO_TESTNET_NETWORK_ID,\n} from '../constants';\n\n/**\n * Map from `@provablehq/aleo-types` Network enum to the numeric chain id used\n * everywhere else in the SDK (`0` = mainnet, `1` = testnet).\n */\nexport const ALEO_NETWORK_TO_ID_MAP: Partial<Record<Network, number>> = {\n [Network.MAINNET]: ALEO_MAINNET_NETWORK_ID,\n [Network.TESTNET]: ALEO_TESTNET_NETWORK_ID,\n};\n\ntype GetNetworkByChainIdParams = {\n chainId: number;\n};\n\n/**\n * Resolve the `@provablehq/aleo-types` Network enum value for a numeric\n * chain id, the bridge between the SDK's chain ids and the on-chain\n * network identifier the Aleo libraries expect.\n *\n * @example\n * ```ts\n * const network = getNetworkByChainId({ chainId: 0 });\n * // → Network.MAINNET\n * ```\n *\n * @param params.chainId - The numeric chain id (`0` = mainnet, `1` = testnet).\n * @returns The matching `Network` enum value, or `undefined` when the id is not a known Aleo network.\n * @see getAleoExplorerTxUrl\n * @see isAleoNetworkProvider\n * @notInstrumented\n */\nexport const getNetworkByChainId = ({\n chainId,\n}: GetNetworkByChainIdParams): Network | undefined => {\n const entry = (\n Object.entries(ALEO_NETWORK_TO_ID_MAP) as [Network, number][]\n ).find(([, id]) => id === chainId);\n return entry?.[0];\n};\n"],"mappings":";;;;;;;;AAWA,MAAaA,yBAA2D;EACrE,QAAQ,UAAU;EAClB,QAAQ,UAAU;CACpB;;;;;;;;;;;;;;;;;;AAuBD,MAAa,uBAAuB,EAClC,cACoD;AAIpD,QAFE,OAAO,QAAQ,uBAAuB,CACtC,MAAM,GAAG,QAAQ,OAAO,QAAQ,GACnB"}
|
package/dist/index.cjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
const require_constants = require('./constants-
|
|
1
|
+
const require_constants = require('./constants-CQhfKFAa.cjs');
|
|
2
2
|
const require_InvalidAleoTransactionIdError = require('./InvalidAleoTransactionIdError-DRDfoh4x.cjs');
|
|
3
|
-
const require_getNetworkByChainId = require('./getNetworkByChainId-
|
|
3
|
+
const require_getNetworkByChainId = require('./getNetworkByChainId-BeDTMZiX.cjs');
|
|
4
4
|
let _dynamic_labs_sdk_assert_package_version = require("@dynamic-labs-sdk/assert-package-version");
|
|
5
5
|
let _dynamic_labs_sdk_client = require("@dynamic-labs-sdk/client");
|
|
6
6
|
|
package/dist/index.esm.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { a as name, i as AleoFeatureUnsupportedError, n as ALEO_TESTNET_NETWORK_ID, o as version, r as MICROCREDITS_PER_CREDIT, t as ALEO_MAINNET_NETWORK_ID } from "./constants-
|
|
1
|
+
import { a as name, i as AleoFeatureUnsupportedError, n as ALEO_TESTNET_NETWORK_ID, o as version, r as MICROCREDITS_PER_CREDIT, t as ALEO_MAINNET_NETWORK_ID } from "./constants-B5ZekPm3.esm.js";
|
|
2
2
|
import { n as AleoInvalidTransactionError, t as InvalidAleoTransactionIdError } from "./InvalidAleoTransactionIdError-CZoNf2SE.esm.js";
|
|
3
|
-
import { n as getNetworkByChainId, t as ALEO_NETWORK_TO_ID_MAP } from "./getNetworkByChainId-
|
|
3
|
+
import { n as getNetworkByChainId, t as ALEO_NETWORK_TO_ID_MAP } from "./getNetworkByChainId-BfPBALUQ.esm.js";
|
|
4
4
|
import { assertPackageVersion } from "@dynamic-labs-sdk/assert-package-version";
|
|
5
5
|
import { BaseError } from "@dynamic-labs-sdk/client";
|
|
6
6
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const require_constants = require('./constants-
|
|
1
|
+
const require_constants = require('./constants-CQhfKFAa.cjs');
|
|
2
2
|
let _dynamic_labs_sdk_client_core = require("@dynamic-labs-sdk/client/core");
|
|
3
3
|
|
|
4
4
|
//#region src/utils/formatMicrocreditsAsCredits/formatMicrocreditsAsCredits.ts
|
|
@@ -155,4 +155,4 @@ Object.defineProperty(exports, 'registerAleoNetworkProviderBuilder', {
|
|
|
155
155
|
return registerAleoNetworkProviderBuilder;
|
|
156
156
|
}
|
|
157
157
|
});
|
|
158
|
-
//# sourceMappingURL=registerAleoNetworkProviderBuilder-
|
|
158
|
+
//# sourceMappingURL=registerAleoNetworkProviderBuilder-8z8X2G-v.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registerAleoNetworkProviderBuilder-
|
|
1
|
+
{"version":3,"file":"registerAleoNetworkProviderBuilder-8z8X2G-v.cjs","names":["MICROCREDITS_PER_CREDIT"],"sources":["../src/utils/formatMicrocreditsAsCredits/formatMicrocreditsAsCredits.ts","../src/utils/parseAleoMicrocreditsLiteral/parseAleoMicrocreditsLiteral.ts","../src/utils/fetchAleoBalance/fetchAleoBalance.ts","../src/utils/createAleoNetworkProvider/createAleoNetworkProvider.ts","../src/registerAleoNetworkProviderBuilder/registerAleoNetworkProviderBuilder.ts"],"sourcesContent":["import { MICROCREDITS_PER_CREDIT } from '../constants';\n\nconst MICROCREDITS_PER_CREDIT_BIGINT = BigInt(MICROCREDITS_PER_CREDIT);\nconst MICROCREDIT_DECIMAL_DIGITS = String(MICROCREDITS_PER_CREDIT).length - 1;\n\n/**\n * Bounded trailing-zero strip. `padStart` produces a fractional string\n * of exactly `MICROCREDIT_DECIMAL_DIGITS` characters, so the quantifier\n * upper bound matches the maximum possible run of trailing zeros —\n * keeps the regex linear and avoids the unbounded-quantifier hotspot.\n */\nconst TRAILING_ZEROS_PATTERN = /0{1,6}$/;\n\n/**\n * Format microcredits (bigint) as a decimal credits string without\n * losing precision for balances beyond `Number.MAX_SAFE_INTEGER`.\n *\n * The integer credits portion and the microcredits remainder are\n * computed in the bigint domain, then the remainder is zero-padded to\n * six digits and trailing fractional zeros are trimmed. Whole-credit\n * balances render without a redundant `.000000` suffix.\n *\n * @notInstrumented\n */\n// eslint-disable-next-line custom-rules/require-single-object-param -- single bigint arg; named-arg ceremony would not improve clarity\nexport const formatMicrocreditsAsCredits = (microcredits: bigint): string => {\n const credits = microcredits / MICROCREDITS_PER_CREDIT_BIGINT;\n const remainder = microcredits % MICROCREDITS_PER_CREDIT_BIGINT;\n const fractional = remainder\n .toString()\n .padStart(MICROCREDIT_DECIMAL_DIGITS, '0')\n .replace(TRAILING_ZEROS_PATTERN, '');\n return fractional.length > 0 ? `${credits}.${fractional}` : `${credits}`;\n};\n","const U64_PRIVATE_SUFFIX = 'u64.private';\nconst U64_SUFFIX = 'u64';\n\n/**\n * Parse an Aleo VM mapping plaintext literal into microcredits.\n *\n * Accepts the shapes the Aleo `account` mapping endpoint actually\n * emits — e.g. `1500000u64.private`, `1_500_000u64`, or a bare integer\n * wrapped in JSON quotes. Strips the trailing `u64` / `u64.private`\n * type suffix, surrounding quotes, and the cosmetic `_` group\n * separators Aleo plaintext literals allow.\n *\n * Returns `0n` for empty input and for any payload that doesn't parse\n * as an integer. `BigInt()` throws `SyntaxError` on anything that\n * isn't a parseable integer — a corrupted RPC response, a mid-flight\n * truncation, or an upstream API change could deliver such a payload,\n * and we'd rather show a zero balance than crash the network-provider\n * machinery with an unhandled rejection.\n *\n * @notInstrumented\n */\n// eslint-disable-next-line custom-rules/require-single-object-param -- single string arg; named-arg ceremony would not improve clarity\nexport const parseAleoMicrocreditsLiteral = (raw: string): bigint => {\n let cleaned = raw.trim();\n if (cleaned.startsWith('\"') && cleaned.endsWith('\"')) {\n cleaned = cleaned.slice(1, -1);\n }\n if (cleaned.endsWith(U64_PRIVATE_SUFFIX)) {\n cleaned = cleaned.slice(0, -U64_PRIVATE_SUFFIX.length);\n } else if (cleaned.endsWith(U64_SUFFIX)) {\n cleaned = cleaned.slice(0, -U64_SUFFIX.length);\n }\n cleaned = cleaned.split('_').join('').trim();\n if (!cleaned) return BigInt(0);\n try {\n return BigInt(cleaned);\n } catch {\n return BigInt(0);\n }\n};\n","import type { NetworkData } from '@dynamic-labs-sdk/client';\n\nimport { formatMicrocreditsAsCredits } from '../formatMicrocreditsAsCredits';\nimport { parseAleoMicrocreditsLiteral } from '../parseAleoMicrocreditsLiteral';\n\ntype FetchAleoBalanceParams = {\n address: string;\n networkData: NetworkData;\n};\n\n/**\n * Aleo addresses are bech32-encoded — lowercase alphanumerics only — so we\n * can validate strictly. Refusing anything else before it reaches the URL\n * keeps `/`, `?`, `#`, `..`, etc. out of the request path (SSRF / path\n * injection defence).\n */\nconst ALEO_ADDRESS_PATTERN = /^aleo1[a-z0-9]{1,62}$/;\n\n/**\n * Fetches the public credits balance for an Aleo address by querying the\n * `account` mapping on `credits.aleo` via the network's HTTP RPC. Returns\n * the balance as a credits string (private records are not visible here —\n * they live on the wallet and require a connected adapter to enumerate).\n *\n * Returns `null` when the address is malformed or no RPC URL is\n * configured; returns `'0'` for any other failure mode (non-OK status,\n * empty body, `null` mapping, unparseable payload). This keeps the\n * function fail-soft for the network-provider machinery, which surfaces\n * the result directly to the UI.\n *\n * @notInstrumented\n */\nexport const fetchAleoBalance = async ({\n address,\n networkData,\n}: FetchAleoBalanceParams): Promise<string | null> => {\n if (!ALEO_ADDRESS_PATTERN.test(address)) {\n return null;\n }\n\n const baseUrl = networkData.rpcUrls.http[0];\n if (!baseUrl) {\n return null;\n }\n\n const base = baseUrl.endsWith('/') ? baseUrl : `${baseUrl}/`;\n const url = new URL(\n `program/credits.aleo/mapping/account/${encodeURIComponent(address)}`,\n base\n );\n const response = await fetch(url.toString());\n if (!response.ok) {\n return '0';\n }\n\n const text = await response.text();\n if (!text || text === 'null') {\n return '0';\n }\n\n const microcredits = parseAleoMicrocreditsLiteral(text);\n if (microcredits <= BigInt(0)) {\n return '0';\n }\n\n return formatMicrocreditsAsCredits(microcredits);\n};\n","import type { NetworkData } from '@dynamic-labs-sdk/client';\nimport { createBaseNetworkProvider } from '@dynamic-labs-sdk/client/core';\n\nimport type { AleoNetworkProvider } from '../../AleoNetworkProvider.types';\nimport { fetchAleoBalance } from '../fetchAleoBalance';\n\n/**\n * Build an `AleoNetworkProvider` bound to a specific `NetworkData`\n * (mainnet vs. testnet — anything the SDK config exposes). The provider\n * exposes a `getBalance({ address })` that proxies to\n * `fetchAleoBalance` over the configured RPC, returning public credits\n * only (private records require a connected wallet adapter).\n *\n * Called by `registerAleoNetworkProviderBuilder` — not invoked directly.\n *\n * @notInstrumented\n */\n \nexport const createAleoNetworkProvider = (\n networkData: NetworkData\n): AleoNetworkProvider => ({\n ...createBaseNetworkProvider('ALEO', networkData),\n getBalance: async ({ address }) => ({\n balance: await fetchAleoBalance({\n address,\n networkData,\n }),\n }),\n});\n","import type { DynamicClient } from '@dynamic-labs-sdk/client';\nimport { getNetworkProviderBuilderRegistry } from '@dynamic-labs-sdk/client/core';\n\nimport { createAleoNetworkProvider } from '../utils/createAleoNetworkProvider';\n\n/**\n * Register the Aleo network-provider builder on a Dynamic client.\n *\n * Wires `createAleoNetworkProvider` into the client's network-provider\n * builder registry under the `'ALEO'` chain key, which is how the SDK's\n * network machinery materializes a per-network provider on demand.\n * Idempotent — a second call is a no-op once the builder is registered.\n *\n * Internal: called by the Aleo extension entry points\n * (`addAleoWalletStandardExtension`, `addAleoWalletAdaptersExtension`,\n * `addAleoExtension`). Not exported from the package's public surface.\n *\n * @notInstrumented\n */\nexport const registerAleoNetworkProviderBuilder = (\n client: DynamicClient\n): void => {\n const networkProviderBuilderRegistry =\n getNetworkProviderBuilderRegistry(client);\n\n if (networkProviderBuilderRegistry.get().get('ALEO')) {\n return;\n }\n\n networkProviderBuilderRegistry.register({\n builder: createAleoNetworkProvider,\n chain: 'ALEO',\n });\n};\n"],"mappings":";;;;AAEA,MAAM,iCAAiC,OAAOA,0CAAwB;AACtE,MAAM,6BAA6B,OAAOA,0CAAwB,CAAC,SAAS;;;;;;;AAQ5E,MAAM,yBAAyB;;;;;;;;;;;;AAc/B,MAAa,+BAA+B,iBAAiC;CAC3E,MAAM,UAAU,eAAe;CAE/B,MAAM,cADY,eAAe,gCAE9B,UAAU,CACV,SAAS,4BAA4B,IAAI,CACzC,QAAQ,wBAAwB,GAAG;AACtC,QAAO,WAAW,SAAS,IAAI,GAAG,QAAQ,GAAG,eAAe,GAAG;;;;;AChCjE,MAAM,qBAAqB;AAC3B,MAAM,aAAa;;;;;;;;;;;;;;;;;;;AAqBnB,MAAa,gCAAgC,QAAwB;CACnE,IAAI,UAAU,IAAI,MAAM;AACxB,KAAI,QAAQ,WAAW,KAAI,IAAI,QAAQ,SAAS,KAAI,CAClD,WAAU,QAAQ,MAAM,GAAG,GAAG;AAEhC,KAAI,QAAQ,SAAS,mBAAmB,CACtC,WAAU,QAAQ,MAAM,GAAG,IAA2B;UAC7C,QAAQ,SAAS,WAAW,CACrC,WAAU,QAAQ,MAAM,GAAG,GAAmB;AAEhD,WAAU,QAAQ,MAAM,IAAI,CAAC,KAAK,GAAG,CAAC,MAAM;AAC5C,KAAI,CAAC,QAAS,QAAO,OAAO,EAAE;AAC9B,KAAI;AACF,SAAO,OAAO,QAAQ;SAChB;AACN,SAAO,OAAO,EAAE;;;;;;;;;;;;ACrBpB,MAAM,uBAAuB;;;;;;;;;;;;;;;AAgB7B,MAAa,mBAAmB,OAAO,EACrC,SACA,kBACoD;AACpD,KAAI,CAAC,qBAAqB,KAAK,QAAQ,CACrC,QAAO;CAGT,MAAM,UAAU,YAAY,QAAQ,KAAK;AACzC,KAAI,CAAC,QACH,QAAO;CAGT,MAAM,OAAO,QAAQ,SAAS,IAAI,GAAG,UAAU,GAAG,QAAQ;CAC1D,MAAM,MAAM,IAAI,IACd,wCAAwC,mBAAmB,QAAQ,IACnE,KACD;CACD,MAAM,WAAW,MAAM,MAAM,IAAI,UAAU,CAAC;AAC5C,KAAI,CAAC,SAAS,GACZ,QAAO;CAGT,MAAM,OAAO,MAAM,SAAS,MAAM;AAClC,KAAI,CAAC,QAAQ,SAAS,OACpB,QAAO;CAGT,MAAM,eAAe,6BAA6B,KAAK;AACvD,KAAI,gBAAgB,OAAO,EAAE,CAC3B,QAAO;AAGT,QAAO,4BAA4B,aAAa;;;;;;;;;;;;;;;;AC/ClD,MAAa,6BACX,iBACyB;CACzB,gEAA6B,QAAQ,YAAY;CACjD,YAAY,OAAO,EAAE,eAAe,EAClC,SAAS,MAAM,iBAAiB;EAC9B;EACA;EACD,CAAC,EACH;CACF;;;;;;;;;;;;;;;;;;ACTD,MAAa,sCACX,WACS;CACT,MAAM,sGAC8B,OAAO;AAE3C,KAAI,+BAA+B,KAAK,CAAC,IAAI,OAAO,CAClD;AAGF,gCAA+B,SAAS;EACtC,SAAS;EACT,OAAO;EACR,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { r as MICROCREDITS_PER_CREDIT } from "./constants-
|
|
1
|
+
import { r as MICROCREDITS_PER_CREDIT } from "./constants-B5ZekPm3.esm.js";
|
|
2
2
|
import { createBaseNetworkProvider, getNetworkProviderBuilderRegistry } from "@dynamic-labs-sdk/client/core";
|
|
3
3
|
|
|
4
4
|
//#region src/utils/formatMicrocreditsAsCredits/formatMicrocreditsAsCredits.ts
|
|
@@ -150,4 +150,4 @@ const registerAleoNetworkProviderBuilder = (client) => {
|
|
|
150
150
|
|
|
151
151
|
//#endregion
|
|
152
152
|
export { registerAleoNetworkProviderBuilder as t };
|
|
153
|
-
//# sourceMappingURL=registerAleoNetworkProviderBuilder-
|
|
153
|
+
//# sourceMappingURL=registerAleoNetworkProviderBuilder-Dzpmsc0Z.esm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registerAleoNetworkProviderBuilder-
|
|
1
|
+
{"version":3,"file":"registerAleoNetworkProviderBuilder-Dzpmsc0Z.esm.js","names":[],"sources":["../src/utils/formatMicrocreditsAsCredits/formatMicrocreditsAsCredits.ts","../src/utils/parseAleoMicrocreditsLiteral/parseAleoMicrocreditsLiteral.ts","../src/utils/fetchAleoBalance/fetchAleoBalance.ts","../src/utils/createAleoNetworkProvider/createAleoNetworkProvider.ts","../src/registerAleoNetworkProviderBuilder/registerAleoNetworkProviderBuilder.ts"],"sourcesContent":["import { MICROCREDITS_PER_CREDIT } from '../constants';\n\nconst MICROCREDITS_PER_CREDIT_BIGINT = BigInt(MICROCREDITS_PER_CREDIT);\nconst MICROCREDIT_DECIMAL_DIGITS = String(MICROCREDITS_PER_CREDIT).length - 1;\n\n/**\n * Bounded trailing-zero strip. `padStart` produces a fractional string\n * of exactly `MICROCREDIT_DECIMAL_DIGITS` characters, so the quantifier\n * upper bound matches the maximum possible run of trailing zeros —\n * keeps the regex linear and avoids the unbounded-quantifier hotspot.\n */\nconst TRAILING_ZEROS_PATTERN = /0{1,6}$/;\n\n/**\n * Format microcredits (bigint) as a decimal credits string without\n * losing precision for balances beyond `Number.MAX_SAFE_INTEGER`.\n *\n * The integer credits portion and the microcredits remainder are\n * computed in the bigint domain, then the remainder is zero-padded to\n * six digits and trailing fractional zeros are trimmed. Whole-credit\n * balances render without a redundant `.000000` suffix.\n *\n * @notInstrumented\n */\n// eslint-disable-next-line custom-rules/require-single-object-param -- single bigint arg; named-arg ceremony would not improve clarity\nexport const formatMicrocreditsAsCredits = (microcredits: bigint): string => {\n const credits = microcredits / MICROCREDITS_PER_CREDIT_BIGINT;\n const remainder = microcredits % MICROCREDITS_PER_CREDIT_BIGINT;\n const fractional = remainder\n .toString()\n .padStart(MICROCREDIT_DECIMAL_DIGITS, '0')\n .replace(TRAILING_ZEROS_PATTERN, '');\n return fractional.length > 0 ? `${credits}.${fractional}` : `${credits}`;\n};\n","const U64_PRIVATE_SUFFIX = 'u64.private';\nconst U64_SUFFIX = 'u64';\n\n/**\n * Parse an Aleo VM mapping plaintext literal into microcredits.\n *\n * Accepts the shapes the Aleo `account` mapping endpoint actually\n * emits — e.g. `1500000u64.private`, `1_500_000u64`, or a bare integer\n * wrapped in JSON quotes. Strips the trailing `u64` / `u64.private`\n * type suffix, surrounding quotes, and the cosmetic `_` group\n * separators Aleo plaintext literals allow.\n *\n * Returns `0n` for empty input and for any payload that doesn't parse\n * as an integer. `BigInt()` throws `SyntaxError` on anything that\n * isn't a parseable integer — a corrupted RPC response, a mid-flight\n * truncation, or an upstream API change could deliver such a payload,\n * and we'd rather show a zero balance than crash the network-provider\n * machinery with an unhandled rejection.\n *\n * @notInstrumented\n */\n// eslint-disable-next-line custom-rules/require-single-object-param -- single string arg; named-arg ceremony would not improve clarity\nexport const parseAleoMicrocreditsLiteral = (raw: string): bigint => {\n let cleaned = raw.trim();\n if (cleaned.startsWith('\"') && cleaned.endsWith('\"')) {\n cleaned = cleaned.slice(1, -1);\n }\n if (cleaned.endsWith(U64_PRIVATE_SUFFIX)) {\n cleaned = cleaned.slice(0, -U64_PRIVATE_SUFFIX.length);\n } else if (cleaned.endsWith(U64_SUFFIX)) {\n cleaned = cleaned.slice(0, -U64_SUFFIX.length);\n }\n cleaned = cleaned.split('_').join('').trim();\n if (!cleaned) return BigInt(0);\n try {\n return BigInt(cleaned);\n } catch {\n return BigInt(0);\n }\n};\n","import type { NetworkData } from '@dynamic-labs-sdk/client';\n\nimport { formatMicrocreditsAsCredits } from '../formatMicrocreditsAsCredits';\nimport { parseAleoMicrocreditsLiteral } from '../parseAleoMicrocreditsLiteral';\n\ntype FetchAleoBalanceParams = {\n address: string;\n networkData: NetworkData;\n};\n\n/**\n * Aleo addresses are bech32-encoded — lowercase alphanumerics only — so we\n * can validate strictly. Refusing anything else before it reaches the URL\n * keeps `/`, `?`, `#`, `..`, etc. out of the request path (SSRF / path\n * injection defence).\n */\nconst ALEO_ADDRESS_PATTERN = /^aleo1[a-z0-9]{1,62}$/;\n\n/**\n * Fetches the public credits balance for an Aleo address by querying the\n * `account` mapping on `credits.aleo` via the network's HTTP RPC. Returns\n * the balance as a credits string (private records are not visible here —\n * they live on the wallet and require a connected adapter to enumerate).\n *\n * Returns `null` when the address is malformed or no RPC URL is\n * configured; returns `'0'` for any other failure mode (non-OK status,\n * empty body, `null` mapping, unparseable payload). This keeps the\n * function fail-soft for the network-provider machinery, which surfaces\n * the result directly to the UI.\n *\n * @notInstrumented\n */\nexport const fetchAleoBalance = async ({\n address,\n networkData,\n}: FetchAleoBalanceParams): Promise<string | null> => {\n if (!ALEO_ADDRESS_PATTERN.test(address)) {\n return null;\n }\n\n const baseUrl = networkData.rpcUrls.http[0];\n if (!baseUrl) {\n return null;\n }\n\n const base = baseUrl.endsWith('/') ? baseUrl : `${baseUrl}/`;\n const url = new URL(\n `program/credits.aleo/mapping/account/${encodeURIComponent(address)}`,\n base\n );\n const response = await fetch(url.toString());\n if (!response.ok) {\n return '0';\n }\n\n const text = await response.text();\n if (!text || text === 'null') {\n return '0';\n }\n\n const microcredits = parseAleoMicrocreditsLiteral(text);\n if (microcredits <= BigInt(0)) {\n return '0';\n }\n\n return formatMicrocreditsAsCredits(microcredits);\n};\n","import type { NetworkData } from '@dynamic-labs-sdk/client';\nimport { createBaseNetworkProvider } from '@dynamic-labs-sdk/client/core';\n\nimport type { AleoNetworkProvider } from '../../AleoNetworkProvider.types';\nimport { fetchAleoBalance } from '../fetchAleoBalance';\n\n/**\n * Build an `AleoNetworkProvider` bound to a specific `NetworkData`\n * (mainnet vs. testnet — anything the SDK config exposes). The provider\n * exposes a `getBalance({ address })` that proxies to\n * `fetchAleoBalance` over the configured RPC, returning public credits\n * only (private records require a connected wallet adapter).\n *\n * Called by `registerAleoNetworkProviderBuilder` — not invoked directly.\n *\n * @notInstrumented\n */\n \nexport const createAleoNetworkProvider = (\n networkData: NetworkData\n): AleoNetworkProvider => ({\n ...createBaseNetworkProvider('ALEO', networkData),\n getBalance: async ({ address }) => ({\n balance: await fetchAleoBalance({\n address,\n networkData,\n }),\n }),\n});\n","import type { DynamicClient } from '@dynamic-labs-sdk/client';\nimport { getNetworkProviderBuilderRegistry } from '@dynamic-labs-sdk/client/core';\n\nimport { createAleoNetworkProvider } from '../utils/createAleoNetworkProvider';\n\n/**\n * Register the Aleo network-provider builder on a Dynamic client.\n *\n * Wires `createAleoNetworkProvider` into the client's network-provider\n * builder registry under the `'ALEO'` chain key, which is how the SDK's\n * network machinery materializes a per-network provider on demand.\n * Idempotent — a second call is a no-op once the builder is registered.\n *\n * Internal: called by the Aleo extension entry points\n * (`addAleoWalletStandardExtension`, `addAleoWalletAdaptersExtension`,\n * `addAleoExtension`). Not exported from the package's public surface.\n *\n * @notInstrumented\n */\nexport const registerAleoNetworkProviderBuilder = (\n client: DynamicClient\n): void => {\n const networkProviderBuilderRegistry =\n getNetworkProviderBuilderRegistry(client);\n\n if (networkProviderBuilderRegistry.get().get('ALEO')) {\n return;\n }\n\n networkProviderBuilderRegistry.register({\n builder: createAleoNetworkProvider,\n chain: 'ALEO',\n });\n};\n"],"mappings":";;;;AAEA,MAAM,iCAAiC,OAAO,wBAAwB;AACtE,MAAM,6BAA6B,OAAO,wBAAwB,CAAC,SAAS;;;;;;;AAQ5E,MAAM,yBAAyB;;;;;;;;;;;;AAc/B,MAAa,+BAA+B,iBAAiC;CAC3E,MAAM,UAAU,eAAe;CAE/B,MAAM,cADY,eAAe,gCAE9B,UAAU,CACV,SAAS,4BAA4B,IAAI,CACzC,QAAQ,wBAAwB,GAAG;AACtC,QAAO,WAAW,SAAS,IAAI,GAAG,QAAQ,GAAG,eAAe,GAAG;;;;;AChCjE,MAAM,qBAAqB;AAC3B,MAAM,aAAa;;;;;;;;;;;;;;;;;;;AAqBnB,MAAa,gCAAgC,QAAwB;CACnE,IAAI,UAAU,IAAI,MAAM;AACxB,KAAI,QAAQ,WAAW,KAAI,IAAI,QAAQ,SAAS,KAAI,CAClD,WAAU,QAAQ,MAAM,GAAG,GAAG;AAEhC,KAAI,QAAQ,SAAS,mBAAmB,CACtC,WAAU,QAAQ,MAAM,GAAG,IAA2B;UAC7C,QAAQ,SAAS,WAAW,CACrC,WAAU,QAAQ,MAAM,GAAG,GAAmB;AAEhD,WAAU,QAAQ,MAAM,IAAI,CAAC,KAAK,GAAG,CAAC,MAAM;AAC5C,KAAI,CAAC,QAAS,QAAO,OAAO,EAAE;AAC9B,KAAI;AACF,SAAO,OAAO,QAAQ;SAChB;AACN,SAAO,OAAO,EAAE;;;;;;;;;;;;ACrBpB,MAAM,uBAAuB;;;;;;;;;;;;;;;AAgB7B,MAAa,mBAAmB,OAAO,EACrC,SACA,kBACoD;AACpD,KAAI,CAAC,qBAAqB,KAAK,QAAQ,CACrC,QAAO;CAGT,MAAM,UAAU,YAAY,QAAQ,KAAK;AACzC,KAAI,CAAC,QACH,QAAO;CAGT,MAAM,OAAO,QAAQ,SAAS,IAAI,GAAG,UAAU,GAAG,QAAQ;CAC1D,MAAM,MAAM,IAAI,IACd,wCAAwC,mBAAmB,QAAQ,IACnE,KACD;CACD,MAAM,WAAW,MAAM,MAAM,IAAI,UAAU,CAAC;AAC5C,KAAI,CAAC,SAAS,GACZ,QAAO;CAGT,MAAM,OAAO,MAAM,SAAS,MAAM;AAClC,KAAI,CAAC,QAAQ,SAAS,OACpB,QAAO;CAGT,MAAM,eAAe,6BAA6B,KAAK;AACvD,KAAI,gBAAgB,OAAO,EAAE,CAC3B,QAAO;AAGT,QAAO,4BAA4B,aAAa;;;;;;;;;;;;;;;;AC/ClD,MAAa,6BACX,iBACyB;CACzB,GAAG,0BAA0B,QAAQ,YAAY;CACjD,YAAY,OAAO,EAAE,eAAe,EAClC,SAAS,MAAM,iBAAiB;EAC9B;EACA;EACD,CAAC,EACH;CACF;;;;;;;;;;;;;;;;;;ACTD,MAAa,sCACX,WACS;CACT,MAAM,iCACJ,kCAAkC,OAAO;AAE3C,KAAI,+BAA+B,KAAK,CAAC,IAAI,OAAO,CAClD;AAGF,gCAA+B,SAAS;EACtC,SAAS;EACT,OAAO;EACR,CAAC"}
|