FRE-600: Fix code review blockers

- Consolidated duplicate UndoManagers to single instance
- Fixed connection promise to only resolve on 'connected' status
- Fixed WebSocketProvider import (WebsocketProvider)
- Added proper doc.destroy() cleanup
- Renamed isPresenceInitialized property to avoid conflict

Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
2026-04-25 00:08:01 -04:00
parent 65b552bb08
commit 7c684a42cc
48450 changed files with 5679671 additions and 383 deletions

56
node_modules/viem/_esm/clients/createClient.js generated vendored Normal file
View File

@@ -0,0 +1,56 @@
import { parseAccount, } from '../accounts/utils/parseAccount.js';
import { uid } from '../utils/uid.js';
export function createClient(parameters) {
const { batch, chain, ccipRead, dataSuffix, key = 'base', name = 'Base Client', type = 'base', } = parameters;
const experimental_blockTag = parameters.experimental_blockTag ??
(typeof chain?.experimental_preconfirmationTime === 'number'
? 'pending'
: undefined);
const blockTime = chain?.blockTime ?? 12_000;
const defaultPollingInterval = Math.min(Math.max(Math.floor(blockTime / 2), 500), 4_000);
const pollingInterval = parameters.pollingInterval ?? defaultPollingInterval;
const cacheTime = parameters.cacheTime ?? pollingInterval;
const account = parameters.account
? parseAccount(parameters.account)
: undefined;
const { config, request, value } = parameters.transport({
account,
chain,
pollingInterval,
});
const transport = { ...config, ...value };
const client = {
account,
batch,
cacheTime,
ccipRead,
chain,
dataSuffix,
key,
name,
pollingInterval,
request,
transport,
type,
uid: uid(),
...(experimental_blockTag ? { experimental_blockTag } : {}),
};
function extend(base) {
return (extendFn) => {
const extended = extendFn(base);
for (const key in client)
delete extended[key];
const combined = { ...base, ...extended };
return Object.assign(combined, { extend: extend(combined) });
};
}
return Object.assign(client, { extend: extend(client) });
}
/**
* Defines a typed JSON-RPC schema for the client.
* Note: This is a runtime noop function.
*/
export function rpcSchema() {
return null;
}
//# sourceMappingURL=createClient.js.map

1
node_modules/viem/_esm/clients/createClient.js.map generated vendored Normal file
View File

@@ -0,0 +1 @@
{"version":3,"file":"createClient.js","sourceRoot":"","sources":["../../clients/createClient.ts"],"names":[],"mappings":"AAGA,OAAO,EAEL,YAAY,GACb,MAAM,mCAAmC,CAAA;AAgB1C,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAA;AAoNrC,MAAM,UAAU,YAAY,CAAC,UAAwB;IACnD,MAAM,EACJ,KAAK,EACL,KAAK,EACL,QAAQ,EACR,UAAU,EACV,GAAG,GAAG,MAAM,EACZ,IAAI,GAAG,aAAa,EACpB,IAAI,GAAG,MAAM,GACd,GAAG,UAAU,CAAA;IAEd,MAAM,qBAAqB,GACzB,UAAU,CAAC,qBAAqB;QAChC,CAAC,OAAO,KAAK,EAAE,gCAAgC,KAAK,QAAQ;YAC1D,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,SAAS,CAAC,CAAA;IAChB,MAAM,SAAS,GAAG,KAAK,EAAE,SAAS,IAAI,MAAM,CAAA;IAE5C,MAAM,sBAAsB,GAAG,IAAI,CAAC,GAAG,CACrC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,EACxC,KAAK,CACN,CAAA;IACD,MAAM,eAAe,GAAG,UAAU,CAAC,eAAe,IAAI,sBAAsB,CAAA;IAC5E,MAAM,SAAS,GAAG,UAAU,CAAC,SAAS,IAAI,eAAe,CAAA;IAEzD,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO;QAChC,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC;QAClC,CAAC,CAAC,SAAS,CAAA;IACb,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,UAAU,CAAC,SAAS,CAAC;QACtD,OAAO;QACP,KAAK;QACL,eAAe;KAChB,CAAC,CAAA;IACF,MAAM,SAAS,GAAG,EAAE,GAAG,MAAM,EAAE,GAAG,KAAK,EAAE,CAAA;IAEzC,MAAM,MAAM,GAAG;QACb,OAAO;QACP,KAAK;QACL,SAAS;QACT,QAAQ;QACR,KAAK;QACL,UAAU;QACV,GAAG;QACH,IAAI;QACJ,eAAe;QACf,OAAO;QACP,SAAS;QACT,IAAI;QACJ,GAAG,EAAE,GAAG,EAAE;QACV,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,qBAAqB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC5D,CAAA;IAED,SAAS,MAAM,CAAC,IAAmB;QAEjC,OAAO,CAAC,QAAkB,EAAE,EAAE;YAC5B,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAa,CAAA;YAC3C,KAAK,MAAM,GAAG,IAAI,MAAM;gBAAE,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAA;YAC9C,MAAM,QAAQ,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,QAAQ,EAAE,CAAA;YACzC,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,QAAe,CAAC,EAAE,CAAC,CAAA;QACrE,CAAC,CAAA;IACH,CAAC;IAED,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAQ,EAAE,CAAC,CAAA;AACjE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS;IACvB,OAAO,IAAW,CAAA;AACpB,CAAC"}

32
node_modules/viem/_esm/clients/createPublicClient.js generated vendored Normal file
View File

@@ -0,0 +1,32 @@
import { createClient, } from './createClient.js';
import { publicActions } from './decorators/public.js';
/**
* Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).
*
* - Docs: https://viem.sh/docs/clients/public
*
* A Public Client is an interface to "public" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).
*
* @param config - {@link PublicClientConfig}
* @returns A Public Client. {@link PublicClient}
*
* @example
* import { createPublicClient, http } from 'viem'
* import { mainnet } from 'viem/chains'
*
* const client = createPublicClient({
* chain: mainnet,
* transport: http(),
* })
*/
export function createPublicClient(parameters) {
const { key = 'public', name = 'Public Client' } = parameters;
const client = createClient({
...parameters,
key,
name,
type: 'publicClient',
});
return client.extend(publicActions);
}
//# sourceMappingURL=createPublicClient.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"createPublicClient.js","sourceRoot":"","sources":["../../clients/createPublicClient.ts"],"names":[],"mappings":"AAMA,OAAO,EAIL,YAAY,GACb,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAsB,aAAa,EAAE,MAAM,wBAAwB,CAAA;AA2C1E;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,kBAAkB,CAMhC,UAA6E;IAE7E,MAAM,EAAE,GAAG,GAAG,QAAQ,EAAE,IAAI,GAAG,eAAe,EAAE,GAAG,UAAU,CAAA;IAC7D,MAAM,MAAM,GAAG,YAAY,CAAC;QAC1B,GAAG,UAAU;QACb,GAAG;QACH,IAAI;QACJ,IAAI,EAAE,cAAc;KACrB,CAAC,CAAA;IACF,OAAO,MAAM,CAAC,MAAM,CAAC,aAAa,CAAQ,CAAA;AAC5C,CAAC"}

16
node_modules/viem/_esm/clients/createTestClient.js generated vendored Normal file
View File

@@ -0,0 +1,16 @@
import { createClient, } from './createClient.js';
import { testActions } from './decorators/test.js';
export function createTestClient(parameters) {
const { key = 'test', name = 'Test Client', mode } = parameters;
const client = createClient({
...parameters,
key,
name,
type: 'testClient',
});
return client.extend((config) => ({
mode,
...testActions({ mode })(config),
}));
}
//# sourceMappingURL=createTestClient.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"createTestClient.js","sourceRoot":"","sources":["../../clients/createTestClient.ts"],"names":[],"mappings":"AAQA,OAAO,EAIL,YAAY,GACb,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAoB,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAoGpE,MAAM,UAAU,gBAAgB,CAAC,UAA4B;IAC3D,MAAM,EAAE,GAAG,GAAG,MAAM,EAAE,IAAI,GAAG,aAAa,EAAE,IAAI,EAAE,GAAG,UAAU,CAAA;IAC/D,MAAM,MAAM,GAAG,YAAY,CAAC;QAC1B,GAAG,UAAU;QACb,GAAG;QACH,IAAI;QACJ,IAAI,EAAE,YAAY;KACnB,CAAC,CAAA;IACF,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAChC,IAAI;QACJ,GAAG,WAAW,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;KACjC,CAAC,CAAC,CAAA;AACL,CAAC"}

14
node_modules/viem/_esm/clients/createWalletClient.js generated vendored Normal file
View File

@@ -0,0 +1,14 @@
import { createClient, } from './createClient.js';
import { walletActions } from './decorators/wallet.js';
export function createWalletClient(parameters) {
const { key = 'wallet', name = 'Wallet Client', transport } = parameters;
const client = createClient({
...parameters,
key,
name,
transport,
type: 'walletClient',
});
return client.extend(walletActions);
}
//# sourceMappingURL=createWalletClient.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"createWalletClient.js","sourceRoot":"","sources":["../../clients/createWalletClient.ts"],"names":[],"mappings":"AAQA,OAAO,EAIL,YAAY,GACb,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAsB,aAAa,EAAE,MAAM,wBAAwB,CAAA;AA2F1E,MAAM,UAAU,kBAAkB,CAChC,UAA8B;IAE9B,MAAM,EAAE,GAAG,GAAG,QAAQ,EAAE,IAAI,GAAG,eAAe,EAAE,SAAS,EAAE,GAAG,UAAU,CAAA;IACxE,MAAM,MAAM,GAAG,YAAY,CAAC;QAC1B,GAAG,UAAU;QACb,GAAG;QACH,IAAI;QACJ,SAAS;QACT,IAAI,EAAE,cAAc;KACrB,CAAC,CAAA;IACF,OAAO,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;AACrC,CAAC"}

119
node_modules/viem/_esm/clients/decorators/public.js generated vendored Normal file
View File

@@ -0,0 +1,119 @@
import { getEnsAddress, } from '../../actions/ens/getEnsAddress.js';
import { getEnsAvatar, } from '../../actions/ens/getEnsAvatar.js';
import { getEnsName, } from '../../actions/ens/getEnsName.js';
import { getEnsResolver, } from '../../actions/ens/getEnsResolver.js';
import { getEnsText, } from '../../actions/ens/getEnsText.js';
import { call, } from '../../actions/public/call.js';
import { createAccessList, } from '../../actions/public/createAccessList.js';
import { createBlockFilter, } from '../../actions/public/createBlockFilter.js';
import { createContractEventFilter, } from '../../actions/public/createContractEventFilter.js';
import { createEventFilter, } from '../../actions/public/createEventFilter.js';
import { createPendingTransactionFilter, } from '../../actions/public/createPendingTransactionFilter.js';
import { estimateContractGas, } from '../../actions/public/estimateContractGas.js';
import { estimateFeesPerGas, } from '../../actions/public/estimateFeesPerGas.js';
import { estimateGas, } from '../../actions/public/estimateGas.js';
import { estimateMaxPriorityFeePerGas, } from '../../actions/public/estimateMaxPriorityFeePerGas.js';
import { fillTransaction, } from '../../actions/public/fillTransaction.js';
import { getBalance, } from '../../actions/public/getBalance.js';
import { getBlobBaseFee, } from '../../actions/public/getBlobBaseFee.js';
import { getBlock, } from '../../actions/public/getBlock.js';
import { getBlockNumber, } from '../../actions/public/getBlockNumber.js';
import { getBlockTransactionCount, } from '../../actions/public/getBlockTransactionCount.js';
import { getChainId, } from '../../actions/public/getChainId.js';
import { getCode, } from '../../actions/public/getCode.js';
import { getContractEvents, } from '../../actions/public/getContractEvents.js';
import { getDelegation, } from '../../actions/public/getDelegation.js';
import { getEip712Domain, } from '../../actions/public/getEip712Domain.js';
import { getFeeHistory, } from '../../actions/public/getFeeHistory.js';
import { getFilterChanges, } from '../../actions/public/getFilterChanges.js';
import { getFilterLogs, } from '../../actions/public/getFilterLogs.js';
import { getGasPrice, } from '../../actions/public/getGasPrice.js';
import { getLogs, } from '../../actions/public/getLogs.js';
import { getProof, } from '../../actions/public/getProof.js';
import { getStorageAt, } from '../../actions/public/getStorageAt.js';
import { getTransaction, } from '../../actions/public/getTransaction.js';
import { getTransactionConfirmations, } from '../../actions/public/getTransactionConfirmations.js';
import { getTransactionCount, } from '../../actions/public/getTransactionCount.js';
import { getTransactionReceipt, } from '../../actions/public/getTransactionReceipt.js';
import { multicall, } from '../../actions/public/multicall.js';
import { readContract, } from '../../actions/public/readContract.js';
import { simulateBlocks, } from '../../actions/public/simulateBlocks.js';
import { simulateCalls, } from '../../actions/public/simulateCalls.js';
import { simulateContract, } from '../../actions/public/simulateContract.js';
import { uninstallFilter, } from '../../actions/public/uninstallFilter.js';
import { verifyHash, } from '../../actions/public/verifyHash.js';
import { verifyMessage, } from '../../actions/public/verifyMessage.js';
import { verifyTypedData, } from '../../actions/public/verifyTypedData.js';
import { waitForTransactionReceipt, } from '../../actions/public/waitForTransactionReceipt.js';
import { watchBlockNumber, } from '../../actions/public/watchBlockNumber.js';
import { watchBlocks, } from '../../actions/public/watchBlocks.js';
import { watchContractEvent, } from '../../actions/public/watchContractEvent.js';
import { watchEvent, } from '../../actions/public/watchEvent.js';
import { watchPendingTransactions, } from '../../actions/public/watchPendingTransactions.js';
import { verifySiweMessage, } from '../../actions/siwe/verifySiweMessage.js';
import { prepareTransactionRequest, } from '../../actions/wallet/prepareTransactionRequest.js';
import { sendRawTransaction, } from '../../actions/wallet/sendRawTransaction.js';
import { sendRawTransactionSync, } from '../../actions/wallet/sendRawTransactionSync.js';
export function publicActions(client) {
return {
call: (args) => call(client, args),
createAccessList: (args) => createAccessList(client, args),
createBlockFilter: () => createBlockFilter(client),
createContractEventFilter: (args) => createContractEventFilter(client, args),
createEventFilter: (args) => createEventFilter(client, args),
createPendingTransactionFilter: () => createPendingTransactionFilter(client),
estimateContractGas: (args) => estimateContractGas(client, args),
estimateGas: (args) => estimateGas(client, args),
getBalance: (args) => getBalance(client, args),
getBlobBaseFee: () => getBlobBaseFee(client),
getBlock: (args) => getBlock(client, args),
getBlockNumber: (args) => getBlockNumber(client, args),
getBlockTransactionCount: (args) => getBlockTransactionCount(client, args),
getBytecode: (args) => getCode(client, args),
getChainId: () => getChainId(client),
getCode: (args) => getCode(client, args),
getContractEvents: (args) => getContractEvents(client, args),
getDelegation: (args) => getDelegation(client, args),
getEip712Domain: (args) => getEip712Domain(client, args),
getEnsAddress: (args) => getEnsAddress(client, args),
getEnsAvatar: (args) => getEnsAvatar(client, args),
getEnsName: (args) => getEnsName(client, args),
getEnsResolver: (args) => getEnsResolver(client, args),
getEnsText: (args) => getEnsText(client, args),
getFeeHistory: (args) => getFeeHistory(client, args),
estimateFeesPerGas: (args) => estimateFeesPerGas(client, args),
getFilterChanges: (args) => getFilterChanges(client, args),
getFilterLogs: (args) => getFilterLogs(client, args),
getGasPrice: () => getGasPrice(client),
getLogs: (args) => getLogs(client, args),
getProof: (args) => getProof(client, args),
estimateMaxPriorityFeePerGas: (args) => estimateMaxPriorityFeePerGas(client, args),
fillTransaction: (args) => fillTransaction(client, args),
getStorageAt: (args) => getStorageAt(client, args),
getTransaction: (args) => getTransaction(client, args),
getTransactionConfirmations: (args) => getTransactionConfirmations(client, args),
getTransactionCount: (args) => getTransactionCount(client, args),
getTransactionReceipt: (args) => getTransactionReceipt(client, args),
multicall: (args) => multicall(client, args),
prepareTransactionRequest: (args) => prepareTransactionRequest(client, args),
readContract: (args) => readContract(client, args),
sendRawTransaction: (args) => sendRawTransaction(client, args),
sendRawTransactionSync: (args) => sendRawTransactionSync(client, args),
simulate: (args) => simulateBlocks(client, args),
simulateBlocks: (args) => simulateBlocks(client, args),
simulateCalls: (args) => simulateCalls(client, args),
simulateContract: (args) => simulateContract(client, args),
verifyHash: (args) => verifyHash(client, args),
verifyMessage: (args) => verifyMessage(client, args),
verifySiweMessage: (args) => verifySiweMessage(client, args),
verifyTypedData: (args) => verifyTypedData(client, args),
uninstallFilter: (args) => uninstallFilter(client, args),
waitForTransactionReceipt: (args) => waitForTransactionReceipt(client, args),
watchBlocks: (args) => watchBlocks(client, args),
watchBlockNumber: (args) => watchBlockNumber(client, args),
watchContractEvent: (args) => watchContractEvent(client, args),
watchEvent: (args) => watchEvent(client, args),
watchPendingTransactions: (args) => watchPendingTransactions(client, args),
};
}
//# sourceMappingURL=public.js.map

File diff suppressed because one or more lines are too long

70
node_modules/viem/_esm/clients/decorators/test.js generated vendored Normal file
View File

@@ -0,0 +1,70 @@
import { dropTransaction, } from '../../actions/test/dropTransaction.js';
import { dumpState, } from '../../actions/test/dumpState.js';
import { getAutomine, } from '../../actions/test/getAutomine.js';
import { getTxpoolContent, } from '../../actions/test/getTxpoolContent.js';
import { getTxpoolStatus, } from '../../actions/test/getTxpoolStatus.js';
import { impersonateAccount, } from '../../actions/test/impersonateAccount.js';
import { increaseTime, } from '../../actions/test/increaseTime.js';
import { inspectTxpool, } from '../../actions/test/inspectTxpool.js';
import { loadState, } from '../../actions/test/loadState.js';
import { mine } from '../../actions/test/mine.js';
import { removeBlockTimestampInterval } from '../../actions/test/removeBlockTimestampInterval.js';
import { reset } from '../../actions/test/reset.js';
import { revert } from '../../actions/test/revert.js';
import { sendUnsignedTransaction, } from '../../actions/test/sendUnsignedTransaction.js';
import { setAutomine } from '../../actions/test/setAutomine.js';
import { setBalance, } from '../../actions/test/setBalance.js';
import { setBlockGasLimit, } from '../../actions/test/setBlockGasLimit.js';
import { setBlockTimestampInterval, } from '../../actions/test/setBlockTimestampInterval.js';
import { setCode } from '../../actions/test/setCode.js';
import { setCoinbase, } from '../../actions/test/setCoinbase.js';
import { setIntervalMining, } from '../../actions/test/setIntervalMining.js';
import { setLoggingEnabled } from '../../actions/test/setLoggingEnabled.js';
import { setMinGasPrice, } from '../../actions/test/setMinGasPrice.js';
import { setNextBlockBaseFeePerGas, } from '../../actions/test/setNextBlockBaseFeePerGas.js';
import { setNextBlockTimestamp, } from '../../actions/test/setNextBlockTimestamp.js';
import { setNonce, } from '../../actions/test/setNonce.js';
import { setRpcUrl } from '../../actions/test/setRpcUrl.js';
import { setStorageAt, } from '../../actions/test/setStorageAt.js';
import { snapshot } from '../../actions/test/snapshot.js';
import { stopImpersonatingAccount, } from '../../actions/test/stopImpersonatingAccount.js';
export function testActions({ mode, }) {
return (client_) => {
const client = client_.extend(() => ({
mode,
}));
return {
dropTransaction: (args) => dropTransaction(client, args),
dumpState: () => dumpState(client),
getAutomine: () => getAutomine(client),
getTxpoolContent: () => getTxpoolContent(client),
getTxpoolStatus: () => getTxpoolStatus(client),
impersonateAccount: (args) => impersonateAccount(client, args),
increaseTime: (args) => increaseTime(client, args),
inspectTxpool: () => inspectTxpool(client),
loadState: (args) => loadState(client, args),
mine: (args) => mine(client, args),
removeBlockTimestampInterval: () => removeBlockTimestampInterval(client),
reset: (args) => reset(client, args),
revert: (args) => revert(client, args),
sendUnsignedTransaction: (args) => sendUnsignedTransaction(client, args),
setAutomine: (args) => setAutomine(client, args),
setBalance: (args) => setBalance(client, args),
setBlockGasLimit: (args) => setBlockGasLimit(client, args),
setBlockTimestampInterval: (args) => setBlockTimestampInterval(client, args),
setCode: (args) => setCode(client, args),
setCoinbase: (args) => setCoinbase(client, args),
setIntervalMining: (args) => setIntervalMining(client, args),
setLoggingEnabled: (args) => setLoggingEnabled(client, args),
setMinGasPrice: (args) => setMinGasPrice(client, args),
setNextBlockBaseFeePerGas: (args) => setNextBlockBaseFeePerGas(client, args),
setNextBlockTimestamp: (args) => setNextBlockTimestamp(client, args),
setNonce: (args) => setNonce(client, args),
setRpcUrl: (args) => setRpcUrl(client, args),
setStorageAt: (args) => setStorageAt(client, args),
snapshot: () => snapshot(client),
stopImpersonatingAccount: (args) => stopImpersonatingAccount(client, args),
};
};
}
//# sourceMappingURL=test.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"test.js","sourceRoot":"","sources":["../../../clients/decorators/test.ts"],"names":[],"mappings":"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"}

61
node_modules/viem/_esm/clients/decorators/wallet.js generated vendored Normal file
View File

@@ -0,0 +1,61 @@
import { fillTransaction, } from '../../actions/public/fillTransaction.js';
import { getChainId, } from '../../actions/public/getChainId.js';
import { addChain, } from '../../actions/wallet/addChain.js';
import { deployContract, } from '../../actions/wallet/deployContract.js';
import { getAddresses, } from '../../actions/wallet/getAddresses.js';
import { getCallsStatus, } from '../../actions/wallet/getCallsStatus.js';
import { getCapabilities, } from '../../actions/wallet/getCapabilities.js';
import { getPermissions, } from '../../actions/wallet/getPermissions.js';
import { prepareAuthorization, } from '../../actions/wallet/prepareAuthorization.js';
import { prepareTransactionRequest, } from '../../actions/wallet/prepareTransactionRequest.js';
import { requestAddresses, } from '../../actions/wallet/requestAddresses.js';
import { requestPermissions, } from '../../actions/wallet/requestPermissions.js';
import { sendCalls, } from '../../actions/wallet/sendCalls.js';
import { sendCallsSync, } from '../../actions/wallet/sendCallsSync.js';
import { sendRawTransaction, } from '../../actions/wallet/sendRawTransaction.js';
import { sendRawTransactionSync, } from '../../actions/wallet/sendRawTransactionSync.js';
import { sendTransaction, } from '../../actions/wallet/sendTransaction.js';
import { sendTransactionSync, } from '../../actions/wallet/sendTransactionSync.js';
import { showCallsStatus, } from '../../actions/wallet/showCallsStatus.js';
import { signAuthorization, } from '../../actions/wallet/signAuthorization.js';
import { signMessage, } from '../../actions/wallet/signMessage.js';
import { signTransaction, } from '../../actions/wallet/signTransaction.js';
import { signTypedData, } from '../../actions/wallet/signTypedData.js';
import { switchChain, } from '../../actions/wallet/switchChain.js';
import { waitForCallsStatus, } from '../../actions/wallet/waitForCallsStatus.js';
import { watchAsset, } from '../../actions/wallet/watchAsset.js';
import { writeContract, } from '../../actions/wallet/writeContract.js';
import { writeContractSync, } from '../../actions/wallet/writeContractSync.js';
export function walletActions(client) {
return {
addChain: (args) => addChain(client, args),
deployContract: (args) => deployContract(client, args),
fillTransaction: (args) => fillTransaction(client, args),
getAddresses: () => getAddresses(client),
getCallsStatus: (args) => getCallsStatus(client, args),
getCapabilities: (args) => getCapabilities(client, args),
getChainId: () => getChainId(client),
getPermissions: () => getPermissions(client),
prepareAuthorization: (args) => prepareAuthorization(client, args),
prepareTransactionRequest: (args) => prepareTransactionRequest(client, args),
requestAddresses: () => requestAddresses(client),
requestPermissions: (args) => requestPermissions(client, args),
sendCalls: (args) => sendCalls(client, args),
sendCallsSync: (args) => sendCallsSync(client, args),
sendRawTransaction: (args) => sendRawTransaction(client, args),
sendRawTransactionSync: (args) => sendRawTransactionSync(client, args),
sendTransaction: (args) => sendTransaction(client, args),
sendTransactionSync: (args) => sendTransactionSync(client, args),
showCallsStatus: (args) => showCallsStatus(client, args),
signAuthorization: (args) => signAuthorization(client, args),
signMessage: (args) => signMessage(client, args),
signTransaction: (args) => signTransaction(client, args),
signTypedData: (args) => signTypedData(client, args),
switchChain: (args) => switchChain(client, args),
waitForCallsStatus: (args) => waitForCallsStatus(client, args),
watchAsset: (args) => watchAsset(client, args),
writeContract: (args) => writeContract(client, args),
writeContractSync: (args) => writeContractSync(client, args),
};
}
//# sourceMappingURL=wallet.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"wallet.js","sourceRoot":"","sources":["../../../clients/decorators/wallet.ts"],"names":[],"mappings":"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"}

View File

@@ -0,0 +1,23 @@
import { buildRequest } from '../../utils/buildRequest.js';
import { uid as uid_ } from '../../utils/uid.js';
/**
* @description Creates an transport intended to be used with a client.
*/
export function createTransport({ key, methods, name, request, retryCount = 3, retryDelay = 150, timeout, type, }, value) {
const uid = uid_();
return {
config: {
key,
methods,
name,
request,
retryCount,
retryDelay,
timeout,
type,
},
request: buildRequest(request, { methods, retryCount, retryDelay, uid }),
value,
};
}
//# sourceMappingURL=createTransport.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"createTransport.js","sourceRoot":"","sources":["../../../clients/transports/createTransport.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAC1D,OAAO,EAAE,GAAG,IAAI,IAAI,EAAE,MAAM,oBAAoB,CAAA;AAsDhD;;GAEG;AACH,MAAM,UAAU,eAAe,CAI7B,EACE,GAAG,EACH,OAAO,EACP,IAAI,EACJ,OAAO,EACP,UAAU,GAAG,CAAC,EACd,UAAU,GAAG,GAAG,EAChB,OAAO,EACP,IAAI,GACkB,EACxB,KAAiC;IAEjC,MAAM,GAAG,GAAG,IAAI,EAAE,CAAA;IAClB,OAAO;QACL,MAAM,EAAE;YACN,GAAG;YACH,OAAO;YACP,IAAI;YACJ,OAAO;YACP,UAAU;YACV,UAAU;YACV,OAAO;YACP,IAAI;SACL;QACD,OAAO,EAAE,YAAY,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC;QACxE,KAAK;KACN,CAAA;AACH,CAAC"}

17
node_modules/viem/_esm/clients/transports/custom.js generated vendored Normal file
View File

@@ -0,0 +1,17 @@
import { createTransport, } from './createTransport.js';
/**
* @description Creates a custom transport given an EIP-1193 compliant `request` attribute.
*/
export function custom(provider, config = {}) {
const { key = 'custom', methods, name = 'Custom Provider', retryDelay, } = config;
return ({ retryCount: defaultRetryCount }) => createTransport({
key,
methods,
name,
request: provider.request.bind(provider),
retryCount: config.retryCount ?? defaultRetryCount,
retryDelay,
type: 'custom',
});
}
//# sourceMappingURL=custom.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"custom.js","sourceRoot":"","sources":["../../../clients/transports/custom.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,eAAe,GAGhB,MAAM,sBAAsB,CAAA;AAyB7B;;GAEG;AACH,MAAM,UAAU,MAAM,CACpB,QAAkB,EAClB,SAAgC,EAAE;IAElC,MAAM,EACJ,GAAG,GAAG,QAAQ,EACd,OAAO,EACP,IAAI,GAAG,iBAAiB,EACxB,UAAU,GACX,GAAG,MAAM,CAAA;IACV,OAAO,CAAC,EAAE,UAAU,EAAE,iBAAiB,EAAE,EAAE,EAAE,CAC3C,eAAe,CAAC;QACd,GAAG;QACH,OAAO;QACP,IAAI;QACJ,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;QACxC,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,iBAAiB;QAClD,UAAU;QACV,IAAI,EAAE,QAAQ;KACf,CAAC,CAAA;AACN,CAAC"}

160
node_modules/viem/_esm/clients/transports/fallback.js generated vendored Normal file
View File

@@ -0,0 +1,160 @@
import { ExecutionRevertedError } from '../../errors/node.js';
import { TransactionRejectedRpcError, UserRejectedRequestError, WalletConnectSessionSettlementError, } from '../../errors/rpc.js';
import { wait } from '../../utils/wait.js';
import { createTransport, } from './createTransport.js';
export function fallback(transports_, config = {}) {
const { key = 'fallback', name = 'Fallback', rank = false, shouldThrow: shouldThrow_ = shouldThrow, retryCount, retryDelay, } = config;
return (({ chain, pollingInterval = 4_000, timeout, ...rest }) => {
let transports = transports_;
let onResponse = () => { };
const transport = createTransport({
key,
name,
async request({ method, params }) {
let includes;
const fetch = async (i = 0) => {
const transport = transports[i]({
...rest,
chain,
retryCount: 0,
timeout,
});
try {
const response = await transport.request({
method,
params,
});
onResponse({
method,
params: params,
response,
transport,
status: 'success',
});
return response;
}
catch (err) {
onResponse({
error: err,
method,
params: params,
transport,
status: 'error',
});
if (shouldThrow_(err))
throw err;
// If we've reached the end of the fallbacks, throw the error.
if (i === transports.length - 1)
throw err;
// Check if at least one other transport includes the method
includes ??= transports.slice(i + 1).some((transport) => {
const { include, exclude } = transport({ chain }).config.methods || {};
if (include)
return include.includes(method);
if (exclude)
return !exclude.includes(method);
return true;
});
if (!includes)
throw err;
// Otherwise, try the next fallback.
return fetch(i + 1);
}
};
return fetch();
},
retryCount,
retryDelay,
type: 'fallback',
}, {
onResponse: (fn) => (onResponse = fn),
transports: transports.map((fn) => fn({ chain, retryCount: 0 })),
});
if (rank) {
const rankOptions = (typeof rank === 'object' ? rank : {});
rankTransports({
chain,
interval: rankOptions.interval ?? pollingInterval,
onTransports: (transports_) => (transports = transports_),
ping: rankOptions.ping,
sampleCount: rankOptions.sampleCount,
timeout: rankOptions.timeout,
transports,
weights: rankOptions.weights,
});
}
return transport;
});
}
export function shouldThrow(error) {
if ('code' in error && typeof error.code === 'number') {
if (error.code === TransactionRejectedRpcError.code ||
error.code === UserRejectedRequestError.code ||
error.code === WalletConnectSessionSettlementError.code ||
ExecutionRevertedError.nodeMessage.test(error.message) ||
error.code === 5000 // CAIP UserRejectedRequestError
)
return true;
}
return false;
}
/** @internal */
export function rankTransports({ chain, interval = 4_000, onTransports, ping, sampleCount = 10, timeout = 1_000, transports, weights = {}, }) {
const { stability: stabilityWeight = 0.7, latency: latencyWeight = 0.3 } = weights;
const samples = [];
const rankTransports_ = async () => {
// 1. Take a sample from each Transport.
const sample = await Promise.all(transports.map(async (transport) => {
const transport_ = transport({ chain, retryCount: 0, timeout });
const start = Date.now();
let end;
let success;
try {
await (ping
? ping({ transport: transport_ })
: transport_.request({ method: 'net_listening' }));
success = 1;
}
catch {
success = 0;
}
finally {
end = Date.now();
}
const latency = end - start;
return { latency, success };
}));
// 2. Store the sample. If we have more than `sampleCount` samples, remove
// the oldest sample.
samples.push(sample);
if (samples.length > sampleCount)
samples.shift();
// 3. Calculate the max latency from samples.
const maxLatency = Math.max(...samples.map((sample) => Math.max(...sample.map(({ latency }) => latency))));
// 4. Calculate the score for each Transport.
const scores = transports
.map((_, i) => {
const latencies = samples.map((sample) => sample[i].latency);
const meanLatency = latencies.reduce((acc, latency) => acc + latency, 0) /
latencies.length;
const latencyScore = 1 - meanLatency / maxLatency;
const successes = samples.map((sample) => sample[i].success);
const stabilityScore = successes.reduce((acc, success) => acc + success, 0) /
successes.length;
if (stabilityScore === 0)
return [0, i];
return [
latencyWeight * latencyScore + stabilityWeight * stabilityScore,
i,
];
})
.sort((a, b) => b[0] - a[0]);
// 5. Sort the Transports by score.
onTransports(scores.map(([, i]) => transports[i]));
// 6. Wait, and then rank again.
await wait(interval);
rankTransports_();
};
rankTransports_();
}
//# sourceMappingURL=fallback.js.map

File diff suppressed because one or more lines are too long

72
node_modules/viem/_esm/clients/transports/http.js generated vendored Normal file
View File

@@ -0,0 +1,72 @@
import { RpcRequestError } from '../../errors/request.js';
import { UrlRequiredError, } from '../../errors/transport.js';
import { createBatchScheduler } from '../../utils/promise/createBatchScheduler.js';
import { getHttpRpcClient, } from '../../utils/rpc/http.js';
import { createTransport, } from './createTransport.js';
/**
* @description Creates a HTTP transport that connects to a JSON-RPC API.
*/
export function http(
/** URL of the JSON-RPC API. Defaults to the chain's public RPC URL. */
url, config = {}) {
const { batch, fetchFn, fetchOptions, key = 'http', methods, name = 'HTTP JSON-RPC', onFetchRequest, onFetchResponse, retryDelay, raw, } = config;
return ({ chain, retryCount: retryCount_, timeout: timeout_ }) => {
const { batchSize = 1000, wait = 0 } = typeof batch === 'object' ? batch : {};
const retryCount = config.retryCount ?? retryCount_;
const timeout = timeout_ ?? config.timeout ?? 10_000;
const url_ = url || chain?.rpcUrls.default.http[0];
if (!url_)
throw new UrlRequiredError();
const rpcClient = getHttpRpcClient(url_, {
fetchFn,
fetchOptions,
onRequest: onFetchRequest,
onResponse: onFetchResponse,
timeout,
});
return createTransport({
key,
methods,
name,
async request({ method, params }) {
const body = { method, params };
const { schedule } = createBatchScheduler({
id: url_,
wait,
shouldSplitBatch(requests) {
return requests.length > batchSize;
},
fn: (body) => rpcClient.request({
body,
}),
sort: (a, b) => a.id - b.id,
});
const fn = async (body) => batch
? schedule(body)
: [
await rpcClient.request({
body,
}),
];
const [{ error, result }] = await fn(body);
if (raw)
return { error, result };
if (error)
throw new RpcRequestError({
body,
error,
url: url_,
});
return result;
},
retryCount,
retryDelay,
timeout,
type: 'http',
}, {
fetchOptions,
url: url_,
});
};
}
//# sourceMappingURL=http.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../../clients/transports/http.ts"],"names":[],"mappings":"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"}

77
node_modules/viem/_esm/clients/transports/ipc.js generated vendored Normal file
View File

@@ -0,0 +1,77 @@
import { RpcRequestError } from '../../errors/request.js';
import { getIpcRpcClient, } from '../../utils/rpc/ipc.js';
import { createTransport, } from './createTransport.js';
/**
* @description Creates an IPC transport that connects to a JSON-RPC API.
*/
export function ipc(path, config = {}) {
const { key = 'ipc', methods, name = 'IPC JSON-RPC', reconnect, retryDelay, } = config;
return ({ retryCount: retryCount_, timeout: timeout_ }) => {
const retryCount = config.retryCount ?? retryCount_;
const timeout = timeout_ ?? config.timeout ?? 10_000;
return createTransport({
key,
methods,
name,
async request({ method, params }) {
const body = { method, params };
const rpcClient = await getIpcRpcClient(path, { reconnect });
const { error, result } = await rpcClient.requestAsync({
body,
timeout,
});
if (error)
throw new RpcRequestError({
body,
error,
url: path,
});
return result;
},
retryCount,
retryDelay,
timeout,
type: 'ipc',
}, {
getRpcClient() {
return getIpcRpcClient(path);
},
async subscribe({ params, onData, onError }) {
const rpcClient = await getIpcRpcClient(path);
const { result: subscriptionId } = await new Promise((resolve, reject) => rpcClient.request({
body: {
method: 'eth_subscribe',
params,
},
onResponse(response) {
if (response.error) {
reject(response.error);
onError?.(response.error);
return;
}
if (typeof response.id === 'number') {
resolve(response);
return;
}
if (response.method !== 'eth_subscription')
return;
onData(response.params);
},
}));
return {
subscriptionId,
async unsubscribe() {
return new Promise((resolve) => rpcClient.request({
body: {
method: 'eth_unsubscribe',
params: [subscriptionId],
},
onResponse: resolve,
}));
},
};
},
});
};
}
//# sourceMappingURL=ipc.js.map

1
node_modules/viem/_esm/clients/transports/ipc.js.map generated vendored Normal file
View File

@@ -0,0 +1 @@
{"version":3,"file":"ipc.js","sourceRoot":"","sources":["../../../clients/transports/ipc.ts"],"names":[],"mappings":"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"}

93
node_modules/viem/_esm/clients/transports/webSocket.js generated vendored Normal file
View File

@@ -0,0 +1,93 @@
import { RpcRequestError } from '../../errors/request.js';
import { UrlRequiredError, } from '../../errors/transport.js';
import { getSocket } from '../../utils/rpc/compat.js';
import { getWebSocketRpcClient, } from '../../utils/rpc/webSocket.js';
import { createTransport, } from './createTransport.js';
/**
* @description Creates a WebSocket transport that connects to a JSON-RPC API.
*/
export function webSocket(
/** URL of the JSON-RPC API. Defaults to the chain's public RPC URL. */
url, config = {}) {
const { keepAlive, key = 'webSocket', methods, name = 'WebSocket JSON-RPC', reconnect, retryDelay, } = config;
return ({ chain, retryCount: retryCount_, timeout: timeout_ }) => {
const retryCount = config.retryCount ?? retryCount_;
const timeout = timeout_ ?? config.timeout ?? 10_000;
const url_ = url || chain?.rpcUrls.default.webSocket?.[0];
const wsRpcClientOpts = { keepAlive, reconnect };
if (!url_)
throw new UrlRequiredError();
return createTransport({
key,
methods,
name,
async request({ method, params }) {
const body = { method, params };
const rpcClient = await getWebSocketRpcClient(url_, wsRpcClientOpts);
const { error, result } = await rpcClient.requestAsync({
body,
timeout,
});
if (error)
throw new RpcRequestError({
body,
error,
url: url_,
});
return result;
},
retryCount,
retryDelay,
timeout,
type: 'webSocket',
}, {
getSocket() {
return getSocket(url_);
},
getRpcClient() {
return getWebSocketRpcClient(url_, wsRpcClientOpts);
},
async subscribe({ params, onData, onError }) {
const rpcClient = await getWebSocketRpcClient(url_, wsRpcClientOpts);
const { result: subscriptionId } = await new Promise((resolve, reject) => rpcClient.request({
body: {
method: 'eth_subscribe',
params,
},
onError(error) {
reject(error);
onError?.(error);
return;
},
onResponse(response) {
if (response.error) {
reject(response.error);
onError?.(response.error);
return;
}
if (typeof response.id === 'number') {
resolve(response);
return;
}
if (response.method !== 'eth_subscription')
return;
onData(response.params);
},
}));
return {
subscriptionId,
async unsubscribe() {
return new Promise((resolve) => rpcClient.request({
body: {
method: 'eth_unsubscribe',
params: [subscriptionId],
},
onResponse: resolve,
}));
},
};
},
});
};
}
//# sourceMappingURL=webSocket.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"webSocket.js","sourceRoot":"","sources":["../../../clients/transports/webSocket.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACzD,OAAO,EACL,gBAAgB,GAEjB,MAAM,2BAA2B,CAAA;AAIlC,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAErD,OAAO,EAEL,qBAAqB,GACtB,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAEL,eAAe,GAGhB,MAAM,sBAAsB,CAAA;AAgF7B;;GAEG;AACH,MAAM,UAAU,SAAS;AACvB,uEAAuE;AACvE,GAAY,EACZ,SAAmC,EAAE;IAErC,MAAM,EACJ,SAAS,EACT,GAAG,GAAG,WAAW,EACjB,OAAO,EACP,IAAI,GAAG,oBAAoB,EAC3B,SAAS,EACT,UAAU,GACX,GAAG,MAAM,CAAA;IACV,OAAO,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE;QAC/D,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,WAAW,CAAA;QACnD,MAAM,OAAO,GAAG,QAAQ,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAA;QACpD,MAAM,IAAI,GAAG,GAAG,IAAI,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAA;QACzD,MAAM,eAAe,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,CAAA;QAChD,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,gBAAgB,EAAE,CAAA;QACvC,OAAO,eAAe,CACpB;YACE,GAAG;YACH,OAAO;YACP,IAAI;YACJ,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE;gBAC9B,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,CAAA;gBAC/B,MAAM,SAAS,GAAG,MAAM,qBAAqB,CAAC,IAAI,EAAE,eAAe,CAAC,CAAA;gBACpE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,YAAY,CAAC;oBACrD,IAAI;oBACJ,OAAO;iBACR,CAAC,CAAA;gBACF,IAAI,KAAK;oBACP,MAAM,IAAI,eAAe,CAAC;wBACxB,IAAI;wBACJ,KAAK;wBACL,GAAG,EAAE,IAAI;qBACV,CAAC,CAAA;gBACJ,OAAO,MAAM,CAAA;YACf,CAAC;YACD,UAAU;YACV,UAAU;YACV,OAAO;YACP,IAAI,EAAE,WAAW;SAClB,EACD;YACE,SAAS;gBACP,OAAO,SAAS,CAAC,IAAI,CAAC,CAAA;YACxB,CAAC;YACD,YAAY;gBACV,OAAO,qBAAqB,CAAC,IAAI,EAAE,eAAe,CAAC,CAAA;YACrD,CAAC;YACD,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAO;gBAC9C,MAAM,SAAS,GAAG,MAAM,qBAAqB,CAAC,IAAI,EAAE,eAAe,CAAC,CAAA;gBACpE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,IAAI,OAAO,CAClD,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAClB,SAAS,CAAC,OAAO,CAAC;oBAChB,IAAI,EAAE;wBACJ,MAAM,EAAE,eAAe;wBACvB,MAAM;qBACP;oBACD,OAAO,CAAC,KAAK;wBACX,MAAM,CAAC,KAAK,CAAC,CAAA;wBACb,OAAO,EAAE,CAAC,KAAK,CAAC,CAAA;wBAChB,OAAM;oBACR,CAAC;oBACD,UAAU,CAAC,QAAQ;wBACjB,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;4BACnB,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;4BACtB,OAAO,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;4BACzB,OAAM;wBACR,CAAC;wBAED,IAAI,OAAO,QAAQ,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;4BACpC,OAAO,CAAC,QAAQ,CAAC,CAAA;4BACjB,OAAM;wBACR,CAAC;wBACD,IAAI,QAAQ,CAAC,MAAM,KAAK,kBAAkB;4BAAE,OAAM;wBAClD,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;oBACzB,CAAC;iBACF,CAAC,CACL,CAAA;gBACD,OAAO;oBACL,cAAc;oBACd,KAAK,CAAC,WAAW;wBACf,OAAO,IAAI,OAAO,CAAM,CAAC,OAAO,EAAE,EAAE,CAClC,SAAS,CAAC,OAAO,CAAC;4BAChB,IAAI,EAAE;gCACJ,MAAM,EAAE,iBAAiB;gCACzB,MAAM,EAAE,CAAC,cAAc,CAAC;6BACzB;4BACD,UAAU,EAAE,OAAO;yBACpB,CAAC,CACH,CAAA;oBACH,CAAC;iBACF,CAAA;YACH,CAAC;SACF,CACF,CAAA;IACH,CAAC,CAAA;AACH,CAAC"}