@dynamic-labs-sdk/aleo 1.12.1 → 1.13.0
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/{getNetworkByChainId-DvY-cgjC.cjs → getNetworkByChainId-DI9TQL-L.cjs} +3 -3
- package/dist/{getNetworkByChainId-DvY-cgjC.cjs.map → getNetworkByChainId-DI9TQL-L.cjs.map} +1 -1
- package/dist/{getNetworkByChainId-BVkA0R8h.esm.js → getNetworkByChainId-DWyyUbyh.esm.js} +3 -3
- package/dist/{getNetworkByChainId-BVkA0R8h.esm.js.map → getNetworkByChainId-DWyyUbyh.esm.js.map} +1 -1
- package/dist/index.cjs +6 -6
- package/dist/index.cjs.map +1 -1
- package/dist/index.esm.js +6 -6
- package/dist/index.esm.js.map +1 -1
- package/dist/isAleoNetworkProvider/isAleoNetworkProvider.d.ts +1 -1
- package/dist/isAleoWalletAccount/isAleoWalletAccount.d.ts +1 -1
- package/dist/isAleoWalletProvider/isAleoWalletProvider.d.ts +1 -1
- package/dist/registerAleoNetworkProviderBuilder/registerAleoNetworkProviderBuilder.d.ts +1 -1
- package/dist/tsconfig.lib.tsbuildinfo +1 -1
- package/dist/utils/bytesToHex/bytesToHex.d.ts +1 -1
- package/dist/utils/createAleoNetworkProvider/createAleoNetworkProvider.d.ts +1 -1
- package/dist/utils/fetchAleoBalance/fetchAleoBalance.d.ts +1 -1
- package/dist/utils/formatMicrocreditsAsCredits/formatMicrocreditsAsCredits.d.ts +1 -1
- package/dist/utils/getAleoExplorerTxUrl/getAleoExplorerTxUrl.d.ts +1 -1
- package/dist/utils/getNetworkByChainId/getNetworkByChainId.d.ts +1 -1
- package/dist/utils/isAleoMainnet/isAleoMainnet.d.ts +1 -1
- package/dist/utils/parseAleoMicrocreditsLiteral/parseAleoMicrocreditsLiteral.d.ts +1 -1
- package/dist/walletStandard/addAleoWalletStandardExtension/addAleoWalletStandardExtension.d.ts +1 -1
- package/dist/walletStandard/utils/aleoChainForChainId/aleoChainForChainId.d.ts +1 -1
- package/dist/walletStandard/utils/chainIdForAleoChain/chainIdForAleoChain.d.ts +1 -1
- package/dist/walletStandard/utils/createWalletProviderFromAleoStandardWallet/createWalletProviderFromAleoStandardWallet.d.ts +1 -1
- package/dist/walletStandard/utils/isAleoStandardWallet/isAleoStandardWallet.d.ts +1 -1
- package/dist/walletStandard/utils/normalizeAleoStandardWalletAccount/normalizeAleoStandardWalletAccount.d.ts +1 -1
- package/dist/walletStandard.cjs +13 -13
- package/dist/walletStandard.cjs.map +1 -1
- package/dist/walletStandard.esm.js +13 -13
- package/dist/walletStandard.esm.js.map +1 -1
- package/package.json +3 -3
|
@@ -8,7 +8,7 @@ type BytesToHexParams = {
|
|
|
8
8
|
* `WalletProvider` contract) and any other place we need a stable
|
|
9
9
|
* compact bytes-to-text encoding.
|
|
10
10
|
*
|
|
11
|
-
* @
|
|
11
|
+
* @notInstrumented
|
|
12
12
|
*/
|
|
13
13
|
export declare const bytesToHex: ({ bytes }: BytesToHexParams) => string;
|
|
14
14
|
export {};
|
|
@@ -9,7 +9,7 @@ import type { AleoNetworkProvider } from '../../AleoNetworkProvider.types';
|
|
|
9
9
|
*
|
|
10
10
|
* Called by `registerAleoNetworkProviderBuilder` — not invoked directly.
|
|
11
11
|
*
|
|
12
|
-
* @
|
|
12
|
+
* @notInstrumented
|
|
13
13
|
*/
|
|
14
14
|
export declare const createAleoNetworkProvider: (networkData: NetworkData) => AleoNetworkProvider;
|
|
15
15
|
//# sourceMappingURL=createAleoNetworkProvider.d.ts.map
|
|
@@ -15,7 +15,7 @@ type FetchAleoBalanceParams = {
|
|
|
15
15
|
* function fail-soft for the network-provider machinery, which surfaces
|
|
16
16
|
* the result directly to the UI.
|
|
17
17
|
*
|
|
18
|
-
* @
|
|
18
|
+
* @notInstrumented
|
|
19
19
|
*/
|
|
20
20
|
export declare const fetchAleoBalance: ({ address, networkData, }: FetchAleoBalanceParams) => Promise<string | null>;
|
|
21
21
|
export {};
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* six digits and trailing fractional zeros are trimmed. Whole-credit
|
|
8
8
|
* balances render without a redundant `.000000` suffix.
|
|
9
9
|
*
|
|
10
|
-
* @
|
|
10
|
+
* @notInstrumented
|
|
11
11
|
*/
|
|
12
12
|
export declare const formatMicrocreditsAsCredits: (microcredits: bigint) => string;
|
|
13
13
|
//# sourceMappingURL=formatMicrocreditsAsCredits.d.ts.map
|
|
@@ -19,7 +19,7 @@ type GetAleoExplorerTxUrlParams = {
|
|
|
19
19
|
*
|
|
20
20
|
* @throws InvalidAleoTransactionIdError when `txId` is not a well-formed
|
|
21
21
|
* bech32 Aleo transaction id.
|
|
22
|
-
* @
|
|
22
|
+
* @notInstrumented
|
|
23
23
|
*/
|
|
24
24
|
export declare const getAleoExplorerTxUrl: ({ txId, networkId, }: GetAleoExplorerTxUrlParams) => string;
|
|
25
25
|
export {};
|
|
@@ -15,7 +15,7 @@ type GetNetworkByChainIdParams = {
|
|
|
15
15
|
* @param params.chainId The numeric chain id (`0` = mainnet, `1` = testnet).
|
|
16
16
|
* @returns The matching `Network` enum value, or `undefined` when the id is
|
|
17
17
|
* not a known Aleo network.
|
|
18
|
-
* @
|
|
18
|
+
* @notInstrumented
|
|
19
19
|
*/
|
|
20
20
|
export declare const getNetworkByChainId: ({ chainId, }: GetNetworkByChainIdParams) => Network | undefined;
|
|
21
21
|
export {};
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* stale or unknown id falls back to testnet behaviour at the call
|
|
7
7
|
* site.
|
|
8
8
|
*
|
|
9
|
-
* @
|
|
9
|
+
* @notInstrumented
|
|
10
10
|
*/
|
|
11
11
|
export declare const isAleoMainnet: (networkId: number | string | undefined | null) => boolean;
|
|
12
12
|
//# sourceMappingURL=isAleoMainnet.d.ts.map
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* and we'd rather show a zero balance than crash the network-provider
|
|
15
15
|
* machinery with an unhandled rejection.
|
|
16
16
|
*
|
|
17
|
-
* @
|
|
17
|
+
* @notInstrumented
|
|
18
18
|
*/
|
|
19
19
|
export declare const parseAleoMicrocreditsLiteral: (raw: string) => bigint;
|
|
20
20
|
//# sourceMappingURL=parseAleoMicrocreditsLiteral.d.ts.map
|
package/dist/walletStandard/addAleoWalletStandardExtension/addAleoWalletStandardExtension.d.ts
CHANGED
|
@@ -12,7 +12,7 @@ export declare const ALEO_WALLET_STANDARD_EXTENSION_KEY = "aleoWalletStandard";
|
|
|
12
12
|
*
|
|
13
13
|
* @param [client] - The Dynamic client instance. Only required when
|
|
14
14
|
* using multiple Dynamic clients.
|
|
15
|
-
* @
|
|
15
|
+
* @notInstrumented
|
|
16
16
|
*/
|
|
17
17
|
export declare const addAleoWalletStandardExtension: (client?: import("@dynamic-labs-sdk/client").DynamicClient) => void;
|
|
18
18
|
//# sourceMappingURL=addAleoWalletStandardExtension.d.ts.map
|
|
@@ -13,7 +13,7 @@ type AleoChainForChainIdParams = {
|
|
|
13
13
|
* SDK's stringly-typed chain id into the wallet's expected `AleoChain`
|
|
14
14
|
* value.
|
|
15
15
|
*
|
|
16
|
-
* @
|
|
16
|
+
* @notInstrumented
|
|
17
17
|
*/
|
|
18
18
|
export declare const aleoChainForChainId: ({ networkId, }: AleoChainForChainIdParams) => AleoChain;
|
|
19
19
|
export {};
|
|
@@ -14,7 +14,7 @@ type ChainIdForAleoChainParams = {
|
|
|
14
14
|
* otherwise the SDK would report a different network than the one the
|
|
15
15
|
* wallet was actually connected to.
|
|
16
16
|
*
|
|
17
|
-
* @
|
|
17
|
+
* @notInstrumented
|
|
18
18
|
*/
|
|
19
19
|
export declare const chainIdForAleoChain: ({ chain, }: ChainIdForAleoChainParams) => string;
|
|
20
20
|
export {};
|
|
@@ -10,7 +10,7 @@ type CreateWalletProviderFromAleoStandardWalletParams = {
|
|
|
10
10
|
* `WalletProvider`. Unsupported features fall through as undefined methods
|
|
11
11
|
* on the returned provider — callers should guard accordingly.
|
|
12
12
|
*
|
|
13
|
-
* @
|
|
13
|
+
* @notInstrumented
|
|
14
14
|
*/
|
|
15
15
|
export declare const createWalletProviderFromAleoStandardWallet: ({ dynamicClient, walletStandardWallet, }: CreateWalletProviderFromAleoStandardWalletParams) => AleoWalletProvider;
|
|
16
16
|
export {};
|
|
@@ -9,7 +9,7 @@ import type { TypedStandardWallet } from '../../AleoStandardWallet.types';
|
|
|
9
9
|
* configured window key, including the wallet's own `.providers`
|
|
10
10
|
* sibling for EIP-5749-style multi-wallet injections).
|
|
11
11
|
*
|
|
12
|
-
* @
|
|
12
|
+
* @notInstrumented
|
|
13
13
|
*/
|
|
14
14
|
export declare const isAleoStandardWallet: (value: unknown) => value is TypedStandardWallet;
|
|
15
15
|
//# sourceMappingURL=isAleoStandardWallet.d.ts.map
|
|
@@ -15,7 +15,7 @@ type NormalizeAleoStandardWalletAccountParams = {
|
|
|
15
15
|
* account entries to the bare address string the Dynamic SDK works
|
|
16
16
|
* with.
|
|
17
17
|
*
|
|
18
|
-
* @
|
|
18
|
+
* @notInstrumented
|
|
19
19
|
*/
|
|
20
20
|
export declare const normalizeAleoStandardWalletAccount: ({ account, }: NormalizeAleoStandardWalletAccountParams) => string;
|
|
21
21
|
export {};
|
package/dist/walletStandard.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const require_getNetworkByChainId = require('./getNetworkByChainId-
|
|
1
|
+
const require_getNetworkByChainId = require('./getNetworkByChainId-DI9TQL-L.cjs');
|
|
2
2
|
let _dynamic_labs_sdk_assert_package_version = require("@dynamic-labs-sdk/assert-package-version");
|
|
3
3
|
let _dynamic_labs_sdk_client = require("@dynamic-labs-sdk/client");
|
|
4
4
|
let _provablehq_aleo_types = require("@provablehq/aleo-types");
|
|
@@ -25,7 +25,7 @@ const TRAILING_ZEROS_PATTERN = /0{1,6}$/;
|
|
|
25
25
|
* six digits and trailing fractional zeros are trimmed. Whole-credit
|
|
26
26
|
* balances render without a redundant `.000000` suffix.
|
|
27
27
|
*
|
|
28
|
-
* @
|
|
28
|
+
* @notInstrumented
|
|
29
29
|
*/
|
|
30
30
|
const formatMicrocreditsAsCredits = (microcredits) => {
|
|
31
31
|
const credits = microcredits / MICROCREDITS_PER_CREDIT_BIGINT;
|
|
@@ -53,7 +53,7 @@ const U64_SUFFIX = "u64";
|
|
|
53
53
|
* and we'd rather show a zero balance than crash the network-provider
|
|
54
54
|
* machinery with an unhandled rejection.
|
|
55
55
|
*
|
|
56
|
-
* @
|
|
56
|
+
* @notInstrumented
|
|
57
57
|
*/
|
|
58
58
|
const parseAleoMicrocreditsLiteral = (raw) => {
|
|
59
59
|
let cleaned = raw.trim();
|
|
@@ -90,7 +90,7 @@ const ALEO_ADDRESS_PATTERN = /^aleo1[a-z0-9]{1,62}$/;
|
|
|
90
90
|
* function fail-soft for the network-provider machinery, which surfaces
|
|
91
91
|
* the result directly to the UI.
|
|
92
92
|
*
|
|
93
|
-
* @
|
|
93
|
+
* @notInstrumented
|
|
94
94
|
*/
|
|
95
95
|
const fetchAleoBalance = async ({ address, networkData }) => {
|
|
96
96
|
if (!ALEO_ADDRESS_PATTERN.test(address)) return null;
|
|
@@ -118,7 +118,7 @@ const fetchAleoBalance = async ({ address, networkData }) => {
|
|
|
118
118
|
*
|
|
119
119
|
* Called by `registerAleoNetworkProviderBuilder` — not invoked directly.
|
|
120
120
|
*
|
|
121
|
-
* @
|
|
121
|
+
* @notInstrumented
|
|
122
122
|
*/
|
|
123
123
|
const createAleoNetworkProvider = (networkData) => ({
|
|
124
124
|
...(0, _dynamic_labs_sdk_client_core.createBaseNetworkProvider)("ALEO", networkData),
|
|
@@ -142,7 +142,7 @@ const createAleoNetworkProvider = (networkData) => ({
|
|
|
142
142
|
* (`addAleoWalletStandardExtension`, `addAleoWalletAdaptersExtension`,
|
|
143
143
|
* `addAleoExtension`). Not exported from the package's public surface.
|
|
144
144
|
*
|
|
145
|
-
* @
|
|
145
|
+
* @notInstrumented
|
|
146
146
|
*/
|
|
147
147
|
const registerAleoNetworkProviderBuilder = (client) => {
|
|
148
148
|
const networkProviderBuilderRegistry = (0, _dynamic_labs_sdk_client_core.getNetworkProviderBuilderRegistry)(client);
|
|
@@ -178,7 +178,7 @@ const ALEO_STANDARD_WALLET_WINDOW_KEYS = ["shield"];
|
|
|
178
178
|
* `WalletProvider` contract) and any other place we need a stable
|
|
179
179
|
* compact bytes-to-text encoding.
|
|
180
180
|
*
|
|
181
|
-
* @
|
|
181
|
+
* @notInstrumented
|
|
182
182
|
*/
|
|
183
183
|
const bytesToHex = ({ bytes }) => Array.from(bytes, (b) => b.toString(16).padStart(2, "0")).join("");
|
|
184
184
|
|
|
@@ -191,7 +191,7 @@ const bytesToHex = ({ bytes }) => Array.from(bytes, (b) => b.toString(16).padSta
|
|
|
191
191
|
* SDK's stringly-typed chain id into the wallet's expected `AleoChain`
|
|
192
192
|
* value.
|
|
193
193
|
*
|
|
194
|
-
* @
|
|
194
|
+
* @notInstrumented
|
|
195
195
|
*/
|
|
196
196
|
const aleoChainForChainId = ({ networkId }) => Number(networkId) === require_getNetworkByChainId.ALEO_MAINNET_NETWORK_ID ? _provablehq_aleo_wallet_standard.ALEO_CHAINS.MAINNET : _provablehq_aleo_wallet_standard.ALEO_CHAINS.TESTNET;
|
|
197
197
|
|
|
@@ -204,7 +204,7 @@ const aleoChainForChainId = ({ networkId }) => Number(networkId) === require_get
|
|
|
204
204
|
* otherwise the SDK would report a different network than the one the
|
|
205
205
|
* wallet was actually connected to.
|
|
206
206
|
*
|
|
207
|
-
* @
|
|
207
|
+
* @notInstrumented
|
|
208
208
|
*/
|
|
209
209
|
const chainIdForAleoChain = ({ chain }) => {
|
|
210
210
|
if (chain === _provablehq_aleo_wallet_standard.ALEO_CHAINS.MAINNET || chain === void 0) return String(require_getNetworkByChainId.ALEO_NETWORK_TO_ID_MAP[_provablehq_aleo_types.Network.MAINNET]);
|
|
@@ -218,7 +218,7 @@ const chainIdForAleoChain = ({ chain }) => {
|
|
|
218
218
|
* account entries to the bare address string the Dynamic SDK works
|
|
219
219
|
* with.
|
|
220
220
|
*
|
|
221
|
-
* @
|
|
221
|
+
* @notInstrumented
|
|
222
222
|
*/
|
|
223
223
|
const normalizeAleoStandardWalletAccount = ({ account }) => typeof account === "string" ? account : account.address;
|
|
224
224
|
|
|
@@ -229,7 +229,7 @@ const normalizeAleoStandardWalletAccount = ({ account }) => typeof account === "
|
|
|
229
229
|
* `WalletProvider`. Unsupported features fall through as undefined methods
|
|
230
230
|
* on the returned provider — callers should guard accordingly.
|
|
231
231
|
*
|
|
232
|
-
* @
|
|
232
|
+
* @notInstrumented
|
|
233
233
|
*/
|
|
234
234
|
const createWalletProviderFromAleoStandardWallet = ({ dynamicClient, walletStandardWallet }) => {
|
|
235
235
|
const chain = "ALEO";
|
|
@@ -359,7 +359,7 @@ const createWalletProviderFromAleoStandardWallet = ({ dynamicClient, walletStand
|
|
|
359
359
|
* configured window key, including the wallet's own `.providers`
|
|
360
360
|
* sibling for EIP-5749-style multi-wallet injections).
|
|
361
361
|
*
|
|
362
|
-
* @
|
|
362
|
+
* @notInstrumented
|
|
363
363
|
*/
|
|
364
364
|
const isAleoStandardWallet = (value) => typeof value === "object" && value !== null && "features" in value && typeof value.features === "object";
|
|
365
365
|
|
|
@@ -379,7 +379,7 @@ const ALEO_WALLET_STANDARD_EXTENSION_KEY = "aleoWalletStandard";
|
|
|
379
379
|
*
|
|
380
380
|
* @param [client] - The Dynamic client instance. Only required when
|
|
381
381
|
* using multiple Dynamic clients.
|
|
382
|
-
* @
|
|
382
|
+
* @notInstrumented
|
|
383
383
|
*/
|
|
384
384
|
const addAleoWalletStandardExtension = (client = (0, _dynamic_labs_sdk_client_core.getDefaultClient)()) => {
|
|
385
385
|
if ((0, _dynamic_labs_sdk_client_core.hasExtension)({ extensionKey: ALEO_WALLET_STANDARD_EXTENSION_KEY }, client)) return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"walletStandard.cjs","names":["MICROCREDITS_PER_CREDIT","ALEO_STANDARD_WALLET_WINDOW_KEYS: readonly string[]","ALEO_MAINNET_NETWORK_ID","ALEO_CHAINS","ALEO_CHAINS","ALEO_NETWORK_TO_ID_MAP","Network","chain: Chain","metadata: WalletProviderMetadata","WalletProviderEnum","connect: AleoWalletProvider['connect']","WalletFeatureName","AleoFeatureUnsupportedError","initialChain: AleoChain","ALEO_CHAINS","WalletDecryptPermission","destroy: AleoWalletProvider['destroy']","getActiveNetworkId: AleoWalletProvider['getActiveNetworkId']","getConnectedAddresses: AleoWalletProvider['getConnectedAddresses']","signMessage: AleoWalletProvider['signMessage']","switchActiveNetwork: AleoWalletProvider['switchActiveNetwork']","network: Network","Network","requestTransaction: AleoWalletProvider['requestTransaction']","aleoTransaction: AleoTransaction","decrypt: AleoWalletProvider['decrypt']","requestRecords: AleoWalletProvider['requestRecords']","WalletProviderPriority","packageName","packageVersion"],"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","../src/walletStandard/aleoStandardWalletWindowKeys.ts","../src/utils/bytesToHex/bytesToHex.ts","../src/walletStandard/utils/aleoChainForChainId/aleoChainForChainId.ts","../src/walletStandard/utils/chainIdForAleoChain/chainIdForAleoChain.ts","../src/walletStandard/utils/normalizeAleoStandardWalletAccount/normalizeAleoStandardWalletAccount.ts","../src/walletStandard/utils/createWalletProviderFromAleoStandardWallet/createWalletProviderFromAleoStandardWallet.ts","../src/walletStandard/utils/isAleoStandardWallet/isAleoStandardWallet.ts","../src/walletStandard/addAleoWalletStandardExtension/addAleoWalletStandardExtension.ts","../src/exports/walletStandard.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 * @not-instrumented\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 * @not-instrumented\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 * @not-instrumented\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 * @not-instrumented\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 * @not-instrumented\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","/**\n * The `window` keys at which known Aleo Wallet Standard wallets inject\n * themselves. Scanned by `addAleoWalletStandardExtension` to discover\n * available wallets — analogous to EVM's hardcoded `'ethereum'` path in\n * `getEvmInjectedProviders`, or Tron's hardcoded adapter constructors\n * in `addTronWalletAdaptersExtension`.\n *\n * As new wallets adopt `@provablehq/aleo-wallet-standard`, add their\n * injection key here. Wallets that use the legacy adapter API\n * (`@provablehq/aleo-wallet-adaptor-core` — Leo, Puzzle, Fox, etc.) are\n * registered through `addAleoWalletAdaptersExtension` instead.\n */\nexport const ALEO_STANDARD_WALLET_WINDOW_KEYS: readonly string[] = ['shield'];\n","type BytesToHexParams = {\n bytes: Uint8Array;\n};\n\n/**\n * Encode a `Uint8Array` as a lowercase hex string with no separator.\n * Used to render Aleo signature bytes for the `signMessage` provider\n * surface (which yields a hex `signature: string` per the Dynamic\n * `WalletProvider` contract) and any other place we need a stable\n * compact bytes-to-text encoding.\n *\n * @not-instrumented\n */\nexport const bytesToHex = ({ bytes }: BytesToHexParams): string =>\n Array.from(bytes, (b) => b.toString(16).padStart(2, '0')).join('');\n","import {\n ALEO_CHAINS,\n type AleoChain,\n} from '@provablehq/aleo-wallet-standard';\n\nimport { ALEO_MAINNET_NETWORK_ID } from '../../../utils/constants';\n\ntype AleoChainForChainIdParams = {\n /**\n * The Dynamic numeric chain id, as a string. `'0'` is mainnet;\n * anything else is treated as testnet.\n */\n networkId: string;\n};\n\n/**\n * Inverse of `chainIdForAleoChain` — resolve the Aleo Wallet Standard\n * chain string for a Dynamic numeric chain id. Used by the\n * walletStandard provider's `switchActiveNetwork` to translate the\n * SDK's stringly-typed chain id into the wallet's expected `AleoChain`\n * value.\n *\n * @not-instrumented\n */\nexport const aleoChainForChainId = ({\n networkId,\n}: AleoChainForChainIdParams): AleoChain =>\n Number(networkId) === ALEO_MAINNET_NETWORK_ID\n ? (ALEO_CHAINS.MAINNET as AleoChain)\n : (ALEO_CHAINS.TESTNET as AleoChain);\n","import { Network } from '@provablehq/aleo-types';\nimport {\n ALEO_CHAINS,\n type AleoChain,\n} from '@provablehq/aleo-wallet-standard';\n\nimport { ALEO_NETWORK_TO_ID_MAP } from '../../../utils/getNetworkByChainId';\n\ntype ChainIdForAleoChainParams = {\n /**\n * The Aleo Wallet Standard `AleoChain` string (`'aleo:mainnet'` /\n * `'aleo:testnet'`), or `undefined` when the wallet exposed no\n * CHAINS feature.\n */\n chain: AleoChain | undefined;\n};\n\n/**\n * Resolve the Dynamic numeric chain id for an Aleo Wallet Standard chain\n * string. `undefined` is treated as MAINNET to match\n * `createWalletProviderFromAleoStandardWallet`'s `connect()` default —\n * otherwise the SDK would report a different network than the one the\n * wallet was actually connected to.\n *\n * @not-instrumented\n */\nexport const chainIdForAleoChain = ({\n chain,\n}: ChainIdForAleoChainParams): string => {\n if (chain === ALEO_CHAINS.MAINNET || chain === undefined) {\n return String(ALEO_NETWORK_TO_ID_MAP[Network.MAINNET]);\n }\n return String(ALEO_NETWORK_TO_ID_MAP[Network.TESTNET]);\n};\n","type NormalizeAleoStandardWalletAccountParams = {\n /**\n * An Aleo Wallet Standard account entry as returned by\n * `wallet.features['standard:accounts'].getAccounts()`. Wallets may\n * emit either a plain address string (older drafts of the spec) or a\n * `{ address: string }` object (current spec) — this normalizer\n * accepts both.\n */\n account: { address: string } | string;\n};\n\n/**\n * Reduce either string-form or object-form Aleo Wallet Standard\n * account entries to the bare address string the Dynamic SDK works\n * with.\n *\n * @not-instrumented\n */\nexport const normalizeAleoStandardWalletAccount = ({\n account,\n}: NormalizeAleoStandardWalletAccountParams): string =>\n typeof account === 'string' ? account : account.address;\n","import {\n type Chain,\n type DynamicClient,\n type WalletProviderMetadata,\n assertWalletAccountSigningAvailability,\n} from '@dynamic-labs-sdk/client';\nimport {\n assertDefined,\n formatWalletProviderGroupKey,\n formatWalletProviderKey,\n} from '@dynamic-labs-sdk/client/core';\nimport { WalletProviderEnum } from '@dynamic-labs/sdk-api-core';\nimport { Network } from '@provablehq/aleo-types';\nimport {\n ALEO_CHAINS,\n type AleoChain,\n WalletDecryptPermission,\n WalletFeatureName,\n} from '@provablehq/aleo-wallet-standard';\n\nimport type {\n AleoTransaction,\n AleoWalletProvider,\n} from '../../../AleoWalletProvider.types';\nimport { AleoFeatureUnsupportedError } from '../../../errors/AleoFeatureUnsupportedError';\nimport { bytesToHex } from '../../../utils/bytesToHex';\nimport type { TypedStandardWallet } from '../../AleoStandardWallet.types';\nimport { aleoChainForChainId } from '../aleoChainForChainId';\nimport { chainIdForAleoChain } from '../chainIdForAleoChain';\nimport { normalizeAleoStandardWalletAccount } from '../normalizeAleoStandardWalletAccount';\n\ntype CreateWalletProviderFromAleoStandardWalletParams = {\n dynamicClient: DynamicClient;\n walletStandardWallet: TypedStandardWallet;\n};\n\n/**\n * Translate an Aleo StandardWallet (feature-map API) into a Dynamic\n * `WalletProvider`. Unsupported features fall through as undefined methods\n * on the returned provider — callers should guard accordingly.\n *\n * @not-instrumented\n */\nexport const createWalletProviderFromAleoStandardWallet = ({\n dynamicClient,\n walletStandardWallet,\n}: CreateWalletProviderFromAleoStandardWalletParams): AleoWalletProvider => {\n const chain: Chain = 'ALEO';\n\n const displayName = walletStandardWallet.name;\n\n const metadata: WalletProviderMetadata = {\n displayName,\n icon: walletStandardWallet.icon ?? '',\n };\n\n const walletProviderType = WalletProviderEnum.BrowserExtension;\n\n const key = formatWalletProviderKey({\n chain,\n displayName,\n walletProviderType,\n });\n\n const connect: AleoWalletProvider['connect'] = async () => {\n const connectFeature =\n walletStandardWallet.features[WalletFeatureName.CONNECT];\n if (!connectFeature?.available) {\n throw new AleoFeatureUnsupportedError({\n featureName: 'connect',\n walletName: displayName,\n });\n }\n\n const chainsFeature =\n walletStandardWallet.features[WalletFeatureName.CHAINS];\n const initialChain: AleoChain =\n chainsFeature?.available && chainsFeature.chains[0]\n ? chainsFeature.chains[0]\n : (ALEO_CHAINS.MAINNET as AleoChain);\n\n await connectFeature.connect(\n initialChain,\n WalletDecryptPermission.UponRequest\n );\n\n const accountsFeature =\n walletStandardWallet.features[WalletFeatureName.ACCOUNTS];\n const rawAccounts = accountsFeature?.available\n ? await accountsFeature.getAccounts()\n : [];\n\n return {\n addresses: rawAccounts.map((account) => ({\n address: normalizeAleoStandardWalletAccount({ account }),\n })),\n };\n };\n\n const destroy: AleoWalletProvider['destroy'] = async () => {\n const connectFeature =\n walletStandardWallet.features[WalletFeatureName.CONNECT];\n if (!connectFeature?.available) {\n return;\n }\n try {\n await connectFeature.disconnect();\n } catch {\n // Best-effort: the wallet may already be disconnected, or the\n // underlying call may fail for transient reasons. Per the\n // WalletProvider contract, `destroy` should not block teardown\n // on remote-signal errors.\n }\n };\n\n const getActiveNetworkId: AleoWalletProvider['getActiveNetworkId'] =\n async () => {\n const chainsFeature =\n walletStandardWallet.features[WalletFeatureName.CHAINS];\n const activeChain = chainsFeature?.available\n ? chainsFeature.chains[0]\n : undefined;\n return { networkId: chainIdForAleoChain({ chain: activeChain }) };\n };\n\n const getConnectedAddresses: AleoWalletProvider['getConnectedAddresses'] =\n async () => {\n const accountsFeature =\n walletStandardWallet.features[WalletFeatureName.ACCOUNTS];\n if (!accountsFeature?.available) {\n return { addresses: [] };\n }\n const accounts = await accountsFeature.getAccounts();\n return {\n addresses: accounts.map((account) =>\n normalizeAleoStandardWalletAccount({ account })\n ),\n };\n };\n\n const signMessage: AleoWalletProvider['signMessage'] = async ({\n message,\n walletAccount,\n }) => {\n assertDefined(walletAccount, 'Wallet account not found');\n await assertWalletAccountSigningAvailability(\n { walletAccount },\n dynamicClient\n );\n\n const signFeature =\n walletStandardWallet.features[WalletFeatureName.SIGN];\n if (!signFeature?.available) {\n throw new AleoFeatureUnsupportedError({\n featureName: 'signMessage',\n walletName: displayName,\n });\n }\n\n const signatureBytes = await signFeature.signMessage(\n new TextEncoder().encode(message)\n );\n return { signature: bytesToHex({ bytes: signatureBytes }) };\n };\n\n const switchActiveNetwork: AleoWalletProvider['switchActiveNetwork'] =\n async ({ networkId }) => {\n const switchFeature =\n walletStandardWallet.features[WalletFeatureName.SWITCH_NETWORK];\n if (!switchFeature?.available) {\n throw new AleoFeatureUnsupportedError({\n featureName: 'switchNetwork',\n walletName: displayName,\n });\n }\n\n const targetAleoChain = aleoChainForChainId({ networkId });\n const network: Network =\n targetAleoChain === ALEO_CHAINS.MAINNET\n ? Network.MAINNET\n : Network.TESTNET;\n await switchFeature.switchNetwork(network);\n };\n\n const requestTransaction: AleoWalletProvider['requestTransaction'] = async ({\n transaction,\n walletAccount,\n }) => {\n assertDefined(walletAccount, 'Wallet account not found');\n await assertWalletAccountSigningAvailability(\n { walletAccount },\n dynamicClient\n );\n\n const executeFeature =\n walletStandardWallet.features[WalletFeatureName.EXECUTE];\n if (!executeFeature?.available) {\n throw new AleoFeatureUnsupportedError({\n featureName: 'executeTransaction',\n walletName: displayName,\n });\n }\n\n const aleoTransaction: AleoTransaction = transaction;\n const [transition] = aleoTransaction.transitions;\n assertDefined(transition, 'Transaction must have at least one transition');\n\n const { transactionId } = await executeFeature.executeTransaction({\n fee: aleoTransaction.fee,\n function: transition.functionName,\n inputs: transition.inputs as string[],\n privateFee: aleoTransaction.feePrivate,\n program: transition.program,\n });\n\n return { transactionId };\n };\n\n const decrypt: AleoWalletProvider['decrypt'] = async ({\n ciphertext,\n options,\n walletAccount,\n }) => {\n assertDefined(walletAccount, 'Wallet account not found');\n\n const decryptFeature =\n walletStandardWallet.features[WalletFeatureName.DECRYPT];\n if (!decryptFeature?.available) {\n throw new AleoFeatureUnsupportedError({\n featureName: 'decrypt',\n walletName: displayName,\n });\n }\n\n const plaintext = await decryptFeature.decrypt(\n ciphertext,\n options?.tpk,\n options?.programId,\n options?.functionName,\n options?.index\n );\n return { plaintext };\n };\n\n const requestRecords: AleoWalletProvider['requestRecords'] = async ({\n program,\n options,\n walletAccount,\n }) => {\n assertDefined(walletAccount, 'Wallet account not found');\n\n const recordsFeature =\n walletStandardWallet.features[WalletFeatureName.REQUEST_RECORDS];\n if (!recordsFeature?.available) {\n throw new AleoFeatureUnsupportedError({\n featureName: 'requestRecords',\n walletName: displayName,\n });\n }\n\n const records = await recordsFeature.requestRecords(\n program,\n options?.plaintext ?? false\n );\n return { records };\n };\n\n return {\n chain,\n connect,\n decrypt,\n destroy,\n getActiveNetworkId,\n getConnectedAddresses,\n groupKey: formatWalletProviderGroupKey(displayName),\n key,\n metadata,\n requestRecords,\n requestTransaction,\n signMessage,\n switchActiveNetwork,\n walletProviderType,\n };\n};\n","import type { TypedStandardWallet } from '../../AleoStandardWallet.types';\n\n/**\n * Type guard for an Aleo Wallet Standard wallet injected on the page —\n * checks the minimum shape we need (an object with a `features` map)\n * before we hand it to `createWalletProviderFromAleoStandardWallet`.\n *\n * Used to filter the candidate list returned by\n * `getAllProvidersFromWindow` (which can return anything sitting at the\n * configured window key, including the wallet's own `.providers`\n * sibling for EIP-5749-style multi-wallet injections).\n *\n * @not-instrumented\n */\n \nexport const isAleoStandardWallet = (\n value: unknown\n): value is TypedStandardWallet =>\n typeof value === 'object' &&\n value !== null &&\n 'features' in value &&\n typeof (value as Record<string, unknown>).features === 'object';\n","import {\n WalletProviderPriority,\n getAllProvidersFromWindow,\n getDefaultClient,\n getWalletProviderRegistry,\n hasExtension,\n registerExtension,\n} from '@dynamic-labs-sdk/client/core';\n\nimport { registerAleoNetworkProviderBuilder } from '../../registerAleoNetworkProviderBuilder';\nimport { ALEO_STANDARD_WALLET_WINDOW_KEYS } from '../aleoStandardWalletWindowKeys';\nimport { createWalletProviderFromAleoStandardWallet } from '../utils/createWalletProviderFromAleoStandardWallet';\nimport { isAleoStandardWallet } from '../utils/isAleoStandardWallet';\n\nexport const ALEO_WALLET_STANDARD_EXTENSION_KEY = 'aleoWalletStandard';\n\n/**\n * Adds the Aleo Wallet Standard extension to the Dynamic client.\n *\n * Scans `window` at each of the known Aleo Wallet Standard injection\n * keys (see `ALEO_STANDARD_WALLET_WINDOW_KEYS`) via the shared\n * `getAllProvidersFromWindow` helper, wraps every found wallet as a\n * Dynamic `WalletProvider`, and registers it. The caller doesn't\n * enumerate wallets — same shape as EVM's\n * `addEvmWindowInjectedExtension` and Tron's\n * `addTronWalletAdaptersExtension`.\n *\n * @param [client] - The Dynamic client instance. Only required when\n * using multiple Dynamic clients.\n * @not-instrumented\n */\nexport const addAleoWalletStandardExtension = (\n client = getDefaultClient()\n): void => {\n if (\n hasExtension({ extensionKey: ALEO_WALLET_STANDARD_EXTENSION_KEY }, client)\n ) {\n return;\n }\n\n registerExtension(\n { extensionKey: ALEO_WALLET_STANDARD_EXTENSION_KEY },\n client\n );\n\n registerAleoNetworkProviderBuilder(client);\n\n const walletProviderRegistry = getWalletProviderRegistry(client);\n\n ALEO_STANDARD_WALLET_WINDOW_KEYS.forEach((windowKey) => {\n const candidates = getAllProvidersFromWindow<unknown>(windowKey);\n\n candidates.filter(isAleoStandardWallet).forEach((walletStandardWallet) => {\n const walletProvider = createWalletProviderFromAleoStandardWallet({\n dynamicClient: client,\n walletStandardWallet,\n });\n\n walletProviderRegistry.register({\n priority: WalletProviderPriority.WINDOW_INJECT,\n walletProvider,\n });\n });\n });\n};\n","import { assertPackageVersion } from '@dynamic-labs-sdk/assert-package-version';\n\nimport {\n name as packageName,\n version as packageVersion,\n} from '../../package.json';\nassertPackageVersion(packageName, packageVersion);\n\nexport {\n ALEO_WALLET_STANDARD_EXTENSION_KEY,\n addAleoWalletStandardExtension,\n} from '../walletStandard/addAleoWalletStandardExtension';\nexport { ALEO_STANDARD_WALLET_WINDOW_KEYS } from '../walletStandard/aleoStandardWalletWindowKeys';\nexport { createWalletProviderFromAleoStandardWallet } from '../walletStandard/utils/createWalletProviderFromAleoStandardWallet';\nexport type { TypedStandardWallet } from '../walletStandard/AleoStandardWallet.types';\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"walletStandard.cjs","names":["MICROCREDITS_PER_CREDIT","ALEO_STANDARD_WALLET_WINDOW_KEYS: readonly string[]","ALEO_MAINNET_NETWORK_ID","ALEO_CHAINS","ALEO_CHAINS","ALEO_NETWORK_TO_ID_MAP","Network","chain: Chain","metadata: WalletProviderMetadata","WalletProviderEnum","connect: AleoWalletProvider['connect']","WalletFeatureName","AleoFeatureUnsupportedError","initialChain: AleoChain","ALEO_CHAINS","WalletDecryptPermission","destroy: AleoWalletProvider['destroy']","getActiveNetworkId: AleoWalletProvider['getActiveNetworkId']","getConnectedAddresses: AleoWalletProvider['getConnectedAddresses']","signMessage: AleoWalletProvider['signMessage']","switchActiveNetwork: AleoWalletProvider['switchActiveNetwork']","network: Network","Network","requestTransaction: AleoWalletProvider['requestTransaction']","aleoTransaction: AleoTransaction","decrypt: AleoWalletProvider['decrypt']","requestRecords: AleoWalletProvider['requestRecords']","WalletProviderPriority","packageName","packageVersion"],"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","../src/walletStandard/aleoStandardWalletWindowKeys.ts","../src/utils/bytesToHex/bytesToHex.ts","../src/walletStandard/utils/aleoChainForChainId/aleoChainForChainId.ts","../src/walletStandard/utils/chainIdForAleoChain/chainIdForAleoChain.ts","../src/walletStandard/utils/normalizeAleoStandardWalletAccount/normalizeAleoStandardWalletAccount.ts","../src/walletStandard/utils/createWalletProviderFromAleoStandardWallet/createWalletProviderFromAleoStandardWallet.ts","../src/walletStandard/utils/isAleoStandardWallet/isAleoStandardWallet.ts","../src/walletStandard/addAleoWalletStandardExtension/addAleoWalletStandardExtension.ts","../src/exports/walletStandard.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","/**\n * The `window` keys at which known Aleo Wallet Standard wallets inject\n * themselves. Scanned by `addAleoWalletStandardExtension` to discover\n * available wallets — analogous to EVM's hardcoded `'ethereum'` path in\n * `getEvmInjectedProviders`, or Tron's hardcoded adapter constructors\n * in `addTronWalletAdaptersExtension`.\n *\n * As new wallets adopt `@provablehq/aleo-wallet-standard`, add their\n * injection key here. Wallets that use the legacy adapter API\n * (`@provablehq/aleo-wallet-adaptor-core` — Leo, Puzzle, Fox, etc.) are\n * registered through `addAleoWalletAdaptersExtension` instead.\n */\nexport const ALEO_STANDARD_WALLET_WINDOW_KEYS: readonly string[] = ['shield'];\n","type BytesToHexParams = {\n bytes: Uint8Array;\n};\n\n/**\n * Encode a `Uint8Array` as a lowercase hex string with no separator.\n * Used to render Aleo signature bytes for the `signMessage` provider\n * surface (which yields a hex `signature: string` per the Dynamic\n * `WalletProvider` contract) and any other place we need a stable\n * compact bytes-to-text encoding.\n *\n * @notInstrumented\n */\nexport const bytesToHex = ({ bytes }: BytesToHexParams): string =>\n Array.from(bytes, (b) => b.toString(16).padStart(2, '0')).join('');\n","import {\n ALEO_CHAINS,\n type AleoChain,\n} from '@provablehq/aleo-wallet-standard';\n\nimport { ALEO_MAINNET_NETWORK_ID } from '../../../utils/constants';\n\ntype AleoChainForChainIdParams = {\n /**\n * The Dynamic numeric chain id, as a string. `'0'` is mainnet;\n * anything else is treated as testnet.\n */\n networkId: string;\n};\n\n/**\n * Inverse of `chainIdForAleoChain` — resolve the Aleo Wallet Standard\n * chain string for a Dynamic numeric chain id. Used by the\n * walletStandard provider's `switchActiveNetwork` to translate the\n * SDK's stringly-typed chain id into the wallet's expected `AleoChain`\n * value.\n *\n * @notInstrumented\n */\nexport const aleoChainForChainId = ({\n networkId,\n}: AleoChainForChainIdParams): AleoChain =>\n Number(networkId) === ALEO_MAINNET_NETWORK_ID\n ? (ALEO_CHAINS.MAINNET as AleoChain)\n : (ALEO_CHAINS.TESTNET as AleoChain);\n","import { Network } from '@provablehq/aleo-types';\nimport {\n ALEO_CHAINS,\n type AleoChain,\n} from '@provablehq/aleo-wallet-standard';\n\nimport { ALEO_NETWORK_TO_ID_MAP } from '../../../utils/getNetworkByChainId';\n\ntype ChainIdForAleoChainParams = {\n /**\n * The Aleo Wallet Standard `AleoChain` string (`'aleo:mainnet'` /\n * `'aleo:testnet'`), or `undefined` when the wallet exposed no\n * CHAINS feature.\n */\n chain: AleoChain | undefined;\n};\n\n/**\n * Resolve the Dynamic numeric chain id for an Aleo Wallet Standard chain\n * string. `undefined` is treated as MAINNET to match\n * `createWalletProviderFromAleoStandardWallet`'s `connect()` default —\n * otherwise the SDK would report a different network than the one the\n * wallet was actually connected to.\n *\n * @notInstrumented\n */\nexport const chainIdForAleoChain = ({\n chain,\n}: ChainIdForAleoChainParams): string => {\n if (chain === ALEO_CHAINS.MAINNET || chain === undefined) {\n return String(ALEO_NETWORK_TO_ID_MAP[Network.MAINNET]);\n }\n return String(ALEO_NETWORK_TO_ID_MAP[Network.TESTNET]);\n};\n","type NormalizeAleoStandardWalletAccountParams = {\n /**\n * An Aleo Wallet Standard account entry as returned by\n * `wallet.features['standard:accounts'].getAccounts()`. Wallets may\n * emit either a plain address string (older drafts of the spec) or a\n * `{ address: string }` object (current spec) — this normalizer\n * accepts both.\n */\n account: { address: string } | string;\n};\n\n/**\n * Reduce either string-form or object-form Aleo Wallet Standard\n * account entries to the bare address string the Dynamic SDK works\n * with.\n *\n * @notInstrumented\n */\nexport const normalizeAleoStandardWalletAccount = ({\n account,\n}: NormalizeAleoStandardWalletAccountParams): string =>\n typeof account === 'string' ? account : account.address;\n","import {\n type Chain,\n type DynamicClient,\n type WalletProviderMetadata,\n assertWalletAccountSigningAvailability,\n} from '@dynamic-labs-sdk/client';\nimport {\n assertDefined,\n formatWalletProviderGroupKey,\n formatWalletProviderKey,\n} from '@dynamic-labs-sdk/client/core';\nimport { WalletProviderEnum } from '@dynamic-labs/sdk-api-core';\nimport { Network } from '@provablehq/aleo-types';\nimport {\n ALEO_CHAINS,\n type AleoChain,\n WalletDecryptPermission,\n WalletFeatureName,\n} from '@provablehq/aleo-wallet-standard';\n\nimport type {\n AleoTransaction,\n AleoWalletProvider,\n} from '../../../AleoWalletProvider.types';\nimport { AleoFeatureUnsupportedError } from '../../../errors/AleoFeatureUnsupportedError';\nimport { bytesToHex } from '../../../utils/bytesToHex';\nimport type { TypedStandardWallet } from '../../AleoStandardWallet.types';\nimport { aleoChainForChainId } from '../aleoChainForChainId';\nimport { chainIdForAleoChain } from '../chainIdForAleoChain';\nimport { normalizeAleoStandardWalletAccount } from '../normalizeAleoStandardWalletAccount';\n\ntype CreateWalletProviderFromAleoStandardWalletParams = {\n dynamicClient: DynamicClient;\n walletStandardWallet: TypedStandardWallet;\n};\n\n/**\n * Translate an Aleo StandardWallet (feature-map API) into a Dynamic\n * `WalletProvider`. Unsupported features fall through as undefined methods\n * on the returned provider — callers should guard accordingly.\n *\n * @notInstrumented\n */\nexport const createWalletProviderFromAleoStandardWallet = ({\n dynamicClient,\n walletStandardWallet,\n}: CreateWalletProviderFromAleoStandardWalletParams): AleoWalletProvider => {\n const chain: Chain = 'ALEO';\n\n const displayName = walletStandardWallet.name;\n\n const metadata: WalletProviderMetadata = {\n displayName,\n icon: walletStandardWallet.icon ?? '',\n };\n\n const walletProviderType = WalletProviderEnum.BrowserExtension;\n\n const key = formatWalletProviderKey({\n chain,\n displayName,\n walletProviderType,\n });\n\n const connect: AleoWalletProvider['connect'] = async () => {\n const connectFeature =\n walletStandardWallet.features[WalletFeatureName.CONNECT];\n if (!connectFeature?.available) {\n throw new AleoFeatureUnsupportedError({\n featureName: 'connect',\n walletName: displayName,\n });\n }\n\n const chainsFeature =\n walletStandardWallet.features[WalletFeatureName.CHAINS];\n const initialChain: AleoChain =\n chainsFeature?.available && chainsFeature.chains[0]\n ? chainsFeature.chains[0]\n : (ALEO_CHAINS.MAINNET as AleoChain);\n\n await connectFeature.connect(\n initialChain,\n WalletDecryptPermission.UponRequest\n );\n\n const accountsFeature =\n walletStandardWallet.features[WalletFeatureName.ACCOUNTS];\n const rawAccounts = accountsFeature?.available\n ? await accountsFeature.getAccounts()\n : [];\n\n return {\n addresses: rawAccounts.map((account) => ({\n address: normalizeAleoStandardWalletAccount({ account }),\n })),\n };\n };\n\n const destroy: AleoWalletProvider['destroy'] = async () => {\n const connectFeature =\n walletStandardWallet.features[WalletFeatureName.CONNECT];\n if (!connectFeature?.available) {\n return;\n }\n try {\n await connectFeature.disconnect();\n } catch {\n // Best-effort: the wallet may already be disconnected, or the\n // underlying call may fail for transient reasons. Per the\n // WalletProvider contract, `destroy` should not block teardown\n // on remote-signal errors.\n }\n };\n\n const getActiveNetworkId: AleoWalletProvider['getActiveNetworkId'] =\n async () => {\n const chainsFeature =\n walletStandardWallet.features[WalletFeatureName.CHAINS];\n const activeChain = chainsFeature?.available\n ? chainsFeature.chains[0]\n : undefined;\n return { networkId: chainIdForAleoChain({ chain: activeChain }) };\n };\n\n const getConnectedAddresses: AleoWalletProvider['getConnectedAddresses'] =\n async () => {\n const accountsFeature =\n walletStandardWallet.features[WalletFeatureName.ACCOUNTS];\n if (!accountsFeature?.available) {\n return { addresses: [] };\n }\n const accounts = await accountsFeature.getAccounts();\n return {\n addresses: accounts.map((account) =>\n normalizeAleoStandardWalletAccount({ account })\n ),\n };\n };\n\n const signMessage: AleoWalletProvider['signMessage'] = async ({\n message,\n walletAccount,\n }) => {\n assertDefined(walletAccount, 'Wallet account not found');\n await assertWalletAccountSigningAvailability(\n { walletAccount },\n dynamicClient\n );\n\n const signFeature =\n walletStandardWallet.features[WalletFeatureName.SIGN];\n if (!signFeature?.available) {\n throw new AleoFeatureUnsupportedError({\n featureName: 'signMessage',\n walletName: displayName,\n });\n }\n\n const signatureBytes = await signFeature.signMessage(\n new TextEncoder().encode(message)\n );\n return { signature: bytesToHex({ bytes: signatureBytes }) };\n };\n\n const switchActiveNetwork: AleoWalletProvider['switchActiveNetwork'] =\n async ({ networkId }) => {\n const switchFeature =\n walletStandardWallet.features[WalletFeatureName.SWITCH_NETWORK];\n if (!switchFeature?.available) {\n throw new AleoFeatureUnsupportedError({\n featureName: 'switchNetwork',\n walletName: displayName,\n });\n }\n\n const targetAleoChain = aleoChainForChainId({ networkId });\n const network: Network =\n targetAleoChain === ALEO_CHAINS.MAINNET\n ? Network.MAINNET\n : Network.TESTNET;\n await switchFeature.switchNetwork(network);\n };\n\n const requestTransaction: AleoWalletProvider['requestTransaction'] = async ({\n transaction,\n walletAccount,\n }) => {\n assertDefined(walletAccount, 'Wallet account not found');\n await assertWalletAccountSigningAvailability(\n { walletAccount },\n dynamicClient\n );\n\n const executeFeature =\n walletStandardWallet.features[WalletFeatureName.EXECUTE];\n if (!executeFeature?.available) {\n throw new AleoFeatureUnsupportedError({\n featureName: 'executeTransaction',\n walletName: displayName,\n });\n }\n\n const aleoTransaction: AleoTransaction = transaction;\n const [transition] = aleoTransaction.transitions;\n assertDefined(transition, 'Transaction must have at least one transition');\n\n const { transactionId } = await executeFeature.executeTransaction({\n fee: aleoTransaction.fee,\n function: transition.functionName,\n inputs: transition.inputs as string[],\n privateFee: aleoTransaction.feePrivate,\n program: transition.program,\n });\n\n return { transactionId };\n };\n\n const decrypt: AleoWalletProvider['decrypt'] = async ({\n ciphertext,\n options,\n walletAccount,\n }) => {\n assertDefined(walletAccount, 'Wallet account not found');\n\n const decryptFeature =\n walletStandardWallet.features[WalletFeatureName.DECRYPT];\n if (!decryptFeature?.available) {\n throw new AleoFeatureUnsupportedError({\n featureName: 'decrypt',\n walletName: displayName,\n });\n }\n\n const plaintext = await decryptFeature.decrypt(\n ciphertext,\n options?.tpk,\n options?.programId,\n options?.functionName,\n options?.index\n );\n return { plaintext };\n };\n\n const requestRecords: AleoWalletProvider['requestRecords'] = async ({\n program,\n options,\n walletAccount,\n }) => {\n assertDefined(walletAccount, 'Wallet account not found');\n\n const recordsFeature =\n walletStandardWallet.features[WalletFeatureName.REQUEST_RECORDS];\n if (!recordsFeature?.available) {\n throw new AleoFeatureUnsupportedError({\n featureName: 'requestRecords',\n walletName: displayName,\n });\n }\n\n const records = await recordsFeature.requestRecords(\n program,\n options?.plaintext ?? false\n );\n return { records };\n };\n\n return {\n chain,\n connect,\n decrypt,\n destroy,\n getActiveNetworkId,\n getConnectedAddresses,\n groupKey: formatWalletProviderGroupKey(displayName),\n key,\n metadata,\n requestRecords,\n requestTransaction,\n signMessage,\n switchActiveNetwork,\n walletProviderType,\n };\n};\n","import type { TypedStandardWallet } from '../../AleoStandardWallet.types';\n\n/**\n * Type guard for an Aleo Wallet Standard wallet injected on the page —\n * checks the minimum shape we need (an object with a `features` map)\n * before we hand it to `createWalletProviderFromAleoStandardWallet`.\n *\n * Used to filter the candidate list returned by\n * `getAllProvidersFromWindow` (which can return anything sitting at the\n * configured window key, including the wallet's own `.providers`\n * sibling for EIP-5749-style multi-wallet injections).\n *\n * @notInstrumented\n */\n \nexport const isAleoStandardWallet = (\n value: unknown\n): value is TypedStandardWallet =>\n typeof value === 'object' &&\n value !== null &&\n 'features' in value &&\n typeof (value as Record<string, unknown>).features === 'object';\n","import {\n WalletProviderPriority,\n getAllProvidersFromWindow,\n getDefaultClient,\n getWalletProviderRegistry,\n hasExtension,\n registerExtension,\n} from '@dynamic-labs-sdk/client/core';\n\nimport { registerAleoNetworkProviderBuilder } from '../../registerAleoNetworkProviderBuilder';\nimport { ALEO_STANDARD_WALLET_WINDOW_KEYS } from '../aleoStandardWalletWindowKeys';\nimport { createWalletProviderFromAleoStandardWallet } from '../utils/createWalletProviderFromAleoStandardWallet';\nimport { isAleoStandardWallet } from '../utils/isAleoStandardWallet';\n\nexport const ALEO_WALLET_STANDARD_EXTENSION_KEY = 'aleoWalletStandard';\n\n/**\n * Adds the Aleo Wallet Standard extension to the Dynamic client.\n *\n * Scans `window` at each of the known Aleo Wallet Standard injection\n * keys (see `ALEO_STANDARD_WALLET_WINDOW_KEYS`) via the shared\n * `getAllProvidersFromWindow` helper, wraps every found wallet as a\n * Dynamic `WalletProvider`, and registers it. The caller doesn't\n * enumerate wallets — same shape as EVM's\n * `addEvmWindowInjectedExtension` and Tron's\n * `addTronWalletAdaptersExtension`.\n *\n * @param [client] - The Dynamic client instance. Only required when\n * using multiple Dynamic clients.\n * @notInstrumented\n */\nexport const addAleoWalletStandardExtension = (\n client = getDefaultClient()\n): void => {\n if (\n hasExtension({ extensionKey: ALEO_WALLET_STANDARD_EXTENSION_KEY }, client)\n ) {\n return;\n }\n\n registerExtension(\n { extensionKey: ALEO_WALLET_STANDARD_EXTENSION_KEY },\n client\n );\n\n registerAleoNetworkProviderBuilder(client);\n\n const walletProviderRegistry = getWalletProviderRegistry(client);\n\n ALEO_STANDARD_WALLET_WINDOW_KEYS.forEach((windowKey) => {\n const candidates = getAllProvidersFromWindow<unknown>(windowKey);\n\n candidates.filter(isAleoStandardWallet).forEach((walletStandardWallet) => {\n const walletProvider = createWalletProviderFromAleoStandardWallet({\n dynamicClient: client,\n walletStandardWallet,\n });\n\n walletProviderRegistry.register({\n priority: WalletProviderPriority.WINDOW_INJECT,\n walletProvider,\n });\n });\n });\n};\n","import { assertPackageVersion } from '@dynamic-labs-sdk/assert-package-version';\n\nimport {\n name as packageName,\n version as packageVersion,\n} from '../../package.json';\nassertPackageVersion(packageName, packageVersion);\n\nexport {\n ALEO_WALLET_STANDARD_EXTENSION_KEY,\n addAleoWalletStandardExtension,\n} from '../walletStandard/addAleoWalletStandardExtension';\nexport { ALEO_STANDARD_WALLET_WINDOW_KEYS } from '../walletStandard/aleoStandardWalletWindowKeys';\nexport { createWalletProviderFromAleoStandardWallet } from '../walletStandard/utils/createWalletProviderFromAleoStandardWallet';\nexport type { TypedStandardWallet } from '../walletStandard/AleoStandardWallet.types';\n"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as MICROCREDITS_PER_CREDIT, c as version, o as AleoFeatureUnsupportedError, r as ALEO_MAINNET_NETWORK_ID, s as name, t as ALEO_NETWORK_TO_ID_MAP } from "./getNetworkByChainId-
|
|
1
|
+
import { a as MICROCREDITS_PER_CREDIT, c as version, o as AleoFeatureUnsupportedError, r as ALEO_MAINNET_NETWORK_ID, s as name, t as ALEO_NETWORK_TO_ID_MAP } from "./getNetworkByChainId-DWyyUbyh.esm.js";
|
|
2
2
|
import { assertPackageVersion } from "@dynamic-labs-sdk/assert-package-version";
|
|
3
3
|
import { assertWalletAccountSigningAvailability } from "@dynamic-labs-sdk/client";
|
|
4
4
|
import { Network } from "@provablehq/aleo-types";
|
|
@@ -25,7 +25,7 @@ const TRAILING_ZEROS_PATTERN = /0{1,6}$/;
|
|
|
25
25
|
* six digits and trailing fractional zeros are trimmed. Whole-credit
|
|
26
26
|
* balances render without a redundant `.000000` suffix.
|
|
27
27
|
*
|
|
28
|
-
* @
|
|
28
|
+
* @notInstrumented
|
|
29
29
|
*/
|
|
30
30
|
const formatMicrocreditsAsCredits = (microcredits) => {
|
|
31
31
|
const credits = microcredits / MICROCREDITS_PER_CREDIT_BIGINT;
|
|
@@ -53,7 +53,7 @@ const U64_SUFFIX = "u64";
|
|
|
53
53
|
* and we'd rather show a zero balance than crash the network-provider
|
|
54
54
|
* machinery with an unhandled rejection.
|
|
55
55
|
*
|
|
56
|
-
* @
|
|
56
|
+
* @notInstrumented
|
|
57
57
|
*/
|
|
58
58
|
const parseAleoMicrocreditsLiteral = (raw) => {
|
|
59
59
|
let cleaned = raw.trim();
|
|
@@ -90,7 +90,7 @@ const ALEO_ADDRESS_PATTERN = /^aleo1[a-z0-9]{1,62}$/;
|
|
|
90
90
|
* function fail-soft for the network-provider machinery, which surfaces
|
|
91
91
|
* the result directly to the UI.
|
|
92
92
|
*
|
|
93
|
-
* @
|
|
93
|
+
* @notInstrumented
|
|
94
94
|
*/
|
|
95
95
|
const fetchAleoBalance = async ({ address, networkData }) => {
|
|
96
96
|
if (!ALEO_ADDRESS_PATTERN.test(address)) return null;
|
|
@@ -118,7 +118,7 @@ const fetchAleoBalance = async ({ address, networkData }) => {
|
|
|
118
118
|
*
|
|
119
119
|
* Called by `registerAleoNetworkProviderBuilder` — not invoked directly.
|
|
120
120
|
*
|
|
121
|
-
* @
|
|
121
|
+
* @notInstrumented
|
|
122
122
|
*/
|
|
123
123
|
const createAleoNetworkProvider = (networkData) => ({
|
|
124
124
|
...createBaseNetworkProvider("ALEO", networkData),
|
|
@@ -142,7 +142,7 @@ const createAleoNetworkProvider = (networkData) => ({
|
|
|
142
142
|
* (`addAleoWalletStandardExtension`, `addAleoWalletAdaptersExtension`,
|
|
143
143
|
* `addAleoExtension`). Not exported from the package's public surface.
|
|
144
144
|
*
|
|
145
|
-
* @
|
|
145
|
+
* @notInstrumented
|
|
146
146
|
*/
|
|
147
147
|
const registerAleoNetworkProviderBuilder = (client) => {
|
|
148
148
|
const networkProviderBuilderRegistry = getNetworkProviderBuilderRegistry(client);
|
|
@@ -178,7 +178,7 @@ const ALEO_STANDARD_WALLET_WINDOW_KEYS = ["shield"];
|
|
|
178
178
|
* `WalletProvider` contract) and any other place we need a stable
|
|
179
179
|
* compact bytes-to-text encoding.
|
|
180
180
|
*
|
|
181
|
-
* @
|
|
181
|
+
* @notInstrumented
|
|
182
182
|
*/
|
|
183
183
|
const bytesToHex = ({ bytes }) => Array.from(bytes, (b) => b.toString(16).padStart(2, "0")).join("");
|
|
184
184
|
|
|
@@ -191,7 +191,7 @@ const bytesToHex = ({ bytes }) => Array.from(bytes, (b) => b.toString(16).padSta
|
|
|
191
191
|
* SDK's stringly-typed chain id into the wallet's expected `AleoChain`
|
|
192
192
|
* value.
|
|
193
193
|
*
|
|
194
|
-
* @
|
|
194
|
+
* @notInstrumented
|
|
195
195
|
*/
|
|
196
196
|
const aleoChainForChainId = ({ networkId }) => Number(networkId) === ALEO_MAINNET_NETWORK_ID ? ALEO_CHAINS.MAINNET : ALEO_CHAINS.TESTNET;
|
|
197
197
|
|
|
@@ -204,7 +204,7 @@ const aleoChainForChainId = ({ networkId }) => Number(networkId) === ALEO_MAINNE
|
|
|
204
204
|
* otherwise the SDK would report a different network than the one the
|
|
205
205
|
* wallet was actually connected to.
|
|
206
206
|
*
|
|
207
|
-
* @
|
|
207
|
+
* @notInstrumented
|
|
208
208
|
*/
|
|
209
209
|
const chainIdForAleoChain = ({ chain }) => {
|
|
210
210
|
if (chain === ALEO_CHAINS.MAINNET || chain === void 0) return String(ALEO_NETWORK_TO_ID_MAP[Network.MAINNET]);
|
|
@@ -218,7 +218,7 @@ const chainIdForAleoChain = ({ chain }) => {
|
|
|
218
218
|
* account entries to the bare address string the Dynamic SDK works
|
|
219
219
|
* with.
|
|
220
220
|
*
|
|
221
|
-
* @
|
|
221
|
+
* @notInstrumented
|
|
222
222
|
*/
|
|
223
223
|
const normalizeAleoStandardWalletAccount = ({ account }) => typeof account === "string" ? account : account.address;
|
|
224
224
|
|
|
@@ -229,7 +229,7 @@ const normalizeAleoStandardWalletAccount = ({ account }) => typeof account === "
|
|
|
229
229
|
* `WalletProvider`. Unsupported features fall through as undefined methods
|
|
230
230
|
* on the returned provider — callers should guard accordingly.
|
|
231
231
|
*
|
|
232
|
-
* @
|
|
232
|
+
* @notInstrumented
|
|
233
233
|
*/
|
|
234
234
|
const createWalletProviderFromAleoStandardWallet = ({ dynamicClient, walletStandardWallet }) => {
|
|
235
235
|
const chain = "ALEO";
|
|
@@ -359,7 +359,7 @@ const createWalletProviderFromAleoStandardWallet = ({ dynamicClient, walletStand
|
|
|
359
359
|
* configured window key, including the wallet's own `.providers`
|
|
360
360
|
* sibling for EIP-5749-style multi-wallet injections).
|
|
361
361
|
*
|
|
362
|
-
* @
|
|
362
|
+
* @notInstrumented
|
|
363
363
|
*/
|
|
364
364
|
const isAleoStandardWallet = (value) => typeof value === "object" && value !== null && "features" in value && typeof value.features === "object";
|
|
365
365
|
|
|
@@ -379,7 +379,7 @@ const ALEO_WALLET_STANDARD_EXTENSION_KEY = "aleoWalletStandard";
|
|
|
379
379
|
*
|
|
380
380
|
* @param [client] - The Dynamic client instance. Only required when
|
|
381
381
|
* using multiple Dynamic clients.
|
|
382
|
-
* @
|
|
382
|
+
* @notInstrumented
|
|
383
383
|
*/
|
|
384
384
|
const addAleoWalletStandardExtension = (client = getDefaultClient()) => {
|
|
385
385
|
if (hasExtension({ extensionKey: ALEO_WALLET_STANDARD_EXTENSION_KEY }, client)) return;
|