(
+ AccessType.ACCESS_TYPE_EVERYBODY,
+ );
+ const [isLoading, setIsLoading] = useState(false);
+
+ const { selectedChain } = useChainStore();
+ const { address } = useChain(selectedChain);
+ const { storeCodeTx } = useStoreCodeTx(selectedChain);
+
+ const resetStates = () => {
+ setWasmFile(null);
+ setAddresses([{ value: '' }]);
+ setPermission(AccessType.ACCESS_TYPE_EVERYBODY);
+ };
+
+ const handleUpload = () => {
+ if (!address || !wasmFile) return;
+
+ setIsLoading(true);
+
+ storeCodeTx({
+ wasmFile,
+ permission,
+ addresses: addresses.map((addr) => addr.value),
+ onTxFailed() {
+ setIsLoading(false);
+ },
+ onTxSucceed(codeId) {
+ setIsLoading(false);
+ onSuccess?.(codeId);
+ resetStates();
+ },
+ });
+ };
+
+ const isAddressesValid =
+ permission === AccessType.ACCESS_TYPE_ANY_OF_ADDRESSES
+ ? addresses.every((addr) => addr.isValid)
+ : true;
+
+ const isButtonDisabled = !address || !wasmFile || !isAddressesValid;
+
+ const { isMobile } = useDetectBreakpoints();
+
+ return (
+
+
+ Upload Contract
+
+
+
+
+
+
+
+
+
+ );
+};
diff --git a/examples/chain-template-spawn/components/contract/WasmFileUploader.tsx b/examples/chain-template-spawn/components/contract/WasmFileUploader.tsx
new file mode 100644
index 000000000..d07687bfc
--- /dev/null
+++ b/examples/chain-template-spawn/components/contract/WasmFileUploader.tsx
@@ -0,0 +1,140 @@
+import Image from 'next/image';
+import { useCallback, useMemo } from 'react';
+import {
+ Box,
+ Text,
+ useTheme,
+ useColorModeValue,
+ ThemeVariant,
+} from '@interchain-ui/react';
+import { HiOutlineTrash } from 'react-icons/hi';
+import { useDropzone } from 'react-dropzone';
+
+import { bytesToKb } from '@/utils';
+
+const MAX_FILE_SIZE = 800_000;
+
+const getDefaultFileInfo = (theme: ThemeVariant) => ({
+ image: {
+ src: theme === 'light' ? '/images/upload.svg' : '/images/upload-dark.svg',
+ alt: 'upload',
+ width: 80,
+ height: 48,
+ },
+ title: 'Upload or drag .wasm file here',
+ description: `Max file size: ${bytesToKb(MAX_FILE_SIZE)}KB`,
+});
+
+type WasmFileUploaderProps = {
+ file: File | null;
+ setFile: (file: File | null) => void;
+};
+
+export const WasmFileUploader = ({ file, setFile }: WasmFileUploaderProps) => {
+ const { theme } = useTheme();
+
+ const onDrop = useCallback(
+ (files: File[]) => {
+ setFile(files[0]);
+ },
+ [setFile],
+ );
+
+ const fileInfo = useMemo(() => {
+ if (!file) return getDefaultFileInfo(theme);
+
+ return {
+ image: {
+ src:
+ theme === 'light'
+ ? '/images/contract-file.svg'
+ : '/images/contract-file-dark.svg',
+ alt: 'contract-file',
+ width: 40,
+ height: 54,
+ },
+ title: file.name,
+ description: `File size: ${bytesToKb(file.size)}KB`,
+ };
+ }, [file, theme]);
+
+ const { getRootProps, getInputProps } = useDropzone({
+ onDrop,
+ multiple: false,
+ accept: { 'application/octet-stream': ['.wasm'] },
+ maxSize: MAX_FILE_SIZE,
+ });
+
+ return (
+
+
+ {!file && }
+
+
+
+
+ {fileInfo.title}
+
+
+ {fileInfo.description}
+
+
+
+ {file && (
+ setFile(null) }}
+ >
+
+
+ Remove
+
+
+ )}
+
+
+ );
+};
diff --git a/examples/chain-template-spawn/components/contract/index.ts b/examples/chain-template-spawn/components/contract/index.ts
new file mode 100644
index 000000000..1848e3e49
--- /dev/null
+++ b/examples/chain-template-spawn/components/contract/index.ts
@@ -0,0 +1,3 @@
+export * from './QueryTab';
+export * from './ExecuteTab';
+export * from './MyContractsTab';
diff --git a/examples/chain-template-spawn/components/index.ts b/examples/chain-template-spawn/components/index.ts
new file mode 100644
index 000000000..9b9594a60
--- /dev/null
+++ b/examples/chain-template-spawn/components/index.ts
@@ -0,0 +1,5 @@
+export * from './common';
+export * from './staking';
+export * from './voting';
+export * from './asset-list';
+export * from './contract';
diff --git a/examples/chain-template-spawn/components/staking/AllValidators.tsx b/examples/chain-template-spawn/components/staking/AllValidators.tsx
new file mode 100644
index 000000000..ca21669bf
--- /dev/null
+++ b/examples/chain-template-spawn/components/staking/AllValidators.tsx
@@ -0,0 +1,66 @@
+import { useState } from 'react';
+import { Text } from '@interchain-ui/react';
+import { ChainName } from 'cosmos-kit';
+
+import { DelegateModal } from './DelegateModal';
+import AllValidatorsList from './AllValidatorsList';
+import { Prices, useDisclosure } from '@/hooks';
+import { type ExtendedValidator as Validator } from '@/utils';
+
+export const AllValidators = ({
+ validators,
+ balance,
+ updateData,
+ unbondingDays,
+ chainName,
+ logos,
+ prices,
+}: {
+ validators: Validator[];
+ balance: string;
+ updateData: () => void;
+ unbondingDays: string;
+ chainName: ChainName;
+ logos: {
+ [key: string]: string;
+ };
+ prices: Prices;
+}) => {
+ const delegateModalControl = useDisclosure();
+ const [selectedValidator, setSelectedValidator] = useState();
+
+ return (
+ <>
+
+ All Validators
+
+
+
+
+ {selectedValidator && (
+
+ )}
+ >
+ );
+};
diff --git a/examples/chain-template-spawn/components/staking/AllValidatorsList.tsx b/examples/chain-template-spawn/components/staking/AllValidatorsList.tsx
new file mode 100644
index 000000000..efd6a8a9e
--- /dev/null
+++ b/examples/chain-template-spawn/components/staking/AllValidatorsList.tsx
@@ -0,0 +1,124 @@
+import React, { Dispatch, SetStateAction, useMemo } from 'react';
+import { ChainName } from 'cosmos-kit';
+import {
+ Text,
+ Button,
+ ValidatorList,
+ ValidatorNameCell,
+ ValidatorTokenAmountCell,
+ GridColumn,
+} from '@interchain-ui/react';
+import { useChain } from '@cosmos-kit/react';
+
+import {
+ shiftDigits,
+ getNativeAsset,
+ type ExtendedValidator as Validator,
+} from '@/utils';
+
+const AllValidatorsList = ({
+ validators,
+ openModal,
+ chainName,
+ logos,
+ setSelectedValidator,
+}: {
+ validators: Validator[];
+ chainName: ChainName;
+ openModal: () => void;
+ setSelectedValidator: Dispatch>;
+ logos: {
+ [key: string]: string;
+ };
+}) => {
+ const { assets } = useChain(chainName);
+ const coin = getNativeAsset(assets!);
+
+ const columns = useMemo(() => {
+ const _columns: GridColumn[] = [
+ {
+ id: 'validator',
+ label: 'Validator',
+ width: '196px',
+ align: 'left',
+ render: (validator: Validator) => (
+
+ ),
+ },
+ {
+ id: 'voting-power',
+ label: 'Voting Power',
+ width: '196px',
+ align: 'right',
+ render: (validator: Validator) => (
+
+ ),
+ },
+ {
+ id: 'commission',
+ label: 'Commission',
+ width: '196px',
+ align: 'right',
+ render: (validator: Validator) => (
+
+ {shiftDigits(validator.commission, 2)}%
+
+ ),
+ },
+ {
+ id: 'action',
+ width: '196px',
+ align: 'right',
+ render: (validator) => (
+
+ ),
+ },
+ ];
+
+ const hasApr = !!validators[0]?.apr;
+
+ if (hasApr) {
+ _columns.splice(3, 0, {
+ id: 'apr',
+ label: 'APR',
+ width: '196px',
+ align: 'right',
+ render: (validator: Validator) => (
+ {validator.apr}%
+ ),
+ });
+ }
+
+ return _columns;
+ }, [chainName]);
+
+ return (
+
+ );
+};
+
+export default React.memo(AllValidatorsList);
diff --git a/examples/chain-template-spawn/components/staking/DelegateModal.tsx b/examples/chain-template-spawn/components/staking/DelegateModal.tsx
new file mode 100644
index 000000000..fc5c9679c
--- /dev/null
+++ b/examples/chain-template-spawn/components/staking/DelegateModal.tsx
@@ -0,0 +1,246 @@
+import { useState } from 'react';
+import { cosmos } from 'interchain-query';
+import { StdFee } from '@cosmjs/amino';
+import { useChain } from '@cosmos-kit/react';
+import { ChainName } from 'cosmos-kit';
+import BigNumber from 'bignumber.js';
+import {
+ BasicModal,
+ StakingDelegate,
+ Box,
+ Button,
+ Callout,
+ Text,
+} from '@interchain-ui/react';
+
+import {
+ type ExtendedValidator as Validator,
+ formatValidatorMetaInfo,
+ getAssetLogoUrl,
+ isGreaterThanZero,
+ shiftDigits,
+ calcDollarValue,
+ getNativeAsset,
+ getExponentFromAsset,
+ toBaseAmount,
+} from '@/utils';
+import { Prices, UseDisclosureReturn, useTx } from '@/hooks';
+
+const { delegate } = cosmos.staking.v1beta1.MessageComposer.fromPartial;
+
+export type MaxAmountAndFee = {
+ maxAmount: number;
+ fee: StdFee;
+};
+
+export const DelegateModal = ({
+ balance,
+ updateData,
+ unbondingDays,
+ chainName,
+ logoUrl,
+ modalControl,
+ selectedValidator,
+ closeOuterModal,
+ prices,
+ modalTitle,
+ showDescription = true,
+}: {
+ balance: string;
+ updateData: () => void;
+ unbondingDays: string;
+ chainName: ChainName;
+ modalControl: UseDisclosureReturn;
+ selectedValidator: Validator;
+ logoUrl: string;
+ prices: Prices;
+ closeOuterModal?: () => void;
+ modalTitle?: string;
+ showDescription?: boolean;
+}) => {
+ const { isOpen, onClose } = modalControl;
+ const { address, estimateFee, assets } = useChain(chainName);
+
+ const [amount, setAmount] = useState(0);
+ const [isDelegating, setIsDelegating] = useState(false);
+ const [isSimulating, setIsSimulating] = useState(false);
+ const [maxAmountAndFee, setMaxAmountAndFee] = useState();
+
+ const coin = getNativeAsset(assets!);
+ const exp = getExponentFromAsset(coin);
+ const { tx } = useTx(chainName);
+
+ const onModalClose = () => {
+ onClose();
+ setAmount(0);
+ setIsDelegating(false);
+ setIsSimulating(false);
+ };
+
+ const onDelegateClick = async () => {
+ if (!address || !amount) return;
+
+ setIsDelegating(true);
+
+ const msg = delegate({
+ delegatorAddress: address,
+ validatorAddress: selectedValidator.address,
+ amount: {
+ amount: toBaseAmount(amount, exp), // shiftDigits(amount, exp),
+ denom: coin.base,
+ },
+ });
+
+ const isMaxAmountAndFeeExists =
+ maxAmountAndFee &&
+ new BigNumber(amount).isEqualTo(maxAmountAndFee.maxAmount);
+
+ await tx([msg], {
+ fee: isMaxAmountAndFeeExists ? maxAmountAndFee.fee : null,
+ onSuccess: () => {
+ setMaxAmountAndFee(undefined);
+ closeOuterModal && closeOuterModal();
+ updateData();
+ onModalClose();
+ },
+ });
+
+ setIsDelegating(false);
+ };
+
+ const handleMaxClick = async () => {
+ if (!address) return;
+
+ if (Number(balance) === 0) {
+ setAmount(0);
+ return;
+ }
+
+ setIsSimulating(true);
+
+ const msg = delegate({
+ delegatorAddress: address,
+ validatorAddress: selectedValidator.address,
+ amount: {
+ amount: shiftDigits(balance, exp),
+ denom: coin.base,
+ },
+ });
+
+ try {
+ const fee = await estimateFee([msg]);
+ const feeAmount = new BigNumber(fee.amount[0].amount).shiftedBy(-exp);
+ const balanceAfterFee = new BigNumber(balance)
+ .minus(feeAmount)
+ .toNumber();
+ setMaxAmountAndFee({ fee, maxAmount: balanceAfterFee });
+ setAmount(balanceAfterFee);
+ } catch (error) {
+ console.log(error);
+ } finally {
+ setIsSimulating(false);
+ }
+ };
+
+ const headerExtra = (
+ <>
+ {showDescription && selectedValidator.description && (
+ {selectedValidator.description}
+ )}
+ {unbondingDays && (
+
+ You will need to undelegate in order for your staked assets to be
+ liquid again. This process will take {unbondingDays} days to complete.
+
+ )}
+ >
+ );
+
+ return (
+
+
+ {
+ setAmount(Number(val));
+ },
+ partials: [
+ {
+ label: '1/2',
+ onClick: () => {
+ const newAmount = new BigNumber(balance)
+ .dividedBy(2)
+ .toNumber();
+ setAmount(newAmount);
+ },
+ },
+ {
+ label: '1/3',
+ onClick: () => {
+ const newAmount = new BigNumber(balance)
+ .dividedBy(3)
+ .toNumber();
+
+ setAmount(newAmount);
+ },
+ },
+ {
+ label: 'Max',
+ onClick: handleMaxClick,
+ isLoading: isSimulating,
+ },
+ ],
+ }}
+ footer={
+
+ }
+ />
+
+
+ );
+};
diff --git a/examples/chain-template-spawn/components/staking/MyValidators.tsx b/examples/chain-template-spawn/components/staking/MyValidators.tsx
new file mode 100644
index 000000000..58b560715
--- /dev/null
+++ b/examples/chain-template-spawn/components/staking/MyValidators.tsx
@@ -0,0 +1,134 @@
+import { useState } from 'react';
+import { Text } from '@interchain-ui/react';
+import { ChainName } from 'cosmos-kit';
+
+import MyValidatorsList from './MyValidatorsList';
+import { ValidatorInfoModal } from './ValidatorInfoModal';
+import { UndelegateModal } from './UndelegateModal';
+import { SelectValidatorModal } from './SelectValidatorModal';
+import { RedelegateModal } from './RedelegateModal';
+import { type ExtendedValidator as Validator } from '@/utils';
+import { DelegateModal } from './DelegateModal';
+import { Prices, useDisclosure } from '@/hooks';
+
+export const MyValidators = ({
+ myValidators,
+ allValidators,
+ balance,
+ updateData,
+ unbondingDays,
+ chainName,
+ logos,
+ prices,
+}: {
+ myValidators: Validator[];
+ allValidators: Validator[];
+ balance: string;
+ updateData: () => void;
+ unbondingDays: string;
+ chainName: ChainName;
+ prices: Prices;
+ logos: {
+ [key: string]: string;
+ };
+}) => {
+ const [selectedValidator, setSelectedValidator] = useState();
+ const [validatorToRedelegate, setValidatorToRedelegate] =
+ useState();
+
+ const validatorInfoModalControl = useDisclosure();
+ const delegateModalControl = useDisclosure();
+ const undelegateModalControl = useDisclosure();
+ const selectValidatorModalControl = useDisclosure();
+ const redelegateModalControl = useDisclosure();
+
+ return (
+ <>
+
+ My Validators
+
+
+
+
+ {selectedValidator && validatorInfoModalControl.isOpen && (
+
+ )}
+
+ {selectedValidator && delegateModalControl.isOpen && (
+
+ )}
+
+ {selectedValidator && undelegateModalControl.isOpen && (
+
+ )}
+
+ {selectValidatorModalControl.isOpen && (
+ {
+ redelegateModalControl.onOpen();
+ selectValidatorModalControl.onClose();
+ setValidatorToRedelegate(validator);
+ }}
+ />
+ )}
+
+ {selectedValidator &&
+ validatorToRedelegate &&
+ redelegateModalControl.isOpen && (
+
+ )}
+ >
+ );
+};
diff --git a/examples/chain-template-spawn/components/staking/MyValidatorsList.tsx b/examples/chain-template-spawn/components/staking/MyValidatorsList.tsx
new file mode 100644
index 000000000..7b2f4fe72
--- /dev/null
+++ b/examples/chain-template-spawn/components/staking/MyValidatorsList.tsx
@@ -0,0 +1,99 @@
+import React from 'react';
+import { Dispatch, SetStateAction } from 'react';
+import {
+ Button,
+ ValidatorList,
+ ValidatorNameCell,
+ ValidatorTokenAmountCell,
+} from '@interchain-ui/react';
+import { ChainName } from 'cosmos-kit';
+import { getNativeAsset } from '@/utils';
+import { type ExtendedValidator as Validator } from '@/utils';
+import { useChain } from '@cosmos-kit/react';
+
+const MyValidatorsList = ({
+ myValidators,
+ openModal,
+ chainName,
+ logos,
+ setSelectedValidator,
+}: {
+ myValidators: Validator[];
+ chainName: ChainName;
+ openModal: () => void;
+ setSelectedValidator: Dispatch>;
+ logos: {
+ [key: string]: string;
+ };
+}) => {
+ const { assets } = useChain(chainName);
+ const coin = getNativeAsset(assets!);
+
+ return (
+ (
+
+ ),
+ },
+ {
+ id: 'amount-staked',
+ label: 'Amount Staked',
+ width: '196px',
+ align: 'right',
+ render: (validator: Validator) => (
+
+ ),
+ },
+ {
+ id: 'claimable-rewards',
+ label: 'Claimable Rewards',
+ width: '196px',
+ align: 'right',
+ render: (validator: Validator) => (
+
+ ),
+ },
+ {
+ id: 'action',
+ width: '196px',
+ align: 'right',
+ render: (validator) => (
+
+ ),
+ },
+ ]}
+ data={myValidators}
+ tableProps={{
+ width: '$full',
+ }}
+ />
+ );
+};
+
+export default React.memo(MyValidatorsList);
diff --git a/examples/chain-template-spawn/components/staking/Overview.tsx b/examples/chain-template-spawn/components/staking/Overview.tsx
new file mode 100644
index 000000000..94083dacc
--- /dev/null
+++ b/examples/chain-template-spawn/components/staking/Overview.tsx
@@ -0,0 +1,96 @@
+import { useState } from 'react';
+import {
+ Box,
+ StakingAssetHeader,
+ StakingClaimHeader,
+} from '@interchain-ui/react';
+import { useChain } from '@cosmos-kit/react';
+import { ChainName } from 'cosmos-kit';
+import { cosmos } from 'interchain-query';
+
+import { getNativeAsset } from '@/utils';
+import { Prices, useTx } from '@/hooks';
+import {
+ sum,
+ calcDollarValue,
+ isGreaterThanZero,
+ type ParsedRewards as Rewards,
+} from '@/utils';
+
+const { withdrawDelegatorReward } =
+ cosmos.distribution.v1beta1.MessageComposer.fromPartial;
+
+const Overview = ({
+ balance,
+ rewards,
+ staked,
+ updateData,
+ chainName,
+ prices,
+}: {
+ balance: string;
+ rewards: Rewards;
+ staked: string;
+ updateData: () => void;
+ chainName: ChainName;
+ prices: Prices;
+}) => {
+ const [isClaiming, setIsClaiming] = useState(false);
+ const { address, assets } = useChain(chainName);
+ const { tx } = useTx(chainName);
+
+ const totalAmount = sum(balance, staked, rewards?.total ?? 0);
+ const coin = getNativeAsset(assets!);
+
+ const onClaimRewardClick = async () => {
+ setIsClaiming(true);
+
+ if (!address) return;
+
+ const msgs = rewards.byValidators.map(({ validatorAddress }) =>
+ withdrawDelegatorReward({
+ delegatorAddress: address,
+ validatorAddress,
+ })
+ );
+
+ await tx(msgs, {
+ onSuccess: updateData,
+ });
+
+ setIsClaiming(false);
+ };
+
+ return (
+ <>
+
+
+
+
+
+
+
+ >
+ );
+};
+
+export default Overview;
diff --git a/examples/chain-template-spawn/components/staking/RedelegateModal.tsx b/examples/chain-template-spawn/components/staking/RedelegateModal.tsx
new file mode 100644
index 000000000..2b765bb04
--- /dev/null
+++ b/examples/chain-template-spawn/components/staking/RedelegateModal.tsx
@@ -0,0 +1,193 @@
+import { useState } from 'react';
+import { cosmos } from 'interchain-query';
+import { useChain } from '@cosmos-kit/react';
+import { ChainName } from 'cosmos-kit';
+import {
+ BasicModal,
+ Box,
+ Button,
+ StakingDelegateCard,
+ StakingDelegateInput,
+ Text,
+} from '@interchain-ui/react';
+import BigNumber from 'bignumber.js';
+
+import {
+ calcDollarValue,
+ getAssetLogoUrl,
+ isGreaterThanZero,
+ shiftDigits,
+ toBaseAmount,
+ type ExtendedValidator as Validator,
+} from '@/utils';
+import { getNativeAsset, getExponentFromAsset } from '@/utils';
+import { Prices, UseDisclosureReturn, useTx } from '@/hooks';
+
+const { beginRedelegate } = cosmos.staking.v1beta1.MessageComposer.fromPartial;
+
+export const RedelegateModal = ({
+ updateData,
+ chainName,
+ modalControl,
+ selectedValidator,
+ validatorToRedelegate,
+ prices,
+}: {
+ updateData: () => void;
+ chainName: ChainName;
+ selectedValidator: Validator;
+ validatorToRedelegate: Validator;
+ modalControl: UseDisclosureReturn;
+ prices: Prices;
+}) => {
+ const { address, assets } = useChain(chainName);
+
+ const [amount, setAmount] = useState(0);
+ const [isRedelegating, setIsRedelegating] = useState(false);
+
+ const coin = getNativeAsset(assets!);
+ const exp = getExponentFromAsset(coin);
+
+ const { tx } = useTx(chainName);
+
+ const closeRedelegateModal = () => {
+ setAmount(0);
+ setIsRedelegating(false);
+ modalControl.onClose();
+ };
+
+ const onRedelegateClick = async () => {
+ if (!address || !amount) return;
+
+ setIsRedelegating(true);
+
+ const msg = beginRedelegate({
+ delegatorAddress: address,
+ validatorSrcAddress: selectedValidator.address,
+ validatorDstAddress: validatorToRedelegate.address,
+ amount: {
+ denom: coin.base,
+ amount: toBaseAmount(amount, exp),
+ },
+ });
+
+ await tx([msg], {
+ onSuccess: () => {
+ updateData();
+ closeRedelegateModal();
+ },
+ });
+
+ setIsRedelegating(false);
+ };
+
+ const maxAmount = selectedValidator.delegation;
+
+ return (
+
+
+
+
+
+
+
+
+ {
+ setAmount(val);
+ }}
+ // onValueInput={(val) => {
+ // if (!val) {
+ // setAmount(undefined);
+ // return;
+ // }
+
+ // if (new BigNumber(val).gt(maxAmount)) {
+ // setAmount(Number(maxAmount));
+ // forceUpdate((n) => n + 1);
+ // return;
+ // }
+
+ // setAmount(Number(val));
+ // }}
+ partials={[
+ {
+ label: '1/2',
+ onClick: () => {
+ setAmount(new BigNumber(maxAmount).dividedBy(2).toNumber());
+ },
+ },
+ {
+ label: '1/3',
+ onClick: () => {
+ setAmount(new BigNumber(maxAmount).dividedBy(3).toNumber());
+ },
+ },
+ {
+ label: 'Max',
+ onClick: () => setAmount(Number(maxAmount)),
+ },
+ ]}
+ />
+
+
+
+
+
+
+ );
+};
+
+const RedelegateLabel = ({
+ type,
+ validatorName,
+ mb,
+}: {
+ type: 'from' | 'to';
+ validatorName: string;
+ mb?: string;
+}) => {
+ return (
+
+ {type === 'from' ? 'From' : 'To'}
+
+ {validatorName}
+
+
+ );
+};
diff --git a/examples/chain-template-spawn/components/staking/SelectValidatorModal.tsx b/examples/chain-template-spawn/components/staking/SelectValidatorModal.tsx
new file mode 100644
index 000000000..620d95df2
--- /dev/null
+++ b/examples/chain-template-spawn/components/staking/SelectValidatorModal.tsx
@@ -0,0 +1,135 @@
+import { useMemo } from 'react';
+import { ChainName } from 'cosmos-kit';
+import {
+ Text,
+ GridColumn,
+ ValidatorNameCell,
+ ValidatorTokenAmountCell,
+ ValidatorList,
+ Button,
+ BasicModal,
+ Box,
+} from '@interchain-ui/react';
+
+import { getNativeAsset } from '@/utils';
+import { UseDisclosureReturn } from '@/hooks';
+import { shiftDigits, type ExtendedValidator as Validator } from '@/utils';
+import { useChain } from '@cosmos-kit/react';
+
+export const SelectValidatorModal = ({
+ allValidators,
+ chainName,
+ logos,
+ handleValidatorClick,
+ modalControl,
+}: {
+ allValidators: Validator[];
+ chainName: ChainName;
+ handleValidatorClick: (validator: Validator) => void;
+ modalControl: UseDisclosureReturn;
+ logos: {
+ [key: string]: string;
+ };
+}) => {
+ const { assets } = useChain(chainName);
+ const coin = getNativeAsset(assets!);
+
+ const columns = useMemo(() => {
+ const hasApr = !!allValidators[0]?.apr;
+
+ const _columns: GridColumn[] = [
+ {
+ id: 'validator',
+ label: 'Validator',
+ width: '196px',
+ align: 'left',
+ render: (validator: Validator) => (
+
+ ),
+ },
+ {
+ id: 'voting-power',
+ label: 'Voting Power',
+ width: '196px',
+ align: 'right',
+ render: (validator: Validator) => (
+
+ ),
+ },
+ {
+ id: 'commission',
+ label: 'Commission',
+ width: '146px',
+ align: 'right',
+ render: (validator: Validator) => (
+
+ {shiftDigits(validator.commission, 2)}%
+
+ ),
+ },
+ {
+ id: 'action',
+ width: '126px',
+ align: 'right',
+ render: (validator) => (
+
+
+
+ ),
+ },
+ ];
+
+ if (hasApr) {
+ _columns.splice(3, 0, {
+ id: 'apr',
+ label: 'APR',
+ width: '106px',
+ align: 'right',
+ render: (validator: Validator) => (
+ {validator.apr}%
+ ),
+ });
+ }
+
+ return _columns;
+ }, [chainName]);
+
+ return (
+
+
+
+
+
+ );
+};
diff --git a/examples/chain-template-spawn/components/staking/StakingSection.tsx b/examples/chain-template-spawn/components/staking/StakingSection.tsx
new file mode 100644
index 000000000..67024c1b7
--- /dev/null
+++ b/examples/chain-template-spawn/components/staking/StakingSection.tsx
@@ -0,0 +1,82 @@
+import { useEffect } from 'react';
+import { useChain } from '@cosmos-kit/react';
+import { ChainName } from 'cosmos-kit';
+import { Box, Spinner, Text } from '@interchain-ui/react';
+
+import Overview from './Overview';
+import { MyValidators } from './MyValidators';
+import { AllValidators } from './AllValidators';
+import { useStakingData, useValidatorLogos } from '@/hooks';
+
+export const StakingSection = ({ chainName }: { chainName: ChainName }) => {
+ const { isWalletConnected } = useChain(chainName);
+ const { data, isLoading, refetch } = useStakingData(chainName);
+ const { data: logos, isLoading: isFetchingLogos } = useValidatorLogos(
+ chainName,
+ data?.allValidators || [],
+ );
+
+ useEffect(() => {
+ refetch();
+ }, []);
+
+ return (
+
+ {!isWalletConnected ? (
+
+
+ Please connect your wallet
+
+
+ ) : isLoading || isFetchingLogos || !data ? (
+
+
+
+ ) : (
+ <>
+
+
+ {data.myValidators.length > 0 && (
+
+ )}
+
+
+ >
+ )}
+
+ );
+};
diff --git a/examples/chain-template-spawn/components/staking/UndelegateModal.tsx b/examples/chain-template-spawn/components/staking/UndelegateModal.tsx
new file mode 100644
index 000000000..03e858eba
--- /dev/null
+++ b/examples/chain-template-spawn/components/staking/UndelegateModal.tsx
@@ -0,0 +1,187 @@
+import { useState } from 'react';
+import { cosmos } from 'interchain-query';
+import { useChain } from '@cosmos-kit/react';
+import { ChainName } from 'cosmos-kit';
+import BigNumber from 'bignumber.js';
+import {
+ BasicModal,
+ StakingDelegate,
+ Callout,
+ Box,
+ Button,
+} from '@interchain-ui/react';
+
+import { getNativeAsset, getExponentFromAsset } from '@/utils';
+import { Prices, UseDisclosureReturn, useTx } from '@/hooks';
+import {
+ calcDollarValue,
+ formatValidatorMetaInfo,
+ getAssetLogoUrl,
+ isGreaterThanZero,
+ shiftDigits,
+ toBaseAmount,
+ type ExtendedValidator as Validator,
+} from '@/utils';
+
+const { undelegate } = cosmos.staking.v1beta1.MessageComposer.fromPartial;
+
+export const UndelegateModal = ({
+ updateData,
+ unbondingDays,
+ chainName,
+ logoUrl,
+ selectedValidator,
+ closeOuterModal,
+ modalControl,
+ prices,
+}: {
+ updateData: () => void;
+ unbondingDays: string;
+ chainName: ChainName;
+ selectedValidator: Validator;
+ closeOuterModal: () => void;
+ modalControl: UseDisclosureReturn;
+ logoUrl: string;
+ prices: Prices;
+}) => {
+ const [amount, setAmount] = useState(0);
+ const [isUndelegating, setIsUndelegating] = useState(false);
+ const { address, assets } = useChain(chainName);
+ const { tx } = useTx(chainName);
+
+ const coin = getNativeAsset(assets!);
+ const exp = getExponentFromAsset(coin);
+
+ const closeUndelegateModal = () => {
+ setAmount(0);
+ setIsUndelegating(false);
+ modalControl.onClose();
+ };
+
+ const onUndelegateClick = async () => {
+ if (!address || !amount) return;
+
+ setIsUndelegating(true);
+
+ const msg = undelegate({
+ delegatorAddress: address,
+ validatorAddress: selectedValidator.address,
+ amount: {
+ amount: toBaseAmount(amount, exp),
+ denom: coin.base,
+ },
+ });
+
+ await tx([msg], {
+ onSuccess: () => {
+ updateData();
+ closeOuterModal();
+ closeUndelegateModal();
+ },
+ });
+
+ setIsUndelegating(false);
+ };
+
+ const maxAmount = selectedValidator.delegation;
+
+ return (
+
+
+
+
+ not receive staking rewards
+ not be able to cancel the unbonding
+
+ need to wait {unbondingDays} days for the amount to be
+ liquid
+
+
+
+ )
+ }
+ delegationItems={[
+ {
+ label: 'Your Delegation',
+ tokenAmount: selectedValidator.delegation,
+ tokenName: coin.symbol,
+ },
+ ]}
+ inputProps={{
+ inputToken: {
+ tokenName: coin.symbol,
+ tokenIconUrl: getAssetLogoUrl(coin),
+ },
+ notionalValue: amount
+ ? calcDollarValue(coin.base, amount, prices)
+ : undefined,
+ value: amount,
+ minValue: 0,
+ maxValue: Number(maxAmount),
+ onValueChange: (val) => {
+ setAmount(val);
+ },
+ // onValueInput: (val) => {
+ // if (!val) {
+ // setAmount(undefined);
+ // return;
+ // }
+
+ // if (new BigNumber(val).gt(maxAmount)) {
+ // setAmount(Number(maxAmount));
+ // forceUpdate((n) => n + 1);
+ // return;
+ // }
+
+ // setAmount(Number(val));
+ // },
+ partials: [
+ {
+ label: '1/2',
+ onClick: () => {
+ setAmount(new BigNumber(maxAmount).dividedBy(2).toNumber());
+ },
+ },
+ {
+ label: '1/3',
+ onClick: () => {
+ setAmount(new BigNumber(maxAmount).dividedBy(3).toNumber());
+ },
+ },
+ {
+ label: 'Max',
+ onClick: () => setAmount(Number(maxAmount)),
+ },
+ ],
+ }}
+ footer={
+
+ }
+ />
+
+
+ );
+};
diff --git a/examples/chain-template-spawn/components/staking/ValidatorInfoModal.tsx b/examples/chain-template-spawn/components/staking/ValidatorInfoModal.tsx
new file mode 100644
index 000000000..298855075
--- /dev/null
+++ b/examples/chain-template-spawn/components/staking/ValidatorInfoModal.tsx
@@ -0,0 +1,97 @@
+import { getNativeAsset } from '@/utils';
+import { ChainName } from 'cosmos-kit';
+import {
+ formatValidatorMetaInfo,
+ type ExtendedValidator as Validator,
+} from '@/utils';
+import {
+ BasicModal,
+ Box,
+ Button,
+ StakingDelegate,
+ Text,
+} from '@interchain-ui/react';
+import { UseDisclosureReturn } from '@/hooks';
+import { useChain } from '@cosmos-kit/react';
+
+export const ValidatorInfoModal = ({
+ chainName,
+ logoUrl,
+ handleClick,
+ modalControl,
+ selectedValidator,
+}: {
+ chainName: ChainName;
+ modalControl: UseDisclosureReturn;
+ selectedValidator: Validator;
+ handleClick: {
+ openDelegateModal: () => void;
+ openUndelegateModal: () => void;
+ openSelectValidatorModal: () => void;
+ };
+ logoUrl: string;
+}) => {
+ const { assets } = useChain(chainName);
+ const coin = getNativeAsset(assets!);
+
+ const { isOpen, onClose } = modalControl;
+ const { openDelegateModal, openSelectValidatorModal, openUndelegateModal } =
+ handleClick;
+
+ return (
+
+
+ {selectedValidator.description}
+ )
+ }
+ delegationItems={[
+ {
+ label: 'Your Delegation',
+ tokenAmount: selectedValidator.delegation,
+ tokenName: coin.symbol,
+ },
+ ]}
+ footer={
+
+
+
+
+
+ }
+ />
+
+
+ );
+};
diff --git a/examples/chain-template-spawn/components/staking/index.ts b/examples/chain-template-spawn/components/staking/index.ts
new file mode 100644
index 000000000..4deb7bee7
--- /dev/null
+++ b/examples/chain-template-spawn/components/staking/index.ts
@@ -0,0 +1 @@
+export * from './StakingSection';
diff --git a/examples/chain-template-spawn/components/voting/Proposal.tsx b/examples/chain-template-spawn/components/voting/Proposal.tsx
new file mode 100644
index 000000000..e4b01e1e4
--- /dev/null
+++ b/examples/chain-template-spawn/components/voting/Proposal.tsx
@@ -0,0 +1,369 @@
+import {
+ Box,
+ Button,
+ GovernanceRadio,
+ GovernanceRadioGroup,
+ GovernanceResultCard,
+ GovernanceVoteBreakdown,
+ GovernanceVoteType,
+ Icon,
+ Stack,
+ Text,
+} from '@interchain-ui/react';
+import {
+ Proposal as IProposal,
+ ProposalStatus,
+} from 'interchain-query/cosmos/gov/v1/gov';
+import {
+ exponentiate,
+ formatDate,
+ getNativeAsset,
+ getExponentFromAsset,
+ percent,
+} from '@/utils';
+import Markdown from 'react-markdown';
+import { useEffect, useState } from 'react';
+import { useVoting, Votes } from '@/hooks';
+import { useChain } from '@cosmos-kit/react';
+
+// export declare enum VoteOption {
+// /** VOTE_OPTION_UNSPECIFIED - VOTE_OPTION_UNSPECIFIED defines a no-op vote option. */
+// VOTE_OPTION_UNSPECIFIED = 0,
+// /** VOTE_OPTION_YES - VOTE_OPTION_YES defines a yes vote option. */
+// VOTE_OPTION_YES = 1,
+// /** VOTE_OPTION_ABSTAIN - VOTE_OPTION_ABSTAIN defines an abstain vote option. */
+// VOTE_OPTION_ABSTAIN = 2,
+// /** VOTE_OPTION_NO - VOTE_OPTION_NO defines a no vote option. */
+// VOTE_OPTION_NO = 3,
+// /** VOTE_OPTION_NO_WITH_VETO - VOTE_OPTION_NO_WITH_VETO defines a no with veto vote option. */
+// VOTE_OPTION_NO_WITH_VETO = 4,
+// UNRECOGNIZED = -1
+// }
+
+const VoteTypes = ['', 'yes', 'abstain', 'no', 'noWithVeto'];
+
+export type ProposalProps = {
+ proposal: IProposal;
+ votes?: Votes;
+ quorum?: number;
+ bondedTokens?: string;
+ chainName: string;
+ onVoteSuccess?: () => void;
+};
+
+export function Proposal({
+ votes,
+ quorum,
+ proposal,
+ chainName,
+ bondedTokens,
+ onVoteSuccess = () => {},
+}: ProposalProps) {
+ const vote = votes?.[proposal.id.toString()];
+
+ const [showMore, setShowMore] = useState(false);
+ const [voteType, setVoteType] = useState();
+
+ const { assets } = useChain(chainName);
+ const coin = getNativeAsset(assets!);
+ const exponent = getExponentFromAsset(coin);
+ const { isVoting, onVote } = useVoting({ chainName, proposal });
+
+ const toggleShowMore = () => setShowMore((v) => !v);
+
+ useEffect(() => {
+ if (typeof vote === 'number') {
+ setVoteType(VoteTypes[vote] as GovernanceVoteType);
+ }
+ }, [vote]);
+
+ const isChanged =
+ (vote === undefined && voteType) ||
+ (typeof vote === 'number' && voteType && voteType !== VoteTypes[vote]);
+
+ const isPassed = proposal.status === ProposalStatus.PROPOSAL_STATUS_PASSED;
+
+ const isRejected =
+ proposal.status === ProposalStatus.PROPOSAL_STATUS_REJECTED;
+
+ const isDepositPeriod =
+ proposal.status === ProposalStatus.PROPOSAL_STATUS_DEPOSIT_PERIOD;
+
+ const isVotingPeriod =
+ proposal.status === ProposalStatus.PROPOSAL_STATUS_VOTING_PERIOD;
+
+ const total = proposal.finalTallyResult
+ ? Object.values(proposal.finalTallyResult).reduce(
+ (sum, val) => sum + Number(val),
+ 0
+ )
+ : 0;
+
+ const turnout = total / Number(bondedTokens);
+
+ // @ts-ignore
+ const description = proposal.summary || '';
+ const renderedDescription =
+ description.length > 200
+ ? showMore
+ ? description
+ : `${description.slice(0, 200)}...`
+ : description || '';
+
+ const minStakedTokens =
+ quorum && exponentiate(quorum * Number(bondedTokens), -exponent).toFixed(6);
+
+ const timepoints = [
+ {
+ label: 'Submit Time',
+ timestamp: formatDate(proposal?.submitTime!) || '',
+ },
+ {
+ label: 'Voting Starts',
+ timestamp: isDepositPeriod
+ ? 'Not Specified Yet'
+ : formatDate(proposal.votingStartTime) || '',
+ },
+ {
+ label: 'Voting Ends',
+ timestamp: isDepositPeriod
+ ? 'Not Specified Yet'
+ : formatDate(proposal?.votingEndTime!) || '',
+ },
+ ];
+
+ function onVoteTypeChange(selected: string) {
+ setVoteType(selected as GovernanceVoteType);
+ }
+
+ function onVoteButtonClick() {
+ if (!voteType) return;
+
+ onVote({
+ option: VoteTypes.indexOf(voteType),
+ success: onVoteSuccess,
+ });
+ }
+
+ return (
+
+
+
+ {timepoints.map((timepoint, i) => (
+
+
+ {timepoint.label}
+
+
+ {timepoint.timestamp}
+
+
+ ))}
+
+
+
+
+ Yes
+ No
+ No with veto
+ Abstain
+
+
+
+
+
+
+
+ Vote Details
+
+ {quorum ? (
+
+
+
+ {`Minimum of staked ${minStakedTokens} ${coin.symbol}(${
+ quorum * 100
+ }%) need to vote
+ for this proposal to pass.`}
+
+
+ ) : null}
+
+
+
+
+
+
+
+
+
+
+ {isPassed ? (
+
+ ) : null}
+ {isRejected ? (
+
+ ) : null}
+
+
+
+
+ {/* Description */}
+
+
+ Description
+
+
+
+
+ {description}
+
+
+
+ {/*
+ {showMore ? {description} : renderedDescription}
+
+
+
+
+ */}
+
+
+ );
+}
diff --git a/examples/chain-template-spawn/components/voting/Voting.tsx b/examples/chain-template-spawn/components/voting/Voting.tsx
new file mode 100644
index 000000000..e23a8af2b
--- /dev/null
+++ b/examples/chain-template-spawn/components/voting/Voting.tsx
@@ -0,0 +1,224 @@
+import { useEffect, useState } from 'react';
+import { useChain } from '@cosmos-kit/react';
+import {
+ Proposal as IProposal,
+ ProposalStatus,
+ TallyResult,
+} from 'interchain-query/cosmos/gov/v1/gov';
+import {
+ BasicModal,
+ Box,
+ GovernanceProposalItem,
+ Spinner,
+ Text,
+ useColorModeValue,
+} from '@interchain-ui/react';
+import { useModal, useVotingData } from '@/hooks';
+import { Proposal } from '@/components';
+import { formatDate } from '@/utils';
+import { chains } from 'chain-registry';
+
+function status(s: ProposalStatus) {
+ switch (s) {
+ case ProposalStatus.PROPOSAL_STATUS_UNSPECIFIED:
+ return 'pending';
+ case ProposalStatus.PROPOSAL_STATUS_DEPOSIT_PERIOD:
+ return 'pending';
+ case ProposalStatus.PROPOSAL_STATUS_VOTING_PERIOD:
+ return 'pending';
+ case ProposalStatus.PROPOSAL_STATUS_PASSED:
+ return 'passed';
+ case ProposalStatus.PROPOSAL_STATUS_REJECTED:
+ return 'rejected';
+ case ProposalStatus.PROPOSAL_STATUS_FAILED:
+ return 'rejected';
+ default:
+ return 'pending';
+ }
+}
+
+function votes(result: TallyResult) {
+ return {
+ yes: Number(result?.yesCount) || 0,
+ no: Number(result?.noCount) || 0,
+ abstain: Number(result?.abstainCount) || 0,
+ noWithVeto: Number(result?.noWithVetoCount) || 0,
+ };
+}
+
+export type VotingProps = {
+ chainName: string;
+};
+
+export function Voting({ chainName }: VotingProps) {
+ const { address } = useChain(chainName);
+ const [proposal, setProposal] = useState();
+ const { data, isLoading, refetch } = useVotingData(chainName);
+ const { modal, open: openModal, close: closeModal, setTitle } = useModal('');
+ const [tallies, setTallies] = useState<{ [key: string]: TallyResult }>({});
+
+ const chain = chains.find((c) => c.chain_name === chainName);
+
+ useEffect(() => {
+ if (!data.proposals || data.proposals.length === 0) return;
+ data.proposals.forEach((proposal) => {
+ if (proposal.status === ProposalStatus.PROPOSAL_STATUS_VOTING_PERIOD) {
+ (async () => {
+ for (const { address } of chain?.apis?.rest || []) {
+ const api = `${address}/cosmos/gov/v1/proposals/${Number(
+ proposal.id,
+ )}/tally`;
+ try {
+ const tally = (await (await fetch(api)).json()).tally;
+ if (!tally) {
+ continue;
+ }
+ setTallies((prev) => {
+ return {
+ ...prev,
+ [proposal.id.toString()]: {
+ yesCount: tally.yes_count,
+ noCount: tally.no_count,
+ abstainCount: tally.abstain_count,
+ noWithVetoCount: tally.no_with_veto_count,
+ },
+ };
+ });
+ break;
+ } catch (e) {}
+ }
+ })();
+ }
+ });
+ }, [data.proposals?.length, chainName]);
+
+ function onClickProposal(index: number) {
+ const proposal = data.proposals![index];
+ openModal();
+ setProposal(proposal);
+ // @ts-ignore
+ setTitle(`#${proposal.id?.toString()} ${proposal?.title}`);
+ }
+
+ const empty = (
+
+
+ No proposals found
+
+
+ );
+
+ const content = (
+
+ {data.proposals?.length === 0
+ ? empty
+ : data.proposals?.map((proposal, index) => {
+ let tally = proposal.finalTallyResult;
+ if (
+ proposal.status === ProposalStatus.PROPOSAL_STATUS_VOTING_PERIOD
+ ) {
+ tally = tallies[proposal.id.toString()];
+ }
+ return (
+ onClickProposal(index) }}
+ >
+ {data.votes[proposal.id.toString()] ? (
+
+
+ Voted
+
+
+ ) : null}
+
+
+ );
+ })}
+
+ );
+
+ const connect = (
+
+
+ Please connect to your wallet to see the proposals.
+
+
+ );
+
+ const Loading = (
+
+
+
+ );
+
+ return (
+
+
+ Proposals
+
+
+ {address ? Loading : null}
+
+ {address ? content : connect}
+
+
+
+ {modal.title}
+
+
+ }
+ isOpen={modal.open}
+ onOpen={openModal}
+ onClose={closeModal}
+ >
+
+
+
+ );
+}
diff --git a/examples/chain-template-spawn/components/voting/index.ts b/examples/chain-template-spawn/components/voting/index.ts
new file mode 100644
index 000000000..75bcca3d8
--- /dev/null
+++ b/examples/chain-template-spawn/components/voting/index.ts
@@ -0,0 +1,2 @@
+export * from './Voting';
+export * from './Proposal';
\ No newline at end of file
diff --git a/examples/chain-template-spawn/config/breakpoints.ts b/examples/chain-template-spawn/config/breakpoints.ts
new file mode 100644
index 000000000..3a8343f9c
--- /dev/null
+++ b/examples/chain-template-spawn/config/breakpoints.ts
@@ -0,0 +1,5 @@
+export const breakpoints = {
+ mobile: 480,
+ tablet: 768,
+ desktop: 1200,
+};
diff --git a/examples/chain-template-spawn/config/chains.ts b/examples/chain-template-spawn/config/chains.ts
new file mode 100644
index 000000000..6177cb2e7
--- /dev/null
+++ b/examples/chain-template-spawn/config/chains.ts
@@ -0,0 +1,10 @@
+import { chains } from 'chain-registry';
+import osmosis from 'chain-registry/mainnet/osmosis/chain';
+
+const chainNames = ['osmosistestnet', 'juno', 'stargaze', 'osmosis', 'cosmoshub'];
+
+export const chainOptions = chainNames.map(
+ (chainName) => chains.find((chain) => chain.chain_name === chainName)!
+);
+
+export const osmosisChainName = osmosis.chain_name;
diff --git a/examples/chain-template-spawn/config/index.ts b/examples/chain-template-spawn/config/index.ts
new file mode 100644
index 000000000..19d64541f
--- /dev/null
+++ b/examples/chain-template-spawn/config/index.ts
@@ -0,0 +1,6 @@
+export * from './chains';
+export * from './theme';
+export * from './wallets';
+export * from './products';
+export * from './breakpoints';
+export * from './spawn';
diff --git a/examples/chain-template-spawn/config/products.ts b/examples/chain-template-spawn/config/products.ts
new file mode 100644
index 000000000..193111c90
--- /dev/null
+++ b/examples/chain-template-spawn/config/products.ts
@@ -0,0 +1,91 @@
+export type ProductCategory =
+ | 'cosmwasm'
+ | 'cosmos-sdk'
+ | 'frontend'
+ | 'testing';
+
+export type Product = {
+ name: string;
+ description: string;
+ link: string;
+ category: ProductCategory;
+};
+
+export const products: Product[] = [
+ {
+ name: 'Cosmos Kit',
+ description:
+ 'A wallet adapter for react with mobile WalletConnect support for the Cosmos ecosystem.',
+ link: 'https://cosmology.zone/products/cosmos-kit',
+ category: 'frontend',
+ },
+ {
+ name: 'Telescope',
+ description:
+ 'A TypeScript Transpiler for Cosmos Protobufs to generate libraries for Cosmos blockchains.',
+ link: 'https://cosmology.zone/products/telescope',
+ category: 'cosmos-sdk',
+ },
+ {
+ name: 'Interchain UI',
+ description:
+ 'A simple, modular and cross-framework component library for Cosmos ecosystem.',
+ link: 'https://cosmology.zone/products/interchain-ui',
+ category: 'frontend',
+ },
+ {
+ name: 'TS Codegen',
+ description:
+ 'The quickest and easiest way to convert CosmWasm Contracts into dev-friendly TypeScript classes.',
+ link: 'https://cosmology.zone/products/ts-codegen',
+ category: 'cosmwasm',
+ },
+ {
+ name: 'Chain Registry',
+ description:
+ 'Get chain and asset list information from the npm package for the Official Cosmos chain registry.',
+ link: 'https://cosmology.zone/products/chain-registry',
+ category: 'frontend',
+ },
+ {
+ name: 'OsmoJS',
+ description:
+ 'OsmosJS makes it easy to compose and broadcast Osmosis and Cosmos messages.',
+ link: 'https://cosmology.zone/products/osmojs',
+ category: 'frontend',
+ },
+ {
+ name: 'Starship',
+ description:
+ 'Starship makes it easy to build a universal interchain development environment in k8s.',
+ link: 'https://cosmology.zone/products/starship',
+ category: 'testing',
+ },
+ {
+ name: 'Create Cosmos App',
+ description:
+ 'One-Command Setup for Modern Cosmos dApps. Speed up your development and bootstrap new web3 dApps quickly.',
+ link: 'https://cosmology.zone/products/create-cosmos-app',
+ category: 'frontend',
+ },
+ {
+ name: 'CosmWasm Academy',
+ description:
+ 'Master CosmWasm and build your secure, multi-chain dApp on any CosmWasm chain!',
+ link: 'https://cosmology.zone/learn/ts-codegen',
+ category: 'cosmwasm',
+ },
+ {
+ name: 'Videos',
+ description:
+ 'How-to videos from the official Cosmology website, with learning resources for building in Cosmos.',
+ link: 'https://cosmology.zone/learn',
+ category: 'frontend',
+ },
+ {
+ name: 'Next.js',
+ description: 'A React Framework supports hybrid static & server rendering.',
+ link: 'https://nextjs.org/',
+ category: 'frontend',
+ },
+];
diff --git a/examples/chain-template-spawn/config/spawn.ts b/examples/chain-template-spawn/config/spawn.ts
new file mode 100644
index 000000000..95cdf60d2
--- /dev/null
+++ b/examples/chain-template-spawn/config/spawn.ts
@@ -0,0 +1,13 @@
+const api = {
+ baseUrl: 'http://127.0.0.1:8080',
+ endpoints: {
+ chain: '/chain_registry',
+ assets: '/chain_registry_assets',
+ },
+};
+
+export const SPAWN_API_BASE_URL = api.baseUrl;
+export const SPAWN_CHAIN_URL = `${api.baseUrl}${api.endpoints.chain}`;
+export const SPAWN_ASSETS_URL = `${api.baseUrl}${api.endpoints.assets}`;
+
+export const DEFAULT_SPAWN_TOKEN_PRICE = 1;
diff --git a/examples/chain-template-spawn/config/theme.ts b/examples/chain-template-spawn/config/theme.ts
new file mode 100644
index 000000000..c712fa19c
--- /dev/null
+++ b/examples/chain-template-spawn/config/theme.ts
@@ -0,0 +1,94 @@
+import { ThemeDef, ThemeVariant } from '@interchain-ui/react';
+
+export const CustomTheme: Record = {
+ light: 'custom-light',
+ dark: 'custom-dark',
+};
+
+export const lightColors: ThemeDef['vars']['colors'] = {
+ purple900: '#322F3C',
+ purple600: '#7310FF',
+ purple400: '#AB6FFF',
+ purple200: '#E5D4FB',
+ purple100: '#F9F4FF',
+ purple50: '#FCFAFF',
+ blackAlpha600: '#2C3137',
+ blackAlpha500: '#6D7987',
+ blackAlpha400: '#697584',
+ blackAlpha300: '#DDE2E9',
+ blackAlpha200: '#D5DDE9',
+ blackAlpha100: '#F6F8FE',
+ blackAlpha50: '#FBFBFB',
+ gray100: '#EFF2F4',
+ white: '#FFFFFF',
+ background: '#FFFFFF',
+ green600: '#38A169',
+ green400: '#63C892',
+ green200: '#A9E8C7',
+ orange600: '#ED8936',
+ orange400: '#EBB07F',
+ orange200: '#F5D1B4',
+ red600: '#E65858',
+ red400: '#E18080',
+ red200: '#F1C4C4',
+ blue100: '#F4FCFF',
+ blue200: '#C6E7FF',
+ blue300: '#AEDEFF',
+ blue400: '#68C7FF',
+ blue500: '#35B4FF',
+ blue600: '#01A1FF',
+ blue700: '#0068A6',
+ blue800: '#194F8F',
+ blue900: '#002D4D',
+};
+
+export const darkColors: ThemeDef['vars']['colors'] = {
+ purple900: '#322F3C',
+ purple600: '#9042FE',
+ purple400: '#AB6FFF',
+ purple200: '#4D198F',
+ purple100: '#14004D',
+ purple50: '#FCFAFF',
+ blackAlpha600: '#FFFFFF',
+ blackAlpha500: '#9EACBD',
+ blackAlpha400: '#807C86',
+ blackAlpha300: '#46424D',
+ blackAlpha200: '#443F4B',
+ blackAlpha100: '#29262F',
+ blackAlpha50: '#1D2328',
+ gray100: '#EFF2F4',
+ white: '#FFFFFF',
+ background: '#232A31',
+ green600: '#38A169',
+ green400: '#63C892',
+ green200: '#A9E8C7',
+ orange600: '#ED8936',
+ orange400: '#EBB07F',
+ orange200: '#F5D1B4',
+ red600: '#E65858',
+ red400: '#E18080',
+ red200: '#F1C4C4',
+ blue100: '#F4FCFF',
+ blue200: '#C6E7FF',
+ blue300: '#AEDEFF',
+ blue400: '#68C7FF',
+ blue500: '#35B4FF',
+ blue600: '#01A1FF',
+ blue700: '#0068A6',
+ blue800: '#194F8F',
+ blue900: '#002D4D',
+};
+
+export const lightTheme: ThemeDef = {
+ name: CustomTheme.light,
+ vars: {
+ colors: lightColors,
+ },
+};
+
+export const darkTheme: ThemeDef = {
+ name: CustomTheme.dark,
+ vars: {
+ colors: darkColors,
+ },
+};
diff --git a/examples/chain-template-spawn/config/wallets.ts b/examples/chain-template-spawn/config/wallets.ts
new file mode 100644
index 000000000..65b3fe046
--- /dev/null
+++ b/examples/chain-template-spawn/config/wallets.ts
@@ -0,0 +1,11 @@
+import { wallets as _wallets } from 'cosmos-kit';
+import { MainWalletBase } from '@cosmos-kit/core';
+
+export const keplrWalletName = _wallets.keplr.extension?.walletName!;
+
+export const wallets = [
+ _wallets.keplr.extension,
+ _wallets.leap.extension,
+ _wallets.cosmostation.extension,
+ _wallets.station.extension,
+] as MainWalletBase[];
diff --git a/examples/chain-template-spawn/contexts/chain.ts b/examples/chain-template-spawn/contexts/chain.ts
new file mode 100644
index 000000000..3a15ac56d
--- /dev/null
+++ b/examples/chain-template-spawn/contexts/chain.ts
@@ -0,0 +1,18 @@
+import { create } from 'zustand';
+import { chainOptions } from '@/config';
+
+interface ChainStore {
+ selectedChain: string;
+}
+
+export const defaultChain = chainOptions[0].chain_name;
+
+export const useChainStore = create()(() => ({
+ selectedChain: defaultChain,
+}));
+
+export const chainStore = {
+ setSelectedChain: (chainName: string) => {
+ useChainStore.setState({ selectedChain: chainName });
+ },
+};
diff --git a/examples/chain-template-spawn/contexts/index.ts b/examples/chain-template-spawn/contexts/index.ts
new file mode 100644
index 000000000..481a3404a
--- /dev/null
+++ b/examples/chain-template-spawn/contexts/index.ts
@@ -0,0 +1 @@
+export * from './chain';
diff --git a/examples/chain-template-spawn/hooks/asset-list/index.ts b/examples/chain-template-spawn/hooks/asset-list/index.ts
new file mode 100644
index 000000000..7021f7a98
--- /dev/null
+++ b/examples/chain-template-spawn/hooks/asset-list/index.ts
@@ -0,0 +1,7 @@
+export * from './useChainUtils';
+export * from './useChainAssetsPrices';
+export * from './useTopTokens';
+export * from './useAssets';
+export * from './useTotalAssets';
+export * from './useBalance';
+export * from './useOsmoQueryHooks';
diff --git a/examples/chain-template-spawn/hooks/asset-list/useAssets.ts b/examples/chain-template-spawn/hooks/asset-list/useAssets.ts
new file mode 100644
index 000000000..2c0bc3911
--- /dev/null
+++ b/examples/chain-template-spawn/hooks/asset-list/useAssets.ts
@@ -0,0 +1,136 @@
+import { PrettyAsset } from '@/components';
+import { Coin } from '@cosmjs/stargate';
+import { useChain } from '@cosmos-kit/react';
+import { UseQueryResult } from '@tanstack/react-query';
+import BigNumber from 'bignumber.js';
+import { useEffect, useMemo } from 'react';
+import { useChainUtils } from './useChainUtils';
+import { useOsmoQueryHooks } from './useOsmoQueryHooks';
+import { useChainAssetsPrices } from './useChainAssetsPrices';
+import { useTopTokens } from './useTopTokens';
+import { getPagination } from './useTotalAssets';
+
+(BigInt.prototype as any).toJSON = function () {
+ return this.toString();
+};
+
+const MAX_TOKENS_TO_SHOW = 50;
+
+export const useAssets = (chainName: string) => {
+ const { address } = useChain(chainName);
+
+ const { cosmosQuery, isReady, isFetching } = useOsmoQueryHooks(chainName);
+
+ const allBalancesQuery: UseQueryResult =
+ cosmosQuery.bank.v1beta1.useAllBalances({
+ request: {
+ address: address || '',
+ pagination: getPagination(100n),
+ },
+ options: {
+ enabled: isReady,
+ select: ({ balances }) => balances || [],
+ },
+ });
+
+ const pricesQuery = useChainAssetsPrices(chainName);
+ const topTokensQuery = useTopTokens();
+
+ const dataQueries = {
+ allBalances: allBalancesQuery,
+ topTokens: topTokensQuery,
+ prices: pricesQuery,
+ };
+
+ const queriesToReset = [dataQueries.allBalances];
+ const queriesToRefetch = [dataQueries.allBalances];
+
+ useEffect(() => {
+ queriesToReset.forEach((query) => query.remove());
+ // eslint-disable-next-line react-hooks/exhaustive-deps
+ }, [chainName]);
+
+ const queries = Object.values(dataQueries);
+ const isInitialFetching = queries.some(({ isLoading }) => isLoading);
+ const isRefetching = queries.some(({ isRefetching }) => isRefetching);
+ const isLoading = isFetching || isInitialFetching || isRefetching;
+
+ type AllQueries = typeof dataQueries;
+
+ type QueriesData = {
+ [Key in keyof AllQueries]: NonNullable;
+ };
+
+ const {
+ ibcAssets,
+ getAssetByDenom,
+ convRawToDispAmount,
+ calcCoinDollarValue,
+ denomToSymbol,
+ getPrettyChainName,
+ } = useChainUtils(chainName);
+
+ const data = useMemo(() => {
+ if (isLoading) return;
+
+ const queriesData = Object.fromEntries(
+ Object.entries(dataQueries).map(([key, query]) => [key, query.data])
+ ) as QueriesData;
+
+ const { allBalances, prices, topTokens } = queriesData;
+
+ const nativeAndIbcBalances: Coin[] = allBalances?.filter(
+ ({ denom }) => !denom.startsWith('gamm') && prices[denom]
+ );
+
+ const emptyBalances: Coin[] = ibcAssets
+ .filter(({ base }) => {
+ const notInBalances = !nativeAndIbcBalances?.find(
+ ({ denom }) => denom === base
+ );
+ return notInBalances && prices[base];
+ })
+ .filter((asset) => {
+ const isWithinLimit = ibcAssets.length <= MAX_TOKENS_TO_SHOW;
+ return isWithinLimit || topTokens.includes(asset.symbol);
+ })
+ .map((asset) => ({ denom: asset.base, amount: '0' }))
+ .reduce((acc: { denom: string, amount: string }[], current) => {
+ if (!acc.some(balance => balance.denom === current.denom)) {
+ acc.push(current);
+ }
+ return acc;
+ }, []);
+ const finalAssets = [...(nativeAndIbcBalances ?? []), ...emptyBalances]
+ .map(({ amount, denom }) => {
+ const asset = getAssetByDenom(denom);
+ const symbol = denomToSymbol(denom);
+ const dollarValue = calcCoinDollarValue(prices, { amount, denom });
+ return {
+ symbol,
+ logoUrl: asset.logo_URIs?.png || asset.logo_URIs?.svg,
+ prettyChainName: getPrettyChainName(denom),
+ displayAmount: convRawToDispAmount(denom, amount),
+ dollarValue,
+ amount,
+ denom,
+ };
+ })
+ .sort((a, b) =>
+ new BigNumber(a.dollarValue).lt(b.dollarValue) ? 1 : -1
+ );
+
+ return {
+ prices,
+ allBalances,
+ assets: finalAssets as PrettyAsset[],
+ };
+ // eslint-disable-next-line react-hooks/exhaustive-deps
+ }, [isLoading]);
+
+ const refetch = () => {
+ queriesToRefetch.forEach((query) => query.refetch());
+ };
+
+ return { data, isLoading, refetch };
+};
diff --git a/examples/chain-template-spawn/hooks/asset-list/useBalance.ts b/examples/chain-template-spawn/hooks/asset-list/useBalance.ts
new file mode 100644
index 000000000..d29947b92
--- /dev/null
+++ b/examples/chain-template-spawn/hooks/asset-list/useBalance.ts
@@ -0,0 +1,49 @@
+import { Coin } from '@cosmjs/stargate';
+import { useChain } from '@cosmos-kit/react';
+import { UseQueryResult } from '@tanstack/react-query';
+import { useEffect } from 'react';
+import { useOsmoQueryHooks } from './useOsmoQueryHooks';
+
+export const useBalance = (
+ chainName: string,
+ enabled: boolean = true,
+ displayDenom?: string
+) => {
+ const { address, assets } = useChain(chainName);
+ let denom = assets?.assets[0].base!;
+ for (const asset of assets?.assets || []) {
+ if (asset.display.toLowerCase() === displayDenom?.toLowerCase()) {
+ denom = asset.base;
+ break;
+ }
+ }
+
+ const { cosmosQuery, isReady, isFetching } = useOsmoQueryHooks(
+ chainName,
+ 'balance'
+ );
+
+ const balanceQuery: UseQueryResult =
+ cosmosQuery.bank.v1beta1.useBalance({
+ request: {
+ denom,
+ address: address || '',
+ },
+ options: {
+ enabled: isReady && enabled,
+ select: ({ balance }) => balance,
+ },
+ });
+
+ useEffect(() => {
+ return () => {
+ balanceQuery.remove();
+ };
+ // eslint-disable-next-line react-hooks/exhaustive-deps
+ }, []);
+
+ return {
+ balance: balanceQuery.data,
+ isLoading: isFetching, // || !!balanceQueries.find(item => item.isFetching),
+ };
+};
diff --git a/examples/chain-template-spawn/hooks/asset-list/useChainAssetsPrices.ts b/examples/chain-template-spawn/hooks/asset-list/useChainAssetsPrices.ts
new file mode 100644
index 000000000..ffe72616f
--- /dev/null
+++ b/examples/chain-template-spawn/hooks/asset-list/useChainAssetsPrices.ts
@@ -0,0 +1,67 @@
+import { Asset } from '@chain-registry/types';
+import { useQuery } from '@tanstack/react-query';
+import { useChainUtils } from './useChainUtils';
+import { handleError } from './useTopTokens';
+import { useSpawnChains } from '../common';
+import { DEFAULT_SPAWN_TOKEN_PRICE } from '@/config';
+
+type CoinGeckoId = string;
+type CoinGeckoUSD = { usd: number };
+type CoinGeckoUSDResponse = Record;
+
+const getAssetsWithGeckoIds = (assets: Asset[]) => {
+ return assets.filter((asset) => !!asset?.coingecko_id);
+};
+
+const getGeckoIds = (assets: Asset[]) => {
+ return assets.map((asset) => asset.coingecko_id) as string[];
+};
+
+const formatPrices = (
+ prices: CoinGeckoUSDResponse,
+ assets: Asset[]
+): Record => {
+ return Object.entries(prices).reduce((priceHash, cur) => {
+ const denom = assets.find((asset) => asset.coingecko_id === cur[0])!.base;
+ return { ...priceHash, [denom]: cur[1].usd };
+ }, {});
+};
+
+const fetchPrices = async (
+ geckoIds: string[]
+): Promise => {
+ const url = `https://api.coingecko.com/api/v3/simple/price?ids=${geckoIds.join()}&vs_currencies=usd`;
+
+ return fetch(url)
+ .then(handleError)
+ .then((res) => res.json());
+};
+
+export const useChainAssetsPrices = (chainName: string) => {
+ const { allAssets, isSpawnChain } = useChainUtils(chainName);
+ const { data: spawnData } = useSpawnChains();
+ const { assets: spawnAssets } = spawnData ?? {};
+
+ const queryKey = ['useChainAssetsPrices', chainName];
+
+ if (isSpawnChain) {
+ return useQuery({
+ queryKey,
+ queryFn: () => {
+ const nativeAsset = spawnAssets?.[0].assets[0]!;
+ return { [nativeAsset.base]: DEFAULT_SPAWN_TOKEN_PRICE };
+ },
+ staleTime: Infinity,
+ });
+ }
+
+ const assetsWithGeckoIds = getAssetsWithGeckoIds(allAssets);
+ const geckoIds = getGeckoIds(assetsWithGeckoIds);
+
+ return useQuery({
+ queryKey,
+ queryFn: () => fetchPrices(geckoIds),
+ select: (data) => formatPrices(data, assetsWithGeckoIds),
+ staleTime: Infinity,
+ });
+};
diff --git a/examples/chain-template-spawn/hooks/asset-list/useChainUtils.ts b/examples/chain-template-spawn/hooks/asset-list/useChainUtils.ts
new file mode 100644
index 000000000..75df8ade9
--- /dev/null
+++ b/examples/chain-template-spawn/hooks/asset-list/useChainUtils.ts
@@ -0,0 +1,189 @@
+import { useManager } from '@cosmos-kit/react';
+import { useMemo } from 'react';
+import { Asset, AssetList } from '@chain-registry/types';
+import { asset_lists as ibcAssetLists } from '@chain-registry/assets';
+import { assets as chainAssets, ibc } from 'chain-registry';
+import { CoinDenom, CoinSymbol, Exponent, PriceHash } from '@/utils';
+import BigNumber from 'bignumber.js';
+import { Coin } from '@cosmjs/amino';
+import { PrettyAsset } from '@/components';
+import { ChainName } from 'cosmos-kit';
+import { useSpawnChains } from '../common';
+
+export const useChainUtils = (chainName: string) => {
+ const { getChainRecord } = useManager();
+ const { data: spawnData } = useSpawnChains();
+ const { chains: spawnChains = [], assets: spawnAssets = [] } =
+ spawnData ?? {};
+
+ const isSpawnChain = spawnChains.some(
+ (chain) => chain.chain_name === chainName
+ );
+
+ const filterAssets = (assetList: AssetList[]): Asset[] => {
+ return (
+ assetList
+ .find(({ chain_name }) => chain_name === chainName)
+ ?.assets?.filter(({ type_asset }) => type_asset !== 'ics20') || []
+ );
+ };
+
+ const { nativeAssets, ibcAssets } = useMemo(() => {
+ // @ts-ignore
+ const nativeAssets = filterAssets([
+ ...chainAssets,
+ ...(isSpawnChain ? spawnAssets : []),
+ ]);
+ // @ts-ignore
+ const ibcAssets = filterAssets(ibcAssetLists);
+
+ return { nativeAssets, ibcAssets };
+ // eslint-disable-next-line react-hooks/exhaustive-deps
+ }, [chainName]);
+
+ const allAssets = [...nativeAssets, ...ibcAssets];
+
+ const getIbcAssetsLength = () => {
+ return ibcAssets.length;
+ };
+
+ const getAssetByDenom = (denom: CoinDenom): Asset => {
+ return allAssets.find((asset) => asset.base === denom) as Asset;
+ };
+
+ const denomToSymbol = (denom: CoinDenom): CoinSymbol => {
+ const asset = getAssetByDenom(denom);
+ const symbol = asset?.symbol;
+ if (!symbol) {
+ return denom;
+ }
+ return symbol;
+ };
+
+ const symbolToDenom = (symbol: CoinSymbol, chainName?: string): CoinDenom => {
+ const asset = allAssets.find(
+ (asset) =>
+ asset.symbol === symbol &&
+ (!chainName ||
+ asset.traces?.[0].counterparty.chain_name.toLowerCase() ===
+ chainName.toLowerCase())
+ );
+ const base = asset?.base;
+ if (!base) {
+ return symbol;
+ }
+ return base;
+ };
+
+ const getExponentByDenom = (denom: CoinDenom): Exponent => {
+ const asset = getAssetByDenom(denom);
+ const unit = asset.denom_units.find(({ denom }) => denom === asset.display);
+ return unit?.exponent || 6;
+ };
+
+ const convRawToDispAmount = (symbol: string, amount: string | number) => {
+ const denom = symbolToDenom(symbol);
+ return new BigNumber(amount)
+ .shiftedBy(-getExponentByDenom(denom))
+ .toString();
+ };
+
+ const calcCoinDollarValue = (prices: PriceHash, coin: Coin) => {
+ const { denom, amount } = coin;
+ return new BigNumber(amount)
+ .shiftedBy(-getExponentByDenom(denom))
+ .multipliedBy(prices[denom])
+ .toString();
+ };
+
+ const getChainName = (ibcDenom: CoinDenom) => {
+ if (nativeAssets.find((asset) => asset.base === ibcDenom)) {
+ return chainName;
+ }
+ const asset = ibcAssets.find((asset) => asset.base === ibcDenom);
+ const ibcChainName = asset?.traces?.[0].counterparty.chain_name;
+ if (!ibcChainName)
+ throw Error('chainName not found for ibcDenom: ' + ibcDenom);
+ return ibcChainName;
+ };
+
+ const getPrettyChainName = (ibcDenom: CoinDenom) => {
+ const chainName = getChainName(ibcDenom);
+ try {
+ const chainRecord = getChainRecord(chainName);
+ // @ts-ignore
+ return chainRecord.chain.pretty_name;
+ } catch (e) {
+ return 'CHAIN_INFO_NOT_FOUND';
+ }
+ };
+
+ const isNativeAsset = ({ denom }: PrettyAsset) => {
+ return !!nativeAssets.find((asset) => asset.base === denom);
+ };
+
+ const getNativeDenom = (chainName: ChainName) => {
+ const chainRecord = getChainRecord(chainName);
+ const denom = chainRecord.assetList?.assets[0].base;
+ if (!denom) throw Error('denom not found');
+ return denom;
+ };
+
+ const getDenomBySymbolAndChain = (chainName: ChainName, symbol: string) => {
+ const chainRecord = getChainRecord(chainName);
+ const denom = chainRecord.assetList?.assets.find(
+ (asset) => asset.symbol === symbol
+ )?.base;
+ if (!denom) throw Error('denom not found');
+ return denom;
+ };
+
+ const getIbcInfo = (fromChainName: string, toChainName: string) => {
+ let flipped = false;
+
+ let ibcInfo = ibc.find(
+ (i) =>
+ i.chain_1.chain_name === fromChainName &&
+ i.chain_2.chain_name === toChainName
+ );
+
+ if (!ibcInfo) {
+ ibcInfo = ibc.find(
+ (i) =>
+ i.chain_1.chain_name === toChainName &&
+ i.chain_2.chain_name === fromChainName
+ );
+ flipped = true;
+ }
+
+ if (!ibcInfo) {
+ throw new Error('cannot find IBC info');
+ }
+
+ const key = flipped ? 'chain_2' : 'chain_1';
+ const sourcePort = ibcInfo.channels[0][key].port_id;
+ const sourceChannel = ibcInfo.channels[0][key].channel_id;
+
+ return { sourcePort, sourceChannel };
+ };
+
+ return {
+ isSpawnChain,
+ allAssets,
+ nativeAssets,
+ ibcAssets,
+ getAssetByDenom,
+ denomToSymbol,
+ symbolToDenom,
+ convRawToDispAmount,
+ calcCoinDollarValue,
+ getIbcAssetsLength,
+ getChainName,
+ getPrettyChainName,
+ isNativeAsset,
+ getNativeDenom,
+ getIbcInfo,
+ getExponentByDenom,
+ getDenomBySymbolAndChain,
+ };
+};
diff --git a/examples/chain-template-spawn/hooks/asset-list/useOsmoQueryHooks.ts b/examples/chain-template-spawn/hooks/asset-list/useOsmoQueryHooks.ts
new file mode 100644
index 000000000..bb6c5fa69
--- /dev/null
+++ b/examples/chain-template-spawn/hooks/asset-list/useOsmoQueryHooks.ts
@@ -0,0 +1,37 @@
+import { useChain } from '@cosmos-kit/react';
+import { useRpcEndpoint, useRpcClient, createRpcQueryHooks } from 'osmo-query';
+
+export const useOsmoQueryHooks = (chainName: string, extraKey?: string) => {
+ const { address, getRpcEndpoint } = useChain(chainName);
+
+ const rpcEndpointQuery = useRpcEndpoint({
+ getter: getRpcEndpoint,
+ options: {
+ staleTime: Infinity,
+ queryKeyHashFn: (queryKey) => {
+ const key = [...queryKey, chainName];
+ return JSON.stringify(extraKey ? [...key, extraKey] : key);
+ },
+ },
+ });
+
+ const rpcClientQuery = useRpcClient({
+ rpcEndpoint: rpcEndpointQuery.data || '',
+ options: {
+ enabled: !!rpcEndpointQuery.data,
+ staleTime: Infinity,
+ queryKeyHashFn: (queryKey) => {
+ return JSON.stringify(extraKey ? [...queryKey, extraKey] : queryKey);
+ },
+ },
+ });
+
+ const { cosmos: cosmosQuery, osmosis: osmoQuery } = createRpcQueryHooks({
+ rpc: rpcClientQuery.data,
+ });
+
+ const isReady = !!address && !!rpcClientQuery.data;
+ const isFetching = rpcEndpointQuery.isFetching || rpcClientQuery.isFetching;
+
+ return { cosmosQuery, osmoQuery, isReady, isFetching };
+};
diff --git a/examples/chain-template-spawn/hooks/asset-list/useTopTokens.ts b/examples/chain-template-spawn/hooks/asset-list/useTopTokens.ts
new file mode 100644
index 000000000..13491ebe0
--- /dev/null
+++ b/examples/chain-template-spawn/hooks/asset-list/useTopTokens.ts
@@ -0,0 +1,45 @@
+import { useQuery } from '@tanstack/react-query';
+
+type Token = {
+ price: number;
+ denom: string;
+ symbol: string;
+ liquidity: number;
+ volume_24h: number;
+ volume_24h_change: number;
+ name: string;
+ price_24h_change: number;
+ price_7d_change: number;
+ exponent: number;
+ display: string;
+};
+
+export const handleError = (resp: Response) => {
+ if (!resp.ok) throw Error(resp.statusText);
+ return resp;
+};
+
+const fetchTokens = async (): Promise => {
+ const url = 'https://api-osmosis.imperator.co/tokens/v2/all';
+ return fetch(url)
+ .then(handleError)
+ .then((res) => res.json());
+};
+
+const MAX_TOP_TOKENS = 60;
+
+const filterTopTokens = (tokens: Token[]) => {
+ return tokens
+ .sort((a, b) => b.liquidity - a.liquidity)
+ .slice(0, MAX_TOP_TOKENS)
+ .map((token) => token.symbol);
+};
+
+export const useTopTokens = () => {
+ return useQuery({
+ queryKey: ['tokens'],
+ queryFn: fetchTokens,
+ select: filterTopTokens,
+ staleTime: Infinity,
+ });
+};
diff --git a/examples/chain-template-spawn/hooks/asset-list/useTotalAssets.ts b/examples/chain-template-spawn/hooks/asset-list/useTotalAssets.ts
new file mode 100644
index 000000000..6a0820c38
--- /dev/null
+++ b/examples/chain-template-spawn/hooks/asset-list/useTotalAssets.ts
@@ -0,0 +1,202 @@
+import { Coin } from '@cosmjs/stargate';
+import { useChain } from '@cosmos-kit/react';
+import { UseQueryResult } from '@tanstack/react-query';
+import BigNumber from 'bignumber.js';
+import { useEffect, useMemo } from 'react';
+import { useChainUtils } from './useChainUtils';
+import { useChainAssetsPrices } from './useChainAssetsPrices';
+import { osmosisChainName } from '@/config';
+import { Pool } from 'osmo-query/dist/codegen/osmosis/gamm/pool-models/balancer/balancerPool';
+import { convertGammTokenToDollarValue } from '@/utils';
+import { useOsmoQueryHooks } from './useOsmoQueryHooks';
+
+(BigInt.prototype as any).toJSON = function () {
+ return this.toString();
+};
+
+export const getPagination = (limit: bigint) => ({
+ limit,
+ key: new Uint8Array(),
+ offset: 0n,
+ countTotal: true,
+ reverse: false,
+});
+
+export const useTotalAssets = (chainName: string) => {
+ const { address } = useChain(chainName);
+
+ const { cosmosQuery, osmoQuery, isReady, isFetching } =
+ useOsmoQueryHooks(chainName);
+
+ const isOsmosisChain = chainName === osmosisChainName;
+
+ const allBalancesQuery: UseQueryResult =
+ cosmosQuery.bank.v1beta1.useAllBalances({
+ request: {
+ address: address || '',
+ pagination: getPagination(100n),
+ },
+ options: {
+ enabled: isReady,
+ select: ({ balances }) => balances || [],
+ },
+ });
+
+ const delegationsQuery: UseQueryResult =
+ cosmosQuery.staking.v1beta1.useDelegatorDelegations({
+ request: {
+ delegatorAddr: address || '',
+ pagination: getPagination(100n),
+ },
+ options: {
+ enabled: isReady,
+ select: ({ delegationResponses }) =>
+ delegationResponses.map(({ balance }) => balance) || [],
+ },
+ });
+
+ const lockedCoinsQuery: UseQueryResult =
+ osmoQuery.lockup.useAccountLockedCoins({
+ request: {
+ owner: address || '',
+ },
+ options: {
+ enabled: isReady && isOsmosisChain,
+ select: ({ coins }) => coins || [],
+ staleTime: Infinity,
+ },
+ });
+
+ const poolsQuery: UseQueryResult = osmoQuery.gamm.v1beta1.usePools({
+ request: {
+ pagination: getPagination(5000n),
+ },
+ options: {
+ enabled: isReady && isOsmosisChain,
+ select: ({ pools }) => pools || [],
+ staleTime: Infinity,
+ },
+ });
+
+ const pricesQuery = useChainAssetsPrices(chainName);
+
+ const dataQueries = {
+ pools: poolsQuery,
+ prices: pricesQuery,
+ allBalances: allBalancesQuery,
+ delegations: delegationsQuery,
+ lockedCoins: lockedCoinsQuery,
+ };
+
+ const queriesToReset = [dataQueries.allBalances, dataQueries.delegations];
+ const queriesToRefetch = [dataQueries.allBalances];
+
+ useEffect(() => {
+ queriesToReset.forEach((query) => query.remove());
+ // eslint-disable-next-line react-hooks/exhaustive-deps
+ }, [chainName]);
+
+ const queries = Object.values(dataQueries);
+ const isInitialFetching = queries.some(({ isFetching }) => isFetching);
+ const isRefetching = queries.some(({ isRefetching }) => isRefetching);
+ const isLoading = isFetching || isInitialFetching || isRefetching;
+
+ type AllQueries = typeof dataQueries;
+
+ type QueriesData = {
+ [Key in keyof AllQueries]: NonNullable;
+ };
+
+ const { calcCoinDollarValue } = useChainUtils(chainName);
+
+ const zero = new BigNumber(0);
+
+ const data = useMemo(() => {
+ if (isLoading) return;
+
+ const queriesData = Object.fromEntries(
+ Object.entries(dataQueries).map(([key, query]) => [key, query.data])
+ ) as QueriesData;
+
+ const {
+ allBalances,
+ delegations,
+ lockedCoins = [],
+ pools = [],
+ prices = {},
+ } = queriesData;
+
+ const stakedTotal = delegations
+ ?.map((coin) => calcCoinDollarValue(prices, coin))
+ .reduce((total, cur) => total.plus(cur), zero)
+ .toString();
+
+ const balancesTotal = allBalances
+ ?.filter(({ denom }) => !denom.startsWith('gamm') && prices[denom])
+ .map((coin) => calcCoinDollarValue(prices, coin))
+ .reduce((total, cur) => total.plus(cur), zero)
+ .toString();
+
+ let bondedTotal;
+ let liquidityTotal;
+
+ if (isOsmosisChain) {
+ const liquidityCoins = (allBalances ?? []).filter(({ denom }) =>
+ denom.startsWith('gamm')
+ );
+ const gammTokenDenoms = [
+ ...(liquidityCoins ?? []),
+ ...(lockedCoins ?? []),
+ ].map(({ denom }) => denom);
+
+ const uniqueDenoms = [...new Set(gammTokenDenoms)];
+
+ const poolsMap: Record = pools
+ .filter(({ totalShares }) => uniqueDenoms.includes(totalShares.denom))
+ .filter((pool) => !pool?.$typeUrl?.includes('stableswap'))
+ .filter(({ poolAssets }) => {
+ return poolAssets.every(({ token }) => {
+ const isGammToken = token.denom.startsWith('gamm/pool');
+ return !isGammToken && prices[token.denom];
+ });
+ })
+ .reduce((prev, cur) => ({ ...prev, [cur.totalShares.denom]: cur }), {});
+
+ bondedTotal = lockedCoins
+ .map((coin) => {
+ const poolData = poolsMap[coin.denom];
+ if (!poolData) return '0';
+ return convertGammTokenToDollarValue(coin, poolData, prices);
+ })
+ .reduce((total, cur) => total.plus(cur), zero)
+ .toString();
+
+ liquidityTotal = liquidityCoins
+ .map((coin) => {
+ const poolData = poolsMap[coin.denom];
+ if (!poolData) return '0';
+ return convertGammTokenToDollarValue(coin, poolData, prices);
+ })
+ .reduce((total, cur) => total.plus(cur), zero)
+ .toString();
+ }
+
+ const total = [stakedTotal, balancesTotal, bondedTotal, liquidityTotal]
+ .reduce((total, cur) => total.plus(cur || 0), zero)
+ .decimalPlaces(2)
+ .toString();
+
+ return {
+ total,
+ prices,
+ allBalances,
+ };
+ // eslint-disable-next-line react-hooks/exhaustive-deps
+ }, [isLoading]);
+
+ const refetch = () => {
+ queriesToRefetch.forEach((query) => query.refetch());
+ };
+
+ return { data, isLoading, refetch };
+};
diff --git a/examples/chain-template-spawn/hooks/common/index.ts b/examples/chain-template-spawn/hooks/common/index.ts
new file mode 100644
index 000000000..f074437b0
--- /dev/null
+++ b/examples/chain-template-spawn/hooks/common/index.ts
@@ -0,0 +1,8 @@
+export * from './useTx';
+export * from './useToast';
+export * from './useDisclosure';
+export * from './useCopyToClipboard';
+export * from './useOutsideClick';
+export * from './useMediaQuery';
+export * from './useDetectBreakpoints';
+export * from './useSpawnChains';
diff --git a/examples/chain-template-spawn/hooks/common/useCopyToClipboard.ts b/examples/chain-template-spawn/hooks/common/useCopyToClipboard.ts
new file mode 100644
index 000000000..e2e143e8f
--- /dev/null
+++ b/examples/chain-template-spawn/hooks/common/useCopyToClipboard.ts
@@ -0,0 +1,18 @@
+import { useState } from 'react';
+import { toast } from '@interchain-ui/react';
+
+export const useCopyToClipboard = () => {
+ const [isCopied, setIsCopied] = useState(false);
+
+ const copyToClipboard = async (text: string) => {
+ try {
+ await navigator.clipboard.writeText(text);
+ setIsCopied(true);
+ setTimeout(() => setIsCopied(false), 1000);
+ } catch (err) {
+ toast.error('Failed to copy text. Please try again.');
+ }
+ };
+
+ return { isCopied, copyToClipboard };
+};
diff --git a/examples/chain-template-spawn/hooks/common/useDetectBreakpoints.ts b/examples/chain-template-spawn/hooks/common/useDetectBreakpoints.ts
new file mode 100644
index 000000000..5240375c3
--- /dev/null
+++ b/examples/chain-template-spawn/hooks/common/useDetectBreakpoints.ts
@@ -0,0 +1,13 @@
+import { breakpoints } from '@/config';
+import { useMediaQuery } from './useMediaQuery';
+
+export const useDetectBreakpoints = () => {
+ const { mobile, tablet, desktop } = breakpoints;
+
+ const isSmMobile = useMediaQuery(`(max-width: ${mobile - 1}px)`);
+ const isMobile = useMediaQuery(`(max-width: ${tablet - 1}px)`);
+ const isTablet = useMediaQuery(`(max-width: ${desktop - 1}px)`);
+ const isDesktop = useMediaQuery(`(min-width: ${desktop}px)`);
+
+ return { isSmMobile, isMobile, isTablet, isDesktop };
+};
diff --git a/examples/chain-template-spawn/hooks/common/useDisclosure.ts b/examples/chain-template-spawn/hooks/common/useDisclosure.ts
new file mode 100644
index 000000000..cb14407a5
--- /dev/null
+++ b/examples/chain-template-spawn/hooks/common/useDisclosure.ts
@@ -0,0 +1,18 @@
+import { useState } from 'react';
+
+export const useDisclosure = (initialState = false) => {
+ const [isOpen, setIsOpen] = useState(initialState);
+
+ const onClose = () => setIsOpen(false);
+ const onOpen = () => setIsOpen(true);
+ const onToggle = () => setIsOpen((prev) => !prev);
+
+ return {
+ isOpen,
+ onClose,
+ onOpen,
+ onToggle,
+ };
+};
+
+export type UseDisclosureReturn = ReturnType;
diff --git a/examples/chain-template-spawn/hooks/common/useMediaQuery.ts b/examples/chain-template-spawn/hooks/common/useMediaQuery.ts
new file mode 100644
index 000000000..902662469
--- /dev/null
+++ b/examples/chain-template-spawn/hooks/common/useMediaQuery.ts
@@ -0,0 +1,27 @@
+import { useState, useCallback, useEffect } from 'react';
+
+export const useMediaQuery = (mediaQuery: string) => {
+ const [targetReached, setTargetReached] = useState(false);
+
+ const updateTarget = useCallback((e: MediaQueryListEvent) => {
+ if (e.matches) {
+ setTargetReached(true);
+ } else {
+ setTargetReached(false);
+ }
+ }, []);
+
+ useEffect(() => {
+ const media = window.matchMedia(mediaQuery);
+ media.addEventListener('change', updateTarget);
+
+ // Check on mount (callback is not called until a change occurs)
+ if (media.matches) {
+ setTargetReached(true);
+ }
+
+ return () => media.removeEventListener('change', updateTarget);
+ }, []);
+
+ return targetReached;
+};
diff --git a/examples/chain-template-spawn/hooks/common/useOutsideClick.ts b/examples/chain-template-spawn/hooks/common/useOutsideClick.ts
new file mode 100644
index 000000000..4f4670b3a
--- /dev/null
+++ b/examples/chain-template-spawn/hooks/common/useOutsideClick.ts
@@ -0,0 +1,27 @@
+import { useEffect } from 'react';
+
+interface UseOutsideClickProps {
+ ref: React.RefObject;
+ handler: () => void;
+ shouldListen?: boolean;
+}
+
+export const useOutsideClick = ({ ref, handler, shouldListen = true }: UseOutsideClickProps) => {
+ const handleClick = (event: MouseEvent) => {
+ if (ref.current && !ref.current.contains(event.target as Node)) {
+ handler();
+ }
+ };
+
+ useEffect(() => {
+ if (shouldListen) {
+ document.addEventListener('mousedown', handleClick);
+ } else {
+ document.removeEventListener('mousedown', handleClick);
+ }
+
+ return () => {
+ document.removeEventListener('mousedown', handleClick);
+ };
+ }, [ref, handler, shouldListen]);
+};
diff --git a/examples/chain-template-spawn/hooks/common/useSpawnChains.ts b/examples/chain-template-spawn/hooks/common/useSpawnChains.ts
new file mode 100644
index 000000000..00c1b28da
--- /dev/null
+++ b/examples/chain-template-spawn/hooks/common/useSpawnChains.ts
@@ -0,0 +1,41 @@
+import { useQuery } from '@tanstack/react-query';
+import { AssetList, Chain } from '@chain-registry/types';
+
+import { SPAWN_CHAIN_URL, SPAWN_ASSETS_URL } from '@/config';
+
+export const useSpawnChains = () => {
+ return useQuery({
+ queryKey: ['spawn-chains'],
+ queryFn: async () => {
+ try {
+ const [spawnChain, spawnAssets] = await Promise.all([
+ fetcher(SPAWN_CHAIN_URL),
+ fetcher(SPAWN_ASSETS_URL),
+ ]);
+
+ return {
+ chains: spawnChain ? [spawnChain] : [],
+ assets: spawnAssets ? [spawnAssets] : [],
+ };
+ } catch (error) {
+ console.error(error);
+ return undefined;
+ }
+ },
+ staleTime: Infinity,
+ cacheTime: Infinity,
+ refetchOnMount: false,
+ refetchOnReconnect: false,
+ });
+};
+
+const fetcher = async (url: string): Promise => {
+ try {
+ const response = await fetch(url);
+ const data = await response.json();
+ return data;
+ } catch (error) {
+ console.error(error);
+ return null;
+ }
+};
diff --git a/examples/chain-template-spawn/hooks/common/useToast.tsx b/examples/chain-template-spawn/hooks/common/useToast.tsx
new file mode 100644
index 000000000..2b3e89ef8
--- /dev/null
+++ b/examples/chain-template-spawn/hooks/common/useToast.tsx
@@ -0,0 +1,35 @@
+import { toast, Text, ToastType, Spinner } from '@interchain-ui/react';
+
+export type CustomToast = {
+ type: ToastType;
+ title: string;
+ duration?: number;
+ description?: string | JSX.Element;
+};
+
+const ToastTitle = ({ title }: { title: string }) => {
+ return (
+
+ {title}
+
+ );
+};
+
+export const useToast = () => {
+ const customToast = ({
+ type,
+ title,
+ description,
+ duration = 5000,
+ }: CustomToast) => {
+ return toast.custom(type, , {
+ duration,
+ description,
+ icon: type === 'loading' ? : undefined,
+ });
+ };
+
+ customToast.close = toast.dismiss;
+
+ return { toast: customToast };
+};
diff --git a/examples/chain-template-spawn/hooks/common/useTx.ts b/examples/chain-template-spawn/hooks/common/useTx.ts
new file mode 100644
index 000000000..d1d68ed19
--- /dev/null
+++ b/examples/chain-template-spawn/hooks/common/useTx.ts
@@ -0,0 +1,113 @@
+import { cosmos } from 'interchain-query';
+import { useChain } from '@cosmos-kit/react';
+import { isDeliverTxSuccess, StdFee } from '@cosmjs/stargate';
+import { useToast, type CustomToast } from './useToast';
+
+const txRaw = cosmos.tx.v1beta1.TxRaw;
+
+interface Msg {
+ typeUrl: string;
+ value: any;
+}
+
+interface TxOptions {
+ fee?: StdFee | null;
+ toast?: Partial;
+ onSuccess?: () => void;
+}
+
+export enum TxStatus {
+ Failed = 'Transaction Failed',
+ Successful = 'Transaction Successful',
+ Broadcasting = 'Transaction Broadcasting',
+}
+
+export const useTx = (chainName: string) => {
+ const { address, getSigningStargateClient, estimateFee } =
+ useChain(chainName);
+
+ const { toast } = useToast();
+
+ const tx = async (msgs: Msg[], options: TxOptions) => {
+ if (!address) {
+ toast({
+ type: 'error',
+ title: 'Wallet not connected',
+ description: 'Please connect your wallet',
+ });
+ return;
+ }
+
+ let signed: Parameters['0'];
+ let client: Awaited>;
+
+ try {
+ let fee: StdFee;
+ if (options?.fee) {
+ fee = options.fee;
+ client = await getSigningStargateClient();
+ } else {
+ const [_fee, _client] = await Promise.all([
+ estimateFee(msgs),
+ getSigningStargateClient(),
+ ]);
+ fee = _fee;
+ client = _client;
+ }
+ signed = await client.sign(address, msgs, fee, '');
+ } catch (e: any) {
+ console.error(e);
+ toast({
+ title: TxStatus.Failed,
+ description: e?.message || 'An unexpected error has occured',
+ type: 'error',
+ });
+ return;
+ }
+
+ let broadcastToastId: string | number;
+
+ broadcastToastId = toast({
+ title: TxStatus.Broadcasting,
+ description: 'Waiting for transaction to be included in the block',
+ type: 'loading',
+ duration: 999999,
+ });
+
+ if (client && signed) {
+ await client
+ .broadcastTx(Uint8Array.from(txRaw.encode(signed).finish()))
+ .then((res: any) => {
+ if (isDeliverTxSuccess(res)) {
+ if (options.onSuccess) options.onSuccess();
+
+ toast({
+ title: options.toast?.title || TxStatus.Successful,
+ type: options.toast?.type || 'success',
+ description: options.toast?.description,
+ });
+ } else {
+ toast({
+ title: TxStatus.Failed,
+ description: res?.rawLog,
+ type: 'error',
+ duration: 10000,
+ });
+ }
+ })
+ .catch((err) => {
+ toast({
+ title: TxStatus.Failed,
+ description: err?.message,
+ type: 'error',
+ duration: 10000,
+ });
+ })
+ .finally(() => toast.close(broadcastToastId));
+ } else {
+ toast.close(broadcastToastId);
+ }
+ };
+
+ return { tx };
+};
diff --git a/examples/chain-template-spawn/hooks/contract/index.ts b/examples/chain-template-spawn/hooks/contract/index.ts
new file mode 100644
index 000000000..c3824d24b
--- /dev/null
+++ b/examples/chain-template-spawn/hooks/contract/index.ts
@@ -0,0 +1,7 @@
+export * from './useContractInfo';
+export * from './useQueryContract';
+export * from './useExecuteContractTx';
+export * from './useStoreCodeTx';
+export * from './useInstantiateTx';
+export * from './useMyContracts';
+export * from './useCodeDetails';
diff --git a/examples/chain-template-spawn/hooks/contract/useCodeDetails.ts b/examples/chain-template-spawn/hooks/contract/useCodeDetails.ts
new file mode 100644
index 000000000..0949ee364
--- /dev/null
+++ b/examples/chain-template-spawn/hooks/contract/useCodeDetails.ts
@@ -0,0 +1,28 @@
+import { prettyCodeInfo } from '@/utils';
+import { useQuery } from '@tanstack/react-query';
+import { useCwQueryClient } from './useCwQueryClient';
+
+export const useCodeDetails = (codeId: number, enabled: boolean = true) => {
+ const { data: client } = useCwQueryClient();
+
+ return useQuery({
+ queryKey: ['codeDetails', codeId],
+ queryFn: async () => {
+ if (!client) return;
+ try {
+ const { codeInfo } = await client.cosmwasm.wasm.v1.code({
+ codeId: BigInt(codeId),
+ });
+ return codeInfo && prettyCodeInfo(codeInfo);
+ } catch (error) {
+ console.error(error);
+ }
+ },
+ enabled: !!client && enabled,
+ retry: false,
+ cacheTime: 0,
+ refetchOnMount: false,
+ refetchOnReconnect: false,
+ refetchOnWindowFocus: false,
+ });
+};
diff --git a/examples/chain-template-spawn/hooks/contract/useContractInfo.ts b/examples/chain-template-spawn/hooks/contract/useContractInfo.ts
new file mode 100644
index 000000000..a70291e02
--- /dev/null
+++ b/examples/chain-template-spawn/hooks/contract/useContractInfo.ts
@@ -0,0 +1,25 @@
+import { useQuery } from '@tanstack/react-query';
+import { useCosmWasmClient } from './useCosmWasmClient';
+import { useChainStore } from '@/contexts';
+import { useChain } from '@cosmos-kit/react';
+
+export const useContractInfo = ({
+ contractAddress,
+ enabled = true,
+}: {
+ contractAddress: string;
+ enabled?: boolean;
+}) => {
+ const { data: cwClient } = useCosmWasmClient();
+ const { selectedChain } = useChainStore();
+ const { getCosmWasmClient } = useChain(selectedChain);
+
+ return useQuery({
+ queryKey: ['useContractInfo', contractAddress],
+ queryFn: async () => {
+ const client = cwClient ?? (await getCosmWasmClient());
+ return client.getContract(contractAddress);
+ },
+ enabled: !!contractAddress && enabled,
+ });
+};
diff --git a/examples/chain-template-spawn/hooks/contract/useCosmWasmClient.ts b/examples/chain-template-spawn/hooks/contract/useCosmWasmClient.ts
new file mode 100644
index 000000000..50ef7d875
--- /dev/null
+++ b/examples/chain-template-spawn/hooks/contract/useCosmWasmClient.ts
@@ -0,0 +1,17 @@
+import { useChain } from '@cosmos-kit/react';
+import { useQuery } from '@tanstack/react-query';
+import { useChainStore } from '@/contexts';
+
+export const useCosmWasmClient = () => {
+ const { selectedChain } = useChainStore();
+ const { getCosmWasmClient } = useChain(selectedChain);
+
+ return useQuery({
+ queryKey: ['useCosmWasmClient', selectedChain],
+ queryFn: () => getCosmWasmClient(),
+ staleTime: Infinity,
+ refetchOnMount: false,
+ refetchOnReconnect: false,
+ refetchOnWindowFocus: false,
+ });
+};
diff --git a/examples/chain-template-spawn/hooks/contract/useCwQueryClient.ts b/examples/chain-template-spawn/hooks/contract/useCwQueryClient.ts
new file mode 100644
index 000000000..66d63df92
--- /dev/null
+++ b/examples/chain-template-spawn/hooks/contract/useCwQueryClient.ts
@@ -0,0 +1,25 @@
+import { useChainStore } from '@/contexts';
+import { useChain } from '@cosmos-kit/react';
+import { useQuery } from '@tanstack/react-query';
+import { cosmwasm } from 'interchain-query';
+
+export const useCwQueryClient = () => {
+ const { selectedChain } = useChainStore();
+ const { getRpcEndpoint } = useChain(selectedChain);
+
+ return useQuery({
+ queryKey: ['cwQueryClient', selectedChain],
+ queryFn: async () => {
+ const rpcEndpoint = await getRpcEndpoint();
+ const client = await cosmwasm.ClientFactory.createRPCQueryClient({
+ rpcEndpoint,
+ });
+ return client;
+ },
+ staleTime: Infinity,
+ cacheTime: Infinity,
+ refetchOnMount: false,
+ refetchOnReconnect: false,
+ refetchOnWindowFocus: false,
+ });
+};
diff --git a/examples/chain-template-spawn/hooks/contract/useExecuteContractTx.tsx b/examples/chain-template-spawn/hooks/contract/useExecuteContractTx.tsx
new file mode 100644
index 000000000..41194c9e7
--- /dev/null
+++ b/examples/chain-template-spawn/hooks/contract/useExecuteContractTx.tsx
@@ -0,0 +1,84 @@
+import Link from 'next/link';
+import { Coin, StdFee } from '@cosmjs/amino';
+import { useChain } from '@cosmos-kit/react';
+
+import { useToast } from '../common';
+import { Box, Text, Icon } from '@interchain-ui/react';
+import { getExplorerLink } from '@/utils';
+
+interface ExecuteTxParams {
+ address: string;
+ contractAddress: string;
+ fee: StdFee;
+ msg: object;
+ funds: Coin[];
+ onTxSucceed?: () => void;
+ onTxFailed?: () => void;
+}
+
+export const useExecuteContractTx = (chainName: string) => {
+ const { getSigningCosmWasmClient, chain } = useChain(chainName);
+
+ const executeTx = async ({
+ address,
+ contractAddress,
+ fee,
+ funds,
+ msg,
+ onTxFailed = () => {},
+ onTxSucceed = () => {},
+ }: ExecuteTxParams) => {
+ const client = await getSigningCosmWasmClient();
+ const { toast } = useToast();
+
+ const toastId = toast({
+ title: 'Sending Transaction',
+ type: 'loading',
+ duration: 999999,
+ });
+
+ try {
+ const result = await client.execute(
+ address,
+ contractAddress,
+ msg,
+ fee,
+ undefined,
+ funds
+ );
+ onTxSucceed();
+ toast.close(toastId);
+ toast({
+ title: 'Transaction Successful',
+ type: 'success',
+ description: (
+
+
+ View tx details
+
+
+
+ ),
+ });
+ } catch (e: any) {
+ console.error(e);
+ onTxFailed();
+ toast.close(toastId);
+ toast({
+ title: 'Transaction Failed',
+ type: 'error',
+ description: (
+
+ {e.message}
+
+ ),
+ duration: 10000,
+ });
+ }
+ };
+
+ return { executeTx };
+};
diff --git a/examples/chain-template-spawn/hooks/contract/useInstantiateTx.tsx b/examples/chain-template-spawn/hooks/contract/useInstantiateTx.tsx
new file mode 100644
index 000000000..e1bbbfda7
--- /dev/null
+++ b/examples/chain-template-spawn/hooks/contract/useInstantiateTx.tsx
@@ -0,0 +1,82 @@
+import { Box } from '@interchain-ui/react';
+import { useChain } from '@cosmos-kit/react';
+import { Coin, StdFee } from '@cosmjs/amino';
+import { InstantiateResult } from '@cosmjs/cosmwasm-stargate';
+
+import { useToast } from '../common';
+
+interface InstantiateTxParams {
+ address: string;
+ codeId: number;
+ initMsg: object;
+ label: string;
+ admin: string;
+ funds: Coin[];
+ onTxSucceed?: (txInfo: InstantiateResult) => void;
+ onTxFailed?: () => void;
+}
+
+export const useInstantiateTx = (chainName: string) => {
+ const { getSigningCosmWasmClient } = useChain(chainName);
+
+ const instantiateTx = async ({
+ address,
+ codeId,
+ initMsg,
+ label,
+ admin,
+ funds,
+ onTxSucceed = () => {},
+ onTxFailed = () => {},
+ }: InstantiateTxParams) => {
+ const client = await getSigningCosmWasmClient();
+ const { toast } = useToast();
+
+ const toastId = toast({
+ title: 'Sending Transaction',
+ type: 'loading',
+ duration: 999999,
+ });
+
+ const fee: StdFee = {
+ amount: [],
+ gas: '300000',
+ };
+
+ try {
+ const result = await client.instantiate(
+ address,
+ codeId,
+ initMsg,
+ label,
+ fee,
+ {
+ admin,
+ funds,
+ }
+ );
+ onTxSucceed(result);
+ toast.close(toastId);
+ toast({
+ title: 'Instantiate Success',
+ type: 'success',
+ });
+ } catch (e: any) {
+ console.error(e);
+ onTxFailed();
+ toast.close(toastId);
+ toast({
+ title: 'Transaction Failed',
+ type: 'error',
+ description: (
+
+ {e.message}
+
+ ),
+ duration: 10000,
+ });
+ }
+ };
+
+ return { instantiateTx };
+};
diff --git a/examples/chain-template-spawn/hooks/contract/useMyContracts.ts b/examples/chain-template-spawn/hooks/contract/useMyContracts.ts
new file mode 100644
index 000000000..6c026b613
--- /dev/null
+++ b/examples/chain-template-spawn/hooks/contract/useMyContracts.ts
@@ -0,0 +1,43 @@
+import { useChainStore } from '@/contexts';
+import { useChain } from '@cosmos-kit/react';
+import { useQuery } from '@tanstack/react-query';
+import { useCwQueryClient } from './useCwQueryClient';
+
+export const useMyContracts = () => {
+ const { selectedChain } = useChainStore();
+ const { address } = useChain(selectedChain);
+ const { data: client } = useCwQueryClient();
+
+ return useQuery({
+ queryKey: ['myContracts', selectedChain, address],
+ queryFn: async () => {
+ if (!client || !address) return [];
+
+ try {
+ const { contractAddresses } =
+ await client.cosmwasm.wasm.v1.contractsByCreator({
+ creatorAddress: address,
+ pagination: {
+ limit: 1000n,
+ reverse: true,
+ countTotal: false,
+ key: new Uint8Array(),
+ offset: 0n,
+ },
+ });
+
+ const contractsInfo = await Promise.all(
+ contractAddresses.map((address) =>
+ client.cosmwasm.wasm.v1.contractInfo({ address })
+ )
+ );
+
+ return contractsInfo;
+ } catch (error) {
+ console.error(error);
+ return [];
+ }
+ },
+ enabled: !!client && !!address,
+ });
+};
diff --git a/examples/chain-template-spawn/hooks/contract/useQueryContract.ts b/examples/chain-template-spawn/hooks/contract/useQueryContract.ts
new file mode 100644
index 000000000..a9eb1df11
--- /dev/null
+++ b/examples/chain-template-spawn/hooks/contract/useQueryContract.ts
@@ -0,0 +1,23 @@
+import { useQuery } from '@tanstack/react-query';
+import { useCosmWasmClient } from './useCosmWasmClient';
+
+export const useQueryContract = ({
+ contractAddress,
+ queryMsg,
+ enabled = true,
+}: {
+ contractAddress: string;
+ queryMsg: string;
+ enabled?: boolean;
+}) => {
+ const { data: client } = useCosmWasmClient();
+
+ return useQuery({
+ queryKey: ['useQueryContract', contractAddress, queryMsg],
+ queryFn: async () => {
+ if (!client) return null;
+ return client.queryContractSmart(contractAddress, JSON.parse(queryMsg));
+ },
+ enabled: !!client && !!contractAddress && !!queryMsg && enabled,
+ });
+};
diff --git a/examples/chain-template-spawn/hooks/contract/useStoreCodeTx.tsx b/examples/chain-template-spawn/hooks/contract/useStoreCodeTx.tsx
new file mode 100644
index 000000000..750066f37
--- /dev/null
+++ b/examples/chain-template-spawn/hooks/contract/useStoreCodeTx.tsx
@@ -0,0 +1,81 @@
+import { useChain } from '@cosmos-kit/react';
+import { AccessType } from 'interchain-query/cosmwasm/wasm/v1/types';
+import { cosmwasm } from 'interchain-query';
+import { gzip } from 'node-gzip';
+import { StdFee } from '@cosmjs/amino';
+import { Box } from '@interchain-ui/react';
+
+import { useToast } from '../common';
+import { prettyStoreCodeTxResult } from '@/utils';
+
+const { storeCode } = cosmwasm.wasm.v1.MessageComposer.fromPartial;
+
+type StoreCodeTxParams = {
+ wasmFile: File;
+ permission: AccessType;
+ addresses: string[];
+ onTxSucceed?: (codeId: string) => void;
+ onTxFailed?: () => void;
+};
+
+export const useStoreCodeTx = (chainName: string) => {
+ const { getSigningCosmWasmClient, address } = useChain(chainName);
+ const { toast } = useToast();
+
+ const storeCodeTx = async ({
+ wasmFile,
+ permission,
+ addresses,
+ onTxSucceed = () => {},
+ onTxFailed = () => {},
+ }: StoreCodeTxParams) => {
+ if (!address) return;
+
+ const toastId = toast({
+ title: 'Sending Transaction',
+ type: 'loading',
+ duration: 999999,
+ });
+
+ const wasmCode = await wasmFile.arrayBuffer();
+ const wasmByteCode = new Uint8Array(await gzip(new Uint8Array(wasmCode)));
+
+ const message = storeCode({
+ sender: address,
+ wasmByteCode,
+ instantiatePermission: {
+ permission,
+ addresses,
+ },
+ });
+
+ const fee: StdFee = { amount: [], gas: '5800000' };
+
+ try {
+ const client = await getSigningCosmWasmClient();
+ const result = await client.signAndBroadcast(address, [message], fee);
+ onTxSucceed(prettyStoreCodeTxResult(result).codeId);
+ toast.close(toastId);
+ toast({
+ title: 'Contract uploaded successfully',
+ type: 'success',
+ });
+ } catch (error: any) {
+ console.error('Failed to upload contract:', error);
+ onTxFailed();
+ toast.close(toastId);
+ toast({
+ title: 'Transaction Failed',
+ type: 'error',
+ description: (
+
+ {error.message}
+
+ ),
+ duration: 10000,
+ });
+ }
+ };
+
+ return { storeCodeTx };
+};
diff --git a/examples/chain-template-spawn/hooks/index.ts b/examples/chain-template-spawn/hooks/index.ts
new file mode 100644
index 000000000..9b9594a60
--- /dev/null
+++ b/examples/chain-template-spawn/hooks/index.ts
@@ -0,0 +1,5 @@
+export * from './common';
+export * from './staking';
+export * from './voting';
+export * from './asset-list';
+export * from './contract';
diff --git a/examples/chain-template-spawn/hooks/staking/index.ts b/examples/chain-template-spawn/hooks/staking/index.ts
new file mode 100644
index 000000000..ba6cecec0
--- /dev/null
+++ b/examples/chain-template-spawn/hooks/staking/index.ts
@@ -0,0 +1,3 @@
+export * from './useStakingData';
+export * from './useAssetsPrices';
+export * from './useValidatorLogos';
diff --git a/examples/chain-template-spawn/hooks/staking/useAssetsPrices.ts b/examples/chain-template-spawn/hooks/staking/useAssetsPrices.ts
new file mode 100644
index 000000000..4fc630398
--- /dev/null
+++ b/examples/chain-template-spawn/hooks/staking/useAssetsPrices.ts
@@ -0,0 +1,76 @@
+import { assets } from 'chain-registry';
+import { useQuery } from '@tanstack/react-query';
+import { AssetList } from '@chain-registry/types';
+import { useSpawnChains } from '../common';
+import { useChainStore } from '@/contexts';
+import { DEFAULT_SPAWN_TOKEN_PRICE } from '@/config';
+
+type CoinGeckoId = string;
+type CoinGeckoUSD = { usd: number };
+type CoinGeckoUSDResponse = Record;
+export type Prices = Record;
+
+const handleError = (resp: Response) => {
+ if (!resp.ok) throw Error(resp.statusText);
+ return resp;
+};
+
+const getGeckoIdsFromAssets = (assets: AssetList[]) => {
+ return assets
+ .map((asset) => asset.assets[0].coingecko_id)
+ .filter(Boolean) as string[];
+};
+
+const formatPrices = (
+ prices: CoinGeckoUSDResponse,
+ assets: AssetList[]
+): Prices => {
+ return Object.entries(prices).reduce((priceHash, cur) => {
+ const assetList = assets.find(
+ (asset) => asset.assets[0].coingecko_id === cur[0]
+ )!;
+ const denom = assetList.assets[0].base;
+ return { ...priceHash, [denom]: cur[1].usd };
+ }, {});
+};
+
+const fetchPrices = async (
+ geckoIds: string[]
+): Promise => {
+ const url = `https://api.coingecko.com/api/v3/simple/price?ids=${geckoIds.join()}&vs_currencies=usd`;
+
+ return fetch(url)
+ .then(handleError)
+ .then((res) => res.json());
+};
+
+export const useAssetsPrices = () => {
+ const { selectedChain } = useChainStore();
+ const { data: spawnData } = useSpawnChains();
+ const { chains: spawnChains = [], assets: spawnAssets = [] } =
+ spawnData ?? {};
+
+ const isSpawnChain = spawnChains.some(
+ (chain) => chain.chain_name === selectedChain
+ );
+
+ if (isSpawnChain) {
+ return useQuery({
+ queryKey: ['useAssetsPrices', selectedChain],
+ queryFn: () => {
+ const nativeAsset = spawnAssets?.[0].assets[0]!;
+ return { [nativeAsset.base]: DEFAULT_SPAWN_TOKEN_PRICE };
+ },
+ staleTime: Infinity,
+ });
+ }
+
+ const geckoIds = getGeckoIdsFromAssets(assets);
+
+ return useQuery({
+ queryKey: ['useAssetsPrices'],
+ queryFn: () => fetchPrices(geckoIds),
+ select: (data) => formatPrices(data, assets),
+ staleTime: Infinity,
+ });
+};
diff --git a/examples/chain-template-spawn/hooks/staking/useStakingData.ts b/examples/chain-template-spawn/hooks/staking/useStakingData.ts
new file mode 100644
index 000000000..0787b6cd4
--- /dev/null
+++ b/examples/chain-template-spawn/hooks/staking/useStakingData.ts
@@ -0,0 +1,265 @@
+import { useEffect, useMemo } from 'react';
+import { useChain } from '@cosmos-kit/react';
+import BigNumber from 'bignumber.js';
+import {
+ cosmos,
+ useRpcClient,
+ useRpcEndpoint,
+ createRpcQueryHooks,
+} from 'interchain-query';
+
+import { useAssetsPrices } from './useAssetsPrices';
+import {
+ shiftDigits,
+ calcTotalDelegation,
+ extendValidators,
+ parseAnnualProvisions,
+ parseDelegations,
+ parseRewards,
+ parseUnbondingDays,
+ parseValidators,
+ getNativeAsset,
+ getExponentFromAsset,
+} from '@/utils';
+
+(BigInt.prototype as any).toJSON = function () {
+ return this.toString();
+};
+
+export const useStakingData = (chainName: string) => {
+ const { address, getRpcEndpoint, assets } = useChain(chainName);
+
+ const coin = getNativeAsset(assets!);
+ const exp = getExponentFromAsset(coin);
+
+ const rpcEndpointQuery = useRpcEndpoint({
+ getter: getRpcEndpoint,
+ options: {
+ enabled: !!address,
+ staleTime: Infinity,
+ queryKeyHashFn: (queryKey) => {
+ return JSON.stringify([...queryKey, chainName]);
+ },
+ },
+ });
+
+ const rpcClientQuery = useRpcClient({
+ rpcEndpoint: rpcEndpointQuery.data || '',
+ options: {
+ enabled: !!address && !!rpcEndpointQuery.data,
+ staleTime: Infinity,
+ },
+ });
+
+ const { cosmos: cosmosQuery } = createRpcQueryHooks({
+ rpc: rpcClientQuery.data,
+ });
+
+ const isDataQueryEnabled = !!address && !!rpcClientQuery.data;
+
+ const balanceQuery = cosmosQuery.bank.v1beta1.useBalance({
+ request: {
+ address: address || '',
+ denom: coin.base,
+ },
+ options: {
+ enabled: isDataQueryEnabled,
+ select: ({ balance }) => shiftDigits(balance?.amount || '0', -exp),
+ },
+ });
+
+ const myValidatorsQuery = cosmosQuery.staking.v1beta1.useDelegatorValidators({
+ request: {
+ delegatorAddr: address || '',
+ pagination: undefined,
+ },
+ options: {
+ enabled: isDataQueryEnabled,
+ select: ({ validators }) => parseValidators(validators),
+ },
+ });
+
+ const rewardsQuery =
+ cosmosQuery.distribution.v1beta1.useDelegationTotalRewards({
+ request: {
+ delegatorAddress: address || '',
+ },
+ options: {
+ enabled: isDataQueryEnabled,
+ select: (data) => parseRewards(data, coin.base, -exp),
+ },
+ });
+
+ const validatorsQuery = cosmosQuery.staking.v1beta1.useValidators({
+ request: {
+ status: cosmos.staking.v1beta1.bondStatusToJSON(
+ cosmos.staking.v1beta1.BondStatus.BOND_STATUS_BONDED
+ ),
+ pagination: {
+ key: new Uint8Array(),
+ offset: 0n,
+ limit: 200n,
+ countTotal: true,
+ reverse: false,
+ },
+ },
+ options: {
+ enabled: isDataQueryEnabled,
+ select: ({ validators }) => {
+ const sorted = validators.sort((a, b) =>
+ new BigNumber(b.tokens).minus(a.tokens).toNumber()
+ );
+ return parseValidators(sorted);
+ },
+ },
+ });
+
+ const delegationsQuery = cosmosQuery.staking.v1beta1.useDelegatorDelegations({
+ request: {
+ delegatorAddr: address || '',
+ pagination: {
+ key: new Uint8Array(),
+ offset: 0n,
+ limit: 100n,
+ countTotal: true,
+ reverse: false,
+ },
+ },
+ options: {
+ enabled: isDataQueryEnabled,
+ select: ({ delegationResponses }) =>
+ parseDelegations(delegationResponses, -exp),
+ },
+ });
+
+ const unbondingDaysQuery = cosmosQuery.staking.v1beta1.useParams({
+ options: {
+ enabled: isDataQueryEnabled,
+ select: ({ params }) => parseUnbondingDays(params),
+ },
+ });
+
+ const annualProvisionsQuery = cosmosQuery.mint.v1beta1.useAnnualProvisions({
+ options: {
+ enabled: isDataQueryEnabled,
+ select: parseAnnualProvisions,
+ retry: false,
+ },
+ });
+
+ const poolQuery = cosmosQuery.staking.v1beta1.usePool({
+ options: {
+ enabled: isDataQueryEnabled,
+ select: ({ pool }) => pool,
+ },
+ });
+
+ const communityTaxQuery = cosmosQuery.distribution.v1beta1.useParams({
+ options: {
+ enabled: isDataQueryEnabled,
+ select: ({ params }) => shiftDigits(params?.communityTax || '0', -18),
+ },
+ });
+
+ const pricesQuery = useAssetsPrices();
+
+ const allQueries = {
+ balance: balanceQuery,
+ myValidators: myValidatorsQuery,
+ rewards: rewardsQuery,
+ allValidators: validatorsQuery,
+ delegations: delegationsQuery,
+ unbondingDays: unbondingDaysQuery,
+ annualProvisions: annualProvisionsQuery,
+ pool: poolQuery,
+ communityTax: communityTaxQuery,
+ prices: pricesQuery,
+ };
+
+ const queriesWithUnchangingKeys = [
+ allQueries.unbondingDays,
+ allQueries.annualProvisions,
+ allQueries.pool,
+ allQueries.communityTax,
+ allQueries.allValidators,
+ ];
+
+ const updatableQueriesAfterMutation = [
+ allQueries.balance,
+ allQueries.myValidators,
+ allQueries.rewards,
+ allQueries.allValidators,
+ allQueries.delegations,
+ ];
+
+ useEffect(() => {
+ queriesWithUnchangingKeys.forEach((query) => query.remove());
+ // eslint-disable-next-line react-hooks/exhaustive-deps
+ }, [chainName]);
+
+ const isInitialFetching = Object.values(allQueries).some(
+ ({ isLoading }) => isLoading
+ );
+
+ const isRefetching = Object.values(allQueries).some(
+ ({ isRefetching }) => isRefetching
+ );
+
+ const isLoading = isInitialFetching || isRefetching;
+
+ type AllQueries = typeof allQueries;
+
+ type QueriesData = {
+ [Key in keyof AllQueries]: NonNullable;
+ };
+
+ const data = useMemo(() => {
+ if (isLoading) return;
+
+ const queriesData = Object.fromEntries(
+ Object.entries(allQueries).map(([key, query]) => [key, query.data])
+ ) as QueriesData;
+
+ const {
+ allValidators,
+ delegations,
+ rewards,
+ myValidators,
+ annualProvisions,
+ communityTax,
+ pool,
+ } = queriesData;
+
+ const chainMetadata = { annualProvisions, communityTax, pool };
+
+ const extendedAllValidators = extendValidators(
+ allValidators,
+ delegations,
+ rewards?.byValidators,
+ chainMetadata
+ );
+
+ const extendedMyValidators = extendValidators(
+ myValidators,
+ delegations,
+ rewards?.byValidators,
+ chainMetadata
+ );
+
+ const totalDelegated = calcTotalDelegation(delegations);
+
+ return {
+ ...queriesData,
+ allValidators: extendedAllValidators,
+ myValidators: extendedMyValidators,
+ totalDelegated,
+ };
+ // eslint-disable-next-line react-hooks/exhaustive-deps
+ }, [isLoading]);
+
+ const refetch = () => {
+ updatableQueriesAfterMutation.forEach((query) => query.refetch());
+ };
+
+ return { data, isLoading, refetch };
+};
diff --git a/examples/chain-template-spawn/hooks/staking/useValidatorLogos.ts b/examples/chain-template-spawn/hooks/staking/useValidatorLogos.ts
new file mode 100644
index 000000000..01deb5012
--- /dev/null
+++ b/examples/chain-template-spawn/hooks/staking/useValidatorLogos.ts
@@ -0,0 +1,13 @@
+import { ExtendedValidator, getLogoUrls } from '@/utils';
+import { useQuery } from '@tanstack/react-query';
+
+export const useValidatorLogos = (
+ chainName: string,
+ validators: ExtendedValidator[]
+) => {
+ return useQuery({
+ queryKey: ['validatorLogos', chainName, validators.length],
+ queryFn: () => getLogoUrls(validators, chainName),
+ staleTime: Infinity,
+ });
+};
diff --git a/examples/chain-template-spawn/hooks/voting/index.ts b/examples/chain-template-spawn/hooks/voting/index.ts
new file mode 100644
index 000000000..f028800e1
--- /dev/null
+++ b/examples/chain-template-spawn/hooks/voting/index.ts
@@ -0,0 +1,5 @@
+export * from './useModal';
+export * from './useVoting';
+export * from './useVotingData';
+export * from './useQueryHooks';
+export * from './useRpcQueryClient';
diff --git a/examples/chain-template-spawn/hooks/voting/useModal.ts b/examples/chain-template-spawn/hooks/voting/useModal.ts
new file mode 100644
index 000000000..a0d02c107
--- /dev/null
+++ b/examples/chain-template-spawn/hooks/voting/useModal.ts
@@ -0,0 +1,13 @@
+import { useState } from 'react';
+
+export function useModal(title = '') {
+ const [modal, setModal] = useState({ open: false, title });
+
+ const open = () => setModal(modal => ({ ...modal, open: true }));
+ const close = () => setModal(modal => ({ ...modal, open: false }));
+ const toggle = () => setModal(modal => ({ ...modal, open: !modal.open }));
+
+ const setTitle = (title: string) => setModal(modal => ({ ...modal, title }));
+
+ return { modal, open, close, toggle, setTitle }
+}
\ No newline at end of file
diff --git a/examples/chain-template-spawn/hooks/voting/useQueryHooks.ts b/examples/chain-template-spawn/hooks/voting/useQueryHooks.ts
new file mode 100644
index 000000000..058db38e8
--- /dev/null
+++ b/examples/chain-template-spawn/hooks/voting/useQueryHooks.ts
@@ -0,0 +1,46 @@
+import { useChain } from '@cosmos-kit/react';
+import {
+ useRpcEndpoint,
+ useRpcClient,
+ createRpcQueryHooks
+} from 'interchain-query';
+
+export const useQueryHooks = (chainName: string, extraKey?: string) => {
+ const { getRpcEndpoint } = useChain(chainName);
+
+ const rpcEndpointQuery = useRpcEndpoint({
+ getter: getRpcEndpoint,
+ options: {
+ staleTime: Infinity,
+ queryKeyHashFn: (queryKey) => {
+ const key = [...queryKey, chainName];
+ return JSON.stringify(extraKey ? [...key, extraKey] : key);
+ },
+ },
+ });
+
+ const rpcClientQuery = useRpcClient({
+ rpcEndpoint: rpcEndpointQuery.data || '',
+ options: {
+ enabled: Boolean(rpcEndpointQuery.data),
+ staleTime: Infinity,
+ queryKeyHashFn: (queryKey) => {
+ return JSON.stringify(extraKey ? [...queryKey, extraKey] : queryKey);
+ },
+ },
+ });
+
+ const { cosmos } = createRpcQueryHooks({
+ rpc: rpcClientQuery.data,
+ });
+
+ const isReady = Boolean(rpcClientQuery.data);
+ const isFetching = rpcEndpointQuery.isFetching || rpcClientQuery.isFetching;
+
+ return {
+ cosmos,
+ isReady,
+ isFetching,
+ rpcEndpoint: rpcEndpointQuery.data,
+ };
+};
diff --git a/examples/chain-template-spawn/hooks/voting/useRpcQueryClient.ts b/examples/chain-template-spawn/hooks/voting/useRpcQueryClient.ts
new file mode 100644
index 000000000..b38dc51ea
--- /dev/null
+++ b/examples/chain-template-spawn/hooks/voting/useRpcQueryClient.ts
@@ -0,0 +1,18 @@
+import { cosmos } from 'interchain-query';
+import { useQuery } from '@tanstack/react-query';
+import { useQueryHooks } from './useQueryHooks';
+
+const { createRPCQueryClient } = cosmos.ClientFactory;
+
+export const useRpcQueryClient = (chainName: string) => {
+ const { rpcEndpoint } = useQueryHooks(chainName);
+
+ const rpcQueryClientQuery = useQuery({
+ queryKey: ['rpcQueryClient', rpcEndpoint],
+ queryFn: () => createRPCQueryClient({ rpcEndpoint: rpcEndpoint || '' }),
+ enabled: Boolean(rpcEndpoint),
+ staleTime: Infinity,
+ });
+
+ return { rpcQueryClient: rpcQueryClientQuery.data };
+};
diff --git a/examples/chain-template-spawn/hooks/voting/useVoting.ts b/examples/chain-template-spawn/hooks/voting/useVoting.ts
new file mode 100644
index 000000000..f6988dc0f
--- /dev/null
+++ b/examples/chain-template-spawn/hooks/voting/useVoting.ts
@@ -0,0 +1,69 @@
+import { useState } from 'react';
+import { cosmos } from 'interchain-query';
+import { toast } from '@interchain-ui/react';
+import { useChain } from '@cosmos-kit/react';
+import { coins, StdFee } from '@cosmjs/stargate';
+import { Proposal } from 'interchain-query/cosmos/gov/v1/gov';
+import { getNativeAsset } from '@/utils';
+import { useVotingTx } from './useVotingTx';
+
+const MessageComposer = cosmos.gov.v1beta1.MessageComposer;
+
+export type useVotingOptions = {
+ chainName: string;
+ proposal: Proposal;
+};
+
+export type onVoteOptions = {
+ option: number;
+ success?: () => void;
+ error?: () => void;
+};
+
+export function useVoting({ chainName, proposal }: useVotingOptions) {
+ const { tx } = useVotingTx(chainName);
+ const { address, assets } = useChain(chainName);
+ const [isVoting, setIsVoting] = useState(false);
+
+ const coin = getNativeAsset(assets!);
+
+ async function onVote({
+ option,
+ success = () => {},
+ error = () => {},
+ }: onVoteOptions) {
+ if (!address || !option) return;
+
+ const msg = MessageComposer.fromPartial.vote({
+ option,
+ voter: address,
+ proposalId: proposal.id,
+ });
+
+ const fee: StdFee = {
+ amount: coins('1000', coin.base),
+ gas: '100000',
+ };
+
+ try {
+ setIsVoting(true);
+ const res = await tx([msg], { fee });
+ if (res.error) {
+ error();
+ console.error(res.error);
+ toast.error(res.errorMsg);
+ } else {
+ success();
+ toast.success('Vote successful');
+ }
+ } catch (e) {
+ error();
+ console.error(e);
+ toast.error('Vote failed');
+ } finally {
+ setIsVoting(false);
+ }
+ }
+
+ return { isVoting, onVote };
+}
diff --git a/examples/chain-template-spawn/hooks/voting/useVotingData.ts b/examples/chain-template-spawn/hooks/voting/useVotingData.ts
new file mode 100644
index 000000000..aae05fd1b
--- /dev/null
+++ b/examples/chain-template-spawn/hooks/voting/useVotingData.ts
@@ -0,0 +1,195 @@
+import { useEffect, useMemo, useState } from 'react';
+import { useChain } from '@cosmos-kit/react';
+import { useQueries } from '@tanstack/react-query';
+import { ProposalStatus } from 'interchain-query/cosmos/gov/v1beta1/gov';
+import { Proposal as ProposalV1 } from 'interchain-query/cosmos/gov/v1/gov';
+import { useQueryHooks, useRpcQueryClient } from '.';
+import { getTitle, paginate, parseQuorum } from '@/utils';
+import { chains } from 'chain-registry'
+
+(BigInt.prototype as any).toJSON = function () {
+ return this.toString();
+};
+
+export interface Votes {
+ [key: string]: number;
+}
+
+export function processProposals(proposals: ProposalV1[]) {
+ const sorted = proposals.sort(
+ (a, b) => Number(b.id) - Number(a.id)
+ );
+
+ proposals.forEach((proposal) => {
+ // @ts-ignore
+ if (!proposal.content?.title && proposal.content?.value) {
+ // @ts-ignore
+ proposal.content.title = getTitle(proposal.content?.value);
+ }
+ });
+
+ return sorted.filter(
+ ({ status }) => status === ProposalStatus.PROPOSAL_STATUS_VOTING_PERIOD
+ ).concat(sorted.filter(
+ ({ status }) => status !== ProposalStatus.PROPOSAL_STATUS_VOTING_PERIOD
+ ));
+};
+
+export function useVotingData(chainName: string) {
+ const [isLoading, setIsLoading] = useState(false);
+ const { address } = useChain(chainName);
+ const { rpcQueryClient } = useRpcQueryClient(chainName);
+ const { cosmos, isReady, isFetching } = useQueryHooks(chainName);
+ const chain = chains.find((c) => c.chain_name === chainName);
+
+ const proposalsQuery = cosmos.gov.v1.useProposals({
+ request: {
+ voter: '',
+ depositor: '',
+ pagination: paginate(50n, true),
+ proposalStatus: ProposalStatus.PROPOSAL_STATUS_UNSPECIFIED,
+ },
+ options: {
+ enabled: isReady,
+ staleTime: Infinity,
+ select: ({ proposals }) => processProposals(proposals),
+ },
+ });
+
+ const bondedTokensQuery = cosmos.staking.v1beta1.usePool({
+ options: {
+ enabled: isReady,
+ staleTime: Infinity,
+ select: ({ pool }) => pool?.bondedTokens,
+ },
+ });
+
+ const quorumQuery = cosmos.gov.v1.useParams({
+ request: { paramsType: 'tallying' },
+ options: {
+ enabled: isReady,
+ staleTime: Infinity,
+ select: ({ tallyParams }) => parseQuorum(tallyParams?.quorum as any),
+ },
+ });
+
+ const votedProposalsQuery = cosmos.gov.v1.useProposals({
+ request: {
+ voter: address || '/', // use '/' to differentiate from proposalsQuery
+ depositor: '',
+ pagination: paginate(50n, true),
+ proposalStatus: ProposalStatus.PROPOSAL_STATUS_UNSPECIFIED,
+ },
+ options: {
+ enabled: isReady && Boolean(address),
+ select: ({ proposals }) => proposals,
+ keepPreviousData: true,
+ },
+ });
+
+ const votesQueries = useQueries({
+ queries: (votedProposalsQuery.data || []).map(({ id }) => ({
+ queryKey: ['voteQuery', id, address],
+ queryFn: () =>
+ rpcQueryClient?.cosmos.gov.v1.vote({
+ proposalId: id,
+ voter: address || '',
+ }),
+ enabled: Boolean(rpcQueryClient) && Boolean(address) && Boolean(votedProposalsQuery.data),
+ keepPreviousData: true,
+ })),
+ });
+
+ const singleQueries = {
+ quorum: quorumQuery,
+ proposals: proposalsQuery,
+ bondedTokens: bondedTokensQuery,
+ votedProposals: votedProposalsQuery,
+ };
+
+ const staticQueries = [
+ singleQueries.quorum,
+ singleQueries.proposals,
+ singleQueries.bondedTokens,
+ ];
+
+ const dynamicQueries = [singleQueries.votedProposals];
+
+ useEffect(() => {
+ staticQueries.forEach((query) => query.remove());
+ // eslint-disable-next-line react-hooks/exhaustive-deps
+ }, [chainName]);
+
+ const isStaticQueriesFetching = staticQueries.some(
+ ({ isFetching }) => isFetching
+ );
+
+ const isDynamicQueriesFetching =
+ singleQueries.votedProposals.isFetching ||
+ votesQueries.some(({ isFetching }) => isFetching);
+
+ const loading =
+ isFetching || isStaticQueriesFetching || isDynamicQueriesFetching;
+
+ useEffect(() => {
+ // no loading when refetching
+ if (isFetching || isStaticQueriesFetching) setIsLoading(true);
+ if (!loading) setIsLoading(false);
+ }, [isStaticQueriesFetching, loading]);
+
+ type SingleQueries = typeof singleQueries;
+
+ type SingleQueriesData = {
+ [Key in keyof SingleQueries]: NonNullable;
+ };
+
+ const singleQueriesData = useMemo(() => {
+ if (isStaticQueriesFetching || !isReady) return;
+
+ const singleQueriesData = Object.fromEntries(
+ Object.entries(singleQueries).map(([key, query]) => [key, query.data])
+ ) as SingleQueriesData;
+
+ singleQueriesData?.proposals.forEach((proposal) => {
+ if (proposal.status === ProposalStatus.PROPOSAL_STATUS_VOTING_PERIOD) {
+ (async () => {
+ for (const { address } of chain?.apis?.rest || []) {
+ const api = `${address}/cosmos/gov/v1/proposals/${Number(proposal.id)}/tally`
+ try {
+ const tally = (await (await fetch(api)).json()).tally
+ if (!tally) {
+ continue
+ }
+ proposal.finalTallyResult = {
+ yesCount: tally.yes_count,
+ noCount: tally.no_count,
+ abstainCount: tally.abstain_count,
+ noWithVetoCount: tally.no_with_veto_count,
+ }
+ break
+ } catch (e) {
+ console.error('error fetch tally', api)
+ }
+ }
+ })()
+ }
+ })
+
+ return singleQueriesData
+ }, [isStaticQueriesFetching, isReady]);
+
+ const votes = useMemo(() => {
+ const votesEntries = votesQueries
+ .map((query) => query.data)
+ .map((data) => [data?.vote?.proposalId, data?.vote?.options[0].option]);
+
+ return Object.fromEntries(votesEntries) as Votes;
+ }, [votesQueries]);
+
+ const refetch = () => {
+ votesQueries.forEach((query) => query.remove());
+ dynamicQueries.forEach((query) => query.refetch());
+ };
+
+ return { data: { ...singleQueriesData, votes }, isLoading, refetch };
+}
\ No newline at end of file
diff --git a/examples/chain-template-spawn/hooks/voting/useVotingTx.ts b/examples/chain-template-spawn/hooks/voting/useVotingTx.ts
new file mode 100644
index 000000000..1a9ceae2f
--- /dev/null
+++ b/examples/chain-template-spawn/hooks/voting/useVotingTx.ts
@@ -0,0 +1,83 @@
+import { cosmos } from 'interchain-query';
+import { useChain } from '@cosmos-kit/react';
+import {
+ DeliverTxResponse,
+ isDeliverTxSuccess,
+ StdFee,
+} from '@cosmjs/stargate';
+
+export type Msg = {
+ typeUrl: string;
+ value: { [key: string]: any };
+};
+
+export type TxOptions = {
+ fee?: StdFee;
+};
+
+export class TxError extends Error {
+ constructor(message: string = 'Tx Error', options?: ErrorOptions) {
+ super(message, options);
+ this.name = 'TxError';
+ }
+}
+
+export class TxResult {
+ error?: TxError;
+ response?: DeliverTxResponse;
+
+ constructor({ error, response }: Pick) {
+ this.error = error;
+ this.response = response;
+ }
+
+ get errorMsg() {
+ return this.isOutOfGas
+ ? `Out of gas. gasWanted: ${this.response?.gasWanted} gasUsed: ${this.response?.gasUsed}`
+ : this.error?.message || 'Vote Failed';
+ }
+
+ get isSuccess() {
+ return this.response && isDeliverTxSuccess(this.response);
+ }
+
+ get isOutOfGas() {
+ return this.response && this.response.gasUsed > this.response.gasWanted;
+ }
+}
+
+export function useVotingTx(chainName: string) {
+ const { address, getSigningStargateClient, estimateFee } =
+ useChain(chainName);
+
+ async function tx(msgs: Msg[], options: TxOptions = {}) {
+ if (!address) {
+ return new TxResult({ error: new TxError('Wallet not connected') });
+ }
+
+ try {
+ const txRaw = cosmos.tx.v1beta1.TxRaw;
+ const fee = options.fee || (await estimateFee(msgs));
+ const client = await getSigningStargateClient();
+ const signed = await client.sign(address, msgs, fee, '');
+
+ if (!client)
+ return new TxResult({ error: new TxError('Invalid stargate client') });
+ if (!signed)
+ return new TxResult({ error: new TxError('Invalid transaction') });
+
+ // @ts-ignore
+ const response: DeliverTxResponse = await client.broadcastTx(
+ Uint8Array.from(txRaw.encode(signed).finish())
+ );
+
+ return isDeliverTxSuccess(response)
+ ? new TxResult({ response })
+ : new TxResult({ response, error: new TxError(response.rawLog) });
+ } catch (e: any) {
+ return new TxResult({ error: new TxError(e.message || 'Tx Error') });
+ }
+ }
+
+ return { tx };
+}
diff --git a/examples/chain-template-spawn/next.config.js b/examples/chain-template-spawn/next.config.js
new file mode 100644
index 000000000..ca7fb5f70
--- /dev/null
+++ b/examples/chain-template-spawn/next.config.js
@@ -0,0 +1,13 @@
+/** @type {import('next').NextConfig} */
+
+module.exports = {
+ reactStrictMode: true,
+ swcMinify: true,
+ images: {
+ remotePatterns: [
+ {
+ hostname: 'raw.githubusercontent.com',
+ },
+ ],
+ },
+};
diff --git a/examples/chain-template-spawn/package.json b/examples/chain-template-spawn/package.json
new file mode 100644
index 000000000..f2d215129
--- /dev/null
+++ b/examples/chain-template-spawn/package.json
@@ -0,0 +1,60 @@
+{
+ "name": "@cosmology/chain-template-spawn",
+ "version": "1.0.0",
+ "private": true,
+ "scripts": {
+ "dev": "next dev",
+ "build": "next build",
+ "start": "next start",
+ "lint": "next lint",
+ "locks:remove": "rm -f yarn.lock",
+ "locks:create": "generate-lockfile --lockfile ../../yarn.lock --package package.json --write yarn.lock --force",
+ "locks": "npm run locks:remove && npm run locks:create"
+ },
+ "resolutions": {
+ "react": "18.2.0",
+ "react-dom": "18.2.0",
+ "@types/react": "18.0.25",
+ "@types/react-dom": "18.0.9"
+ },
+ "dependencies": {
+ "@chain-registry/assets": "1.63.5",
+ "@chain-registry/osmosis": "1.61.3",
+ "@cosmjs/amino": "0.32.3",
+ "@cosmjs/cosmwasm-stargate": "0.32.3",
+ "@cosmjs/stargate": "0.31.1",
+ "@cosmos-kit/react": "2.18.0",
+ "@interchain-ui/react": "1.23.31",
+ "@interchain-ui/react-no-ssr": "0.1.2",
+ "@tanstack/react-query": "4.32.0",
+ "ace-builds": "1.35.0",
+ "bignumber.js": "9.1.2",
+ "chain-registry": "1.62.3",
+ "cosmos-kit": "2.18.4",
+ "dayjs": "1.11.11",
+ "interchain-query": "1.10.1",
+ "next": "^13",
+ "node-gzip": "^1.1.2",
+ "osmo-query": "16.5.1",
+ "react": "18.2.0",
+ "react-ace": "11.0.1",
+ "react-dom": "18.2.0",
+ "react-dropzone": "^14.2.3",
+ "react-icons": "5.2.1",
+ "react-markdown": "9.0.1",
+ "zustand": "4.5.2"
+ },
+ "devDependencies": {
+ "@chain-registry/types": "0.44.3",
+ "@keplr-wallet/types": "^0.12.111",
+ "@tanstack/react-query-devtools": "4.32.0",
+ "@types/node": "18.11.9",
+ "@types/node-gzip": "^1",
+ "@types/react": "18.0.25",
+ "@types/react-dom": "18.0.9",
+ "eslint": "8.28.0",
+ "eslint-config-next": "13.0.5",
+ "generate-lockfile": "0.0.12",
+ "typescript": "4.9.3"
+ }
+}
diff --git a/examples/chain-template-spawn/pages/_app.tsx b/examples/chain-template-spawn/pages/_app.tsx
new file mode 100644
index 000000000..2bb1827e6
--- /dev/null
+++ b/examples/chain-template-spawn/pages/_app.tsx
@@ -0,0 +1,64 @@
+import '../styles/globals.css';
+import '@interchain-ui/react/styles';
+
+import type { AppProps } from 'next/app';
+import { ChainProvider } from '@cosmos-kit/react';
+import { QueryClientProvider, QueryClient } from '@tanstack/react-query';
+// import { ReactQueryDevtools } from '@tanstack/react-query-devtools';
+import { Box, Toaster, useTheme } from '@interchain-ui/react';
+import { chains, assets } from 'chain-registry';
+
+import { CustomThemeProvider, Layout } from '@/components';
+import { wallets } from '@/config';
+import { getSignerOptions } from '@/utils';
+
+const queryClient = new QueryClient({
+ defaultOptions: {
+ queries: {
+ retry: 2,
+ refetchOnMount: false,
+ refetchOnWindowFocus: false,
+ },
+ },
+});
+
+function CreateCosmosApp({ Component, pageProps }: AppProps) {
+ const { themeClass } = useTheme();
+
+ return (
+
+
+
+
+
+ {/* @ts-ignore */}
+
+
+
+
+ {/* */}
+
+
+
+ );
+}
+
+export default CreateCosmosApp;
diff --git a/examples/chain-template-spawn/pages/asset-list.tsx b/examples/chain-template-spawn/pages/asset-list.tsx
new file mode 100644
index 000000000..49ecba754
--- /dev/null
+++ b/examples/chain-template-spawn/pages/asset-list.tsx
@@ -0,0 +1,13 @@
+import { ReactNoSSR } from '@interchain-ui/react-no-ssr';
+import { AssetListSection } from '@/components';
+import { useChainStore } from '@/contexts';
+
+export default function AssetListPage() {
+ const { selectedChain } = useChainStore();
+
+ return (
+
+
+
+ );
+}
diff --git a/examples/chain-template-spawn/pages/contract.tsx b/examples/chain-template-spawn/pages/contract.tsx
new file mode 100644
index 000000000..a08a0477f
--- /dev/null
+++ b/examples/chain-template-spawn/pages/contract.tsx
@@ -0,0 +1,124 @@
+import { useState, useCallback, useEffect, useRef } from 'react';
+import { Box, Tabs } from '@interchain-ui/react';
+import { useRouter } from 'next/router';
+
+import { ExecuteTab, MyContractsTab, QueryTab } from '@/components';
+import { splitCamelCase, toKebabCase, toPascalCase } from '@/utils';
+import styles from '@/styles/comp.module.css';
+
+export enum TabLabel {
+ MyContracts,
+ Query,
+ Execute,
+}
+
+export default function Contract() {
+ const router = useRouter();
+ const [activeTab, setActiveTab] = useState(TabLabel.MyContracts);
+ const [queryAddress, setQueryAddress] = useState('');
+ const [executeAddress, setExecuteAddress] = useState('');
+ const initialTab = useRef(false);
+
+ useEffect(() => {
+ if (!initialTab.current && router.isReady) {
+ const { tab, address } = router.query;
+
+ if (typeof tab === 'string') {
+ const pascalCaseTab = toPascalCase(tab);
+ const newTab = TabLabel[pascalCaseTab as keyof typeof TabLabel];
+ if (newTab !== undefined) {
+ setActiveTab(newTab);
+ }
+
+ if (typeof address === 'string') {
+ if (newTab === TabLabel.Query) setQueryAddress(address);
+ if (newTab === TabLabel.Execute) setExecuteAddress(address);
+ }
+ }
+
+ initialTab.current = true;
+ }
+ }, [router.isReady, router.query]);
+
+ const updateUrl = useCallback(
+ (tabId: TabLabel, address?: string) => {
+ const tabName = toKebabCase(TabLabel[tabId]);
+ const query: { tab: string; address?: string } = { tab: tabName };
+ if (address) {
+ query.address = address;
+ } else {
+ delete query.address;
+ }
+ router.push({ pathname: '/contract', query }, undefined, {
+ shallow: true,
+ });
+ },
+ [router],
+ );
+
+ const handleTabChange = useCallback(
+ (tabId: TabLabel) => {
+ setActiveTab(tabId);
+ updateUrl(
+ tabId,
+ tabId === TabLabel.Query
+ ? queryAddress
+ : tabId === TabLabel.Execute
+ ? executeAddress
+ : undefined,
+ );
+ },
+ [updateUrl, queryAddress, executeAddress],
+ );
+
+ const switchTabWithAddress = useCallback(
+ (address: string, tabId: TabLabel) => {
+ if (tabId === TabLabel.Query) setQueryAddress(address);
+ if (tabId === TabLabel.Execute) setExecuteAddress(address);
+ setActiveTab(tabId);
+ updateUrl(tabId, address);
+ },
+ [updateUrl],
+ );
+
+ const handleAddressInput = useCallback(
+ (address: string) => {
+ if (activeTab === TabLabel.Query) setQueryAddress(address);
+ if (activeTab === TabLabel.Execute) setExecuteAddress(address);
+ updateUrl(activeTab, address);
+ },
+ [activeTab, updateUrl],
+ );
+
+ return (
+ <>
+ typeof v === 'string')
+ .map((label) => ({
+ label: splitCamelCase(label as string),
+ content: undefined,
+ }))}
+ activeTab={activeTab}
+ onActiveTabChange={handleTabChange}
+ className={styles.tabs}
+ />
+
+
+
+
+
+ >
+ );
+}
diff --git a/examples/chain-template-spawn/pages/disclaimer.tsx b/examples/chain-template-spawn/pages/disclaimer.tsx
new file mode 100644
index 000000000..57962147d
--- /dev/null
+++ b/examples/chain-template-spawn/pages/disclaimer.tsx
@@ -0,0 +1,109 @@
+import { Box, Text } from '@interchain-ui/react';
+
+export default function Disclaimer() {
+ return (
+
+ Disclaimer
+ No Investment Advice
+
+ The information provided on this website does not constitute investment
+ advice, financial advice, trading advice, or any other sort of advice
+ and you should not treat any of the website's content as such.
+ Cosmology does not recommend that any cryptocurrency should be bought,
+ sold, or held by you. Do conduct your own due diligence and consult your
+ financial advisor before making any investment decisions.
+
+ Accuracy of Information
+
+ Cosmology will strive to ensure accuracy of information listed on this
+ website although it will not hold any responsibility for any missing or
+ wrong information. Cosmology provides all information as is. You
+ understand that you are using any and all information available here at
+ your own risk.
+
+ Risk Statement
+
+ The trading of cryptocurrencies has potential rewards, and it also has
+ potential risks involved. Trading may not be suitable for all people.
+ Anyone wishing to invest should seek his or her own independent
+ financial or professional advice.
+
+ Tax Compliance
+
+ The users of Cosmology app are solely responsible to determinate what,
+ if any, taxes apply to their cryptocurrency transactions. The owners of,
+ or contributors to, the Cosmology app are NOT responsible for
+ determining the taxes that apply to cryptocurrency transactions.
+
+ Software Disclaimer
+
+ Cosmology leverages decentralized peer-to-peer blockchains that people
+ can use to create liquidity and trade IBC enabled tokens. These
+ blockchains are made up of free, public, and open-source software. Your
+ use of Cosmology involves various risks, including, but not limited, to
+ losses while digital assets are being supplied to liquidity pools and
+ losses due to the fluctuation of prices of tokens in a trading pair or
+ liquidity pool, including Impermanence Loss. Before using any pool on
+ these blockchains, you should review the relevant documentation to make
+ sure you understand how they work, and the pool you use on each
+ blockchain works. Additionally, just as you can access email protocols,
+ such as SMTP, through multiple email clients, you can access pools on
+ the blockchain through several web or mobile interfaces. You are
+ responsible for doing your own diligence on those interfaces to
+ understand the fees and risks they present. AS DESCRIBED IN THE
+ COSMOLOGY LICENSES, THE SOFTWARE IS PROVIDED “AS IS”, AT YOUR OWN RISK,
+ AND WITHOUT WARRANTIES OF ANY KIND. Although Web, Inc. ( “Web Incubator”
+ ) developed much of the initial code for the Cosmology app, it does not
+ provide, own, or control the leveraged blockchain protocols, which are
+ run by decentralized validator sets. Upgrades and modifications to these
+ protocol are managed in a community-driven way by holders of various
+ governance tokens. No developer or entity involved in creating Cosmology
+ will be liable for any claims or damages whatsoever associated with your
+ use, inability to use, or your interaction with other users of the
+ Cosmology app, including any direct, indirect, incidental, special,
+ exemplary, punitive or consequential damages, or loss of profits,
+ cryptocurrencies, tokens, or anything else of value.
+
+
+ );
+}
+
+const Title = ({ children }: { children: string }) => {
+ return (
+
+ {children}
+
+ );
+};
+
+const SectionTitle = ({ children }: { children: string }) => {
+ return (
+
+ {children}
+
+ );
+};
+
+const SectionBody = ({ children }: { children: string }) => {
+ return (
+
+ {children}
+
+ );
+};
diff --git a/examples/chain-template-spawn/pages/docs.tsx b/examples/chain-template-spawn/pages/docs.tsx
new file mode 100644
index 000000000..a400279d0
--- /dev/null
+++ b/examples/chain-template-spawn/pages/docs.tsx
@@ -0,0 +1,125 @@
+import Link from 'next/link';
+import { useState } from 'react';
+import { Box, Icon, Tabs, Text } from '@interchain-ui/react';
+
+import styles from '@/styles/utils.module.css';
+import { ProductCategory, products } from '@/config';
+import { useDetectBreakpoints } from '@/hooks';
+
+type Tab = {
+ label: string;
+ category: ProductCategory | null;
+};
+
+const tabs: Tab[] = [
+ {
+ label: 'All',
+ category: null,
+ },
+ {
+ label: 'CosmWasm',
+ category: 'cosmwasm',
+ },
+ {
+ label: 'Cosmos SDK',
+ category: 'cosmos-sdk',
+ },
+ {
+ label: 'Frontend & UI',
+ category: 'frontend',
+ },
+ {
+ label: 'Testing',
+ category: 'testing',
+ },
+];
+
+export default function DocsPage() {
+ const [activeTab, setActiveTab] = useState(0);
+
+ const { isTablet, isMobile } = useDetectBreakpoints();
+
+ const filteredProducts = products.filter(
+ (product) =>
+ tabs[activeTab].category === null ||
+ product.category === tabs[activeTab].category
+ );
+
+ return (
+
+ ({ label, content: undefined }))}
+ activeTab={activeTab}
+ onActiveTabChange={(tabId) => setActiveTab(tabId)}
+ />
+
+ {filteredProducts.map(({ name, link, description }) => (
+
+ ))}
+
+
+ );
+}
+
+const ProductItem = ({
+ name,
+ link,
+ description,
+}: {
+ name: string;
+ description: string;
+ link: string;
+}) => {
+ return (
+
+
+
+
+ {name}
+
+
+
+
+ {description}
+
+
+
+ );
+};
diff --git a/examples/chain-template-spawn/pages/faucet.tsx b/examples/chain-template-spawn/pages/faucet.tsx
new file mode 100644
index 000000000..6bec580ad
--- /dev/null
+++ b/examples/chain-template-spawn/pages/faucet.tsx
@@ -0,0 +1,211 @@
+import { useState } from 'react';
+import { Box, Text, TextField, TextFieldAddon } from '@interchain-ui/react';
+import { useChain } from '@cosmos-kit/react';
+
+import { Button } from '@/components';
+import { useChainStore } from '@/contexts';
+import { requestTokens, validateChainAddress } from '@/utils';
+import { useSpawnChains, useToast } from '@/hooks';
+import styles from '@/styles/comp.module.css';
+
+export default function Faucet() {
+ const [input, setInput] = useState('');
+ const [isLoading, setIsLoading] = useState(false);
+
+ const { selectedChain } = useChainStore();
+ const { address, chain } = useChain(selectedChain);
+ const { toast } = useToast();
+ const { data: spawnChains } = useSpawnChains();
+
+ const checkIsChainSupported = () => {
+ const isSpawnRunning =
+ spawnChains?.chains?.length && spawnChains?.assets?.length;
+
+ if (!isSpawnRunning) {
+ toast({
+ type: 'error',
+ title: 'Spawn is not running',
+ description: 'Faucet is only available in Spawn environment',
+ });
+ return false;
+ }
+
+ const isSpawnChain = spawnChains?.chains?.some(
+ (c) => c.chain_id === chain.chain_id,
+ );
+
+ if (!isSpawnChain) {
+ toast({
+ type: 'error',
+ title: 'Chain is not supported',
+ description: 'Faucet is only available for Spawn chains',
+ });
+ return false;
+ }
+
+ return true;
+ };
+
+ const inputErrMsg = input
+ ? validateChainAddress(input, chain.bech32_prefix)
+ : null;
+
+ const handleGetTokens = async () => {
+ if (!address || !checkIsChainSupported()) return;
+
+ setIsLoading(true);
+
+ try {
+ const res = await requestTokens(chain.chain_id, address);
+ if (res.error) {
+ throw new Error(res.error);
+ }
+
+ toast({
+ type: 'success',
+ title: 'Tokens credited',
+ });
+ } catch (error: any) {
+ console.error(error);
+ toast({
+ type: 'error',
+ title: 'Failed to get tokens',
+ description: error.message,
+ });
+ } finally {
+ setIsLoading(false);
+ }
+ };
+
+ const isButtonDisabled = !input || !!inputErrMsg || !address;
+
+ return (
+ <>
+
+ Faucet
+
+
+ Get test tokens for building applications
+
+
+
+ Address
+
+
+
+ setInput(e.target.value)}
+ placeholder="Enter your address"
+ intent={inputErrMsg ? 'error' : 'default'}
+ autoComplete="off"
+ inputClassName={styles['input-pr']}
+ endAddon={
+
+
+
+
+
+ }
+ />
+ {inputErrMsg && (
+
+ {inputErrMsg}
+
+ )}
+
+
+
+
+
+ FAQ
+
+
+
+ {faqs.map(({ question, answer }) => (
+
+ ))}
+
+
+ >
+ );
+}
+
+const faqs = [
+ {
+ question: 'What is faucet?',
+ answer:
+ 'A crypto faucet is a website or application that rewards you with cryptocurrency for completing simple tasks.',
+ },
+ {
+ question: 'How can I get test tokens?',
+ answer:
+ 'The Faucet dispenses a small number of test tokens after you claimed.',
+ },
+];
+
+const FaqItem = ({
+ question,
+ answer,
+}: {
+ question: string;
+ answer: string;
+}) => {
+ return (
+
+
+ {question}
+
+
+ {answer}
+
+
+ );
+};
diff --git a/examples/chain-template-spawn/pages/governance.tsx b/examples/chain-template-spawn/pages/governance.tsx
new file mode 100644
index 000000000..4050cf7d2
--- /dev/null
+++ b/examples/chain-template-spawn/pages/governance.tsx
@@ -0,0 +1,13 @@
+import { ReactNoSSR } from '@interchain-ui/react-no-ssr';
+import { Voting } from '@/components';
+import { useChainStore } from '@/contexts';
+
+export default function GovernancePage() {
+ const { selectedChain } = useChainStore();
+
+ return (
+
+
+
+ );
+}
diff --git a/examples/chain-template-spawn/pages/index.tsx b/examples/chain-template-spawn/pages/index.tsx
new file mode 100644
index 000000000..43bc321dc
--- /dev/null
+++ b/examples/chain-template-spawn/pages/index.tsx
@@ -0,0 +1,73 @@
+import Image from 'next/image';
+import { Box, Text, useColorModeValue } from '@interchain-ui/react';
+import { useChain } from '@cosmos-kit/react';
+
+import { Button } from '@/components';
+import { useChainStore } from '@/contexts';
+import { useDetectBreakpoints } from '@/hooks';
+
+export default function Home() {
+ const { isMobile } = useDetectBreakpoints();
+ const { selectedChain } = useChainStore();
+ const { connect, isWalletConnected, openView } = useChain(selectedChain);
+
+ const chainsImageSrc = useColorModeValue(
+ '/images/chains.png',
+ '/images/chains-dark.png'
+ );
+
+ return (
+ <>
+
+ Create Cosmos App
+
+
+ Welcome to Cosmos Kit +{' '}
+ Next.js
+
+
+
+
+
+ >
+ );
+}
+
+const HighlightText = ({ children }: { children: string }) => {
+ return (
+
+ {children}
+
+ );
+};
diff --git a/examples/chain-template-spawn/pages/staking.tsx b/examples/chain-template-spawn/pages/staking.tsx
new file mode 100644
index 000000000..51057e7b1
--- /dev/null
+++ b/examples/chain-template-spawn/pages/staking.tsx
@@ -0,0 +1,13 @@
+import { ReactNoSSR } from '@interchain-ui/react-no-ssr';
+import { useChainStore } from '@/contexts';
+import { StakingSection } from '@/components';
+
+export default function StakingPage() {
+ const { selectedChain } = useChainStore();
+
+ return (
+
+
+
+ );
+}
diff --git a/examples/chain-template-spawn/public/images/chains-dark.png b/examples/chain-template-spawn/public/images/chains-dark.png
new file mode 100644
index 000000000..287c0ae4c
Binary files /dev/null and b/examples/chain-template-spawn/public/images/chains-dark.png differ
diff --git a/examples/chain-template-spawn/public/images/chains.png b/examples/chain-template-spawn/public/images/chains.png
new file mode 100644
index 000000000..71de98c3e
Binary files /dev/null and b/examples/chain-template-spawn/public/images/chains.png differ
diff --git a/examples/chain-template-spawn/public/images/contract-file-dark.svg b/examples/chain-template-spawn/public/images/contract-file-dark.svg
new file mode 100644
index 000000000..bede0b527
--- /dev/null
+++ b/examples/chain-template-spawn/public/images/contract-file-dark.svg
@@ -0,0 +1,14 @@
+
diff --git a/examples/chain-template-spawn/public/images/contract-file.svg b/examples/chain-template-spawn/public/images/contract-file.svg
new file mode 100644
index 000000000..e2bfcc6fb
--- /dev/null
+++ b/examples/chain-template-spawn/public/images/contract-file.svg
@@ -0,0 +1,14 @@
+
diff --git a/examples/chain-template-spawn/public/images/empty.svg b/examples/chain-template-spawn/public/images/empty.svg
new file mode 100644
index 000000000..fec305ff8
--- /dev/null
+++ b/examples/chain-template-spawn/public/images/empty.svg
@@ -0,0 +1,5 @@
+
\ No newline at end of file
diff --git a/examples/chain-template-spawn/public/images/favicon.ico b/examples/chain-template-spawn/public/images/favicon.ico
new file mode 100644
index 000000000..d7b1d76a3
Binary files /dev/null and b/examples/chain-template-spawn/public/images/favicon.ico differ
diff --git a/examples/chain-template-spawn/public/images/upload-dark.svg b/examples/chain-template-spawn/public/images/upload-dark.svg
new file mode 100644
index 000000000..be53406cc
--- /dev/null
+++ b/examples/chain-template-spawn/public/images/upload-dark.svg
@@ -0,0 +1,4 @@
+
diff --git a/examples/chain-template-spawn/public/images/upload.svg b/examples/chain-template-spawn/public/images/upload.svg
new file mode 100644
index 000000000..388c40354
--- /dev/null
+++ b/examples/chain-template-spawn/public/images/upload.svg
@@ -0,0 +1,4 @@
+
diff --git a/examples/chain-template-spawn/public/logos/brand-logo-dark.svg b/examples/chain-template-spawn/public/logos/brand-logo-dark.svg
new file mode 100644
index 000000000..e6d02d4d6
--- /dev/null
+++ b/examples/chain-template-spawn/public/logos/brand-logo-dark.svg
@@ -0,0 +1,8 @@
+
diff --git a/examples/chain-template-spawn/public/logos/brand-logo-sm-dark.svg b/examples/chain-template-spawn/public/logos/brand-logo-sm-dark.svg
new file mode 100644
index 000000000..458760972
--- /dev/null
+++ b/examples/chain-template-spawn/public/logos/brand-logo-sm-dark.svg
@@ -0,0 +1,12 @@
+
diff --git a/examples/chain-template-spawn/public/logos/brand-logo-sm.svg b/examples/chain-template-spawn/public/logos/brand-logo-sm.svg
new file mode 100644
index 000000000..a692bc2db
--- /dev/null
+++ b/examples/chain-template-spawn/public/logos/brand-logo-sm.svg
@@ -0,0 +1,12 @@
+
diff --git a/examples/chain-template-spawn/public/logos/brand-logo.svg b/examples/chain-template-spawn/public/logos/brand-logo.svg
new file mode 100644
index 000000000..719d5891b
--- /dev/null
+++ b/examples/chain-template-spawn/public/logos/brand-logo.svg
@@ -0,0 +1,8 @@
+
diff --git a/examples/chain-template-spawn/public/logos/cosmology-dark.svg b/examples/chain-template-spawn/public/logos/cosmology-dark.svg
new file mode 100644
index 000000000..bf63a61e8
--- /dev/null
+++ b/examples/chain-template-spawn/public/logos/cosmology-dark.svg
@@ -0,0 +1,18 @@
+
diff --git a/examples/chain-template-spawn/public/logos/cosmology.svg b/examples/chain-template-spawn/public/logos/cosmology.svg
new file mode 100644
index 000000000..2bf50f5be
--- /dev/null
+++ b/examples/chain-template-spawn/public/logos/cosmology.svg
@@ -0,0 +1,18 @@
+
diff --git a/examples/chain-template-spawn/styles/comp.module.css b/examples/chain-template-spawn/styles/comp.module.css
new file mode 100644
index 000000000..f4f953033
--- /dev/null
+++ b/examples/chain-template-spawn/styles/comp.module.css
@@ -0,0 +1,17 @@
+.tabs {
+ width: 100%;
+}
+
+.tabs ul {
+ max-width: 600px;
+ min-width: auto;
+ margin: 0 auto;
+}
+
+.input-pl {
+ padding-left: 36px;
+}
+
+.input-pr {
+ padding-right: 66px;
+}
diff --git a/examples/chain-template-spawn/styles/globals.css b/examples/chain-template-spawn/styles/globals.css
new file mode 100644
index 000000000..e5e2dcc23
--- /dev/null
+++ b/examples/chain-template-spawn/styles/globals.css
@@ -0,0 +1,16 @@
+html,
+body {
+ padding: 0;
+ margin: 0;
+ font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen,
+ Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif;
+}
+
+a {
+ color: inherit;
+ text-decoration: none;
+}
+
+* {
+ box-sizing: border-box;
+}
diff --git a/examples/chain-template-spawn/styles/layout.module.css b/examples/chain-template-spawn/styles/layout.module.css
new file mode 100644
index 000000000..dd0895bcd
--- /dev/null
+++ b/examples/chain-template-spawn/styles/layout.module.css
@@ -0,0 +1,3 @@
+.layout {
+ padding-left: calc(100vw - 100%); /* prevent scrollbar layout shift */
+}
diff --git a/examples/chain-template-spawn/styles/utils.module.css b/examples/chain-template-spawn/styles/utils.module.css
new file mode 100644
index 000000000..a6a6583cc
--- /dev/null
+++ b/examples/chain-template-spawn/styles/utils.module.css
@@ -0,0 +1,9 @@
+.threeLineClamp {
+ display: -webkit-box;
+ line-clamp: 3;
+ -webkit-line-clamp: 3;
+ -webkit-box-orient: vertical;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: normal;
+}
diff --git a/examples/chain-template-spawn/tsconfig.json b/examples/chain-template-spawn/tsconfig.json
new file mode 100644
index 000000000..61581e45d
--- /dev/null
+++ b/examples/chain-template-spawn/tsconfig.json
@@ -0,0 +1,24 @@
+{
+ "compilerOptions": {
+ "target": "ES2020",
+ "lib": ["dom", "dom.iterable", "esnext"],
+ "allowJs": true,
+ "skipLibCheck": true,
+ "strict": true,
+ "forceConsistentCasingInFileNames": true,
+ "noEmit": true,
+ "esModuleInterop": true,
+ "module": "esnext",
+ "moduleResolution": "node",
+ "resolveJsonModule": true,
+ "isolatedModules": true,
+ "jsx": "preserve",
+ "incremental": true,
+ "baseUrl": ".",
+ "paths": {
+ "@/*": ["*"]
+ }
+ },
+ "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"],
+ "exclude": ["node_modules"]
+}
diff --git a/examples/chain-template-spawn/utils/asset-list/assets.ts b/examples/chain-template-spawn/utils/asset-list/assets.ts
new file mode 100644
index 000000000..4ce93bf00
--- /dev/null
+++ b/examples/chain-template-spawn/utils/asset-list/assets.ts
@@ -0,0 +1,8 @@
+import { asset_list, assets } from "@chain-registry/osmosis";
+import { Asset as OsmosisAsset } from "@chain-registry/types";
+
+// @ts-ignore
+export const osmosisAssets: OsmosisAsset[] = [
+ ...assets.assets,
+ ...asset_list.assets,
+];
diff --git a/examples/chain-template-spawn/utils/asset-list/base.ts b/examples/chain-template-spawn/utils/asset-list/base.ts
new file mode 100644
index 000000000..856413cda
--- /dev/null
+++ b/examples/chain-template-spawn/utils/asset-list/base.ts
@@ -0,0 +1,96 @@
+import { osmosisAssets } from './assets';
+import {
+ CoinGeckoToken,
+ CoinDenom,
+ Exponent,
+ CoinSymbol,
+ PriceHash,
+ CoinGeckoUSDResponse,
+} from './types';
+import { Asset as OsmosisAsset } from '@chain-registry/types';
+import BigNumber from 'bignumber.js';
+
+export const getOsmoAssetByDenom = (denom: CoinDenom): OsmosisAsset => {
+ return osmosisAssets.find((asset) => asset.base === denom) as OsmosisAsset;
+};
+
+export const getDenomForCoinGeckoId = (
+ coinGeckoId: CoinGeckoToken
+): CoinDenom => {
+ // @ts-ignore
+ return osmosisAssets.find((asset) => asset.coingecko_id === coinGeckoId).base;
+};
+
+export const osmoDenomToSymbol = (denom: CoinDenom): CoinSymbol => {
+ const asset = getOsmoAssetByDenom(denom);
+ const symbol = asset?.symbol;
+ if (!symbol) {
+ return denom;
+ }
+ return symbol;
+};
+
+export const symbolToOsmoDenom = (token: CoinSymbol): CoinDenom => {
+ const asset = osmosisAssets.find(({ symbol }) => symbol === token);
+ const base = asset?.base;
+ if (!base) {
+ console.log(`cannot find base for token ${token}`);
+ // @ts-ignore
+ return null;
+ }
+ return base;
+};
+
+export const getExponentByDenom = (denom: CoinDenom): Exponent => {
+ const asset = getOsmoAssetByDenom(denom);
+ const unit = asset.denom_units.find(({ denom }) => denom === asset.display);
+ // @ts-ignore
+ return unit.exponent;
+};
+
+export const convertGeckoPricesToDenomPriceHash = (
+ prices: CoinGeckoUSDResponse
+): PriceHash => {
+ return Object.keys(prices).reduce((res, geckoId) => {
+ const denom = getDenomForCoinGeckoId(geckoId);
+ // @ts-ignore
+ res[denom] = prices[geckoId].usd;
+ return res;
+ }, {});
+};
+
+export const noDecimals = (num: number | string) => {
+ return new BigNumber(num).decimalPlaces(0, BigNumber.ROUND_DOWN).toString();
+};
+
+export const baseUnitsToDollarValue = (
+ prices: PriceHash,
+ symbol: string,
+ amount: string | number
+) => {
+ const denom = symbolToOsmoDenom(symbol);
+ return new BigNumber(amount)
+ .shiftedBy(-getExponentByDenom(denom))
+ .multipliedBy(prices[denom])
+ .toString();
+};
+
+export const dollarValueToDenomUnits = (
+ prices: PriceHash,
+ symbol: string,
+ value: string | number
+) => {
+ const denom = symbolToOsmoDenom(symbol);
+ return new BigNumber(value)
+ .dividedBy(prices[denom])
+ .shiftedBy(getExponentByDenom(denom))
+ .toString();
+};
+
+export const baseUnitsToDisplayUnits = (
+ symbol: string,
+ amount: string | number
+) => {
+ const denom = symbolToOsmoDenom(symbol);
+ return new BigNumber(amount).shiftedBy(-getExponentByDenom(denom)).toString();
+};
diff --git a/examples/chain-template-spawn/utils/asset-list/format.ts b/examples/chain-template-spawn/utils/asset-list/format.ts
new file mode 100644
index 000000000..c5fb7036d
--- /dev/null
+++ b/examples/chain-template-spawn/utils/asset-list/format.ts
@@ -0,0 +1,31 @@
+import BigNumber from 'bignumber.js';
+import { PrettyAsset } from '@/components';
+import { AvailableItem } from '@interchain-ui/react';
+
+export const truncDecimals = (
+ val: string | number | undefined,
+ decimals: number
+) => {
+ return new BigNumber(val || 0).decimalPlaces(decimals).toString();
+};
+
+export const formatDollarValue = (dollarValue: string, amount: string) => {
+ return new BigNumber(dollarValue).gt(0.01)
+ ? '$' + truncDecimals(dollarValue, 2)
+ : new BigNumber(amount).gt(0)
+ ? '< $0.01'
+ : '$0';
+};
+
+export const prettyAssetToTransferItem = (from: PrettyAsset): AvailableItem => {
+ return {
+ imgSrc: from.logoUrl ?? '',
+ symbol: from.symbol,
+ name: from.prettyChainName,
+ denom: from.denom,
+ available: new BigNumber(from.displayAmount).toNumber(),
+ priceDisplayAmount: new BigNumber(
+ truncDecimals(from.dollarValue, 2)
+ ).toNumber(),
+ };
+};
diff --git a/examples/chain-template-spawn/utils/asset-list/index.ts b/examples/chain-template-spawn/utils/asset-list/index.ts
new file mode 100644
index 000000000..8a42ed6d7
--- /dev/null
+++ b/examples/chain-template-spawn/utils/asset-list/index.ts
@@ -0,0 +1,5 @@
+export * from './pool';
+export * from './base';
+export * from './assets';
+export * from './format';
+export * from './types';
diff --git a/examples/chain-template-spawn/utils/asset-list/pool.ts b/examples/chain-template-spawn/utils/asset-list/pool.ts
new file mode 100644
index 000000000..0d5114402
--- /dev/null
+++ b/examples/chain-template-spawn/utils/asset-list/pool.ts
@@ -0,0 +1,279 @@
+import { Pool } from 'osmo-query/dist/codegen/osmosis/gamm/pool-models/balancer/balancerPool';
+import { Coin } from 'osmo-query/dist/codegen/cosmos/base/v1beta1/coin';
+import {
+ PriceHash,
+ CoinValue,
+ PoolPretty,
+ CoinBalance,
+ PoolAssetPretty,
+ PrettyPair,
+} from './types';
+import BigNumber from 'bignumber.js';
+import { osmosisAssets } from './assets';
+import {
+ baseUnitsToDisplayUnits,
+ baseUnitsToDollarValue,
+ dollarValueToDenomUnits,
+ getExponentByDenom,
+ osmoDenomToSymbol,
+ noDecimals,
+ getOsmoAssetByDenom,
+} from './base';
+
+export const calcPoolLiquidity = (pool: Pool, prices: PriceHash): string => {
+ return pool.poolAssets
+ .reduce((res, { token }) => {
+ const liquidity = new BigNumber(token.amount)
+ .shiftedBy(-getExponentByDenom(token.denom))
+ .multipliedBy(prices[token.denom]);
+ return res.plus(liquidity);
+ }, new BigNumber(0))
+ .toString();
+};
+
+export const getPoolByGammName = (pools: Pool[], gammId: string): Pool => {
+ return pools.find(({ totalShares: { denom } }) => denom === gammId) as Pool;
+};
+
+export const convertGammTokenToDollarValue = (
+ coin: Coin,
+ pool: Pool,
+ prices: PriceHash
+): string => {
+ const { amount } = coin;
+ const liquidity = calcPoolLiquidity(pool, prices);
+
+ return new BigNumber(liquidity)
+ .multipliedBy(amount)
+ .dividedBy(pool.totalShares!.amount)
+ .toString();
+};
+
+export const convertDollarValueToCoins = (
+ value: string | number,
+ pool: Pool,
+ prices: PriceHash
+): CoinValue[] => {
+ const tokens = pool.poolAssets.map(({ token: { denom }, weight }) => {
+ const ratio = new BigNumber(weight).dividedBy(pool.totalWeight);
+ const valueByRatio = new BigNumber(value).multipliedBy(ratio);
+ const displayAmount = valueByRatio.dividedBy(prices[denom]).toString();
+ const amount = new BigNumber(displayAmount)
+ .shiftedBy(getExponentByDenom(denom))
+ .toString();
+ const symbol = osmoDenomToSymbol(denom);
+
+ return {
+ denom,
+ symbol,
+ amount,
+ displayAmount,
+ value: valueByRatio.toString(),
+ };
+ });
+ return tokens;
+};
+
+export const convertDollarValueToShares = (
+ value: string | number,
+ pool: Pool,
+ prices: PriceHash
+) => {
+ const liquidity = calcPoolLiquidity(pool, prices);
+
+ return new BigNumber(value)
+ .multipliedBy(pool.totalShares.amount)
+ .dividedBy(liquidity)
+ .shiftedBy(-18)
+ .toString();
+};
+
+const assetHashMap = osmosisAssets.reduce((res, asset) => {
+ return { ...res, [asset.base]: asset };
+}, {});
+
+export const prettyPool = (
+ pool: Pool,
+ { includeDetails = false } = {}
+): PoolPretty => {
+ const totalWeight = new BigNumber(pool.totalWeight);
+ const tokens = pool.poolAssets.map(({ token, weight }) => {
+ // @ts-ignore
+ const asset = assetHashMap?.[token.denom];
+ const symbol = asset?.symbol ?? token.denom;
+ const ratio = new BigNumber(weight).dividedBy(totalWeight).toString();
+ const obj = {
+ symbol,
+ denom: token.denom,
+ amount: token.amount,
+ ratio,
+ info: undefined,
+ };
+ if (includeDetails) {
+ obj.info = asset;
+ }
+ return obj;
+ });
+ const value = {
+ nickname: tokens.map((t) => t.symbol).join('/'),
+ images: undefined,
+ };
+ if (includeDetails) {
+ // @ts-ignore
+ value.images = tokens
+ .map((t) => {
+ // @ts-ignore
+ const imgs = t?.info?.logo_URIs;
+ if (imgs) {
+ return {
+ token: t.symbol,
+ images: imgs,
+ };
+ }
+ })
+ .filter(Boolean);
+ }
+ // @ts-ignore
+ return {
+ ...value,
+ ...pool,
+ poolAssetsPretty: tokens,
+ };
+};
+
+export const calcCoinsNeededForValue = (
+ prices: PriceHash,
+ poolInfo: PoolPretty,
+ value: string | number
+) => {
+ const val = new BigNumber(value);
+ const coinsNeeded = poolInfo.poolAssetsPretty.map(
+ ({ symbol, amount, denom, ratio }) => {
+ const valueByRatio = val.multipliedBy(ratio).toString();
+ const amountNeeded = dollarValueToDenomUnits(
+ prices,
+ symbol,
+ valueByRatio
+ );
+ const unitRatio = new BigNumber(amountNeeded)
+ .dividedBy(amount)
+ .toString();
+
+ return {
+ denom: denom,
+ symbol: symbol,
+ amount: noDecimals(amountNeeded),
+ shareTotalValue: valueByRatio,
+ displayAmount: baseUnitsToDisplayUnits(symbol, amountNeeded),
+ totalDollarValue: baseUnitsToDollarValue(prices, symbol, amount),
+ unitRatio,
+ };
+ }
+ );
+ return coinsNeeded;
+};
+
+export const getCoinBalance = (
+ prices: PriceHash,
+ balances: Coin[],
+ prettyAsset: PoolAssetPretty
+): CoinBalance => {
+ const coinBalance = balances.find((coin) => coin.denom == prettyAsset.denom);
+
+ if (!coinBalance || !coinBalance.amount) {
+ // console.log({ coinBalance });
+ // throw new Error("not enough " + prettyAsset.symbol);
+ // @ts-ignore
+ return { ...coinBalance, displayValue: 0 };
+ }
+
+ const displayValue = baseUnitsToDollarValue(
+ prices,
+ prettyAsset.symbol,
+ coinBalance.amount
+ );
+
+ return { ...coinBalance, displayValue };
+};
+
+export const calcMaxCoinsForPool = (
+ prices: PriceHash,
+ poolInfo: PoolPretty,
+ balances: Coin[]
+) => {
+ const smallestTotalDollarValue = poolInfo.poolAssetsPretty
+ .map((prettyAsset) => {
+ const { displayValue } = getCoinBalance(prices, balances, prettyAsset);
+ return new BigNumber(displayValue).dividedBy(prettyAsset.ratio);
+ })
+ .sort((a, b) => a.minus(b).toNumber())[0]
+ .toString();
+
+ const coinsNeeded = poolInfo.poolAssetsPretty.map((asset) => {
+ const coinValue = new BigNumber(smallestTotalDollarValue)
+ .multipliedBy(asset.ratio)
+ .toString();
+ const amount = dollarValueToDenomUnits(prices, asset.symbol, coinValue);
+
+ return {
+ denom: asset.denom,
+ amount: noDecimals(amount),
+ };
+ });
+
+ return coinsNeeded;
+};
+
+export const calcShareOutAmount = (
+ poolInfo: Pool,
+ coinsNeeded: Coin[]
+): string => {
+ return poolInfo.poolAssets
+ .map(({ token }, i) => {
+ const tokenInAmount = new BigNumber(coinsNeeded[i].amount);
+ const totalShare = new BigNumber(poolInfo.totalShares.amount);
+ const totalShareExp = totalShare.shiftedBy(-18);
+ const poolAssetAmount = new BigNumber(token.amount);
+
+ return tokenInAmount
+ .multipliedBy(totalShareExp)
+ .dividedBy(poolAssetAmount)
+ .shiftedBy(18)
+ .decimalPlaces(0, BigNumber.ROUND_HALF_UP)
+ .toString();
+ })
+ .sort()[0];
+};
+
+export const makePoolPairs = (pools: Pool[]): PrettyPair[] => {
+ // @ts-ignore
+ return pools
+ .filter(
+ (pool) =>
+ pool.poolAssets.length === 2 &&
+ pool.poolAssets.every(({ token }) => !token.denom.startsWith('gamm'))
+ )
+ .map((pool) => {
+ const assetA = pool.poolAssets[0].token;
+ const assetAinfo = getOsmoAssetByDenom(assetA.denom);
+ const assetB = pool.poolAssets[1].token;
+ const assetBinfo = getOsmoAssetByDenom(assetB.denom);
+
+ if (!assetAinfo || !assetBinfo) return;
+
+ return {
+ // TODO fix the fact this is seemingly using long
+ // TODO or, why do we even have pools here???
+ // @ts-ignore
+ poolId: typeof pool.id === 'string' ? pool.id : pool.id.low.toString(),
+ poolAddress: pool.address,
+ baseName: assetAinfo.display,
+ baseSymbol: assetAinfo.symbol,
+ baseAddress: assetAinfo.base,
+ quoteName: assetBinfo.display,
+ quoteSymbol: assetBinfo.symbol,
+ quoteAddress: assetBinfo.base,
+ };
+ })
+ .filter(Boolean);
+};
diff --git a/examples/chain-template-spawn/utils/asset-list/types.ts b/examples/chain-template-spawn/utils/asset-list/types.ts
new file mode 100644
index 000000000..e1e13eb1c
--- /dev/null
+++ b/examples/chain-template-spawn/utils/asset-list/types.ts
@@ -0,0 +1,85 @@
+import { AssetDenomUnit } from '@chain-registry/types';
+import { Duration } from 'osmo-query/dist/codegen/google/protobuf/duration';
+import { Gauge } from 'osmo-query/dist/codegen/osmosis/incentives/gauge';
+import { SuperfluidAsset } from 'osmo-query/dist/codegen/osmosis/superfluid/superfluid';
+import { Coin } from 'osmo-query/dist/codegen/cosmos/base/v1beta1/coin';
+import { Pool } from 'osmo-query/dist/codegen/osmosis/gamm/pool-models/balancer/balancerPool';
+
+export type CoinDenom = AssetDenomUnit['denom'];
+
+export type Exponent = AssetDenomUnit['exponent'];
+
+export type CoinSymbol = string;
+
+export interface PriceHash {
+ [key: CoinDenom]: number;
+}
+
+export type CoinGeckoToken = string;
+
+export interface CoinGeckoUSD {
+ usd: number;
+}
+
+export type CoinGeckoUSDResponse = Record;
+
+export interface CoinValue {
+ amount: string;
+ denom: CoinDenom;
+ displayAmount: string;
+ value: string;
+ symbol: CoinSymbol;
+}
+
+export type CoinBalance = Coin & { displayValue: string | number };
+
+export interface PoolAssetPretty {
+ symbol: any;
+ denom: string;
+ amount: string;
+ ratio: string;
+ info: any;
+}
+
+export interface PoolTokenImage {
+ token: CoinSymbol;
+ images: {
+ png: string;
+ svg: string;
+ };
+}
+
+export interface PoolPretty extends Pool {
+ nickname: string;
+ images: PoolTokenImage[] | null;
+ poolAssetsPretty: PoolAssetPretty[];
+}
+
+export interface CalcPoolAprsParams {
+ activeGauges: Gauge[];
+ pool: Pool;
+ prices: PriceHash;
+ superfluidPools: SuperfluidAsset[];
+ aprSuperfluid: string | number;
+ lockupDurations: Duration[];
+ volume7d: string | number;
+ swapFee: string | number;
+ lockup?: string;
+ includeNonPerpetual?: boolean;
+}
+
+export interface Trade {
+ sell: Coin;
+ buy: Coin;
+}
+
+export interface PrettyPair {
+ poolId: string;
+ poolAddress: string;
+ baseName: string;
+ baseSymbol: string;
+ baseAddress: string;
+ quoteName: string;
+ quoteSymbol: string;
+ quoteAddress: string;
+}
diff --git a/examples/chain-template-spawn/utils/common.ts b/examples/chain-template-spawn/utils/common.ts
new file mode 100644
index 000000000..95c4ad77e
--- /dev/null
+++ b/examples/chain-template-spawn/utils/common.ts
@@ -0,0 +1,47 @@
+import { Asset, AssetList } from '@chain-registry/types';
+import { GasPrice } from '@cosmjs/stargate';
+import { SignerOptions, Wallet } from '@cosmos-kit/core';
+
+export const getNativeAsset = (assets: AssetList) => {
+ return assets.assets[0] as Asset;
+};
+
+export const getExponentFromAsset = (asset: Asset) => {
+ const unit = asset.denom_units.find((unit) => unit.denom === asset.display);
+ return unit?.exponent ?? 6;
+};
+
+export const shortenAddress = (address: string, partLength = 6) => {
+ return `${address.slice(0, partLength)}...${address.slice(-partLength)}`;
+};
+
+export const getWalletLogo = (wallet: Wallet) => {
+ if (!wallet?.logo) return '';
+
+ return typeof wallet.logo === 'string'
+ ? wallet.logo
+ : wallet.logo.major || wallet.logo.minor;
+};
+
+export const getSignerOptions = (): SignerOptions => {
+ const defaultGasPrice = GasPrice.fromString('0.025uosmo');
+
+ return {
+ // @ts-ignore
+ signingStargate: (chain) => {
+ if (typeof chain === 'string') {
+ return { gasPrice: defaultGasPrice };
+ }
+ let gasPrice;
+ try {
+ const feeToken = chain.fees?.fee_tokens[0];
+ const fee = `${feeToken?.average_gas_price || 0.025}${feeToken?.denom}`;
+ gasPrice = GasPrice.fromString(fee);
+ } catch (error) {
+ gasPrice = defaultGasPrice;
+ }
+ return { gasPrice };
+ },
+ preferredSignType: () => 'direct',
+ };
+};
diff --git a/examples/chain-template-spawn/utils/contract.ts b/examples/chain-template-spawn/utils/contract.ts
new file mode 100644
index 000000000..3897fc483
--- /dev/null
+++ b/examples/chain-template-spawn/utils/contract.ts
@@ -0,0 +1,159 @@
+import { Asset, Chain } from '@chain-registry/types';
+import { toBech32, fromBech32 } from '@cosmjs/encoding';
+import { DeliverTxResponse } from '@cosmjs/cosmwasm-stargate';
+import { logs } from '@cosmjs/stargate';
+import { CodeInfoResponse } from 'interchain-query/cosmwasm/wasm/v1/query';
+import { AccessType } from 'interchain-query/cosmwasm/wasm/v1/types';
+import BigNumber from 'bignumber.js';
+
+export const validateContractAddress = (
+ address: string,
+ bech32Prefix: string,
+) => {
+ if (!bech32Prefix)
+ return 'Cannot retrieve bech32 prefix of the current network.';
+
+ if (!address.startsWith(bech32Prefix))
+ return `Invalid prefix (expected "${bech32Prefix}")`;
+
+ const bytes = Array.from(Array(32).keys());
+ const exampleAddress = toBech32(bech32Prefix, new Uint8Array(bytes));
+
+ if (address.length !== exampleAddress.length) return 'Invalid address length';
+
+ try {
+ fromBech32(address);
+ } catch (e) {
+ return (e as Error).message;
+ }
+
+ return null;
+};
+
+export const validateJson = (text: string) => {
+ try {
+ if (text.trim().length === 0)
+ throw new SyntaxError(`Can't use empty string`);
+ JSON.parse(text);
+ return null;
+ } catch (error) {
+ return (error as SyntaxError).message;
+ }
+};
+
+export const prettifyJson = (text: string) => {
+ try {
+ return JSON.stringify(JSON.parse(text), null, 2);
+ } catch {
+ return text;
+ }
+};
+
+export const countJsonLines = (text: string) => text.split(/\n/).length;
+
+export const getExplorerLink = (chain: Chain, txHash: string) => {
+ const txPageLink = chain.explorers?.[0].tx_page ?? '';
+ return `${txPageLink.replace('${txHash}', txHash)}`;
+};
+
+export const bytesToKb = (bytes: number) => {
+ return BigNumber(bytes)
+ .dividedBy(1000)
+ .toFixed(bytes >= 1000 ? 0 : 2);
+};
+
+export const findAttr = (
+ events: logs.Log['events'],
+ eventType: string,
+ attrKey: string,
+) => {
+ const mimicLog: logs.Log = {
+ msg_index: 0,
+ log: '',
+ events,
+ };
+
+ try {
+ return logs.findAttribute([mimicLog], eventType, attrKey).value;
+ } catch {
+ return undefined;
+ }
+};
+
+export type PrettyTxResult = {
+ codeId: string;
+ codeHash: string;
+ txHash: string;
+ txFee: string;
+};
+
+export const prettyStoreCodeTxResult = (
+ txResponse: DeliverTxResponse,
+): PrettyTxResult => {
+ const events = txResponse.events;
+ const codeId = findAttr(events, 'store_code', 'code_id') ?? '0';
+ const codeHash = findAttr(events, 'store_code', 'code_checksum') ?? '';
+ const txHash = txResponse.transactionHash;
+ const txFee =
+ txResponse.events.find((e) => e.type === 'tx')?.attributes[0].value ?? '';
+
+ return {
+ codeId,
+ codeHash,
+ txHash,
+ txFee,
+ };
+};
+
+export const splitCamelCase = (text: string): string => {
+ return text.replace(/([A-Z])/g, ' $1').trim();
+};
+
+export const resolvePermission = (
+ address: string,
+ permission: AccessType,
+ permissionAddresses: string[] = [],
+): boolean =>
+ permission === AccessType.ACCESS_TYPE_EVERYBODY ||
+ (address ? permissionAddresses.includes(address) : false);
+
+export interface CodeInfo {
+ id: number;
+ uploader: string;
+ permission: AccessType;
+ addresses: string[];
+}
+
+export const prettyCodeInfo = (rawCodeInfo: CodeInfoResponse): CodeInfo => {
+ const { codeId, creator, instantiatePermission } = rawCodeInfo;
+
+ return {
+ id: Number(codeId),
+ permission: instantiatePermission?.permission!,
+ uploader: creator,
+ addresses: instantiatePermission?.addresses || [],
+ };
+};
+
+export const isPositiveInt = (input: string): boolean => {
+ if (input.startsWith('0x')) return false;
+ const numberValue = Number(input);
+ return Number.isInteger(numberValue) && numberValue > 0;
+};
+
+export const isValidCodeId = (input: string): boolean =>
+ input.length <= 7 && isPositiveInt(input);
+
+export const toKebabCase = (str: string): string => {
+ return str
+ .split(/(?=[A-Z])/)
+ .join('-')
+ .toLowerCase();
+};
+
+export const toPascalCase = (str: string): string => {
+ return str
+ .split('-')
+ .map((s) => s.charAt(0).toUpperCase() + s.slice(1))
+ .join('');
+};
diff --git a/examples/chain-template-spawn/utils/faucet.ts b/examples/chain-template-spawn/utils/faucet.ts
new file mode 100644
index 000000000..4a4755a78
--- /dev/null
+++ b/examples/chain-template-spawn/utils/faucet.ts
@@ -0,0 +1,83 @@
+import { Asset, Chain } from '@chain-registry/types';
+import { ChainInfo, Currency } from '@keplr-wallet/types';
+import { fromBech32 } from '@cosmjs/encoding';
+import { SPAWN_API_BASE_URL } from '@/config';
+
+export const makeKeplrChainInfo = (chain: Chain, asset: Asset): ChainInfo => {
+ const currency: Currency = {
+ coinDenom: asset.symbol,
+ coinMinimalDenom: asset.base,
+ coinDecimals:
+ asset.denom_units.find(({ denom }) => denom === asset.display)
+ ?.exponent ?? 6,
+ coinGeckoId: asset.coingecko_id,
+ coinImageUrl:
+ asset.logo_URIs?.svg ||
+ asset.logo_URIs?.png ||
+ asset.logo_URIs?.jpeg ||
+ '',
+ };
+
+ return {
+ rpc: chain.apis?.rpc?.[0].address ?? '',
+ rest: chain.apis?.rest?.[0].address ?? '',
+ chainId: chain.chain_id,
+ chainName: chain.chain_name,
+ bip44: {
+ coinType: 118,
+ },
+ bech32Config: {
+ bech32PrefixAccAddr: chain.bech32_prefix,
+ bech32PrefixAccPub: chain.bech32_prefix + 'pub',
+ bech32PrefixValAddr: chain.bech32_prefix + 'valoper',
+ bech32PrefixValPub: chain.bech32_prefix + 'valoperpub',
+ bech32PrefixConsAddr: chain.bech32_prefix + 'valcons',
+ bech32PrefixConsPub: chain.bech32_prefix + 'valconspub',
+ },
+ currencies: [currency],
+ feeCurrencies: [
+ {
+ ...currency,
+ gasPriceStep: {
+ low: chain.fees?.fee_tokens[0].low_gas_price ?? 0.0025,
+ average: chain.fees?.fee_tokens[0].average_gas_price ?? 0.025,
+ high: chain.fees?.fee_tokens[0].high_gas_price ?? 0.04,
+ },
+ },
+ ],
+ stakeCurrency: currency,
+ };
+};
+
+export const requestTokens = async (
+ chainId: string,
+ address: string,
+ amount: string = '1000000000'
+) => {
+ const response = await fetch(SPAWN_API_BASE_URL, {
+ method: 'POST',
+ body: JSON.stringify({
+ chain_id: chainId,
+ action: 'faucet',
+ cmd: `amount=${amount};address=${address}`,
+ }),
+ });
+
+ const data = await response.json();
+
+ return data;
+};
+
+export const validateChainAddress = (address: string, bech32Prefix: string) => {
+ if (!address.startsWith(bech32Prefix)) {
+ return `Invalid prefix (expected "${bech32Prefix}")`;
+ }
+
+ try {
+ fromBech32(address);
+ } catch (e) {
+ return 'Invalid address';
+ }
+
+ return null;
+};
diff --git a/examples/chain-template-spawn/utils/index.ts b/examples/chain-template-spawn/utils/index.ts
new file mode 100644
index 000000000..acb8b6030
--- /dev/null
+++ b/examples/chain-template-spawn/utils/index.ts
@@ -0,0 +1,6 @@
+export * from './common';
+export * from './staking';
+export * from './voting';
+export * from './asset-list';
+export * from './contract';
+export * from './faucet';
diff --git a/examples/chain-template-spawn/utils/staking/index.ts b/examples/chain-template-spawn/utils/staking/index.ts
new file mode 100644
index 000000000..1814eb8c7
--- /dev/null
+++ b/examples/chain-template-spawn/utils/staking/index.ts
@@ -0,0 +1,3 @@
+export * from './math';
+export * from './logos';
+export * from './staking';
diff --git a/examples/chain-template-spawn/utils/staking/logos.ts b/examples/chain-template-spawn/utils/staking/logos.ts
new file mode 100644
index 000000000..e0e256d2e
--- /dev/null
+++ b/examples/chain-template-spawn/utils/staking/logos.ts
@@ -0,0 +1,123 @@
+import { ExtendedValidator as Validator } from './staking';
+
+type ImageSource = {
+ imageSource: 'cosmostation' | 'keybase';
+};
+
+export const splitIntoChunks = (arr: any[], chunkSize: number) => {
+ const res = [];
+ for (let i = 0; i < arr.length; i += chunkSize) {
+ const chunk = arr.slice(i, i + chunkSize);
+ res.push(chunk);
+ }
+ return res;
+};
+
+export const convertChainName = (chainName: string) => {
+ if (chainName.endsWith('testnet')) {
+ return chainName.replace('testnet', '-testnet');
+ }
+
+ switch (chainName) {
+ case 'cosmoshub':
+ return 'cosmos';
+ case 'assetmantle':
+ return 'asset-mantle';
+ case 'cryptoorgchain':
+ return 'crypto-org';
+ case 'dig':
+ return 'dig-chain';
+ case 'gravitybridge':
+ return 'gravity-bridge';
+ case 'kichain':
+ return 'ki-chain';
+ case 'oraichain':
+ return 'orai-chain';
+ case 'terra':
+ return 'terra-classic';
+ default:
+ return chainName;
+ }
+};
+
+export const isUrlValid = async (url: string) => {
+ const res = await fetch(url, { method: 'HEAD' });
+ const contentType = res?.headers?.get('Content-Type') || '';
+ return contentType.startsWith('image');
+};
+
+export const getCosmostationUrl = (
+ chainName: string,
+ validatorAddr: string
+) => {
+ const cosmostationChainName = convertChainName(chainName);
+ return `https://raw.githubusercontent.com/cosmostation/chainlist/main/chain/${cosmostationChainName}/moniker/${validatorAddr}.png`;
+};
+
+export const getKeybaseUrl = (identity: string) => {
+ return `https://keybase.io/_/api/1.0/user/lookup.json?key_suffix=${identity}&fields=pictures`;
+};
+
+export const addLogoUrlSource = async (
+ validator: Validator,
+ chainName: string
+): Promise => {
+ const url = getCosmostationUrl(chainName, validator.address);
+ const isValid = await isUrlValid(url);
+ return { ...validator, imageSource: isValid ? 'cosmostation' : 'keybase' };
+};
+
+export const getLogoUrls = async (
+ validators: Validator[],
+ chainName: string
+) => {
+ const validatorsWithImgSource = await Promise.all(
+ validators.map((validator) => addLogoUrlSource(validator, chainName))
+ );
+
+ // cosmostation urls
+ const cosmostationUrls = validatorsWithImgSource
+ .filter((validator) => validator.imageSource === 'cosmostation')
+ .map(({ address }) => {
+ return {
+ address,
+ url: getCosmostationUrl(chainName, address),
+ };
+ });
+
+ // keybase urls
+ const keybaseIdentities = validatorsWithImgSource
+ .filter((validator) => validator.imageSource === 'keybase')
+ .map(({ address, identity }) => ({
+ address,
+ identity,
+ }));
+
+ const chunkedIdentities = splitIntoChunks(keybaseIdentities, 20);
+
+ let responses: any[] = [];
+
+ for (const chunk of chunkedIdentities) {
+ const logoUrlRequests = chunk.map(({ address, identity }) => {
+ if (!identity) return { address, url: '' };
+
+ return fetch(getKeybaseUrl(identity))
+ .then((response) => response.json())
+ .then((res) => ({
+ address,
+ url: res.them?.[0]?.pictures?.primary.url || '',
+ }));
+ });
+ responses = [...responses, await Promise.all(logoUrlRequests)];
+ await new Promise((resolve) => setTimeout(resolve, 500));
+ }
+
+ const keybaseUrls = responses.flat();
+
+ const allUrls = [...cosmostationUrls, ...keybaseUrls].reduce(
+ (prev, cur) => ({ ...prev, [cur.address]: cur.url }),
+ {}
+ );
+
+ return allUrls;
+};
diff --git a/examples/chain-template-spawn/utils/staking/math.ts b/examples/chain-template-spawn/utils/staking/math.ts
new file mode 100644
index 000000000..cc6887791
--- /dev/null
+++ b/examples/chain-template-spawn/utils/staking/math.ts
@@ -0,0 +1,48 @@
+import { Prices } from '@/hooks';
+import BigNumber from 'bignumber.js';
+
+export const isGreaterThanZero = (val: number | string | undefined) => {
+ return new BigNumber(val || 0).gt(0);
+};
+
+export const shiftDigits = (
+ num: string | number,
+ places: number,
+ decimalPlaces?: number
+) => {
+ return new BigNumber(num)
+ .shiftedBy(places)
+ .decimalPlaces(decimalPlaces || 6)
+ .toString();
+};
+
+export const toNumber = (val: string, decimals: number = 6) => {
+ return new BigNumber(val).decimalPlaces(decimals).toNumber();
+};
+
+export const sum = (...args: string[]) => {
+ return args
+ .reduce((prev, cur) => prev.plus(cur), new BigNumber(0))
+ .toString();
+};
+
+export const calcDollarValue = (
+ denom: string,
+ amount: string | number,
+ prices: Prices
+) => {
+ return new BigNumber(prices?.[denom] || 0)
+ .times(amount)
+ .decimalPlaces(2)
+ .toNumber();
+};
+
+export const toBaseAmount = (
+ num: string | number,
+ places: number
+) => {
+ return new BigNumber(num)
+ .shiftedBy(places)
+ .integerValue(BigNumber.ROUND_DOWN)
+ .toString();
+};
\ No newline at end of file
diff --git a/examples/chain-template-spawn/utils/staking/staking.ts b/examples/chain-template-spawn/utils/staking/staking.ts
new file mode 100644
index 000000000..6a279b7d7
--- /dev/null
+++ b/examples/chain-template-spawn/utils/staking/staking.ts
@@ -0,0 +1,180 @@
+import { QueryDelegationTotalRewardsResponse } from 'interchain-query/cosmos/distribution/v1beta1/query';
+import {
+ Pool,
+ Validator,
+} from 'interchain-query/cosmos/staking/v1beta1/staking';
+import { isGreaterThanZero, shiftDigits, toNumber } from '.';
+import { Coin, decodeCosmosSdkDecFromProto } from '@cosmjs/stargate';
+import {
+ QueryDelegatorDelegationsResponse,
+ QueryParamsResponse,
+} from 'interchain-query/cosmos/staking/v1beta1/query';
+import BigNumber from 'bignumber.js';
+import { QueryAnnualProvisionsResponse } from 'interchain-query/cosmos/mint/v1beta1/query';
+import type { Asset } from '@chain-registry/types';
+
+const DAY_TO_SECONDS = 24 * 60 * 60;
+const ZERO = '0';
+
+export const calcStakingApr = ({
+ pool,
+ commission,
+ communityTax,
+ annualProvisions,
+}: ChainMetaData & { commission: string }) => {
+ const totalSupply = new BigNumber(pool?.bondedTokens || 0).plus(
+ pool?.notBondedTokens || 0
+ );
+
+ const bondedTokensRatio = new BigNumber(pool?.bondedTokens || 0).div(
+ totalSupply
+ );
+
+ const inflation = new BigNumber(annualProvisions || 0).div(totalSupply);
+
+ const one = new BigNumber(1);
+
+ return inflation
+ .multipliedBy(one.minus(communityTax || 0))
+ .div(bondedTokensRatio)
+ .multipliedBy(one.minus(commission))
+ .shiftedBy(2)
+ .decimalPlaces(2, BigNumber.ROUND_DOWN)
+ .toString();
+};
+
+export const decodeUint8Arr = (uint8array: Uint8Array | undefined) => {
+ if (!uint8array) return '';
+ return new TextDecoder('utf-8').decode(uint8array);
+};
+
+const formatCommission = (commission: string) => {
+ return new BigNumber(commission).isLessThan(1)
+ ? commission
+ : shiftDigits(commission, -18);
+};
+
+export type ParsedValidator = ReturnType[0];
+
+export const parseValidators = (validators: Validator[]) => {
+ return validators.map((validator) => ({
+ description: validator.description?.details || '',
+ name: validator.description?.moniker || '',
+ identity: validator.description?.identity || '',
+ address: validator.operatorAddress,
+ commission: formatCommission(
+ validator.commission?.commissionRates?.rate || '0'
+ ),
+ votingPower: toNumber(shiftDigits(validator.tokens, -6, 4), 4),
+ }));
+};
+
+export type ExtendedValidator = ReturnType[0];
+
+export type ChainMetaData = {
+ annualProvisions: string;
+ communityTax: string;
+ pool: Pool;
+};
+
+export const extendValidators = (
+ validators: ParsedValidator[] = [],
+ delegations: ParsedDelegations = [],
+ rewards: ParsedRewards['byValidators'] = [],
+ chainMetadata: ChainMetaData
+) => {
+ const { annualProvisions, communityTax, pool } = chainMetadata;
+
+ return validators.map((validator) => {
+ const { address, commission } = validator;
+
+ const delegation =
+ delegations.find(({ validatorAddress }) => validatorAddress === address)
+ ?.amount || ZERO;
+ const reward =
+ rewards.find(({ validatorAddress }) => validatorAddress === address)
+ ?.amount || ZERO;
+
+ const apr =
+ annualProvisions && communityTax && pool && commission
+ ? calcStakingApr({ annualProvisions, commission, communityTax, pool })
+ : null;
+
+ return { ...validator, delegation, reward, apr };
+ });
+};
+
+const findAndDecodeReward = (
+ coins: Coin[],
+ denom: string,
+ exponent: number
+) => {
+ const amount = coins.find((coin) => coin.denom === denom)?.amount || ZERO;
+ const decodedAmount = decodeCosmosSdkDecFromProto(amount).toString();
+ return shiftDigits(decodedAmount, exponent);
+};
+
+export type ParsedRewards = ReturnType;
+
+export const parseRewards = (
+ { rewards, total }: QueryDelegationTotalRewardsResponse,
+ denom: string,
+ exponent: number
+) => {
+ if (!rewards || !total) return { byValidators: [], total: ZERO };
+
+ const totalReward = findAndDecodeReward(total, denom, exponent);
+
+ const rewardsParsed = rewards.map(({ reward, validatorAddress }) => ({
+ validatorAddress,
+ amount: findAndDecodeReward(reward, denom, exponent),
+ }));
+
+ return { byValidators: rewardsParsed, total: totalReward };
+};
+
+export type ParsedDelegations = ReturnType;
+
+export const parseDelegations = (
+ delegations: QueryDelegatorDelegationsResponse['delegationResponses'],
+ exponent: number
+) => {
+ if (!delegations) return [];
+ return delegations.map(({ balance, delegation }) => ({
+ validatorAddress: delegation?.validatorAddress || '',
+ amount: shiftDigits(balance?.amount || ZERO, exponent),
+ }));
+};
+
+export const calcTotalDelegation = (delegations: ParsedDelegations) => {
+ if (!delegations) return ZERO;
+
+ return delegations
+ .reduce((prev, cur) => prev.plus(cur.amount), new BigNumber(0))
+ .toString();
+};
+
+export const parseUnbondingDays = (params: QueryParamsResponse['params']) => {
+ return new BigNumber(Number(params?.unbondingTime?.seconds || 0))
+ .div(DAY_TO_SECONDS)
+ .decimalPlaces(0)
+ .toString();
+};
+
+export const parseAnnualProvisions = (data: QueryAnnualProvisionsResponse) => {
+ const res = shiftDigits(decodeUint8Arr(data?.annualProvisions), -18);
+ return isGreaterThanZero(res) ? res : null;
+};
+
+export const getAssetLogoUrl = (asset: Asset): string => {
+ return Object.values(asset?.logo_URIs || {})?.[0] || '';
+};
+
+export const formatValidatorMetaInfo = (
+ validator: ExtendedValidator
+): string => {
+ const commissionStr = `Commission ${shiftDigits(validator.commission, 2)}%`;
+ const aprStr = validator.apr ? `APR ${validator.apr}%` : '';
+
+ return [commissionStr, aprStr].filter(Boolean).join(' | ');
+};
diff --git a/examples/chain-template-spawn/utils/voting.ts b/examples/chain-template-spawn/utils/voting.ts
new file mode 100644
index 000000000..38ca488de
--- /dev/null
+++ b/examples/chain-template-spawn/utils/voting.ts
@@ -0,0 +1,82 @@
+import dayjs from 'dayjs';
+import BigNumber from 'bignumber.js';
+import { Chain } from '@chain-registry/types';
+import {
+ Proposal,
+ ProposalStatus,
+} from 'interchain-query/cosmos/gov/v1beta1/gov';
+
+export function getChainLogo(chain: Chain) {
+ return chain.logo_URIs?.svg || chain.logo_URIs?.png || chain.logo_URIs?.jpeg;
+}
+
+export function formatDate(date?: Date) {
+ if (!date) return null;
+ return dayjs(date).format('YYYY-MM-DD HH:mm:ss');
+}
+
+export function paginate(limit: bigint, reverse: boolean = false) {
+ return {
+ limit,
+ reverse,
+ key: new Uint8Array(),
+ offset: 0n,
+ countTotal: true,
+ };
+}
+
+export function percent(num: number | string = 0, total: number, decimals = 2) {
+ return total
+ ? new BigNumber(num)
+ .dividedBy(total)
+ .multipliedBy(100)
+ .decimalPlaces(decimals)
+ .toNumber()
+ : 0;
+}
+
+export const exponentiate = (num: number | string | undefined, exp: number) => {
+ if (!num) return 0;
+ return new BigNumber(num)
+ .multipliedBy(new BigNumber(10).exponentiatedBy(exp))
+ .toNumber();
+};
+
+export function decodeUint8Array(value?: Uint8Array) {
+ return value ? new TextDecoder('utf-8').decode(value) : '';
+}
+
+export function getTitle(value?: Uint8Array) {
+ return decodeUint8Array(value)
+ .slice(0, 250)
+ .match(/[A-Z][A-Za-z].*(?=\u0012)/)?.[0];
+}
+
+export function parseQuorum(value?: Uint8Array) {
+ const quorum = decodeUint8Array(value);
+ return new BigNumber(quorum).shiftedBy(-quorum.length).toNumber();
+}
+
+export function processProposals(proposals: Proposal[]) {
+ const sorted = proposals.sort(
+ (a, b) => Number(b.proposalId) - Number(a.proposalId)
+ );
+
+ proposals.forEach((proposal) => {
+ // @ts-ignore
+ if (!proposal.content?.title && proposal.content?.value) {
+ // @ts-ignore
+ proposal.content.title = getTitle(proposal.content?.value);
+ }
+ });
+
+ return sorted
+ .filter(
+ ({ status }) => status === ProposalStatus.PROPOSAL_STATUS_VOTING_PERIOD
+ )
+ .concat(
+ sorted.filter(
+ ({ status }) => status !== ProposalStatus.PROPOSAL_STATUS_VOTING_PERIOD
+ )
+ );
+}
diff --git a/examples/chain-template-spawn/yarn.lock b/examples/chain-template-spawn/yarn.lock
new file mode 100644
index 000000000..0e15c60ea
--- /dev/null
+++ b/examples/chain-template-spawn/yarn.lock
@@ -0,0 +1,11909 @@
+# This file is generated by running "yarn install" inside your project.
+# Manual changes might be lost - proceed with caution!
+
+__metadata:
+ version: 8
+ cacheKey: 10c0
+
+"@babel/runtime@npm:^7.12.5":
+ version: 7.24.4
+ resolution: "@babel/runtime@npm:7.24.4"
+ dependencies:
+ regenerator-runtime: "npm:^0.14.0"
+ checksum: 10c0/785aff96a3aa8ff97f90958e1e8a7b1d47f793b204b47c6455eaadc3f694f48c97cd5c0a921fe3596d818e71f18106610a164fb0f1c71fd68c622a58269d537c
+ languageName: node
+ linkType: hard
+
+"@babel/runtime@npm:^7.21.0":
+ version: 7.25.6
+ resolution: "@babel/runtime@npm:7.25.6"
+ dependencies:
+ regenerator-runtime: "npm:^0.14.0"
+ checksum: 10c0/d6143adf5aa1ce79ed374e33fdfd74fa975055a80bc6e479672ab1eadc4e4bfd7484444e17dd063a1d180e051f3ec62b357c7a2b817e7657687b47313158c3d2
+ languageName: node
+ linkType: hard
+
+"@babel/runtime@npm:^7.23.2":
+ version: 7.24.6
+ resolution: "@babel/runtime@npm:7.24.6"
+ dependencies:
+ regenerator-runtime: "npm:^0.14.0"
+ checksum: 10c0/224ad205de33ea28979baaec89eea4c4d4e9482000dd87d15b97859365511cdd4d06517712504024f5d33a5fb9412f9b91c96f1d923974adf9359e1575cde049
+ languageName: node
+ linkType: hard
+
+"@chain-registry/assets@npm:1.63.5":
+ version: 1.63.5
+ resolution: "@chain-registry/assets@npm:1.63.5"
+ dependencies:
+ "@chain-registry/types": "npm:^0.44.3"
+ checksum: 10c0/52211bb383829a245f738e9a7f388fb768ae35ad34a299dce6b4506ee02d069eaee103f62794b786efc4fc258c6b9b26fd88d21a5c8a2d75612343737b9f10f2
+ languageName: node
+ linkType: hard
+
+"@chain-registry/client@npm:^1.48.1":
+ version: 1.48.31
+ resolution: "@chain-registry/client@npm:1.48.31"
+ dependencies:
+ "@chain-registry/types": "npm:^0.45.31"
+ "@chain-registry/utils": "npm:^1.46.31"
+ bfs-path: "npm:^1.0.2"
+ cross-fetch: "npm:^3.1.5"
+ checksum: 10c0/ec4a6fa1ae197b939eab0079464bbca4e7fe82714191ef5d679bb468c97fe71fa664baf8c51583e9db9ac9194ec24a9d598fe20ef0f94dd058f67eff82b4b121
+ languageName: node
+ linkType: hard
+
+"@chain-registry/cosmostation@npm:1.66.2":
+ version: 1.66.2
+ resolution: "@chain-registry/cosmostation@npm:1.66.2"
+ dependencies:
+ "@chain-registry/types": "npm:^0.45.1"
+ "@chain-registry/utils": "npm:^1.46.1"
+ "@cosmostation/extension-client": "npm:0.1.15"
+ checksum: 10c0/6ec2bdfd32b05e93bfef23ee72dd65c2c0a539ae70c5cf22fc7e73602e0172bda1a8343352cf4025e410dfec88aa3abe2a59a76e88fc69f2fe5d867eca9408f9
+ languageName: node
+ linkType: hard
+
+"@chain-registry/cosmostation@npm:^1.66.2":
+ version: 1.66.38
+ resolution: "@chain-registry/cosmostation@npm:1.66.38"
+ dependencies:
+ "@chain-registry/types": "npm:^0.45.31"
+ "@chain-registry/utils": "npm:^1.46.31"
+ "@cosmostation/extension-client": "npm:0.1.15"
+ checksum: 10c0/f781d7b66f9db61802c9ed33da317a5c55e29021cf2572b5b934967c3700fb8449a1c776078770c5ce9dc3e2127a2ed7120fdf64d0703e4338e37803df9883a6
+ languageName: node
+ linkType: hard
+
+"@chain-registry/keplr@npm:1.68.2":
+ version: 1.68.2
+ resolution: "@chain-registry/keplr@npm:1.68.2"
+ dependencies:
+ "@chain-registry/types": "npm:^0.45.1"
+ "@keplr-wallet/cosmos": "npm:0.12.28"
+ "@keplr-wallet/crypto": "npm:0.12.28"
+ semver: "npm:^7.5.0"
+ checksum: 10c0/a155f2029f7fb366b6aa6169b8774d01a57150af0ca6925024a77d401e9c0302860208520a7dd5fead08a47b65025b1eddd65c77f10d73cbd7be71b2cda8132d
+ languageName: node
+ linkType: hard
+
+"@chain-registry/keplr@npm:^1.68.2":
+ version: 1.68.38
+ resolution: "@chain-registry/keplr@npm:1.68.38"
+ dependencies:
+ "@chain-registry/types": "npm:^0.45.31"
+ "@keplr-wallet/cosmos": "npm:0.12.28"
+ "@keplr-wallet/crypto": "npm:0.12.28"
+ semver: "npm:^7.5.0"
+ checksum: 10c0/afdc3a1eec9184d9b01179ed67b450f7cb218270ab7500517aaca021eaf62806e0436c22cf10ce5d1d36c52d0d13c7b009aa632f020acc8c39249822b683d6b3
+ languageName: node
+ linkType: hard
+
+"@chain-registry/osmosis@npm:1.61.3":
+ version: 1.61.3
+ resolution: "@chain-registry/osmosis@npm:1.61.3"
+ dependencies:
+ "@chain-registry/types": "npm:^0.44.3"
+ checksum: 10c0/e69033c32dfa46d126d2377103e4527f88f572fad0b185645cd08910557b393956a0c7d73ec8f9b62217ce6f311fff749b20869092f90f084b43fb041825da97
+ languageName: node
+ linkType: hard
+
+"@chain-registry/types@npm:0.44.3, @chain-registry/types@npm:^0.44.3":
+ version: 0.44.3
+ resolution: "@chain-registry/types@npm:0.44.3"
+ checksum: 10c0/471e85e934e42ba2704fece7ca0545df5ef98e947a5d10aaefa7872145a21211036740b4b37bb8a33359561b7533c07c22e1608b372efc19be5e2ebd386ac3de
+ languageName: node
+ linkType: hard
+
+"@chain-registry/types@npm:0.45.1":
+ version: 0.45.1
+ resolution: "@chain-registry/types@npm:0.45.1"
+ checksum: 10c0/d2008c36e2b9d5b4dfbeae2e4038b956789cf7a70bff85d936fdb76a34a16609952b8b233bd09c3e93eeb9ccde26a5492230d1f3e450b2a7a7b8474df76835a5
+ languageName: node
+ linkType: hard
+
+"@chain-registry/types@npm:^0.45.1, @chain-registry/types@npm:^0.45.31":
+ version: 0.45.31
+ resolution: "@chain-registry/types@npm:0.45.31"
+ checksum: 10c0/dcbca6b8fbfbabed00eacf0f15e1863f38493a86d8135987bb591c65f7145fc17403e9b52d8ca1ed2124922964d7336103e03675b48eaa5345950f44f32aaf54
+ languageName: node
+ linkType: hard
+
+"@chain-registry/utils@npm:^1.46.1, @chain-registry/utils@npm:^1.46.31":
+ version: 1.46.31
+ resolution: "@chain-registry/utils@npm:1.46.31"
+ dependencies:
+ "@chain-registry/types": "npm:^0.45.31"
+ bignumber.js: "npm:9.1.2"
+ sha.js: "npm:^2.4.11"
+ checksum: 10c0/1c4a53f3ac133ffe8d7f6b6c3f15134e204fe375c9b7e66651fc493751f742e3e91a8c130c6fac9e55d7817ad9f0804a7ecd709197fe3ebfdca16044c96bc817
+ languageName: node
+ linkType: hard
+
+"@classic-terra/terra.proto@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "@classic-terra/terra.proto@npm:1.1.0"
+ dependencies:
+ "@improbable-eng/grpc-web": "npm:^0.14.1"
+ google-protobuf: "npm:^3.17.3"
+ long: "npm:^4.0.0"
+ protobufjs: "npm:~6.11.2"
+ checksum: 10c0/b285534bf7242286a9780a484d10d901af491bbfad1b3697f7b3439dc824ae7658ad8d2a8c3af179ef772c66a2c3c5d6118b055b0a087bea29e5a98abdfd6072
+ languageName: node
+ linkType: hard
+
+"@confio/ics23@npm:^0.6.8":
+ version: 0.6.8
+ resolution: "@confio/ics23@npm:0.6.8"
+ dependencies:
+ "@noble/hashes": "npm:^1.0.0"
+ protobufjs: "npm:^6.8.8"
+ checksum: 10c0/2f3f5032cd6a34c9b2fbd64bbf7e1cdec75ca71f348a770f7b5474b5027b12202bfbcd404eca931efddb5901f769af035a87cb8bddbf3f23d7e5d93c9d3d7f6f
+ languageName: node
+ linkType: hard
+
+"@cosmjs/amino@npm:0.29.3":
+ version: 0.29.3
+ resolution: "@cosmjs/amino@npm:0.29.3"
+ dependencies:
+ "@cosmjs/crypto": "npm:^0.29.3"
+ "@cosmjs/encoding": "npm:^0.29.3"
+ "@cosmjs/math": "npm:^0.29.3"
+ "@cosmjs/utils": "npm:^0.29.3"
+ checksum: 10c0/5f7916ed259239c83303a5c1ae467021961db7c250a56aba24b2432ad66c2d1612c73055a1e86783f54417720450ba814ca5e854a0c98eb6823f66f20bdecdec
+ languageName: node
+ linkType: hard
+
+"@cosmjs/amino@npm:0.29.4":
+ version: 0.29.4
+ resolution: "@cosmjs/amino@npm:0.29.4"
+ dependencies:
+ "@cosmjs/crypto": "npm:^0.29.4"
+ "@cosmjs/encoding": "npm:^0.29.4"
+ "@cosmjs/math": "npm:^0.29.4"
+ "@cosmjs/utils": "npm:^0.29.4"
+ checksum: 10c0/c740fe4c6d8adf157d560bba5d1b8213502725dad1d39516bf809f9b29001e04c22a9b8c63781953d0ddc3c857bf819f10ab42681ec0fe3f7050ffb8eae659f2
+ languageName: node
+ linkType: hard
+
+"@cosmjs/amino@npm:0.32.3, @cosmjs/amino@npm:^0.32.3":
+ version: 0.32.3
+ resolution: "@cosmjs/amino@npm:0.32.3"
+ dependencies:
+ "@cosmjs/crypto": "npm:^0.32.3"
+ "@cosmjs/encoding": "npm:^0.32.3"
+ "@cosmjs/math": "npm:^0.32.3"
+ "@cosmjs/utils": "npm:^0.32.3"
+ checksum: 10c0/6f3da2ba6d88257d6717898af798aad9f2a51bb2c0d0b61cd40cf103c86a1431f4fa5086df350f81371d3282b8a28bcbc4f97c6d9eb83a9831fad473ae1ab492
+ languageName: node
+ linkType: hard
+
+"@cosmjs/amino@npm:^0.29.3, @cosmjs/amino@npm:^0.29.4, @cosmjs/amino@npm:^0.29.5":
+ version: 0.29.5
+ resolution: "@cosmjs/amino@npm:0.29.5"
+ dependencies:
+ "@cosmjs/crypto": "npm:^0.29.5"
+ "@cosmjs/encoding": "npm:^0.29.5"
+ "@cosmjs/math": "npm:^0.29.5"
+ "@cosmjs/utils": "npm:^0.29.5"
+ checksum: 10c0/bf8ec4d2412997aea89997fa07474c8590b02ac9337b3e87e68e8c9295d1001cf3f41a660a72208dc4e005d5a25620483c8eac21f7fa1b0a6adc6b6eeaee2a4a
+ languageName: node
+ linkType: hard
+
+"@cosmjs/amino@npm:^0.31.1, @cosmjs/amino@npm:^0.31.3":
+ version: 0.31.3
+ resolution: "@cosmjs/amino@npm:0.31.3"
+ dependencies:
+ "@cosmjs/crypto": "npm:^0.31.3"
+ "@cosmjs/encoding": "npm:^0.31.3"
+ "@cosmjs/math": "npm:^0.31.3"
+ "@cosmjs/utils": "npm:^0.31.3"
+ checksum: 10c0/2f5f866df043bef072ef8802844beacd282027dcc32f69428fe98e256d5fec0dd4a45a4c7d6c45c8a7d7f4387893ef02c8b471a32d6450215f56157d6eaa467e
+ languageName: node
+ linkType: hard
+
+"@cosmjs/amino@npm:^0.32.0, @cosmjs/amino@npm:^0.32.4":
+ version: 0.32.4
+ resolution: "@cosmjs/amino@npm:0.32.4"
+ dependencies:
+ "@cosmjs/crypto": "npm:^0.32.4"
+ "@cosmjs/encoding": "npm:^0.32.4"
+ "@cosmjs/math": "npm:^0.32.4"
+ "@cosmjs/utils": "npm:^0.32.4"
+ checksum: 10c0/cd8e215b0406f5c7b73ab0a21106d06b6f76b1da12f1ab7b612884e1dd8bc626966dc67d4e7580090ade131546cbec70000f854e6596935299d054b788929a7e
+ languageName: node
+ linkType: hard
+
+"@cosmjs/cosmwasm-stargate@npm:0.32.3":
+ version: 0.32.3
+ resolution: "@cosmjs/cosmwasm-stargate@npm:0.32.3"
+ dependencies:
+ "@cosmjs/amino": "npm:^0.32.3"
+ "@cosmjs/crypto": "npm:^0.32.3"
+ "@cosmjs/encoding": "npm:^0.32.3"
+ "@cosmjs/math": "npm:^0.32.3"
+ "@cosmjs/proto-signing": "npm:^0.32.3"
+ "@cosmjs/stargate": "npm:^0.32.3"
+ "@cosmjs/tendermint-rpc": "npm:^0.32.3"
+ "@cosmjs/utils": "npm:^0.32.3"
+ cosmjs-types: "npm:^0.9.0"
+ pako: "npm:^2.0.2"
+ checksum: 10c0/e33110be3004a462134c21f356066d16ba478664b4bbccd834c9d8b3f8156b6f94c14df8cf235803f13237f1408c12dcf5f9f64f4011dcca9a49298857c0c74c
+ languageName: node
+ linkType: hard
+
+"@cosmjs/cosmwasm-stargate@npm:^0.32.3":
+ version: 0.32.4
+ resolution: "@cosmjs/cosmwasm-stargate@npm:0.32.4"
+ dependencies:
+ "@cosmjs/amino": "npm:^0.32.4"
+ "@cosmjs/crypto": "npm:^0.32.4"
+ "@cosmjs/encoding": "npm:^0.32.4"
+ "@cosmjs/math": "npm:^0.32.4"
+ "@cosmjs/proto-signing": "npm:^0.32.4"
+ "@cosmjs/stargate": "npm:^0.32.4"
+ "@cosmjs/tendermint-rpc": "npm:^0.32.4"
+ "@cosmjs/utils": "npm:^0.32.4"
+ cosmjs-types: "npm:^0.9.0"
+ pako: "npm:^2.0.2"
+ checksum: 10c0/f7e285c51ef8b1098a9ea5ca2546a1e226b4fa0a990d95faa6f3b752f3638b6c55f36a56b6f4b11f0a66fd61e3ae8772921d8e99418218df0b2205efe1c82f37
+ languageName: node
+ linkType: hard
+
+"@cosmjs/crypto@npm:^0.29.3, @cosmjs/crypto@npm:^0.29.4, @cosmjs/crypto@npm:^0.29.5":
+ version: 0.29.5
+ resolution: "@cosmjs/crypto@npm:0.29.5"
+ dependencies:
+ "@cosmjs/encoding": "npm:^0.29.5"
+ "@cosmjs/math": "npm:^0.29.5"
+ "@cosmjs/utils": "npm:^0.29.5"
+ "@noble/hashes": "npm:^1"
+ bn.js: "npm:^5.2.0"
+ elliptic: "npm:^6.5.4"
+ libsodium-wrappers: "npm:^0.7.6"
+ checksum: 10c0/5f4706cd4b80853e0e3891252e9eab414334ca4a50afd7d6efeca5525dbb612c0cb1828b04119419ea4ac6bad74f6c4771b7ab6a7b840cc91971a49eb7f6f2dc
+ languageName: node
+ linkType: hard
+
+"@cosmjs/crypto@npm:^0.31.3":
+ version: 0.31.3
+ resolution: "@cosmjs/crypto@npm:0.31.3"
+ dependencies:
+ "@cosmjs/encoding": "npm:^0.31.3"
+ "@cosmjs/math": "npm:^0.31.3"
+ "@cosmjs/utils": "npm:^0.31.3"
+ "@noble/hashes": "npm:^1"
+ bn.js: "npm:^5.2.0"
+ elliptic: "npm:^6.5.4"
+ libsodium-wrappers-sumo: "npm:^0.7.11"
+ checksum: 10c0/595de61be8832c0f012e80343427efc5f7dec6157f31410908edefcae710f31bed723b50d0979b66d961765854e76d89e6942b5430a727f458b8d7e67fc7b174
+ languageName: node
+ linkType: hard
+
+"@cosmjs/crypto@npm:^0.32.3":
+ version: 0.32.3
+ resolution: "@cosmjs/crypto@npm:0.32.3"
+ dependencies:
+ "@cosmjs/encoding": "npm:^0.32.3"
+ "@cosmjs/math": "npm:^0.32.3"
+ "@cosmjs/utils": "npm:^0.32.3"
+ "@noble/hashes": "npm:^1"
+ bn.js: "npm:^5.2.0"
+ elliptic: "npm:^6.5.4"
+ libsodium-wrappers-sumo: "npm:^0.7.11"
+ checksum: 10c0/6925ee15c31d2ed6dfbda666834b188f81706d9c83b9afef27d88e4330cf516addcfcb7f9374dc4513bfea27c5fc717ff49679de9c45b282e601c93b67ac7c98
+ languageName: node
+ linkType: hard
+
+"@cosmjs/crypto@npm:^0.32.4":
+ version: 0.32.4
+ resolution: "@cosmjs/crypto@npm:0.32.4"
+ dependencies:
+ "@cosmjs/encoding": "npm:^0.32.4"
+ "@cosmjs/math": "npm:^0.32.4"
+ "@cosmjs/utils": "npm:^0.32.4"
+ "@noble/hashes": "npm:^1"
+ bn.js: "npm:^5.2.0"
+ elliptic: "npm:^6.5.4"
+ libsodium-wrappers-sumo: "npm:^0.7.11"
+ checksum: 10c0/94e742285eb8c7c5393055ba0635f10c06bf87710e953aedc71e3edc2b8e21a12a0d9b5e8eff37e326765f57c9eb3c7fd358f24f639efad4f1a6624eb8189534
+ languageName: node
+ linkType: hard
+
+"@cosmjs/encoding@npm:^0.29.3, @cosmjs/encoding@npm:^0.29.4, @cosmjs/encoding@npm:^0.29.5":
+ version: 0.29.5
+ resolution: "@cosmjs/encoding@npm:0.29.5"
+ dependencies:
+ base64-js: "npm:^1.3.0"
+ bech32: "npm:^1.1.4"
+ readonly-date: "npm:^1.0.0"
+ checksum: 10c0/2a5a455766aa763dc0cc73ac4eb4040e895f8675a1bae8935a40c74d931bb97a344a3df75c9b4d95f27109dc04bace842cead983c56992a2f6f57f9253b9c89f
+ languageName: node
+ linkType: hard
+
+"@cosmjs/encoding@npm:^0.31.1, @cosmjs/encoding@npm:^0.31.3":
+ version: 0.31.3
+ resolution: "@cosmjs/encoding@npm:0.31.3"
+ dependencies:
+ base64-js: "npm:^1.3.0"
+ bech32: "npm:^1.1.4"
+ readonly-date: "npm:^1.0.0"
+ checksum: 10c0/48eb9f9259bdfd88db280b6b5ea970fd1b3b0f81a8f4253f315ff2c736b27dbe0fdf74405c52ad35fcd4b16f1fde4250c4de936997b9d92e79cb97d98cc538c7
+ languageName: node
+ linkType: hard
+
+"@cosmjs/encoding@npm:^0.32.3":
+ version: 0.32.3
+ resolution: "@cosmjs/encoding@npm:0.32.3"
+ dependencies:
+ base64-js: "npm:^1.3.0"
+ bech32: "npm:^1.1.4"
+ readonly-date: "npm:^1.0.0"
+ checksum: 10c0/3c3d4b610093c2c8ca13437664e4736d60cdfb309bf2671f492388c59a9bca20f1a75ab4686a7b73d48aa6208f454bee56c84c0fe780015473ea53353a70266a
+ languageName: node
+ linkType: hard
+
+"@cosmjs/encoding@npm:^0.32.4":
+ version: 0.32.4
+ resolution: "@cosmjs/encoding@npm:0.32.4"
+ dependencies:
+ base64-js: "npm:^1.3.0"
+ bech32: "npm:^1.1.4"
+ readonly-date: "npm:^1.0.0"
+ checksum: 10c0/4a30d5ae1a2d1247d44bda46101ce208c7666d8801ca9a33de94edc35cc22460c16b4834ec84d5a65ffef5e2a4b58605e0a0a056c46bc0a042979ec84acf20cd
+ languageName: node
+ linkType: hard
+
+"@cosmjs/json-rpc@npm:^0.29.5":
+ version: 0.29.5
+ resolution: "@cosmjs/json-rpc@npm:0.29.5"
+ dependencies:
+ "@cosmjs/stream": "npm:^0.29.5"
+ xstream: "npm:^11.14.0"
+ checksum: 10c0/3616604eacd7987597e9bb656668b45498919f9a4acdf455ffda263d3736e1af30582dcf8ba094ae623bc7d484f4dab07ffd97d9cc479f1205e26b36a1aeab1b
+ languageName: node
+ linkType: hard
+
+"@cosmjs/json-rpc@npm:^0.31.3":
+ version: 0.31.3
+ resolution: "@cosmjs/json-rpc@npm:0.31.3"
+ dependencies:
+ "@cosmjs/stream": "npm:^0.31.3"
+ xstream: "npm:^11.14.0"
+ checksum: 10c0/8cc8fa9490e512a2865e888b162e2cc38477a6a5b6261fce885579712c880087c8bb2733717eb5fe03c131f31064e1f9060f87ae2a4d1d01d6c465761ab1a32d
+ languageName: node
+ linkType: hard
+
+"@cosmjs/json-rpc@npm:^0.32.3":
+ version: 0.32.3
+ resolution: "@cosmjs/json-rpc@npm:0.32.3"
+ dependencies:
+ "@cosmjs/stream": "npm:^0.32.3"
+ xstream: "npm:^11.14.0"
+ checksum: 10c0/8074cab7b9fcdd27c86329d820edf8be27e5cf12f99b845acb9d2fd8263b9a26557ee0729d293c8965c75117fcccd440d4c32eb314c03eef0d3c4273408302df
+ languageName: node
+ linkType: hard
+
+"@cosmjs/json-rpc@npm:^0.32.4":
+ version: 0.32.4
+ resolution: "@cosmjs/json-rpc@npm:0.32.4"
+ dependencies:
+ "@cosmjs/stream": "npm:^0.32.4"
+ xstream: "npm:^11.14.0"
+ checksum: 10c0/b3ebd240f4fb21260e284d2e503ecc61bac898842187ab717f0efb9a5f21272f161f267cc145629caeb9735f80946844384e2bd410275a4744147a44518c0fa0
+ languageName: node
+ linkType: hard
+
+"@cosmjs/math@npm:^0.29.3, @cosmjs/math@npm:^0.29.4, @cosmjs/math@npm:^0.29.5":
+ version: 0.29.5
+ resolution: "@cosmjs/math@npm:0.29.5"
+ dependencies:
+ bn.js: "npm:^5.2.0"
+ checksum: 10c0/e44aedcaf2d72085585612909685c453b6c27397b4506bdfa3556163f33050df5448f6ca076256ed8229ddb12bdd74072b38334d136524180d23d89781deeea7
+ languageName: node
+ linkType: hard
+
+"@cosmjs/math@npm:^0.31.1, @cosmjs/math@npm:^0.31.3":
+ version: 0.31.3
+ resolution: "@cosmjs/math@npm:0.31.3"
+ dependencies:
+ bn.js: "npm:^5.2.0"
+ checksum: 10c0/7dd742ee6ff52bc322d3cd43b9ab0e15d70b41b74a487f64c23609ffe5abce9a02cbec46a729155608a1abb3bc0067ac97361f0af23453fb0b4c438b17e37a99
+ languageName: node
+ linkType: hard
+
+"@cosmjs/math@npm:^0.32.3":
+ version: 0.32.3
+ resolution: "@cosmjs/math@npm:0.32.3"
+ dependencies:
+ bn.js: "npm:^5.2.0"
+ checksum: 10c0/cad8b13a0db739ef4a416b334e39ea9f55874315ebdf91dc38772676c2ead6caccaf8a28b9e8803fc48680a72cf5a9fde97564f5efbfbe9a9073c95665f31294
+ languageName: node
+ linkType: hard
+
+"@cosmjs/math@npm:^0.32.4":
+ version: 0.32.4
+ resolution: "@cosmjs/math@npm:0.32.4"
+ dependencies:
+ bn.js: "npm:^5.2.0"
+ checksum: 10c0/91e47015be5634d27d71d14c5a05899fb4992b69db02cab1558376dedf8254f96d5e24f097c5601804ae18ed33c7c25d023653ac2bf9d20250fd3e5637f6b101
+ languageName: node
+ linkType: hard
+
+"@cosmjs/proto-signing@npm:0.29.3":
+ version: 0.29.3
+ resolution: "@cosmjs/proto-signing@npm:0.29.3"
+ dependencies:
+ "@cosmjs/amino": "npm:^0.29.3"
+ "@cosmjs/crypto": "npm:^0.29.3"
+ "@cosmjs/encoding": "npm:^0.29.3"
+ "@cosmjs/math": "npm:^0.29.3"
+ "@cosmjs/utils": "npm:^0.29.3"
+ cosmjs-types: "npm:^0.5.2"
+ long: "npm:^4.0.0"
+ checksum: 10c0/8d73649b3a340a085633609d4db94b4fc01f94574e3ead2667db071afd12a4008a84710142dd15dc315981d39d55c9355c875176e7ab20ac239980110e23eebe
+ languageName: node
+ linkType: hard
+
+"@cosmjs/proto-signing@npm:0.29.4":
+ version: 0.29.4
+ resolution: "@cosmjs/proto-signing@npm:0.29.4"
+ dependencies:
+ "@cosmjs/amino": "npm:^0.29.4"
+ "@cosmjs/crypto": "npm:^0.29.4"
+ "@cosmjs/encoding": "npm:^0.29.4"
+ "@cosmjs/math": "npm:^0.29.4"
+ "@cosmjs/utils": "npm:^0.29.4"
+ cosmjs-types: "npm:^0.5.2"
+ long: "npm:^4.0.0"
+ checksum: 10c0/0767efde440354e92aa0853b4c649912cd0b65213211144e39edd6c1c930c3571df9ca7c7005806339201e4b54c22ed8e1c8adb108a096f0aaaa175dab102cd5
+ languageName: node
+ linkType: hard
+
+"@cosmjs/proto-signing@npm:^0.29.3, @cosmjs/proto-signing@npm:^0.29.4":
+ version: 0.29.5
+ resolution: "@cosmjs/proto-signing@npm:0.29.5"
+ dependencies:
+ "@cosmjs/amino": "npm:^0.29.5"
+ "@cosmjs/crypto": "npm:^0.29.5"
+ "@cosmjs/encoding": "npm:^0.29.5"
+ "@cosmjs/math": "npm:^0.29.5"
+ "@cosmjs/utils": "npm:^0.29.5"
+ cosmjs-types: "npm:^0.5.2"
+ long: "npm:^4.0.0"
+ checksum: 10c0/d2bcb001511c67f65cee6dbf760f1abcefce0eadcb44f7c663156469cbf2ec0bff80b665b971327b40d4f8ca72b84193f00b17889badf1d8d8407fd05a359fe3
+ languageName: node
+ linkType: hard
+
+"@cosmjs/proto-signing@npm:^0.31.1":
+ version: 0.31.3
+ resolution: "@cosmjs/proto-signing@npm:0.31.3"
+ dependencies:
+ "@cosmjs/amino": "npm:^0.31.3"
+ "@cosmjs/crypto": "npm:^0.31.3"
+ "@cosmjs/encoding": "npm:^0.31.3"
+ "@cosmjs/math": "npm:^0.31.3"
+ "@cosmjs/utils": "npm:^0.31.3"
+ cosmjs-types: "npm:^0.8.0"
+ long: "npm:^4.0.0"
+ checksum: 10c0/91bc6c0d03462b16e85fd6acfd3d28ab56a8de9a199f97601aac30aace75b64250bf0efcdda0aa5e3ea9e6defa46844b5f8e4358aabaeeb16d439480f55bbff7
+ languageName: node
+ linkType: hard
+
+"@cosmjs/proto-signing@npm:^0.32.0, @cosmjs/proto-signing@npm:^0.32.4":
+ version: 0.32.4
+ resolution: "@cosmjs/proto-signing@npm:0.32.4"
+ dependencies:
+ "@cosmjs/amino": "npm:^0.32.4"
+ "@cosmjs/crypto": "npm:^0.32.4"
+ "@cosmjs/encoding": "npm:^0.32.4"
+ "@cosmjs/math": "npm:^0.32.4"
+ "@cosmjs/utils": "npm:^0.32.4"
+ cosmjs-types: "npm:^0.9.0"
+ checksum: 10c0/6915059d2e6dbe1abda4a747c3b1abd47a9eff4f8cb2cf9a5545f939b656b4a15bbde2bfc1364357f9b2a081a066280c3b469f6d13dd5fc51b429b0f90a54913
+ languageName: node
+ linkType: hard
+
+"@cosmjs/proto-signing@npm:^0.32.3":
+ version: 0.32.3
+ resolution: "@cosmjs/proto-signing@npm:0.32.3"
+ dependencies:
+ "@cosmjs/amino": "npm:^0.32.3"
+ "@cosmjs/crypto": "npm:^0.32.3"
+ "@cosmjs/encoding": "npm:^0.32.3"
+ "@cosmjs/math": "npm:^0.32.3"
+ "@cosmjs/utils": "npm:^0.32.3"
+ cosmjs-types: "npm:^0.9.0"
+ checksum: 10c0/d44511d3a50489c1a3f61f28f68ca8cac87d6bdbb69e434cb0916dfc1d79e6a68ca0c09e074d4be73624f26fbb215024848225b862201b7f8d1d6a44014fd819
+ languageName: node
+ linkType: hard
+
+"@cosmjs/socket@npm:^0.29.5":
+ version: 0.29.5
+ resolution: "@cosmjs/socket@npm:0.29.5"
+ dependencies:
+ "@cosmjs/stream": "npm:^0.29.5"
+ isomorphic-ws: "npm:^4.0.1"
+ ws: "npm:^7"
+ xstream: "npm:^11.14.0"
+ checksum: 10c0/ffd7afe5a12fc77603ae3d89380f81330ea565de9de41485c266e61fce224c4666a19f6c47d91de6b6f276389bb5e51bd89bb7002bd43a1d02ae6eb776df9b8f
+ languageName: node
+ linkType: hard
+
+"@cosmjs/socket@npm:^0.31.3":
+ version: 0.31.3
+ resolution: "@cosmjs/socket@npm:0.31.3"
+ dependencies:
+ "@cosmjs/stream": "npm:^0.31.3"
+ isomorphic-ws: "npm:^4.0.1"
+ ws: "npm:^7"
+ xstream: "npm:^11.14.0"
+ checksum: 10c0/35ce93726f1c5c7d4cdf49c68d754b5587ac94fa65fd66f3db625c4794413359e225ddcaa55ee0bb17806a0b9cc13f884a7ec780503267addc6d03aacee1770c
+ languageName: node
+ linkType: hard
+
+"@cosmjs/socket@npm:^0.32.3":
+ version: 0.32.3
+ resolution: "@cosmjs/socket@npm:0.32.3"
+ dependencies:
+ "@cosmjs/stream": "npm:^0.32.3"
+ isomorphic-ws: "npm:^4.0.1"
+ ws: "npm:^7"
+ xstream: "npm:^11.14.0"
+ checksum: 10c0/25a82bd503d6f41adc3fa0b8c350b21bc4838efb0f1322966d6ebffefee61b5f5220d2fe3795b95932873f17937ceae45b25c5d1de92ed72b13abb7309cbace9
+ languageName: node
+ linkType: hard
+
+"@cosmjs/socket@npm:^0.32.4":
+ version: 0.32.4
+ resolution: "@cosmjs/socket@npm:0.32.4"
+ dependencies:
+ "@cosmjs/stream": "npm:^0.32.4"
+ isomorphic-ws: "npm:^4.0.1"
+ ws: "npm:^7"
+ xstream: "npm:^11.14.0"
+ checksum: 10c0/2d94c1fb39016bea3c7c145f4565c8a0fed20c805ac569ea604cd3646c15147b82b8db18a4e3c832d6ae0c3dd14363d4db3d91bcacac922679efba164ed49386
+ languageName: node
+ linkType: hard
+
+"@cosmjs/stargate@npm:0.29.3":
+ version: 0.29.3
+ resolution: "@cosmjs/stargate@npm:0.29.3"
+ dependencies:
+ "@confio/ics23": "npm:^0.6.8"
+ "@cosmjs/amino": "npm:^0.29.3"
+ "@cosmjs/encoding": "npm:^0.29.3"
+ "@cosmjs/math": "npm:^0.29.3"
+ "@cosmjs/proto-signing": "npm:^0.29.3"
+ "@cosmjs/stream": "npm:^0.29.3"
+ "@cosmjs/tendermint-rpc": "npm:^0.29.3"
+ "@cosmjs/utils": "npm:^0.29.3"
+ cosmjs-types: "npm:^0.5.2"
+ long: "npm:^4.0.0"
+ protobufjs: "npm:~6.11.3"
+ xstream: "npm:^11.14.0"
+ checksum: 10c0/a37fc5ba1f2c8521c55d7efb9dfce0e3bfde7b6cbe241e54b36af769d256683ecd955e8b50ee5a9f6932f8847adda3866c3652ece3610463fac3b6d9a021e9fe
+ languageName: node
+ linkType: hard
+
+"@cosmjs/stargate@npm:0.29.4":
+ version: 0.29.4
+ resolution: "@cosmjs/stargate@npm:0.29.4"
+ dependencies:
+ "@confio/ics23": "npm:^0.6.8"
+ "@cosmjs/amino": "npm:^0.29.4"
+ "@cosmjs/encoding": "npm:^0.29.4"
+ "@cosmjs/math": "npm:^0.29.4"
+ "@cosmjs/proto-signing": "npm:^0.29.4"
+ "@cosmjs/stream": "npm:^0.29.4"
+ "@cosmjs/tendermint-rpc": "npm:^0.29.4"
+ "@cosmjs/utils": "npm:^0.29.4"
+ cosmjs-types: "npm:^0.5.2"
+ long: "npm:^4.0.0"
+ protobufjs: "npm:~6.11.3"
+ xstream: "npm:^11.14.0"
+ checksum: 10c0/da9f2b022569b7ad104f5a545fbac23b079d54588cf503bffe5215feb62ae8969344371dce42deba4976d5cdd032b51c1e6d801e5a7879b78e85db4d9d22ca5e
+ languageName: node
+ linkType: hard
+
+"@cosmjs/stargate@npm:0.31.1":
+ version: 0.31.1
+ resolution: "@cosmjs/stargate@npm:0.31.1"
+ dependencies:
+ "@confio/ics23": "npm:^0.6.8"
+ "@cosmjs/amino": "npm:^0.31.1"
+ "@cosmjs/encoding": "npm:^0.31.1"
+ "@cosmjs/math": "npm:^0.31.1"
+ "@cosmjs/proto-signing": "npm:^0.31.1"
+ "@cosmjs/stream": "npm:^0.31.1"
+ "@cosmjs/tendermint-rpc": "npm:^0.31.1"
+ "@cosmjs/utils": "npm:^0.31.1"
+ cosmjs-types: "npm:^0.8.0"
+ long: "npm:^4.0.0"
+ protobufjs: "npm:~6.11.3"
+ xstream: "npm:^11.14.0"
+ checksum: 10c0/4532669efad7630f32df99d3e4f760d870a210e378169c7fa6311b94c722c710990c311f59054621ea50031f507ea5f5fdfc1b20dc77b5452ae59626421a2d4b
+ languageName: node
+ linkType: hard
+
+"@cosmjs/stargate@npm:^0.32.3":
+ version: 0.32.3
+ resolution: "@cosmjs/stargate@npm:0.32.3"
+ dependencies:
+ "@confio/ics23": "npm:^0.6.8"
+ "@cosmjs/amino": "npm:^0.32.3"
+ "@cosmjs/encoding": "npm:^0.32.3"
+ "@cosmjs/math": "npm:^0.32.3"
+ "@cosmjs/proto-signing": "npm:^0.32.3"
+ "@cosmjs/stream": "npm:^0.32.3"
+ "@cosmjs/tendermint-rpc": "npm:^0.32.3"
+ "@cosmjs/utils": "npm:^0.32.3"
+ cosmjs-types: "npm:^0.9.0"
+ xstream: "npm:^11.14.0"
+ checksum: 10c0/c82db0355f4b15ca988f0452f8142102b44840319fe48d44c8dc9c1a316cbe3c9e765eb90970348bd5b5fddd6d9452d5a556e14dbbbd93eda6a6c92ceb616241
+ languageName: node
+ linkType: hard
+
+"@cosmjs/stargate@npm:^0.32.4":
+ version: 0.32.4
+ resolution: "@cosmjs/stargate@npm:0.32.4"
+ dependencies:
+ "@confio/ics23": "npm:^0.6.8"
+ "@cosmjs/amino": "npm:^0.32.4"
+ "@cosmjs/encoding": "npm:^0.32.4"
+ "@cosmjs/math": "npm:^0.32.4"
+ "@cosmjs/proto-signing": "npm:^0.32.4"
+ "@cosmjs/stream": "npm:^0.32.4"
+ "@cosmjs/tendermint-rpc": "npm:^0.32.4"
+ "@cosmjs/utils": "npm:^0.32.4"
+ cosmjs-types: "npm:^0.9.0"
+ xstream: "npm:^11.14.0"
+ checksum: 10c0/c30a3519516aaa7eae58ba827c80fcf74c7fe7a9d3aa5cc8138c3a2768f5f241f59c2f5cec27e9037b4df12b1c6605b4fac9eadb4de97bd84edddc3a80a02e24
+ languageName: node
+ linkType: hard
+
+"@cosmjs/stream@npm:^0.29.3, @cosmjs/stream@npm:^0.29.4, @cosmjs/stream@npm:^0.29.5":
+ version: 0.29.5
+ resolution: "@cosmjs/stream@npm:0.29.5"
+ dependencies:
+ xstream: "npm:^11.14.0"
+ checksum: 10c0/c69613738c01282d43e855af6350a3cb1e254cc472f1a63a817a8f32a86bd4797b5280c120528787dfb6f38738a037a5fafa9c83821c2aef54e79684e134d6ca
+ languageName: node
+ linkType: hard
+
+"@cosmjs/stream@npm:^0.31.1, @cosmjs/stream@npm:^0.31.3":
+ version: 0.31.3
+ resolution: "@cosmjs/stream@npm:0.31.3"
+ dependencies:
+ xstream: "npm:^11.14.0"
+ checksum: 10c0/e0279b925c4f02535ba9b1f6f9563a1db4fb53ed1396e4e3958fcad887e047a78b431a227dd7c159aadb6e0e054db9dfb34b7a9128f2082ff3114bcfd74516c3
+ languageName: node
+ linkType: hard
+
+"@cosmjs/stream@npm:^0.32.3":
+ version: 0.32.3
+ resolution: "@cosmjs/stream@npm:0.32.3"
+ dependencies:
+ xstream: "npm:^11.14.0"
+ checksum: 10c0/963abad76c044265e6961add2a66060134dd610ced9397edcd331669e5aca2a157cc08db658590110233038c38fc5812a9e8d156babbf524eb291200a3708b3a
+ languageName: node
+ linkType: hard
+
+"@cosmjs/stream@npm:^0.32.4":
+ version: 0.32.4
+ resolution: "@cosmjs/stream@npm:0.32.4"
+ dependencies:
+ xstream: "npm:^11.14.0"
+ checksum: 10c0/c677c53f9101c2a36fa03a475d92dea2fa69c475f896751b5e18a5d07087eeecbf6bca2e62a8940003da53fa235a9b2dd78c8257bf19c3f96e3f69fa8d5f183d
+ languageName: node
+ linkType: hard
+
+"@cosmjs/tendermint-rpc@npm:^0.29.3, @cosmjs/tendermint-rpc@npm:^0.29.4":
+ version: 0.29.5
+ resolution: "@cosmjs/tendermint-rpc@npm:0.29.5"
+ dependencies:
+ "@cosmjs/crypto": "npm:^0.29.5"
+ "@cosmjs/encoding": "npm:^0.29.5"
+ "@cosmjs/json-rpc": "npm:^0.29.5"
+ "@cosmjs/math": "npm:^0.29.5"
+ "@cosmjs/socket": "npm:^0.29.5"
+ "@cosmjs/stream": "npm:^0.29.5"
+ "@cosmjs/utils": "npm:^0.29.5"
+ axios: "npm:^0.21.2"
+ readonly-date: "npm:^1.0.0"
+ xstream: "npm:^11.14.0"
+ checksum: 10c0/b2e958e01eb4aafa106a3098c8cae93fcbc04d999c2fb2646132d4d93c7b3668c03f6bb7b0c35946b96a01ab18214c9039f2b078cb16b604fa52444a3f1851c0
+ languageName: node
+ linkType: hard
+
+"@cosmjs/tendermint-rpc@npm:^0.31.1":
+ version: 0.31.3
+ resolution: "@cosmjs/tendermint-rpc@npm:0.31.3"
+ dependencies:
+ "@cosmjs/crypto": "npm:^0.31.3"
+ "@cosmjs/encoding": "npm:^0.31.3"
+ "@cosmjs/json-rpc": "npm:^0.31.3"
+ "@cosmjs/math": "npm:^0.31.3"
+ "@cosmjs/socket": "npm:^0.31.3"
+ "@cosmjs/stream": "npm:^0.31.3"
+ "@cosmjs/utils": "npm:^0.31.3"
+ axios: "npm:^0.21.2"
+ readonly-date: "npm:^1.0.0"
+ xstream: "npm:^11.14.0"
+ checksum: 10c0/1d8d8a78cc1dc54884c0916e709c98d533215f2235ce48f2079cbd8b3a9edf7aa14f216b815d727cacabfead54c0b15ca622fd43243260d8d311bc408edd0f11
+ languageName: node
+ linkType: hard
+
+"@cosmjs/tendermint-rpc@npm:^0.32.3":
+ version: 0.32.3
+ resolution: "@cosmjs/tendermint-rpc@npm:0.32.3"
+ dependencies:
+ "@cosmjs/crypto": "npm:^0.32.3"
+ "@cosmjs/encoding": "npm:^0.32.3"
+ "@cosmjs/json-rpc": "npm:^0.32.3"
+ "@cosmjs/math": "npm:^0.32.3"
+ "@cosmjs/socket": "npm:^0.32.3"
+ "@cosmjs/stream": "npm:^0.32.3"
+ "@cosmjs/utils": "npm:^0.32.3"
+ axios: "npm:^1.6.0"
+ readonly-date: "npm:^1.0.0"
+ xstream: "npm:^11.14.0"
+ checksum: 10c0/9ccde526456e9c4be7a2562c3def25a016267404a057e807ecc0f520aeb0cbfc5bf04bfca58ceecd6f7bf61b7089924c7949c13a7d685efc7ad946b71388c3df
+ languageName: node
+ linkType: hard
+
+"@cosmjs/tendermint-rpc@npm:^0.32.4":
+ version: 0.32.4
+ resolution: "@cosmjs/tendermint-rpc@npm:0.32.4"
+ dependencies:
+ "@cosmjs/crypto": "npm:^0.32.4"
+ "@cosmjs/encoding": "npm:^0.32.4"
+ "@cosmjs/json-rpc": "npm:^0.32.4"
+ "@cosmjs/math": "npm:^0.32.4"
+ "@cosmjs/socket": "npm:^0.32.4"
+ "@cosmjs/stream": "npm:^0.32.4"
+ "@cosmjs/utils": "npm:^0.32.4"
+ axios: "npm:^1.6.0"
+ readonly-date: "npm:^1.0.0"
+ xstream: "npm:^11.14.0"
+ checksum: 10c0/5fae7afcdf98cc7dd36922aa1586254cc8c202cf8fe66804e61d793d31dcff816f40d33f7a0eb72c1b9226c7c361d4848e4ff12d0489f6fa66f47f0c86ae18dd
+ languageName: node
+ linkType: hard
+
+"@cosmjs/utils@npm:^0.29.3, @cosmjs/utils@npm:^0.29.4, @cosmjs/utils@npm:^0.29.5":
+ version: 0.29.5
+ resolution: "@cosmjs/utils@npm:0.29.5"
+ checksum: 10c0/cfb2dbc499bc305cf0b7d3f0afc936b52e0e7492dce33e3bef7986b0e3aa8c34316c60072b7664799d182ce5f5016eaead3d5f948d871c5b1afe30604ef2542d
+ languageName: node
+ linkType: hard
+
+"@cosmjs/utils@npm:^0.31.1, @cosmjs/utils@npm:^0.31.3":
+ version: 0.31.3
+ resolution: "@cosmjs/utils@npm:0.31.3"
+ checksum: 10c0/26266e1206ed8c7c4e744db1e97fc7a341ffee383ca9f43e6c9e8ff596039a90068c39aadc4f6524b6f2b5b6d581318657f3eb272f98b9e430f2d0df79382b6a
+ languageName: node
+ linkType: hard
+
+"@cosmjs/utils@npm:^0.32.3":
+ version: 0.32.3
+ resolution: "@cosmjs/utils@npm:0.32.3"
+ checksum: 10c0/e21cb0387d135142fdebe64fadfe2f7c9446b8b974b9d0dff7a02f04e17e79fcfc3946258ad79af1db35b252058d97c38e1f90f2f14e903a37d85316f31efde6
+ languageName: node
+ linkType: hard
+
+"@cosmjs/utils@npm:^0.32.4":
+ version: 0.32.4
+ resolution: "@cosmjs/utils@npm:0.32.4"
+ checksum: 10c0/d5ff8b235094be1150853a715116049f73eb5cdfeea8ce8e22ecccc61ec99792db457404d4307782b1a2f935dcf438f5c485beabfcfbc1dc5df26eb6e6da9062
+ languageName: node
+ linkType: hard
+
+"@cosmology/chain-template-spawn@workspace:.":
+ version: 0.0.0-use.local
+ resolution: "@cosmology/chain-template-spawn@workspace:."
+ dependencies:
+ "@chain-registry/assets": "npm:1.63.5"
+ "@chain-registry/osmosis": "npm:1.61.3"
+ "@chain-registry/types": "npm:0.44.3"
+ "@cosmjs/amino": "npm:0.32.3"
+ "@cosmjs/cosmwasm-stargate": "npm:0.32.3"
+ "@cosmjs/stargate": "npm:0.31.1"
+ "@cosmos-kit/react": "npm:2.18.0"
+ "@interchain-ui/react": "npm:1.23.31"
+ "@interchain-ui/react-no-ssr": "npm:0.1.2"
+ "@keplr-wallet/types": "npm:^0.12.111"
+ "@tanstack/react-query": "npm:4.32.0"
+ "@tanstack/react-query-devtools": "npm:4.32.0"
+ "@types/node": "npm:18.11.9"
+ "@types/node-gzip": "npm:^1"
+ "@types/react": "npm:18.0.25"
+ "@types/react-dom": "npm:18.0.9"
+ ace-builds: "npm:1.35.0"
+ bignumber.js: "npm:9.1.2"
+ chain-registry: "npm:1.62.3"
+ cosmos-kit: "npm:2.18.4"
+ dayjs: "npm:1.11.11"
+ eslint: "npm:8.28.0"
+ eslint-config-next: "npm:13.0.5"
+ generate-lockfile: "npm:0.0.12"
+ interchain-query: "npm:1.10.1"
+ next: "npm:^13"
+ node-gzip: "npm:^1.1.2"
+ osmo-query: "npm:16.5.1"
+ react: "npm:18.2.0"
+ react-ace: "npm:11.0.1"
+ react-dom: "npm:18.2.0"
+ react-dropzone: "npm:^14.2.3"
+ react-icons: "npm:5.2.1"
+ react-markdown: "npm:9.0.1"
+ typescript: "npm:4.9.3"
+ zustand: "npm:4.5.2"
+ languageName: unknown
+ linkType: soft
+
+"@cosmology/lcd@npm:^0.12.0":
+ version: 0.12.0
+ resolution: "@cosmology/lcd@npm:0.12.0"
+ dependencies:
+ "@babel/runtime": "npm:^7.21.0"
+ axios: "npm:0.27.2"
+ checksum: 10c0/28fbc26cd4c7cf693ae5be7aab637d1f5420f407dbc7a588d67bf5e5bb5e8f0b58e1c428993ca54dbe1dbac8c9dbd9d2713dffad76dfbc727d7bb77b5fb9b041
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/cdcwallet-extension@npm:^2.13.2":
+ version: 2.13.2
+ resolution: "@cosmos-kit/cdcwallet-extension@npm:2.13.2"
+ dependencies:
+ "@chain-registry/keplr": "npm:1.68.2"
+ "@cosmos-kit/core": "npm:^2.13.1"
+ peerDependencies:
+ "@cosmjs/amino": ">=0.32.3"
+ "@cosmjs/proto-signing": ">=0.32.3"
+ checksum: 10c0/2c159f90a568ed1a94495950ddc9d5674249276e803eff784143c2b35986933b95a8a8735d6fcd670070651e8bf3c8de67013cd5f58e62dae95f488bfd1a85d9
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/cdcwallet@npm:^2.13.2":
+ version: 2.13.2
+ resolution: "@cosmos-kit/cdcwallet@npm:2.13.2"
+ dependencies:
+ "@cosmos-kit/cdcwallet-extension": "npm:^2.13.2"
+ checksum: 10c0/d9d0d888a771810356154bc4fbfb1b4530cb97831ce7ff1e35c46a2b388864660dc9e0a7c7b76dff720c0a922645a519877e3f0e69180633f48e06ac0f8a5bf5
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/coin98-extension@npm:^2.12.2":
+ version: 2.12.2
+ resolution: "@cosmos-kit/coin98-extension@npm:2.12.2"
+ dependencies:
+ "@chain-registry/keplr": "npm:1.68.2"
+ "@cosmos-kit/core": "npm:^2.13.1"
+ cosmjs-types: "npm:>=0.9.0"
+ peerDependencies:
+ "@cosmjs/amino": ">=0.32.3"
+ "@cosmjs/proto-signing": ">=0.32.3"
+ checksum: 10c0/1a1423dd45288f77b7cb615342fa9750a11cfd741d5047ef6737d258d6af115f5e2ef6eac4cc41b5ed7599db7d21d02fb7682e02b0f1b533625714a8316794da
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/coin98@npm:^2.11.2":
+ version: 2.11.2
+ resolution: "@cosmos-kit/coin98@npm:2.11.2"
+ dependencies:
+ "@cosmos-kit/coin98-extension": "npm:^2.12.2"
+ checksum: 10c0/7b9cf76b26e816743e17011eb3f1780bf9b49cbcdb7a8d2534322189c4e8e785212fe20794903ffbcfd11c532ab1828463d2527bba85b4a27f921bb8f63e1c9a
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/compass-extension@npm:^2.11.2":
+ version: 2.11.2
+ resolution: "@cosmos-kit/compass-extension@npm:2.11.2"
+ dependencies:
+ "@chain-registry/keplr": "npm:1.68.2"
+ "@cosmos-kit/core": "npm:^2.13.1"
+ peerDependencies:
+ "@cosmjs/amino": ">=0.32.3"
+ "@cosmjs/proto-signing": ">=0.32.3"
+ checksum: 10c0/663087e375619b271e0a0c41e45679c5e45ba17d0c6bd12a354316471ad186454583d15ff5076c106660b9becd723ed6ad3645a502352309a453053955cea8cf
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/compass@npm:^2.11.2":
+ version: 2.11.2
+ resolution: "@cosmos-kit/compass@npm:2.11.2"
+ dependencies:
+ "@cosmos-kit/compass-extension": "npm:^2.11.2"
+ checksum: 10c0/35fe8f1cfe889425cfd85ed41e8299839677a12a4fe3228b78cf2cf5e9389990aeb737b7cea3c9fb7b316a72abfa4bcd441fe07a4065f14e7f59b96d108b7ffe
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/core@npm:^2.13.1":
+ version: 2.13.1
+ resolution: "@cosmos-kit/core@npm:2.13.1"
+ dependencies:
+ "@chain-registry/client": "npm:^1.48.1"
+ "@chain-registry/keplr": "npm:^1.68.2"
+ "@chain-registry/types": "npm:^0.45.1"
+ "@cosmjs/amino": "npm:^0.32.3"
+ "@cosmjs/cosmwasm-stargate": "npm:^0.32.3"
+ "@cosmjs/proto-signing": "npm:^0.32.3"
+ "@cosmjs/stargate": "npm:^0.32.3"
+ "@dao-dao/cosmiframe": "npm:^0.1.0"
+ "@walletconnect/types": "npm:2.11.0"
+ bowser: "npm:2.11.0"
+ cosmjs-types: "npm:^0.9.0"
+ events: "npm:3.3.0"
+ nock: "npm:13.5.4"
+ uuid: "npm:^9.0.1"
+ checksum: 10c0/5295440b213fed8d1853023253888652dd57624ea7dee86720c04964f00209078fafc843359686daffac78fc8e52b68078fbbdf4552dd2e8903315f2ab0e22d5
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/cosmostation-extension@npm:^2.12.2":
+ version: 2.12.2
+ resolution: "@cosmos-kit/cosmostation-extension@npm:2.12.2"
+ dependencies:
+ "@chain-registry/cosmostation": "npm:^1.66.2"
+ "@cosmos-kit/core": "npm:^2.13.1"
+ cosmjs-types: "npm:^0.9.0"
+ peerDependencies:
+ "@cosmjs/amino": ">=0.32.3"
+ "@cosmjs/proto-signing": ">=0.32.3"
+ checksum: 10c0/fcc95612410700ed8114322b5cda8d059b9e168511d5ecdc652b0bdf97c48b25d46fd38227323066cd0b447ff0b8dd59bdb6c0925b8979480032947f77165f6b
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/cosmostation-mobile@npm:^2.11.2":
+ version: 2.11.2
+ resolution: "@cosmos-kit/cosmostation-mobile@npm:2.11.2"
+ dependencies:
+ "@chain-registry/cosmostation": "npm:1.66.2"
+ "@cosmos-kit/core": "npm:^2.13.1"
+ "@cosmos-kit/walletconnect": "npm:^2.10.1"
+ checksum: 10c0/a52d1ae62b1797b809251715e3c88c74646053e34f9e9b96d9d170c252ecf18118bf55e58ca59a8fd50fa7503cd5aebd5a59546de1dabfa618f09733ff3c5439
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/cosmostation@npm:^2.11.2":
+ version: 2.11.2
+ resolution: "@cosmos-kit/cosmostation@npm:2.11.2"
+ dependencies:
+ "@cosmos-kit/cosmostation-extension": "npm:^2.12.2"
+ "@cosmos-kit/cosmostation-mobile": "npm:^2.11.2"
+ checksum: 10c0/f1c55e88e97b47091e5f757a9a4615ddec90baf4e49bbc7d401537728e75cd93b4e96f999215d3d74b3c9c65748b8dd81851b2565c964376a592df4326a445c9
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/exodus-extension@npm:^2.10.2":
+ version: 2.10.2
+ resolution: "@cosmos-kit/exodus-extension@npm:2.10.2"
+ dependencies:
+ "@cosmos-kit/core": "npm:^2.13.1"
+ react-icons: "npm:4.4.0"
+ peerDependencies:
+ "@cosmjs/amino": ">=0.32.3"
+ "@cosmjs/proto-signing": ">=0.32.3"
+ checksum: 10c0/a6b7716472fd28a3172a99471d8e8f9c557344f0c9ea36e5e031f2424e9674ba5de16998fcb2bd0b72d5037a93bfae662f687d83f04268647042462707de3c6c
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/exodus@npm:^2.10.2":
+ version: 2.10.2
+ resolution: "@cosmos-kit/exodus@npm:2.10.2"
+ dependencies:
+ "@cosmos-kit/exodus-extension": "npm:^2.10.2"
+ checksum: 10c0/5733c78fbf176824881124b97a0404d95faf366d39b13fa4e3eecc1119edc9932f7f1469bd2c66d7f7c41d28d70392bf66deaebc76ba3c0a6f353f6e7d557502
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/fin-extension@npm:^2.11.2":
+ version: 2.11.2
+ resolution: "@cosmos-kit/fin-extension@npm:2.11.2"
+ dependencies:
+ "@chain-registry/keplr": "npm:1.68.2"
+ "@cosmos-kit/core": "npm:^2.13.1"
+ peerDependencies:
+ "@cosmjs/amino": ">=0.32.3"
+ "@cosmjs/proto-signing": ">=0.32.3"
+ checksum: 10c0/314968c6c2c637fbc4d7785dd3fb2e12203ea9566583f7b8bc101833c59497d9ce3bd0216236b5dbcbb787d0492b80f9e501bd54d898f5a150b8f76fa46d4537
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/fin@npm:^2.11.2":
+ version: 2.11.2
+ resolution: "@cosmos-kit/fin@npm:2.11.2"
+ dependencies:
+ "@cosmos-kit/fin-extension": "npm:^2.11.2"
+ checksum: 10c0/f24e13e27baf5caf37f1bd18474dad022f4b987fd0213974c7fdd4510cfce3eab428d69ed73ed134115f3b91aa208ec29451ab92f71146660a510ea92f08a025
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/frontier-extension@npm:^2.10.2":
+ version: 2.10.2
+ resolution: "@cosmos-kit/frontier-extension@npm:2.10.2"
+ dependencies:
+ "@cosmos-kit/core": "npm:^2.13.1"
+ peerDependencies:
+ "@cosmjs/amino": ">=0.32.3"
+ "@cosmjs/proto-signing": ">=0.32.3"
+ checksum: 10c0/ae6ceeaaded9367d0a46932d534c051c0ec8d49a76dd80144c61f8de5d9ddbf3cdfe03b682a2ea66756ce93e46e2e1142251a31174ffbc45f688a1aff9cc3155
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/frontier@npm:^2.10.2":
+ version: 2.10.2
+ resolution: "@cosmos-kit/frontier@npm:2.10.2"
+ dependencies:
+ "@cosmos-kit/frontier-extension": "npm:^2.10.2"
+ checksum: 10c0/617ed26dd6cecf960b511180f9a15b4a1360ae7293467ea165b25a4ce89e192d98dc47d77d4086af79abd7ca682a26d2311ac61c3c3cf164b0007a87bca994f5
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/galaxy-station-extension@npm:^2.11.2":
+ version: 2.11.2
+ resolution: "@cosmos-kit/galaxy-station-extension@npm:2.11.2"
+ dependencies:
+ "@chain-registry/types": "npm:0.45.1"
+ "@cosmos-kit/core": "npm:^2.13.1"
+ "@hexxagon/feather.js": "npm:^1.0.9-beta.8"
+ "@hexxagon/station-connector": "npm:^1.0.17"
+ peerDependencies:
+ "@cosmjs/amino": ">=0.32.3"
+ "@cosmjs/proto-signing": ">=0.32.3"
+ checksum: 10c0/6c481b17504935ed589583d18cda708a9d81efde41e66c589b16ee401b8ae72a887b016a106a3a0f2ce9afd12560244474ccd11f818143d342169cea769ca073
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/galaxy-station@npm:^2.10.2":
+ version: 2.10.2
+ resolution: "@cosmos-kit/galaxy-station@npm:2.10.2"
+ dependencies:
+ "@cosmos-kit/galaxy-station-extension": "npm:^2.11.2"
+ checksum: 10c0/86721b41a710dae0c8ec22c0466def90ef8b61cd09505e648d145bcd48997413e996cda4330bfce96e2e788cfcd572bbed556ad1d4d8ef693a1e7a6a3cb765d4
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/keplr-extension@npm:^2.12.2":
+ version: 2.12.2
+ resolution: "@cosmos-kit/keplr-extension@npm:2.12.2"
+ dependencies:
+ "@chain-registry/keplr": "npm:^1.68.2"
+ "@cosmos-kit/core": "npm:^2.13.1"
+ "@keplr-wallet/provider-extension": "npm:^0.12.95"
+ "@keplr-wallet/types": "npm:^0.12.95"
+ peerDependencies:
+ "@cosmjs/amino": ">=0.32.3"
+ "@cosmjs/proto-signing": ">=0.32.3"
+ checksum: 10c0/679a71402b31a520dfe4a14ac18b7d3bc2aec75132760f4d3ad67ae91170a52e5c33587fb8208126ffec8ac911fe07413d37edf2d99c4637fec8d836d6338753
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/keplr-mobile@npm:^2.12.2":
+ version: 2.12.2
+ resolution: "@cosmos-kit/keplr-mobile@npm:2.12.2"
+ dependencies:
+ "@chain-registry/keplr": "npm:1.68.2"
+ "@cosmos-kit/core": "npm:^2.13.1"
+ "@cosmos-kit/keplr-extension": "npm:^2.12.2"
+ "@cosmos-kit/walletconnect": "npm:^2.10.1"
+ "@keplr-wallet/provider-extension": "npm:^0.12.95"
+ "@keplr-wallet/wc-client": "npm:^0.12.95"
+ peerDependencies:
+ "@cosmjs/amino": ">=0.32.3"
+ "@cosmjs/proto-signing": ">=0.32.3"
+ checksum: 10c0/9e8ece5399bd206089e796812018e36ba76be39282e6b397316cb8c102512ee3e866d7b297530067f1705aa808095e016ae785295f0f8cc5d3ae2b780c943090
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/keplr@npm:^2.12.2":
+ version: 2.12.2
+ resolution: "@cosmos-kit/keplr@npm:2.12.2"
+ dependencies:
+ "@cosmos-kit/keplr-extension": "npm:^2.12.2"
+ "@cosmos-kit/keplr-mobile": "npm:^2.12.2"
+ checksum: 10c0/7bc3c2f6b8c360ab0d8fedc02353341d2ad64351d4f309e2a8374484170975e2cdb1a6866af58a2edb1957cc5e4e28012b43f283d23e4e3e9f0478d2db2770ae
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/leap-extension@npm:^2.12.2":
+ version: 2.12.2
+ resolution: "@cosmos-kit/leap-extension@npm:2.12.2"
+ dependencies:
+ "@chain-registry/keplr": "npm:1.68.2"
+ "@cosmos-kit/core": "npm:^2.13.1"
+ peerDependencies:
+ "@cosmjs/amino": ">=0.32.3"
+ "@cosmjs/proto-signing": ">=0.32.3"
+ checksum: 10c0/5d7130cefbf5d29e05f7b792ac8f4d31ffd962088a25531d5be7cae5221309755a8a978982baf627d069d9ff315a6de592c527539657ee3dcf6f6957d205d223
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/leap-metamask-cosmos-snap@npm:^0.12.2":
+ version: 0.12.2
+ resolution: "@cosmos-kit/leap-metamask-cosmos-snap@npm:0.12.2"
+ dependencies:
+ "@chain-registry/keplr": "npm:1.68.2"
+ "@cosmos-kit/core": "npm:^2.13.1"
+ "@leapwallet/cosmos-snap-provider": "npm:0.1.26"
+ "@metamask/providers": "npm:^11.1.1"
+ peerDependencies:
+ "@cosmjs/amino": ">=0.32.3"
+ "@cosmjs/proto-signing": ">=0.32.3"
+ cosmjs-types: ">=0.9.0"
+ checksum: 10c0/123838d21fb83fce13f4635bf34c6484dd8f5e9f6d24d5ce674afd196e0a67c9f6e3e6068c873160060377c8c231d3089a40e5d93a51c9526eed1bd91d8a0080
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/leap-mobile@npm:^2.11.2":
+ version: 2.11.2
+ resolution: "@cosmos-kit/leap-mobile@npm:2.11.2"
+ dependencies:
+ "@chain-registry/keplr": "npm:1.68.2"
+ "@cosmos-kit/core": "npm:^2.13.1"
+ "@cosmos-kit/walletconnect": "npm:^2.10.1"
+ checksum: 10c0/b00131dcdf4155dd6fde16afc3233accf64b31a1dbfbc854b95d7b89642fe95c39d182477cbd102b335b59a59f659072238a29f84e970f3e126694ee22d74596
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/leap@npm:^2.12.2":
+ version: 2.12.2
+ resolution: "@cosmos-kit/leap@npm:2.12.2"
+ dependencies:
+ "@cosmos-kit/leap-extension": "npm:^2.12.2"
+ "@cosmos-kit/leap-metamask-cosmos-snap": "npm:^0.12.2"
+ "@cosmos-kit/leap-mobile": "npm:^2.11.2"
+ checksum: 10c0/cf146378bfd82c7ca84ed4dbd95371ab02b496cd98aa041e5047dfa529f7c9723aae57cc74811f810ebbd737902ea84ea4677d82d9099ab7b2d5c1df19c3a104
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/ledger@npm:^2.11.2":
+ version: 2.11.2
+ resolution: "@cosmos-kit/ledger@npm:2.11.2"
+ dependencies:
+ "@cosmos-kit/core": "npm:^2.13.1"
+ "@ledgerhq/hw-app-cosmos": "npm:^6.28.1"
+ "@ledgerhq/hw-transport-webhid": "npm:^6.27.15"
+ "@ledgerhq/hw-transport-webusb": "npm:^6.27.15"
+ peerDependencies:
+ "@cosmjs/amino": ">=0.32.3"
+ "@cosmjs/proto-signing": ">=0.32.3"
+ checksum: 10c0/96bacf4e41569bb274d10871e1974d156bc2a58e2e3bdf7ae7ee1b73630d2267f6a852c114e9ee30cda03ddda9f7e3d74ed2b937e9c575f84f87919804f985ec
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/okxwallet-extension@npm:^2.11.2":
+ version: 2.11.2
+ resolution: "@cosmos-kit/okxwallet-extension@npm:2.11.2"
+ dependencies:
+ "@cosmos-kit/core": "npm:^2.13.1"
+ peerDependencies:
+ "@cosmjs/amino": ">=0.32.3"
+ "@cosmjs/proto-signing": ">=0.32.3"
+ checksum: 10c0/f2b2bd0067eed702f6a16cf8ef716e1c6a7aa42d8f263b90f4fb8e2346c41a275221a544c4fd42bb50a83d13c254de90d428e1f0b22c3591075e0daf37d069eb
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/omni-mobile@npm:^2.10.2":
+ version: 2.10.2
+ resolution: "@cosmos-kit/omni-mobile@npm:2.10.2"
+ dependencies:
+ "@cosmos-kit/core": "npm:^2.13.1"
+ "@cosmos-kit/walletconnect": "npm:^2.10.1"
+ peerDependencies:
+ "@cosmjs/amino": ">=0.32.3"
+ "@cosmjs/proto-signing": ">=0.32.3"
+ checksum: 10c0/71a780a4f7a9ffa60be8c35c0515123c4e657a4f4495df23c0343d870838ebac64a65678a15748774b166f60cde5894075534213e354f54d4e12d09cbada3cf3
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/omni@npm:^2.10.2":
+ version: 2.10.2
+ resolution: "@cosmos-kit/omni@npm:2.10.2"
+ dependencies:
+ "@cosmos-kit/omni-mobile": "npm:^2.10.2"
+ checksum: 10c0/d33c64f53f740cf4c50bbdf04a195c8f676d1acfb94aac82b996cd183afdd405602904ac1ff11c41daddcde2a56691f959d528259e7d26d0a57b18ce61d4807e
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/owallet-extension@npm:^2.12.2":
+ version: 2.12.2
+ resolution: "@cosmos-kit/owallet-extension@npm:2.12.2"
+ dependencies:
+ "@chain-registry/keplr": "npm:1.68.2"
+ "@cosmos-kit/core": "npm:^2.13.1"
+ "@keplr-wallet/types": "npm:^0.12.90"
+ peerDependencies:
+ "@cosmjs/amino": ">=0.32.3"
+ "@cosmjs/proto-signing": ">=0.32.3"
+ checksum: 10c0/c6e10fa9caff33c3a8788ec1be4a12ee2c25d906a4fb24b0b08c387d6ea6c6b6b3d0e2a77e980c0839513a42ef790db897a310327ba0354a0ed79987f98ca285
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/owallet@npm:^2.11.2":
+ version: 2.11.2
+ resolution: "@cosmos-kit/owallet@npm:2.11.2"
+ dependencies:
+ "@cosmos-kit/owallet-extension": "npm:^2.12.2"
+ checksum: 10c0/06d2a2b086d932ac18824a926674e6f102c99e4cd8ebfb79e5e0254d594c2ef82b2e44da550144ce56bd685c44a84b6c4cecc421b062b7a1ed07a07ae9f0e52a
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/react-lite@npm:^2.13.0":
+ version: 2.13.0
+ resolution: "@cosmos-kit/react-lite@npm:2.13.0"
+ dependencies:
+ "@chain-registry/types": "npm:^0.45.1"
+ "@cosmos-kit/core": "npm:^2.13.1"
+ "@dao-dao/cosmiframe": "npm:^0.1.0"
+ peerDependencies:
+ "@types/react": ">= 17"
+ "@types/react-dom": ">= 17"
+ react: ^18
+ react-dom: ^18
+ checksum: 10c0/8eae200d14fdd74cfad691a56ae3cd87e4d84f3b0483669adc4cc0228782bd630959b13e0cd1276ad3b297aa21b56bbd93867e9644daa25bd4ea95cbafa682a6
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/react@npm:2.18.0":
+ version: 2.18.0
+ resolution: "@cosmos-kit/react@npm:2.18.0"
+ dependencies:
+ "@chain-registry/types": "npm:^0.45.1"
+ "@cosmos-kit/core": "npm:^2.13.1"
+ "@cosmos-kit/react-lite": "npm:^2.13.0"
+ "@react-icons/all-files": "npm:^4.1.0"
+ peerDependencies:
+ "@interchain-ui/react": ^1.23.9
+ "@types/react": ">= 17"
+ "@types/react-dom": ">= 17"
+ react: ^18
+ react-dom: ^18
+ checksum: 10c0/b23e43a79e8c616e2c245a5637f904a7efc7b46358415963e0a6879846061a26964416afde4d2275175a3777291b985d25e433429bf198c52f148ea47aa08da8
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/shell-extension@npm:^2.11.2":
+ version: 2.11.2
+ resolution: "@cosmos-kit/shell-extension@npm:2.11.2"
+ dependencies:
+ "@chain-registry/keplr": "npm:1.68.2"
+ "@cosmos-kit/core": "npm:^2.13.1"
+ peerDependencies:
+ "@cosmjs/amino": ">=0.32.3"
+ "@cosmjs/proto-signing": ">=0.32.3"
+ checksum: 10c0/c708c603aab2c7c289f8decfc8cb7b833595734e147f8905f8cd30a4bf288391f0c3366f2a8e4855041b12495ed70a40cb98470edd446a495277d00b4e91518c
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/shell@npm:^2.11.2":
+ version: 2.11.2
+ resolution: "@cosmos-kit/shell@npm:2.11.2"
+ dependencies:
+ "@cosmos-kit/shell-extension": "npm:^2.11.2"
+ checksum: 10c0/cc531070a980b4fa57a34ee96b54d070fe9782e4477ff9da997ae37e6f30d3ea5921ea523768bd70f72e0eddf46f67ba592e4b7fe75b99679bc7da562797ccf0
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/station-extension@npm:^2.11.2":
+ version: 2.11.2
+ resolution: "@cosmos-kit/station-extension@npm:2.11.2"
+ dependencies:
+ "@cosmos-kit/core": "npm:^2.13.1"
+ "@terra-money/feather.js": "npm:^1.0.8"
+ "@terra-money/station-connector": "npm:^1.1.0"
+ "@terra-money/wallet-types": "npm:^3.11.2"
+ peerDependencies:
+ "@chain-registry/types": ">= 0.17"
+ "@cosmjs/amino": ">=0.32.3"
+ "@cosmjs/proto-signing": ">=0.32.3"
+ checksum: 10c0/0532961a303ab7cad2319f27c71c80f9662ec9f7a5d957f27dc49c8753417dbc94c4ec175010b9b616af1512e42dc09144a12c5c143a5ab64bb2015d0fc6768e
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/station@npm:^2.10.2":
+ version: 2.10.2
+ resolution: "@cosmos-kit/station@npm:2.10.2"
+ dependencies:
+ "@cosmos-kit/station-extension": "npm:^2.11.2"
+ checksum: 10c0/1d0e1a05e9fd2528d1c105fba340244adff25460b536d75fcc2454f56f317efd6edced3eddee9cc8b9d897338114f9469af272fd1a5f7f1c317273acfc5f29b4
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/tailwind-extension@npm:^1.5.2":
+ version: 1.5.2
+ resolution: "@cosmos-kit/tailwind-extension@npm:1.5.2"
+ dependencies:
+ "@cosmos-kit/core": "npm:^2.13.1"
+ checksum: 10c0/a8facdddc4df41814ae5048423b3c9da8c223503f16fb6728038238790fd143a2ebda727c813f9ae2c1190c0d0da07e942a8c0181ea2e1268f9580435550d2ed
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/tailwind@npm:^1.5.2":
+ version: 1.5.2
+ resolution: "@cosmos-kit/tailwind@npm:1.5.2"
+ dependencies:
+ "@cosmos-kit/tailwind-extension": "npm:^1.5.2"
+ checksum: 10c0/79d9ce43765e90c990f52d72049d4705322d3fc9175214f80aec7d24cbce24460cf37aaab9baf424aa965ff2b9398e3c84c32f8ac2bb5c4a35370ebddefc4733
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/trust-extension@npm:^2.10.2":
+ version: 2.10.2
+ resolution: "@cosmos-kit/trust-extension@npm:2.10.2"
+ dependencies:
+ "@cosmos-kit/core": "npm:^2.13.1"
+ peerDependencies:
+ "@cosmjs/amino": ">=0.32.3"
+ "@cosmjs/proto-signing": ">=0.32.3"
+ checksum: 10c0/4a56176642f984aa07a3b46f4dfed59113e4012350c45b854c4ea96cedd2dbf8cbf07e7c9a943ffaf85d624c0f8612d3eb6dd2518926ce82289a48a208859f13
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/trust-mobile@npm:^2.10.2":
+ version: 2.10.2
+ resolution: "@cosmos-kit/trust-mobile@npm:2.10.2"
+ dependencies:
+ "@cosmos-kit/core": "npm:^2.13.1"
+ "@cosmos-kit/walletconnect": "npm:^2.10.1"
+ peerDependencies:
+ "@cosmjs/amino": ">=0.32.3"
+ "@cosmjs/proto-signing": ">=0.32.3"
+ checksum: 10c0/6ed367a52d75355add3bddcbefc47e589110da9e1d42f7b65fdd7e02398786d083403f685539ea03a0b65f9a9813e1703d2c53a67aa834c091170e488b77205c
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/trust@npm:^2.11.2":
+ version: 2.11.2
+ resolution: "@cosmos-kit/trust@npm:2.11.2"
+ dependencies:
+ "@cosmos-kit/trust-extension": "npm:^2.10.2"
+ "@cosmos-kit/trust-mobile": "npm:^2.10.2"
+ checksum: 10c0/68824bdab267de17b5ed0689a6b2a4881b06d5ec292bc1d12d9890552039229f6768eaf0e0ac8017633f67e9140a56da62df514f13f9aa6de09e7a55cc350132
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/vectis-extension@npm:^2.11.2":
+ version: 2.11.2
+ resolution: "@cosmos-kit/vectis-extension@npm:2.11.2"
+ dependencies:
+ "@chain-registry/keplr": "npm:1.68.2"
+ "@cosmos-kit/core": "npm:^2.13.1"
+ peerDependencies:
+ "@cosmjs/amino": ">=0.32.3"
+ "@cosmjs/proto-signing": ">=0.32.3"
+ checksum: 10c0/d150dd1f8845073b98d4ebf1d59f8459881cfc3e7b954fe0cd1932852bc7cb1986da6c44cbea7d06ce57c971fd8a1d5b7daa7c27fb0d31abfb4b1fdc786bd2b4
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/vectis@npm:^2.11.2":
+ version: 2.11.2
+ resolution: "@cosmos-kit/vectis@npm:2.11.2"
+ dependencies:
+ "@cosmos-kit/vectis-extension": "npm:^2.11.2"
+ checksum: 10c0/e9baa032280d35fc6da13a771bb7e4180decede89f052d9297e702d9ea3aaed7ce92d98865e2bb3b60f8a86ae7770add714db8072d64c89fd8d00449887ddee7
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/walletconnect@npm:^2.10.1":
+ version: 2.10.1
+ resolution: "@cosmos-kit/walletconnect@npm:2.10.1"
+ dependencies:
+ "@cosmjs/proto-signing": "npm:^0.32.3"
+ "@cosmos-kit/core": "npm:^2.13.1"
+ "@walletconnect/sign-client": "npm:^2.9.0"
+ "@walletconnect/utils": "npm:^2.9.0"
+ events: "npm:3.3.0"
+ peerDependencies:
+ "@cosmjs/amino": ">=0.32.3"
+ "@walletconnect/types": 2.11.0
+ checksum: 10c0/5940d33dfebb75f029b57cfa1de9206d2fc3c36e406cef29786ac5c0cd749cd0f5c06e5953d096bc522f45d8c1903cb1aa4429ee07425f261cc3167dcb6b35b6
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/xdefi-extension@npm:^2.11.2":
+ version: 2.11.2
+ resolution: "@cosmos-kit/xdefi-extension@npm:2.11.2"
+ dependencies:
+ "@cosmos-kit/core": "npm:^2.13.1"
+ peerDependencies:
+ "@cosmjs/amino": ">=0.32.3"
+ "@cosmjs/proto-signing": ">=0.32.3"
+ checksum: 10c0/73afc1fb1ed406c5fa44081baf2c0b3d0fd90e6d162427e66040f8319a10ef72c756bd180861400f0f1b51cdd8d54c4a4fdb56fb71eda1aef2003d3131a7404a
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/xdefi@npm:^2.10.2":
+ version: 2.10.2
+ resolution: "@cosmos-kit/xdefi@npm:2.10.2"
+ dependencies:
+ "@cosmos-kit/xdefi-extension": "npm:^2.11.2"
+ checksum: 10c0/a7dcb2a6234d4828f60fa835247627a6183fe000f4e2106f8c6a1e2bff5c2c842a887a5ddae188e2d500b807e1d4580fddfb318499683914f0abf6ffa2f72faa
+ languageName: node
+ linkType: hard
+
+"@cosmostation/extension-client@npm:0.1.15":
+ version: 0.1.15
+ resolution: "@cosmostation/extension-client@npm:0.1.15"
+ checksum: 10c0/4afc033a6f0c894a632b5b6806c9588daab2aeb0afd3004429be2b6ec96636b9103f3097b86c606de3df239451dce4efdc930acdb0835919cc3f6727755871c3
+ languageName: node
+ linkType: hard
+
+"@dao-dao/cosmiframe@npm:^0.1.0":
+ version: 0.1.0
+ resolution: "@dao-dao/cosmiframe@npm:0.1.0"
+ dependencies:
+ uuid: "npm:^9.0.1"
+ peerDependencies:
+ "@cosmjs/amino": "*"
+ "@cosmjs/proto-signing": "*"
+ checksum: 10c0/e65a64a8ce67063585c2f21c07a7443358cfcbd2153c432b2e882a0549e37edb8d5a375ef49d279d2ec7cb46dfce6d728ccc872cdf89a444602319d11e44ccc8
+ languageName: node
+ linkType: hard
+
+"@emotion/hash@npm:^0.9.0":
+ version: 0.9.1
+ resolution: "@emotion/hash@npm:0.9.1"
+ checksum: 10c0/cdafe5da63fc1137f3db6e232fdcde9188b2b47ee66c56c29137199642a4086f42382d866911cfb4833cae2cc00271ab45cad3946b024f67b527bb7fac7f4c9d
+ languageName: node
+ linkType: hard
+
+"@eslint/eslintrc@npm:^1.3.3":
+ version: 1.4.1
+ resolution: "@eslint/eslintrc@npm:1.4.1"
+ dependencies:
+ ajv: "npm:^6.12.4"
+ debug: "npm:^4.3.2"
+ espree: "npm:^9.4.0"
+ globals: "npm:^13.19.0"
+ ignore: "npm:^5.2.0"
+ import-fresh: "npm:^3.2.1"
+ js-yaml: "npm:^4.1.0"
+ minimatch: "npm:^3.1.2"
+ strip-json-comments: "npm:^3.1.1"
+ checksum: 10c0/1030e1a4a355f8e4629e19d3d45448a05a8e65ecf49154bebc66599d038f155e830498437cbfc7246e8084adc1f814904f696c2461707cc8c73be961e2e8ae5a
+ languageName: node
+ linkType: hard
+
+"@ethersproject/abi@npm:5.7.0, @ethersproject/abi@npm:^5.7.0":
+ version: 5.7.0
+ resolution: "@ethersproject/abi@npm:5.7.0"
+ dependencies:
+ "@ethersproject/address": "npm:^5.7.0"
+ "@ethersproject/bignumber": "npm:^5.7.0"
+ "@ethersproject/bytes": "npm:^5.7.0"
+ "@ethersproject/constants": "npm:^5.7.0"
+ "@ethersproject/hash": "npm:^5.7.0"
+ "@ethersproject/keccak256": "npm:^5.7.0"
+ "@ethersproject/logger": "npm:^5.7.0"
+ "@ethersproject/properties": "npm:^5.7.0"
+ "@ethersproject/strings": "npm:^5.7.0"
+ checksum: 10c0/7de51bf52ff03df2526546dacea6e74f15d4c5ef762d931552082b9600dcefd8e333599f02d7906ba89f7b7f48c45ab72cee76f397212b4f17fa9d9ff5615916
+ languageName: node
+ linkType: hard
+
+"@ethersproject/abstract-provider@npm:5.7.0, @ethersproject/abstract-provider@npm:^5.7.0":
+ version: 5.7.0
+ resolution: "@ethersproject/abstract-provider@npm:5.7.0"
+ dependencies:
+ "@ethersproject/bignumber": "npm:^5.7.0"
+ "@ethersproject/bytes": "npm:^5.7.0"
+ "@ethersproject/logger": "npm:^5.7.0"
+ "@ethersproject/networks": "npm:^5.7.0"
+ "@ethersproject/properties": "npm:^5.7.0"
+ "@ethersproject/transactions": "npm:^5.7.0"
+ "@ethersproject/web": "npm:^5.7.0"
+ checksum: 10c0/a5708e2811b90ddc53d9318ce152511a32dd4771aa2fb59dbe9e90468bb75ca6e695d958bf44d13da684dc3b6aab03f63d425ff7591332cb5d7ddaf68dff7224
+ languageName: node
+ linkType: hard
+
+"@ethersproject/abstract-signer@npm:5.7.0, @ethersproject/abstract-signer@npm:^5.7.0":
+ version: 5.7.0
+ resolution: "@ethersproject/abstract-signer@npm:5.7.0"
+ dependencies:
+ "@ethersproject/abstract-provider": "npm:^5.7.0"
+ "@ethersproject/bignumber": "npm:^5.7.0"
+ "@ethersproject/bytes": "npm:^5.7.0"
+ "@ethersproject/logger": "npm:^5.7.0"
+ "@ethersproject/properties": "npm:^5.7.0"
+ checksum: 10c0/e174966b3be17269a5974a3ae5eef6d15ac62ee8c300ceace26767f218f6bbf3de66f29d9a9c9ca300fa8551aab4c92e28d2cc772f5475fdeaa78d9b5be0e745
+ languageName: node
+ linkType: hard
+
+"@ethersproject/address@npm:5.7.0, @ethersproject/address@npm:^5.6.0, @ethersproject/address@npm:^5.7.0":
+ version: 5.7.0
+ resolution: "@ethersproject/address@npm:5.7.0"
+ dependencies:
+ "@ethersproject/bignumber": "npm:^5.7.0"
+ "@ethersproject/bytes": "npm:^5.7.0"
+ "@ethersproject/keccak256": "npm:^5.7.0"
+ "@ethersproject/logger": "npm:^5.7.0"
+ "@ethersproject/rlp": "npm:^5.7.0"
+ checksum: 10c0/db5da50abeaae8f6cf17678323e8d01cad697f9a184b0593c62b71b0faa8d7e5c2ba14da78a998d691773ed6a8eb06701f65757218e0eaaeb134e5c5f3e5a908
+ languageName: node
+ linkType: hard
+
+"@ethersproject/base64@npm:5.7.0, @ethersproject/base64@npm:^5.7.0":
+ version: 5.7.0
+ resolution: "@ethersproject/base64@npm:5.7.0"
+ dependencies:
+ "@ethersproject/bytes": "npm:^5.7.0"
+ checksum: 10c0/4f748cd82af60ff1866db699fbf2bf057feff774ea0a30d1f03ea26426f53293ea10cc8265cda1695301da61093bedb8cc0d38887f43ed9dad96b78f19d7337e
+ languageName: node
+ linkType: hard
+
+"@ethersproject/basex@npm:5.7.0, @ethersproject/basex@npm:^5.7.0":
+ version: 5.7.0
+ resolution: "@ethersproject/basex@npm:5.7.0"
+ dependencies:
+ "@ethersproject/bytes": "npm:^5.7.0"
+ "@ethersproject/properties": "npm:^5.7.0"
+ checksum: 10c0/02304de77477506ad798eb5c68077efd2531624380d770ef4a823e631a288fb680107a0f9dc4a6339b2a0b0f5b06ee77f53429afdad8f950cde0f3e40d30167d
+ languageName: node
+ linkType: hard
+
+"@ethersproject/bignumber@npm:5.7.0, @ethersproject/bignumber@npm:^5.7.0":
+ version: 5.7.0
+ resolution: "@ethersproject/bignumber@npm:5.7.0"
+ dependencies:
+ "@ethersproject/bytes": "npm:^5.7.0"
+ "@ethersproject/logger": "npm:^5.7.0"
+ bn.js: "npm:^5.2.1"
+ checksum: 10c0/14263cdc91a7884b141d9300f018f76f69839c47e95718ef7161b11d2c7563163096fee69724c5fa8ef6f536d3e60f1c605819edbc478383a2b98abcde3d37b2
+ languageName: node
+ linkType: hard
+
+"@ethersproject/bytes@npm:5.7.0, @ethersproject/bytes@npm:^5.7.0":
+ version: 5.7.0
+ resolution: "@ethersproject/bytes@npm:5.7.0"
+ dependencies:
+ "@ethersproject/logger": "npm:^5.7.0"
+ checksum: 10c0/07dd1f0341b3de584ef26c8696674ff2bb032f4e99073856fc9cd7b4c54d1d846cabe149e864be267934658c3ce799e5ea26babe01f83af0e1f06c51e5ac791f
+ languageName: node
+ linkType: hard
+
+"@ethersproject/constants@npm:5.7.0, @ethersproject/constants@npm:^5.7.0":
+ version: 5.7.0
+ resolution: "@ethersproject/constants@npm:5.7.0"
+ dependencies:
+ "@ethersproject/bignumber": "npm:^5.7.0"
+ checksum: 10c0/6df63ab753e152726b84595250ea722165a5744c046e317df40a6401f38556385a37c84dadf5b11ca651c4fb60f967046125369c57ac84829f6b30e69a096273
+ languageName: node
+ linkType: hard
+
+"@ethersproject/contracts@npm:5.7.0":
+ version: 5.7.0
+ resolution: "@ethersproject/contracts@npm:5.7.0"
+ dependencies:
+ "@ethersproject/abi": "npm:^5.7.0"
+ "@ethersproject/abstract-provider": "npm:^5.7.0"
+ "@ethersproject/abstract-signer": "npm:^5.7.0"
+ "@ethersproject/address": "npm:^5.7.0"
+ "@ethersproject/bignumber": "npm:^5.7.0"
+ "@ethersproject/bytes": "npm:^5.7.0"
+ "@ethersproject/constants": "npm:^5.7.0"
+ "@ethersproject/logger": "npm:^5.7.0"
+ "@ethersproject/properties": "npm:^5.7.0"
+ "@ethersproject/transactions": "npm:^5.7.0"
+ checksum: 10c0/97a10361dddaccfb3e9e20e24d071cfa570050adcb964d3452c5f7c9eaaddb4e145ec9cf928e14417948701b89e81d4907800e799a6083123e4d13a576842f41
+ languageName: node
+ linkType: hard
+
+"@ethersproject/hash@npm:5.7.0, @ethersproject/hash@npm:^5.7.0":
+ version: 5.7.0
+ resolution: "@ethersproject/hash@npm:5.7.0"
+ dependencies:
+ "@ethersproject/abstract-signer": "npm:^5.7.0"
+ "@ethersproject/address": "npm:^5.7.0"
+ "@ethersproject/base64": "npm:^5.7.0"
+ "@ethersproject/bignumber": "npm:^5.7.0"
+ "@ethersproject/bytes": "npm:^5.7.0"
+ "@ethersproject/keccak256": "npm:^5.7.0"
+ "@ethersproject/logger": "npm:^5.7.0"
+ "@ethersproject/properties": "npm:^5.7.0"
+ "@ethersproject/strings": "npm:^5.7.0"
+ checksum: 10c0/1a631dae34c4cf340dde21d6940dd1715fc7ae483d576f7b8ef9e8cb1d0e30bd7e8d30d4a7d8dc531c14164602323af2c3d51eb2204af18b2e15167e70c9a5ef
+ languageName: node
+ linkType: hard
+
+"@ethersproject/hdnode@npm:5.7.0, @ethersproject/hdnode@npm:^5.7.0":
+ version: 5.7.0
+ resolution: "@ethersproject/hdnode@npm:5.7.0"
+ dependencies:
+ "@ethersproject/abstract-signer": "npm:^5.7.0"
+ "@ethersproject/basex": "npm:^5.7.0"
+ "@ethersproject/bignumber": "npm:^5.7.0"
+ "@ethersproject/bytes": "npm:^5.7.0"
+ "@ethersproject/logger": "npm:^5.7.0"
+ "@ethersproject/pbkdf2": "npm:^5.7.0"
+ "@ethersproject/properties": "npm:^5.7.0"
+ "@ethersproject/sha2": "npm:^5.7.0"
+ "@ethersproject/signing-key": "npm:^5.7.0"
+ "@ethersproject/strings": "npm:^5.7.0"
+ "@ethersproject/transactions": "npm:^5.7.0"
+ "@ethersproject/wordlists": "npm:^5.7.0"
+ checksum: 10c0/36d5c13fe69b1e0a18ea98537bc560d8ba166e012d63faac92522a0b5f405eb67d8848c5aca69e2470f62743aaef2ac36638d9e27fd8c68f51506eb61479d51d
+ languageName: node
+ linkType: hard
+
+"@ethersproject/json-wallets@npm:5.7.0, @ethersproject/json-wallets@npm:^5.7.0":
+ version: 5.7.0
+ resolution: "@ethersproject/json-wallets@npm:5.7.0"
+ dependencies:
+ "@ethersproject/abstract-signer": "npm:^5.7.0"
+ "@ethersproject/address": "npm:^5.7.0"
+ "@ethersproject/bytes": "npm:^5.7.0"
+ "@ethersproject/hdnode": "npm:^5.7.0"
+ "@ethersproject/keccak256": "npm:^5.7.0"
+ "@ethersproject/logger": "npm:^5.7.0"
+ "@ethersproject/pbkdf2": "npm:^5.7.0"
+ "@ethersproject/properties": "npm:^5.7.0"
+ "@ethersproject/random": "npm:^5.7.0"
+ "@ethersproject/strings": "npm:^5.7.0"
+ "@ethersproject/transactions": "npm:^5.7.0"
+ aes-js: "npm:3.0.0"
+ scrypt-js: "npm:3.0.1"
+ checksum: 10c0/f1a84d19ff38d3506f453abc4702107cbc96a43c000efcd273a056371363767a06a8d746f84263b1300266eb0c329fe3b49a9b39a37aadd016433faf9e15a4bb
+ languageName: node
+ linkType: hard
+
+"@ethersproject/keccak256@npm:5.7.0, @ethersproject/keccak256@npm:^5.5.0, @ethersproject/keccak256@npm:^5.7.0":
+ version: 5.7.0
+ resolution: "@ethersproject/keccak256@npm:5.7.0"
+ dependencies:
+ "@ethersproject/bytes": "npm:^5.7.0"
+ js-sha3: "npm:0.8.0"
+ checksum: 10c0/3b1a91706ff11f5ab5496840b9c36cedca27db443186d28b94847149fd16baecdc13f6fc5efb8359506392f2aba559d07e7f9c1e17a63f9d5de9f8053cfcb033
+ languageName: node
+ linkType: hard
+
+"@ethersproject/logger@npm:5.7.0, @ethersproject/logger@npm:^5.7.0":
+ version: 5.7.0
+ resolution: "@ethersproject/logger@npm:5.7.0"
+ checksum: 10c0/d03d460fb2d4a5e71c627b7986fb9e50e1b59a6f55e8b42a545b8b92398b961e7fd294bd9c3d8f92b35d0f6ff9d15aa14c95eab378f8ea194e943c8ace343501
+ languageName: node
+ linkType: hard
+
+"@ethersproject/networks@npm:5.7.1, @ethersproject/networks@npm:^5.7.0":
+ version: 5.7.1
+ resolution: "@ethersproject/networks@npm:5.7.1"
+ dependencies:
+ "@ethersproject/logger": "npm:^5.7.0"
+ checksum: 10c0/9efcdce27f150459e85d74af3f72d5c32898823a99f5410e26bf26cca2d21fb14e403377314a93aea248e57fb2964e19cee2c3f7bfc586ceba4c803a8f1b75c0
+ languageName: node
+ linkType: hard
+
+"@ethersproject/pbkdf2@npm:5.7.0, @ethersproject/pbkdf2@npm:^5.7.0":
+ version: 5.7.0
+ resolution: "@ethersproject/pbkdf2@npm:5.7.0"
+ dependencies:
+ "@ethersproject/bytes": "npm:^5.7.0"
+ "@ethersproject/sha2": "npm:^5.7.0"
+ checksum: 10c0/e5a29cf28b4f4ca1def94d37cfb6a9c05c896106ed64881707813de01c1e7ded613f1e95febcccda4de96aae929068831d72b9d06beef1377b5a1a13a0eb3ff5
+ languageName: node
+ linkType: hard
+
+"@ethersproject/properties@npm:5.7.0, @ethersproject/properties@npm:^5.7.0":
+ version: 5.7.0
+ resolution: "@ethersproject/properties@npm:5.7.0"
+ dependencies:
+ "@ethersproject/logger": "npm:^5.7.0"
+ checksum: 10c0/4fe5d36e5550b8e23a305aa236a93e8f04d891d8198eecdc8273914c761b0e198fd6f757877406ee3eb05033ec271132a3e5998c7bd7b9a187964fb4f67b1373
+ languageName: node
+ linkType: hard
+
+"@ethersproject/providers@npm:5.7.2":
+ version: 5.7.2
+ resolution: "@ethersproject/providers@npm:5.7.2"
+ dependencies:
+ "@ethersproject/abstract-provider": "npm:^5.7.0"
+ "@ethersproject/abstract-signer": "npm:^5.7.0"
+ "@ethersproject/address": "npm:^5.7.0"
+ "@ethersproject/base64": "npm:^5.7.0"
+ "@ethersproject/basex": "npm:^5.7.0"
+ "@ethersproject/bignumber": "npm:^5.7.0"
+ "@ethersproject/bytes": "npm:^5.7.0"
+ "@ethersproject/constants": "npm:^5.7.0"
+ "@ethersproject/hash": "npm:^5.7.0"
+ "@ethersproject/logger": "npm:^5.7.0"
+ "@ethersproject/networks": "npm:^5.7.0"
+ "@ethersproject/properties": "npm:^5.7.0"
+ "@ethersproject/random": "npm:^5.7.0"
+ "@ethersproject/rlp": "npm:^5.7.0"
+ "@ethersproject/sha2": "npm:^5.7.0"
+ "@ethersproject/strings": "npm:^5.7.0"
+ "@ethersproject/transactions": "npm:^5.7.0"
+ "@ethersproject/web": "npm:^5.7.0"
+ bech32: "npm:1.1.4"
+ ws: "npm:7.4.6"
+ checksum: 10c0/4c8d19e6b31f769c24042fb2d02e483a4ee60dcbfca9e3291f0a029b24337c47d1ea719a390be856f8fd02997125819e834415e77da4fb2023369712348dae4c
+ languageName: node
+ linkType: hard
+
+"@ethersproject/random@npm:5.7.0, @ethersproject/random@npm:^5.7.0":
+ version: 5.7.0
+ resolution: "@ethersproject/random@npm:5.7.0"
+ dependencies:
+ "@ethersproject/bytes": "npm:^5.7.0"
+ "@ethersproject/logger": "npm:^5.7.0"
+ checksum: 10c0/23e572fc55372653c22062f6a153a68c2e2d3200db734cd0d39621fbfd0ca999585bed2d5682e3ac65d87a2893048375682e49d1473d9965631ff56d2808580b
+ languageName: node
+ linkType: hard
+
+"@ethersproject/rlp@npm:5.7.0, @ethersproject/rlp@npm:^5.7.0":
+ version: 5.7.0
+ resolution: "@ethersproject/rlp@npm:5.7.0"
+ dependencies:
+ "@ethersproject/bytes": "npm:^5.7.0"
+ "@ethersproject/logger": "npm:^5.7.0"
+ checksum: 10c0/bc863d21dcf7adf6a99ae75c41c4a3fb99698cfdcfc6d5d82021530f3d3551c6305bc7b6f0475ad6de6f69e91802b7e872bee48c0596d98969aefcf121c2a044
+ languageName: node
+ linkType: hard
+
+"@ethersproject/sha2@npm:5.7.0, @ethersproject/sha2@npm:^5.7.0":
+ version: 5.7.0
+ resolution: "@ethersproject/sha2@npm:5.7.0"
+ dependencies:
+ "@ethersproject/bytes": "npm:^5.7.0"
+ "@ethersproject/logger": "npm:^5.7.0"
+ hash.js: "npm:1.1.7"
+ checksum: 10c0/0e7f9ce6b1640817b921b9c6dd9dab8d5bf5a0ce7634d6a7d129b7366a576c2f90dcf4bcb15a0aa9310dde67028f3a44e4fcc2f26b565abcd2a0f465116ff3b1
+ languageName: node
+ linkType: hard
+
+"@ethersproject/signing-key@npm:5.7.0, @ethersproject/signing-key@npm:^5.7.0":
+ version: 5.7.0
+ resolution: "@ethersproject/signing-key@npm:5.7.0"
+ dependencies:
+ "@ethersproject/bytes": "npm:^5.7.0"
+ "@ethersproject/logger": "npm:^5.7.0"
+ "@ethersproject/properties": "npm:^5.7.0"
+ bn.js: "npm:^5.2.1"
+ elliptic: "npm:6.5.4"
+ hash.js: "npm:1.1.7"
+ checksum: 10c0/fe2ca55bcdb6e370d81372191d4e04671234a2da872af20b03c34e6e26b97dc07c1ee67e91b673680fb13344c9d5d7eae52f1fa6117733a3d68652b778843e09
+ languageName: node
+ linkType: hard
+
+"@ethersproject/solidity@npm:5.7.0":
+ version: 5.7.0
+ resolution: "@ethersproject/solidity@npm:5.7.0"
+ dependencies:
+ "@ethersproject/bignumber": "npm:^5.7.0"
+ "@ethersproject/bytes": "npm:^5.7.0"
+ "@ethersproject/keccak256": "npm:^5.7.0"
+ "@ethersproject/logger": "npm:^5.7.0"
+ "@ethersproject/sha2": "npm:^5.7.0"
+ "@ethersproject/strings": "npm:^5.7.0"
+ checksum: 10c0/bedf9918911144b0ec352b8aa7fa44abf63f0b131629c625672794ee196ba7d3992b0e0d3741935ca176813da25b9bcbc81aec454652c63113bdc3a1706beac6
+ languageName: node
+ linkType: hard
+
+"@ethersproject/strings@npm:5.7.0, @ethersproject/strings@npm:^5.7.0":
+ version: 5.7.0
+ resolution: "@ethersproject/strings@npm:5.7.0"
+ dependencies:
+ "@ethersproject/bytes": "npm:^5.7.0"
+ "@ethersproject/constants": "npm:^5.7.0"
+ "@ethersproject/logger": "npm:^5.7.0"
+ checksum: 10c0/570d87040ccc7d94de9861f76fc2fba6c0b84c5d6104a99a5c60b8a2401df2e4f24bf9c30afa536163b10a564a109a96f02e6290b80e8f0c610426f56ad704d1
+ languageName: node
+ linkType: hard
+
+"@ethersproject/transactions@npm:5.7.0, @ethersproject/transactions@npm:^5.7.0":
+ version: 5.7.0
+ resolution: "@ethersproject/transactions@npm:5.7.0"
+ dependencies:
+ "@ethersproject/address": "npm:^5.7.0"
+ "@ethersproject/bignumber": "npm:^5.7.0"
+ "@ethersproject/bytes": "npm:^5.7.0"
+ "@ethersproject/constants": "npm:^5.7.0"
+ "@ethersproject/keccak256": "npm:^5.7.0"
+ "@ethersproject/logger": "npm:^5.7.0"
+ "@ethersproject/properties": "npm:^5.7.0"
+ "@ethersproject/rlp": "npm:^5.7.0"
+ "@ethersproject/signing-key": "npm:^5.7.0"
+ checksum: 10c0/aa4d51379caab35b9c468ed1692a23ae47ce0de121890b4f7093c982ee57e30bd2df0c743faed0f44936d7e59c55fffd80479f2c28ec6777b8de06bfb638c239
+ languageName: node
+ linkType: hard
+
+"@ethersproject/units@npm:5.7.0":
+ version: 5.7.0
+ resolution: "@ethersproject/units@npm:5.7.0"
+ dependencies:
+ "@ethersproject/bignumber": "npm:^5.7.0"
+ "@ethersproject/constants": "npm:^5.7.0"
+ "@ethersproject/logger": "npm:^5.7.0"
+ checksum: 10c0/4da2fdefe2a506cc9f8b408b2c8638ab35b843ec413d52713143f08501a55ff67a808897f9a91874774fb526423a0821090ba294f93e8bf4933a57af9677ac5e
+ languageName: node
+ linkType: hard
+
+"@ethersproject/wallet@npm:5.7.0":
+ version: 5.7.0
+ resolution: "@ethersproject/wallet@npm:5.7.0"
+ dependencies:
+ "@ethersproject/abstract-provider": "npm:^5.7.0"
+ "@ethersproject/abstract-signer": "npm:^5.7.0"
+ "@ethersproject/address": "npm:^5.7.0"
+ "@ethersproject/bignumber": "npm:^5.7.0"
+ "@ethersproject/bytes": "npm:^5.7.0"
+ "@ethersproject/hash": "npm:^5.7.0"
+ "@ethersproject/hdnode": "npm:^5.7.0"
+ "@ethersproject/json-wallets": "npm:^5.7.0"
+ "@ethersproject/keccak256": "npm:^5.7.0"
+ "@ethersproject/logger": "npm:^5.7.0"
+ "@ethersproject/properties": "npm:^5.7.0"
+ "@ethersproject/random": "npm:^5.7.0"
+ "@ethersproject/signing-key": "npm:^5.7.0"
+ "@ethersproject/transactions": "npm:^5.7.0"
+ "@ethersproject/wordlists": "npm:^5.7.0"
+ checksum: 10c0/f872b957db46f9de247d39a398538622b6c7a12f93d69bec5f47f9abf0701ef1edc10497924dd1c14a68109284c39a1686fa85586d89b3ee65df49002c40ba4c
+ languageName: node
+ linkType: hard
+
+"@ethersproject/web@npm:5.7.1, @ethersproject/web@npm:^5.7.0":
+ version: 5.7.1
+ resolution: "@ethersproject/web@npm:5.7.1"
+ dependencies:
+ "@ethersproject/base64": "npm:^5.7.0"
+ "@ethersproject/bytes": "npm:^5.7.0"
+ "@ethersproject/logger": "npm:^5.7.0"
+ "@ethersproject/properties": "npm:^5.7.0"
+ "@ethersproject/strings": "npm:^5.7.0"
+ checksum: 10c0/c82d6745c7f133980e8dab203955260e07da22fa544ccafdd0f21c79fae127bd6ef30957319e37b1cc80cddeb04d6bfb60f291bb14a97c9093d81ce50672f453
+ languageName: node
+ linkType: hard
+
+"@ethersproject/wordlists@npm:5.7.0, @ethersproject/wordlists@npm:^5.7.0":
+ version: 5.7.0
+ resolution: "@ethersproject/wordlists@npm:5.7.0"
+ dependencies:
+ "@ethersproject/bytes": "npm:^5.7.0"
+ "@ethersproject/hash": "npm:^5.7.0"
+ "@ethersproject/logger": "npm:^5.7.0"
+ "@ethersproject/properties": "npm:^5.7.0"
+ "@ethersproject/strings": "npm:^5.7.0"
+ checksum: 10c0/da4f3eca6d691ebf4f578e6b2ec3a76dedba791be558f6cf7e10cd0bfbaeab5a6753164201bb72ced745fb02b6ef7ef34edcb7e6065ce2b624c6556a461c3f70
+ languageName: node
+ linkType: hard
+
+"@floating-ui/core@npm:^1.0.0":
+ version: 1.6.0
+ resolution: "@floating-ui/core@npm:1.6.0"
+ dependencies:
+ "@floating-ui/utils": "npm:^0.2.1"
+ checksum: 10c0/667a68036f7dd5ed19442c7792a6002ca02d1799221c4396691bbe0b6008b48f6ccad581225e81fa266bb91232f6c66838a5f825f554217e1ec886178b93381b
+ languageName: node
+ linkType: hard
+
+"@floating-ui/core@npm:^1.6.0":
+ version: 1.6.2
+ resolution: "@floating-ui/core@npm:1.6.2"
+ dependencies:
+ "@floating-ui/utils": "npm:^0.2.0"
+ checksum: 10c0/db2621dc682e7f043d6f118d087ae6a6bfdacf40b26ede561760dd53548c16e2e7c59031e013e37283801fa307b55e6de65bf3b316b96a054e4a6a7cb937c59e
+ languageName: node
+ linkType: hard
+
+"@floating-ui/core@npm:^1.6.4":
+ version: 1.6.7
+ resolution: "@floating-ui/core@npm:1.6.7"
+ dependencies:
+ "@floating-ui/utils": "npm:^0.2.7"
+ checksum: 10c0/5c9ae274854f87ed09a61de758377d444c2b13ade7fd1067d74287b3e66de5340ae1281e48604b631c540855a2595cfc717adf9a2331eaadc4fa6d28e8571f64
+ languageName: node
+ linkType: hard
+
+"@floating-ui/dom@npm:^1.0.0":
+ version: 1.6.5
+ resolution: "@floating-ui/dom@npm:1.6.5"
+ dependencies:
+ "@floating-ui/core": "npm:^1.0.0"
+ "@floating-ui/utils": "npm:^0.2.0"
+ checksum: 10c0/ebdc14806f786e60df8e7cc2c30bf9cd4d75fe734f06d755588bbdef2f60d0a0f21dffb14abdc58dea96e5577e2e366feca6d66ba962018efd1bc91a3ece4526
+ languageName: node
+ linkType: hard
+
+"@floating-ui/dom@npm:^1.6.7":
+ version: 1.6.10
+ resolution: "@floating-ui/dom@npm:1.6.10"
+ dependencies:
+ "@floating-ui/core": "npm:^1.6.0"
+ "@floating-ui/utils": "npm:^0.2.7"
+ checksum: 10c0/ed7d7b400e00b2f31f1b8f11863af2cb95d0d3cd84635186ca31b41d8d9fe7fe12c85e4985617d7df7ed365abad48b327d0bae35934842007b4e1052d9780576
+ languageName: node
+ linkType: hard
+
+"@floating-ui/react-dom@npm:^2.1.1":
+ version: 2.1.1
+ resolution: "@floating-ui/react-dom@npm:2.1.1"
+ dependencies:
+ "@floating-ui/dom": "npm:^1.0.0"
+ peerDependencies:
+ react: ">=16.8.0"
+ react-dom: ">=16.8.0"
+ checksum: 10c0/732ab64600c511ceb0563b87bc557aa61789fec4f416a3f092bab89e508fa1d3ee5ade0f42051cc56eb5e4db867b87ab7fd48ce82db9fd4c01d94ffa08f60115
+ languageName: node
+ linkType: hard
+
+"@floating-ui/react@npm:^0.26.19":
+ version: 0.26.22
+ resolution: "@floating-ui/react@npm:0.26.22"
+ dependencies:
+ "@floating-ui/react-dom": "npm:^2.1.1"
+ "@floating-ui/utils": "npm:^0.2.7"
+ tabbable: "npm:^6.0.0"
+ peerDependencies:
+ react: ">=16.8.0"
+ react-dom: ">=16.8.0"
+ checksum: 10c0/7eea7bef4fb98d13873752c5cabcf61216dbf00d748027450cdd0ff5c7a51328f8800fa012ecd87bef8e1abedcc7703d5298a604843ec031dc88a18233548623
+ languageName: node
+ linkType: hard
+
+"@floating-ui/utils@npm:^0.2.0, @floating-ui/utils@npm:^0.2.1":
+ version: 0.2.1
+ resolution: "@floating-ui/utils@npm:0.2.1"
+ checksum: 10c0/ee77756712cf5b000c6bacf11992ffb364f3ea2d0d51cc45197a7e646a17aeb86ea4b192c0b42f3fbb29487aee918a565e84f710b8c3645827767f406a6b4cc9
+ languageName: node
+ linkType: hard
+
+"@floating-ui/utils@npm:^0.2.4, @floating-ui/utils@npm:^0.2.7":
+ version: 0.2.7
+ resolution: "@floating-ui/utils@npm:0.2.7"
+ checksum: 10c0/0559ea5df2dc82219bad26e3509e9d2b70f6987e552dc8ddf7d7f5923cfeb7c44bf884567125b1f9cdb122a4c7e6e7ddbc666740bc30b0e4091ccbca63c6fb1c
+ languageName: node
+ linkType: hard
+
+"@formatjs/ecma402-abstract@npm:1.18.2":
+ version: 1.18.2
+ resolution: "@formatjs/ecma402-abstract@npm:1.18.2"
+ dependencies:
+ "@formatjs/intl-localematcher": "npm:0.5.4"
+ tslib: "npm:^2.4.0"
+ checksum: 10c0/87afb37dd937555e712ca85d5142a9083d617c491d1dddf8d660fdfb6186272d2bc75b78809b076388d26f016200c8bddbce73281fd707eb899da2bf3bc9b7ca
+ languageName: node
+ linkType: hard
+
+"@formatjs/fast-memoize@npm:2.2.0":
+ version: 2.2.0
+ resolution: "@formatjs/fast-memoize@npm:2.2.0"
+ dependencies:
+ tslib: "npm:^2.4.0"
+ checksum: 10c0/ae88c5a93b96235aba4bd9b947d0310d2ec013687a99133413361b24122b5cdea8c9bf2e04a4a2a8b61f1f4ee5419ef6416ca4796554226b5050e05a9ce6ef49
+ languageName: node
+ linkType: hard
+
+"@formatjs/icu-messageformat-parser@npm:2.7.6":
+ version: 2.7.6
+ resolution: "@formatjs/icu-messageformat-parser@npm:2.7.6"
+ dependencies:
+ "@formatjs/ecma402-abstract": "npm:1.18.2"
+ "@formatjs/icu-skeleton-parser": "npm:1.8.0"
+ tslib: "npm:^2.4.0"
+ checksum: 10c0/9fc72c2075333a969601e2be4260638940b1abefd1a5fc15b93b0b10d2319c9df5778aa51fc2a173ce66ca5e8a47b4b64caca85a32d0eb6095e16e8d65cb4b00
+ languageName: node
+ linkType: hard
+
+"@formatjs/icu-skeleton-parser@npm:1.8.0":
+ version: 1.8.0
+ resolution: "@formatjs/icu-skeleton-parser@npm:1.8.0"
+ dependencies:
+ "@formatjs/ecma402-abstract": "npm:1.18.2"
+ tslib: "npm:^2.4.0"
+ checksum: 10c0/10956732d70cc67049d216410b5dc3ef048935d1ea2ae76f5755bb9d0243af37ddeabd5d140ddbf5f6c7047068c3d02a05f93c68a89cedfaf7488d5062885ea4
+ languageName: node
+ linkType: hard
+
+"@formatjs/intl-localematcher@npm:0.5.4":
+ version: 0.5.4
+ resolution: "@formatjs/intl-localematcher@npm:0.5.4"
+ dependencies:
+ tslib: "npm:^2.4.0"
+ checksum: 10c0/c9ff5d34ca8b6fe59f8f303a3cc31a92d343e095a6987e273e5cc23f0fe99feb557a392a05da95931c7d24106acb6988e588d00ddd05b0934005aafd7fdbafe6
+ languageName: node
+ linkType: hard
+
+"@formkit/auto-animate@npm:^0.8.2":
+ version: 0.8.2
+ resolution: "@formkit/auto-animate@npm:0.8.2"
+ checksum: 10c0/0b24af241c229f37643cd62ea78fd7fddf621c06516cf62452035ea0bf489b6b53068eea47abb40b6bb3653bb91c1efad8b7257014a3559d26ad77b47b5337cb
+ languageName: node
+ linkType: hard
+
+"@hexxagon/feather.js@npm:^1.0.9-beta.8":
+ version: 1.0.11
+ resolution: "@hexxagon/feather.js@npm:1.0.11"
+ dependencies:
+ "@classic-terra/terra.proto": "npm:^1.1.0"
+ "@terra-money/legacy.proto": "npm:@terra-money/terra.proto@^0.1.7"
+ "@terra-money/terra.proto": "npm:3.0.5"
+ axios: "npm:^0.27.2"
+ bech32: "npm:^2.0.0"
+ bip32: "npm:^2.0.6"
+ bip39: "npm:^3.0.3"
+ bufferutil: "npm:^4.0.3"
+ decimal.js: "npm:^10.2.1"
+ jscrypto: "npm:^1.0.1"
+ readable-stream: "npm:^3.6.0"
+ secp256k1: "npm:^4.0.2"
+ tmp: "npm:^0.2.1"
+ utf-8-validate: "npm:^5.0.5"
+ ws: "npm:^7.5.9"
+ checksum: 10c0/912e3133e059b73eb587a47774db29d0299750f762bd7ef8a10a6b7ccd3ba05100d8c9d31c04b67097522ea64883ff864970d69875fb68652f239c54b0ad424b
+ languageName: node
+ linkType: hard
+
+"@hexxagon/station-connector@npm:^1.0.17":
+ version: 1.0.19
+ resolution: "@hexxagon/station-connector@npm:1.0.19"
+ dependencies:
+ bech32: "npm:^2.0.0"
+ peerDependencies:
+ "@cosmjs/amino": ^0.31.0
+ "@hexxagon/feather.js": ^2.1.0-beta.5
+ axios: ^0.27.2
+ checksum: 10c0/32d1eb7d20b941c199ebbf68022b9caa94ecdbee6983d7b66d64868362c03a684befb6c7432990afb28a4540ea304e7d5ed2d7823f204165345018ff71644417
+ languageName: node
+ linkType: hard
+
+"@humanwhocodes/config-array@npm:^0.11.6":
+ version: 0.11.14
+ resolution: "@humanwhocodes/config-array@npm:0.11.14"
+ dependencies:
+ "@humanwhocodes/object-schema": "npm:^2.0.2"
+ debug: "npm:^4.3.1"
+ minimatch: "npm:^3.0.5"
+ checksum: 10c0/66f725b4ee5fdd8322c737cb5013e19fac72d4d69c8bf4b7feb192fcb83442b035b92186f8e9497c220e58b2d51a080f28a73f7899bc1ab288c3be172c467541
+ languageName: node
+ linkType: hard
+
+"@humanwhocodes/module-importer@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "@humanwhocodes/module-importer@npm:1.0.1"
+ checksum: 10c0/909b69c3b86d482c26b3359db16e46a32e0fb30bd306a3c176b8313b9e7313dba0f37f519de6aa8b0a1921349e505f259d19475e123182416a506d7f87e7f529
+ languageName: node
+ linkType: hard
+
+"@humanwhocodes/object-schema@npm:^2.0.2":
+ version: 2.0.3
+ resolution: "@humanwhocodes/object-schema@npm:2.0.3"
+ checksum: 10c0/80520eabbfc2d32fe195a93557cef50dfe8c8905de447f022675aaf66abc33ae54098f5ea78548d925aa671cd4ab7c7daa5ad704fe42358c9b5e7db60f80696c
+ languageName: node
+ linkType: hard
+
+"@improbable-eng/grpc-web@npm:^0.14.1":
+ version: 0.14.1
+ resolution: "@improbable-eng/grpc-web@npm:0.14.1"
+ dependencies:
+ browser-headers: "npm:^0.4.1"
+ peerDependencies:
+ google-protobuf: ^3.14.0
+ checksum: 10c0/972f20d97970b3c7239ef8f26866e417e3079faec5a66e86755cc49b1dc3c56ed50a8f04dbb9d23d2f12ffb5719e39500d5e513d0087d576bc0844d2034491c1
+ languageName: node
+ linkType: hard
+
+"@interchain-ui/react-no-ssr@npm:0.1.2":
+ version: 0.1.2
+ resolution: "@interchain-ui/react-no-ssr@npm:0.1.2"
+ peerDependencies:
+ react: ^18.x
+ react-dom: ^18.x
+ checksum: 10c0/1613c455c767de2a3271705d53049e66911b36f01cab340e7d74be49bd8e68fd5db1204072d9c7bca2b850fdfb90d426b374c0cc4561d3806f18a73adb5a1bf1
+ languageName: node
+ linkType: hard
+
+"@interchain-ui/react@npm:1.23.31":
+ version: 1.23.31
+ resolution: "@interchain-ui/react@npm:1.23.31"
+ dependencies:
+ "@floating-ui/core": "npm:^1.6.4"
+ "@floating-ui/dom": "npm:^1.6.7"
+ "@floating-ui/react": "npm:^0.26.19"
+ "@floating-ui/react-dom": "npm:^2.1.1"
+ "@floating-ui/utils": "npm:^0.2.4"
+ "@formkit/auto-animate": "npm:^0.8.2"
+ "@react-aria/listbox": "npm:^3.12.1"
+ "@react-aria/overlays": "npm:^3.22.1"
+ "@react-aria/utils": "npm:^3.24.1"
+ "@tanstack/react-virtual": "npm:^3.8.3"
+ "@vanilla-extract/css": "npm:^1.15.3"
+ "@vanilla-extract/dynamic": "npm:^2.1.1"
+ "@vanilla-extract/recipes": "npm:^0.5.3"
+ animejs: "npm:^3.2.2"
+ bignumber.js: "npm:^9.1.2"
+ client-only: "npm:^0.0.1"
+ clsx: "npm:^2.1.1"
+ copy-to-clipboard: "npm:^3.3.3"
+ immer: "npm:^10.1.1"
+ lodash: "npm:^4.17.21"
+ rainbow-sprinkles: "npm:^0.17.2"
+ react-aria: "npm:^3.33.1"
+ react-stately: "npm:^3.31.1"
+ zustand: "npm:^4.5.4"
+ peerDependencies:
+ react: ^16.14.0 || ^17.0.0 || ^18.0.0
+ react-dom: ^16.14.0 || ^17.0.0 || ^18.0.0
+ checksum: 10c0/b8ec3c81035651de08958aeb1497e423e02643f2b1e3fc1fc80b09396f017b2769e94de3b1f6cb44ef9852d8fa8ac890d82e86c23291a029961332000cccc2de
+ languageName: node
+ linkType: hard
+
+"@internationalized/date@npm:^3.5.5":
+ version: 3.5.5
+ resolution: "@internationalized/date@npm:3.5.5"
+ dependencies:
+ "@swc/helpers": "npm:^0.5.0"
+ checksum: 10c0/fc17291c8923eaf413e4cb1c74570a8f78269d8b6a5ad74de6f4f45b4e9a84f4243a9c3f224526c36b024f77e4a2fae34df6b34b022ae1b068384e04ad32560e
+ languageName: node
+ linkType: hard
+
+"@internationalized/message@npm:^3.1.4":
+ version: 3.1.4
+ resolution: "@internationalized/message@npm:3.1.4"
+ dependencies:
+ "@swc/helpers": "npm:^0.5.0"
+ intl-messageformat: "npm:^10.1.0"
+ checksum: 10c0/29d2a2117381a2e50377a13cdc4379981403992b917997c477bc7bc82b59fcdd1252addf36d001edd4d30b2f496ad9c5a982732b52032e5559f0703e27521a9c
+ languageName: node
+ linkType: hard
+
+"@internationalized/number@npm:^3.5.3":
+ version: 3.5.3
+ resolution: "@internationalized/number@npm:3.5.3"
+ dependencies:
+ "@swc/helpers": "npm:^0.5.0"
+ checksum: 10c0/dd1bb4e89c6468b97e8357e1ba0a60234bd2c8226f3241c4c7499e5b1791ba0574127ea6de0fd6c4158e2ceef564bba6531a8f5589e58b820df669e312500f99
+ languageName: node
+ linkType: hard
+
+"@internationalized/string@npm:^3.2.3":
+ version: 3.2.3
+ resolution: "@internationalized/string@npm:3.2.3"
+ dependencies:
+ "@swc/helpers": "npm:^0.5.0"
+ checksum: 10c0/824d2972951823d0421babb7e03003228fcbd9966028264838b2dad1032d4142f159c82f730a0b8026b8c8c10f06afe7df634c8d0cc8a9b6362909c6f653440a
+ languageName: node
+ linkType: hard
+
+"@isaacs/cliui@npm:^8.0.2":
+ version: 8.0.2
+ resolution: "@isaacs/cliui@npm:8.0.2"
+ dependencies:
+ string-width: "npm:^5.1.2"
+ string-width-cjs: "npm:string-width@^4.2.0"
+ strip-ansi: "npm:^7.0.1"
+ strip-ansi-cjs: "npm:strip-ansi@^6.0.1"
+ wrap-ansi: "npm:^8.1.0"
+ wrap-ansi-cjs: "npm:wrap-ansi@^7.0.0"
+ checksum: 10c0/b1bf42535d49f11dc137f18d5e4e63a28c5569de438a221c369483731e9dac9fb797af554e8bf02b6192d1e5eba6e6402cf93900c3d0ac86391d00d04876789e
+ languageName: node
+ linkType: hard
+
+"@keplr-wallet/common@npm:0.12.28":
+ version: 0.12.28
+ resolution: "@keplr-wallet/common@npm:0.12.28"
+ dependencies:
+ "@keplr-wallet/crypto": "npm:0.12.28"
+ "@keplr-wallet/types": "npm:0.12.28"
+ buffer: "npm:^6.0.3"
+ delay: "npm:^4.4.0"
+ mobx: "npm:^6.1.7"
+ checksum: 10c0/6207dac075aad13af4cd78efe5f79b3abfc445cb42cef6c6bf0c06b32c6e570dd1f4f93a4c64214bd03b77a669b308c30c09d041f51e25f14544305bc7f7f6a2
+ languageName: node
+ linkType: hard
+
+"@keplr-wallet/cosmos@npm:0.12.28":
+ version: 0.12.28
+ resolution: "@keplr-wallet/cosmos@npm:0.12.28"
+ dependencies:
+ "@ethersproject/address": "npm:^5.6.0"
+ "@keplr-wallet/common": "npm:0.12.28"
+ "@keplr-wallet/crypto": "npm:0.12.28"
+ "@keplr-wallet/proto-types": "npm:0.12.28"
+ "@keplr-wallet/simple-fetch": "npm:0.12.28"
+ "@keplr-wallet/types": "npm:0.12.28"
+ "@keplr-wallet/unit": "npm:0.12.28"
+ bech32: "npm:^1.1.4"
+ buffer: "npm:^6.0.3"
+ long: "npm:^4.0.0"
+ protobufjs: "npm:^6.11.2"
+ checksum: 10c0/b062eb75c03a1285aba7e5398191961e7e9d01ec53e1094a6c3858817e4e41d9c571f09961289b07fb3175d9648eeb3587744efb563be9c379b79e2ed0fc207c
+ languageName: node
+ linkType: hard
+
+"@keplr-wallet/crypto@npm:0.12.28":
+ version: 0.12.28
+ resolution: "@keplr-wallet/crypto@npm:0.12.28"
+ dependencies:
+ "@ethersproject/keccak256": "npm:^5.5.0"
+ bip32: "npm:^2.0.6"
+ bip39: "npm:^3.0.3"
+ bs58check: "npm:^2.1.2"
+ buffer: "npm:^6.0.3"
+ crypto-js: "npm:^4.0.0"
+ elliptic: "npm:^6.5.3"
+ sha.js: "npm:^2.4.11"
+ checksum: 10c0/90bb3ec875c1dbaceb5fa31c2bce201d4556b293e9bc8173e0959bd04f47690a65567ad2c6e8a49f597d7b5b81bf4f02c36fe12e1fa0ee4e5c4447d50101f228
+ languageName: node
+ linkType: hard
+
+"@keplr-wallet/proto-types@npm:0.12.28":
+ version: 0.12.28
+ resolution: "@keplr-wallet/proto-types@npm:0.12.28"
+ dependencies:
+ long: "npm:^4.0.0"
+ protobufjs: "npm:^6.11.2"
+ checksum: 10c0/c3b05d4788040dfcbb8e6ea1516aaa1e375f73fc1099476f880771ae410ec69985ccbf22056a37c8c715446c0e829912fa8061cfbfdd8bdeca74c58a6a153afc
+ languageName: node
+ linkType: hard
+
+"@keplr-wallet/provider-extension@npm:^0.12.95":
+ version: 0.12.113
+ resolution: "@keplr-wallet/provider-extension@npm:0.12.113"
+ dependencies:
+ "@keplr-wallet/types": "npm:0.12.113"
+ deepmerge: "npm:^4.2.2"
+ long: "npm:^4.0.0"
+ checksum: 10c0/2f062539d892754141ad00767029e1b4ac259c97765a9f49a29b189a56941a45c60793fed8fdaa8c240a89fb922ca21c8f9cd91131b741b816c387995860a2b2
+ languageName: node
+ linkType: hard
+
+"@keplr-wallet/provider@npm:0.12.113":
+ version: 0.12.113
+ resolution: "@keplr-wallet/provider@npm:0.12.113"
+ dependencies:
+ "@keplr-wallet/router": "npm:0.12.113"
+ "@keplr-wallet/types": "npm:0.12.113"
+ buffer: "npm:^6.0.3"
+ deepmerge: "npm:^4.2.2"
+ long: "npm:^4.0.0"
+ checksum: 10c0/c3472442cf5d57122a734287f14103517e180183937a9d74de510d0216f97c2983f2162077417bcac94f82698ceacc1ed5d7cbc0ceb07c4c8aad25928c26eee5
+ languageName: node
+ linkType: hard
+
+"@keplr-wallet/router@npm:0.12.113":
+ version: 0.12.113
+ resolution: "@keplr-wallet/router@npm:0.12.113"
+ checksum: 10c0/7998bcafbe962bdc1e8c4b359ab60c1ee05c19920e952e82ba72389257121b9e4c74b69c43ed6f9ad24d689e091e84550f8373df592cf5586ddf42818b2cd1ba
+ languageName: node
+ linkType: hard
+
+"@keplr-wallet/simple-fetch@npm:0.12.28":
+ version: 0.12.28
+ resolution: "@keplr-wallet/simple-fetch@npm:0.12.28"
+ checksum: 10c0/a5f7b9df3555f1d6b1fb0c72560302a62f6482ce7417c4218724e97827cad3ec8c71ea0dea2929571a9db9236d55ece7df15326944c5e1e64df0d55eab871882
+ languageName: node
+ linkType: hard
+
+"@keplr-wallet/types@npm:0.12.113, @keplr-wallet/types@npm:^0.12.90, @keplr-wallet/types@npm:^0.12.95":
+ version: 0.12.113
+ resolution: "@keplr-wallet/types@npm:0.12.113"
+ dependencies:
+ long: "npm:^4.0.0"
+ checksum: 10c0/00a0f49b9361689839bb120923da615f96a293d4aa413ef7565c9583ba48e0ea698e0c6ae2a8c3fa4cc4dd34878885627bb2d1122c3508337f758686f2a5d5a4
+ languageName: node
+ linkType: hard
+
+"@keplr-wallet/types@npm:0.12.28":
+ version: 0.12.28
+ resolution: "@keplr-wallet/types@npm:0.12.28"
+ dependencies:
+ long: "npm:^4.0.0"
+ checksum: 10c0/a541088e55ee0a57ac0e5a9c56e8b788d6325f438fcb4f0a478ba4ce76e336660774d8373a2c3dc6b53e4c6d7b5d91be3128102f340728c71a25448d35245980
+ languageName: node
+ linkType: hard
+
+"@keplr-wallet/types@npm:^0.12.111":
+ version: 0.12.111
+ resolution: "@keplr-wallet/types@npm:0.12.111"
+ dependencies:
+ long: "npm:^4.0.0"
+ checksum: 10c0/45988cafc2ae3197509c78545b50f8e37bb47290ed566ea85f501eb47c608f0b67339f3a7badae6e79e04db7dbd5c6f8ef6904ad6e518c900650fdb984d41338
+ languageName: node
+ linkType: hard
+
+"@keplr-wallet/unit@npm:0.12.28":
+ version: 0.12.28
+ resolution: "@keplr-wallet/unit@npm:0.12.28"
+ dependencies:
+ "@keplr-wallet/types": "npm:0.12.28"
+ big-integer: "npm:^1.6.48"
+ utility-types: "npm:^3.10.0"
+ checksum: 10c0/08d86d9ba01a11fcf2acd6a8a8b2252381eda8dc7613e3c3a50d7ebf73433fcece862b437f4118410e8c968983535e0aa5c4f2747eef9fd9785635eff836f7a7
+ languageName: node
+ linkType: hard
+
+"@keplr-wallet/wc-client@npm:^0.12.95":
+ version: 0.12.113
+ resolution: "@keplr-wallet/wc-client@npm:0.12.113"
+ dependencies:
+ "@keplr-wallet/provider": "npm:0.12.113"
+ "@keplr-wallet/types": "npm:0.12.113"
+ buffer: "npm:^6.0.3"
+ deepmerge: "npm:^4.2.2"
+ long: "npm:^3 || ^4 || ^5"
+ peerDependencies:
+ "@walletconnect/sign-client": ^2
+ "@walletconnect/types": ^2
+ checksum: 10c0/9b6f4dafd13bbfc93212302bec7f3e90eade3b62b8893c9b7fe67096bdf2fe945b66f5bc069e8c046bb0cc91dbcaa72b0a80b645c7eff2f1635e2dfc9a43f4af
+ languageName: node
+ linkType: hard
+
+"@leapwallet/cosmos-snap-provider@npm:0.1.26":
+ version: 0.1.26
+ resolution: "@leapwallet/cosmos-snap-provider@npm:0.1.26"
+ dependencies:
+ "@cosmjs/amino": "npm:^0.32.0"
+ "@cosmjs/proto-signing": "npm:^0.32.0"
+ bignumber.js: "npm:^9.1.2"
+ long: "npm:^5.2.3"
+ checksum: 10c0/e6a74773eed4754b37777bfbd946fbfd902213774eabb047c3c4a9aec82728be42196d79aee735cefe6e03bd77be4548805a5fd373eba741dd9667004f43523a
+ languageName: node
+ linkType: hard
+
+"@ledgerhq/devices@npm:^8.2.2":
+ version: 8.2.2
+ resolution: "@ledgerhq/devices@npm:8.2.2"
+ dependencies:
+ "@ledgerhq/errors": "npm:^6.16.3"
+ "@ledgerhq/logs": "npm:^6.12.0"
+ rxjs: "npm:^7.8.1"
+ semver: "npm:^7.3.5"
+ checksum: 10c0/c9bd63858ac4ce37a8e8fa3523ec1ed343b381d9711404d4334ef89d8cc8898af85e951b48ad962dce9a9c98344f0942393b69e52627cc34ec6e1b0dc93a5bbd
+ languageName: node
+ linkType: hard
+
+"@ledgerhq/errors@npm:^6.16.3":
+ version: 6.16.3
+ resolution: "@ledgerhq/errors@npm:6.16.3"
+ checksum: 10c0/12e8e39317aac45694ae0f01f20b870a933611cd31187fc6ff63f268154b58f99d34b02f5dc033cbe3aebbe6fbfcd6f19aea842b7de22b5d8e051aef2fb94f94
+ languageName: node
+ linkType: hard
+
+"@ledgerhq/hw-app-cosmos@npm:^6.28.1":
+ version: 6.29.5
+ resolution: "@ledgerhq/hw-app-cosmos@npm:6.29.5"
+ dependencies:
+ "@ledgerhq/errors": "npm:^6.16.3"
+ "@ledgerhq/hw-transport": "npm:^6.30.5"
+ bip32-path: "npm:^0.4.2"
+ checksum: 10c0/0b1988defdf762abe3cd8d160f1e5234056765d0c4d13459300cef1c524a5b925dd85cb8c0357288537c040b72f48cb7d20a797770fdd1d24631a65b6419e3e9
+ languageName: node
+ linkType: hard
+
+"@ledgerhq/hw-transport-webhid@npm:^6.27.15":
+ version: 6.28.5
+ resolution: "@ledgerhq/hw-transport-webhid@npm:6.28.5"
+ dependencies:
+ "@ledgerhq/devices": "npm:^8.2.2"
+ "@ledgerhq/errors": "npm:^6.16.3"
+ "@ledgerhq/hw-transport": "npm:^6.30.5"
+ "@ledgerhq/logs": "npm:^6.12.0"
+ checksum: 10c0/e9233f83b9f5ee4ab480ffd894c44251c85d6a11c2591665ee5b91ce0997316a822bbd52ca9129736f074df5d809df576c528fd009a309652c1cc1bb41fe4862
+ languageName: node
+ linkType: hard
+
+"@ledgerhq/hw-transport-webusb@npm:^6.27.15":
+ version: 6.28.5
+ resolution: "@ledgerhq/hw-transport-webusb@npm:6.28.5"
+ dependencies:
+ "@ledgerhq/devices": "npm:^8.2.2"
+ "@ledgerhq/errors": "npm:^6.16.3"
+ "@ledgerhq/hw-transport": "npm:^6.30.5"
+ "@ledgerhq/logs": "npm:^6.12.0"
+ checksum: 10c0/25ae085cf6f74202f7c4d089aca39058790d32fa287de9fb3e7ae982fd9e80c34988ad3b82249b856839db81165e0c94f02a0a3954866b83f2cf13c393e3a2ba
+ languageName: node
+ linkType: hard
+
+"@ledgerhq/hw-transport@npm:^6.30.5":
+ version: 6.30.5
+ resolution: "@ledgerhq/hw-transport@npm:6.30.5"
+ dependencies:
+ "@ledgerhq/devices": "npm:^8.2.2"
+ "@ledgerhq/errors": "npm:^6.16.3"
+ "@ledgerhq/logs": "npm:^6.12.0"
+ events: "npm:^3.3.0"
+ checksum: 10c0/ef80bb7d5839e3f2dc278fc4aaa2a2e74766cce80cfc0c42958601ce231ce576e2cd318ead971aa09263e43592160a5256a945ccb31dc542a341ad26f871102f
+ languageName: node
+ linkType: hard
+
+"@ledgerhq/logs@npm:^6.12.0":
+ version: 6.12.0
+ resolution: "@ledgerhq/logs@npm:6.12.0"
+ checksum: 10c0/573122867ae807a60c3218234019ba7c4b35c14551b90c291fd589d7c2e7f002c2e84151868e67801c9f89a33d8a5569da77aef83b5f5e03b5faa2811cab6a86
+ languageName: node
+ linkType: hard
+
+"@metamask/object-multiplex@npm:^1.1.0":
+ version: 1.3.0
+ resolution: "@metamask/object-multiplex@npm:1.3.0"
+ dependencies:
+ end-of-stream: "npm:^1.4.4"
+ once: "npm:^1.4.0"
+ readable-stream: "npm:^2.3.3"
+ checksum: 10c0/24d80303b545da4c6de77a4f6adf46b3a498e15024f6b40b6e3594cbc7b77248b86b83716f343c24fc62379486b47ab4e5b0a4103552354f08e9fb68ecb01c7c
+ languageName: node
+ linkType: hard
+
+"@metamask/providers@npm:^11.1.1":
+ version: 11.1.2
+ resolution: "@metamask/providers@npm:11.1.2"
+ dependencies:
+ "@metamask/object-multiplex": "npm:^1.1.0"
+ "@metamask/safe-event-emitter": "npm:^3.0.0"
+ detect-browser: "npm:^5.2.0"
+ eth-rpc-errors: "npm:^4.0.2"
+ extension-port-stream: "npm:^2.1.1"
+ fast-deep-equal: "npm:^3.1.3"
+ is-stream: "npm:^2.0.0"
+ json-rpc-engine: "npm:^6.1.0"
+ json-rpc-middleware-stream: "npm:^4.2.1"
+ pump: "npm:^3.0.0"
+ webextension-polyfill: "npm:^0.10.0"
+ checksum: 10c0/0c0da8735be8943b1801f98115a87554076e97d5ff00fad83bb707992bb35fb8a849ff0f04aecb1ff54ebeba47ba61326e39c5b9b6de373839e18607e2ee7c7b
+ languageName: node
+ linkType: hard
+
+"@metamask/safe-event-emitter@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "@metamask/safe-event-emitter@npm:2.0.0"
+ checksum: 10c0/a86b91f909834dc14de7eadd38b22d4975f6529001d265cd0f5c894351f69f39447f1ef41b690b9849c86dd2a25a39515ef5f316545d36aea7b3fc50ee930933
+ languageName: node
+ linkType: hard
+
+"@metamask/safe-event-emitter@npm:^3.0.0":
+ version: 3.1.1
+ resolution: "@metamask/safe-event-emitter@npm:3.1.1"
+ checksum: 10c0/4dd51651fa69adf65952449b20410acac7edad06f176dc6f0a5d449207527a2e85d5a21a864566e3d8446fb259f8840bd69fdb65932007a882f771f473a2b682
+ languageName: node
+ linkType: hard
+
+"@next/env@npm:13.5.6":
+ version: 13.5.6
+ resolution: "@next/env@npm:13.5.6"
+ checksum: 10c0/b1fefa21b698397a2f922ee53a5ecb91ff858f042b2a198652b9de49c031fc5e00d79da92ba7d84ef205e95368d5afbb0f104abaf00e9dde7985d9eae63bb4fb
+ languageName: node
+ linkType: hard
+
+"@next/eslint-plugin-next@npm:13.0.5":
+ version: 13.0.5
+ resolution: "@next/eslint-plugin-next@npm:13.0.5"
+ dependencies:
+ glob: "npm:7.1.7"
+ checksum: 10c0/cee469f5484a9da000089ac9dd3169a904f61ab198b575efdaace086fa773aa6cc634a975b4ed567e97b8f8087983b59d133abd83cd51bd86a2213481d2672f8
+ languageName: node
+ linkType: hard
+
+"@next/swc-darwin-arm64@npm:13.5.6":
+ version: 13.5.6
+ resolution: "@next/swc-darwin-arm64@npm:13.5.6"
+ conditions: os=darwin & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"@next/swc-darwin-x64@npm:13.5.6":
+ version: 13.5.6
+ resolution: "@next/swc-darwin-x64@npm:13.5.6"
+ conditions: os=darwin & cpu=x64
+ languageName: node
+ linkType: hard
+
+"@next/swc-linux-arm64-gnu@npm:13.5.6":
+ version: 13.5.6
+ resolution: "@next/swc-linux-arm64-gnu@npm:13.5.6"
+ conditions: os=linux & cpu=arm64 & libc=glibc
+ languageName: node
+ linkType: hard
+
+"@next/swc-linux-arm64-musl@npm:13.5.6":
+ version: 13.5.6
+ resolution: "@next/swc-linux-arm64-musl@npm:13.5.6"
+ conditions: os=linux & cpu=arm64 & libc=musl
+ languageName: node
+ linkType: hard
+
+"@next/swc-linux-x64-gnu@npm:13.5.6":
+ version: 13.5.6
+ resolution: "@next/swc-linux-x64-gnu@npm:13.5.6"
+ conditions: os=linux & cpu=x64 & libc=glibc
+ languageName: node
+ linkType: hard
+
+"@next/swc-linux-x64-musl@npm:13.5.6":
+ version: 13.5.6
+ resolution: "@next/swc-linux-x64-musl@npm:13.5.6"
+ conditions: os=linux & cpu=x64 & libc=musl
+ languageName: node
+ linkType: hard
+
+"@next/swc-win32-arm64-msvc@npm:13.5.6":
+ version: 13.5.6
+ resolution: "@next/swc-win32-arm64-msvc@npm:13.5.6"
+ conditions: os=win32 & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"@next/swc-win32-ia32-msvc@npm:13.5.6":
+ version: 13.5.6
+ resolution: "@next/swc-win32-ia32-msvc@npm:13.5.6"
+ conditions: os=win32 & cpu=ia32
+ languageName: node
+ linkType: hard
+
+"@next/swc-win32-x64-msvc@npm:13.5.6":
+ version: 13.5.6
+ resolution: "@next/swc-win32-x64-msvc@npm:13.5.6"
+ conditions: os=win32 & cpu=x64
+ languageName: node
+ linkType: hard
+
+"@noble/hashes@npm:^1, @noble/hashes@npm:^1.0.0, @noble/hashes@npm:^1.2.0":
+ version: 1.4.0
+ resolution: "@noble/hashes@npm:1.4.0"
+ checksum: 10c0/8c3f005ee72e7b8f9cff756dfae1241485187254e3f743873e22073d63906863df5d4f13d441b7530ea614b7a093f0d889309f28b59850f33b66cb26a779a4a5
+ languageName: node
+ linkType: hard
+
+"@nodelib/fs.scandir@npm:2.1.5":
+ version: 2.1.5
+ resolution: "@nodelib/fs.scandir@npm:2.1.5"
+ dependencies:
+ "@nodelib/fs.stat": "npm:2.0.5"
+ run-parallel: "npm:^1.1.9"
+ checksum: 10c0/732c3b6d1b1e967440e65f284bd06e5821fedf10a1bea9ed2bb75956ea1f30e08c44d3def9d6a230666574edbaf136f8cfd319c14fd1f87c66e6a44449afb2eb
+ languageName: node
+ linkType: hard
+
+"@nodelib/fs.stat@npm:2.0.5, @nodelib/fs.stat@npm:^2.0.2":
+ version: 2.0.5
+ resolution: "@nodelib/fs.stat@npm:2.0.5"
+ checksum: 10c0/88dafe5e3e29a388b07264680dc996c17f4bda48d163a9d4f5c1112979f0ce8ec72aa7116122c350b4e7976bc5566dc3ddb579be1ceaacc727872eb4ed93926d
+ languageName: node
+ linkType: hard
+
+"@nodelib/fs.walk@npm:^1.2.3, @nodelib/fs.walk@npm:^1.2.8":
+ version: 1.2.8
+ resolution: "@nodelib/fs.walk@npm:1.2.8"
+ dependencies:
+ "@nodelib/fs.scandir": "npm:2.1.5"
+ fastq: "npm:^1.6.0"
+ checksum: 10c0/db9de047c3bb9b51f9335a7bb46f4fcfb6829fb628318c12115fbaf7d369bfce71c15b103d1fc3b464812d936220ee9bc1c8f762d032c9f6be9acc99249095b1
+ languageName: node
+ linkType: hard
+
+"@npmcli/agent@npm:^2.0.0":
+ version: 2.2.2
+ resolution: "@npmcli/agent@npm:2.2.2"
+ dependencies:
+ agent-base: "npm:^7.1.0"
+ http-proxy-agent: "npm:^7.0.0"
+ https-proxy-agent: "npm:^7.0.1"
+ lru-cache: "npm:^10.0.1"
+ socks-proxy-agent: "npm:^8.0.3"
+ checksum: 10c0/325e0db7b287d4154ecd164c0815c08007abfb07653cc57bceded17bb7fd240998a3cbdbe87d700e30bef494885eccc725ab73b668020811d56623d145b524ae
+ languageName: node
+ linkType: hard
+
+"@npmcli/fs@npm:^3.1.0":
+ version: 3.1.1
+ resolution: "@npmcli/fs@npm:3.1.1"
+ dependencies:
+ semver: "npm:^7.3.5"
+ checksum: 10c0/c37a5b4842bfdece3d14dfdb054f73fe15ed2d3da61b34ff76629fb5b1731647c49166fd2a8bf8b56fcfa51200382385ea8909a3cbecdad612310c114d3f6c99
+ languageName: node
+ linkType: hard
+
+"@parcel/watcher-android-arm64@npm:2.4.1":
+ version: 2.4.1
+ resolution: "@parcel/watcher-android-arm64@npm:2.4.1"
+ conditions: os=android & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"@parcel/watcher-darwin-arm64@npm:2.4.1":
+ version: 2.4.1
+ resolution: "@parcel/watcher-darwin-arm64@npm:2.4.1"
+ conditions: os=darwin & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"@parcel/watcher-darwin-x64@npm:2.4.1":
+ version: 2.4.1
+ resolution: "@parcel/watcher-darwin-x64@npm:2.4.1"
+ conditions: os=darwin & cpu=x64
+ languageName: node
+ linkType: hard
+
+"@parcel/watcher-freebsd-x64@npm:2.4.1":
+ version: 2.4.1
+ resolution: "@parcel/watcher-freebsd-x64@npm:2.4.1"
+ conditions: os=freebsd & cpu=x64
+ languageName: node
+ linkType: hard
+
+"@parcel/watcher-linux-arm-glibc@npm:2.4.1":
+ version: 2.4.1
+ resolution: "@parcel/watcher-linux-arm-glibc@npm:2.4.1"
+ conditions: os=linux & cpu=arm & libc=glibc
+ languageName: node
+ linkType: hard
+
+"@parcel/watcher-linux-arm64-glibc@npm:2.4.1":
+ version: 2.4.1
+ resolution: "@parcel/watcher-linux-arm64-glibc@npm:2.4.1"
+ conditions: os=linux & cpu=arm64 & libc=glibc
+ languageName: node
+ linkType: hard
+
+"@parcel/watcher-linux-arm64-musl@npm:2.4.1":
+ version: 2.4.1
+ resolution: "@parcel/watcher-linux-arm64-musl@npm:2.4.1"
+ conditions: os=linux & cpu=arm64 & libc=musl
+ languageName: node
+ linkType: hard
+
+"@parcel/watcher-linux-x64-glibc@npm:2.4.1":
+ version: 2.4.1
+ resolution: "@parcel/watcher-linux-x64-glibc@npm:2.4.1"
+ conditions: os=linux & cpu=x64 & libc=glibc
+ languageName: node
+ linkType: hard
+
+"@parcel/watcher-linux-x64-musl@npm:2.4.1":
+ version: 2.4.1
+ resolution: "@parcel/watcher-linux-x64-musl@npm:2.4.1"
+ conditions: os=linux & cpu=x64 & libc=musl
+ languageName: node
+ linkType: hard
+
+"@parcel/watcher-wasm@npm:^2.4.1":
+ version: 2.4.1
+ resolution: "@parcel/watcher-wasm@npm:2.4.1"
+ dependencies:
+ is-glob: "npm:^4.0.3"
+ micromatch: "npm:^4.0.5"
+ napi-wasm: "npm:^1.1.0"
+ checksum: 10c0/30a0d4e618c4867a5990025df56dff3a31a01f78b2d108b31e6ed7fabf123a13fd79ee292f547b572e439d272a6157c2ba9fb8e527456951c14283f872bdc16f
+ languageName: node
+ linkType: hard
+
+"@parcel/watcher-win32-arm64@npm:2.4.1":
+ version: 2.4.1
+ resolution: "@parcel/watcher-win32-arm64@npm:2.4.1"
+ conditions: os=win32 & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"@parcel/watcher-win32-ia32@npm:2.4.1":
+ version: 2.4.1
+ resolution: "@parcel/watcher-win32-ia32@npm:2.4.1"
+ conditions: os=win32 & cpu=ia32
+ languageName: node
+ linkType: hard
+
+"@parcel/watcher-win32-x64@npm:2.4.1":
+ version: 2.4.1
+ resolution: "@parcel/watcher-win32-x64@npm:2.4.1"
+ conditions: os=win32 & cpu=x64
+ languageName: node
+ linkType: hard
+
+"@parcel/watcher@npm:^2.4.1":
+ version: 2.4.1
+ resolution: "@parcel/watcher@npm:2.4.1"
+ dependencies:
+ "@parcel/watcher-android-arm64": "npm:2.4.1"
+ "@parcel/watcher-darwin-arm64": "npm:2.4.1"
+ "@parcel/watcher-darwin-x64": "npm:2.4.1"
+ "@parcel/watcher-freebsd-x64": "npm:2.4.1"
+ "@parcel/watcher-linux-arm-glibc": "npm:2.4.1"
+ "@parcel/watcher-linux-arm64-glibc": "npm:2.4.1"
+ "@parcel/watcher-linux-arm64-musl": "npm:2.4.1"
+ "@parcel/watcher-linux-x64-glibc": "npm:2.4.1"
+ "@parcel/watcher-linux-x64-musl": "npm:2.4.1"
+ "@parcel/watcher-win32-arm64": "npm:2.4.1"
+ "@parcel/watcher-win32-ia32": "npm:2.4.1"
+ "@parcel/watcher-win32-x64": "npm:2.4.1"
+ detect-libc: "npm:^1.0.3"
+ is-glob: "npm:^4.0.3"
+ micromatch: "npm:^4.0.5"
+ node-addon-api: "npm:^7.0.0"
+ node-gyp: "npm:latest"
+ dependenciesMeta:
+ "@parcel/watcher-android-arm64":
+ optional: true
+ "@parcel/watcher-darwin-arm64":
+ optional: true
+ "@parcel/watcher-darwin-x64":
+ optional: true
+ "@parcel/watcher-freebsd-x64":
+ optional: true
+ "@parcel/watcher-linux-arm-glibc":
+ optional: true
+ "@parcel/watcher-linux-arm64-glibc":
+ optional: true
+ "@parcel/watcher-linux-arm64-musl":
+ optional: true
+ "@parcel/watcher-linux-x64-glibc":
+ optional: true
+ "@parcel/watcher-linux-x64-musl":
+ optional: true
+ "@parcel/watcher-win32-arm64":
+ optional: true
+ "@parcel/watcher-win32-ia32":
+ optional: true
+ "@parcel/watcher-win32-x64":
+ optional: true
+ checksum: 10c0/33b7112094b9eb46c234d824953967435b628d3d93a0553255e9910829b84cab3da870153c3a870c31db186dc58f3b2db81382fcaee3451438aeec4d786a6211
+ languageName: node
+ linkType: hard
+
+"@pkgjs/parseargs@npm:^0.11.0":
+ version: 0.11.0
+ resolution: "@pkgjs/parseargs@npm:0.11.0"
+ checksum: 10c0/5bd7576bb1b38a47a7fc7b51ac9f38748e772beebc56200450c4a817d712232b8f1d3ef70532c80840243c657d491cf6a6be1e3a214cff907645819fdc34aadd
+ languageName: node
+ linkType: hard
+
+"@protobufjs/aspromise@npm:^1.1.1, @protobufjs/aspromise@npm:^1.1.2":
+ version: 1.1.2
+ resolution: "@protobufjs/aspromise@npm:1.1.2"
+ checksum: 10c0/a83343a468ff5b5ec6bff36fd788a64c839e48a07ff9f4f813564f58caf44d011cd6504ed2147bf34835bd7a7dd2107052af755961c6b098fd8902b4f6500d0f
+ languageName: node
+ linkType: hard
+
+"@protobufjs/base64@npm:^1.1.2":
+ version: 1.1.2
+ resolution: "@protobufjs/base64@npm:1.1.2"
+ checksum: 10c0/eec925e681081af190b8ee231f9bad3101e189abbc182ff279da6b531e7dbd2a56f1f306f37a80b1be9e00aa2d271690d08dcc5f326f71c9eed8546675c8caf6
+ languageName: node
+ linkType: hard
+
+"@protobufjs/codegen@npm:^2.0.4":
+ version: 2.0.4
+ resolution: "@protobufjs/codegen@npm:2.0.4"
+ checksum: 10c0/26ae337c5659e41f091606d16465bbcc1df1f37cc1ed462438b1f67be0c1e28dfb2ca9f294f39100c52161aef82edf758c95d6d75650a1ddf31f7ddee1440b43
+ languageName: node
+ linkType: hard
+
+"@protobufjs/eventemitter@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "@protobufjs/eventemitter@npm:1.1.0"
+ checksum: 10c0/1eb0a75180e5206d1033e4138212a8c7089a3d418c6dfa5a6ce42e593a4ae2e5892c4ef7421f38092badba4040ea6a45f0928869989411001d8c1018ea9a6e70
+ languageName: node
+ linkType: hard
+
+"@protobufjs/fetch@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "@protobufjs/fetch@npm:1.1.0"
+ dependencies:
+ "@protobufjs/aspromise": "npm:^1.1.1"
+ "@protobufjs/inquire": "npm:^1.1.0"
+ checksum: 10c0/cda6a3dc2d50a182c5865b160f72077aac197046600091dbb005dd0a66db9cce3c5eaed6d470ac8ed49d7bcbeef6ee5f0bc288db5ff9a70cbd003e5909065233
+ languageName: node
+ linkType: hard
+
+"@protobufjs/float@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "@protobufjs/float@npm:1.0.2"
+ checksum: 10c0/18f2bdede76ffcf0170708af15c9c9db6259b771e6b84c51b06df34a9c339dbbeec267d14ce0bddd20acc142b1d980d983d31434398df7f98eb0c94a0eb79069
+ languageName: node
+ linkType: hard
+
+"@protobufjs/inquire@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "@protobufjs/inquire@npm:1.1.0"
+ checksum: 10c0/64372482efcba1fb4d166a2664a6395fa978b557803857c9c03500e0ac1013eb4b1aacc9ed851dd5fc22f81583670b4f4431bae186f3373fedcfde863ef5921a
+ languageName: node
+ linkType: hard
+
+"@protobufjs/path@npm:^1.1.2":
+ version: 1.1.2
+ resolution: "@protobufjs/path@npm:1.1.2"
+ checksum: 10c0/cece0a938e7f5dfd2fa03f8c14f2f1cf8b0d6e13ac7326ff4c96ea311effd5fb7ae0bba754fbf505312af2e38500250c90e68506b97c02360a43793d88a0d8b4
+ languageName: node
+ linkType: hard
+
+"@protobufjs/pool@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "@protobufjs/pool@npm:1.1.0"
+ checksum: 10c0/eda2718b7f222ac6e6ad36f758a92ef90d26526026a19f4f17f668f45e0306a5bd734def3f48f51f8134ae0978b6262a5c517c08b115a551756d1a3aadfcf038
+ languageName: node
+ linkType: hard
+
+"@protobufjs/utf8@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "@protobufjs/utf8@npm:1.1.0"
+ checksum: 10c0/a3fe31fe3fa29aa3349e2e04ee13dc170cc6af7c23d92ad49e3eeaf79b9766264544d3da824dba93b7855bd6a2982fb40032ef40693da98a136d835752beb487
+ languageName: node
+ linkType: hard
+
+"@react-aria/breadcrumbs@npm:^3.5.15":
+ version: 3.5.15
+ resolution: "@react-aria/breadcrumbs@npm:3.5.15"
+ dependencies:
+ "@react-aria/i18n": "npm:^3.12.1"
+ "@react-aria/link": "npm:^3.7.3"
+ "@react-aria/utils": "npm:^3.25.1"
+ "@react-types/breadcrumbs": "npm:^3.7.7"
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/38d22f5d4741b156d3116431ea0b6ed8e4afc006b944ec3b8a4b87a4cfcd1e9e85423bf300ac1b808b5ef38aa5972d0d32f0c28a89ea765ad7d5c91cf51c8dd0
+ languageName: node
+ linkType: hard
+
+"@react-aria/button@npm:^3.9.7":
+ version: 3.9.7
+ resolution: "@react-aria/button@npm:3.9.7"
+ dependencies:
+ "@react-aria/focus": "npm:^3.18.1"
+ "@react-aria/interactions": "npm:^3.22.1"
+ "@react-aria/utils": "npm:^3.25.1"
+ "@react-stately/toggle": "npm:^3.7.6"
+ "@react-types/button": "npm:^3.9.6"
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/c8e6893933880db28cfcd701f82b0659d0ecc1e717cf75a2fa6b7c54626a4fc966bc1d22e39a01c2cc14926d20e45d63139a8aba2da3896041c6785a145c377f
+ languageName: node
+ linkType: hard
+
+"@react-aria/calendar@npm:^3.5.10":
+ version: 3.5.10
+ resolution: "@react-aria/calendar@npm:3.5.10"
+ dependencies:
+ "@internationalized/date": "npm:^3.5.5"
+ "@react-aria/i18n": "npm:^3.12.1"
+ "@react-aria/interactions": "npm:^3.22.1"
+ "@react-aria/live-announcer": "npm:^3.3.4"
+ "@react-aria/utils": "npm:^3.25.1"
+ "@react-stately/calendar": "npm:^3.5.3"
+ "@react-types/button": "npm:^3.9.6"
+ "@react-types/calendar": "npm:^3.4.8"
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/339a4224262f93b345bd5a1c81457927fc63aac43f5651aaa46420935bbbc3536fbc6446069d08eee18535c89e100734db0fb957aafdafbe04ab7130863d9da1
+ languageName: node
+ linkType: hard
+
+"@react-aria/checkbox@npm:^3.14.5":
+ version: 3.14.5
+ resolution: "@react-aria/checkbox@npm:3.14.5"
+ dependencies:
+ "@react-aria/form": "npm:^3.0.7"
+ "@react-aria/interactions": "npm:^3.22.1"
+ "@react-aria/label": "npm:^3.7.10"
+ "@react-aria/toggle": "npm:^3.10.6"
+ "@react-aria/utils": "npm:^3.25.1"
+ "@react-stately/checkbox": "npm:^3.6.7"
+ "@react-stately/form": "npm:^3.0.5"
+ "@react-stately/toggle": "npm:^3.7.6"
+ "@react-types/checkbox": "npm:^3.8.3"
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/019b1e8063d9cf9ed229c7bbbfde5649b927daf008612cd35c038dd793dcae3a8b2de9a2758a294f5852e8bb2a82ce0b8ff1213963d4407618d7a2a1cc82f3af
+ languageName: node
+ linkType: hard
+
+"@react-aria/combobox@npm:^3.10.1":
+ version: 3.10.1
+ resolution: "@react-aria/combobox@npm:3.10.1"
+ dependencies:
+ "@react-aria/i18n": "npm:^3.12.1"
+ "@react-aria/listbox": "npm:^3.13.1"
+ "@react-aria/live-announcer": "npm:^3.3.4"
+ "@react-aria/menu": "npm:^3.15.1"
+ "@react-aria/overlays": "npm:^3.23.1"
+ "@react-aria/selection": "npm:^3.19.1"
+ "@react-aria/textfield": "npm:^3.14.7"
+ "@react-aria/utils": "npm:^3.25.1"
+ "@react-stately/collections": "npm:^3.10.9"
+ "@react-stately/combobox": "npm:^3.9.1"
+ "@react-stately/form": "npm:^3.0.5"
+ "@react-types/button": "npm:^3.9.6"
+ "@react-types/combobox": "npm:^3.12.1"
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/e5b0f7466bc6956a19ef6cc4cf923c0768885efe6588c75edcf230f656cabc5bdf5d8882e9b900287627e51f65881845ba946857bd2144f2c4449555eeae2e71
+ languageName: node
+ linkType: hard
+
+"@react-aria/datepicker@npm:^3.11.1":
+ version: 3.11.1
+ resolution: "@react-aria/datepicker@npm:3.11.1"
+ dependencies:
+ "@internationalized/date": "npm:^3.5.5"
+ "@internationalized/number": "npm:^3.5.3"
+ "@internationalized/string": "npm:^3.2.3"
+ "@react-aria/focus": "npm:^3.18.1"
+ "@react-aria/form": "npm:^3.0.7"
+ "@react-aria/i18n": "npm:^3.12.1"
+ "@react-aria/interactions": "npm:^3.22.1"
+ "@react-aria/label": "npm:^3.7.10"
+ "@react-aria/spinbutton": "npm:^3.6.7"
+ "@react-aria/utils": "npm:^3.25.1"
+ "@react-stately/datepicker": "npm:^3.10.1"
+ "@react-stately/form": "npm:^3.0.5"
+ "@react-types/button": "npm:^3.9.6"
+ "@react-types/calendar": "npm:^3.4.8"
+ "@react-types/datepicker": "npm:^3.8.1"
+ "@react-types/dialog": "npm:^3.5.12"
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/ed171f4a8a424248094a0af2ed7b8c181e5830413d1f66dd3547f41efa74c725e3fac38cc8d01409640ff8aabfb1d361d7948b394739fc4ce9b17d98eb5c0100
+ languageName: node
+ linkType: hard
+
+"@react-aria/dialog@npm:^3.5.16":
+ version: 3.5.16
+ resolution: "@react-aria/dialog@npm:3.5.16"
+ dependencies:
+ "@react-aria/focus": "npm:^3.18.1"
+ "@react-aria/overlays": "npm:^3.23.1"
+ "@react-aria/utils": "npm:^3.25.1"
+ "@react-types/dialog": "npm:^3.5.12"
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/a8993610563da0fb0cd247d25daff5d2e10d531272f1d61e38547c6abeda18ca71771c826c9865cf2a8da209122551d48820cf0624c69ad12a792b2bf9c6eecc
+ languageName: node
+ linkType: hard
+
+"@react-aria/dnd@npm:^3.7.1":
+ version: 3.7.1
+ resolution: "@react-aria/dnd@npm:3.7.1"
+ dependencies:
+ "@internationalized/string": "npm:^3.2.3"
+ "@react-aria/i18n": "npm:^3.12.1"
+ "@react-aria/interactions": "npm:^3.22.1"
+ "@react-aria/live-announcer": "npm:^3.3.4"
+ "@react-aria/overlays": "npm:^3.23.1"
+ "@react-aria/utils": "npm:^3.25.1"
+ "@react-stately/dnd": "npm:^3.4.1"
+ "@react-types/button": "npm:^3.9.6"
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/288225d6a916ee64499ea7dee34aa151fbf1201f9a9982dfa3745e632016f18df502b11ab9e1599bc1082b34dcfa80e241834e82861bb6b58f3fbfedeb854ebf
+ languageName: node
+ linkType: hard
+
+"@react-aria/focus@npm:^3.18.1":
+ version: 3.18.1
+ resolution: "@react-aria/focus@npm:3.18.1"
+ dependencies:
+ "@react-aria/interactions": "npm:^3.22.1"
+ "@react-aria/utils": "npm:^3.25.1"
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ clsx: "npm:^2.0.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/e52cac0c7b61f5e78fa4e7be7dc090fb5ff028549facaf58488712574042f73f1a0dc9f2f3b96ea2c239f581049bf3b4476aad292a7c9cda378c12d02327f1c6
+ languageName: node
+ linkType: hard
+
+"@react-aria/form@npm:^3.0.7":
+ version: 3.0.7
+ resolution: "@react-aria/form@npm:3.0.7"
+ dependencies:
+ "@react-aria/interactions": "npm:^3.22.1"
+ "@react-aria/utils": "npm:^3.25.1"
+ "@react-stately/form": "npm:^3.0.5"
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/83f238854f6f3cb2ef9646d66a99965c55e56bade9ac42a0d56e9ac8354b277fefb9708d6aba2f1dbd2f47ccf8966f7ad6f386bec168db8b217c3c1511a568c6
+ languageName: node
+ linkType: hard
+
+"@react-aria/grid@npm:^3.10.1":
+ version: 3.10.1
+ resolution: "@react-aria/grid@npm:3.10.1"
+ dependencies:
+ "@react-aria/focus": "npm:^3.18.1"
+ "@react-aria/i18n": "npm:^3.12.1"
+ "@react-aria/interactions": "npm:^3.22.1"
+ "@react-aria/live-announcer": "npm:^3.3.4"
+ "@react-aria/selection": "npm:^3.19.1"
+ "@react-aria/utils": "npm:^3.25.1"
+ "@react-stately/collections": "npm:^3.10.9"
+ "@react-stately/grid": "npm:^3.9.1"
+ "@react-stately/selection": "npm:^3.16.1"
+ "@react-types/checkbox": "npm:^3.8.3"
+ "@react-types/grid": "npm:^3.2.8"
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/6072d42f5d8d1a98cf0b623e174348fd1d742e7a9777aec131e65588768a6d64494aaf664f94eb666c357cc15fc17e782b720343ad4cb1945c6afac3785eec69
+ languageName: node
+ linkType: hard
+
+"@react-aria/gridlist@npm:^3.9.1":
+ version: 3.9.1
+ resolution: "@react-aria/gridlist@npm:3.9.1"
+ dependencies:
+ "@react-aria/focus": "npm:^3.18.1"
+ "@react-aria/grid": "npm:^3.10.1"
+ "@react-aria/i18n": "npm:^3.12.1"
+ "@react-aria/interactions": "npm:^3.22.1"
+ "@react-aria/selection": "npm:^3.19.1"
+ "@react-aria/utils": "npm:^3.25.1"
+ "@react-stately/collections": "npm:^3.10.9"
+ "@react-stately/list": "npm:^3.10.7"
+ "@react-stately/tree": "npm:^3.8.3"
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/702e7840b0f979fdf5ade22159377ea89486c2e4e5c86b293f71df8c8a36178916a84fa9397724063fbd17726bdd79992cd0a5ad25b3eec582d948f1227ad14c
+ languageName: node
+ linkType: hard
+
+"@react-aria/i18n@npm:^3.12.1":
+ version: 3.12.1
+ resolution: "@react-aria/i18n@npm:3.12.1"
+ dependencies:
+ "@internationalized/date": "npm:^3.5.5"
+ "@internationalized/message": "npm:^3.1.4"
+ "@internationalized/number": "npm:^3.5.3"
+ "@internationalized/string": "npm:^3.2.3"
+ "@react-aria/ssr": "npm:^3.9.5"
+ "@react-aria/utils": "npm:^3.25.1"
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/145d602a0f47a24fe38ba444b2b72f7917d3f6656a2e3af9c71850af44f8939f912e508b6b4d251f8b8dc6c93ead3fe4749ab7f71e756304a675f23a852eebf1
+ languageName: node
+ linkType: hard
+
+"@react-aria/interactions@npm:^3.22.1":
+ version: 3.22.1
+ resolution: "@react-aria/interactions@npm:3.22.1"
+ dependencies:
+ "@react-aria/ssr": "npm:^3.9.5"
+ "@react-aria/utils": "npm:^3.25.1"
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/d54d5398cd0e399b9752f57628b2c58c25add43c74fa785f849ffa187605a14bf0cc5754e1d8859af244cd3bb4478309fdea6e02653b5cbebfc7a66c8142e059
+ languageName: node
+ linkType: hard
+
+"@react-aria/label@npm:^3.7.10":
+ version: 3.7.10
+ resolution: "@react-aria/label@npm:3.7.10"
+ dependencies:
+ "@react-aria/utils": "npm:^3.25.1"
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/34759d487c9d93041ce582fc0e5b2e5f8418c88e81ed913ed061e160a01acf42d2556a342017fb0448799e4544c731d261925df5910178bfb70c92ea83c9e4af
+ languageName: node
+ linkType: hard
+
+"@react-aria/link@npm:^3.7.3":
+ version: 3.7.3
+ resolution: "@react-aria/link@npm:3.7.3"
+ dependencies:
+ "@react-aria/focus": "npm:^3.18.1"
+ "@react-aria/interactions": "npm:^3.22.1"
+ "@react-aria/utils": "npm:^3.25.1"
+ "@react-types/link": "npm:^3.5.7"
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/751f68003aef54c277c98c823fb0289772c4069963a909e4456acd1810fb5f41436fa6e2296cb500561f48b34b467addd94454428d10d738e108812a64b1fcee
+ languageName: node
+ linkType: hard
+
+"@react-aria/listbox@npm:^3.12.1, @react-aria/listbox@npm:^3.13.1":
+ version: 3.13.1
+ resolution: "@react-aria/listbox@npm:3.13.1"
+ dependencies:
+ "@react-aria/interactions": "npm:^3.22.1"
+ "@react-aria/label": "npm:^3.7.10"
+ "@react-aria/selection": "npm:^3.19.1"
+ "@react-aria/utils": "npm:^3.25.1"
+ "@react-stately/collections": "npm:^3.10.9"
+ "@react-stately/list": "npm:^3.10.7"
+ "@react-types/listbox": "npm:^3.5.1"
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/894aa8943bdd7b49dc374ae87caa7a3e8f6b0ae20bfa48047e86127db32e2a4057121f6209483f0e931015597e031a904593e56b2228cbc1008b22d438c3df44
+ languageName: node
+ linkType: hard
+
+"@react-aria/live-announcer@npm:^3.3.4":
+ version: 3.3.4
+ resolution: "@react-aria/live-announcer@npm:3.3.4"
+ dependencies:
+ "@swc/helpers": "npm:^0.5.0"
+ checksum: 10c0/69c86b75686a2c4108da3f959da4c5739b0130ff370468c6d8ea3aaf594315c6ac1577c5b7bdb56629073ad19852d2bef18e412fd7acfd6c390201291ac9dcf9
+ languageName: node
+ linkType: hard
+
+"@react-aria/menu@npm:^3.15.1":
+ version: 3.15.1
+ resolution: "@react-aria/menu@npm:3.15.1"
+ dependencies:
+ "@react-aria/focus": "npm:^3.18.1"
+ "@react-aria/i18n": "npm:^3.12.1"
+ "@react-aria/interactions": "npm:^3.22.1"
+ "@react-aria/overlays": "npm:^3.23.1"
+ "@react-aria/selection": "npm:^3.19.1"
+ "@react-aria/utils": "npm:^3.25.1"
+ "@react-stately/collections": "npm:^3.10.9"
+ "@react-stately/menu": "npm:^3.8.1"
+ "@react-stately/tree": "npm:^3.8.3"
+ "@react-types/button": "npm:^3.9.6"
+ "@react-types/menu": "npm:^3.9.11"
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/7e6cd5f3a7bf1fc71f71672c370a037be9052a44a54980edc8bff4ce83d01c283729b972504f4df073b087439613c49bc90d69a2bce33b03fe9df6bf247374ee
+ languageName: node
+ linkType: hard
+
+"@react-aria/meter@npm:^3.4.15":
+ version: 3.4.15
+ resolution: "@react-aria/meter@npm:3.4.15"
+ dependencies:
+ "@react-aria/progress": "npm:^3.4.15"
+ "@react-types/meter": "npm:^3.4.3"
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/104b67005613ff096155f1f2d6d1f023c0f5262affebad14f1b53c83ade2e0fd83066ff64dcd54ae132436af4832866f7d804ca8a770879243539c2946411ad5
+ languageName: node
+ linkType: hard
+
+"@react-aria/numberfield@npm:^3.11.5":
+ version: 3.11.5
+ resolution: "@react-aria/numberfield@npm:3.11.5"
+ dependencies:
+ "@react-aria/i18n": "npm:^3.12.1"
+ "@react-aria/interactions": "npm:^3.22.1"
+ "@react-aria/spinbutton": "npm:^3.6.7"
+ "@react-aria/textfield": "npm:^3.14.7"
+ "@react-aria/utils": "npm:^3.25.1"
+ "@react-stately/form": "npm:^3.0.5"
+ "@react-stately/numberfield": "npm:^3.9.5"
+ "@react-types/button": "npm:^3.9.6"
+ "@react-types/numberfield": "npm:^3.8.5"
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/71c9cbd60847b81642b65520ba226bb32beb81c8ce0d7835cb6ce87132f35809b17b556a7538fb8beefdbd3945730156327bff030983f66b0c53b50f64bfe989
+ languageName: node
+ linkType: hard
+
+"@react-aria/overlays@npm:^3.22.1, @react-aria/overlays@npm:^3.23.1":
+ version: 3.23.1
+ resolution: "@react-aria/overlays@npm:3.23.1"
+ dependencies:
+ "@react-aria/focus": "npm:^3.18.1"
+ "@react-aria/i18n": "npm:^3.12.1"
+ "@react-aria/interactions": "npm:^3.22.1"
+ "@react-aria/ssr": "npm:^3.9.5"
+ "@react-aria/utils": "npm:^3.25.1"
+ "@react-aria/visually-hidden": "npm:^3.8.14"
+ "@react-stately/overlays": "npm:^3.6.9"
+ "@react-types/button": "npm:^3.9.6"
+ "@react-types/overlays": "npm:^3.8.9"
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/3a5829a57a28071efcbb4a548d6e30e5b0ea52c831e03ef5394c0fa64625ce3b4f64b7e769653f32d0bea6bbee0ee5ad7a1e6ae87373fb861fef57b1d54ee7df
+ languageName: node
+ linkType: hard
+
+"@react-aria/progress@npm:^3.4.15":
+ version: 3.4.15
+ resolution: "@react-aria/progress@npm:3.4.15"
+ dependencies:
+ "@react-aria/i18n": "npm:^3.12.1"
+ "@react-aria/label": "npm:^3.7.10"
+ "@react-aria/utils": "npm:^3.25.1"
+ "@react-types/progress": "npm:^3.5.6"
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/cb2b130fe869333d3c014b6093c62c29372dc7d680e121552a918f7b1f08808d53371b75b41f6c431bc54a9609babd624965a00f3e4ceaf68e850294f86464e0
+ languageName: node
+ linkType: hard
+
+"@react-aria/radio@npm:^3.10.6":
+ version: 3.10.6
+ resolution: "@react-aria/radio@npm:3.10.6"
+ dependencies:
+ "@react-aria/focus": "npm:^3.18.1"
+ "@react-aria/form": "npm:^3.0.7"
+ "@react-aria/i18n": "npm:^3.12.1"
+ "@react-aria/interactions": "npm:^3.22.1"
+ "@react-aria/label": "npm:^3.7.10"
+ "@react-aria/utils": "npm:^3.25.1"
+ "@react-stately/radio": "npm:^3.10.6"
+ "@react-types/radio": "npm:^3.8.3"
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/a5e2da0453f9319314607bba16f788efbe21016b326ddcbd4721687b18db7b6999afe4ddff4bae52948650dcfea78f6ef16d0aa73fb808a27230c013ba38499c
+ languageName: node
+ linkType: hard
+
+"@react-aria/searchfield@npm:^3.7.7":
+ version: 3.7.7
+ resolution: "@react-aria/searchfield@npm:3.7.7"
+ dependencies:
+ "@react-aria/i18n": "npm:^3.12.1"
+ "@react-aria/textfield": "npm:^3.14.7"
+ "@react-aria/utils": "npm:^3.25.1"
+ "@react-stately/searchfield": "npm:^3.5.5"
+ "@react-types/button": "npm:^3.9.6"
+ "@react-types/searchfield": "npm:^3.5.7"
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/48a6b01fb939b263e2cee8299591b121e04246bd439e3a34f8d7f4acf20e5e890a862251a239d465e054662c1e9a5b316ed4ea63f19bf9abd662f6cb492b6057
+ languageName: node
+ linkType: hard
+
+"@react-aria/select@npm:^3.14.7":
+ version: 3.14.7
+ resolution: "@react-aria/select@npm:3.14.7"
+ dependencies:
+ "@react-aria/form": "npm:^3.0.7"
+ "@react-aria/i18n": "npm:^3.12.1"
+ "@react-aria/interactions": "npm:^3.22.1"
+ "@react-aria/label": "npm:^3.7.10"
+ "@react-aria/listbox": "npm:^3.13.1"
+ "@react-aria/menu": "npm:^3.15.1"
+ "@react-aria/selection": "npm:^3.19.1"
+ "@react-aria/utils": "npm:^3.25.1"
+ "@react-aria/visually-hidden": "npm:^3.8.14"
+ "@react-stately/select": "npm:^3.6.6"
+ "@react-types/button": "npm:^3.9.6"
+ "@react-types/select": "npm:^3.9.6"
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/26f302bcac13684732fc447896096abc1dade9458d7547233b036ec9633ebf946f907e0f997daa79b753ff3dc13d261ea1f38b8678d15bcdc6c82b343cb6f2ea
+ languageName: node
+ linkType: hard
+
+"@react-aria/selection@npm:^3.19.1":
+ version: 3.19.1
+ resolution: "@react-aria/selection@npm:3.19.1"
+ dependencies:
+ "@react-aria/focus": "npm:^3.18.1"
+ "@react-aria/i18n": "npm:^3.12.1"
+ "@react-aria/interactions": "npm:^3.22.1"
+ "@react-aria/utils": "npm:^3.25.1"
+ "@react-stately/selection": "npm:^3.16.1"
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/6b00810378d4e57e4cfd72af223df7772a52bf4c68fee3398f23b1e43c293c2eaca66048d1f4ef1180d80163e5f2e95cf105077e0e48cdebadfcb254d4cd47a6
+ languageName: node
+ linkType: hard
+
+"@react-aria/separator@npm:^3.4.1":
+ version: 3.4.1
+ resolution: "@react-aria/separator@npm:3.4.1"
+ dependencies:
+ "@react-aria/utils": "npm:^3.25.1"
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/a48f42b21f14d1bb20149d8b5c43a41b1bed8bdc3876609c762a891cf5158889c419ea99f08be4efb77fe76b9e5f18a86f6d7085409195c9dc0460c6daf4d17e
+ languageName: node
+ linkType: hard
+
+"@react-aria/slider@npm:^3.7.10":
+ version: 3.7.10
+ resolution: "@react-aria/slider@npm:3.7.10"
+ dependencies:
+ "@react-aria/focus": "npm:^3.18.1"
+ "@react-aria/i18n": "npm:^3.12.1"
+ "@react-aria/interactions": "npm:^3.22.1"
+ "@react-aria/label": "npm:^3.7.10"
+ "@react-aria/utils": "npm:^3.25.1"
+ "@react-stately/slider": "npm:^3.5.6"
+ "@react-types/shared": "npm:^3.24.1"
+ "@react-types/slider": "npm:^3.7.5"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/309b6a7fea5220a798712f89b5e47ec75676667252546d24d0883f630e034130fe72bc306861268cead914ee796818ebc6f59ab6ffb3a32a8cd91fc82dcef021
+ languageName: node
+ linkType: hard
+
+"@react-aria/spinbutton@npm:^3.6.7":
+ version: 3.6.7
+ resolution: "@react-aria/spinbutton@npm:3.6.7"
+ dependencies:
+ "@react-aria/i18n": "npm:^3.12.1"
+ "@react-aria/live-announcer": "npm:^3.3.4"
+ "@react-aria/utils": "npm:^3.25.1"
+ "@react-types/button": "npm:^3.9.6"
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/44238b64b267513567b1eed1c24c5696c77bb61855223a7867ad9004a070cf042a895ebcd97c2970dd52b67cebce6d74807664d97eb5d03f2cfe0dd3613b1eb3
+ languageName: node
+ linkType: hard
+
+"@react-aria/ssr@npm:^3.9.5":
+ version: 3.9.5
+ resolution: "@react-aria/ssr@npm:3.9.5"
+ dependencies:
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/e28d3e366b77c77276bd74c8d906ccccc9a5f72c00e65c82c9f35584c3bb2467513429e87facc4e6ede756a2870dddb1645073a6b9afb00b3f28f20a1b0f2d36
+ languageName: node
+ linkType: hard
+
+"@react-aria/switch@npm:^3.6.6":
+ version: 3.6.6
+ resolution: "@react-aria/switch@npm:3.6.6"
+ dependencies:
+ "@react-aria/toggle": "npm:^3.10.6"
+ "@react-stately/toggle": "npm:^3.7.6"
+ "@react-types/shared": "npm:^3.24.1"
+ "@react-types/switch": "npm:^3.5.5"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/bd83dc1b3467f58c451d8b5d7a4bd2a6cbf848e291e5487a487f8694fb182bd6213890ea8a2f15a113d04ca8f4fe4c4ec276644228e208b1bf38a105af05f2e4
+ languageName: node
+ linkType: hard
+
+"@react-aria/table@npm:^3.15.1":
+ version: 3.15.1
+ resolution: "@react-aria/table@npm:3.15.1"
+ dependencies:
+ "@react-aria/focus": "npm:^3.18.1"
+ "@react-aria/grid": "npm:^3.10.1"
+ "@react-aria/i18n": "npm:^3.12.1"
+ "@react-aria/interactions": "npm:^3.22.1"
+ "@react-aria/live-announcer": "npm:^3.3.4"
+ "@react-aria/utils": "npm:^3.25.1"
+ "@react-aria/visually-hidden": "npm:^3.8.14"
+ "@react-stately/collections": "npm:^3.10.9"
+ "@react-stately/flags": "npm:^3.0.3"
+ "@react-stately/table": "npm:^3.12.1"
+ "@react-types/checkbox": "npm:^3.8.3"
+ "@react-types/grid": "npm:^3.2.8"
+ "@react-types/shared": "npm:^3.24.1"
+ "@react-types/table": "npm:^3.10.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/5684c5de6281b34de63a0d872fe777d793d7403deeaa7645946797c75fc9e0ccc8a7be316a06e1cbf88e477f592b1a0124da4f395d0d26c16be126db93f24cd3
+ languageName: node
+ linkType: hard
+
+"@react-aria/tabs@npm:^3.9.3":
+ version: 3.9.3
+ resolution: "@react-aria/tabs@npm:3.9.3"
+ dependencies:
+ "@react-aria/focus": "npm:^3.18.1"
+ "@react-aria/i18n": "npm:^3.12.1"
+ "@react-aria/selection": "npm:^3.19.1"
+ "@react-aria/utils": "npm:^3.25.1"
+ "@react-stately/tabs": "npm:^3.6.8"
+ "@react-types/shared": "npm:^3.24.1"
+ "@react-types/tabs": "npm:^3.3.9"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/59225fc3e25709006e474dd269df673125e06528173fed777fd75337b52bbe4c5a1bc4e4f5b67f27a324c099cdcc4dea040b3f73c7ce3e77eb06e7218d9e4531
+ languageName: node
+ linkType: hard
+
+"@react-aria/tag@npm:^3.4.3":
+ version: 3.4.3
+ resolution: "@react-aria/tag@npm:3.4.3"
+ dependencies:
+ "@react-aria/gridlist": "npm:^3.9.1"
+ "@react-aria/i18n": "npm:^3.12.1"
+ "@react-aria/interactions": "npm:^3.22.1"
+ "@react-aria/label": "npm:^3.7.10"
+ "@react-aria/selection": "npm:^3.19.1"
+ "@react-aria/utils": "npm:^3.25.1"
+ "@react-stately/list": "npm:^3.10.7"
+ "@react-types/button": "npm:^3.9.6"
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/07044ab99d2866a21677b88d4ed4141e5fb327f822cad8c88b9e8ce87ad171cbddcadbec20e5260a1f5437e31bdb4d6802f0ff7703a067db9bfec77bf7ad051a
+ languageName: node
+ linkType: hard
+
+"@react-aria/textfield@npm:^3.14.7":
+ version: 3.14.7
+ resolution: "@react-aria/textfield@npm:3.14.7"
+ dependencies:
+ "@react-aria/focus": "npm:^3.18.1"
+ "@react-aria/form": "npm:^3.0.7"
+ "@react-aria/label": "npm:^3.7.10"
+ "@react-aria/utils": "npm:^3.25.1"
+ "@react-stately/form": "npm:^3.0.5"
+ "@react-stately/utils": "npm:^3.10.2"
+ "@react-types/shared": "npm:^3.24.1"
+ "@react-types/textfield": "npm:^3.9.5"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/f7805991e4593c3223f5ceee33984148575e504907b9d283b2ceef2815d6fa25c825536c71032585f873199ce62f6c28ea22db747f21b9dc970e115181024724
+ languageName: node
+ linkType: hard
+
+"@react-aria/toggle@npm:^3.10.6":
+ version: 3.10.6
+ resolution: "@react-aria/toggle@npm:3.10.6"
+ dependencies:
+ "@react-aria/focus": "npm:^3.18.1"
+ "@react-aria/interactions": "npm:^3.22.1"
+ "@react-aria/utils": "npm:^3.25.1"
+ "@react-stately/toggle": "npm:^3.7.6"
+ "@react-types/checkbox": "npm:^3.8.3"
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/80263dd0f445f48a4cff6501dd76cccef92b7552541a438b42f853cdd410196209854cc0a1b25dddf14a01d95221b7a0cd4dcfd381c4ffa26ea9c3d3b523c51b
+ languageName: node
+ linkType: hard
+
+"@react-aria/tooltip@npm:^3.7.6":
+ version: 3.7.6
+ resolution: "@react-aria/tooltip@npm:3.7.6"
+ dependencies:
+ "@react-aria/focus": "npm:^3.18.1"
+ "@react-aria/interactions": "npm:^3.22.1"
+ "@react-aria/utils": "npm:^3.25.1"
+ "@react-stately/tooltip": "npm:^3.4.11"
+ "@react-types/shared": "npm:^3.24.1"
+ "@react-types/tooltip": "npm:^3.4.11"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/6fa92ada13ce0840eef879e155eaa4155462984e2bea62150d762879d20f2085f035173566a11e61612361b9490f21bde43377206889caf40ae84b8cd7a55bf8
+ languageName: node
+ linkType: hard
+
+"@react-aria/utils@npm:^3.24.1, @react-aria/utils@npm:^3.25.1":
+ version: 3.25.1
+ resolution: "@react-aria/utils@npm:3.25.1"
+ dependencies:
+ "@react-aria/ssr": "npm:^3.9.5"
+ "@react-stately/utils": "npm:^3.10.2"
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ clsx: "npm:^2.0.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/a03638713ce7d4f415256cbd3643ef16f2cfd76839778a4ec3b232c6534bd1b4aa1ce02d77dddca57305a04a220dcf345da187e16ba4ae5b2081d73479bafb33
+ languageName: node
+ linkType: hard
+
+"@react-aria/visually-hidden@npm:^3.8.14":
+ version: 3.8.14
+ resolution: "@react-aria/visually-hidden@npm:3.8.14"
+ dependencies:
+ "@react-aria/interactions": "npm:^3.22.1"
+ "@react-aria/utils": "npm:^3.25.1"
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/6ba4071afe0dc5c587dccaec263ecbe0722ec69af7e6dff1c3737702a35f599c6459946a15b7683f1ae1b80c6ada72dbae27eb45269afd1c613ad832add76fe7
+ languageName: node
+ linkType: hard
+
+"@react-icons/all-files@npm:^4.1.0":
+ version: 4.1.0
+ resolution: "@react-icons/all-files@npm:4.1.0"
+ peerDependencies:
+ react: "*"
+ checksum: 10c0/6327623b857ba2a9fdf835f2e7029feec7acdd53dc14163085789518d7e1323deb7db649b660d3bad3991285e8408238ad4d09c37b9a0ba7d2601dd74ac0ae56
+ languageName: node
+ linkType: hard
+
+"@react-stately/calendar@npm:^3.5.3":
+ version: 3.5.3
+ resolution: "@react-stately/calendar@npm:3.5.3"
+ dependencies:
+ "@internationalized/date": "npm:^3.5.5"
+ "@react-stately/utils": "npm:^3.10.2"
+ "@react-types/calendar": "npm:^3.4.8"
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/8ae73e55503ee93864eded90bdbe3155218e55de0e19f52c5419930be41634085b8f90f99e56775ddef1f3172ef03f1fa0710bb9fd3cc5155d62a4f6305fc980
+ languageName: node
+ linkType: hard
+
+"@react-stately/checkbox@npm:^3.6.7":
+ version: 3.6.7
+ resolution: "@react-stately/checkbox@npm:3.6.7"
+ dependencies:
+ "@react-stately/form": "npm:^3.0.5"
+ "@react-stately/utils": "npm:^3.10.2"
+ "@react-types/checkbox": "npm:^3.8.3"
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/e84c9e8d57631e1007e05268cd15fce84f5208fd8d2f8bc3313ac6fede36cb580f224260a98caebfb9bdb7f5e54b43758d867d7e8e45ce67b4f6656b91a20792
+ languageName: node
+ linkType: hard
+
+"@react-stately/collections@npm:^3.10.9":
+ version: 3.10.9
+ resolution: "@react-stately/collections@npm:3.10.9"
+ dependencies:
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/726fb28ee15b3c115caef3b39513b70672c9a6c6e4de88d0c13572d449e95f5bd188bc2eac0ebd147fef78b4e008eefb20149e63c37b3c9bdf126dc98a237d2b
+ languageName: node
+ linkType: hard
+
+"@react-stately/combobox@npm:^3.9.1":
+ version: 3.9.1
+ resolution: "@react-stately/combobox@npm:3.9.1"
+ dependencies:
+ "@react-stately/collections": "npm:^3.10.9"
+ "@react-stately/form": "npm:^3.0.5"
+ "@react-stately/list": "npm:^3.10.7"
+ "@react-stately/overlays": "npm:^3.6.9"
+ "@react-stately/select": "npm:^3.6.6"
+ "@react-stately/utils": "npm:^3.10.2"
+ "@react-types/combobox": "npm:^3.12.1"
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/74a160c1ee8af41a2fb329d4f885a43e2c58ed3c14d4393bd96232acf0905f447bf1e1c5e50afe9a746016aaebe0b5e93cbfcd4aec1bdee0be0dfeb1248f07c8
+ languageName: node
+ linkType: hard
+
+"@react-stately/data@npm:^3.11.6":
+ version: 3.11.6
+ resolution: "@react-stately/data@npm:3.11.6"
+ dependencies:
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/b81e229ef2ca8b0bc80a35a47695a1fbf1dd1c15f1728411e2440b398439024ce405cba963cbff267bf0a6235650f06744b719e6764fa21f6f490307c98783e1
+ languageName: node
+ linkType: hard
+
+"@react-stately/datepicker@npm:^3.10.1":
+ version: 3.10.1
+ resolution: "@react-stately/datepicker@npm:3.10.1"
+ dependencies:
+ "@internationalized/date": "npm:^3.5.5"
+ "@internationalized/string": "npm:^3.2.3"
+ "@react-stately/form": "npm:^3.0.5"
+ "@react-stately/overlays": "npm:^3.6.9"
+ "@react-stately/utils": "npm:^3.10.2"
+ "@react-types/datepicker": "npm:^3.8.1"
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/0f50b56d643517ac9353cc2a4c0e30160c086075b586107bddf1c49da5072affd654de23b521b14feef40ab4307c183ca6ee98c179344d9075fa1d36fba42153
+ languageName: node
+ linkType: hard
+
+"@react-stately/dnd@npm:^3.4.1":
+ version: 3.4.1
+ resolution: "@react-stately/dnd@npm:3.4.1"
+ dependencies:
+ "@react-stately/selection": "npm:^3.16.1"
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/7aeeb34f7dd7099635b1c08b1004ae7698af1b1cac5c1bdfbf2741aecc97d4555f8410fb01f45261dbf5f956df8b54f32c1d1083e971cae8dc51ae2f09711e1e
+ languageName: node
+ linkType: hard
+
+"@react-stately/flags@npm:^3.0.3":
+ version: 3.0.3
+ resolution: "@react-stately/flags@npm:3.0.3"
+ dependencies:
+ "@swc/helpers": "npm:^0.5.0"
+ checksum: 10c0/314a5885e2060dc56a32d1bae892af1f7644e14e66aa3ae3f6c0b1b4a6a1a8ded0e03adcea24bcfb9df3b87cd77f2139fde8a3d1098a0e3ba3604c3c8916385e
+ languageName: node
+ linkType: hard
+
+"@react-stately/form@npm:^3.0.5":
+ version: 3.0.5
+ resolution: "@react-stately/form@npm:3.0.5"
+ dependencies:
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/e85c2e4635b56b29d0aaf636e6c4d9df9c8a2877db2cfb3a0d0a4ecb4fa54f028a24a606a495152d83c8b350a97dda199c572f1413a2d49ce9dd8ebcf577a51f
+ languageName: node
+ linkType: hard
+
+"@react-stately/grid@npm:^3.9.1":
+ version: 3.9.1
+ resolution: "@react-stately/grid@npm:3.9.1"
+ dependencies:
+ "@react-stately/collections": "npm:^3.10.9"
+ "@react-stately/selection": "npm:^3.16.1"
+ "@react-types/grid": "npm:^3.2.8"
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/0a10d718062215c2c75bd27d629bf6af926e206edafaf846d97754d2d8c5a183cc1f72d83320648cfdfa5cc6ecbdeb94abff7ff0fd68f2ea7b8033ec840e3099
+ languageName: node
+ linkType: hard
+
+"@react-stately/list@npm:^3.10.7":
+ version: 3.10.7
+ resolution: "@react-stately/list@npm:3.10.7"
+ dependencies:
+ "@react-stately/collections": "npm:^3.10.9"
+ "@react-stately/selection": "npm:^3.16.1"
+ "@react-stately/utils": "npm:^3.10.2"
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/fba520082a8ff84cf1f9df20c7675366d16585fb58788c845ee3dedf3611c609c5746c1c40ce0cce45fffed2bb778eb4a26a0550006d44935dd164598e9d4f51
+ languageName: node
+ linkType: hard
+
+"@react-stately/menu@npm:^3.8.1":
+ version: 3.8.1
+ resolution: "@react-stately/menu@npm:3.8.1"
+ dependencies:
+ "@react-stately/overlays": "npm:^3.6.9"
+ "@react-types/menu": "npm:^3.9.11"
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/81c9edddcbd4554337028545700fd18b1c8b70980ff6b4d97a15c90fb8d17ecec799a9aae826f0cd340f813cc4d25a210c06c83f6754f116b27ee22b2c706546
+ languageName: node
+ linkType: hard
+
+"@react-stately/numberfield@npm:^3.9.5":
+ version: 3.9.5
+ resolution: "@react-stately/numberfield@npm:3.9.5"
+ dependencies:
+ "@internationalized/number": "npm:^3.5.3"
+ "@react-stately/form": "npm:^3.0.5"
+ "@react-stately/utils": "npm:^3.10.2"
+ "@react-types/numberfield": "npm:^3.8.5"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/75df2a78d9c2eba744f7d8bc9d57f7edd97f90152694978c4f75cb8260af0bd3d0aa3dce7f5ddbb1a1d2253e9cbb2a557218fab6e0f8ee7d200d2ddbf7422f8c
+ languageName: node
+ linkType: hard
+
+"@react-stately/overlays@npm:^3.6.9":
+ version: 3.6.9
+ resolution: "@react-stately/overlays@npm:3.6.9"
+ dependencies:
+ "@react-stately/utils": "npm:^3.10.2"
+ "@react-types/overlays": "npm:^3.8.9"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/ee8074c60257605169f649c8dde09379d5700a7284c453c7e53b9ba84442247eac170319fab5b8e7663e698560ec3cb5c8014cc9f50b0edb9fbef3ae7bec7ef5
+ languageName: node
+ linkType: hard
+
+"@react-stately/radio@npm:^3.10.6":
+ version: 3.10.6
+ resolution: "@react-stately/radio@npm:3.10.6"
+ dependencies:
+ "@react-stately/form": "npm:^3.0.5"
+ "@react-stately/utils": "npm:^3.10.2"
+ "@react-types/radio": "npm:^3.8.3"
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/762713b9d39c11deee83b8192556ae911849e67349d029f1dc547a8167bc3cc56553c5d034ae8a44637f901dad1aaf94c5186e7ed291afd56ff565def8b6676a
+ languageName: node
+ linkType: hard
+
+"@react-stately/searchfield@npm:^3.5.5":
+ version: 3.5.5
+ resolution: "@react-stately/searchfield@npm:3.5.5"
+ dependencies:
+ "@react-stately/utils": "npm:^3.10.2"
+ "@react-types/searchfield": "npm:^3.5.7"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/3d600d81bb806227d882b4f50a656fafbc7923c0bc647744827e7081b545dd905cd405262473fdf2858cf12c4eb660bd6f35e68183c34f2f22efc12234bafe5b
+ languageName: node
+ linkType: hard
+
+"@react-stately/select@npm:^3.6.6":
+ version: 3.6.6
+ resolution: "@react-stately/select@npm:3.6.6"
+ dependencies:
+ "@react-stately/form": "npm:^3.0.5"
+ "@react-stately/list": "npm:^3.10.7"
+ "@react-stately/overlays": "npm:^3.6.9"
+ "@react-types/select": "npm:^3.9.6"
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/6894b64bef84c3abc3de7711491e1696412f18521c15f16772542d7b16a1598f29d2375e0dba4cb5789212db322934cf6e47df22e78e4d96dc90412a9b9b3637
+ languageName: node
+ linkType: hard
+
+"@react-stately/selection@npm:^3.16.1":
+ version: 3.16.1
+ resolution: "@react-stately/selection@npm:3.16.1"
+ dependencies:
+ "@react-stately/collections": "npm:^3.10.9"
+ "@react-stately/utils": "npm:^3.10.2"
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/d4bd18c0a565070a0390e0cd0c658fcede552fdd7714f6c19f08013633cff3cb2b1c4c18004bb5e639a4455ec05ca34932ca3a703ff439f1b12c9487e7305607
+ languageName: node
+ linkType: hard
+
+"@react-stately/slider@npm:^3.5.6":
+ version: 3.5.6
+ resolution: "@react-stately/slider@npm:3.5.6"
+ dependencies:
+ "@react-stately/utils": "npm:^3.10.2"
+ "@react-types/shared": "npm:^3.24.1"
+ "@react-types/slider": "npm:^3.7.5"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/20056505c707c2667c350695fa20c7121aae317f82dda1b90bb711f34fcc7e5a63c39e6b0626efc49bca6658b3fd90996bba3f8bc3a9c959f8037ee1c0371264
+ languageName: node
+ linkType: hard
+
+"@react-stately/table@npm:^3.12.1":
+ version: 3.12.1
+ resolution: "@react-stately/table@npm:3.12.1"
+ dependencies:
+ "@react-stately/collections": "npm:^3.10.9"
+ "@react-stately/flags": "npm:^3.0.3"
+ "@react-stately/grid": "npm:^3.9.1"
+ "@react-stately/selection": "npm:^3.16.1"
+ "@react-stately/utils": "npm:^3.10.2"
+ "@react-types/grid": "npm:^3.2.8"
+ "@react-types/shared": "npm:^3.24.1"
+ "@react-types/table": "npm:^3.10.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/4d2922c976add176c14d01caa2adada27f4244f310e84205b3c35879b8db7edde93cb9ee0bb633485111aa2484659966c26b8bd724b23afcf02d0ea8f7a13110
+ languageName: node
+ linkType: hard
+
+"@react-stately/tabs@npm:^3.6.8":
+ version: 3.6.8
+ resolution: "@react-stately/tabs@npm:3.6.8"
+ dependencies:
+ "@react-stately/list": "npm:^3.10.7"
+ "@react-types/shared": "npm:^3.24.1"
+ "@react-types/tabs": "npm:^3.3.9"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/45e353bf2aaa248640f10a41b0ed1c98be85d4c37fb79f0cea2059824c5b761f67c7564f18af838d4498ad724e9f6f8fe59c44ffe700af5addb5b5ac1757c58c
+ languageName: node
+ linkType: hard
+
+"@react-stately/toggle@npm:^3.7.6":
+ version: 3.7.6
+ resolution: "@react-stately/toggle@npm:3.7.6"
+ dependencies:
+ "@react-stately/utils": "npm:^3.10.2"
+ "@react-types/checkbox": "npm:^3.8.3"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/d79fa29ad9cc5783c31920f0cae9af5cf5c9e5b8edbb3eda827b88e30995504762be27ee891e77e61db6342880225749b8ab55b084caf3bf5ee193a411c07e51
+ languageName: node
+ linkType: hard
+
+"@react-stately/tooltip@npm:^3.4.11":
+ version: 3.4.11
+ resolution: "@react-stately/tooltip@npm:3.4.11"
+ dependencies:
+ "@react-stately/overlays": "npm:^3.6.9"
+ "@react-types/tooltip": "npm:^3.4.11"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/78be4066d582325c898784d32c4f324d0cfd4a953f05b4942ca530da22c3f6b9849888530ab382cfc02f17f204a6139536918a671339d3cf991a00a1221c4e5a
+ languageName: node
+ linkType: hard
+
+"@react-stately/tree@npm:^3.8.3":
+ version: 3.8.3
+ resolution: "@react-stately/tree@npm:3.8.3"
+ dependencies:
+ "@react-stately/collections": "npm:^3.10.9"
+ "@react-stately/selection": "npm:^3.16.1"
+ "@react-stately/utils": "npm:^3.10.2"
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/6c87317309220043fefb0434d308a433a3936f864ff6eb690641e9b0d7ba065802fca7a5cfb7f26ff6c8f1789585ed100bca6b743fc173d1ad9d6f702e996488
+ languageName: node
+ linkType: hard
+
+"@react-stately/utils@npm:^3.10.2":
+ version: 3.10.2
+ resolution: "@react-stately/utils@npm:3.10.2"
+ dependencies:
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/b7cefaeaab45e700916130fbef25480245068d10272e40a18133d5fc6a187f666a2e50bf0c21cb6774060b9b2313a2ff4b188982e759b31995b87a51432c6fe1
+ languageName: node
+ linkType: hard
+
+"@react-types/breadcrumbs@npm:^3.7.7":
+ version: 3.7.7
+ resolution: "@react-types/breadcrumbs@npm:3.7.7"
+ dependencies:
+ "@react-types/link": "npm:^3.5.7"
+ "@react-types/shared": "npm:^3.24.1"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/9deaac78acfd4ccf9d821bdf3bed8701e933b1e106f9ff55ca890cb6e75eaf5e3432d631ac61f02829078305c00bc54123c82d0405511b83b171ca1f64d8e48c
+ languageName: node
+ linkType: hard
+
+"@react-types/button@npm:^3.9.6":
+ version: 3.9.6
+ resolution: "@react-types/button@npm:3.9.6"
+ dependencies:
+ "@react-types/shared": "npm:^3.24.1"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/b041a3922d8fa0a41ae4ca4f1e229b8ded70397057b1d6c6cd62e619978530c04cb283578a0c21afb83246169bfa0a71fb065071d12b58fa5d8c5e36c39abf1c
+ languageName: node
+ linkType: hard
+
+"@react-types/calendar@npm:^3.4.8":
+ version: 3.4.8
+ resolution: "@react-types/calendar@npm:3.4.8"
+ dependencies:
+ "@internationalized/date": "npm:^3.5.5"
+ "@react-types/shared": "npm:^3.24.1"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/ccecf3dece7da830c2a260bd4ee11541c241bf95ba990d051c187b727a5308d03271e5d401c2715d436c3548cf69d63894a872d0d0cad27230a2f17628c2fdc1
+ languageName: node
+ linkType: hard
+
+"@react-types/checkbox@npm:^3.8.3":
+ version: 3.8.3
+ resolution: "@react-types/checkbox@npm:3.8.3"
+ dependencies:
+ "@react-types/shared": "npm:^3.24.1"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/cc968b449857022a3b6a51ca7882ba6a7bc17a4878457c94eec93fcaf482cb02611b471c4fdb2c5060422bc6a2e6f4a10db011e48eb64bcece8d17934707cde6
+ languageName: node
+ linkType: hard
+
+"@react-types/combobox@npm:^3.12.1":
+ version: 3.12.1
+ resolution: "@react-types/combobox@npm:3.12.1"
+ dependencies:
+ "@react-types/shared": "npm:^3.24.1"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/714dde84ce0effba879744bb4ae914a13215621d8b46692b09fbe71238143067163f9d07bcf2ea252aeb893118db57ceb32994746523852dd8d216a28ce3384b
+ languageName: node
+ linkType: hard
+
+"@react-types/datepicker@npm:^3.8.1":
+ version: 3.8.1
+ resolution: "@react-types/datepicker@npm:3.8.1"
+ dependencies:
+ "@internationalized/date": "npm:^3.5.5"
+ "@react-types/calendar": "npm:^3.4.8"
+ "@react-types/overlays": "npm:^3.8.9"
+ "@react-types/shared": "npm:^3.24.1"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/4331a95b637a527217bd2fb2fdcc1ca2903653f17d53c30a2b25cb3ae2d8f382308f64cc0a7018d43d4dce3331e4c46f6ef0d0a7a36466b4839420dbad5bfafa
+ languageName: node
+ linkType: hard
+
+"@react-types/dialog@npm:^3.5.12":
+ version: 3.5.12
+ resolution: "@react-types/dialog@npm:3.5.12"
+ dependencies:
+ "@react-types/overlays": "npm:^3.8.9"
+ "@react-types/shared": "npm:^3.24.1"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/75991c5be8a28323936baa2461db4cb4dc877a9f210a9d4f11f667d7b0e1eca2f90090fbaf335bb4be71c905216286177721fd7e9ba3ae084b1a272b2e8da6cb
+ languageName: node
+ linkType: hard
+
+"@react-types/grid@npm:^3.2.8":
+ version: 3.2.8
+ resolution: "@react-types/grid@npm:3.2.8"
+ dependencies:
+ "@react-types/shared": "npm:^3.24.1"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/1c2c456f89b2984fc330f9ddacd4d45c8aaf1afbaec8444e753a84dceea4381325c07d153b28942959b369ad7667575ae9bae08bd7c11a1ee22e908dd658498c
+ languageName: node
+ linkType: hard
+
+"@react-types/link@npm:^3.5.7":
+ version: 3.5.7
+ resolution: "@react-types/link@npm:3.5.7"
+ dependencies:
+ "@react-types/shared": "npm:^3.24.1"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/cc8c526ff1fcacab28647f7355a96ba21b858444d53ff5eb236636fc88da9e3fb91e784aa5cf2d112cdbf7be8fdea5067a975be6c1c113cd7e5dc3bf4fc8499c
+ languageName: node
+ linkType: hard
+
+"@react-types/listbox@npm:^3.5.1":
+ version: 3.5.1
+ resolution: "@react-types/listbox@npm:3.5.1"
+ dependencies:
+ "@react-types/shared": "npm:^3.24.1"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/fa1d0ec7e70a4b9a2a2e379899016dd81d9172f9065f6626436ab956f166f73e0062c2c73f8122b993096d8936f8433e85d6ecebeae67b54980e571ec30d688e
+ languageName: node
+ linkType: hard
+
+"@react-types/menu@npm:^3.9.11":
+ version: 3.9.11
+ resolution: "@react-types/menu@npm:3.9.11"
+ dependencies:
+ "@react-types/overlays": "npm:^3.8.9"
+ "@react-types/shared": "npm:^3.24.1"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/e0bae8eb7c19900512a32d0d4d2909b7537c28be30cb58c9c8ff0de621828bdf14030fbe17cd8addf919844aa3d462182b2c81a0b3eba864f7144c9edbec3add
+ languageName: node
+ linkType: hard
+
+"@react-types/meter@npm:^3.4.3":
+ version: 3.4.3
+ resolution: "@react-types/meter@npm:3.4.3"
+ dependencies:
+ "@react-types/progress": "npm:^3.5.6"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/e06d845e33b6cd0d3dee783ea68927187409896db963be1b7356e6ab63f909fbb3deaed6f95ce8f2b8855cd2d4f8138b4c54a5ab7e6fb8898d324a177302e16d
+ languageName: node
+ linkType: hard
+
+"@react-types/numberfield@npm:^3.8.5":
+ version: 3.8.5
+ resolution: "@react-types/numberfield@npm:3.8.5"
+ dependencies:
+ "@react-types/shared": "npm:^3.24.1"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/842c6cbb6c68c48764b1498103b1c40e940285366a8b342c3e259c48b518e9c986d9e358e7f0f6af0aaddbb48d709681c4fd4dcd3bb9b553a5be20d7548ce068
+ languageName: node
+ linkType: hard
+
+"@react-types/overlays@npm:^3.8.9":
+ version: 3.8.9
+ resolution: "@react-types/overlays@npm:3.8.9"
+ dependencies:
+ "@react-types/shared": "npm:^3.24.1"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/8719684bd606e119f3a20db73cecf1e36e7c2d8158b996e9308495e5b78252689c459ce394a798f03ebb0c7303eac67093ce9345eb45e5bb4e1ae55451dcf4b3
+ languageName: node
+ linkType: hard
+
+"@react-types/progress@npm:^3.5.6":
+ version: 3.5.6
+ resolution: "@react-types/progress@npm:3.5.6"
+ dependencies:
+ "@react-types/shared": "npm:^3.24.1"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/dfd6e957148fef5014e3b3ca761f38ef9927dfad78bdbe194eb08fa747718903397d973170f91a4f98c6c703217996e60c76217c0601f71015c43a6332dc6aae
+ languageName: node
+ linkType: hard
+
+"@react-types/radio@npm:^3.8.3":
+ version: 3.8.3
+ resolution: "@react-types/radio@npm:3.8.3"
+ dependencies:
+ "@react-types/shared": "npm:^3.24.1"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/b110d915a11747897781bf635fc1f1b86be892f8bd01ce38e2e8e229d9ab82e46b37980540bd930e71124ccc02081d143c513440994da127f9ed2d34a75912ee
+ languageName: node
+ linkType: hard
+
+"@react-types/searchfield@npm:^3.5.7":
+ version: 3.5.7
+ resolution: "@react-types/searchfield@npm:3.5.7"
+ dependencies:
+ "@react-types/shared": "npm:^3.24.1"
+ "@react-types/textfield": "npm:^3.9.5"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/cd40e9e9227aa7ba5d664d1f7bb69b83370f89726da5d2c1f5f6d07663228e4dc8543c7efb0c1328d757221a372072db9b160cc5d2062869aa32a5efce2b188c
+ languageName: node
+ linkType: hard
+
+"@react-types/select@npm:^3.9.6":
+ version: 3.9.6
+ resolution: "@react-types/select@npm:3.9.6"
+ dependencies:
+ "@react-types/shared": "npm:^3.24.1"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/10495da46af019a1f2a5473740f4dcf84cd03c4aee9aa19dba2a8867f521efc33d4587c02ef762619c903ef8426cd887b89957efe3c91c96acd9e07a60f19af8
+ languageName: node
+ linkType: hard
+
+"@react-types/shared@npm:^3.24.1":
+ version: 3.24.1
+ resolution: "@react-types/shared@npm:3.24.1"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/34ef83cf5d945963208beb724d54468e5371fd7361024f6f42a29cdc6d4a9516aa4d82804cdecbcf01c16d82c96aacb511418d7c839e1ea4579b20411e565ed4
+ languageName: node
+ linkType: hard
+
+"@react-types/slider@npm:^3.7.5":
+ version: 3.7.5
+ resolution: "@react-types/slider@npm:3.7.5"
+ dependencies:
+ "@react-types/shared": "npm:^3.24.1"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/7566c726c2b4a0639130c4bb0730dc66bb17cacdfba39af95fbe64ef30544805ac2eb00af69d2689fc86529a0b7beea544e4c2d7f6fc91f1e3633921d0e9feff
+ languageName: node
+ linkType: hard
+
+"@react-types/switch@npm:^3.5.5":
+ version: 3.5.5
+ resolution: "@react-types/switch@npm:3.5.5"
+ dependencies:
+ "@react-types/shared": "npm:^3.24.1"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/b7d865c49d213af0048fd36d29991779021c3a6bc9a8e57eabe10f05be42b122c49fc3d2ba287bf3fd33b65fc00442905c9f3784d2524a333c931c782c55e2eb
+ languageName: node
+ linkType: hard
+
+"@react-types/table@npm:^3.10.1":
+ version: 3.10.1
+ resolution: "@react-types/table@npm:3.10.1"
+ dependencies:
+ "@react-types/grid": "npm:^3.2.8"
+ "@react-types/shared": "npm:^3.24.1"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/1f3d2390f421ed9053816ba40b41744c5168d8f3b926c29d565e5588420a133315f1d2301db16c33ffff5d0689fad014b388385fd5876a7c365873e21b02189d
+ languageName: node
+ linkType: hard
+
+"@react-types/tabs@npm:^3.3.9":
+ version: 3.3.9
+ resolution: "@react-types/tabs@npm:3.3.9"
+ dependencies:
+ "@react-types/shared": "npm:^3.24.1"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/53416d3060c911e3c1416e5fe749cffff5eca30ed1a101bb012b9c89726cea818fd1f16650230410bec0dd7d2626dc1581c53106d7a0660101174a242f6ae458
+ languageName: node
+ linkType: hard
+
+"@react-types/textfield@npm:^3.9.5":
+ version: 3.9.5
+ resolution: "@react-types/textfield@npm:3.9.5"
+ dependencies:
+ "@react-types/shared": "npm:^3.24.1"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/d8732bbd53a44d7a6af824a063ec9ad8f448b0ac50dc7f5653ace06112c64b99a7c207415db213087b26c78e80b1d9eaf022c86b3b6030bf50f9bc08e0785aab
+ languageName: node
+ linkType: hard
+
+"@react-types/tooltip@npm:^3.4.11":
+ version: 3.4.11
+ resolution: "@react-types/tooltip@npm:3.4.11"
+ dependencies:
+ "@react-types/overlays": "npm:^3.8.9"
+ "@react-types/shared": "npm:^3.24.1"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/76bfaeb25c9c06668e85e451bd527e0e15249f025a12fe4c710e8cb4d6ae2643f9fad065729646205c87b7be571c5d8baadb43ab7bc44946dc7e73402aae7f98
+ languageName: node
+ linkType: hard
+
+"@rushstack/eslint-patch@npm:^1.1.3":
+ version: 1.10.3
+ resolution: "@rushstack/eslint-patch@npm:1.10.3"
+ checksum: 10c0/ec75d23fba30fc5f3303109181ce81a686f7b5660b6e06d454cd7b74a635bd68d5b28300ddd6e2a53b6cb10a876246e952e12fa058af32b2fa29b73744f00521
+ languageName: node
+ linkType: hard
+
+"@stablelib/aead@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "@stablelib/aead@npm:1.0.1"
+ checksum: 10c0/8ec16795a6f94264f93514661e024c5b0434d75000ea133923c57f0db30eab8ddc74fa35f5ff1ae4886803a8b92e169b828512c9e6bc02c818688d0f5b9f5aef
+ languageName: node
+ linkType: hard
+
+"@stablelib/binary@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "@stablelib/binary@npm:1.0.1"
+ dependencies:
+ "@stablelib/int": "npm:^1.0.1"
+ checksum: 10c0/154cb558d8b7c20ca5dc2e38abca2a3716ce36429bf1b9c298939cea0929766ed954feb8a9c59245ac64c923d5d3466bb7d99f281debd3a9d561e1279b11cd35
+ languageName: node
+ linkType: hard
+
+"@stablelib/bytes@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "@stablelib/bytes@npm:1.0.1"
+ checksum: 10c0/ee99bb15dac2f4ae1aa4e7a571e76483617a441feff422442f293993bc8b2c7ef021285c98f91a043bc05fb70502457799e28ffd43a8564a17913ee5ce889237
+ languageName: node
+ linkType: hard
+
+"@stablelib/chacha20poly1305@npm:1.0.1":
+ version: 1.0.1
+ resolution: "@stablelib/chacha20poly1305@npm:1.0.1"
+ dependencies:
+ "@stablelib/aead": "npm:^1.0.1"
+ "@stablelib/binary": "npm:^1.0.1"
+ "@stablelib/chacha": "npm:^1.0.1"
+ "@stablelib/constant-time": "npm:^1.0.1"
+ "@stablelib/poly1305": "npm:^1.0.1"
+ "@stablelib/wipe": "npm:^1.0.1"
+ checksum: 10c0/fe202aa8aface111c72bc9ec099f9c36a7b1470eda9834e436bb228618a704929f095b937f04e867fe4d5c40216ff089cbfeb2eeb092ab33af39ff333eb2c1e6
+ languageName: node
+ linkType: hard
+
+"@stablelib/chacha@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "@stablelib/chacha@npm:1.0.1"
+ dependencies:
+ "@stablelib/binary": "npm:^1.0.1"
+ "@stablelib/wipe": "npm:^1.0.1"
+ checksum: 10c0/4d70b484ae89416d21504024f977f5517bf16b344b10fb98382c9e3e52fe8ca77ac65f5d6a358d8b152f2c9ffed101a1eb15ed1707cdf906e1b6624db78d2d16
+ languageName: node
+ linkType: hard
+
+"@stablelib/constant-time@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "@stablelib/constant-time@npm:1.0.1"
+ checksum: 10c0/694a282441215735a1fdfa3d06db5a28ba92423890967a154514ef28e0d0298ce7b6a2bc65ebc4273573d6669a6b601d330614747aa2e69078c1d523d7069e12
+ languageName: node
+ linkType: hard
+
+"@stablelib/ed25519@npm:^1.0.2":
+ version: 1.0.3
+ resolution: "@stablelib/ed25519@npm:1.0.3"
+ dependencies:
+ "@stablelib/random": "npm:^1.0.2"
+ "@stablelib/sha512": "npm:^1.0.1"
+ "@stablelib/wipe": "npm:^1.0.1"
+ checksum: 10c0/b4a05e3c24dabd8a9e0b5bd72dea761bfb4b5c66404308e9f0529ef898e75d6f588234920762d5372cb920d9d47811250160109f02d04b6eed53835fb6916eb9
+ languageName: node
+ linkType: hard
+
+"@stablelib/hash@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "@stablelib/hash@npm:1.0.1"
+ checksum: 10c0/58b5572a4067820b77a1606ed2d4a6dc4068c5475f68ba0918860a5f45adf60b33024a0cea9532dcd8b7345c53b3c9636a23723f5f8ae83e0c3648f91fb5b5cc
+ languageName: node
+ linkType: hard
+
+"@stablelib/hkdf@npm:1.0.1":
+ version: 1.0.1
+ resolution: "@stablelib/hkdf@npm:1.0.1"
+ dependencies:
+ "@stablelib/hash": "npm:^1.0.1"
+ "@stablelib/hmac": "npm:^1.0.1"
+ "@stablelib/wipe": "npm:^1.0.1"
+ checksum: 10c0/722d30e36afa8029fda2a9e8c65ad753deff92a234e708820f9fd39309d2494e1c035a4185f29ae8d7fbf8a74862b27128c66a1fb4bd7a792bd300190080dbe9
+ languageName: node
+ linkType: hard
+
+"@stablelib/hmac@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "@stablelib/hmac@npm:1.0.1"
+ dependencies:
+ "@stablelib/constant-time": "npm:^1.0.1"
+ "@stablelib/hash": "npm:^1.0.1"
+ "@stablelib/wipe": "npm:^1.0.1"
+ checksum: 10c0/a111d5e687966b62c81f7dbd390f13582b027edee9bd39df6474a6472e5ad89d705e735af32bae2c9280a205806649f54b5ff8c4e8c8a7b484083a35b257e9e6
+ languageName: node
+ linkType: hard
+
+"@stablelib/int@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "@stablelib/int@npm:1.0.1"
+ checksum: 10c0/e1a6a7792fc2146d65de56e4ef42e8bc385dd5157eff27019b84476f564a1a6c43413235ed0e9f7c9bb8907dbdab24679467aeb10f44c92e6b944bcd864a7ee0
+ languageName: node
+ linkType: hard
+
+"@stablelib/keyagreement@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "@stablelib/keyagreement@npm:1.0.1"
+ dependencies:
+ "@stablelib/bytes": "npm:^1.0.1"
+ checksum: 10c0/18c9e09772a058edee265c65992ec37abe4ab5118171958972e28f3bbac7f2a0afa6aaf152ec1d785452477bdab5366b3f5b750e8982ae9ad090f5fa2e5269ba
+ languageName: node
+ linkType: hard
+
+"@stablelib/poly1305@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "@stablelib/poly1305@npm:1.0.1"
+ dependencies:
+ "@stablelib/constant-time": "npm:^1.0.1"
+ "@stablelib/wipe": "npm:^1.0.1"
+ checksum: 10c0/080185ffa92f5111e6ecfeab7919368b9984c26d048b9c09a111fbc657ea62bb5dfe6b56245e1804ce692a445cc93ab6625936515fa0e7518b8f2d86feda9630
+ languageName: node
+ linkType: hard
+
+"@stablelib/random@npm:^1.0.1, @stablelib/random@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "@stablelib/random@npm:1.0.2"
+ dependencies:
+ "@stablelib/binary": "npm:^1.0.1"
+ "@stablelib/wipe": "npm:^1.0.1"
+ checksum: 10c0/ebb217cfb76db97d98ec07bd7ce03a650fa194b91f0cb12382738161adff1830f405de0e9bad22bbc352422339ff85f531873b6a874c26ea9b59cfcc7ea787e0
+ languageName: node
+ linkType: hard
+
+"@stablelib/sha256@npm:1.0.1":
+ version: 1.0.1
+ resolution: "@stablelib/sha256@npm:1.0.1"
+ dependencies:
+ "@stablelib/binary": "npm:^1.0.1"
+ "@stablelib/hash": "npm:^1.0.1"
+ "@stablelib/wipe": "npm:^1.0.1"
+ checksum: 10c0/e29ee9bc76eece4345e9155ce4bdeeb1df8652296be72bd2760523ad565e3b99dca85b81db3b75ee20b34837077eb8542ca88f153f162154c62ba1f75aecc24a
+ languageName: node
+ linkType: hard
+
+"@stablelib/sha512@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "@stablelib/sha512@npm:1.0.1"
+ dependencies:
+ "@stablelib/binary": "npm:^1.0.1"
+ "@stablelib/hash": "npm:^1.0.1"
+ "@stablelib/wipe": "npm:^1.0.1"
+ checksum: 10c0/84549070a383f4daf23d9065230eb81bc8f590c68bf5f7968f1b78901236b3bb387c14f63773dc6c3dc78e823b1c15470d2a04d398a2506391f466c16ba29b58
+ languageName: node
+ linkType: hard
+
+"@stablelib/wipe@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "@stablelib/wipe@npm:1.0.1"
+ checksum: 10c0/c5a54f769c286a5b3ecff979471dfccd4311f2e84a959908e8c0e3aa4eed1364bd9707f7b69d1384b757e62cc295c221fa27286c7f782410eb8a690f30cfd796
+ languageName: node
+ linkType: hard
+
+"@stablelib/x25519@npm:^1.0.3":
+ version: 1.0.3
+ resolution: "@stablelib/x25519@npm:1.0.3"
+ dependencies:
+ "@stablelib/keyagreement": "npm:^1.0.1"
+ "@stablelib/random": "npm:^1.0.2"
+ "@stablelib/wipe": "npm:^1.0.1"
+ checksum: 10c0/d8afe8a120923a434359d7d1c6759780426fed117a84a6c0f84d1a4878834cb4c2d7da78a1fa7cf227ce3924fdc300cd6ed6e46cf2508bf17b1545c319ab8418
+ languageName: node
+ linkType: hard
+
+"@swc/helpers@npm:0.5.2":
+ version: 0.5.2
+ resolution: "@swc/helpers@npm:0.5.2"
+ dependencies:
+ tslib: "npm:^2.4.0"
+ checksum: 10c0/b6fa49bcf6c00571d0eb7837b163f8609960d4d77538160585e27ed167361e9776bd6e5eb9646ffac2fb4d43c58df9ca50dab9d96ab097e6591bc82a75fd1164
+ languageName: node
+ linkType: hard
+
+"@swc/helpers@npm:^0.5.0":
+ version: 0.5.8
+ resolution: "@swc/helpers@npm:0.5.8"
+ dependencies:
+ tslib: "npm:^2.4.0"
+ checksum: 10c0/53a52b3654edb1b22ab317feb4ab7fa805eb368082530d2835647e5d0cc497f5c3aa8e16d568df6eee301982aac532674345acbaaa45354ffb58043768d4db36
+ languageName: node
+ linkType: hard
+
+"@tanstack/match-sorter-utils@npm:^8.7.0":
+ version: 8.15.1
+ resolution: "@tanstack/match-sorter-utils@npm:8.15.1"
+ dependencies:
+ remove-accents: "npm:0.5.0"
+ checksum: 10c0/a947c280093ed0214c3b1c6d9219b1a98cd000815891cb313f2a3e8cc01505a6d3bf358ba8273556804e0580a51e110a43ececabf0eec7386450662d827b0fa9
+ languageName: node
+ linkType: hard
+
+"@tanstack/query-core@npm:4.32.0":
+ version: 4.32.0
+ resolution: "@tanstack/query-core@npm:4.32.0"
+ checksum: 10c0/e897d1d294d79f6d3d522db2d64977e71d99f5f74e22314bd0bbbf6c31df3deac5d19516fc2513be4ad1c545fd031d4355ee0a47dec7211e70e80c9cd5feb25e
+ languageName: node
+ linkType: hard
+
+"@tanstack/react-query-devtools@npm:4.32.0":
+ version: 4.32.0
+ resolution: "@tanstack/react-query-devtools@npm:4.32.0"
+ dependencies:
+ "@tanstack/match-sorter-utils": "npm:^8.7.0"
+ superjson: "npm:^1.10.0"
+ use-sync-external-store: "npm:^1.2.0"
+ peerDependencies:
+ "@tanstack/react-query": 4.32.0
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
+ react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
+ checksum: 10c0/c583365058f77b8e1199d938e4da337181b08dedd6316d25e4e65924e414aa4bf8b63072ab7fdc546bef01c4a9529368c6e30483f019999a6f2e87501bfeb8a4
+ languageName: node
+ linkType: hard
+
+"@tanstack/react-query@npm:4.32.0":
+ version: 4.32.0
+ resolution: "@tanstack/react-query@npm:4.32.0"
+ dependencies:
+ "@tanstack/query-core": "npm:4.32.0"
+ use-sync-external-store: "npm:^1.2.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
+ react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
+ react-native: "*"
+ peerDependenciesMeta:
+ react-dom:
+ optional: true
+ react-native:
+ optional: true
+ checksum: 10c0/761f0c48fba41d0296ac76d42d92128d6ca55fca261d819252753fb38988a6c1dc9442344bdccba946a8db243ebcd3f259c61ac1957933493db0605e1a0a0e77
+ languageName: node
+ linkType: hard
+
+"@tanstack/react-virtual@npm:^3.8.3":
+ version: 3.9.0
+ resolution: "@tanstack/react-virtual@npm:3.9.0"
+ dependencies:
+ "@tanstack/virtual-core": "npm:3.9.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
+ react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
+ checksum: 10c0/25b6e24d6ef7c5322d9ed8f422ac1ec6d0c18c75a0ef8d113911dd298e860f12138d6946532d1d6642a6f52b51b92de02cdb10a2c728c95e2c9bf57c650e255c
+ languageName: node
+ linkType: hard
+
+"@tanstack/virtual-core@npm:3.9.0":
+ version: 3.9.0
+ resolution: "@tanstack/virtual-core@npm:3.9.0"
+ checksum: 10c0/2c8ce40204e377808a0f5dc53b95a04710eac7832b97f61a743ee234aba894c1efdf56e55be44d57e559d71b8d47f4e18f9535091fbe0fea68cc1dc12c3b577e
+ languageName: node
+ linkType: hard
+
+"@terra-money/feather.js@npm:^1.0.8":
+ version: 1.2.1
+ resolution: "@terra-money/feather.js@npm:1.2.1"
+ dependencies:
+ "@ethersproject/bytes": "npm:^5.7.0"
+ "@terra-money/legacy.proto": "npm:@terra-money/terra.proto@^0.1.7"
+ "@terra-money/terra.proto": "npm:^4.0.3"
+ assert: "npm:^2.0.0"
+ axios: "npm:^0.27.2"
+ bech32: "npm:^2.0.0"
+ bip32: "npm:^2.0.6"
+ bip39: "npm:^3.0.3"
+ bufferutil: "npm:^4.0.3"
+ crypto-browserify: "npm:^3.12.0"
+ decimal.js: "npm:^10.2.1"
+ ethers: "npm:^5.7.2"
+ jscrypto: "npm:^1.0.1"
+ keccak256: "npm:^1.0.6"
+ long: "npm:^5.2.3"
+ readable-stream: "npm:^3.6.0"
+ secp256k1: "npm:^4.0.2"
+ tmp: "npm:^0.2.1"
+ utf-8-validate: "npm:^5.0.5"
+ ws: "npm:^7.5.9"
+ checksum: 10c0/bf1c952bf6e6531f663727c5793bfc4a9fb1a6025eed0b8f68f994bedced184a11d961a4ae42620690108171428933fc48e68ea078b53c2375b938b791eb4ff0
+ languageName: node
+ linkType: hard
+
+"@terra-money/legacy.proto@npm:@terra-money/terra.proto@^0.1.7":
+ version: 0.1.7
+ resolution: "@terra-money/terra.proto@npm:0.1.7"
+ dependencies:
+ google-protobuf: "npm:^3.17.3"
+ long: "npm:^4.0.0"
+ protobufjs: "npm:~6.11.2"
+ checksum: 10c0/3ae54002eac9b8fa7dcc90e167ca50134fd5d36549a336e1aa02c9deb6133441d755e6681a6a272e51c70e27610e1566ee5ccf1e2174f239f81b631cb7a8eead
+ languageName: node
+ linkType: hard
+
+"@terra-money/station-connector@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "@terra-money/station-connector@npm:1.1.0"
+ dependencies:
+ bech32: "npm:^2.0.0"
+ peerDependencies:
+ "@cosmjs/amino": ^0.31.0
+ "@terra-money/feather.js": ^3.0.0-beta.1
+ axios: ^0.27.2
+ checksum: 10c0/9749876044357bc0f28ceeb15a1535b8201e6fa3eb09e95c0374ecba04b87d85388a4d5c491b2a89cc3b02ad24c8fa055e69240ae937c16f5bee196416263898
+ languageName: node
+ linkType: hard
+
+"@terra-money/terra.proto@npm:3.0.5":
+ version: 3.0.5
+ resolution: "@terra-money/terra.proto@npm:3.0.5"
+ dependencies:
+ "@improbable-eng/grpc-web": "npm:^0.14.1"
+ google-protobuf: "npm:^3.17.3"
+ long: "npm:^4.0.0"
+ protobufjs: "npm:~6.11.2"
+ checksum: 10c0/f057cbf49dd8dc9effce875f2e60b7c0f17b375b160f08887a3007998584be834141f221dad642c68aac5324583f6e95d06fecc1fc8ee18374960bdd58808538
+ languageName: node
+ linkType: hard
+
+"@terra-money/terra.proto@npm:^4.0.3":
+ version: 4.0.10
+ resolution: "@terra-money/terra.proto@npm:4.0.10"
+ dependencies:
+ "@improbable-eng/grpc-web": "npm:^0.14.1"
+ browser-headers: "npm:^0.4.1"
+ google-protobuf: "npm:^3.17.3"
+ long: "npm:^4.0.0"
+ protobufjs: "npm:~6.11.2"
+ checksum: 10c0/80e701fe8ff5420c896acda16682cc8ad3aa4a317bbfcae89c5576a2ad800f349b0cb1d9bba82c1770829e083bbfbbf82ba2d6124ea06c8b64a17d386126c71e
+ languageName: node
+ linkType: hard
+
+"@terra-money/wallet-types@npm:^3.11.2":
+ version: 3.11.2
+ resolution: "@terra-money/wallet-types@npm:3.11.2"
+ peerDependencies:
+ "@terra-money/terra.js": ^3.1.6
+ checksum: 10c0/3fe1d475bb02655b4d4817dfbddf52f6ecbb87c8731a0c2077f4a5c36c88c730e9d167e802294b04fd6f25f841f68ab12f159f69164375c00dac2a9b6e6f32f5
+ languageName: node
+ linkType: hard
+
+"@types/debug@npm:^4.0.0":
+ version: 4.1.12
+ resolution: "@types/debug@npm:4.1.12"
+ dependencies:
+ "@types/ms": "npm:*"
+ checksum: 10c0/5dcd465edbb5a7f226e9a5efd1f399c6172407ef5840686b73e3608ce135eeca54ae8037dcd9f16bdb2768ac74925b820a8b9ecc588a58ca09eca6acabe33e2f
+ languageName: node
+ linkType: hard
+
+"@types/estree-jsx@npm:^1.0.0":
+ version: 1.0.5
+ resolution: "@types/estree-jsx@npm:1.0.5"
+ dependencies:
+ "@types/estree": "npm:*"
+ checksum: 10c0/07b354331516428b27a3ab99ee397547d47eb223c34053b48f84872fafb841770834b90cc1a0068398e7c7ccb15ec51ab00ec64b31dc5e3dbefd624638a35c6d
+ languageName: node
+ linkType: hard
+
+"@types/estree@npm:*, @types/estree@npm:^1.0.0":
+ version: 1.0.5
+ resolution: "@types/estree@npm:1.0.5"
+ checksum: 10c0/b3b0e334288ddb407c7b3357ca67dbee75ee22db242ca7c56fe27db4e1a31989cb8af48a84dd401deb787fe10cc6b2ab1ee82dc4783be87ededbe3d53c79c70d
+ languageName: node
+ linkType: hard
+
+"@types/hast@npm:^3.0.0":
+ version: 3.0.4
+ resolution: "@types/hast@npm:3.0.4"
+ dependencies:
+ "@types/unist": "npm:*"
+ checksum: 10c0/3249781a511b38f1d330fd1e3344eed3c4e7ea8eff82e835d35da78e637480d36fad37a78be5a7aed8465d237ad0446abc1150859d0fde395354ea634decf9f7
+ languageName: node
+ linkType: hard
+
+"@types/json5@npm:^0.0.29":
+ version: 0.0.29
+ resolution: "@types/json5@npm:0.0.29"
+ checksum: 10c0/6bf5337bc447b706bb5b4431d37686aa2ea6d07cfd6f79cc31de80170d6ff9b1c7384a9c0ccbc45b3f512bae9e9f75c2e12109806a15331dc94e8a8db6dbb4ac
+ languageName: node
+ linkType: hard
+
+"@types/long@npm:^4.0.1":
+ version: 4.0.2
+ resolution: "@types/long@npm:4.0.2"
+ checksum: 10c0/42ec66ade1f72ff9d143c5a519a65efc7c1c77be7b1ac5455c530ae9acd87baba065542f8847522af2e3ace2cc999f3ad464ef86e6b7352eece34daf88f8c924
+ languageName: node
+ linkType: hard
+
+"@types/mdast@npm:^4.0.0":
+ version: 4.0.4
+ resolution: "@types/mdast@npm:4.0.4"
+ dependencies:
+ "@types/unist": "npm:*"
+ checksum: 10c0/84f403dbe582ee508fd9c7643ac781ad8597fcbfc9ccb8d4715a2c92e4545e5772cbd0dbdf18eda65789386d81b009967fdef01b24faf6640f817287f54d9c82
+ languageName: node
+ linkType: hard
+
+"@types/ms@npm:*":
+ version: 0.7.34
+ resolution: "@types/ms@npm:0.7.34"
+ checksum: 10c0/ac80bd90012116ceb2d188fde62d96830ca847823e8ca71255616bc73991aa7d9f057b8bfab79e8ee44ffefb031ddd1bcce63ea82f9e66f7c31ec02d2d823ccc
+ languageName: node
+ linkType: hard
+
+"@types/node-gzip@npm:^1":
+ version: 1.1.3
+ resolution: "@types/node-gzip@npm:1.1.3"
+ dependencies:
+ "@types/node": "npm:*"
+ checksum: 10c0/dfb240b02a5d8e335942f847b61cd02dda38425b6083b6d7ae1c6fa70624c19faee87e82b470f5880e73d4937bf1aa8e61a06ca52700bce2a1f50e552f137011
+ languageName: node
+ linkType: hard
+
+"@types/node@npm:*":
+ version: 22.0.0
+ resolution: "@types/node@npm:22.0.0"
+ dependencies:
+ undici-types: "npm:~6.11.1"
+ checksum: 10c0/af26a8ec7266c857b0ced75dc3a93c6b65280d1fa40d1b4488c814d30831c5c752489c99ecb5698daec1376145b1a9ddd08350882dc2e07769917a5f22a460bc
+ languageName: node
+ linkType: hard
+
+"@types/node@npm:10.12.18":
+ version: 10.12.18
+ resolution: "@types/node@npm:10.12.18"
+ checksum: 10c0/7c2f966f59bff476ea9bf6bbe2d4b03d583899cb4fd7eb4d4daf49bab3475a9c68601ed8e40f57f89a860f46ab4e6c0216ad428506abac17182e888675b265f8
+ languageName: node
+ linkType: hard
+
+"@types/node@npm:18.11.9":
+ version: 18.11.9
+ resolution: "@types/node@npm:18.11.9"
+ checksum: 10c0/aeaa925406f841c41679b32def9391a9892171e977105e025050e9f66e2830b4c50d0d974a1af0077ead3337a1f3bdf49ee7e7f402ebf2e034a3f97d9d240dba
+ languageName: node
+ linkType: hard
+
+"@types/node@npm:>=13.7.0":
+ version: 20.12.4
+ resolution: "@types/node@npm:20.12.4"
+ dependencies:
+ undici-types: "npm:~5.26.4"
+ checksum: 10c0/9b142fcd839a48c348d6b9acfc753dfa4b3fb1f3e23ed67e8952bee9b2dfdaffdddfbcf0e4701557b88631591a5f9968433910027532ef847759f8682e27ffe7
+ languageName: node
+ linkType: hard
+
+"@types/prop-types@npm:*":
+ version: 15.7.12
+ resolution: "@types/prop-types@npm:15.7.12"
+ checksum: 10c0/1babcc7db6a1177779f8fde0ccc78d64d459906e6ef69a4ed4dd6339c920c2e05b074ee5a92120fe4e9d9f1a01c952f843ebd550bee2332fc2ef81d1706878f8
+ languageName: node
+ linkType: hard
+
+"@types/react-dom@npm:18.0.9":
+ version: 18.0.9
+ resolution: "@types/react-dom@npm:18.0.9"
+ dependencies:
+ "@types/react": "npm:*"
+ checksum: 10c0/1c85b0889f15631132816fba93bf3aaa7b11cd0ce6f4a825d3c863a46b1b8d0b7fcdf03d7fcdf761f4a2e38312e5f26fc9b9ba34b486ee9f160477b9103625af
+ languageName: node
+ linkType: hard
+
+"@types/react@npm:18.0.25":
+ version: 18.0.25
+ resolution: "@types/react@npm:18.0.25"
+ dependencies:
+ "@types/prop-types": "npm:*"
+ "@types/scheduler": "npm:*"
+ csstype: "npm:^3.0.2"
+ checksum: 10c0/5d30dbf46124a63ee832864bf38ce42de2e8924dc53470f14742343503a2cf1851b6b4f8b892ef661e1a670561f4c9052d782e419d314912e54626f3296e49b6
+ languageName: node
+ linkType: hard
+
+"@types/scheduler@npm:*":
+ version: 0.23.0
+ resolution: "@types/scheduler@npm:0.23.0"
+ checksum: 10c0/5cf7f2ba3732b74877559eb20b19f95fcd0a20c17dcb20e75a7ca7c7369cd455aeb2d406b3ff5a38168a9750da3bad78dd20d96d11118468b78f4959b8e56090
+ languageName: node
+ linkType: hard
+
+"@types/unist@npm:*, @types/unist@npm:^3.0.0":
+ version: 3.0.2
+ resolution: "@types/unist@npm:3.0.2"
+ checksum: 10c0/39f220ce184a773c55c18a127062bfc4d0d30c987250cd59bab544d97be6cfec93717a49ef96e81f024b575718f798d4d329eb81c452fc57d6d051af8b043ebf
+ languageName: node
+ linkType: hard
+
+"@types/unist@npm:^2.0.0":
+ version: 2.0.10
+ resolution: "@types/unist@npm:2.0.10"
+ checksum: 10c0/5f247dc2229944355209ad5c8e83cfe29419fa7f0a6d557421b1985a1500444719cc9efcc42c652b55aab63c931813c88033e0202c1ac684bcd4829d66e44731
+ languageName: node
+ linkType: hard
+
+"@typescript-eslint/parser@npm:^5.42.0":
+ version: 5.62.0
+ resolution: "@typescript-eslint/parser@npm:5.62.0"
+ dependencies:
+ "@typescript-eslint/scope-manager": "npm:5.62.0"
+ "@typescript-eslint/types": "npm:5.62.0"
+ "@typescript-eslint/typescript-estree": "npm:5.62.0"
+ debug: "npm:^4.3.4"
+ peerDependencies:
+ eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ checksum: 10c0/315194b3bf39beb9bd16c190956c46beec64b8371e18d6bb72002108b250983eb1e186a01d34b77eb4045f4941acbb243b16155fbb46881105f65e37dc9e24d4
+ languageName: node
+ linkType: hard
+
+"@typescript-eslint/scope-manager@npm:5.62.0":
+ version: 5.62.0
+ resolution: "@typescript-eslint/scope-manager@npm:5.62.0"
+ dependencies:
+ "@typescript-eslint/types": "npm:5.62.0"
+ "@typescript-eslint/visitor-keys": "npm:5.62.0"
+ checksum: 10c0/861253235576c1c5c1772d23cdce1418c2da2618a479a7de4f6114a12a7ca853011a1e530525d0931c355a8fd237b9cd828fac560f85f9623e24054fd024726f
+ languageName: node
+ linkType: hard
+
+"@typescript-eslint/types@npm:5.62.0":
+ version: 5.62.0
+ resolution: "@typescript-eslint/types@npm:5.62.0"
+ checksum: 10c0/7febd3a7f0701c0b927e094f02e82d8ee2cada2b186fcb938bc2b94ff6fbad88237afc304cbaf33e82797078bbbb1baf91475f6400912f8b64c89be79bfa4ddf
+ languageName: node
+ linkType: hard
+
+"@typescript-eslint/typescript-estree@npm:5.62.0":
+ version: 5.62.0
+ resolution: "@typescript-eslint/typescript-estree@npm:5.62.0"
+ dependencies:
+ "@typescript-eslint/types": "npm:5.62.0"
+ "@typescript-eslint/visitor-keys": "npm:5.62.0"
+ debug: "npm:^4.3.4"
+ globby: "npm:^11.1.0"
+ is-glob: "npm:^4.0.3"
+ semver: "npm:^7.3.7"
+ tsutils: "npm:^3.21.0"
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ checksum: 10c0/d7984a3e9d56897b2481940ec803cb8e7ead03df8d9cfd9797350be82ff765dfcf3cfec04e7355e1779e948da8f02bc5e11719d07a596eb1cb995c48a95e38cf
+ languageName: node
+ linkType: hard
+
+"@typescript-eslint/visitor-keys@npm:5.62.0":
+ version: 5.62.0
+ resolution: "@typescript-eslint/visitor-keys@npm:5.62.0"
+ dependencies:
+ "@typescript-eslint/types": "npm:5.62.0"
+ eslint-visitor-keys: "npm:^3.3.0"
+ checksum: 10c0/7c3b8e4148e9b94d9b7162a596a1260d7a3efc4e65199693b8025c71c4652b8042501c0bc9f57654c1e2943c26da98c0f77884a746c6ae81389fcb0b513d995d
+ languageName: node
+ linkType: hard
+
+"@ungap/structured-clone@npm:^1.0.0":
+ version: 1.2.0
+ resolution: "@ungap/structured-clone@npm:1.2.0"
+ checksum: 10c0/8209c937cb39119f44eb63cf90c0b73e7c754209a6411c707be08e50e29ee81356dca1a848a405c8bdeebfe2f5e4f831ad310ae1689eeef65e7445c090c6657d
+ languageName: node
+ linkType: hard
+
+"@vanilla-extract/css@npm:^1.15.3":
+ version: 1.15.3
+ resolution: "@vanilla-extract/css@npm:1.15.3"
+ dependencies:
+ "@emotion/hash": "npm:^0.9.0"
+ "@vanilla-extract/private": "npm:^1.0.5"
+ css-what: "npm:^6.1.0"
+ cssesc: "npm:^3.0.0"
+ csstype: "npm:^3.0.7"
+ dedent: "npm:^1.5.3"
+ deep-object-diff: "npm:^1.1.9"
+ deepmerge: "npm:^4.2.2"
+ media-query-parser: "npm:^2.0.2"
+ modern-ahocorasick: "npm:^1.0.0"
+ picocolors: "npm:^1.0.0"
+ checksum: 10c0/57c53e961bc0a273fa792c65c1b6cc6ce45d8f0d3c8b239df6ece4fbf2c58d09764ed70773bf25582e3cc6789ccce2b920c33d177ef276f63c6604c85dbc5c01
+ languageName: node
+ linkType: hard
+
+"@vanilla-extract/dynamic@npm:^2.1.1":
+ version: 2.1.1
+ resolution: "@vanilla-extract/dynamic@npm:2.1.1"
+ dependencies:
+ "@vanilla-extract/private": "npm:^1.0.5"
+ checksum: 10c0/0c353b6326e73054a5ca1cfbb02e865cd8853e88976d7f53794e91ccf3fdfcab18211ad93750927b05c8d57e3816c1e56b55a8e24ad7f616b5e627339a3d36b6
+ languageName: node
+ linkType: hard
+
+"@vanilla-extract/private@npm:^1.0.5":
+ version: 1.0.5
+ resolution: "@vanilla-extract/private@npm:1.0.5"
+ checksum: 10c0/9a5053763fc1964b68c8384afcba7abcb7d776755763fcc96fbc70f1317618368b8127088871611b7beae480f20bd05cc486a90ed3a48332a2c02293357ba819
+ languageName: node
+ linkType: hard
+
+"@vanilla-extract/recipes@npm:^0.5.3":
+ version: 0.5.3
+ resolution: "@vanilla-extract/recipes@npm:0.5.3"
+ peerDependencies:
+ "@vanilla-extract/css": ^1.0.0
+ checksum: 10c0/1a8a155c53031efeafd67e0e429bb766049a61ca1dda8dfc6144f09882ccf7058557d6a89c2454cd2726452fedd5110a55a4d89a5f1e2846d815eca095494aea
+ languageName: node
+ linkType: hard
+
+"@walletconnect/core@npm:2.12.1":
+ version: 2.12.1
+ resolution: "@walletconnect/core@npm:2.12.1"
+ dependencies:
+ "@walletconnect/heartbeat": "npm:1.2.1"
+ "@walletconnect/jsonrpc-provider": "npm:1.0.13"
+ "@walletconnect/jsonrpc-types": "npm:1.0.3"
+ "@walletconnect/jsonrpc-utils": "npm:1.0.8"
+ "@walletconnect/jsonrpc-ws-connection": "npm:1.0.14"
+ "@walletconnect/keyvaluestorage": "npm:^1.1.1"
+ "@walletconnect/logger": "npm:^2.1.0"
+ "@walletconnect/relay-api": "npm:^1.0.9"
+ "@walletconnect/relay-auth": "npm:^1.0.4"
+ "@walletconnect/safe-json": "npm:^1.0.2"
+ "@walletconnect/time": "npm:^1.0.2"
+ "@walletconnect/types": "npm:2.12.1"
+ "@walletconnect/utils": "npm:2.12.1"
+ events: "npm:^3.3.0"
+ isomorphic-unfetch: "npm:3.1.0"
+ lodash.isequal: "npm:4.5.0"
+ uint8arrays: "npm:^3.1.0"
+ checksum: 10c0/1bc872d5659fc229436e6ee620126c7d2f7e30c711dd2781fcc254a201b3b2ff3fee94a596681ac4797d023db2233904d1a679a920b11a4607a77478251d188d
+ languageName: node
+ linkType: hard
+
+"@walletconnect/environment@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "@walletconnect/environment@npm:1.0.1"
+ dependencies:
+ tslib: "npm:1.14.1"
+ checksum: 10c0/08eacce6452950a17f4209c443bd4db6bf7bddfc860593bdbd49edda9d08821696dee79e5617a954fbe90ff32c1d1f1691ef0c77455ed3e4201b328856a5e2f7
+ languageName: node
+ linkType: hard
+
+"@walletconnect/events@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "@walletconnect/events@npm:1.0.1"
+ dependencies:
+ keyvaluestorage-interface: "npm:^1.0.0"
+ tslib: "npm:1.14.1"
+ checksum: 10c0/919a97e1dacf7096aefe07af810362cfc190533a576dcfa21387295d825a3c3d5f90bedee73235b1b343f5c696f242d7bffc5ea3359d3833541349ca23f50df8
+ languageName: node
+ linkType: hard
+
+"@walletconnect/heartbeat@npm:1.2.1":
+ version: 1.2.1
+ resolution: "@walletconnect/heartbeat@npm:1.2.1"
+ dependencies:
+ "@walletconnect/events": "npm:^1.0.1"
+ "@walletconnect/time": "npm:^1.0.2"
+ tslib: "npm:1.14.1"
+ checksum: 10c0/5ad46f26dcb7b9b3227f004cd74b18741d4cd32c21825a036eb03985c67a0cf859c285bc5635401966a99129e854d72de3458ff592370575ef7e52f5dd12ebbc
+ languageName: node
+ linkType: hard
+
+"@walletconnect/jsonrpc-provider@npm:1.0.13":
+ version: 1.0.13
+ resolution: "@walletconnect/jsonrpc-provider@npm:1.0.13"
+ dependencies:
+ "@walletconnect/jsonrpc-utils": "npm:^1.0.8"
+ "@walletconnect/safe-json": "npm:^1.0.2"
+ tslib: "npm:1.14.1"
+ checksum: 10c0/9b5b2f0ce516d2ddebe2cd1a2c8ea18a6b765b0d068162caf39745c18534e264a0cc6198adb869ba8684d0efa563be30956a3b9a7cc82b80b9e263f6211e30ab
+ languageName: node
+ linkType: hard
+
+"@walletconnect/jsonrpc-types@npm:1.0.3, @walletconnect/jsonrpc-types@npm:^1.0.2, @walletconnect/jsonrpc-types@npm:^1.0.3":
+ version: 1.0.3
+ resolution: "@walletconnect/jsonrpc-types@npm:1.0.3"
+ dependencies:
+ keyvaluestorage-interface: "npm:^1.0.0"
+ tslib: "npm:1.14.1"
+ checksum: 10c0/a0fc8a88c62795bf4bf83d4e98a4e2cdd659ef70c73642582089fdf0994c54fd8050aa6cca85cfdcca6b77994e71334895e7a19649c325a8c822b059c2003884
+ languageName: node
+ linkType: hard
+
+"@walletconnect/jsonrpc-utils@npm:1.0.8, @walletconnect/jsonrpc-utils@npm:^1.0.6, @walletconnect/jsonrpc-utils@npm:^1.0.8":
+ version: 1.0.8
+ resolution: "@walletconnect/jsonrpc-utils@npm:1.0.8"
+ dependencies:
+ "@walletconnect/environment": "npm:^1.0.1"
+ "@walletconnect/jsonrpc-types": "npm:^1.0.3"
+ tslib: "npm:1.14.1"
+ checksum: 10c0/e4a6bd801cf555bca775e03d961d1fe5ad0a22838e3496adda43ab4020a73d1b38de7096c06940e51f00fccccc734cd422fe4f1f7a8682302467b9c4d2a93d5d
+ languageName: node
+ linkType: hard
+
+"@walletconnect/jsonrpc-ws-connection@npm:1.0.14":
+ version: 1.0.14
+ resolution: "@walletconnect/jsonrpc-ws-connection@npm:1.0.14"
+ dependencies:
+ "@walletconnect/jsonrpc-utils": "npm:^1.0.6"
+ "@walletconnect/safe-json": "npm:^1.0.2"
+ events: "npm:^3.3.0"
+ ws: "npm:^7.5.1"
+ checksum: 10c0/a710ecc51f8d3ed819ba6d6e53151ef274473aa8746ffdeaffaa3d4c020405bc694b0d179649fc2510a556eb4daf02f4a9e3dacef69ff95f673939bd67be649e
+ languageName: node
+ linkType: hard
+
+"@walletconnect/keyvaluestorage@npm:^1.1.1":
+ version: 1.1.1
+ resolution: "@walletconnect/keyvaluestorage@npm:1.1.1"
+ dependencies:
+ "@walletconnect/safe-json": "npm:^1.0.1"
+ idb-keyval: "npm:^6.2.1"
+ unstorage: "npm:^1.9.0"
+ peerDependencies:
+ "@react-native-async-storage/async-storage": 1.x
+ peerDependenciesMeta:
+ "@react-native-async-storage/async-storage":
+ optional: true
+ checksum: 10c0/de2ec39d09ce99370865f7d7235b93c42b3e4fd3406bdbc644329eff7faea2722618aa88ffc4ee7d20b1d6806a8331261b65568187494cbbcceeedbe79dc30e8
+ languageName: node
+ linkType: hard
+
+"@walletconnect/logger@npm:^2.0.1":
+ version: 2.0.1
+ resolution: "@walletconnect/logger@npm:2.0.1"
+ dependencies:
+ pino: "npm:7.11.0"
+ tslib: "npm:1.14.1"
+ checksum: 10c0/1778686f608f03bc8a67fb560a2694e8aef74b392811508e98cc158d1839a1bb0a0256eb2ed719c4ee17e65a11543ddc4f9059d3bdd5dddcca6359ba1bab18bd
+ languageName: node
+ linkType: hard
+
+"@walletconnect/logger@npm:^2.1.0":
+ version: 2.1.0
+ resolution: "@walletconnect/logger@npm:2.1.0"
+ dependencies:
+ "@walletconnect/safe-json": "npm:^1.0.2"
+ pino: "npm:7.11.0"
+ checksum: 10c0/3d7b4eaf3b1e95e8cc12740ef7768a2722f70d23998a4dc45422da6817829626c6d79fa3683bd8eb52c5e1091bd6b63773d7c04b1f2d1932167f38e0123b1537
+ languageName: node
+ linkType: hard
+
+"@walletconnect/relay-api@npm:^1.0.9":
+ version: 1.0.9
+ resolution: "@walletconnect/relay-api@npm:1.0.9"
+ dependencies:
+ "@walletconnect/jsonrpc-types": "npm:^1.0.2"
+ tslib: "npm:1.14.1"
+ checksum: 10c0/e5994c63619b89cae45428108857389536f3c7e43a92f324a8ef305f351cf125dcfafeb9c480f23798c162ca2cad7b8f91828bae28a84cf869c3e7ee1dcca9dd
+ languageName: node
+ linkType: hard
+
+"@walletconnect/relay-auth@npm:^1.0.4":
+ version: 1.0.4
+ resolution: "@walletconnect/relay-auth@npm:1.0.4"
+ dependencies:
+ "@stablelib/ed25519": "npm:^1.0.2"
+ "@stablelib/random": "npm:^1.0.1"
+ "@walletconnect/safe-json": "npm:^1.0.1"
+ "@walletconnect/time": "npm:^1.0.2"
+ tslib: "npm:1.14.1"
+ uint8arrays: "npm:^3.0.0"
+ checksum: 10c0/e90294ff718c5c1e49751a28916aaac45dd07d694f117052506309eb05b68cc2c72d9b302366e40d79ef952c22bd0bbea731d09633a6663b0ab8e18b4804a832
+ languageName: node
+ linkType: hard
+
+"@walletconnect/safe-json@npm:^1.0.1, @walletconnect/safe-json@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "@walletconnect/safe-json@npm:1.0.2"
+ dependencies:
+ tslib: "npm:1.14.1"
+ checksum: 10c0/8689072018c1ff7ab58eca67bd6f06b53702738d8183d67bfe6ed220aeac804e41901b8ee0fb14299e83c70093fafb90a90992202d128d53b2832bb01b591752
+ languageName: node
+ linkType: hard
+
+"@walletconnect/sign-client@npm:^2.9.0":
+ version: 2.12.1
+ resolution: "@walletconnect/sign-client@npm:2.12.1"
+ dependencies:
+ "@walletconnect/core": "npm:2.12.1"
+ "@walletconnect/events": "npm:^1.0.1"
+ "@walletconnect/heartbeat": "npm:1.2.1"
+ "@walletconnect/jsonrpc-utils": "npm:1.0.8"
+ "@walletconnect/logger": "npm:^2.0.1"
+ "@walletconnect/time": "npm:^1.0.2"
+ "@walletconnect/types": "npm:2.12.1"
+ "@walletconnect/utils": "npm:2.12.1"
+ events: "npm:^3.3.0"
+ checksum: 10c0/ccf0ea03d953c0e7b06d037f9e4c2f957cc6a0134be31e55adb308f3ee88dd91c89e53c521317ea9b1274cf80a1ae9a28d2474258ad980714e07f254efe56e55
+ languageName: node
+ linkType: hard
+
+"@walletconnect/time@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "@walletconnect/time@npm:1.0.2"
+ dependencies:
+ tslib: "npm:1.14.1"
+ checksum: 10c0/6317f93086e36daa3383cab4a8579c7d0bed665fb0f8e9016575200314e9ba5e61468f66142a7bb5b8489bb4c9250196576d90a60b6b00e0e856b5d0ab6ba474
+ languageName: node
+ linkType: hard
+
+"@walletconnect/types@npm:2.11.0":
+ version: 2.11.0
+ resolution: "@walletconnect/types@npm:2.11.0"
+ dependencies:
+ "@walletconnect/events": "npm:^1.0.1"
+ "@walletconnect/heartbeat": "npm:1.2.1"
+ "@walletconnect/jsonrpc-types": "npm:1.0.3"
+ "@walletconnect/keyvaluestorage": "npm:^1.1.1"
+ "@walletconnect/logger": "npm:^2.0.1"
+ events: "npm:^3.3.0"
+ checksum: 10c0/7fa2493d8a9c938821f5234b4d2a087f903359875925a7abea3a0640aa765886c01b4846bbe5e39923b48883f7fd92c3f4ff8e643c4c894c50e9f715b3a881d8
+ languageName: node
+ linkType: hard
+
+"@walletconnect/types@npm:2.12.1":
+ version: 2.12.1
+ resolution: "@walletconnect/types@npm:2.12.1"
+ dependencies:
+ "@walletconnect/events": "npm:^1.0.1"
+ "@walletconnect/heartbeat": "npm:1.2.1"
+ "@walletconnect/jsonrpc-types": "npm:1.0.3"
+ "@walletconnect/keyvaluestorage": "npm:^1.1.1"
+ "@walletconnect/logger": "npm:^2.0.1"
+ events: "npm:^3.3.0"
+ checksum: 10c0/c04d2f769b5a2c7e72e501a50b95ccfad9bc086643dbd036779bb66662885c312be9ed0ddc7b095e26ed666d47494c912e8b82624e6e348063b42a73ba174299
+ languageName: node
+ linkType: hard
+
+"@walletconnect/utils@npm:2.12.1, @walletconnect/utils@npm:^2.9.0":
+ version: 2.12.1
+ resolution: "@walletconnect/utils@npm:2.12.1"
+ dependencies:
+ "@stablelib/chacha20poly1305": "npm:1.0.1"
+ "@stablelib/hkdf": "npm:1.0.1"
+ "@stablelib/random": "npm:^1.0.2"
+ "@stablelib/sha256": "npm:1.0.1"
+ "@stablelib/x25519": "npm:^1.0.3"
+ "@walletconnect/relay-api": "npm:^1.0.9"
+ "@walletconnect/safe-json": "npm:^1.0.2"
+ "@walletconnect/time": "npm:^1.0.2"
+ "@walletconnect/types": "npm:2.12.1"
+ "@walletconnect/window-getters": "npm:^1.0.1"
+ "@walletconnect/window-metadata": "npm:^1.0.1"
+ detect-browser: "npm:5.3.0"
+ query-string: "npm:7.1.3"
+ uint8arrays: "npm:^3.1.0"
+ checksum: 10c0/0864afecb5bbfa736e6d390cb0e0b721cdd03a9616a6c0c93a8f381cb8f0354db658800880131e9bbcf6e5a22e819bf413e197484dce3218b677fad6da068b8e
+ languageName: node
+ linkType: hard
+
+"@walletconnect/window-getters@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "@walletconnect/window-getters@npm:1.0.1"
+ dependencies:
+ tslib: "npm:1.14.1"
+ checksum: 10c0/c3aedba77aa9274b8277c4189ec992a0a6000377e95656443b3872ca5b5fe77dd91170b1695027fc524dc20362ce89605d277569a0d9a5bedc841cdaf14c95df
+ languageName: node
+ linkType: hard
+
+"@walletconnect/window-metadata@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "@walletconnect/window-metadata@npm:1.0.1"
+ dependencies:
+ "@walletconnect/window-getters": "npm:^1.0.1"
+ tslib: "npm:1.14.1"
+ checksum: 10c0/f190e9bed77282d8ba868a4895f4d813e135f9bbecb8dd4aed988ab1b06992f78128ac19d7d073cf41d8a6a74d0c055cd725908ce0a894649fd25443ad934cf4
+ languageName: node
+ linkType: hard
+
+"@yarnpkg/lockfile@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "@yarnpkg/lockfile@npm:1.1.0"
+ checksum: 10c0/0bfa50a3d756623d1f3409bc23f225a1d069424dbc77c6fd2f14fb377390cd57ec703dc70286e081c564be9051ead9ba85d81d66a3e68eeb6eb506d4e0c0fbda
+ languageName: node
+ linkType: hard
+
+"abbrev@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "abbrev@npm:2.0.0"
+ checksum: 10c0/f742a5a107473946f426c691c08daba61a1d15942616f300b5d32fd735be88fef5cba24201757b6c407fd564555fb48c751cfa33519b2605c8a7aadd22baf372
+ languageName: node
+ linkType: hard
+
+"ace-builds@npm:1.35.0, ace-builds@npm:^1.32.8":
+ version: 1.35.0
+ resolution: "ace-builds@npm:1.35.0"
+ checksum: 10c0/f5bcde60e26718634d87aba84fee4c110fea48ba76aa0fc2d73b8c945e9626dbe95be943a0f3fdb16a4c9594d1a7b0d28979b94f73ca9c7073a8269e20e42cfb
+ languageName: node
+ linkType: hard
+
+"acorn-jsx@npm:^5.3.2":
+ version: 5.3.2
+ resolution: "acorn-jsx@npm:5.3.2"
+ peerDependencies:
+ acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
+ checksum: 10c0/4c54868fbef3b8d58927d5e33f0a4de35f59012fe7b12cf9dfbb345fb8f46607709e1c4431be869a23fb63c151033d84c4198fa9f79385cec34fcb1dd53974c1
+ languageName: node
+ linkType: hard
+
+"acorn@npm:^8.11.3, acorn@npm:^8.9.0":
+ version: 8.11.3
+ resolution: "acorn@npm:8.11.3"
+ bin:
+ acorn: bin/acorn
+ checksum: 10c0/3ff155f8812e4a746fee8ecff1f227d527c4c45655bb1fad6347c3cb58e46190598217551b1500f18542d2bbe5c87120cb6927f5a074a59166fbdd9468f0a299
+ languageName: node
+ linkType: hard
+
+"aes-js@npm:3.0.0":
+ version: 3.0.0
+ resolution: "aes-js@npm:3.0.0"
+ checksum: 10c0/87dd5b2363534b867db7cef8bc85a90c355460783744877b2db7c8be09740aac5750714f9e00902822f692662bda74cdf40e03fbb5214ffec75c2666666288b8
+ languageName: node
+ linkType: hard
+
+"agent-base@npm:^7.0.2, agent-base@npm:^7.1.0, agent-base@npm:^7.1.1":
+ version: 7.1.1
+ resolution: "agent-base@npm:7.1.1"
+ dependencies:
+ debug: "npm:^4.3.4"
+ checksum: 10c0/e59ce7bed9c63bf071a30cc471f2933862044c97fd9958967bfe22521d7a0f601ce4ed5a8c011799d0c726ca70312142ae193bbebb60f576b52be19d4a363b50
+ languageName: node
+ linkType: hard
+
+"aggregate-error@npm:^3.0.0":
+ version: 3.1.0
+ resolution: "aggregate-error@npm:3.1.0"
+ dependencies:
+ clean-stack: "npm:^2.0.0"
+ indent-string: "npm:^4.0.0"
+ checksum: 10c0/a42f67faa79e3e6687a4923050e7c9807db3848a037076f791d10e092677d65c1d2d863b7848560699f40fc0502c19f40963fb1cd1fb3d338a7423df8e45e039
+ languageName: node
+ linkType: hard
+
+"ajv@npm:^6.10.0, ajv@npm:^6.12.4":
+ version: 6.12.6
+ resolution: "ajv@npm:6.12.6"
+ dependencies:
+ fast-deep-equal: "npm:^3.1.1"
+ fast-json-stable-stringify: "npm:^2.0.0"
+ json-schema-traverse: "npm:^0.4.1"
+ uri-js: "npm:^4.2.2"
+ checksum: 10c0/41e23642cbe545889245b9d2a45854ebba51cda6c778ebced9649420d9205f2efb39cb43dbc41e358409223b1ea43303ae4839db682c848b891e4811da1a5a71
+ languageName: node
+ linkType: hard
+
+"animejs@npm:^3.2.2":
+ version: 3.2.2
+ resolution: "animejs@npm:3.2.2"
+ checksum: 10c0/f43dfcc0c743a2774e76fbfcb16a22350da7104f413d9d1b85c48128b0c078090642809deb631e21dfa0a40651111be39d9d7f694c9c1b70d8637ce8b6d63116
+ languageName: node
+ linkType: hard
+
+"ansi-regex@npm:^5.0.1":
+ version: 5.0.1
+ resolution: "ansi-regex@npm:5.0.1"
+ checksum: 10c0/9a64bb8627b434ba9327b60c027742e5d17ac69277960d041898596271d992d4d52ba7267a63ca10232e29f6107fc8a835f6ce8d719b88c5f8493f8254813737
+ languageName: node
+ linkType: hard
+
+"ansi-regex@npm:^6.0.1":
+ version: 6.0.1
+ resolution: "ansi-regex@npm:6.0.1"
+ checksum: 10c0/cbe16dbd2c6b2735d1df7976a7070dd277326434f0212f43abf6d87674095d247968209babdaad31bb00882fa68807256ba9be340eec2f1004de14ca75f52a08
+ languageName: node
+ linkType: hard
+
+"ansi-styles@npm:^4.0.0, ansi-styles@npm:^4.1.0":
+ version: 4.3.0
+ resolution: "ansi-styles@npm:4.3.0"
+ dependencies:
+ color-convert: "npm:^2.0.1"
+ checksum: 10c0/895a23929da416f2bd3de7e9cb4eabd340949328ab85ddd6e484a637d8f6820d485f53933446f5291c3b760cbc488beb8e88573dd0f9c7daf83dccc8fe81b041
+ languageName: node
+ linkType: hard
+
+"ansi-styles@npm:^6.1.0":
+ version: 6.2.1
+ resolution: "ansi-styles@npm:6.2.1"
+ checksum: 10c0/5d1ec38c123984bcedd996eac680d548f31828bd679a66db2bdf11844634dde55fec3efa9c6bb1d89056a5e79c1ac540c4c784d592ea1d25028a92227d2f2d5c
+ languageName: node
+ linkType: hard
+
+"anymatch@npm:^3.1.3, anymatch@npm:~3.1.2":
+ version: 3.1.3
+ resolution: "anymatch@npm:3.1.3"
+ dependencies:
+ normalize-path: "npm:^3.0.0"
+ picomatch: "npm:^2.0.4"
+ checksum: 10c0/57b06ae984bc32a0d22592c87384cd88fe4511b1dd7581497831c56d41939c8a001b28e7b853e1450f2bf61992dfcaa8ae2d0d161a0a90c4fb631ef07098fbac
+ languageName: node
+ linkType: hard
+
+"argparse@npm:^2.0.1":
+ version: 2.0.1
+ resolution: "argparse@npm:2.0.1"
+ checksum: 10c0/c5640c2d89045371c7cedd6a70212a04e360fd34d6edeae32f6952c63949e3525ea77dbec0289d8213a99bbaeab5abfa860b5c12cf88a2e6cf8106e90dd27a7e
+ languageName: node
+ linkType: hard
+
+"aria-query@npm:^5.3.0":
+ version: 5.3.0
+ resolution: "aria-query@npm:5.3.0"
+ dependencies:
+ dequal: "npm:^2.0.3"
+ checksum: 10c0/2bff0d4eba5852a9dd578ecf47eaef0e82cc52569b48469b0aac2db5145db0b17b7a58d9e01237706d1e14b7a1b0ac9b78e9c97027ad97679dd8f91b85da1469
+ languageName: node
+ linkType: hard
+
+"array-buffer-byte-length@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "array-buffer-byte-length@npm:1.0.1"
+ dependencies:
+ call-bind: "npm:^1.0.5"
+ is-array-buffer: "npm:^3.0.4"
+ checksum: 10c0/f5cdf54527cd18a3d2852ddf73df79efec03829e7373a8322ef5df2b4ef546fb365c19c71d6b42d641cb6bfe0f1a2f19bc0ece5b533295f86d7c3d522f228917
+ languageName: node
+ linkType: hard
+
+"array-includes@npm:^3.1.6, array-includes@npm:^3.1.7, array-includes@npm:^3.1.8":
+ version: 3.1.8
+ resolution: "array-includes@npm:3.1.8"
+ dependencies:
+ call-bind: "npm:^1.0.7"
+ define-properties: "npm:^1.2.1"
+ es-abstract: "npm:^1.23.2"
+ es-object-atoms: "npm:^1.0.0"
+ get-intrinsic: "npm:^1.2.4"
+ is-string: "npm:^1.0.7"
+ checksum: 10c0/5b1004d203e85873b96ddc493f090c9672fd6c80d7a60b798da8a14bff8a670ff95db5aafc9abc14a211943f05220dacf8ea17638ae0af1a6a47b8c0b48ce370
+ languageName: node
+ linkType: hard
+
+"array-union@npm:^2.1.0":
+ version: 2.1.0
+ resolution: "array-union@npm:2.1.0"
+ checksum: 10c0/429897e68110374f39b771ec47a7161fc6a8fc33e196857c0a396dc75df0b5f65e4d046674db764330b6bb66b39ef48dd7c53b6a2ee75cfb0681e0c1a7033962
+ languageName: node
+ linkType: hard
+
+"array.prototype.findlast@npm:^1.2.5":
+ version: 1.2.5
+ resolution: "array.prototype.findlast@npm:1.2.5"
+ dependencies:
+ call-bind: "npm:^1.0.7"
+ define-properties: "npm:^1.2.1"
+ es-abstract: "npm:^1.23.2"
+ es-errors: "npm:^1.3.0"
+ es-object-atoms: "npm:^1.0.0"
+ es-shim-unscopables: "npm:^1.0.2"
+ checksum: 10c0/ddc952b829145ab45411b9d6adcb51a8c17c76bf89c9dd64b52d5dffa65d033da8c076ed2e17091779e83bc892b9848188d7b4b33453c5565e65a92863cb2775
+ languageName: node
+ linkType: hard
+
+"array.prototype.findlastindex@npm:^1.2.3":
+ version: 1.2.5
+ resolution: "array.prototype.findlastindex@npm:1.2.5"
+ dependencies:
+ call-bind: "npm:^1.0.7"
+ define-properties: "npm:^1.2.1"
+ es-abstract: "npm:^1.23.2"
+ es-errors: "npm:^1.3.0"
+ es-object-atoms: "npm:^1.0.0"
+ es-shim-unscopables: "npm:^1.0.2"
+ checksum: 10c0/962189487728b034f3134802b421b5f39e42ee2356d13b42d2ddb0e52057ffdcc170b9524867f4f0611a6f638f4c19b31e14606e8bcbda67799e26685b195aa3
+ languageName: node
+ linkType: hard
+
+"array.prototype.flat@npm:^1.3.1, array.prototype.flat@npm:^1.3.2":
+ version: 1.3.2
+ resolution: "array.prototype.flat@npm:1.3.2"
+ dependencies:
+ call-bind: "npm:^1.0.2"
+ define-properties: "npm:^1.2.0"
+ es-abstract: "npm:^1.22.1"
+ es-shim-unscopables: "npm:^1.0.0"
+ checksum: 10c0/a578ed836a786efbb6c2db0899ae80781b476200617f65a44846cb1ed8bd8b24c8821b83703375d8af639c689497b7b07277060024b9919db94ac3e10dc8a49b
+ languageName: node
+ linkType: hard
+
+"array.prototype.flatmap@npm:^1.3.2":
+ version: 1.3.2
+ resolution: "array.prototype.flatmap@npm:1.3.2"
+ dependencies:
+ call-bind: "npm:^1.0.2"
+ define-properties: "npm:^1.2.0"
+ es-abstract: "npm:^1.22.1"
+ es-shim-unscopables: "npm:^1.0.0"
+ checksum: 10c0/67b3f1d602bb73713265145853128b1ad77cc0f9b833c7e1e056b323fbeac41a4ff1c9c99c7b9445903caea924d9ca2450578d9011913191aa88cc3c3a4b54f4
+ languageName: node
+ linkType: hard
+
+"array.prototype.toreversed@npm:^1.1.2":
+ version: 1.1.2
+ resolution: "array.prototype.toreversed@npm:1.1.2"
+ dependencies:
+ call-bind: "npm:^1.0.2"
+ define-properties: "npm:^1.2.0"
+ es-abstract: "npm:^1.22.1"
+ es-shim-unscopables: "npm:^1.0.0"
+ checksum: 10c0/2b7627ea85eae1e80ecce665a500cc0f3355ac83ee4a1a727562c7c2a1d5f1c0b4dd7b65c468ec6867207e452ba01256910a2c0b41486bfdd11acf875a7a3435
+ languageName: node
+ linkType: hard
+
+"array.prototype.tosorted@npm:^1.1.3":
+ version: 1.1.4
+ resolution: "array.prototype.tosorted@npm:1.1.4"
+ dependencies:
+ call-bind: "npm:^1.0.7"
+ define-properties: "npm:^1.2.1"
+ es-abstract: "npm:^1.23.3"
+ es-errors: "npm:^1.3.0"
+ es-shim-unscopables: "npm:^1.0.2"
+ checksum: 10c0/eb3c4c4fc0381b0bf6dba2ea4d48d367c2827a0d4236a5718d97caaccc6b78f11f4cadf090736e86301d295a6aa4967ed45568f92ced51be8cbbacd9ca410943
+ languageName: node
+ linkType: hard
+
+"arraybuffer.prototype.slice@npm:^1.0.3":
+ version: 1.0.3
+ resolution: "arraybuffer.prototype.slice@npm:1.0.3"
+ dependencies:
+ array-buffer-byte-length: "npm:^1.0.1"
+ call-bind: "npm:^1.0.5"
+ define-properties: "npm:^1.2.1"
+ es-abstract: "npm:^1.22.3"
+ es-errors: "npm:^1.2.1"
+ get-intrinsic: "npm:^1.2.3"
+ is-array-buffer: "npm:^3.0.4"
+ is-shared-array-buffer: "npm:^1.0.2"
+ checksum: 10c0/d32754045bcb2294ade881d45140a5e52bda2321b9e98fa514797b7f0d252c4c5ab0d1edb34112652c62fa6a9398def568da63a4d7544672229afea283358c36
+ languageName: node
+ linkType: hard
+
+"asn1.js@npm:^4.10.1":
+ version: 4.10.1
+ resolution: "asn1.js@npm:4.10.1"
+ dependencies:
+ bn.js: "npm:^4.0.0"
+ inherits: "npm:^2.0.1"
+ minimalistic-assert: "npm:^1.0.0"
+ checksum: 10c0/afa7f3ab9e31566c80175a75b182e5dba50589dcc738aa485be42bdd787e2a07246a4b034d481861123cbe646a7656f318f4f1cad2e9e5e808a210d5d6feaa88
+ languageName: node
+ linkType: hard
+
+"assert@npm:^2.0.0":
+ version: 2.1.0
+ resolution: "assert@npm:2.1.0"
+ dependencies:
+ call-bind: "npm:^1.0.2"
+ is-nan: "npm:^1.3.2"
+ object-is: "npm:^1.1.5"
+ object.assign: "npm:^4.1.4"
+ util: "npm:^0.12.5"
+ checksum: 10c0/7271a5da883c256a1fa690677bf1dd9d6aa882139f2bed1cd15da4f9e7459683e1da8e32a203d6cc6767e5e0f730c77a9532a87b896b4b0af0dd535f668775f0
+ languageName: node
+ linkType: hard
+
+"ast-types-flow@npm:^0.0.8":
+ version: 0.0.8
+ resolution: "ast-types-flow@npm:0.0.8"
+ checksum: 10c0/f2a0ba8055353b743c41431974521e5e852a9824870cd6fce2db0e538ac7bf4da406bbd018d109af29ff3f8f0993f6a730c9eddbd0abd031fbcb29ca75c1014e
+ languageName: node
+ linkType: hard
+
+"asynckit@npm:^0.4.0":
+ version: 0.4.0
+ resolution: "asynckit@npm:0.4.0"
+ checksum: 10c0/d73e2ddf20c4eb9337e1b3df1a0f6159481050a5de457c55b14ea2e5cb6d90bb69e004c9af54737a5ee0917fcf2c9e25de67777bbe58261847846066ba75bc9d
+ languageName: node
+ linkType: hard
+
+"atomic-sleep@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "atomic-sleep@npm:1.0.0"
+ checksum: 10c0/e329a6665512736a9bbb073e1761b4ec102f7926cce35037753146a9db9c8104f5044c1662e4a863576ce544fb8be27cd2be6bc8c1a40147d03f31eb1cfb6e8a
+ languageName: node
+ linkType: hard
+
+"attr-accept@npm:^2.2.2":
+ version: 2.2.2
+ resolution: "attr-accept@npm:2.2.2"
+ checksum: 10c0/f77c073ac9616a783f2df814a56f65f1c870193e8da6097139e30b3be84ecc19fb835b93e81315d1da4f19e80721f14e8c8075014205e00abd37b856fe030b80
+ languageName: node
+ linkType: hard
+
+"available-typed-arrays@npm:^1.0.7":
+ version: 1.0.7
+ resolution: "available-typed-arrays@npm:1.0.7"
+ dependencies:
+ possible-typed-array-names: "npm:^1.0.0"
+ checksum: 10c0/d07226ef4f87daa01bd0fe80f8f310982e345f372926da2e5296aecc25c41cab440916bbaa4c5e1034b453af3392f67df5961124e4b586df1e99793a1374bdb2
+ languageName: node
+ linkType: hard
+
+"axe-core@npm:=4.7.0":
+ version: 4.7.0
+ resolution: "axe-core@npm:4.7.0"
+ checksum: 10c0/89ac5712b5932ac7d23398b4cb5ba081c394a086e343acc68ba49c83472706e18e0799804e8388c779dcdacc465377deb29f2714241d3fbb389cf3a6b275c9ba
+ languageName: node
+ linkType: hard
+
+"axios@npm:0.27.2, axios@npm:^0.27.2":
+ version: 0.27.2
+ resolution: "axios@npm:0.27.2"
+ dependencies:
+ follow-redirects: "npm:^1.14.9"
+ form-data: "npm:^4.0.0"
+ checksum: 10c0/76d673d2a90629944b44d6f345f01e58e9174690f635115d5ffd4aca495d99bcd8f95c590d5ccb473513f5ebc1d1a6e8934580d0c57cdd0498c3a101313ef771
+ languageName: node
+ linkType: hard
+
+"axios@npm:^0.21.2":
+ version: 0.21.4
+ resolution: "axios@npm:0.21.4"
+ dependencies:
+ follow-redirects: "npm:^1.14.0"
+ checksum: 10c0/fbcff55ec68f71f02d3773d467db2fcecdf04e749826c82c2427a232f9eba63242150a05f15af9ef15818352b814257541155de0281f8fb2b7e8a5b79f7f2142
+ languageName: node
+ linkType: hard
+
+"axios@npm:^1.6.0":
+ version: 1.6.8
+ resolution: "axios@npm:1.6.8"
+ dependencies:
+ follow-redirects: "npm:^1.15.6"
+ form-data: "npm:^4.0.0"
+ proxy-from-env: "npm:^1.1.0"
+ checksum: 10c0/0f22da6f490335479a89878bc7d5a1419484fbb437b564a80c34888fc36759ae4f56ea28d55a191695e5ed327f0bad56e7ff60fb6770c14d1be6501505d47ab9
+ languageName: node
+ linkType: hard
+
+"axobject-query@npm:^3.2.1":
+ version: 3.2.1
+ resolution: "axobject-query@npm:3.2.1"
+ dependencies:
+ dequal: "npm:^2.0.3"
+ checksum: 10c0/f7debc2012e456139b57d888c223f6d3cb4b61eb104164a85e3d346273dd6ef0bc9a04b6660ca9407704a14a8e05fa6b6eb9d55f44f348c7210de7ffb350c3a7
+ languageName: node
+ linkType: hard
+
+"bail@npm:^2.0.0":
+ version: 2.0.2
+ resolution: "bail@npm:2.0.2"
+ checksum: 10c0/25cbea309ef6a1f56214187004e8f34014eb015713ea01fa5b9b7e9e776ca88d0fdffd64143ac42dc91966c915a4b7b683411b56e14929fad16153fc026ffb8b
+ languageName: node
+ linkType: hard
+
+"balanced-match@npm:^1.0.0":
+ version: 1.0.2
+ resolution: "balanced-match@npm:1.0.2"
+ checksum: 10c0/9308baf0a7e4838a82bbfd11e01b1cb0f0cf2893bc1676c27c2a8c0e70cbae1c59120c3268517a8ae7fb6376b4639ef81ca22582611dbee4ed28df945134aaee
+ languageName: node
+ linkType: hard
+
+"base-x@npm:^3.0.2":
+ version: 3.0.9
+ resolution: "base-x@npm:3.0.9"
+ dependencies:
+ safe-buffer: "npm:^5.0.1"
+ checksum: 10c0/e6bbeae30b24f748b546005affb710c5fbc8b11a83f6cd0ca999bd1ab7ad3a22e42888addc40cd145adc4edfe62fcfab4ebc91da22e4259aae441f95a77aee1a
+ languageName: node
+ linkType: hard
+
+"base64-js@npm:^1.3.0, base64-js@npm:^1.3.1":
+ version: 1.5.1
+ resolution: "base64-js@npm:1.5.1"
+ checksum: 10c0/f23823513b63173a001030fae4f2dabe283b99a9d324ade3ad3d148e218134676f1ee8568c877cd79ec1c53158dcf2d2ba527a97c606618928ba99dd930102bf
+ languageName: node
+ linkType: hard
+
+"bech32@npm:1.1.4, bech32@npm:^1.1.4":
+ version: 1.1.4
+ resolution: "bech32@npm:1.1.4"
+ checksum: 10c0/5f62ca47b8df99ace9c0e0d8deb36a919d91bf40066700aaa9920a45f86bb10eb56d537d559416fd8703aa0fb60dddb642e58f049701e7291df678b2033e5ee5
+ languageName: node
+ linkType: hard
+
+"bech32@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "bech32@npm:2.0.0"
+ checksum: 10c0/45e7cc62758c9b26c05161b4483f40ea534437cf68ef785abadc5b62a2611319b878fef4f86ddc14854f183b645917a19addebc9573ab890e19194bc8f521942
+ languageName: node
+ linkType: hard
+
+"bfs-path@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "bfs-path@npm:1.0.2"
+ checksum: 10c0/776cd5cf823d0767bab64d9c029bcf3336a5ee3a3e15f8ef9186772885fa2a3dd2bf4e3a5a5e7a96d02805a85d983a51d0aff76712a5b5c0b331db37578d0b79
+ languageName: node
+ linkType: hard
+
+"big-integer@npm:^1.6.48":
+ version: 1.6.52
+ resolution: "big-integer@npm:1.6.52"
+ checksum: 10c0/9604224b4c2ab3c43c075d92da15863077a9f59e5d4205f4e7e76acd0cd47e8d469ec5e5dba8d9b32aa233951893b29329ca56ac80c20ce094b4a647a66abae0
+ languageName: node
+ linkType: hard
+
+"bignumber.js@npm:9.1.2, bignumber.js@npm:^9.1.2":
+ version: 9.1.2
+ resolution: "bignumber.js@npm:9.1.2"
+ checksum: 10c0/e17786545433f3110b868725c449fa9625366a6e675cd70eb39b60938d6adbd0158cb4b3ad4f306ce817165d37e63f4aa3098ba4110db1d9a3b9f66abfbaf10d
+ languageName: node
+ linkType: hard
+
+"binary-extensions@npm:^2.0.0":
+ version: 2.3.0
+ resolution: "binary-extensions@npm:2.3.0"
+ checksum: 10c0/75a59cafc10fb12a11d510e77110c6c7ae3f4ca22463d52487709ca7f18f69d886aa387557cc9864fbdb10153d0bdb4caacabf11541f55e89ed6e18d12ece2b5
+ languageName: node
+ linkType: hard
+
+"bindings@npm:^1.3.0":
+ version: 1.5.0
+ resolution: "bindings@npm:1.5.0"
+ dependencies:
+ file-uri-to-path: "npm:1.0.0"
+ checksum: 10c0/3dab2491b4bb24124252a91e656803eac24292473e56554e35bbfe3cc1875332cfa77600c3bac7564049dc95075bf6fcc63a4609920ff2d64d0fe405fcf0d4ba
+ languageName: node
+ linkType: hard
+
+"bip32-path@npm:^0.4.2":
+ version: 0.4.2
+ resolution: "bip32-path@npm:0.4.2"
+ checksum: 10c0/7d4123a5393fc5b70a20d0997c2b5a77feb789b49bdc3485ff7db02f916acf0f8c5eccf659f3d5dff5e0b34f22f5681babba86eb9ad7fa1287daf31d69982d75
+ languageName: node
+ linkType: hard
+
+"bip32@npm:^2.0.6":
+ version: 2.0.6
+ resolution: "bip32@npm:2.0.6"
+ dependencies:
+ "@types/node": "npm:10.12.18"
+ bs58check: "npm:^2.1.1"
+ create-hash: "npm:^1.2.0"
+ create-hmac: "npm:^1.1.7"
+ tiny-secp256k1: "npm:^1.1.3"
+ typeforce: "npm:^1.11.5"
+ wif: "npm:^2.0.6"
+ checksum: 10c0/65005eec40786767842665d68ba37e9be789570516256b7419dad9cc1160a7bb0a5db51cc441ff57d10461506ae150c2dfcfb22e83076a3d566fbbd7420006c6
+ languageName: node
+ linkType: hard
+
+"bip39@npm:^3.0.3":
+ version: 3.1.0
+ resolution: "bip39@npm:3.1.0"
+ dependencies:
+ "@noble/hashes": "npm:^1.2.0"
+ checksum: 10c0/68f9673a0d6a851e9635f3af8a85f2a1ecef9066c76d77e6f0d58d274b5bf22a67f429da3997e07c0d2cf153a4d7321f9273e656cac0526f667575ddee28ef71
+ languageName: node
+ linkType: hard
+
+"bn.js@npm:^4.0.0, bn.js@npm:^4.1.0, bn.js@npm:^4.11.8, bn.js@npm:^4.11.9":
+ version: 4.12.0
+ resolution: "bn.js@npm:4.12.0"
+ checksum: 10c0/9736aaa317421b6b3ed038ff3d4491935a01419ac2d83ddcfebc5717385295fcfcf0c57311d90fe49926d0abbd7a9dbefdd8861e6129939177f7e67ebc645b21
+ languageName: node
+ linkType: hard
+
+"bn.js@npm:^5.0.0, bn.js@npm:^5.2.0, bn.js@npm:^5.2.1":
+ version: 5.2.1
+ resolution: "bn.js@npm:5.2.1"
+ checksum: 10c0/bed3d8bd34ec89dbcf9f20f88bd7d4a49c160fda3b561c7bb227501f974d3e435a48fb9b61bc3de304acab9215a3bda0803f7017ffb4d0016a0c3a740a283caa
+ languageName: node
+ linkType: hard
+
+"bowser@npm:2.11.0":
+ version: 2.11.0
+ resolution: "bowser@npm:2.11.0"
+ checksum: 10c0/04efeecc7927a9ec33c667fa0965dea19f4ac60b3fea60793c2e6cf06c1dcd2f7ae1dbc656f450c5f50783b1c75cf9dc173ba6f3b7db2feee01f8c4b793e1bd3
+ languageName: node
+ linkType: hard
+
+"brace-expansion@npm:^1.1.7":
+ version: 1.1.11
+ resolution: "brace-expansion@npm:1.1.11"
+ dependencies:
+ balanced-match: "npm:^1.0.0"
+ concat-map: "npm:0.0.1"
+ checksum: 10c0/695a56cd058096a7cb71fb09d9d6a7070113c7be516699ed361317aca2ec169f618e28b8af352e02ab4233fb54eb0168460a40dc320bab0034b36ab59aaad668
+ languageName: node
+ linkType: hard
+
+"brace-expansion@npm:^2.0.1":
+ version: 2.0.1
+ resolution: "brace-expansion@npm:2.0.1"
+ dependencies:
+ balanced-match: "npm:^1.0.0"
+ checksum: 10c0/b358f2fe060e2d7a87aa015979ecea07f3c37d4018f8d6deb5bd4c229ad3a0384fe6029bb76cd8be63c81e516ee52d1a0673edbe2023d53a5191732ae3c3e49f
+ languageName: node
+ linkType: hard
+
+"braces@npm:^3.0.2, braces@npm:~3.0.2":
+ version: 3.0.2
+ resolution: "braces@npm:3.0.2"
+ dependencies:
+ fill-range: "npm:^7.0.1"
+ checksum: 10c0/321b4d675791479293264019156ca322163f02dc06e3c4cab33bb15cd43d80b51efef69b0930cfde3acd63d126ebca24cd0544fa6f261e093a0fb41ab9dda381
+ languageName: node
+ linkType: hard
+
+"braces@npm:^3.0.3":
+ version: 3.0.3
+ resolution: "braces@npm:3.0.3"
+ dependencies:
+ fill-range: "npm:^7.1.1"
+ checksum: 10c0/7c6dfd30c338d2997ba77500539227b9d1f85e388a5f43220865201e407e076783d0881f2d297b9f80951b4c957fcf0b51c1d2d24227631643c3f7c284b0aa04
+ languageName: node
+ linkType: hard
+
+"brorand@npm:^1.0.1, brorand@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "brorand@npm:1.1.0"
+ checksum: 10c0/6f366d7c4990f82c366e3878492ba9a372a73163c09871e80d82fb4ae0d23f9f8924cb8a662330308206e6b3b76ba1d528b4601c9ef73c2166b440b2ea3b7571
+ languageName: node
+ linkType: hard
+
+"browser-headers@npm:^0.4.1":
+ version: 0.4.1
+ resolution: "browser-headers@npm:0.4.1"
+ checksum: 10c0/3b08864bb955b295ab3dd6ab775c7798096c2e85486571803b4070ec484de83ccceebe531a8b00d5daf4463fada5e7ca18cd1a71cc1ee0dfdbab705332318cef
+ languageName: node
+ linkType: hard
+
+"browserify-aes@npm:^1.0.4, browserify-aes@npm:^1.2.0":
+ version: 1.2.0
+ resolution: "browserify-aes@npm:1.2.0"
+ dependencies:
+ buffer-xor: "npm:^1.0.3"
+ cipher-base: "npm:^1.0.0"
+ create-hash: "npm:^1.1.0"
+ evp_bytestokey: "npm:^1.0.3"
+ inherits: "npm:^2.0.1"
+ safe-buffer: "npm:^5.0.1"
+ checksum: 10c0/967f2ae60d610b7b252a4cbb55a7a3331c78293c94b4dd9c264d384ca93354c089b3af9c0dd023534efdc74ffbc82510f7ad4399cf82bc37bc07052eea485f18
+ languageName: node
+ linkType: hard
+
+"browserify-cipher@npm:^1.0.0":
+ version: 1.0.1
+ resolution: "browserify-cipher@npm:1.0.1"
+ dependencies:
+ browserify-aes: "npm:^1.0.4"
+ browserify-des: "npm:^1.0.0"
+ evp_bytestokey: "npm:^1.0.0"
+ checksum: 10c0/aa256dcb42bc53a67168bbc94ab85d243b0a3b56109dee3b51230b7d010d9b78985ffc1fb36e145c6e4db151f888076c1cfc207baf1525d3e375cbe8187fe27d
+ languageName: node
+ linkType: hard
+
+"browserify-des@npm:^1.0.0":
+ version: 1.0.2
+ resolution: "browserify-des@npm:1.0.2"
+ dependencies:
+ cipher-base: "npm:^1.0.1"
+ des.js: "npm:^1.0.0"
+ inherits: "npm:^2.0.1"
+ safe-buffer: "npm:^5.1.2"
+ checksum: 10c0/943eb5d4045eff80a6cde5be4e5fbb1f2d5002126b5a4789c3c1aae3cdddb1eb92b00fb92277f512288e5c6af330730b1dbabcf7ce0923e749e151fcee5a074d
+ languageName: node
+ linkType: hard
+
+"browserify-rsa@npm:^4.0.0, browserify-rsa@npm:^4.1.0":
+ version: 4.1.0
+ resolution: "browserify-rsa@npm:4.1.0"
+ dependencies:
+ bn.js: "npm:^5.0.0"
+ randombytes: "npm:^2.0.1"
+ checksum: 10c0/fb2b5a8279d8a567a28d8ee03fb62e448428a906bab5c3dc9e9c3253ace551b5ea271db15e566ac78f1b1d71b243559031446604168b9235c351a32cae99d02a
+ languageName: node
+ linkType: hard
+
+"browserify-sign@npm:^4.0.0":
+ version: 4.2.3
+ resolution: "browserify-sign@npm:4.2.3"
+ dependencies:
+ bn.js: "npm:^5.2.1"
+ browserify-rsa: "npm:^4.1.0"
+ create-hash: "npm:^1.2.0"
+ create-hmac: "npm:^1.1.7"
+ elliptic: "npm:^6.5.5"
+ hash-base: "npm:~3.0"
+ inherits: "npm:^2.0.4"
+ parse-asn1: "npm:^5.1.7"
+ readable-stream: "npm:^2.3.8"
+ safe-buffer: "npm:^5.2.1"
+ checksum: 10c0/30c0eba3f5970a20866a4d3fbba2c5bd1928cd24f47faf995f913f1499214c6f3be14bb4d6ec1ab5c6cafb1eca9cb76ba1c2e1c04ed018370634d4e659c77216
+ languageName: node
+ linkType: hard
+
+"bs58@npm:^4.0.0":
+ version: 4.0.1
+ resolution: "bs58@npm:4.0.1"
+ dependencies:
+ base-x: "npm:^3.0.2"
+ checksum: 10c0/613a1b1441e754279a0e3f44d1faeb8c8e838feef81e550efe174ff021dd2e08a4c9ae5805b52dfdde79f97b5c0918c78dd24a0eb726c4a94365f0984a0ffc65
+ languageName: node
+ linkType: hard
+
+"bs58check@npm:<3.0.0, bs58check@npm:^2.1.1, bs58check@npm:^2.1.2":
+ version: 2.1.2
+ resolution: "bs58check@npm:2.1.2"
+ dependencies:
+ bs58: "npm:^4.0.0"
+ create-hash: "npm:^1.1.0"
+ safe-buffer: "npm:^5.1.2"
+ checksum: 10c0/5d33f319f0d7abbe1db786f13f4256c62a076bc8d184965444cb62ca4206b2c92bee58c93bce57150ffbbbe00c48838ac02e6f384e0da8215cac219c0556baa9
+ languageName: node
+ linkType: hard
+
+"buffer-xor@npm:^1.0.3":
+ version: 1.0.3
+ resolution: "buffer-xor@npm:1.0.3"
+ checksum: 10c0/fd269d0e0bf71ecac3146187cfc79edc9dbb054e2ee69b4d97dfb857c6d997c33de391696d04bdd669272751fa48e7872a22f3a6c7b07d6c0bc31dbe02a4075c
+ languageName: node
+ linkType: hard
+
+"buffer@npm:^6.0.3":
+ version: 6.0.3
+ resolution: "buffer@npm:6.0.3"
+ dependencies:
+ base64-js: "npm:^1.3.1"
+ ieee754: "npm:^1.2.1"
+ checksum: 10c0/2a905fbbcde73cc5d8bd18d1caa23715d5f83a5935867c2329f0ac06104204ba7947be098fe1317fbd8830e26090ff8e764f08cd14fefc977bb248c3487bcbd0
+ languageName: node
+ linkType: hard
+
+"bufferutil@npm:^4.0.3":
+ version: 4.0.8
+ resolution: "bufferutil@npm:4.0.8"
+ dependencies:
+ node-gyp: "npm:latest"
+ node-gyp-build: "npm:^4.3.0"
+ checksum: 10c0/36cdc5b53a38d9f61f89fdbe62029a2ebcd020599862253fefebe31566155726df9ff961f41b8c97b02b4c12b391ef97faf94e2383392654cf8f0ed68f76e47c
+ languageName: node
+ linkType: hard
+
+"busboy@npm:1.6.0":
+ version: 1.6.0
+ resolution: "busboy@npm:1.6.0"
+ dependencies:
+ streamsearch: "npm:^1.1.0"
+ checksum: 10c0/fa7e836a2b82699b6e074393428b91ae579d4f9e21f5ac468e1b459a244341d722d2d22d10920cdd849743dbece6dca11d72de939fb75a7448825cf2babfba1f
+ languageName: node
+ linkType: hard
+
+"cacache@npm:^18.0.0":
+ version: 18.0.3
+ resolution: "cacache@npm:18.0.3"
+ dependencies:
+ "@npmcli/fs": "npm:^3.1.0"
+ fs-minipass: "npm:^3.0.0"
+ glob: "npm:^10.2.2"
+ lru-cache: "npm:^10.0.1"
+ minipass: "npm:^7.0.3"
+ minipass-collect: "npm:^2.0.1"
+ minipass-flush: "npm:^1.0.5"
+ minipass-pipeline: "npm:^1.2.4"
+ p-map: "npm:^4.0.0"
+ ssri: "npm:^10.0.0"
+ tar: "npm:^6.1.11"
+ unique-filename: "npm:^3.0.0"
+ checksum: 10c0/dfda92840bb371fb66b88c087c61a74544363b37a265023223a99965b16a16bbb87661fe4948718d79df6e0cc04e85e62784fbcf1832b2a5e54ff4c46fbb45b7
+ languageName: node
+ linkType: hard
+
+"call-bind@npm:^1.0.0, call-bind@npm:^1.0.2, call-bind@npm:^1.0.5, call-bind@npm:^1.0.6, call-bind@npm:^1.0.7":
+ version: 1.0.7
+ resolution: "call-bind@npm:1.0.7"
+ dependencies:
+ es-define-property: "npm:^1.0.0"
+ es-errors: "npm:^1.3.0"
+ function-bind: "npm:^1.1.2"
+ get-intrinsic: "npm:^1.2.4"
+ set-function-length: "npm:^1.2.1"
+ checksum: 10c0/a3ded2e423b8e2a265983dba81c27e125b48eefb2655e7dfab6be597088da3d47c47976c24bc51b8fd9af1061f8f87b4ab78a314f3c77784b2ae2ba535ad8b8d
+ languageName: node
+ linkType: hard
+
+"callsites@npm:^3.0.0":
+ version: 3.1.0
+ resolution: "callsites@npm:3.1.0"
+ checksum: 10c0/fff92277400eb06c3079f9e74f3af120db9f8ea03bad0e84d9aede54bbe2d44a56cccb5f6cf12211f93f52306df87077ecec5b712794c5a9b5dac6d615a3f301
+ languageName: node
+ linkType: hard
+
+"caniuse-lite@npm:^1.0.30001406":
+ version: 1.0.30001606
+ resolution: "caniuse-lite@npm:1.0.30001606"
+ checksum: 10c0/fc9816f7d073e4f655c00acf9d6625f923e722430545b0aabefb9dc01347f3093608eb18841cf981acbd464fcac918a708908549738a8cd9517a14ac005bf8fc
+ languageName: node
+ linkType: hard
+
+"ccount@npm:^2.0.0":
+ version: 2.0.1
+ resolution: "ccount@npm:2.0.1"
+ checksum: 10c0/3939b1664390174484322bc3f45b798462e6c07ee6384cb3d645e0aa2f318502d174845198c1561930e1d431087f74cf1fe291ae9a4722821a9f4ba67e574350
+ languageName: node
+ linkType: hard
+
+"chain-registry@npm:1.62.3":
+ version: 1.62.3
+ resolution: "chain-registry@npm:1.62.3"
+ dependencies:
+ "@chain-registry/types": "npm:^0.44.3"
+ checksum: 10c0/acb2dcee56604083a38dd7e4524458d7d5c2e786d8d78ed40444530a8cb3236d16e0fef52462603ef339c2c529ede1c846597a8e6f99fa7751481b28279c9a56
+ languageName: node
+ linkType: hard
+
+"chalk@npm:^4.0.0, chalk@npm:^4.1.0":
+ version: 4.1.2
+ resolution: "chalk@npm:4.1.2"
+ dependencies:
+ ansi-styles: "npm:^4.1.0"
+ supports-color: "npm:^7.1.0"
+ checksum: 10c0/4a3fef5cc34975c898ffe77141450f679721df9dde00f6c304353fa9c8b571929123b26a0e4617bde5018977eb655b31970c297b91b63ee83bb82aeb04666880
+ languageName: node
+ linkType: hard
+
+"character-entities-html4@npm:^2.0.0":
+ version: 2.1.0
+ resolution: "character-entities-html4@npm:2.1.0"
+ checksum: 10c0/fe61b553f083400c20c0b0fd65095df30a0b445d960f3bbf271536ae6c3ba676f39cb7af0b4bf2755812f08ab9b88f2feed68f9aebb73bb153f7a115fe5c6e40
+ languageName: node
+ linkType: hard
+
+"character-entities-legacy@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "character-entities-legacy@npm:3.0.0"
+ checksum: 10c0/ec4b430af873661aa754a896a2b55af089b4e938d3d010fad5219299a6b6d32ab175142699ee250640678cd64bdecd6db3c9af0b8759ab7b155d970d84c4c7d1
+ languageName: node
+ linkType: hard
+
+"character-entities@npm:^2.0.0":
+ version: 2.0.2
+ resolution: "character-entities@npm:2.0.2"
+ checksum: 10c0/b0c645a45bcc90ff24f0e0140f4875a8436b8ef13b6bcd31ec02cfb2ca502b680362aa95386f7815bdc04b6464d48cf191210b3840d7c04241a149ede591a308
+ languageName: node
+ linkType: hard
+
+"character-reference-invalid@npm:^2.0.0":
+ version: 2.0.1
+ resolution: "character-reference-invalid@npm:2.0.1"
+ checksum: 10c0/2ae0dec770cd8659d7e8b0ce24392d83b4c2f0eb4a3395c955dce5528edd4cc030a794cfa06600fcdd700b3f2de2f9b8e40e309c0011c4180e3be64a0b42e6a1
+ languageName: node
+ linkType: hard
+
+"chokidar@npm:^3.6.0":
+ version: 3.6.0
+ resolution: "chokidar@npm:3.6.0"
+ dependencies:
+ anymatch: "npm:~3.1.2"
+ braces: "npm:~3.0.2"
+ fsevents: "npm:~2.3.2"
+ glob-parent: "npm:~5.1.2"
+ is-binary-path: "npm:~2.1.0"
+ is-glob: "npm:~4.0.1"
+ normalize-path: "npm:~3.0.0"
+ readdirp: "npm:~3.6.0"
+ dependenciesMeta:
+ fsevents:
+ optional: true
+ checksum: 10c0/8361dcd013f2ddbe260eacb1f3cb2f2c6f2b0ad118708a343a5ed8158941a39cb8fb1d272e0f389712e74ee90ce8ba864eece9e0e62b9705cb468a2f6d917462
+ languageName: node
+ linkType: hard
+
+"chownr@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "chownr@npm:2.0.0"
+ checksum: 10c0/594754e1303672171cc04e50f6c398ae16128eb134a88f801bf5354fd96f205320f23536a045d9abd8b51024a149696e51231565891d4efdab8846021ecf88e6
+ languageName: node
+ linkType: hard
+
+"cipher-base@npm:^1.0.0, cipher-base@npm:^1.0.1, cipher-base@npm:^1.0.3":
+ version: 1.0.4
+ resolution: "cipher-base@npm:1.0.4"
+ dependencies:
+ inherits: "npm:^2.0.1"
+ safe-buffer: "npm:^5.0.1"
+ checksum: 10c0/d8d005f8b64d8a77b3d3ce531301ae7b45902c9cab4ec8b66bdbd2bf2a1d9fceb9a2133c293eb3c060b2d964da0f14c47fb740366081338aa3795dd1faa8984b
+ languageName: node
+ linkType: hard
+
+"citty@npm:^0.1.5, citty@npm:^0.1.6":
+ version: 0.1.6
+ resolution: "citty@npm:0.1.6"
+ dependencies:
+ consola: "npm:^3.2.3"
+ checksum: 10c0/d26ad82a9a4a8858c7e149d90b878a3eceecd4cfd3e2ed3cd5f9a06212e451fb4f8cbe0fa39a3acb1b3e8f18e22db8ee5def5829384bad50e823d4b301609b48
+ languageName: node
+ linkType: hard
+
+"clean-stack@npm:^2.0.0":
+ version: 2.2.0
+ resolution: "clean-stack@npm:2.2.0"
+ checksum: 10c0/1f90262d5f6230a17e27d0c190b09d47ebe7efdd76a03b5a1127863f7b3c9aec4c3e6c8bb3a7bbf81d553d56a1fd35728f5a8ef4c63f867ac8d690109742a8c1
+ languageName: node
+ linkType: hard
+
+"client-only@npm:0.0.1, client-only@npm:^0.0.1":
+ version: 0.0.1
+ resolution: "client-only@npm:0.0.1"
+ checksum: 10c0/9d6cfd0c19e1c96a434605added99dff48482152af791ec4172fb912a71cff9027ff174efd8cdb2160cc7f377543e0537ffc462d4f279bc4701de3f2a3c4b358
+ languageName: node
+ linkType: hard
+
+"clipboardy@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "clipboardy@npm:4.0.0"
+ dependencies:
+ execa: "npm:^8.0.1"
+ is-wsl: "npm:^3.1.0"
+ is64bit: "npm:^2.0.0"
+ checksum: 10c0/02bb5f3d0a772bd84ec26a3566c72c2319a9f3b4cb8338370c3bffcf0073c80b834abe1a6945bea4f2cbea28e1627a975aaac577e3f61a868d924ce79138b041
+ languageName: node
+ linkType: hard
+
+"clsx@npm:^2.0.0":
+ version: 2.1.0
+ resolution: "clsx@npm:2.1.0"
+ checksum: 10c0/c09c00ad14f638366ca814097e6cab533dfa1972a358da5b557be487168acbb25b4c1395e89ffa842a8a61ba87a462d2b4885bc9d4f8410b598f3cb339599cdb
+ languageName: node
+ linkType: hard
+
+"clsx@npm:^2.1.1":
+ version: 2.1.1
+ resolution: "clsx@npm:2.1.1"
+ checksum: 10c0/c4c8eb865f8c82baab07e71bfa8897c73454881c4f99d6bc81585aecd7c441746c1399d08363dc096c550cceaf97bd4ce1e8854e1771e9998d9f94c4fe075839
+ languageName: node
+ linkType: hard
+
+"color-convert@npm:^2.0.1":
+ version: 2.0.1
+ resolution: "color-convert@npm:2.0.1"
+ dependencies:
+ color-name: "npm:~1.1.4"
+ checksum: 10c0/37e1150172f2e311fe1b2df62c6293a342ee7380da7b9cfdba67ea539909afbd74da27033208d01d6d5cfc65ee7868a22e18d7e7648e004425441c0f8a15a7d7
+ languageName: node
+ linkType: hard
+
+"color-name@npm:~1.1.4":
+ version: 1.1.4
+ resolution: "color-name@npm:1.1.4"
+ checksum: 10c0/a1a3f914156960902f46f7f56bc62effc6c94e84b2cae157a526b1c1f74b677a47ec602bf68a61abfa2b42d15b7c5651c6dbe72a43af720bc588dff885b10f95
+ languageName: node
+ linkType: hard
+
+"combined-stream@npm:^1.0.8":
+ version: 1.0.8
+ resolution: "combined-stream@npm:1.0.8"
+ dependencies:
+ delayed-stream: "npm:~1.0.0"
+ checksum: 10c0/0dbb829577e1b1e839fa82b40c07ffaf7de8a09b935cadd355a73652ae70a88b4320db322f6634a4ad93424292fa80973ac6480986247f1734a1137debf271d5
+ languageName: node
+ linkType: hard
+
+"comma-separated-tokens@npm:^2.0.0":
+ version: 2.0.3
+ resolution: "comma-separated-tokens@npm:2.0.3"
+ checksum: 10c0/91f90f1aae320f1755d6957ef0b864fe4f54737f3313bd95e0802686ee2ca38bff1dd381964d00ae5db42912dd1f4ae5c2709644e82706ffc6f6842a813cdd67
+ languageName: node
+ linkType: hard
+
+"commander-plus@npm:^0.0.6":
+ version: 0.0.6
+ resolution: "commander-plus@npm:0.0.6"
+ dependencies:
+ keypress: "npm:0.1.x"
+ checksum: 10c0/c20cb3e27c220f101e354c9c916dacd80de4363cb5a1b1b94dd6b81a675e2cabc92d182a3a041a6bea418300e2955077607da1a07dabf383813007963c01533b
+ languageName: node
+ linkType: hard
+
+"concat-map@npm:0.0.1":
+ version: 0.0.1
+ resolution: "concat-map@npm:0.0.1"
+ checksum: 10c0/c996b1cfdf95b6c90fee4dae37e332c8b6eb7d106430c17d538034c0ad9a1630cb194d2ab37293b1bdd4d779494beee7786d586a50bd9376fd6f7bcc2bd4c98f
+ languageName: node
+ linkType: hard
+
+"consola@npm:^3.2.3":
+ version: 3.2.3
+ resolution: "consola@npm:3.2.3"
+ checksum: 10c0/c606220524ec88a05bb1baf557e9e0e04a0c08a9c35d7a08652d99de195c4ddcb6572040a7df57a18ff38bbc13ce9880ad032d56630cef27bef72768ef0ac078
+ languageName: node
+ linkType: hard
+
+"cookie-es@npm:^1.0.0":
+ version: 1.1.0
+ resolution: "cookie-es@npm:1.1.0"
+ checksum: 10c0/27f1057b05eb42dca539a80cf45b8f9d5bacf35482690d756025447810dcd669e0cd13952a063a43e47a4e6fd7400745defedc97479a4254019f0bdb5c200341
+ languageName: node
+ linkType: hard
+
+"copy-anything@npm:^3.0.2":
+ version: 3.0.5
+ resolution: "copy-anything@npm:3.0.5"
+ dependencies:
+ is-what: "npm:^4.1.8"
+ checksum: 10c0/01eadd500c7e1db71d32d95a3bfaaedcb839ef891c741f6305ab0461398056133de08f2d1bf4c392b364e7bdb7ce498513896e137a7a183ac2516b065c28a4fe
+ languageName: node
+ linkType: hard
+
+"copy-to-clipboard@npm:^3.3.3":
+ version: 3.3.3
+ resolution: "copy-to-clipboard@npm:3.3.3"
+ dependencies:
+ toggle-selection: "npm:^1.0.6"
+ checksum: 10c0/3ebf5e8ee00601f8c440b83ec08d838e8eabb068c1fae94a9cda6b42f288f7e1b552f3463635f419af44bf7675afc8d0390d30876cf5c2d5d35f86d9c56a3e5f
+ languageName: node
+ linkType: hard
+
+"core-util-is@npm:~1.0.0":
+ version: 1.0.3
+ resolution: "core-util-is@npm:1.0.3"
+ checksum: 10c0/90a0e40abbddfd7618f8ccd63a74d88deea94e77d0e8dbbea059fa7ebebb8fbb4e2909667fe26f3a467073de1a542ebe6ae4c73a73745ac5833786759cd906c9
+ languageName: node
+ linkType: hard
+
+"cosmjs-types@npm:>=0.9.0, cosmjs-types@npm:^0.9.0":
+ version: 0.9.0
+ resolution: "cosmjs-types@npm:0.9.0"
+ checksum: 10c0/bc20f4293fb34629d7c5f96bafe533987f753df957ff68eb078d0128ae5a418320cb945024441769a07bb9bc5dde9d22b972fd40d485933e5706ea191c43727b
+ languageName: node
+ linkType: hard
+
+"cosmjs-types@npm:^0.5.2":
+ version: 0.5.2
+ resolution: "cosmjs-types@npm:0.5.2"
+ dependencies:
+ long: "npm:^4.0.0"
+ protobufjs: "npm:~6.11.2"
+ checksum: 10c0/88bc5fd23339abeaf08a7d63cb34eb96e04a36776c7dba585ae03ceb364b436526dadafc709ba0494cb7d53d9a8b9cd4233c4d6b45cce323042366d4f8781812
+ languageName: node
+ linkType: hard
+
+"cosmjs-types@npm:^0.8.0":
+ version: 0.8.0
+ resolution: "cosmjs-types@npm:0.8.0"
+ dependencies:
+ long: "npm:^4.0.0"
+ protobufjs: "npm:~6.11.2"
+ checksum: 10c0/910a84d04d17c3a32120bda52063a582325b900e9bb2f5ddffee621c1d053bc562bedc0d39d20e12736445b66d897bdae085247f51c6ffd1ca0154f99b938214
+ languageName: node
+ linkType: hard
+
+"cosmos-kit@npm:2.18.4":
+ version: 2.18.4
+ resolution: "cosmos-kit@npm:2.18.4"
+ dependencies:
+ "@cosmos-kit/cdcwallet": "npm:^2.13.2"
+ "@cosmos-kit/coin98": "npm:^2.11.2"
+ "@cosmos-kit/compass": "npm:^2.11.2"
+ "@cosmos-kit/cosmostation": "npm:^2.11.2"
+ "@cosmos-kit/exodus": "npm:^2.10.2"
+ "@cosmos-kit/fin": "npm:^2.11.2"
+ "@cosmos-kit/frontier": "npm:^2.10.2"
+ "@cosmos-kit/galaxy-station": "npm:^2.10.2"
+ "@cosmos-kit/keplr": "npm:^2.12.2"
+ "@cosmos-kit/leap": "npm:^2.12.2"
+ "@cosmos-kit/ledger": "npm:^2.11.2"
+ "@cosmos-kit/okxwallet-extension": "npm:^2.11.2"
+ "@cosmos-kit/omni": "npm:^2.10.2"
+ "@cosmos-kit/owallet": "npm:^2.11.2"
+ "@cosmos-kit/shell": "npm:^2.11.2"
+ "@cosmos-kit/station": "npm:^2.10.2"
+ "@cosmos-kit/tailwind": "npm:^1.5.2"
+ "@cosmos-kit/trust": "npm:^2.11.2"
+ "@cosmos-kit/vectis": "npm:^2.11.2"
+ "@cosmos-kit/xdefi": "npm:^2.10.2"
+ checksum: 10c0/76ccf246c852b58e99a64b1eed4c3409664159f4b9348362369775c74c6037437c945e2a44759a59bd79320d0d45981aa34cd7d4a3c4d3e67d7865d7777f7f61
+ languageName: node
+ linkType: hard
+
+"create-ecdh@npm:^4.0.0":
+ version: 4.0.4
+ resolution: "create-ecdh@npm:4.0.4"
+ dependencies:
+ bn.js: "npm:^4.1.0"
+ elliptic: "npm:^6.5.3"
+ checksum: 10c0/77b11a51360fec9c3bce7a76288fc0deba4b9c838d5fb354b3e40c59194d23d66efe6355fd4b81df7580da0661e1334a235a2a5c040b7569ba97db428d466e7f
+ languageName: node
+ linkType: hard
+
+"create-hash@npm:^1.1.0, create-hash@npm:^1.1.2, create-hash@npm:^1.2.0":
+ version: 1.2.0
+ resolution: "create-hash@npm:1.2.0"
+ dependencies:
+ cipher-base: "npm:^1.0.1"
+ inherits: "npm:^2.0.1"
+ md5.js: "npm:^1.3.4"
+ ripemd160: "npm:^2.0.1"
+ sha.js: "npm:^2.4.0"
+ checksum: 10c0/d402e60e65e70e5083cb57af96d89567954d0669e90550d7cec58b56d49c4b193d35c43cec8338bc72358198b8cbf2f0cac14775b651e99238e1cf411490f915
+ languageName: node
+ linkType: hard
+
+"create-hmac@npm:^1.1.0, create-hmac@npm:^1.1.4, create-hmac@npm:^1.1.7":
+ version: 1.1.7
+ resolution: "create-hmac@npm:1.1.7"
+ dependencies:
+ cipher-base: "npm:^1.0.3"
+ create-hash: "npm:^1.1.0"
+ inherits: "npm:^2.0.1"
+ ripemd160: "npm:^2.0.0"
+ safe-buffer: "npm:^5.0.1"
+ sha.js: "npm:^2.4.8"
+ checksum: 10c0/24332bab51011652a9a0a6d160eed1e8caa091b802335324ae056b0dcb5acbc9fcf173cf10d128eba8548c3ce98dfa4eadaa01bd02f44a34414baee26b651835
+ languageName: node
+ linkType: hard
+
+"cross-fetch@npm:^3.1.5":
+ version: 3.1.8
+ resolution: "cross-fetch@npm:3.1.8"
+ dependencies:
+ node-fetch: "npm:^2.6.12"
+ checksum: 10c0/4c5e022ffe6abdf380faa6e2373c0c4ed7ef75e105c95c972b6f627c3f083170b6886f19fb488a7fa93971f4f69dcc890f122b0d97f0bf5f41ca1d9a8f58c8af
+ languageName: node
+ linkType: hard
+
+"cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.2, cross-spawn@npm:^7.0.3":
+ version: 7.0.3
+ resolution: "cross-spawn@npm:7.0.3"
+ dependencies:
+ path-key: "npm:^3.1.0"
+ shebang-command: "npm:^2.0.0"
+ which: "npm:^2.0.1"
+ checksum: 10c0/5738c312387081c98d69c98e105b6327b069197f864a60593245d64c8089c8a0a744e16349281210d56835bb9274130d825a78b2ad6853ca13cfbeffc0c31750
+ languageName: node
+ linkType: hard
+
+"crossws@npm:^0.2.0, crossws@npm:^0.2.2":
+ version: 0.2.4
+ resolution: "crossws@npm:0.2.4"
+ peerDependencies:
+ uWebSockets.js: "*"
+ peerDependenciesMeta:
+ uWebSockets.js:
+ optional: true
+ checksum: 10c0/b950c64d36f3f11fdb8e0faf3107598660d89d77eb860e68b535fe6acba9f0f2f0507cc7250bd219a3ef2fe08718db91b591e6912b7324fcfc8fd1b8d9f78c96
+ languageName: node
+ linkType: hard
+
+"crypto-browserify@npm:^3.12.0":
+ version: 3.12.0
+ resolution: "crypto-browserify@npm:3.12.0"
+ dependencies:
+ browserify-cipher: "npm:^1.0.0"
+ browserify-sign: "npm:^4.0.0"
+ create-ecdh: "npm:^4.0.0"
+ create-hash: "npm:^1.1.0"
+ create-hmac: "npm:^1.1.0"
+ diffie-hellman: "npm:^5.0.0"
+ inherits: "npm:^2.0.1"
+ pbkdf2: "npm:^3.0.3"
+ public-encrypt: "npm:^4.0.0"
+ randombytes: "npm:^2.0.0"
+ randomfill: "npm:^1.0.3"
+ checksum: 10c0/0c20198886576050a6aa5ba6ae42f2b82778bfba1753d80c5e7a090836890dc372bdc780986b2568b4fb8ed2a91c958e61db1f0b6b1cc96af4bd03ffc298ba92
+ languageName: node
+ linkType: hard
+
+"crypto-js@npm:^4.0.0":
+ version: 4.2.0
+ resolution: "crypto-js@npm:4.2.0"
+ checksum: 10c0/8fbdf9d56f47aea0794ab87b0eb9833baf80b01a7c5c1b0edc7faf25f662fb69ab18dc2199e2afcac54670ff0cd9607a9045a3f7a80336cccd18d77a55b9fdf0
+ languageName: node
+ linkType: hard
+
+"css-what@npm:^6.1.0":
+ version: 6.1.0
+ resolution: "css-what@npm:6.1.0"
+ checksum: 10c0/a09f5a6b14ba8dcf57ae9a59474722e80f20406c53a61e9aedb0eedc693b135113ffe2983f4efc4b5065ae639442e9ae88df24941ef159c218b231011d733746
+ languageName: node
+ linkType: hard
+
+"cssesc@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "cssesc@npm:3.0.0"
+ bin:
+ cssesc: bin/cssesc
+ checksum: 10c0/6bcfd898662671be15ae7827120472c5667afb3d7429f1f917737f3bf84c4176003228131b643ae74543f17a394446247df090c597bb9a728cce298606ed0aa7
+ languageName: node
+ linkType: hard
+
+"csstype@npm:^3.0.2, csstype@npm:^3.0.7":
+ version: 3.1.3
+ resolution: "csstype@npm:3.1.3"
+ checksum: 10c0/80c089d6f7e0c5b2bd83cf0539ab41474198579584fa10d86d0cafe0642202343cbc119e076a0b1aece191989477081415d66c9fefbf3c957fc2fc4b7009f248
+ languageName: node
+ linkType: hard
+
+"damerau-levenshtein@npm:^1.0.8":
+ version: 1.0.8
+ resolution: "damerau-levenshtein@npm:1.0.8"
+ checksum: 10c0/4c2647e0f42acaee7d068756c1d396e296c3556f9c8314bac1ac63ffb236217ef0e7e58602b18bb2173deec7ec8e0cac8e27cccf8f5526666b4ff11a13ad54a3
+ languageName: node
+ linkType: hard
+
+"data-view-buffer@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "data-view-buffer@npm:1.0.1"
+ dependencies:
+ call-bind: "npm:^1.0.6"
+ es-errors: "npm:^1.3.0"
+ is-data-view: "npm:^1.0.1"
+ checksum: 10c0/8984119e59dbed906a11fcfb417d7d861936f16697a0e7216fe2c6c810f6b5e8f4a5281e73f2c28e8e9259027190ac4a33e2a65fdd7fa86ac06b76e838918583
+ languageName: node
+ linkType: hard
+
+"data-view-byte-length@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "data-view-byte-length@npm:1.0.1"
+ dependencies:
+ call-bind: "npm:^1.0.7"
+ es-errors: "npm:^1.3.0"
+ is-data-view: "npm:^1.0.1"
+ checksum: 10c0/b7d9e48a0cf5aefed9ab7d123559917b2d7e0d65531f43b2fd95b9d3a6b46042dd3fca597c42bba384e66b70d7ad66ff23932f8367b241f53d93af42cfe04ec2
+ languageName: node
+ linkType: hard
+
+"data-view-byte-offset@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "data-view-byte-offset@npm:1.0.0"
+ dependencies:
+ call-bind: "npm:^1.0.6"
+ es-errors: "npm:^1.3.0"
+ is-data-view: "npm:^1.0.1"
+ checksum: 10c0/21b0d2e53fd6e20cc4257c873bf6d36d77bd6185624b84076c0a1ddaa757b49aaf076254006341d35568e89f52eecd1ccb1a502cfb620f2beca04f48a6a62a8f
+ languageName: node
+ linkType: hard
+
+"dayjs@npm:1.11.11":
+ version: 1.11.11
+ resolution: "dayjs@npm:1.11.11"
+ checksum: 10c0/0131d10516b9945f05a57e13f4af49a6814de5573a494824e103131a3bbe4cc470b1aefe8e17e51f9a478a22cd116084be1ee5725cedb66ec4c3f9091202dc4b
+ languageName: node
+ linkType: hard
+
+"debug@npm:4, debug@npm:^4.0.0, debug@npm:^4.1.0, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4":
+ version: 4.3.5
+ resolution: "debug@npm:4.3.5"
+ dependencies:
+ ms: "npm:2.1.2"
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+ checksum: 10c0/082c375a2bdc4f4469c99f325ff458adad62a3fc2c482d59923c260cb08152f34e2659f72b3767db8bb2f21ca81a60a42d1019605a412132d7b9f59363a005cc
+ languageName: node
+ linkType: hard
+
+"debug@npm:^3.2.7":
+ version: 3.2.7
+ resolution: "debug@npm:3.2.7"
+ dependencies:
+ ms: "npm:^2.1.1"
+ checksum: 10c0/37d96ae42cbc71c14844d2ae3ba55adf462ec89fd3a999459dec3833944cd999af6007ff29c780f1c61153bcaaf2c842d1e4ce1ec621e4fc4923244942e4a02a
+ languageName: node
+ linkType: hard
+
+"decimal.js@npm:^10.2.1":
+ version: 10.4.3
+ resolution: "decimal.js@npm:10.4.3"
+ checksum: 10c0/6d60206689ff0911f0ce968d40f163304a6c1bc739927758e6efc7921cfa630130388966f16bf6ef6b838cb33679fbe8e7a78a2f3c478afce841fd55ac8fb8ee
+ languageName: node
+ linkType: hard
+
+"decode-named-character-reference@npm:^1.0.0":
+ version: 1.0.2
+ resolution: "decode-named-character-reference@npm:1.0.2"
+ dependencies:
+ character-entities: "npm:^2.0.0"
+ checksum: 10c0/66a9fc5d9b5385a2b3675c69ba0d8e893393d64057f7dbbb585265bb4fc05ec513d76943b8e5aac7d8016d20eea4499322cbf4cd6d54b466976b78f3a7587a4c
+ languageName: node
+ linkType: hard
+
+"decode-uri-component@npm:^0.2.2":
+ version: 0.2.2
+ resolution: "decode-uri-component@npm:0.2.2"
+ checksum: 10c0/1f4fa54eb740414a816b3f6c24818fbfcabd74ac478391e9f4e2282c994127db02010ce804f3d08e38255493cfe68608b3f5c8e09fd6efc4ae46c807691f7a31
+ languageName: node
+ linkType: hard
+
+"dedent@npm:^1.5.3":
+ version: 1.5.3
+ resolution: "dedent@npm:1.5.3"
+ peerDependencies:
+ babel-plugin-macros: ^3.1.0
+ peerDependenciesMeta:
+ babel-plugin-macros:
+ optional: true
+ checksum: 10c0/d94bde6e6f780be4da4fd760288fcf755ec368872f4ac5218197200d86430aeb8d90a003a840bff1c20221188e3f23adced0119cb811c6873c70d0ac66d12832
+ languageName: node
+ linkType: hard
+
+"deep-is@npm:^0.1.3":
+ version: 0.1.4
+ resolution: "deep-is@npm:0.1.4"
+ checksum: 10c0/7f0ee496e0dff14a573dc6127f14c95061b448b87b995fc96c017ce0a1e66af1675e73f1d6064407975bc4ea6ab679497a29fff7b5b9c4e99cb10797c1ad0b4c
+ languageName: node
+ linkType: hard
+
+"deep-object-diff@npm:^1.1.9":
+ version: 1.1.9
+ resolution: "deep-object-diff@npm:1.1.9"
+ checksum: 10c0/12cfd1b000d16c9192fc649923c972f8aac2ddca4f71a292f8f2c1e2d5cf3c9c16c85e73ab3e7d8a89a5ec6918d6460677d0b05bd160f7bd50bb4816d496dc24
+ languageName: node
+ linkType: hard
+
+"deepmerge@npm:^4.2.2":
+ version: 4.3.1
+ resolution: "deepmerge@npm:4.3.1"
+ checksum: 10c0/e53481aaf1aa2c4082b5342be6b6d8ad9dfe387bc92ce197a66dea08bd4265904a087e75e464f14d1347cf2ac8afe1e4c16b266e0561cc5df29382d3c5f80044
+ languageName: node
+ linkType: hard
+
+"define-data-property@npm:^1.0.1, define-data-property@npm:^1.1.4":
+ version: 1.1.4
+ resolution: "define-data-property@npm:1.1.4"
+ dependencies:
+ es-define-property: "npm:^1.0.0"
+ es-errors: "npm:^1.3.0"
+ gopd: "npm:^1.0.1"
+ checksum: 10c0/dea0606d1483eb9db8d930d4eac62ca0fa16738b0b3e07046cddfacf7d8c868bbe13fa0cb263eb91c7d0d527960dc3f2f2471a69ed7816210307f6744fe62e37
+ languageName: node
+ linkType: hard
+
+"define-properties@npm:^1.1.3, define-properties@npm:^1.2.0, define-properties@npm:^1.2.1":
+ version: 1.2.1
+ resolution: "define-properties@npm:1.2.1"
+ dependencies:
+ define-data-property: "npm:^1.0.1"
+ has-property-descriptors: "npm:^1.0.0"
+ object-keys: "npm:^1.1.1"
+ checksum: 10c0/88a152319ffe1396ccc6ded510a3896e77efac7a1bfbaa174a7b00414a1747377e0bb525d303794a47cf30e805c2ec84e575758512c6e44a993076d29fd4e6c3
+ languageName: node
+ linkType: hard
+
+"defu@npm:^6.1.3, defu@npm:^6.1.4":
+ version: 6.1.4
+ resolution: "defu@npm:6.1.4"
+ checksum: 10c0/2d6cc366262dc0cb8096e429368e44052fdf43ed48e53ad84cc7c9407f890301aa5fcb80d0995abaaf842b3949f154d060be4160f7a46cb2bc2f7726c81526f5
+ languageName: node
+ linkType: hard
+
+"delay@npm:^4.4.0":
+ version: 4.4.1
+ resolution: "delay@npm:4.4.1"
+ checksum: 10c0/9b3aa8c4cc88ee5e18a92c2e53f3912ed2930d4279c7d16d913813de6c2214eaf8bc5704b7357c72bf0f2f28f4507f9ab37599c3f84dc7d99ac178ae91dea3f9
+ languageName: node
+ linkType: hard
+
+"delayed-stream@npm:~1.0.0":
+ version: 1.0.0
+ resolution: "delayed-stream@npm:1.0.0"
+ checksum: 10c0/d758899da03392e6712f042bec80aa293bbe9e9ff1b2634baae6a360113e708b91326594c8a486d475c69d6259afb7efacdc3537bfcda1c6c648e390ce601b19
+ languageName: node
+ linkType: hard
+
+"dequal@npm:^2.0.0, dequal@npm:^2.0.3":
+ version: 2.0.3
+ resolution: "dequal@npm:2.0.3"
+ checksum: 10c0/f98860cdf58b64991ae10205137c0e97d384c3a4edc7f807603887b7c4b850af1224a33d88012009f150861cbee4fa2d322c4cc04b9313bee312e47f6ecaa888
+ languageName: node
+ linkType: hard
+
+"des.js@npm:^1.0.0":
+ version: 1.1.0
+ resolution: "des.js@npm:1.1.0"
+ dependencies:
+ inherits: "npm:^2.0.1"
+ minimalistic-assert: "npm:^1.0.0"
+ checksum: 10c0/671354943ad67493e49eb4c555480ab153edd7cee3a51c658082fcde539d2690ed2a4a0b5d1f401f9cde822edf3939a6afb2585f32c091f2d3a1b1665cd45236
+ languageName: node
+ linkType: hard
+
+"destr@npm:^2.0.3":
+ version: 2.0.3
+ resolution: "destr@npm:2.0.3"
+ checksum: 10c0/10e7eff5149e2839a4dd29a1e9617c3c675a3b53608d78d74fc6f4abc31daa977e6de08e0eea78965527a0d5a35467ae2f9624e0a4646d54aa1162caa094473e
+ languageName: node
+ linkType: hard
+
+"detect-browser@npm:5.3.0, detect-browser@npm:^5.2.0":
+ version: 5.3.0
+ resolution: "detect-browser@npm:5.3.0"
+ checksum: 10c0/88d49b70ce3836e7971345b2ebdd486ad0d457d1e4f066540d0c12f9210c8f731ccbed955fcc9af2f048f5d4629702a8e46bedf5bcad42ad49a3a0927bfd5a76
+ languageName: node
+ linkType: hard
+
+"detect-libc@npm:^1.0.3":
+ version: 1.0.3
+ resolution: "detect-libc@npm:1.0.3"
+ bin:
+ detect-libc: ./bin/detect-libc.js
+ checksum: 10c0/4da0deae9f69e13bc37a0902d78bf7169480004b1fed3c19722d56cff578d16f0e11633b7fbf5fb6249181236c72e90024cbd68f0b9558ae06e281f47326d50d
+ languageName: node
+ linkType: hard
+
+"devlop@npm:^1.0.0, devlop@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "devlop@npm:1.1.0"
+ dependencies:
+ dequal: "npm:^2.0.0"
+ checksum: 10c0/e0928ab8f94c59417a2b8389c45c55ce0a02d9ac7fd74ef62d01ba48060129e1d594501b77de01f3eeafc7cb00773819b0df74d96251cf20b31c5b3071f45c0e
+ languageName: node
+ linkType: hard
+
+"diff-match-patch@npm:^1.0.5":
+ version: 1.0.5
+ resolution: "diff-match-patch@npm:1.0.5"
+ checksum: 10c0/142b6fad627b9ef309d11bd935e82b84c814165a02500f046e2773f4ea894d10ed3017ac20454900d79d4a0322079f5b713cf0986aaf15fce0ec4a2479980c86
+ languageName: node
+ linkType: hard
+
+"diffie-hellman@npm:^5.0.0":
+ version: 5.0.3
+ resolution: "diffie-hellman@npm:5.0.3"
+ dependencies:
+ bn.js: "npm:^4.1.0"
+ miller-rabin: "npm:^4.0.0"
+ randombytes: "npm:^2.0.0"
+ checksum: 10c0/ce53ccafa9ca544b7fc29b08a626e23a9b6562efc2a98559a0c97b4718937cebaa9b5d7d0a05032cc9c1435e9b3c1532b9e9bf2e0ede868525922807ad6e1ecf
+ languageName: node
+ linkType: hard
+
+"dir-glob@npm:^3.0.1":
+ version: 3.0.1
+ resolution: "dir-glob@npm:3.0.1"
+ dependencies:
+ path-type: "npm:^4.0.0"
+ checksum: 10c0/dcac00920a4d503e38bb64001acb19df4efc14536ada475725e12f52c16777afdee4db827f55f13a908ee7efc0cb282e2e3dbaeeb98c0993dd93d1802d3bf00c
+ languageName: node
+ linkType: hard
+
+"doctrine@npm:^2.1.0":
+ version: 2.1.0
+ resolution: "doctrine@npm:2.1.0"
+ dependencies:
+ esutils: "npm:^2.0.2"
+ checksum: 10c0/b6416aaff1f380bf56c3b552f31fdf7a69b45689368deca72d28636f41c16bb28ec3ebc40ace97db4c1afc0ceeb8120e8492fe0046841c94c2933b2e30a7d5ac
+ languageName: node
+ linkType: hard
+
+"doctrine@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "doctrine@npm:3.0.0"
+ dependencies:
+ esutils: "npm:^2.0.2"
+ checksum: 10c0/c96bdccabe9d62ab6fea9399fdff04a66e6563c1d6fb3a3a063e8d53c3bb136ba63e84250bbf63d00086a769ad53aef92d2bd483f03f837fc97b71cbee6b2520
+ languageName: node
+ linkType: hard
+
+"duplexify@npm:^4.1.2":
+ version: 4.1.3
+ resolution: "duplexify@npm:4.1.3"
+ dependencies:
+ end-of-stream: "npm:^1.4.1"
+ inherits: "npm:^2.0.3"
+ readable-stream: "npm:^3.1.1"
+ stream-shift: "npm:^1.0.2"
+ checksum: 10c0/8a7621ae95c89f3937f982fe36d72ea997836a708471a75bb2a0eecde3330311b1e128a6dad510e0fd64ace0c56bff3484ed2e82af0e465600c82117eadfbda5
+ languageName: node
+ linkType: hard
+
+"eastasianwidth@npm:^0.2.0":
+ version: 0.2.0
+ resolution: "eastasianwidth@npm:0.2.0"
+ checksum: 10c0/26f364ebcdb6395f95124fda411f63137a4bfb5d3a06453f7f23dfe52502905bd84e0488172e0f9ec295fdc45f05c23d5d91baf16bd26f0fe9acd777a188dc39
+ languageName: node
+ linkType: hard
+
+"elliptic@npm:6.5.4":
+ version: 6.5.4
+ resolution: "elliptic@npm:6.5.4"
+ dependencies:
+ bn.js: "npm:^4.11.9"
+ brorand: "npm:^1.1.0"
+ hash.js: "npm:^1.0.0"
+ hmac-drbg: "npm:^1.0.1"
+ inherits: "npm:^2.0.4"
+ minimalistic-assert: "npm:^1.0.1"
+ minimalistic-crypto-utils: "npm:^1.0.1"
+ checksum: 10c0/5f361270292c3b27cf0843e84526d11dec31652f03c2763c6c2b8178548175ff5eba95341dd62baff92b2265d1af076526915d8af6cc9cb7559c44a62f8ca6e2
+ languageName: node
+ linkType: hard
+
+"elliptic@npm:^6.4.0, elliptic@npm:^6.5.3, elliptic@npm:^6.5.4, elliptic@npm:^6.5.5":
+ version: 6.5.5
+ resolution: "elliptic@npm:6.5.5"
+ dependencies:
+ bn.js: "npm:^4.11.9"
+ brorand: "npm:^1.1.0"
+ hash.js: "npm:^1.0.0"
+ hmac-drbg: "npm:^1.0.1"
+ inherits: "npm:^2.0.4"
+ minimalistic-assert: "npm:^1.0.1"
+ minimalistic-crypto-utils: "npm:^1.0.1"
+ checksum: 10c0/3e591e93783a1b66f234ebf5bd3a8a9a8e063a75073a35a671e03e3b25253b6e33ac121f7efe9b8808890fffb17b40596cc19d01e6e8d1fa13b9a56ff65597c8
+ languageName: node
+ linkType: hard
+
+"emoji-regex@npm:^8.0.0":
+ version: 8.0.0
+ resolution: "emoji-regex@npm:8.0.0"
+ checksum: 10c0/b6053ad39951c4cf338f9092d7bfba448cdfd46fe6a2a034700b149ac9ffbc137e361cbd3c442297f86bed2e5f7576c1b54cc0a6bf8ef5106cc62f496af35010
+ languageName: node
+ linkType: hard
+
+"emoji-regex@npm:^9.2.2":
+ version: 9.2.2
+ resolution: "emoji-regex@npm:9.2.2"
+ checksum: 10c0/af014e759a72064cf66e6e694a7fc6b0ed3d8db680427b021a89727689671cefe9d04151b2cad51dbaf85d5ba790d061cd167f1cf32eb7b281f6368b3c181639
+ languageName: node
+ linkType: hard
+
+"encoding@npm:^0.1.13":
+ version: 0.1.13
+ resolution: "encoding@npm:0.1.13"
+ dependencies:
+ iconv-lite: "npm:^0.6.2"
+ checksum: 10c0/36d938712ff00fe1f4bac88b43bcffb5930c1efa57bbcdca9d67e1d9d6c57cfb1200fb01efe0f3109b2ce99b231f90779532814a81370a1bd3274a0f58585039
+ languageName: node
+ linkType: hard
+
+"end-of-stream@npm:^1.1.0, end-of-stream@npm:^1.4.1, end-of-stream@npm:^1.4.4":
+ version: 1.4.4
+ resolution: "end-of-stream@npm:1.4.4"
+ dependencies:
+ once: "npm:^1.4.0"
+ checksum: 10c0/870b423afb2d54bb8d243c63e07c170409d41e20b47eeef0727547aea5740bd6717aca45597a9f2745525667a6b804c1e7bede41f856818faee5806dd9ff3975
+ languageName: node
+ linkType: hard
+
+"enhanced-resolve@npm:^5.12.0":
+ version: 5.17.0
+ resolution: "enhanced-resolve@npm:5.17.0"
+ dependencies:
+ graceful-fs: "npm:^4.2.4"
+ tapable: "npm:^2.2.0"
+ checksum: 10c0/90065e58e4fd08e77ba47f827eaa17d60c335e01e4859f6e644bb3b8d0e32b203d33894aee92adfa5121fa262f912b48bdf0d0475e98b4a0a1132eea1169ad37
+ languageName: node
+ linkType: hard
+
+"env-paths@npm:^2.2.0":
+ version: 2.2.1
+ resolution: "env-paths@npm:2.2.1"
+ checksum: 10c0/285325677bf00e30845e330eec32894f5105529db97496ee3f598478e50f008c5352a41a30e5e72ec9de8a542b5a570b85699cd63bd2bc646dbcb9f311d83bc4
+ languageName: node
+ linkType: hard
+
+"err-code@npm:^2.0.2":
+ version: 2.0.3
+ resolution: "err-code@npm:2.0.3"
+ checksum: 10c0/b642f7b4dd4a376e954947550a3065a9ece6733ab8e51ad80db727aaae0817c2e99b02a97a3d6cecc648a97848305e728289cf312d09af395403a90c9d4d8a66
+ languageName: node
+ linkType: hard
+
+"es-abstract@npm:^1.22.1, es-abstract@npm:^1.22.3, es-abstract@npm:^1.23.0, es-abstract@npm:^1.23.1, es-abstract@npm:^1.23.2, es-abstract@npm:^1.23.3":
+ version: 1.23.3
+ resolution: "es-abstract@npm:1.23.3"
+ dependencies:
+ array-buffer-byte-length: "npm:^1.0.1"
+ arraybuffer.prototype.slice: "npm:^1.0.3"
+ available-typed-arrays: "npm:^1.0.7"
+ call-bind: "npm:^1.0.7"
+ data-view-buffer: "npm:^1.0.1"
+ data-view-byte-length: "npm:^1.0.1"
+ data-view-byte-offset: "npm:^1.0.0"
+ es-define-property: "npm:^1.0.0"
+ es-errors: "npm:^1.3.0"
+ es-object-atoms: "npm:^1.0.0"
+ es-set-tostringtag: "npm:^2.0.3"
+ es-to-primitive: "npm:^1.2.1"
+ function.prototype.name: "npm:^1.1.6"
+ get-intrinsic: "npm:^1.2.4"
+ get-symbol-description: "npm:^1.0.2"
+ globalthis: "npm:^1.0.3"
+ gopd: "npm:^1.0.1"
+ has-property-descriptors: "npm:^1.0.2"
+ has-proto: "npm:^1.0.3"
+ has-symbols: "npm:^1.0.3"
+ hasown: "npm:^2.0.2"
+ internal-slot: "npm:^1.0.7"
+ is-array-buffer: "npm:^3.0.4"
+ is-callable: "npm:^1.2.7"
+ is-data-view: "npm:^1.0.1"
+ is-negative-zero: "npm:^2.0.3"
+ is-regex: "npm:^1.1.4"
+ is-shared-array-buffer: "npm:^1.0.3"
+ is-string: "npm:^1.0.7"
+ is-typed-array: "npm:^1.1.13"
+ is-weakref: "npm:^1.0.2"
+ object-inspect: "npm:^1.13.1"
+ object-keys: "npm:^1.1.1"
+ object.assign: "npm:^4.1.5"
+ regexp.prototype.flags: "npm:^1.5.2"
+ safe-array-concat: "npm:^1.1.2"
+ safe-regex-test: "npm:^1.0.3"
+ string.prototype.trim: "npm:^1.2.9"
+ string.prototype.trimend: "npm:^1.0.8"
+ string.prototype.trimstart: "npm:^1.0.8"
+ typed-array-buffer: "npm:^1.0.2"
+ typed-array-byte-length: "npm:^1.0.1"
+ typed-array-byte-offset: "npm:^1.0.2"
+ typed-array-length: "npm:^1.0.6"
+ unbox-primitive: "npm:^1.0.2"
+ which-typed-array: "npm:^1.1.15"
+ checksum: 10c0/d27e9afafb225c6924bee9971a7f25f20c314f2d6cb93a63cada4ac11dcf42040896a6c22e5fb8f2a10767055ed4ddf400be3b1eb12297d281726de470b75666
+ languageName: node
+ linkType: hard
+
+"es-define-property@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "es-define-property@npm:1.0.0"
+ dependencies:
+ get-intrinsic: "npm:^1.2.4"
+ checksum: 10c0/6bf3191feb7ea2ebda48b577f69bdfac7a2b3c9bcf97307f55fd6ef1bbca0b49f0c219a935aca506c993d8c5d8bddd937766cb760cd5e5a1071351f2df9f9aa4
+ languageName: node
+ linkType: hard
+
+"es-errors@npm:^1.2.1, es-errors@npm:^1.3.0":
+ version: 1.3.0
+ resolution: "es-errors@npm:1.3.0"
+ checksum: 10c0/0a61325670072f98d8ae3b914edab3559b6caa980f08054a3b872052640d91da01d38df55df797fcc916389d77fc92b8d5906cf028f4db46d7e3003abecbca85
+ languageName: node
+ linkType: hard
+
+"es-iterator-helpers@npm:^1.0.15, es-iterator-helpers@npm:^1.0.19":
+ version: 1.0.19
+ resolution: "es-iterator-helpers@npm:1.0.19"
+ dependencies:
+ call-bind: "npm:^1.0.7"
+ define-properties: "npm:^1.2.1"
+ es-abstract: "npm:^1.23.3"
+ es-errors: "npm:^1.3.0"
+ es-set-tostringtag: "npm:^2.0.3"
+ function-bind: "npm:^1.1.2"
+ get-intrinsic: "npm:^1.2.4"
+ globalthis: "npm:^1.0.3"
+ has-property-descriptors: "npm:^1.0.2"
+ has-proto: "npm:^1.0.3"
+ has-symbols: "npm:^1.0.3"
+ internal-slot: "npm:^1.0.7"
+ iterator.prototype: "npm:^1.1.2"
+ safe-array-concat: "npm:^1.1.2"
+ checksum: 10c0/ae8f0241e383b3d197383b9842c48def7fce0255fb6ed049311b686ce295595d9e389b466f6a1b7d4e7bb92d82f5e716d6fae55e20c1040249bf976743b038c5
+ languageName: node
+ linkType: hard
+
+"es-object-atoms@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "es-object-atoms@npm:1.0.0"
+ dependencies:
+ es-errors: "npm:^1.3.0"
+ checksum: 10c0/1fed3d102eb27ab8d983337bb7c8b159dd2a1e63ff833ec54eea1311c96d5b08223b433060ba240541ca8adba9eee6b0a60cdbf2f80634b784febc9cc8b687b4
+ languageName: node
+ linkType: hard
+
+"es-set-tostringtag@npm:^2.0.3":
+ version: 2.0.3
+ resolution: "es-set-tostringtag@npm:2.0.3"
+ dependencies:
+ get-intrinsic: "npm:^1.2.4"
+ has-tostringtag: "npm:^1.0.2"
+ hasown: "npm:^2.0.1"
+ checksum: 10c0/f22aff1585eb33569c326323f0b0d175844a1f11618b86e193b386f8be0ea9474cfbe46df39c45d959f7aa8f6c06985dc51dd6bce5401645ec5a74c4ceaa836a
+ languageName: node
+ linkType: hard
+
+"es-shim-unscopables@npm:^1.0.0, es-shim-unscopables@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "es-shim-unscopables@npm:1.0.2"
+ dependencies:
+ hasown: "npm:^2.0.0"
+ checksum: 10c0/f495af7b4b7601a4c0cfb893581c352636e5c08654d129590386a33a0432cf13a7bdc7b6493801cadd990d838e2839b9013d1de3b880440cb537825e834fe783
+ languageName: node
+ linkType: hard
+
+"es-to-primitive@npm:^1.2.1":
+ version: 1.2.1
+ resolution: "es-to-primitive@npm:1.2.1"
+ dependencies:
+ is-callable: "npm:^1.1.4"
+ is-date-object: "npm:^1.0.1"
+ is-symbol: "npm:^1.0.2"
+ checksum: 10c0/0886572b8dc075cb10e50c0af62a03d03a68e1e69c388bd4f10c0649ee41b1fbb24840a1b7e590b393011b5cdbe0144b776da316762653685432df37d6de60f1
+ languageName: node
+ linkType: hard
+
+"escape-string-regexp@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "escape-string-regexp@npm:4.0.0"
+ checksum: 10c0/9497d4dd307d845bd7f75180d8188bb17ea8c151c1edbf6b6717c100e104d629dc2dfb687686181b0f4b7d732c7dfdc4d5e7a8ff72de1b0ca283a75bbb3a9cd9
+ languageName: node
+ linkType: hard
+
+"eslint-config-next@npm:13.0.5":
+ version: 13.0.5
+ resolution: "eslint-config-next@npm:13.0.5"
+ dependencies:
+ "@next/eslint-plugin-next": "npm:13.0.5"
+ "@rushstack/eslint-patch": "npm:^1.1.3"
+ "@typescript-eslint/parser": "npm:^5.42.0"
+ eslint-import-resolver-node: "npm:^0.3.6"
+ eslint-import-resolver-typescript: "npm:^3.5.2"
+ eslint-plugin-import: "npm:^2.26.0"
+ eslint-plugin-jsx-a11y: "npm:^6.5.1"
+ eslint-plugin-react: "npm:^7.31.7"
+ eslint-plugin-react-hooks: "npm:^4.5.0"
+ peerDependencies:
+ eslint: ^7.23.0 || ^8.0.0
+ typescript: ">=3.3.1"
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ checksum: 10c0/3f04508d00bb7a68fb52baae3e96734170bf040422cb9f2516fce145f0ce72b63c4683b29a6958373fde0f47d3f1b3c8d36a9dab89be535e7642dc99c726e38f
+ languageName: node
+ linkType: hard
+
+"eslint-import-resolver-node@npm:^0.3.6, eslint-import-resolver-node@npm:^0.3.9":
+ version: 0.3.9
+ resolution: "eslint-import-resolver-node@npm:0.3.9"
+ dependencies:
+ debug: "npm:^3.2.7"
+ is-core-module: "npm:^2.13.0"
+ resolve: "npm:^1.22.4"
+ checksum: 10c0/0ea8a24a72328a51fd95aa8f660dcca74c1429806737cf10261ab90cfcaaf62fd1eff664b76a44270868e0a932711a81b250053942595bcd00a93b1c1575dd61
+ languageName: node
+ linkType: hard
+
+"eslint-import-resolver-typescript@npm:^3.5.2":
+ version: 3.6.1
+ resolution: "eslint-import-resolver-typescript@npm:3.6.1"
+ dependencies:
+ debug: "npm:^4.3.4"
+ enhanced-resolve: "npm:^5.12.0"
+ eslint-module-utils: "npm:^2.7.4"
+ fast-glob: "npm:^3.3.1"
+ get-tsconfig: "npm:^4.5.0"
+ is-core-module: "npm:^2.11.0"
+ is-glob: "npm:^4.0.3"
+ peerDependencies:
+ eslint: "*"
+ eslint-plugin-import: "*"
+ checksum: 10c0/cb1cb4389916fe78bf8c8567aae2f69243dbfe624bfe21078c56ad46fa1ebf0634fa7239dd3b2055ab5c27359e4b4c28b69b11fcb3a5df8a9e6f7add8e034d86
+ languageName: node
+ linkType: hard
+
+"eslint-module-utils@npm:^2.7.4, eslint-module-utils@npm:^2.8.0":
+ version: 2.8.1
+ resolution: "eslint-module-utils@npm:2.8.1"
+ dependencies:
+ debug: "npm:^3.2.7"
+ peerDependenciesMeta:
+ eslint:
+ optional: true
+ checksum: 10c0/1aeeb97bf4b688d28de136ee57c824480c37691b40fa825c711a4caf85954e94b99c06ac639d7f1f6c1d69223bd21bcb991155b3e589488e958d5b83dfd0f882
+ languageName: node
+ linkType: hard
+
+"eslint-plugin-import@npm:^2.26.0":
+ version: 2.29.1
+ resolution: "eslint-plugin-import@npm:2.29.1"
+ dependencies:
+ array-includes: "npm:^3.1.7"
+ array.prototype.findlastindex: "npm:^1.2.3"
+ array.prototype.flat: "npm:^1.3.2"
+ array.prototype.flatmap: "npm:^1.3.2"
+ debug: "npm:^3.2.7"
+ doctrine: "npm:^2.1.0"
+ eslint-import-resolver-node: "npm:^0.3.9"
+ eslint-module-utils: "npm:^2.8.0"
+ hasown: "npm:^2.0.0"
+ is-core-module: "npm:^2.13.1"
+ is-glob: "npm:^4.0.3"
+ minimatch: "npm:^3.1.2"
+ object.fromentries: "npm:^2.0.7"
+ object.groupby: "npm:^1.0.1"
+ object.values: "npm:^1.1.7"
+ semver: "npm:^6.3.1"
+ tsconfig-paths: "npm:^3.15.0"
+ peerDependencies:
+ eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8
+ checksum: 10c0/5f35dfbf4e8e67f741f396987de9504ad125c49f4144508a93282b4ea0127e052bde65ab6def1f31b6ace6d5d430be698333f75bdd7dca3bc14226c92a083196
+ languageName: node
+ linkType: hard
+
+"eslint-plugin-jsx-a11y@npm:^6.5.1":
+ version: 6.8.0
+ resolution: "eslint-plugin-jsx-a11y@npm:6.8.0"
+ dependencies:
+ "@babel/runtime": "npm:^7.23.2"
+ aria-query: "npm:^5.3.0"
+ array-includes: "npm:^3.1.7"
+ array.prototype.flatmap: "npm:^1.3.2"
+ ast-types-flow: "npm:^0.0.8"
+ axe-core: "npm:=4.7.0"
+ axobject-query: "npm:^3.2.1"
+ damerau-levenshtein: "npm:^1.0.8"
+ emoji-regex: "npm:^9.2.2"
+ es-iterator-helpers: "npm:^1.0.15"
+ hasown: "npm:^2.0.0"
+ jsx-ast-utils: "npm:^3.3.5"
+ language-tags: "npm:^1.0.9"
+ minimatch: "npm:^3.1.2"
+ object.entries: "npm:^1.1.7"
+ object.fromentries: "npm:^2.0.7"
+ peerDependencies:
+ eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8
+ checksum: 10c0/199b883e526e6f9d7c54cb3f094abc54f11a1ec816db5fb6cae3b938eb0e503acc10ccba91ca7451633a9d0b9abc0ea03601844a8aba5fe88c5e8897c9ac8f49
+ languageName: node
+ linkType: hard
+
+"eslint-plugin-react-hooks@npm:^4.5.0":
+ version: 4.6.2
+ resolution: "eslint-plugin-react-hooks@npm:4.6.2"
+ peerDependencies:
+ eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0
+ checksum: 10c0/4844e58c929bc05157fb70ba1e462e34f1f4abcbc8dd5bbe5b04513d33e2699effb8bca668297976ceea8e7ebee4e8fc29b9af9d131bcef52886feaa2308b2cc
+ languageName: node
+ linkType: hard
+
+"eslint-plugin-react@npm:^7.31.7":
+ version: 7.34.2
+ resolution: "eslint-plugin-react@npm:7.34.2"
+ dependencies:
+ array-includes: "npm:^3.1.8"
+ array.prototype.findlast: "npm:^1.2.5"
+ array.prototype.flatmap: "npm:^1.3.2"
+ array.prototype.toreversed: "npm:^1.1.2"
+ array.prototype.tosorted: "npm:^1.1.3"
+ doctrine: "npm:^2.1.0"
+ es-iterator-helpers: "npm:^1.0.19"
+ estraverse: "npm:^5.3.0"
+ jsx-ast-utils: "npm:^2.4.1 || ^3.0.0"
+ minimatch: "npm:^3.1.2"
+ object.entries: "npm:^1.1.8"
+ object.fromentries: "npm:^2.0.8"
+ object.hasown: "npm:^1.1.4"
+ object.values: "npm:^1.2.0"
+ prop-types: "npm:^15.8.1"
+ resolve: "npm:^2.0.0-next.5"
+ semver: "npm:^6.3.1"
+ string.prototype.matchall: "npm:^4.0.11"
+ peerDependencies:
+ eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8
+ checksum: 10c0/37dc04424da8626f20a071466e7238d53ed111c53e5e5398d813ac2cf76a2078f00d91f7833fe5b2f0fc98f2688a75b36e78e9ada9f1068705d23c7031094316
+ languageName: node
+ linkType: hard
+
+"eslint-scope@npm:^7.1.1":
+ version: 7.2.2
+ resolution: "eslint-scope@npm:7.2.2"
+ dependencies:
+ esrecurse: "npm:^4.3.0"
+ estraverse: "npm:^5.2.0"
+ checksum: 10c0/613c267aea34b5a6d6c00514e8545ef1f1433108097e857225fed40d397dd6b1809dffd11c2fde23b37ca53d7bf935fe04d2a18e6fc932b31837b6ad67e1c116
+ languageName: node
+ linkType: hard
+
+"eslint-utils@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "eslint-utils@npm:3.0.0"
+ dependencies:
+ eslint-visitor-keys: "npm:^2.0.0"
+ peerDependencies:
+ eslint: ">=5"
+ checksum: 10c0/45aa2b63667a8d9b474c98c28af908d0a592bed1a4568f3145cd49fb5d9510f545327ec95561625290313fe126e6d7bdfe3fdbdb6f432689fab6b9497d3bfb52
+ languageName: node
+ linkType: hard
+
+"eslint-visitor-keys@npm:^2.0.0":
+ version: 2.1.0
+ resolution: "eslint-visitor-keys@npm:2.1.0"
+ checksum: 10c0/9f0e3a2db751d84067d15977ac4b4472efd6b303e369e6ff241a99feac04da758f46d5add022c33d06b53596038dbae4b4aceb27c7e68b8dfc1055b35e495787
+ languageName: node
+ linkType: hard
+
+"eslint-visitor-keys@npm:^3.3.0, eslint-visitor-keys@npm:^3.4.1":
+ version: 3.4.3
+ resolution: "eslint-visitor-keys@npm:3.4.3"
+ checksum: 10c0/92708e882c0a5ffd88c23c0b404ac1628cf20104a108c745f240a13c332a11aac54f49a22d5762efbffc18ecbc9a580d1b7ad034bf5f3cc3307e5cbff2ec9820
+ languageName: node
+ linkType: hard
+
+"eslint@npm:8.28.0":
+ version: 8.28.0
+ resolution: "eslint@npm:8.28.0"
+ dependencies:
+ "@eslint/eslintrc": "npm:^1.3.3"
+ "@humanwhocodes/config-array": "npm:^0.11.6"
+ "@humanwhocodes/module-importer": "npm:^1.0.1"
+ "@nodelib/fs.walk": "npm:^1.2.8"
+ ajv: "npm:^6.10.0"
+ chalk: "npm:^4.0.0"
+ cross-spawn: "npm:^7.0.2"
+ debug: "npm:^4.3.2"
+ doctrine: "npm:^3.0.0"
+ escape-string-regexp: "npm:^4.0.0"
+ eslint-scope: "npm:^7.1.1"
+ eslint-utils: "npm:^3.0.0"
+ eslint-visitor-keys: "npm:^3.3.0"
+ espree: "npm:^9.4.0"
+ esquery: "npm:^1.4.0"
+ esutils: "npm:^2.0.2"
+ fast-deep-equal: "npm:^3.1.3"
+ file-entry-cache: "npm:^6.0.1"
+ find-up: "npm:^5.0.0"
+ glob-parent: "npm:^6.0.2"
+ globals: "npm:^13.15.0"
+ grapheme-splitter: "npm:^1.0.4"
+ ignore: "npm:^5.2.0"
+ import-fresh: "npm:^3.0.0"
+ imurmurhash: "npm:^0.1.4"
+ is-glob: "npm:^4.0.0"
+ is-path-inside: "npm:^3.0.3"
+ js-sdsl: "npm:^4.1.4"
+ js-yaml: "npm:^4.1.0"
+ json-stable-stringify-without-jsonify: "npm:^1.0.1"
+ levn: "npm:^0.4.1"
+ lodash.merge: "npm:^4.6.2"
+ minimatch: "npm:^3.1.2"
+ natural-compare: "npm:^1.4.0"
+ optionator: "npm:^0.9.1"
+ regexpp: "npm:^3.2.0"
+ strip-ansi: "npm:^6.0.1"
+ strip-json-comments: "npm:^3.1.0"
+ text-table: "npm:^0.2.0"
+ bin:
+ eslint: bin/eslint.js
+ checksum: 10c0/5378ee96346cf0c59e9a1de002f7bd19c2c0642ad8010f18254936563fa3cfd1d34fd420de5a31866aab1fa586875d39e4cef6b9367c2a361f2106723f900db2
+ languageName: node
+ linkType: hard
+
+"espree@npm:^9.4.0":
+ version: 9.6.1
+ resolution: "espree@npm:9.6.1"
+ dependencies:
+ acorn: "npm:^8.9.0"
+ acorn-jsx: "npm:^5.3.2"
+ eslint-visitor-keys: "npm:^3.4.1"
+ checksum: 10c0/1a2e9b4699b715347f62330bcc76aee224390c28bb02b31a3752e9d07549c473f5f986720483c6469cf3cfb3c9d05df612ffc69eb1ee94b54b739e67de9bb460
+ languageName: node
+ linkType: hard
+
+"esquery@npm:^1.4.0":
+ version: 1.5.0
+ resolution: "esquery@npm:1.5.0"
+ dependencies:
+ estraverse: "npm:^5.1.0"
+ checksum: 10c0/a084bd049d954cc88ac69df30534043fb2aee5555b56246493f42f27d1e168f00d9e5d4192e46f10290d312dc30dc7d58994d61a609c579c1219d636996f9213
+ languageName: node
+ linkType: hard
+
+"esrecurse@npm:^4.3.0":
+ version: 4.3.0
+ resolution: "esrecurse@npm:4.3.0"
+ dependencies:
+ estraverse: "npm:^5.2.0"
+ checksum: 10c0/81a37116d1408ded88ada45b9fb16dbd26fba3aadc369ce50fcaf82a0bac12772ebd7b24cd7b91fc66786bf2c1ac7b5f196bc990a473efff972f5cb338877cf5
+ languageName: node
+ linkType: hard
+
+"estraverse@npm:^5.1.0, estraverse@npm:^5.2.0, estraverse@npm:^5.3.0":
+ version: 5.3.0
+ resolution: "estraverse@npm:5.3.0"
+ checksum: 10c0/1ff9447b96263dec95d6d67431c5e0771eb9776427421260a3e2f0fdd5d6bd4f8e37a7338f5ad2880c9f143450c9b1e4fc2069060724570a49cf9cf0312bd107
+ languageName: node
+ linkType: hard
+
+"estree-util-is-identifier-name@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "estree-util-is-identifier-name@npm:3.0.0"
+ checksum: 10c0/d1881c6ed14bd588ebd508fc90bf2a541811dbb9ca04dec2f39d27dcaa635f85b5ed9bbbe7fc6fb1ddfca68744a5f7c70456b4b7108b6c4c52780631cc787c5b
+ languageName: node
+ linkType: hard
+
+"esutils@npm:^2.0.2":
+ version: 2.0.3
+ resolution: "esutils@npm:2.0.3"
+ checksum: 10c0/9a2fe69a41bfdade834ba7c42de4723c97ec776e40656919c62cbd13607c45e127a003f05f724a1ea55e5029a4cf2de444b13009f2af71271e42d93a637137c7
+ languageName: node
+ linkType: hard
+
+"eth-rpc-errors@npm:^4.0.2":
+ version: 4.0.3
+ resolution: "eth-rpc-errors@npm:4.0.3"
+ dependencies:
+ fast-safe-stringify: "npm:^2.0.6"
+ checksum: 10c0/332cbc5a957b62bb66ea01da2a467da65026df47e6516a286a969cad74d6002f2b481335510c93f12ca29c46ebc8354e39e2240769d86184f9b4c30832cf5466
+ languageName: node
+ linkType: hard
+
+"ethers@npm:^5.7.2":
+ version: 5.7.2
+ resolution: "ethers@npm:5.7.2"
+ dependencies:
+ "@ethersproject/abi": "npm:5.7.0"
+ "@ethersproject/abstract-provider": "npm:5.7.0"
+ "@ethersproject/abstract-signer": "npm:5.7.0"
+ "@ethersproject/address": "npm:5.7.0"
+ "@ethersproject/base64": "npm:5.7.0"
+ "@ethersproject/basex": "npm:5.7.0"
+ "@ethersproject/bignumber": "npm:5.7.0"
+ "@ethersproject/bytes": "npm:5.7.0"
+ "@ethersproject/constants": "npm:5.7.0"
+ "@ethersproject/contracts": "npm:5.7.0"
+ "@ethersproject/hash": "npm:5.7.0"
+ "@ethersproject/hdnode": "npm:5.7.0"
+ "@ethersproject/json-wallets": "npm:5.7.0"
+ "@ethersproject/keccak256": "npm:5.7.0"
+ "@ethersproject/logger": "npm:5.7.0"
+ "@ethersproject/networks": "npm:5.7.1"
+ "@ethersproject/pbkdf2": "npm:5.7.0"
+ "@ethersproject/properties": "npm:5.7.0"
+ "@ethersproject/providers": "npm:5.7.2"
+ "@ethersproject/random": "npm:5.7.0"
+ "@ethersproject/rlp": "npm:5.7.0"
+ "@ethersproject/sha2": "npm:5.7.0"
+ "@ethersproject/signing-key": "npm:5.7.0"
+ "@ethersproject/solidity": "npm:5.7.0"
+ "@ethersproject/strings": "npm:5.7.0"
+ "@ethersproject/transactions": "npm:5.7.0"
+ "@ethersproject/units": "npm:5.7.0"
+ "@ethersproject/wallet": "npm:5.7.0"
+ "@ethersproject/web": "npm:5.7.1"
+ "@ethersproject/wordlists": "npm:5.7.0"
+ checksum: 10c0/90629a4cdb88cde7a7694f5610a83eb00d7fbbaea687446b15631397988f591c554dd68dfa752ddf00aabefd6285e5b298be44187e960f5e4962684e10b39962
+ languageName: node
+ linkType: hard
+
+"events@npm:3.3.0, events@npm:^3.3.0":
+ version: 3.3.0
+ resolution: "events@npm:3.3.0"
+ checksum: 10c0/d6b6f2adbccbcda74ddbab52ed07db727ef52e31a61ed26db9feb7dc62af7fc8e060defa65e5f8af9449b86b52cc1a1f6a79f2eafcf4e62add2b7a1fa4a432f6
+ languageName: node
+ linkType: hard
+
+"evp_bytestokey@npm:^1.0.0, evp_bytestokey@npm:^1.0.3":
+ version: 1.0.3
+ resolution: "evp_bytestokey@npm:1.0.3"
+ dependencies:
+ md5.js: "npm:^1.3.4"
+ node-gyp: "npm:latest"
+ safe-buffer: "npm:^5.1.1"
+ checksum: 10c0/77fbe2d94a902a80e9b8f5a73dcd695d9c14899c5e82967a61b1fc6cbbb28c46552d9b127cff47c45fcf684748bdbcfa0a50410349109de87ceb4b199ef6ee99
+ languageName: node
+ linkType: hard
+
+"execa@npm:^8.0.1":
+ version: 8.0.1
+ resolution: "execa@npm:8.0.1"
+ dependencies:
+ cross-spawn: "npm:^7.0.3"
+ get-stream: "npm:^8.0.1"
+ human-signals: "npm:^5.0.0"
+ is-stream: "npm:^3.0.0"
+ merge-stream: "npm:^2.0.0"
+ npm-run-path: "npm:^5.1.0"
+ onetime: "npm:^6.0.0"
+ signal-exit: "npm:^4.1.0"
+ strip-final-newline: "npm:^3.0.0"
+ checksum: 10c0/2c52d8775f5bf103ce8eec9c7ab3059909ba350a5164744e9947ed14a53f51687c040a250bda833f906d1283aa8803975b84e6c8f7a7c42f99dc8ef80250d1af
+ languageName: node
+ linkType: hard
+
+"exponential-backoff@npm:^3.1.1":
+ version: 3.1.1
+ resolution: "exponential-backoff@npm:3.1.1"
+ checksum: 10c0/160456d2d647e6019640bd07111634d8c353038d9fa40176afb7cd49b0548bdae83b56d05e907c2cce2300b81cae35d800ef92fefb9d0208e190fa3b7d6bb579
+ languageName: node
+ linkType: hard
+
+"extend@npm:^3.0.0":
+ version: 3.0.2
+ resolution: "extend@npm:3.0.2"
+ checksum: 10c0/73bf6e27406e80aa3e85b0d1c4fd987261e628064e170ca781125c0b635a3dabad5e05adbf07595ea0cf1e6c5396cacb214af933da7cbaf24fe75ff14818e8f9
+ languageName: node
+ linkType: hard
+
+"extension-port-stream@npm:^2.1.1":
+ version: 2.1.1
+ resolution: "extension-port-stream@npm:2.1.1"
+ dependencies:
+ webextension-polyfill: "npm:>=0.10.0 <1.0"
+ checksum: 10c0/e3fb183669fee8adbb0fecdd0aa604feb976dc9d54c42da6c838c97c10be7f7f33c5341f198401e21216e1dd536fadd7b3f4bdf8e1bb38bbe3f135ecc3f6fda4
+ languageName: node
+ linkType: hard
+
+"fast-deep-equal@npm:^3.1.1, fast-deep-equal@npm:^3.1.3":
+ version: 3.1.3
+ resolution: "fast-deep-equal@npm:3.1.3"
+ checksum: 10c0/40dedc862eb8992c54579c66d914635afbec43350afbbe991235fdcb4e3a8d5af1b23ae7e79bef7d4882d0ecee06c3197488026998fb19f72dc95acff1d1b1d0
+ languageName: node
+ linkType: hard
+
+"fast-glob@npm:^3.2.9, fast-glob@npm:^3.3.1":
+ version: 3.3.2
+ resolution: "fast-glob@npm:3.3.2"
+ dependencies:
+ "@nodelib/fs.stat": "npm:^2.0.2"
+ "@nodelib/fs.walk": "npm:^1.2.3"
+ glob-parent: "npm:^5.1.2"
+ merge2: "npm:^1.3.0"
+ micromatch: "npm:^4.0.4"
+ checksum: 10c0/42baad7b9cd40b63e42039132bde27ca2cb3a4950d0a0f9abe4639ea1aa9d3e3b40f98b1fe31cbc0cc17b664c9ea7447d911a152fa34ec5b72977b125a6fc845
+ languageName: node
+ linkType: hard
+
+"fast-json-stable-stringify@npm:^2.0.0":
+ version: 2.1.0
+ resolution: "fast-json-stable-stringify@npm:2.1.0"
+ checksum: 10c0/7f081eb0b8a64e0057b3bb03f974b3ef00135fbf36c1c710895cd9300f13c94ba809bb3a81cf4e1b03f6e5285610a61abbd7602d0652de423144dfee5a389c9b
+ languageName: node
+ linkType: hard
+
+"fast-levenshtein@npm:^2.0.6":
+ version: 2.0.6
+ resolution: "fast-levenshtein@npm:2.0.6"
+ checksum: 10c0/111972b37338bcb88f7d9e2c5907862c280ebf4234433b95bc611e518d192ccb2d38119c4ac86e26b668d75f7f3894f4ff5c4982899afced7ca78633b08287c4
+ languageName: node
+ linkType: hard
+
+"fast-redact@npm:^3.0.0":
+ version: 3.5.0
+ resolution: "fast-redact@npm:3.5.0"
+ checksum: 10c0/7e2ce4aad6e7535e0775bf12bd3e4f2e53d8051d8b630e0fa9e67f68cb0b0e6070d2f7a94b1d0522ef07e32f7c7cda5755e2b677a6538f1e9070ca053c42343a
+ languageName: node
+ linkType: hard
+
+"fast-safe-stringify@npm:^2.0.6":
+ version: 2.1.1
+ resolution: "fast-safe-stringify@npm:2.1.1"
+ checksum: 10c0/d90ec1c963394919828872f21edaa3ad6f1dddd288d2bd4e977027afff09f5db40f94e39536d4646f7e01761d704d72d51dce5af1b93717f3489ef808f5f4e4d
+ languageName: node
+ linkType: hard
+
+"fastq@npm:^1.6.0":
+ version: 1.17.1
+ resolution: "fastq@npm:1.17.1"
+ dependencies:
+ reusify: "npm:^1.0.4"
+ checksum: 10c0/1095f16cea45fb3beff558bb3afa74ca7a9250f5a670b65db7ed585f92b4b48381445cd328b3d87323da81e43232b5d5978a8201bde84e0cd514310f1ea6da34
+ languageName: node
+ linkType: hard
+
+"file-entry-cache@npm:^6.0.1":
+ version: 6.0.1
+ resolution: "file-entry-cache@npm:6.0.1"
+ dependencies:
+ flat-cache: "npm:^3.0.4"
+ checksum: 10c0/58473e8a82794d01b38e5e435f6feaf648e3f36fdb3a56e98f417f4efae71ad1c0d4ebd8a9a7c50c3ad085820a93fc7494ad721e0e4ebc1da3573f4e1c3c7cdd
+ languageName: node
+ linkType: hard
+
+"file-selector@npm:^0.6.0":
+ version: 0.6.0
+ resolution: "file-selector@npm:0.6.0"
+ dependencies:
+ tslib: "npm:^2.4.0"
+ checksum: 10c0/477ca1b56274db9fee1a8a623c4bfef580389726a5fef843af8c1f2f17f70ec2d1e41b29115777c92e120a15f1cca734c6ef36bb48bfa2ee027c68da16cd0d28
+ languageName: node
+ linkType: hard
+
+"file-uri-to-path@npm:1.0.0":
+ version: 1.0.0
+ resolution: "file-uri-to-path@npm:1.0.0"
+ checksum: 10c0/3b545e3a341d322d368e880e1c204ef55f1d45cdea65f7efc6c6ce9e0c4d22d802d5629320eb779d006fe59624ac17b0e848d83cc5af7cd101f206cb704f5519
+ languageName: node
+ linkType: hard
+
+"fill-range@npm:^7.0.1":
+ version: 7.0.1
+ resolution: "fill-range@npm:7.0.1"
+ dependencies:
+ to-regex-range: "npm:^5.0.1"
+ checksum: 10c0/7cdad7d426ffbaadf45aeb5d15ec675bbd77f7597ad5399e3d2766987ed20bda24d5fac64b3ee79d93276f5865608bb22344a26b9b1ae6c4d00bd94bf611623f
+ languageName: node
+ linkType: hard
+
+"fill-range@npm:^7.1.1":
+ version: 7.1.1
+ resolution: "fill-range@npm:7.1.1"
+ dependencies:
+ to-regex-range: "npm:^5.0.1"
+ checksum: 10c0/b75b691bbe065472f38824f694c2f7449d7f5004aa950426a2c28f0306c60db9b880c0b0e4ed819997ffb882d1da02cfcfc819bddc94d71627f5269682edf018
+ languageName: node
+ linkType: hard
+
+"filter-obj@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "filter-obj@npm:1.1.0"
+ checksum: 10c0/071e0886b2b50238ca5026c5bbf58c26a7c1a1f720773b8c7813d16ba93d0200de977af14ac143c5ac18f666b2cfc83073f3a5fe6a4e996c49e0863d5500fccf
+ languageName: node
+ linkType: hard
+
+"find-up@npm:^5.0.0":
+ version: 5.0.0
+ resolution: "find-up@npm:5.0.0"
+ dependencies:
+ locate-path: "npm:^6.0.0"
+ path-exists: "npm:^4.0.0"
+ checksum: 10c0/062c5a83a9c02f53cdd6d175a37ecf8f87ea5bbff1fdfb828f04bfa021441bc7583e8ebc0872a4c1baab96221fb8a8a275a19809fb93fbc40bd69ec35634069a
+ languageName: node
+ linkType: hard
+
+"flat-cache@npm:^3.0.4":
+ version: 3.2.0
+ resolution: "flat-cache@npm:3.2.0"
+ dependencies:
+ flatted: "npm:^3.2.9"
+ keyv: "npm:^4.5.3"
+ rimraf: "npm:^3.0.2"
+ checksum: 10c0/b76f611bd5f5d68f7ae632e3ae503e678d205cf97a17c6ab5b12f6ca61188b5f1f7464503efae6dc18683ed8f0b41460beb48ac4b9ac63fe6201296a91ba2f75
+ languageName: node
+ linkType: hard
+
+"flatted@npm:^3.2.9":
+ version: 3.3.1
+ resolution: "flatted@npm:3.3.1"
+ checksum: 10c0/324166b125ee07d4ca9bcf3a5f98d915d5db4f39d711fba640a3178b959919aae1f7cfd8aabcfef5826ed8aa8a2aa14cc85b2d7d18ff638ddf4ae3df39573eaf
+ languageName: node
+ linkType: hard
+
+"follow-redirects@npm:^1.14.0, follow-redirects@npm:^1.14.9, follow-redirects@npm:^1.15.6":
+ version: 1.15.6
+ resolution: "follow-redirects@npm:1.15.6"
+ peerDependenciesMeta:
+ debug:
+ optional: true
+ checksum: 10c0/9ff767f0d7be6aa6870c82ac79cf0368cd73e01bbc00e9eb1c2a16fbb198ec105e3c9b6628bb98e9f3ac66fe29a957b9645bcb9a490bb7aa0d35f908b6b85071
+ languageName: node
+ linkType: hard
+
+"for-each@npm:^0.3.3":
+ version: 0.3.3
+ resolution: "for-each@npm:0.3.3"
+ dependencies:
+ is-callable: "npm:^1.1.3"
+ checksum: 10c0/22330d8a2db728dbf003ec9182c2d421fbcd2969b02b4f97ec288721cda63eb28f2c08585ddccd0f77cb2930af8d958005c9e72f47141dc51816127a118f39aa
+ languageName: node
+ linkType: hard
+
+"foreground-child@npm:^3.1.0":
+ version: 3.1.1
+ resolution: "foreground-child@npm:3.1.1"
+ dependencies:
+ cross-spawn: "npm:^7.0.0"
+ signal-exit: "npm:^4.0.1"
+ checksum: 10c0/9700a0285628abaeb37007c9a4d92bd49f67210f09067638774338e146c8e9c825c5c877f072b2f75f41dc6a2d0be8664f79ffc03f6576649f54a84fb9b47de0
+ languageName: node
+ linkType: hard
+
+"form-data@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "form-data@npm:4.0.0"
+ dependencies:
+ asynckit: "npm:^0.4.0"
+ combined-stream: "npm:^1.0.8"
+ mime-types: "npm:^2.1.12"
+ checksum: 10c0/cb6f3ac49180be03ff07ba3ff125f9eba2ff0b277fb33c7fc47569fc5e616882c5b1c69b9904c4c4187e97dd0419dd03b134174756f296dec62041e6527e2c6e
+ languageName: node
+ linkType: hard
+
+"fs-minipass@npm:^2.0.0":
+ version: 2.1.0
+ resolution: "fs-minipass@npm:2.1.0"
+ dependencies:
+ minipass: "npm:^3.0.0"
+ checksum: 10c0/703d16522b8282d7299337539c3ed6edddd1afe82435e4f5b76e34a79cd74e488a8a0e26a636afc2440e1a23b03878e2122e3a2cfe375a5cf63c37d92b86a004
+ languageName: node
+ linkType: hard
+
+"fs-minipass@npm:^3.0.0":
+ version: 3.0.3
+ resolution: "fs-minipass@npm:3.0.3"
+ dependencies:
+ minipass: "npm:^7.0.3"
+ checksum: 10c0/63e80da2ff9b621e2cb1596abcb9207f1cf82b968b116ccd7b959e3323144cce7fb141462200971c38bbf2ecca51695069db45265705bed09a7cd93ae5b89f94
+ languageName: node
+ linkType: hard
+
+"fs.realpath@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "fs.realpath@npm:1.0.0"
+ checksum: 10c0/444cf1291d997165dfd4c0d58b69f0e4782bfd9149fd72faa4fe299e68e0e93d6db941660b37dd29153bf7186672ececa3b50b7e7249477b03fdf850f287c948
+ languageName: node
+ linkType: hard
+
+"fsevents@npm:~2.3.2":
+ version: 2.3.3
+ resolution: "fsevents@npm:2.3.3"
+ dependencies:
+ node-gyp: "npm:latest"
+ checksum: 10c0/a1f0c44595123ed717febbc478aa952e47adfc28e2092be66b8ab1635147254ca6cfe1df792a8997f22716d4cbafc73309899ff7bfac2ac3ad8cf2e4ecc3ec60
+ conditions: os=darwin
+ languageName: node
+ linkType: hard
+
+"fsevents@patch:fsevents@npm%3A~2.3.2#optional!builtin":
+ version: 2.3.3
+ resolution: "fsevents@patch:fsevents@npm%3A2.3.3#optional!builtin::version=2.3.3&hash=df0bf1"
+ dependencies:
+ node-gyp: "npm:latest"
+ conditions: os=darwin
+ languageName: node
+ linkType: hard
+
+"function-bind@npm:^1.1.2":
+ version: 1.1.2
+ resolution: "function-bind@npm:1.1.2"
+ checksum: 10c0/d8680ee1e5fcd4c197e4ac33b2b4dce03c71f4d91717292785703db200f5c21f977c568d28061226f9b5900cbcd2c84463646134fd5337e7925e0942bc3f46d5
+ languageName: node
+ linkType: hard
+
+"function.prototype.name@npm:^1.1.5, function.prototype.name@npm:^1.1.6":
+ version: 1.1.6
+ resolution: "function.prototype.name@npm:1.1.6"
+ dependencies:
+ call-bind: "npm:^1.0.2"
+ define-properties: "npm:^1.2.0"
+ es-abstract: "npm:^1.22.1"
+ functions-have-names: "npm:^1.2.3"
+ checksum: 10c0/9eae11294905b62cb16874adb4fc687927cda3162285e0ad9612e6a1d04934005d46907362ea9cdb7428edce05a2f2c3dabc3b2d21e9fd343e9bb278230ad94b
+ languageName: node
+ linkType: hard
+
+"functions-have-names@npm:^1.2.3":
+ version: 1.2.3
+ resolution: "functions-have-names@npm:1.2.3"
+ checksum: 10c0/33e77fd29bddc2d9bb78ab3eb854c165909201f88c75faa8272e35899e2d35a8a642a15e7420ef945e1f64a9670d6aa3ec744106b2aa42be68ca5114025954ca
+ languageName: node
+ linkType: hard
+
+"generate-lockfile@npm:0.0.12":
+ version: 0.0.12
+ resolution: "generate-lockfile@npm:0.0.12"
+ dependencies:
+ "@yarnpkg/lockfile": "npm:^1.1.0"
+ chalk: "npm:^4.1.0"
+ commander-plus: "npm:^0.0.6"
+ bin:
+ generate-lockfile: bin/index.js
+ checksum: 10c0/c573e6a9137cb82c57022587dcb0d4024b2ffcaf8c87a95cb7c17c41d3303a0dd414c06ceb905f48f7bb653da13a490ba324d12350a5bd945289206170b02d99
+ languageName: node
+ linkType: hard
+
+"get-intrinsic@npm:^1.1.3, get-intrinsic@npm:^1.2.1, get-intrinsic@npm:^1.2.3, get-intrinsic@npm:^1.2.4":
+ version: 1.2.4
+ resolution: "get-intrinsic@npm:1.2.4"
+ dependencies:
+ es-errors: "npm:^1.3.0"
+ function-bind: "npm:^1.1.2"
+ has-proto: "npm:^1.0.1"
+ has-symbols: "npm:^1.0.3"
+ hasown: "npm:^2.0.0"
+ checksum: 10c0/0a9b82c16696ed6da5e39b1267104475c47e3a9bdbe8b509dfe1710946e38a87be70d759f4bb3cda042d76a41ef47fe769660f3b7c0d1f68750299344ffb15b7
+ languageName: node
+ linkType: hard
+
+"get-port-please@npm:^3.1.2":
+ version: 3.1.2
+ resolution: "get-port-please@npm:3.1.2"
+ checksum: 10c0/61237342fe035967e5ad1b67a2dee347a64de093bf1222b7cd50072568d73c48dad5cc5cd4fa44635b7cfdcd14d6c47554edb9891c2ec70ab33ecb831683e257
+ languageName: node
+ linkType: hard
+
+"get-stream@npm:^8.0.1":
+ version: 8.0.1
+ resolution: "get-stream@npm:8.0.1"
+ checksum: 10c0/5c2181e98202b9dae0bb4a849979291043e5892eb40312b47f0c22b9414fc9b28a3b6063d2375705eb24abc41ecf97894d9a51f64ff021511b504477b27b4290
+ languageName: node
+ linkType: hard
+
+"get-symbol-description@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "get-symbol-description@npm:1.0.2"
+ dependencies:
+ call-bind: "npm:^1.0.5"
+ es-errors: "npm:^1.3.0"
+ get-intrinsic: "npm:^1.2.4"
+ checksum: 10c0/867be6d63f5e0eb026cb3b0ef695ec9ecf9310febb041072d2e142f260bd91ced9eeb426b3af98791d1064e324e653424afa6fd1af17dee373bea48ae03162bc
+ languageName: node
+ linkType: hard
+
+"get-tsconfig@npm:^4.5.0":
+ version: 4.7.5
+ resolution: "get-tsconfig@npm:4.7.5"
+ dependencies:
+ resolve-pkg-maps: "npm:^1.0.0"
+ checksum: 10c0/a917dff2ba9ee187c41945736bf9bbab65de31ce5bc1effd76267be483a7340915cff232199406379f26517d2d0a4edcdbcda8cca599c2480a0f2cf1e1de3efa
+ languageName: node
+ linkType: hard
+
+"glob-parent@npm:^5.1.2, glob-parent@npm:~5.1.2":
+ version: 5.1.2
+ resolution: "glob-parent@npm:5.1.2"
+ dependencies:
+ is-glob: "npm:^4.0.1"
+ checksum: 10c0/cab87638e2112bee3f839ef5f6e0765057163d39c66be8ec1602f3823da4692297ad4e972de876ea17c44d652978638d2fd583c6713d0eb6591706825020c9ee
+ languageName: node
+ linkType: hard
+
+"glob-parent@npm:^6.0.2":
+ version: 6.0.2
+ resolution: "glob-parent@npm:6.0.2"
+ dependencies:
+ is-glob: "npm:^4.0.3"
+ checksum: 10c0/317034d88654730230b3f43bb7ad4f7c90257a426e872ea0bf157473ac61c99bf5d205fad8f0185f989be8d2fa6d3c7dce1645d99d545b6ea9089c39f838e7f8
+ languageName: node
+ linkType: hard
+
+"glob-to-regexp@npm:^0.4.1":
+ version: 0.4.1
+ resolution: "glob-to-regexp@npm:0.4.1"
+ checksum: 10c0/0486925072d7a916f052842772b61c3e86247f0a80cc0deb9b5a3e8a1a9faad5b04fb6f58986a09f34d3e96cd2a22a24b7e9882fb1cf904c31e9a310de96c429
+ languageName: node
+ linkType: hard
+
+"glob@npm:7.1.7":
+ version: 7.1.7
+ resolution: "glob@npm:7.1.7"
+ dependencies:
+ fs.realpath: "npm:^1.0.0"
+ inflight: "npm:^1.0.4"
+ inherits: "npm:2"
+ minimatch: "npm:^3.0.4"
+ once: "npm:^1.3.0"
+ path-is-absolute: "npm:^1.0.0"
+ checksum: 10c0/173245e6f9ccf904309eb7ef4a44a11f3bf68e9e341dff5a28b5db0dd7123b7506daf41497f3437a0710f57198187b758c2351eeaabce4d16935e956920da6a4
+ languageName: node
+ linkType: hard
+
+"glob@npm:^10.2.2, glob@npm:^10.3.10":
+ version: 10.4.1
+ resolution: "glob@npm:10.4.1"
+ dependencies:
+ foreground-child: "npm:^3.1.0"
+ jackspeak: "npm:^3.1.2"
+ minimatch: "npm:^9.0.4"
+ minipass: "npm:^7.1.2"
+ path-scurry: "npm:^1.11.1"
+ bin:
+ glob: dist/esm/bin.mjs
+ checksum: 10c0/77f2900ed98b9cc2a0e1901ee5e476d664dae3cd0f1b662b8bfd4ccf00d0edc31a11595807706a274ca10e1e251411bbf2e8e976c82bed0d879a9b89343ed379
+ languageName: node
+ linkType: hard
+
+"glob@npm:^7.1.3":
+ version: 7.2.3
+ resolution: "glob@npm:7.2.3"
+ dependencies:
+ fs.realpath: "npm:^1.0.0"
+ inflight: "npm:^1.0.4"
+ inherits: "npm:2"
+ minimatch: "npm:^3.1.1"
+ once: "npm:^1.3.0"
+ path-is-absolute: "npm:^1.0.0"
+ checksum: 10c0/65676153e2b0c9095100fe7f25a778bf45608eeb32c6048cf307f579649bcc30353277b3b898a3792602c65764e5baa4f643714dfbdfd64ea271d210c7a425fe
+ languageName: node
+ linkType: hard
+
+"globals@npm:^13.15.0, globals@npm:^13.19.0":
+ version: 13.24.0
+ resolution: "globals@npm:13.24.0"
+ dependencies:
+ type-fest: "npm:^0.20.2"
+ checksum: 10c0/d3c11aeea898eb83d5ec7a99508600fbe8f83d2cf00cbb77f873dbf2bcb39428eff1b538e4915c993d8a3b3473fa71eeebfe22c9bb3a3003d1e26b1f2c8a42cd
+ languageName: node
+ linkType: hard
+
+"globalthis@npm:^1.0.1":
+ version: 1.0.3
+ resolution: "globalthis@npm:1.0.3"
+ dependencies:
+ define-properties: "npm:^1.1.3"
+ checksum: 10c0/0db6e9af102a5254630351557ac15e6909bc7459d3e3f6b001e59fe784c96d31108818f032d9095739355a88467459e6488ff16584ee6250cd8c27dec05af4b0
+ languageName: node
+ linkType: hard
+
+"globalthis@npm:^1.0.3":
+ version: 1.0.4
+ resolution: "globalthis@npm:1.0.4"
+ dependencies:
+ define-properties: "npm:^1.2.1"
+ gopd: "npm:^1.0.1"
+ checksum: 10c0/9d156f313af79d80b1566b93e19285f481c591ad6d0d319b4be5e03750d004dde40a39a0f26f7e635f9007a3600802f53ecd85a759b86f109e80a5f705e01846
+ languageName: node
+ linkType: hard
+
+"globby@npm:^11.1.0":
+ version: 11.1.0
+ resolution: "globby@npm:11.1.0"
+ dependencies:
+ array-union: "npm:^2.1.0"
+ dir-glob: "npm:^3.0.1"
+ fast-glob: "npm:^3.2.9"
+ ignore: "npm:^5.2.0"
+ merge2: "npm:^1.4.1"
+ slash: "npm:^3.0.0"
+ checksum: 10c0/b39511b4afe4bd8a7aead3a27c4ade2b9968649abab0a6c28b1a90141b96ca68ca5db1302f7c7bd29eab66bf51e13916b8e0a3d0ac08f75e1e84a39b35691189
+ languageName: node
+ linkType: hard
+
+"google-protobuf@npm:^3.17.3":
+ version: 3.21.2
+ resolution: "google-protobuf@npm:3.21.2"
+ checksum: 10c0/df20b41aad9eba4d842d69c717a4d73ac6d321084c12f524ad5eb79a47ad185323bd1b477c19565a15fd08b6eef29e475c8ac281dbc6fe547b81d8b6b99974f5
+ languageName: node
+ linkType: hard
+
+"gopd@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "gopd@npm:1.0.1"
+ dependencies:
+ get-intrinsic: "npm:^1.1.3"
+ checksum: 10c0/505c05487f7944c552cee72087bf1567debb470d4355b1335f2c262d218ebbff805cd3715448fe29b4b380bae6912561d0467233e4165830efd28da241418c63
+ languageName: node
+ linkType: hard
+
+"graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6":
+ version: 4.2.11
+ resolution: "graceful-fs@npm:4.2.11"
+ checksum: 10c0/386d011a553e02bc594ac2ca0bd6d9e4c22d7fa8cfbfc448a6d148c59ea881b092db9dbe3547ae4b88e55f1b01f7c4a2ecc53b310c042793e63aa44cf6c257f2
+ languageName: node
+ linkType: hard
+
+"grapheme-splitter@npm:^1.0.4":
+ version: 1.0.4
+ resolution: "grapheme-splitter@npm:1.0.4"
+ checksum: 10c0/108415fb07ac913f17040dc336607772fcea68c7f495ef91887edddb0b0f5ff7bc1d1ab181b125ecb2f0505669ef12c9a178a3bbd2dd8e042d8c5f1d7c90331a
+ languageName: node
+ linkType: hard
+
+"h3@npm:^1.10.2, h3@npm:^1.11.1":
+ version: 1.11.1
+ resolution: "h3@npm:1.11.1"
+ dependencies:
+ cookie-es: "npm:^1.0.0"
+ crossws: "npm:^0.2.2"
+ defu: "npm:^6.1.4"
+ destr: "npm:^2.0.3"
+ iron-webcrypto: "npm:^1.0.0"
+ ohash: "npm:^1.1.3"
+ radix3: "npm:^1.1.0"
+ ufo: "npm:^1.4.0"
+ uncrypto: "npm:^0.1.3"
+ unenv: "npm:^1.9.0"
+ checksum: 10c0/bd02bfae536a0facb9ddcd85bd51ad16264ea6fd331a548540a0846e426348449fcbcb10b0fa08673cd1d9c60e6ff5d8f56e7ec2e1ee43fda460d8c16866cbfa
+ languageName: node
+ linkType: hard
+
+"has-bigints@npm:^1.0.1, has-bigints@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "has-bigints@npm:1.0.2"
+ checksum: 10c0/724eb1485bfa3cdff6f18d95130aa190561f00b3fcf9f19dc640baf8176b5917c143b81ec2123f8cddb6c05164a198c94b13e1377c497705ccc8e1a80306e83b
+ languageName: node
+ linkType: hard
+
+"has-flag@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "has-flag@npm:4.0.0"
+ checksum: 10c0/2e789c61b7888d66993e14e8331449e525ef42aac53c627cc53d1c3334e768bcb6abdc4f5f0de1478a25beec6f0bd62c7549058b7ac53e924040d4f301f02fd1
+ languageName: node
+ linkType: hard
+
+"has-property-descriptors@npm:^1.0.0, has-property-descriptors@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "has-property-descriptors@npm:1.0.2"
+ dependencies:
+ es-define-property: "npm:^1.0.0"
+ checksum: 10c0/253c1f59e80bb476cf0dde8ff5284505d90c3bdb762983c3514d36414290475fe3fd6f574929d84de2a8eec00d35cf07cb6776205ff32efd7c50719125f00236
+ languageName: node
+ linkType: hard
+
+"has-proto@npm:^1.0.1, has-proto@npm:^1.0.3":
+ version: 1.0.3
+ resolution: "has-proto@npm:1.0.3"
+ checksum: 10c0/35a6989f81e9f8022c2f4027f8b48a552de714938765d019dbea6bb547bd49ce5010a3c7c32ec6ddac6e48fc546166a3583b128f5a7add8b058a6d8b4afec205
+ languageName: node
+ linkType: hard
+
+"has-symbols@npm:^1.0.2, has-symbols@npm:^1.0.3":
+ version: 1.0.3
+ resolution: "has-symbols@npm:1.0.3"
+ checksum: 10c0/e6922b4345a3f37069cdfe8600febbca791c94988c01af3394d86ca3360b4b93928bbf395859158f88099cb10b19d98e3bbab7c9ff2c1bd09cf665ee90afa2c3
+ languageName: node
+ linkType: hard
+
+"has-tostringtag@npm:^1.0.0, has-tostringtag@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "has-tostringtag@npm:1.0.2"
+ dependencies:
+ has-symbols: "npm:^1.0.3"
+ checksum: 10c0/a8b166462192bafe3d9b6e420a1d581d93dd867adb61be223a17a8d6dad147aa77a8be32c961bb2f27b3ef893cae8d36f564ab651f5e9b7938ae86f74027c48c
+ languageName: node
+ linkType: hard
+
+"hash-base@npm:^3.0.0":
+ version: 3.1.0
+ resolution: "hash-base@npm:3.1.0"
+ dependencies:
+ inherits: "npm:^2.0.4"
+ readable-stream: "npm:^3.6.0"
+ safe-buffer: "npm:^5.2.0"
+ checksum: 10c0/663eabcf4173326fbb65a1918a509045590a26cc7e0964b754eef248d281305c6ec9f6b31cb508d02ffca383ab50028180ce5aefe013e942b44a903ac8dc80d0
+ languageName: node
+ linkType: hard
+
+"hash-base@npm:~3.0":
+ version: 3.0.4
+ resolution: "hash-base@npm:3.0.4"
+ dependencies:
+ inherits: "npm:^2.0.1"
+ safe-buffer: "npm:^5.0.1"
+ checksum: 10c0/a13357dccb3827f0bb0b56bf928da85c428dc8670f6e4a1c7265e4f1653ce02d69030b40fd01b0f1d218a995a066eea279cded9cec72d207b593bcdfe309c2f0
+ languageName: node
+ linkType: hard
+
+"hash.js@npm:1.1.7, hash.js@npm:^1.0.0, hash.js@npm:^1.0.3":
+ version: 1.1.7
+ resolution: "hash.js@npm:1.1.7"
+ dependencies:
+ inherits: "npm:^2.0.3"
+ minimalistic-assert: "npm:^1.0.1"
+ checksum: 10c0/41ada59494eac5332cfc1ce6b7ebdd7b88a3864a6d6b08a3ea8ef261332ed60f37f10877e0c825aaa4bddebf164fbffa618286aeeec5296675e2671cbfa746c4
+ languageName: node
+ linkType: hard
+
+"hasown@npm:^2.0.0, hasown@npm:^2.0.1, hasown@npm:^2.0.2":
+ version: 2.0.2
+ resolution: "hasown@npm:2.0.2"
+ dependencies:
+ function-bind: "npm:^1.1.2"
+ checksum: 10c0/3769d434703b8ac66b209a4cca0737519925bbdb61dd887f93a16372b14694c63ff4e797686d87c90f08168e81082248b9b028bad60d4da9e0d1148766f56eb9
+ languageName: node
+ linkType: hard
+
+"hast-util-to-jsx-runtime@npm:^2.0.0":
+ version: 2.3.0
+ resolution: "hast-util-to-jsx-runtime@npm:2.3.0"
+ dependencies:
+ "@types/estree": "npm:^1.0.0"
+ "@types/hast": "npm:^3.0.0"
+ "@types/unist": "npm:^3.0.0"
+ comma-separated-tokens: "npm:^2.0.0"
+ devlop: "npm:^1.0.0"
+ estree-util-is-identifier-name: "npm:^3.0.0"
+ hast-util-whitespace: "npm:^3.0.0"
+ mdast-util-mdx-expression: "npm:^2.0.0"
+ mdast-util-mdx-jsx: "npm:^3.0.0"
+ mdast-util-mdxjs-esm: "npm:^2.0.0"
+ property-information: "npm:^6.0.0"
+ space-separated-tokens: "npm:^2.0.0"
+ style-to-object: "npm:^1.0.0"
+ unist-util-position: "npm:^5.0.0"
+ vfile-message: "npm:^4.0.0"
+ checksum: 10c0/df7a36dcc792df7667a54438f044b721753d5e09692606d23bf7336bf4651670111fe7728eebbf9f0e4f96ab3346a05bb23037fa1b1d115482b3bc5bde8b6912
+ languageName: node
+ linkType: hard
+
+"hast-util-whitespace@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "hast-util-whitespace@npm:3.0.0"
+ dependencies:
+ "@types/hast": "npm:^3.0.0"
+ checksum: 10c0/b898bc9fe27884b272580d15260b6bbdabe239973a147e97fa98c45fa0ffec967a481aaa42291ec34fb56530dc2d484d473d7e2bae79f39c83f3762307edfea8
+ languageName: node
+ linkType: hard
+
+"hmac-drbg@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "hmac-drbg@npm:1.0.1"
+ dependencies:
+ hash.js: "npm:^1.0.3"
+ minimalistic-assert: "npm:^1.0.0"
+ minimalistic-crypto-utils: "npm:^1.0.1"
+ checksum: 10c0/f3d9ba31b40257a573f162176ac5930109816036c59a09f901eb2ffd7e5e705c6832bedfff507957125f2086a0ab8f853c0df225642a88bf1fcaea945f20600d
+ languageName: node
+ linkType: hard
+
+"html-url-attributes@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "html-url-attributes@npm:3.0.0"
+ checksum: 10c0/af300ae1f3b9cf90aba0d95a165c3f4066ec2b3ee2f36a885a8d842e68675e4133896b00bde42d18ac799d0ce678fa1695baec3f865b01a628922d737c0d035c
+ languageName: node
+ linkType: hard
+
+"http-cache-semantics@npm:^4.1.1":
+ version: 4.1.1
+ resolution: "http-cache-semantics@npm:4.1.1"
+ checksum: 10c0/ce1319b8a382eb3cbb4a37c19f6bfe14e5bb5be3d09079e885e8c513ab2d3cd9214902f8a31c9dc4e37022633ceabfc2d697405deeaf1b8f3552bb4ed996fdfc
+ languageName: node
+ linkType: hard
+
+"http-proxy-agent@npm:^7.0.0":
+ version: 7.0.2
+ resolution: "http-proxy-agent@npm:7.0.2"
+ dependencies:
+ agent-base: "npm:^7.1.0"
+ debug: "npm:^4.3.4"
+ checksum: 10c0/4207b06a4580fb85dd6dff521f0abf6db517489e70863dca1a0291daa7f2d3d2d6015a57bd702af068ea5cf9f1f6ff72314f5f5b4228d299c0904135d2aef921
+ languageName: node
+ linkType: hard
+
+"http-shutdown@npm:^1.2.2":
+ version: 1.2.2
+ resolution: "http-shutdown@npm:1.2.2"
+ checksum: 10c0/1ea04d50d9a84ad6e7d9ee621160ce9515936e32e7f5ba445db48a5d72681858002c934c7f3ae5f474b301c1cd6b418aee3f6a2f109822109e606cc1a6c17c03
+ languageName: node
+ linkType: hard
+
+"https-proxy-agent@npm:^7.0.1":
+ version: 7.0.4
+ resolution: "https-proxy-agent@npm:7.0.4"
+ dependencies:
+ agent-base: "npm:^7.0.2"
+ debug: "npm:4"
+ checksum: 10c0/bc4f7c38da32a5fc622450b6cb49a24ff596f9bd48dcedb52d2da3fa1c1a80e100fb506bd59b326c012f21c863c69b275c23de1a01d0b84db396822fdf25e52b
+ languageName: node
+ linkType: hard
+
+"human-signals@npm:^5.0.0":
+ version: 5.0.0
+ resolution: "human-signals@npm:5.0.0"
+ checksum: 10c0/5a9359073fe17a8b58e5a085e9a39a950366d9f00217c4ff5878bd312e09d80f460536ea6a3f260b5943a01fe55c158d1cea3fc7bee3d0520aeef04f6d915c82
+ languageName: node
+ linkType: hard
+
+"iconv-lite@npm:^0.6.2":
+ version: 0.6.3
+ resolution: "iconv-lite@npm:0.6.3"
+ dependencies:
+ safer-buffer: "npm:>= 2.1.2 < 3.0.0"
+ checksum: 10c0/98102bc66b33fcf5ac044099d1257ba0b7ad5e3ccd3221f34dd508ab4070edff183276221684e1e0555b145fce0850c9f7d2b60a9fcac50fbb4ea0d6e845a3b1
+ languageName: node
+ linkType: hard
+
+"idb-keyval@npm:^6.2.1":
+ version: 6.2.1
+ resolution: "idb-keyval@npm:6.2.1"
+ checksum: 10c0/9f0c83703a365e00bd0b4ed6380ce509a06dedfc6ec39b2ba5740085069fd2f2ff5c14ba19356488e3612a2f9c49985971982d836460a982a5d0b4019eeba48a
+ languageName: node
+ linkType: hard
+
+"ieee754@npm:^1.2.1":
+ version: 1.2.1
+ resolution: "ieee754@npm:1.2.1"
+ checksum: 10c0/b0782ef5e0935b9f12883a2e2aa37baa75da6e66ce6515c168697b42160807d9330de9a32ec1ed73149aea02e0d822e572bca6f1e22bdcbd2149e13b050b17bb
+ languageName: node
+ linkType: hard
+
+"ignore@npm:^5.2.0":
+ version: 5.3.1
+ resolution: "ignore@npm:5.3.1"
+ checksum: 10c0/703f7f45ffb2a27fb2c5a8db0c32e7dee66b33a225d28e8db4e1be6474795f606686a6e3bcc50e1aa12f2042db4c9d4a7d60af3250511de74620fbed052ea4cd
+ languageName: node
+ linkType: hard
+
+"immer@npm:^10.1.1":
+ version: 10.1.1
+ resolution: "immer@npm:10.1.1"
+ checksum: 10c0/b749e10d137ccae91788f41bd57e9387f32ea6d6ea8fd7eb47b23fd7766681575efc7f86ceef7fe24c3bc9d61e38ff5d2f49c2663b2b0c056e280a4510923653
+ languageName: node
+ linkType: hard
+
+"import-fresh@npm:^3.0.0, import-fresh@npm:^3.2.1":
+ version: 3.3.0
+ resolution: "import-fresh@npm:3.3.0"
+ dependencies:
+ parent-module: "npm:^1.0.0"
+ resolve-from: "npm:^4.0.0"
+ checksum: 10c0/7f882953aa6b740d1f0e384d0547158bc86efbf2eea0f1483b8900a6f65c5a5123c2cf09b0d542cc419d0b98a759ecaeb394237e97ea427f2da221dc3cd80cc3
+ languageName: node
+ linkType: hard
+
+"imurmurhash@npm:^0.1.4":
+ version: 0.1.4
+ resolution: "imurmurhash@npm:0.1.4"
+ checksum: 10c0/8b51313850dd33605c6c9d3fd9638b714f4c4c40250cff658209f30d40da60f78992fb2df5dabee4acf589a6a82bbc79ad5486550754bd9ec4e3fc0d4a57d6a6
+ languageName: node
+ linkType: hard
+
+"indent-string@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "indent-string@npm:4.0.0"
+ checksum: 10c0/1e1904ddb0cb3d6cce7cd09e27a90184908b7a5d5c21b92e232c93579d314f0b83c246ffb035493d0504b1e9147ba2c9b21df0030f48673fba0496ecd698161f
+ languageName: node
+ linkType: hard
+
+"inflight@npm:^1.0.4":
+ version: 1.0.6
+ resolution: "inflight@npm:1.0.6"
+ dependencies:
+ once: "npm:^1.3.0"
+ wrappy: "npm:1"
+ checksum: 10c0/7faca22584600a9dc5b9fca2cd5feb7135ac8c935449837b315676b4c90aa4f391ec4f42240178244b5a34e8bede1948627fda392ca3191522fc46b34e985ab2
+ languageName: node
+ linkType: hard
+
+"inherits@npm:2, inherits@npm:^2.0.1, inherits@npm:^2.0.3, inherits@npm:^2.0.4, inherits@npm:~2.0.3":
+ version: 2.0.4
+ resolution: "inherits@npm:2.0.4"
+ checksum: 10c0/4e531f648b29039fb7426fb94075e6545faa1eb9fe83c29f0b6d9e7263aceb4289d2d4557db0d428188eeb449cc7c5e77b0a0b2c4e248ff2a65933a0dee49ef2
+ languageName: node
+ linkType: hard
+
+"inline-style-parser@npm:0.2.3":
+ version: 0.2.3
+ resolution: "inline-style-parser@npm:0.2.3"
+ checksum: 10c0/21b46d39a39c8aeaa738346650469388e8a412dd276ab75aa3d85b1883311e89c86a1fdbb8c2f1958f4c979bae74067f6ba0385455b125faf4fa77e1dbb94799
+ languageName: node
+ linkType: hard
+
+"interchain-query@npm:1.10.1":
+ version: 1.10.1
+ resolution: "interchain-query@npm:1.10.1"
+ dependencies:
+ "@cosmjs/amino": "npm:0.29.4"
+ "@cosmjs/proto-signing": "npm:0.29.4"
+ "@cosmjs/stargate": "npm:0.29.4"
+ "@cosmjs/tendermint-rpc": "npm:^0.29.4"
+ protobufjs: "npm:^6.11.2"
+ peerDependencies:
+ "@tanstack/react-query": ^4.29.12
+ checksum: 10c0/ee8f57ad17d9b4255a0ab1c924bd5bd4ecc16f8c1aaf7e0ea6e0373c134fb9108ff27a5c8c43b3b7082ea7fcd6612c57249305e97aea597a1cf3a5c75cc7e33e
+ languageName: node
+ linkType: hard
+
+"internal-slot@npm:^1.0.7":
+ version: 1.0.7
+ resolution: "internal-slot@npm:1.0.7"
+ dependencies:
+ es-errors: "npm:^1.3.0"
+ hasown: "npm:^2.0.0"
+ side-channel: "npm:^1.0.4"
+ checksum: 10c0/f8b294a4e6ea3855fc59551bbf35f2b832cf01fd5e6e2a97f5c201a071cc09b49048f856e484b67a6c721da5e55736c5b6ddafaf19e2dbeb4a3ff1821680de6c
+ languageName: node
+ linkType: hard
+
+"intl-messageformat@npm:^10.1.0":
+ version: 10.5.11
+ resolution: "intl-messageformat@npm:10.5.11"
+ dependencies:
+ "@formatjs/ecma402-abstract": "npm:1.18.2"
+ "@formatjs/fast-memoize": "npm:2.2.0"
+ "@formatjs/icu-messageformat-parser": "npm:2.7.6"
+ tslib: "npm:^2.4.0"
+ checksum: 10c0/423f1c879ce2d0e7b9e0b4c1787a81ead7fe4d1734e0366a20fef56b06c09146e7ca3618e2e78b4f8b8f2b59cafe6237ceed21530fe0c16cfb47d915fc80222d
+ languageName: node
+ linkType: hard
+
+"ip-address@npm:^9.0.5":
+ version: 9.0.5
+ resolution: "ip-address@npm:9.0.5"
+ dependencies:
+ jsbn: "npm:1.1.0"
+ sprintf-js: "npm:^1.1.3"
+ checksum: 10c0/331cd07fafcb3b24100613e4b53e1a2b4feab11e671e655d46dc09ee233da5011284d09ca40c4ecbdfe1d0004f462958675c224a804259f2f78d2465a87824bc
+ languageName: node
+ linkType: hard
+
+"iron-webcrypto@npm:^1.0.0":
+ version: 1.1.0
+ resolution: "iron-webcrypto@npm:1.1.0"
+ checksum: 10c0/58c783a3f18128e37918f83c8cd2703b2494ccec9316a0de5194b0b52282d9eac12a5a0a8c18da6b55940c3f9957a5ae10b786616692a1e5a12caaa019dde8de
+ languageName: node
+ linkType: hard
+
+"is-alphabetical@npm:^2.0.0":
+ version: 2.0.1
+ resolution: "is-alphabetical@npm:2.0.1"
+ checksum: 10c0/932367456f17237533fd1fc9fe179df77957271020b83ea31da50e5cc472d35ef6b5fb8147453274ffd251134472ce24eb6f8d8398d96dee98237cdb81a6c9a7
+ languageName: node
+ linkType: hard
+
+"is-alphanumerical@npm:^2.0.0":
+ version: 2.0.1
+ resolution: "is-alphanumerical@npm:2.0.1"
+ dependencies:
+ is-alphabetical: "npm:^2.0.0"
+ is-decimal: "npm:^2.0.0"
+ checksum: 10c0/4b35c42b18e40d41378293f82a3ecd9de77049b476f748db5697c297f686e1e05b072a6aaae2d16f54d2a57f85b00cbbe755c75f6d583d1c77d6657bd0feb5a2
+ languageName: node
+ linkType: hard
+
+"is-arguments@npm:^1.0.4":
+ version: 1.1.1
+ resolution: "is-arguments@npm:1.1.1"
+ dependencies:
+ call-bind: "npm:^1.0.2"
+ has-tostringtag: "npm:^1.0.0"
+ checksum: 10c0/5ff1f341ee4475350adfc14b2328b38962564b7c2076be2f5bac7bd9b61779efba99b9f844a7b82ba7654adccf8e8eb19d1bb0cc6d1c1a085e498f6793d4328f
+ languageName: node
+ linkType: hard
+
+"is-array-buffer@npm:^3.0.4":
+ version: 3.0.4
+ resolution: "is-array-buffer@npm:3.0.4"
+ dependencies:
+ call-bind: "npm:^1.0.2"
+ get-intrinsic: "npm:^1.2.1"
+ checksum: 10c0/42a49d006cc6130bc5424eae113e948c146f31f9d24460fc0958f855d9d810e6fd2e4519bf19aab75179af9c298ea6092459d8cafdec523cd19e529b26eab860
+ languageName: node
+ linkType: hard
+
+"is-async-function@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "is-async-function@npm:2.0.0"
+ dependencies:
+ has-tostringtag: "npm:^1.0.0"
+ checksum: 10c0/787bc931576aad525d751fc5ce211960fe91e49ac84a5c22d6ae0bc9541945fbc3f686dc590c3175722ce4f6d7b798a93f6f8ff4847fdb2199aea6f4baf5d668
+ languageName: node
+ linkType: hard
+
+"is-bigint@npm:^1.0.1":
+ version: 1.0.4
+ resolution: "is-bigint@npm:1.0.4"
+ dependencies:
+ has-bigints: "npm:^1.0.1"
+ checksum: 10c0/eb9c88e418a0d195ca545aff2b715c9903d9b0a5033bc5922fec600eb0c3d7b1ee7f882dbf2e0d5a6e694e42391be3683e4368737bd3c4a77f8ac293e7773696
+ languageName: node
+ linkType: hard
+
+"is-binary-path@npm:~2.1.0":
+ version: 2.1.0
+ resolution: "is-binary-path@npm:2.1.0"
+ dependencies:
+ binary-extensions: "npm:^2.0.0"
+ checksum: 10c0/a16eaee59ae2b315ba36fad5c5dcaf8e49c3e27318f8ab8fa3cdb8772bf559c8d1ba750a589c2ccb096113bb64497084361a25960899cb6172a6925ab6123d38
+ languageName: node
+ linkType: hard
+
+"is-boolean-object@npm:^1.1.0":
+ version: 1.1.2
+ resolution: "is-boolean-object@npm:1.1.2"
+ dependencies:
+ call-bind: "npm:^1.0.2"
+ has-tostringtag: "npm:^1.0.0"
+ checksum: 10c0/6090587f8a8a8534c0f816da868bc94f32810f08807aa72fa7e79f7e11c466d281486ffe7a788178809c2aa71fe3e700b167fe80dd96dad68026bfff8ebf39f7
+ languageName: node
+ linkType: hard
+
+"is-callable@npm:^1.1.3, is-callable@npm:^1.1.4, is-callable@npm:^1.2.7":
+ version: 1.2.7
+ resolution: "is-callable@npm:1.2.7"
+ checksum: 10c0/ceebaeb9d92e8adee604076971dd6000d38d6afc40bb843ea8e45c5579b57671c3f3b50d7f04869618242c6cee08d1b67806a8cb8edaaaf7c0748b3720d6066f
+ languageName: node
+ linkType: hard
+
+"is-core-module@npm:^2.11.0, is-core-module@npm:^2.13.0, is-core-module@npm:^2.13.1":
+ version: 2.13.1
+ resolution: "is-core-module@npm:2.13.1"
+ dependencies:
+ hasown: "npm:^2.0.0"
+ checksum: 10c0/2cba9903aaa52718f11c4896dabc189bab980870aae86a62dc0d5cedb546896770ee946fb14c84b7adf0735f5eaea4277243f1b95f5cefa90054f92fbcac2518
+ languageName: node
+ linkType: hard
+
+"is-data-view@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "is-data-view@npm:1.0.1"
+ dependencies:
+ is-typed-array: "npm:^1.1.13"
+ checksum: 10c0/a3e6ec84efe303da859107aed9b970e018e2bee7ffcb48e2f8096921a493608134240e672a2072577e5f23a729846241d9634806e8a0e51d9129c56d5f65442d
+ languageName: node
+ linkType: hard
+
+"is-date-object@npm:^1.0.1, is-date-object@npm:^1.0.5":
+ version: 1.0.5
+ resolution: "is-date-object@npm:1.0.5"
+ dependencies:
+ has-tostringtag: "npm:^1.0.0"
+ checksum: 10c0/eed21e5dcc619c48ccef804dfc83a739dbb2abee6ca202838ee1bd5f760fe8d8a93444f0d49012ad19bb7c006186e2884a1b92f6e1c056da7fd23d0a9ad5992e
+ languageName: node
+ linkType: hard
+
+"is-decimal@npm:^2.0.0":
+ version: 2.0.1
+ resolution: "is-decimal@npm:2.0.1"
+ checksum: 10c0/8085dd66f7d82f9de818fba48b9e9c0429cb4291824e6c5f2622e96b9680b54a07a624cfc663b24148b8e853c62a1c987cfe8b0b5a13f5156991afaf6736e334
+ languageName: node
+ linkType: hard
+
+"is-docker@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "is-docker@npm:3.0.0"
+ bin:
+ is-docker: cli.js
+ checksum: 10c0/d2c4f8e6d3e34df75a5defd44991b6068afad4835bb783b902fa12d13ebdb8f41b2a199dcb0b5ed2cb78bfee9e4c0bbdb69c2d9646f4106464674d3e697a5856
+ languageName: node
+ linkType: hard
+
+"is-extglob@npm:^2.1.1":
+ version: 2.1.1
+ resolution: "is-extglob@npm:2.1.1"
+ checksum: 10c0/5487da35691fbc339700bbb2730430b07777a3c21b9ebaecb3072512dfd7b4ba78ac2381a87e8d78d20ea08affb3f1971b4af629173a6bf435ff8a4c47747912
+ languageName: node
+ linkType: hard
+
+"is-finalizationregistry@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "is-finalizationregistry@npm:1.0.2"
+ dependencies:
+ call-bind: "npm:^1.0.2"
+ checksum: 10c0/81caecc984d27b1a35c68741156fc651fb1fa5e3e6710d21410abc527eb226d400c0943a167922b2e920f6b3e58b0dede9aa795882b038b85f50b3a4b877db86
+ languageName: node
+ linkType: hard
+
+"is-fullwidth-code-point@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "is-fullwidth-code-point@npm:3.0.0"
+ checksum: 10c0/bb11d825e049f38e04c06373a8d72782eee0205bda9d908cc550ccb3c59b99d750ff9537982e01733c1c94a58e35400661f57042158ff5e8f3e90cf936daf0fc
+ languageName: node
+ linkType: hard
+
+"is-generator-function@npm:^1.0.10, is-generator-function@npm:^1.0.7":
+ version: 1.0.10
+ resolution: "is-generator-function@npm:1.0.10"
+ dependencies:
+ has-tostringtag: "npm:^1.0.0"
+ checksum: 10c0/df03514df01a6098945b5a0cfa1abff715807c8e72f57c49a0686ad54b3b74d394e2d8714e6f709a71eb00c9630d48e73ca1796c1ccc84ac95092c1fecc0d98b
+ languageName: node
+ linkType: hard
+
+"is-glob@npm:^4.0.0, is-glob@npm:^4.0.1, is-glob@npm:^4.0.3, is-glob@npm:~4.0.1":
+ version: 4.0.3
+ resolution: "is-glob@npm:4.0.3"
+ dependencies:
+ is-extglob: "npm:^2.1.1"
+ checksum: 10c0/17fb4014e22be3bbecea9b2e3a76e9e34ff645466be702f1693e8f1ee1adac84710d0be0bd9f967d6354036fd51ab7c2741d954d6e91dae6bb69714de92c197a
+ languageName: node
+ linkType: hard
+
+"is-hexadecimal@npm:^2.0.0":
+ version: 2.0.1
+ resolution: "is-hexadecimal@npm:2.0.1"
+ checksum: 10c0/3eb60fe2f1e2bbc760b927dcad4d51eaa0c60138cf7fc671803f66353ad90c301605b502c7ea4c6bb0548e1c7e79dfd37b73b632652e3b76030bba603a7e9626
+ languageName: node
+ linkType: hard
+
+"is-inside-container@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "is-inside-container@npm:1.0.0"
+ dependencies:
+ is-docker: "npm:^3.0.0"
+ bin:
+ is-inside-container: cli.js
+ checksum: 10c0/a8efb0e84f6197e6ff5c64c52890fa9acb49b7b74fed4da7c95383965da6f0fa592b4dbd5e38a79f87fc108196937acdbcd758fcefc9b140e479b39ce1fcd1cd
+ languageName: node
+ linkType: hard
+
+"is-lambda@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "is-lambda@npm:1.0.1"
+ checksum: 10c0/85fee098ae62ba6f1e24cf22678805473c7afd0fb3978a3aa260e354cb7bcb3a5806cf0a98403188465efedec41ab4348e8e4e79305d409601323855b3839d4d
+ languageName: node
+ linkType: hard
+
+"is-map@npm:^2.0.3":
+ version: 2.0.3
+ resolution: "is-map@npm:2.0.3"
+ checksum: 10c0/2c4d431b74e00fdda7162cd8e4b763d6f6f217edf97d4f8538b94b8702b150610e2c64961340015fe8df5b1fcee33ccd2e9b62619c4a8a3a155f8de6d6d355fc
+ languageName: node
+ linkType: hard
+
+"is-nan@npm:^1.3.2":
+ version: 1.3.2
+ resolution: "is-nan@npm:1.3.2"
+ dependencies:
+ call-bind: "npm:^1.0.0"
+ define-properties: "npm:^1.1.3"
+ checksum: 10c0/8bfb286f85763f9c2e28ea32e9127702fe980ffd15fa5d63ade3be7786559e6e21355d3625dd364c769c033c5aedf0a2ed3d4025d336abf1b9241e3d9eddc5b0
+ languageName: node
+ linkType: hard
+
+"is-negative-zero@npm:^2.0.3":
+ version: 2.0.3
+ resolution: "is-negative-zero@npm:2.0.3"
+ checksum: 10c0/bcdcf6b8b9714063ffcfa9929c575ac69bfdabb8f4574ff557dfc086df2836cf07e3906f5bbc4f2a5c12f8f3ba56af640c843cdfc74da8caed86c7c7d66fd08e
+ languageName: node
+ linkType: hard
+
+"is-number-object@npm:^1.0.4":
+ version: 1.0.7
+ resolution: "is-number-object@npm:1.0.7"
+ dependencies:
+ has-tostringtag: "npm:^1.0.0"
+ checksum: 10c0/aad266da1e530f1804a2b7bd2e874b4869f71c98590b3964f9d06cc9869b18f8d1f4778f838ecd2a11011bce20aeecb53cb269ba916209b79c24580416b74b1b
+ languageName: node
+ linkType: hard
+
+"is-number@npm:^7.0.0":
+ version: 7.0.0
+ resolution: "is-number@npm:7.0.0"
+ checksum: 10c0/b4686d0d3053146095ccd45346461bc8e53b80aeb7671cc52a4de02dbbf7dc0d1d2a986e2fe4ae206984b4d34ef37e8b795ebc4f4295c978373e6575e295d811
+ languageName: node
+ linkType: hard
+
+"is-path-inside@npm:^3.0.3":
+ version: 3.0.3
+ resolution: "is-path-inside@npm:3.0.3"
+ checksum: 10c0/cf7d4ac35fb96bab6a1d2c3598fe5ebb29aafb52c0aaa482b5a3ed9d8ba3edc11631e3ec2637660c44b3ce0e61a08d54946e8af30dec0b60a7c27296c68ffd05
+ languageName: node
+ linkType: hard
+
+"is-plain-obj@npm:^4.0.0":
+ version: 4.1.0
+ resolution: "is-plain-obj@npm:4.1.0"
+ checksum: 10c0/32130d651d71d9564dc88ba7e6fda0e91a1010a3694648e9f4f47bb6080438140696d3e3e15c741411d712e47ac9edc1a8a9de1fe76f3487b0d90be06ac9975e
+ languageName: node
+ linkType: hard
+
+"is-regex@npm:^1.1.4":
+ version: 1.1.4
+ resolution: "is-regex@npm:1.1.4"
+ dependencies:
+ call-bind: "npm:^1.0.2"
+ has-tostringtag: "npm:^1.0.0"
+ checksum: 10c0/bb72aae604a69eafd4a82a93002058c416ace8cde95873589a97fc5dac96a6c6c78a9977d487b7b95426a8f5073969124dd228f043f9f604f041f32fcc465fc1
+ languageName: node
+ linkType: hard
+
+"is-set@npm:^2.0.3":
+ version: 2.0.3
+ resolution: "is-set@npm:2.0.3"
+ checksum: 10c0/f73732e13f099b2dc879c2a12341cfc22ccaca8dd504e6edae26484bd5707a35d503fba5b4daad530a9b088ced1ae6c9d8200fd92e09b428fe14ea79ce8080b7
+ languageName: node
+ linkType: hard
+
+"is-shared-array-buffer@npm:^1.0.2, is-shared-array-buffer@npm:^1.0.3":
+ version: 1.0.3
+ resolution: "is-shared-array-buffer@npm:1.0.3"
+ dependencies:
+ call-bind: "npm:^1.0.7"
+ checksum: 10c0/adc11ab0acbc934a7b9e5e9d6c588d4ec6682f6fea8cda5180721704fa32927582ede5b123349e32517fdadd07958973d24716c80e7ab198970c47acc09e59c7
+ languageName: node
+ linkType: hard
+
+"is-stream@npm:^2.0.0":
+ version: 2.0.1
+ resolution: "is-stream@npm:2.0.1"
+ checksum: 10c0/7c284241313fc6efc329b8d7f08e16c0efeb6baab1b4cd0ba579eb78e5af1aa5da11e68559896a2067cd6c526bd29241dda4eb1225e627d5aa1a89a76d4635a5
+ languageName: node
+ linkType: hard
+
+"is-stream@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "is-stream@npm:3.0.0"
+ checksum: 10c0/eb2f7127af02ee9aa2a0237b730e47ac2de0d4e76a4a905a50a11557f2339df5765eaea4ceb8029f1efa978586abe776908720bfcb1900c20c6ec5145f6f29d8
+ languageName: node
+ linkType: hard
+
+"is-string@npm:^1.0.5, is-string@npm:^1.0.7":
+ version: 1.0.7
+ resolution: "is-string@npm:1.0.7"
+ dependencies:
+ has-tostringtag: "npm:^1.0.0"
+ checksum: 10c0/905f805cbc6eedfa678aaa103ab7f626aac9ebbdc8737abb5243acaa61d9820f8edc5819106b8fcd1839e33db21de9f0116ae20de380c8382d16dc2a601921f6
+ languageName: node
+ linkType: hard
+
+"is-symbol@npm:^1.0.2, is-symbol@npm:^1.0.3":
+ version: 1.0.4
+ resolution: "is-symbol@npm:1.0.4"
+ dependencies:
+ has-symbols: "npm:^1.0.2"
+ checksum: 10c0/9381dd015f7c8906154dbcbf93fad769de16b4b961edc94f88d26eb8c555935caa23af88bda0c93a18e65560f6d7cca0fd5a3f8a8e1df6f1abbb9bead4502ef7
+ languageName: node
+ linkType: hard
+
+"is-typed-array@npm:^1.1.13, is-typed-array@npm:^1.1.3":
+ version: 1.1.13
+ resolution: "is-typed-array@npm:1.1.13"
+ dependencies:
+ which-typed-array: "npm:^1.1.14"
+ checksum: 10c0/fa5cb97d4a80e52c2cc8ed3778e39f175a1a2ae4ddf3adae3187d69586a1fd57cfa0b095db31f66aa90331e9e3da79184cea9c6abdcd1abc722dc3c3edd51cca
+ languageName: node
+ linkType: hard
+
+"is-weakmap@npm:^2.0.2":
+ version: 2.0.2
+ resolution: "is-weakmap@npm:2.0.2"
+ checksum: 10c0/443c35bb86d5e6cc5929cd9c75a4024bb0fff9586ed50b092f94e700b89c43a33b186b76dbc6d54f3d3d09ece689ab38dcdc1af6a482cbe79c0f2da0a17f1299
+ languageName: node
+ linkType: hard
+
+"is-weakref@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "is-weakref@npm:1.0.2"
+ dependencies:
+ call-bind: "npm:^1.0.2"
+ checksum: 10c0/1545c5d172cb690c392f2136c23eec07d8d78a7f57d0e41f10078aa4f5daf5d7f57b6513a67514ab4f073275ad00c9822fc8935e00229d0a2089e1c02685d4b1
+ languageName: node
+ linkType: hard
+
+"is-weakset@npm:^2.0.3":
+ version: 2.0.3
+ resolution: "is-weakset@npm:2.0.3"
+ dependencies:
+ call-bind: "npm:^1.0.7"
+ get-intrinsic: "npm:^1.2.4"
+ checksum: 10c0/8ad6141b6a400e7ce7c7442a13928c676d07b1f315ab77d9912920bf5f4170622f43126f111615788f26c3b1871158a6797c862233124507db0bcc33a9537d1a
+ languageName: node
+ linkType: hard
+
+"is-what@npm:^4.1.8":
+ version: 4.1.16
+ resolution: "is-what@npm:4.1.16"
+ checksum: 10c0/611f1947776826dcf85b57cfb7bd3b3ea6f4b94a9c2f551d4a53f653cf0cb9d1e6518846648256d46ee6c91d114b6d09d2ac8a07306f7430c5900f87466aae5b
+ languageName: node
+ linkType: hard
+
+"is-wsl@npm:^3.1.0":
+ version: 3.1.0
+ resolution: "is-wsl@npm:3.1.0"
+ dependencies:
+ is-inside-container: "npm:^1.0.0"
+ checksum: 10c0/d3317c11995690a32c362100225e22ba793678fe8732660c6de511ae71a0ff05b06980cf21f98a6bf40d7be0e9e9506f859abe00a1118287d63e53d0a3d06947
+ languageName: node
+ linkType: hard
+
+"is64bit@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "is64bit@npm:2.0.0"
+ dependencies:
+ system-architecture: "npm:^0.1.0"
+ checksum: 10c0/9f3741d4b7560e2a30b9ce0c79bb30c7bdcc5df77c897bd59bb68f0fd882ae698015e8da81d48331def66c778d430c1ae3cb8c1fcc34e96c576b66198395faa7
+ languageName: node
+ linkType: hard
+
+"isarray@npm:^2.0.5":
+ version: 2.0.5
+ resolution: "isarray@npm:2.0.5"
+ checksum: 10c0/4199f14a7a13da2177c66c31080008b7124331956f47bca57dd0b6ea9f11687aa25e565a2c7a2b519bc86988d10398e3049a1f5df13c9f6b7664154690ae79fd
+ languageName: node
+ linkType: hard
+
+"isarray@npm:~1.0.0":
+ version: 1.0.0
+ resolution: "isarray@npm:1.0.0"
+ checksum: 10c0/18b5be6669be53425f0b84098732670ed4e727e3af33bc7f948aac01782110eb9a18b3b329c5323bcdd3acdaae547ee077d3951317e7f133bff7105264b3003d
+ languageName: node
+ linkType: hard
+
+"isexe@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "isexe@npm:2.0.0"
+ checksum: 10c0/228cfa503fadc2c31596ab06ed6aa82c9976eec2bfd83397e7eaf06d0ccf42cd1dfd6743bf9aeb01aebd4156d009994c5f76ea898d2832c1fe342da923ca457d
+ languageName: node
+ linkType: hard
+
+"isexe@npm:^3.1.1":
+ version: 3.1.1
+ resolution: "isexe@npm:3.1.1"
+ checksum: 10c0/9ec257654093443eb0a528a9c8cbba9c0ca7616ccb40abd6dde7202734d96bb86e4ac0d764f0f8cd965856aacbff2f4ce23e730dc19dfb41e3b0d865ca6fdcc7
+ languageName: node
+ linkType: hard
+
+"isomorphic-unfetch@npm:3.1.0":
+ version: 3.1.0
+ resolution: "isomorphic-unfetch@npm:3.1.0"
+ dependencies:
+ node-fetch: "npm:^2.6.1"
+ unfetch: "npm:^4.2.0"
+ checksum: 10c0/d3b61fca06304db692b7f76bdfd3a00f410e42cfa7403c3b250546bf71589d18cf2f355922f57198e4cc4a9872d3647b20397a5c3edf1a347c90d57c83cf2a89
+ languageName: node
+ linkType: hard
+
+"isomorphic-ws@npm:^4.0.1":
+ version: 4.0.1
+ resolution: "isomorphic-ws@npm:4.0.1"
+ peerDependencies:
+ ws: "*"
+ checksum: 10c0/7cb90dc2f0eb409825558982fb15d7c1d757a88595efbab879592f9d2b63820d6bbfb5571ab8abe36c715946e165a413a99f6aafd9f40ab1f514d73487bc9996
+ languageName: node
+ linkType: hard
+
+"iterator.prototype@npm:^1.1.2":
+ version: 1.1.2
+ resolution: "iterator.prototype@npm:1.1.2"
+ dependencies:
+ define-properties: "npm:^1.2.1"
+ get-intrinsic: "npm:^1.2.1"
+ has-symbols: "npm:^1.0.3"
+ reflect.getprototypeof: "npm:^1.0.4"
+ set-function-name: "npm:^2.0.1"
+ checksum: 10c0/a32151326095e916f306990d909f6bbf23e3221999a18ba686419535dcd1749b10ded505e89334b77dc4c7a58a8508978f0eb16c2c8573e6d412eb7eb894ea79
+ languageName: node
+ linkType: hard
+
+"jackspeak@npm:^3.1.2":
+ version: 3.2.3
+ resolution: "jackspeak@npm:3.2.3"
+ dependencies:
+ "@isaacs/cliui": "npm:^8.0.2"
+ "@pkgjs/parseargs": "npm:^0.11.0"
+ dependenciesMeta:
+ "@pkgjs/parseargs":
+ optional: true
+ checksum: 10c0/eed7a5056ac8cdafcadeb1fedbfbe96aef4e7fea7cf6f536f48696df7ef4d423c323ba03320860b886ecf1e59d0478bb3d0f8ed7d464932c7e3c0712095425f1
+ languageName: node
+ linkType: hard
+
+"jiti@npm:^1.21.0":
+ version: 1.21.0
+ resolution: "jiti@npm:1.21.0"
+ bin:
+ jiti: bin/jiti.js
+ checksum: 10c0/7f361219fe6c7a5e440d5f1dba4ab763a5538d2df8708cdc22561cf25ea3e44b837687931fca7cdd8cdd9f567300e90be989dd1321650045012d8f9ed6aab07f
+ languageName: node
+ linkType: hard
+
+"js-sdsl@npm:^4.1.4":
+ version: 4.4.2
+ resolution: "js-sdsl@npm:4.4.2"
+ checksum: 10c0/50707728fc31642164f4d83c8087f3750aaa99c450b008b19e236a1f190c9e48f9fc799615c341f9ca2c0803b15ab6f48d92a9cc3e6ffd20065cba7d7e742b92
+ languageName: node
+ linkType: hard
+
+"js-sha3@npm:0.8.0":
+ version: 0.8.0
+ resolution: "js-sha3@npm:0.8.0"
+ checksum: 10c0/43a21dc7967c871bd2c46cb1c2ae97441a97169f324e509f382d43330d8f75cf2c96dba7c806ab08a425765a9c847efdd4bffbac2d99c3a4f3de6c0218f40533
+ languageName: node
+ linkType: hard
+
+"js-tokens@npm:^3.0.0 || ^4.0.0":
+ version: 4.0.0
+ resolution: "js-tokens@npm:4.0.0"
+ checksum: 10c0/e248708d377aa058eacf2037b07ded847790e6de892bbad3dac0abba2e759cb9f121b00099a65195616badcb6eca8d14d975cb3e89eb1cfda644756402c8aeed
+ languageName: node
+ linkType: hard
+
+"js-yaml@npm:^4.1.0":
+ version: 4.1.0
+ resolution: "js-yaml@npm:4.1.0"
+ dependencies:
+ argparse: "npm:^2.0.1"
+ bin:
+ js-yaml: bin/js-yaml.js
+ checksum: 10c0/184a24b4eaacfce40ad9074c64fd42ac83cf74d8c8cd137718d456ced75051229e5061b8633c3366b8aada17945a7a356b337828c19da92b51ae62126575018f
+ languageName: node
+ linkType: hard
+
+"jsbn@npm:1.1.0":
+ version: 1.1.0
+ resolution: "jsbn@npm:1.1.0"
+ checksum: 10c0/4f907fb78d7b712e11dea8c165fe0921f81a657d3443dde75359ed52eb2b5d33ce6773d97985a089f09a65edd80b11cb75c767b57ba47391fee4c969f7215c96
+ languageName: node
+ linkType: hard
+
+"jscrypto@npm:^1.0.1":
+ version: 1.0.3
+ resolution: "jscrypto@npm:1.0.3"
+ bin:
+ jscrypto: bin/cli.js
+ checksum: 10c0/9af6d4db4284d27a43b1228d2d510582fc650f53f6732a16a27d624c9fe28e87e68a7fde5ea2ca12c5d5748ba828715785dea75682f16781ee1e061f1faa505d
+ languageName: node
+ linkType: hard
+
+"json-buffer@npm:3.0.1":
+ version: 3.0.1
+ resolution: "json-buffer@npm:3.0.1"
+ checksum: 10c0/0d1c91569d9588e7eef2b49b59851f297f3ab93c7b35c7c221e288099322be6b562767d11e4821da500f3219542b9afd2e54c5dc573107c1126ed1080f8e96d7
+ languageName: node
+ linkType: hard
+
+"json-rpc-engine@npm:^6.1.0":
+ version: 6.1.0
+ resolution: "json-rpc-engine@npm:6.1.0"
+ dependencies:
+ "@metamask/safe-event-emitter": "npm:^2.0.0"
+ eth-rpc-errors: "npm:^4.0.2"
+ checksum: 10c0/29c480f88152b1987ab0f58f9242ee163d5a7e95cd0d8ae876c08b21657022b82f6008f5eecd048842fb7f6fc3b4e364fde99ca620458772b6abd1d2c1e020d5
+ languageName: node
+ linkType: hard
+
+"json-rpc-middleware-stream@npm:^4.2.1":
+ version: 4.2.3
+ resolution: "json-rpc-middleware-stream@npm:4.2.3"
+ dependencies:
+ "@metamask/safe-event-emitter": "npm:^3.0.0"
+ json-rpc-engine: "npm:^6.1.0"
+ readable-stream: "npm:^2.3.3"
+ checksum: 10c0/d21b86e79b5711c99f4211a4f129c9c24817ea372945cae8ea1425285680e71ff8d0638d4d8738fe480a56baa7f8cd7f9a8330b43b81a0719e522bd5d80567c7
+ languageName: node
+ linkType: hard
+
+"json-schema-traverse@npm:^0.4.1":
+ version: 0.4.1
+ resolution: "json-schema-traverse@npm:0.4.1"
+ checksum: 10c0/108fa90d4cc6f08243aedc6da16c408daf81793bf903e9fd5ab21983cda433d5d2da49e40711da016289465ec2e62e0324dcdfbc06275a607fe3233fde4942ce
+ languageName: node
+ linkType: hard
+
+"json-stable-stringify-without-jsonify@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "json-stable-stringify-without-jsonify@npm:1.0.1"
+ checksum: 10c0/cb168b61fd4de83e58d09aaa6425ef71001bae30d260e2c57e7d09a5fd82223e2f22a042dedaab8db23b7d9ae46854b08bb1f91675a8be11c5cffebef5fb66a5
+ languageName: node
+ linkType: hard
+
+"json-stringify-safe@npm:^5.0.1":
+ version: 5.0.1
+ resolution: "json-stringify-safe@npm:5.0.1"
+ checksum: 10c0/7dbf35cd0411d1d648dceb6d59ce5857ec939e52e4afc37601aa3da611f0987d5cee5b38d58329ceddf3ed48bd7215229c8d52059ab01f2444a338bf24ed0f37
+ languageName: node
+ linkType: hard
+
+"json5@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "json5@npm:1.0.2"
+ dependencies:
+ minimist: "npm:^1.2.0"
+ bin:
+ json5: lib/cli.js
+ checksum: 10c0/9ee316bf21f000b00752e6c2a3b79ecf5324515a5c60ee88983a1910a45426b643a4f3461657586e8aeca87aaf96f0a519b0516d2ae527a6c3e7eed80f68717f
+ languageName: node
+ linkType: hard
+
+"jsonc-parser@npm:^3.2.0":
+ version: 3.2.1
+ resolution: "jsonc-parser@npm:3.2.1"
+ checksum: 10c0/ada66dec143d7f9cb0e2d0d29c69e9ce40d20f3a4cb96b0c6efb745025ac7f9ba647d7ac0990d0adfc37a2d2ae084a12009a9c833dbdbeadf648879a99b9df89
+ languageName: node
+ linkType: hard
+
+"jsx-ast-utils@npm:^2.4.1 || ^3.0.0, jsx-ast-utils@npm:^3.3.5":
+ version: 3.3.5
+ resolution: "jsx-ast-utils@npm:3.3.5"
+ dependencies:
+ array-includes: "npm:^3.1.6"
+ array.prototype.flat: "npm:^1.3.1"
+ object.assign: "npm:^4.1.4"
+ object.values: "npm:^1.1.6"
+ checksum: 10c0/a32679e9cb55469cb6d8bbc863f7d631b2c98b7fc7bf172629261751a6e7bc8da6ae374ddb74d5fbd8b06cf0eb4572287b259813d92b36e384024ed35e4c13e1
+ languageName: node
+ linkType: hard
+
+"keccak256@npm:^1.0.6":
+ version: 1.0.6
+ resolution: "keccak256@npm:1.0.6"
+ dependencies:
+ bn.js: "npm:^5.2.0"
+ buffer: "npm:^6.0.3"
+ keccak: "npm:^3.0.2"
+ checksum: 10c0/2a3f1e281ffd65bcbbae2ee8d62e27f0336efe6f16b7ed9932ad642ed398da62ccbc3d38dcdf43bd2fad9885f02df501dc77a900c358644df296396ed194056f
+ languageName: node
+ linkType: hard
+
+"keccak@npm:^3.0.2":
+ version: 3.0.4
+ resolution: "keccak@npm:3.0.4"
+ dependencies:
+ node-addon-api: "npm:^2.0.0"
+ node-gyp: "npm:latest"
+ node-gyp-build: "npm:^4.2.0"
+ readable-stream: "npm:^3.6.0"
+ checksum: 10c0/153525c1c1f770beadb8f8897dec2f1d2dcbee11d063fe5f61957a5b236bfd3d2a111ae2727e443aa6a848df5edb98b9ef237c78d56df49087b0ca8a232ca9cd
+ languageName: node
+ linkType: hard
+
+"keypress@npm:0.1.x":
+ version: 0.1.0
+ resolution: "keypress@npm:0.1.0"
+ checksum: 10c0/0d6c1921fc92a8b0c1f8dd4845f7b764579a9ac69aa489b9eba60c4fb83f2f7983749534b37f1052b5244a3956d027d8b170aea5c4f24c8dda67b74fa9049a11
+ languageName: node
+ linkType: hard
+
+"keyv@npm:^4.5.3":
+ version: 4.5.4
+ resolution: "keyv@npm:4.5.4"
+ dependencies:
+ json-buffer: "npm:3.0.1"
+ checksum: 10c0/aa52f3c5e18e16bb6324876bb8b59dd02acf782a4b789c7b2ae21107fab95fab3890ed448d4f8dba80ce05391eeac4bfabb4f02a20221342982f806fa2cf271e
+ languageName: node
+ linkType: hard
+
+"keyvaluestorage-interface@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "keyvaluestorage-interface@npm:1.0.0"
+ checksum: 10c0/0e028ebeda79a4e48c7e36708dbe7ced233c7a1f1bc925e506f150dd2ce43178bee8d20361c445bd915569709d9dc9ea80063b4d3c3cf5d615ab43aa31d3ec3d
+ languageName: node
+ linkType: hard
+
+"language-subtag-registry@npm:^0.3.20":
+ version: 0.3.23
+ resolution: "language-subtag-registry@npm:0.3.23"
+ checksum: 10c0/e9b05190421d2cd36dd6c95c28673019c927947cb6d94f40ba7e77a838629ee9675c94accf897fbebb07923187deb843b8fbb8935762df6edafe6c28dcb0b86c
+ languageName: node
+ linkType: hard
+
+"language-tags@npm:^1.0.9":
+ version: 1.0.9
+ resolution: "language-tags@npm:1.0.9"
+ dependencies:
+ language-subtag-registry: "npm:^0.3.20"
+ checksum: 10c0/9ab911213c4bd8bd583c850201c17794e52cb0660d1ab6e32558aadc8324abebf6844e46f92b80a5d600d0fbba7eface2c207bfaf270a1c7fd539e4c3a880bff
+ languageName: node
+ linkType: hard
+
+"levn@npm:^0.4.1":
+ version: 0.4.1
+ resolution: "levn@npm:0.4.1"
+ dependencies:
+ prelude-ls: "npm:^1.2.1"
+ type-check: "npm:~0.4.0"
+ checksum: 10c0/effb03cad7c89dfa5bd4f6989364bfc79994c2042ec5966cb9b95990e2edee5cd8969ddf42616a0373ac49fac1403437deaf6e9050fbbaa3546093a59b9ac94e
+ languageName: node
+ linkType: hard
+
+"libsodium-sumo@npm:^0.7.13":
+ version: 0.7.13
+ resolution: "libsodium-sumo@npm:0.7.13"
+ checksum: 10c0/8159205cc36cc4bdf46ee097e5f998d5cac7d11612be7406a8396ca3ee31560871ac17daa69e47ff0e8407eeae9f49313912ea95dbc8715875301b004c28ef5b
+ languageName: node
+ linkType: hard
+
+"libsodium-wrappers-sumo@npm:^0.7.11":
+ version: 0.7.13
+ resolution: "libsodium-wrappers-sumo@npm:0.7.13"
+ dependencies:
+ libsodium-sumo: "npm:^0.7.13"
+ checksum: 10c0/51a151d0f73418632dcf9cf0184b14d8eb6e16b9a3f01a652c7401c6d1bf8ead4f5ce40a4f00bd4754c5719a7a5fb71d6125691896aeb7a9c1abcfe4b73afc02
+ languageName: node
+ linkType: hard
+
+"libsodium-wrappers@npm:^0.7.6":
+ version: 0.7.13
+ resolution: "libsodium-wrappers@npm:0.7.13"
+ dependencies:
+ libsodium: "npm:^0.7.13"
+ checksum: 10c0/3de2c09a41991832333b379f4eefadd3113abb216c5be8d141eb053bbe904a4d529c01a4bbb8f46c1e2a987c3de1fb9adbb0cf7980155822e06504a38dc16cbb
+ languageName: node
+ linkType: hard
+
+"libsodium@npm:^0.7.13":
+ version: 0.7.13
+ resolution: "libsodium@npm:0.7.13"
+ checksum: 10c0/91a65df81e123d8374b1dcfc1214970203139b4ac75c8032cc2ca390c6173f456d15dbdbf8b79115337086fc2f5a3faa8f96625d909a788125b6ead5894cd5f5
+ languageName: node
+ linkType: hard
+
+"listhen@npm:^1.7.2":
+ version: 1.7.2
+ resolution: "listhen@npm:1.7.2"
+ dependencies:
+ "@parcel/watcher": "npm:^2.4.1"
+ "@parcel/watcher-wasm": "npm:^2.4.1"
+ citty: "npm:^0.1.6"
+ clipboardy: "npm:^4.0.0"
+ consola: "npm:^3.2.3"
+ crossws: "npm:^0.2.0"
+ defu: "npm:^6.1.4"
+ get-port-please: "npm:^3.1.2"
+ h3: "npm:^1.10.2"
+ http-shutdown: "npm:^1.2.2"
+ jiti: "npm:^1.21.0"
+ mlly: "npm:^1.6.1"
+ node-forge: "npm:^1.3.1"
+ pathe: "npm:^1.1.2"
+ std-env: "npm:^3.7.0"
+ ufo: "npm:^1.4.0"
+ untun: "npm:^0.1.3"
+ uqr: "npm:^0.1.2"
+ bin:
+ listen: bin/listhen.mjs
+ listhen: bin/listhen.mjs
+ checksum: 10c0/cd4d0651686b88c61a5bd5d5afc03feb99e352eb7862260112010655cf7997fb3356e61317f09555e2b7412175ae05265fc9e97458aa014586bf9fa4ab22bd5a
+ languageName: node
+ linkType: hard
+
+"locate-path@npm:^6.0.0":
+ version: 6.0.0
+ resolution: "locate-path@npm:6.0.0"
+ dependencies:
+ p-locate: "npm:^5.0.0"
+ checksum: 10c0/d3972ab70dfe58ce620e64265f90162d247e87159b6126b01314dd67be43d50e96a50b517bce2d9452a79409c7614054c277b5232377de50416564a77ac7aad3
+ languageName: node
+ linkType: hard
+
+"lodash.get@npm:^4.4.2":
+ version: 4.4.2
+ resolution: "lodash.get@npm:4.4.2"
+ checksum: 10c0/48f40d471a1654397ed41685495acb31498d5ed696185ac8973daef424a749ca0c7871bf7b665d5c14f5cc479394479e0307e781f61d5573831769593411be6e
+ languageName: node
+ linkType: hard
+
+"lodash.isequal@npm:4.5.0, lodash.isequal@npm:^4.5.0":
+ version: 4.5.0
+ resolution: "lodash.isequal@npm:4.5.0"
+ checksum: 10c0/dfdb2356db19631a4b445d5f37868a095e2402292d59539a987f134a8778c62a2810c2452d11ae9e6dcac71fc9de40a6fedcb20e2952a15b431ad8b29e50e28f
+ languageName: node
+ linkType: hard
+
+"lodash.merge@npm:^4.6.2":
+ version: 4.6.2
+ resolution: "lodash.merge@npm:4.6.2"
+ checksum: 10c0/402fa16a1edd7538de5b5903a90228aa48eb5533986ba7fa26606a49db2572bf414ff73a2c9f5d5fd36b31c46a5d5c7e1527749c07cbcf965ccff5fbdf32c506
+ languageName: node
+ linkType: hard
+
+"lodash@npm:^4.17.21":
+ version: 4.17.21
+ resolution: "lodash@npm:4.17.21"
+ checksum: 10c0/d8cbea072bb08655bb4c989da418994b073a608dffa608b09ac04b43a791b12aeae7cd7ad919aa4c925f33b48490b5cfe6c1f71d827956071dae2e7bb3a6b74c
+ languageName: node
+ linkType: hard
+
+"long@npm:^3 || ^4 || ^5, long@npm:^5.2.3":
+ version: 5.2.3
+ resolution: "long@npm:5.2.3"
+ checksum: 10c0/6a0da658f5ef683b90330b1af76f06790c623e148222da9d75b60e266bbf88f803232dd21464575681638894a84091616e7f89557aa087fd14116c0f4e0e43d9
+ languageName: node
+ linkType: hard
+
+"long@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "long@npm:4.0.0"
+ checksum: 10c0/50a6417d15b06104dbe4e3d4a667c39b137f130a9108ea8752b352a4cfae047531a3ac351c181792f3f8768fe17cca6b0f406674a541a86fb638aaac560d83ed
+ languageName: node
+ linkType: hard
+
+"longest-streak@npm:^3.0.0":
+ version: 3.1.0
+ resolution: "longest-streak@npm:3.1.0"
+ checksum: 10c0/7c2f02d0454b52834d1bcedef79c557bd295ee71fdabb02d041ff3aa9da48a90b5df7c0409156dedbc4df9b65da18742652aaea4759d6ece01f08971af6a7eaa
+ languageName: node
+ linkType: hard
+
+"loose-envify@npm:^1.1.0, loose-envify@npm:^1.4.0":
+ version: 1.4.0
+ resolution: "loose-envify@npm:1.4.0"
+ dependencies:
+ js-tokens: "npm:^3.0.0 || ^4.0.0"
+ bin:
+ loose-envify: cli.js
+ checksum: 10c0/655d110220983c1a4b9c0c679a2e8016d4b67f6e9c7b5435ff5979ecdb20d0813f4dec0a08674fcbdd4846a3f07edbb50a36811fd37930b94aaa0d9daceb017e
+ languageName: node
+ linkType: hard
+
+"lru-cache@npm:^10.0.1":
+ version: 10.2.2
+ resolution: "lru-cache@npm:10.2.2"
+ checksum: 10c0/402d31094335851220d0b00985084288136136992979d0e015f0f1697e15d1c86052d7d53ae86b614e5b058425606efffc6969a31a091085d7a2b80a8a1e26d6
+ languageName: node
+ linkType: hard
+
+"lru-cache@npm:^10.2.0":
+ version: 10.2.0
+ resolution: "lru-cache@npm:10.2.0"
+ checksum: 10c0/c9847612aa2daaef102d30542a8d6d9b2c2bb36581c1bf0dc3ebf5e5f3352c772a749e604afae2e46873b930a9e9523743faac4e5b937c576ab29196774712ee
+ languageName: node
+ linkType: hard
+
+"lru-cache@npm:^6.0.0":
+ version: 6.0.0
+ resolution: "lru-cache@npm:6.0.0"
+ dependencies:
+ yallist: "npm:^4.0.0"
+ checksum: 10c0/cb53e582785c48187d7a188d3379c181b5ca2a9c78d2bce3e7dee36f32761d1c42983da3fe12b55cb74e1779fa94cdc2e5367c028a9b35317184ede0c07a30a9
+ languageName: node
+ linkType: hard
+
+"make-fetch-happen@npm:^13.0.0":
+ version: 13.0.1
+ resolution: "make-fetch-happen@npm:13.0.1"
+ dependencies:
+ "@npmcli/agent": "npm:^2.0.0"
+ cacache: "npm:^18.0.0"
+ http-cache-semantics: "npm:^4.1.1"
+ is-lambda: "npm:^1.0.1"
+ minipass: "npm:^7.0.2"
+ minipass-fetch: "npm:^3.0.0"
+ minipass-flush: "npm:^1.0.5"
+ minipass-pipeline: "npm:^1.2.4"
+ negotiator: "npm:^0.6.3"
+ proc-log: "npm:^4.2.0"
+ promise-retry: "npm:^2.0.1"
+ ssri: "npm:^10.0.0"
+ checksum: 10c0/df5f4dbb6d98153b751bccf4dc4cc500de85a96a9331db9805596c46aa9f99d9555983954e6c1266d9f981ae37a9e4647f42b9a4bb5466f867f4012e582c9e7e
+ languageName: node
+ linkType: hard
+
+"md5.js@npm:^1.3.4":
+ version: 1.3.5
+ resolution: "md5.js@npm:1.3.5"
+ dependencies:
+ hash-base: "npm:^3.0.0"
+ inherits: "npm:^2.0.1"
+ safe-buffer: "npm:^5.1.2"
+ checksum: 10c0/b7bd75077f419c8e013fc4d4dada48be71882e37d69a44af65a2f2804b91e253441eb43a0614423a1c91bb830b8140b0dc906bc797245e2e275759584f4efcc5
+ languageName: node
+ linkType: hard
+
+"mdast-util-from-markdown@npm:^2.0.0":
+ version: 2.0.1
+ resolution: "mdast-util-from-markdown@npm:2.0.1"
+ dependencies:
+ "@types/mdast": "npm:^4.0.0"
+ "@types/unist": "npm:^3.0.0"
+ decode-named-character-reference: "npm:^1.0.0"
+ devlop: "npm:^1.0.0"
+ mdast-util-to-string: "npm:^4.0.0"
+ micromark: "npm:^4.0.0"
+ micromark-util-decode-numeric-character-reference: "npm:^2.0.0"
+ micromark-util-decode-string: "npm:^2.0.0"
+ micromark-util-normalize-identifier: "npm:^2.0.0"
+ micromark-util-symbol: "npm:^2.0.0"
+ micromark-util-types: "npm:^2.0.0"
+ unist-util-stringify-position: "npm:^4.0.0"
+ checksum: 10c0/496596bc6419200ff6258531a0ebcaee576a5c169695f5aa296a79a85f2a221bb9247d565827c709a7c2acfb56ae3c3754bf483d86206617bd299a9658c8121c
+ languageName: node
+ linkType: hard
+
+"mdast-util-mdx-expression@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "mdast-util-mdx-expression@npm:2.0.0"
+ dependencies:
+ "@types/estree-jsx": "npm:^1.0.0"
+ "@types/hast": "npm:^3.0.0"
+ "@types/mdast": "npm:^4.0.0"
+ devlop: "npm:^1.0.0"
+ mdast-util-from-markdown: "npm:^2.0.0"
+ mdast-util-to-markdown: "npm:^2.0.0"
+ checksum: 10c0/512848cbc44b9dc7cffc1bb3f95f7e67f0d6562870e56a67d25647f475d411e136b915ba417c8069fb36eac1839d0209fb05fb323d377f35626a82fcb0879363
+ languageName: node
+ linkType: hard
+
+"mdast-util-mdx-jsx@npm:^3.0.0":
+ version: 3.1.2
+ resolution: "mdast-util-mdx-jsx@npm:3.1.2"
+ dependencies:
+ "@types/estree-jsx": "npm:^1.0.0"
+ "@types/hast": "npm:^3.0.0"
+ "@types/mdast": "npm:^4.0.0"
+ "@types/unist": "npm:^3.0.0"
+ ccount: "npm:^2.0.0"
+ devlop: "npm:^1.1.0"
+ mdast-util-from-markdown: "npm:^2.0.0"
+ mdast-util-to-markdown: "npm:^2.0.0"
+ parse-entities: "npm:^4.0.0"
+ stringify-entities: "npm:^4.0.0"
+ unist-util-remove-position: "npm:^5.0.0"
+ unist-util-stringify-position: "npm:^4.0.0"
+ vfile-message: "npm:^4.0.0"
+ checksum: 10c0/855b60c3db9bde2fe142bd366597f7bd5892fc288428ba054e26ffcffc07bfe5648c0792d614ba6e08b1eab9784ffc3c1267cf29dfc6db92b419d68b5bcd487d
+ languageName: node
+ linkType: hard
+
+"mdast-util-mdxjs-esm@npm:^2.0.0":
+ version: 2.0.1
+ resolution: "mdast-util-mdxjs-esm@npm:2.0.1"
+ dependencies:
+ "@types/estree-jsx": "npm:^1.0.0"
+ "@types/hast": "npm:^3.0.0"
+ "@types/mdast": "npm:^4.0.0"
+ devlop: "npm:^1.0.0"
+ mdast-util-from-markdown: "npm:^2.0.0"
+ mdast-util-to-markdown: "npm:^2.0.0"
+ checksum: 10c0/5bda92fc154141705af2b804a534d891f28dac6273186edf1a4c5e3f045d5b01dbcac7400d27aaf91b7e76e8dce007c7b2fdf136c11ea78206ad00bdf9db46bc
+ languageName: node
+ linkType: hard
+
+"mdast-util-phrasing@npm:^4.0.0":
+ version: 4.1.0
+ resolution: "mdast-util-phrasing@npm:4.1.0"
+ dependencies:
+ "@types/mdast": "npm:^4.0.0"
+ unist-util-is: "npm:^6.0.0"
+ checksum: 10c0/bf6c31d51349aa3d74603d5e5a312f59f3f65662ed16c58017169a5fb0f84ca98578f626c5ee9e4aa3e0a81c996db8717096705521bddb4a0185f98c12c9b42f
+ languageName: node
+ linkType: hard
+
+"mdast-util-to-hast@npm:^13.0.0":
+ version: 13.2.0
+ resolution: "mdast-util-to-hast@npm:13.2.0"
+ dependencies:
+ "@types/hast": "npm:^3.0.0"
+ "@types/mdast": "npm:^4.0.0"
+ "@ungap/structured-clone": "npm:^1.0.0"
+ devlop: "npm:^1.0.0"
+ micromark-util-sanitize-uri: "npm:^2.0.0"
+ trim-lines: "npm:^3.0.0"
+ unist-util-position: "npm:^5.0.0"
+ unist-util-visit: "npm:^5.0.0"
+ vfile: "npm:^6.0.0"
+ checksum: 10c0/9ee58def9287df8350cbb6f83ced90f9c088d72d4153780ad37854f87144cadc6f27b20347073b285173b1649b0723ddf0b9c78158608a804dcacb6bda6e1816
+ languageName: node
+ linkType: hard
+
+"mdast-util-to-markdown@npm:^2.0.0":
+ version: 2.1.0
+ resolution: "mdast-util-to-markdown@npm:2.1.0"
+ dependencies:
+ "@types/mdast": "npm:^4.0.0"
+ "@types/unist": "npm:^3.0.0"
+ longest-streak: "npm:^3.0.0"
+ mdast-util-phrasing: "npm:^4.0.0"
+ mdast-util-to-string: "npm:^4.0.0"
+ micromark-util-decode-string: "npm:^2.0.0"
+ unist-util-visit: "npm:^5.0.0"
+ zwitch: "npm:^2.0.0"
+ checksum: 10c0/8bd37a9627a438ef6418d6642661904d0cc03c5c732b8b018a8e238ef5cc82fe8aef1940b19c6f563245e58b9659f35e527209bd3fe145f3c723ba14d18fc3e6
+ languageName: node
+ linkType: hard
+
+"mdast-util-to-string@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "mdast-util-to-string@npm:4.0.0"
+ dependencies:
+ "@types/mdast": "npm:^4.0.0"
+ checksum: 10c0/2d3c1af29bf3fe9c20f552ee9685af308002488f3b04b12fa66652c9718f66f41a32f8362aa2d770c3ff464c034860b41715902ada2306bb0a055146cef064d7
+ languageName: node
+ linkType: hard
+
+"media-query-parser@npm:^2.0.2":
+ version: 2.0.2
+ resolution: "media-query-parser@npm:2.0.2"
+ dependencies:
+ "@babel/runtime": "npm:^7.12.5"
+ checksum: 10c0/91a987e9f6620f5c7d0fcf22bd0a106bbaccdef96aba62c461656ee656e141dd2b60f2f1d99411799183c2ea993bd177ca92c26c08bf321fbc0c846ab391d79c
+ languageName: node
+ linkType: hard
+
+"merge-stream@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "merge-stream@npm:2.0.0"
+ checksum: 10c0/867fdbb30a6d58b011449b8885601ec1690c3e41c759ecd5a9d609094f7aed0096c37823ff4a7190ef0b8f22cc86beb7049196ff68c016e3b3c671d0dac91ce5
+ languageName: node
+ linkType: hard
+
+"merge2@npm:^1.3.0, merge2@npm:^1.4.1":
+ version: 1.4.1
+ resolution: "merge2@npm:1.4.1"
+ checksum: 10c0/254a8a4605b58f450308fc474c82ac9a094848081bf4c06778200207820e5193726dc563a0d2c16468810516a5c97d9d3ea0ca6585d23c58ccfff2403e8dbbeb
+ languageName: node
+ linkType: hard
+
+"micromark-core-commonmark@npm:^2.0.0":
+ version: 2.0.1
+ resolution: "micromark-core-commonmark@npm:2.0.1"
+ dependencies:
+ decode-named-character-reference: "npm:^1.0.0"
+ devlop: "npm:^1.0.0"
+ micromark-factory-destination: "npm:^2.0.0"
+ micromark-factory-label: "npm:^2.0.0"
+ micromark-factory-space: "npm:^2.0.0"
+ micromark-factory-title: "npm:^2.0.0"
+ micromark-factory-whitespace: "npm:^2.0.0"
+ micromark-util-character: "npm:^2.0.0"
+ micromark-util-chunked: "npm:^2.0.0"
+ micromark-util-classify-character: "npm:^2.0.0"
+ micromark-util-html-tag-name: "npm:^2.0.0"
+ micromark-util-normalize-identifier: "npm:^2.0.0"
+ micromark-util-resolve-all: "npm:^2.0.0"
+ micromark-util-subtokenize: "npm:^2.0.0"
+ micromark-util-symbol: "npm:^2.0.0"
+ micromark-util-types: "npm:^2.0.0"
+ checksum: 10c0/a0b280b1b6132f600518e72cb29a4dd1b2175b85f5ed5b25d2c5695e42b876b045971370daacbcfc6b4ce8cf7acbf78dd3a0284528fb422b450144f4b3bebe19
+ languageName: node
+ linkType: hard
+
+"micromark-factory-destination@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "micromark-factory-destination@npm:2.0.0"
+ dependencies:
+ micromark-util-character: "npm:^2.0.0"
+ micromark-util-symbol: "npm:^2.0.0"
+ micromark-util-types: "npm:^2.0.0"
+ checksum: 10c0/b73492f687d41a6a379159c2f3acbf813042346bcea523d9041d0cc6124e6715f0779dbb2a0b3422719e9764c3b09f9707880aa159557e3cb4aeb03b9d274915
+ languageName: node
+ linkType: hard
+
+"micromark-factory-label@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "micromark-factory-label@npm:2.0.0"
+ dependencies:
+ devlop: "npm:^1.0.0"
+ micromark-util-character: "npm:^2.0.0"
+ micromark-util-symbol: "npm:^2.0.0"
+ micromark-util-types: "npm:^2.0.0"
+ checksum: 10c0/8ffad00487a7891941b1d1f51d53a33c7a659dcf48617edb7a4008dad7aff67ec316baa16d55ca98ae3d75ce1d81628dbf72fedc7c6f108f740dec0d5d21c8ee
+ languageName: node
+ linkType: hard
+
+"micromark-factory-space@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "micromark-factory-space@npm:2.0.0"
+ dependencies:
+ micromark-util-character: "npm:^2.0.0"
+ micromark-util-types: "npm:^2.0.0"
+ checksum: 10c0/103ca954dade963d4ff1d2f27d397833fe855ddc72590205022832ef68b775acdea67949000cee221708e376530b1de78c745267b0bf8366740840783eb37122
+ languageName: node
+ linkType: hard
+
+"micromark-factory-title@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "micromark-factory-title@npm:2.0.0"
+ dependencies:
+ micromark-factory-space: "npm:^2.0.0"
+ micromark-util-character: "npm:^2.0.0"
+ micromark-util-symbol: "npm:^2.0.0"
+ micromark-util-types: "npm:^2.0.0"
+ checksum: 10c0/2b2188e7a011b1b001faf8c860286d246d5c3485ef8819270c60a5808f4c7613e49d4e481dbdff62600ef7acdba0f5100be2d125cbd2a15e236c26b3668a8ebd
+ languageName: node
+ linkType: hard
+
+"micromark-factory-whitespace@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "micromark-factory-whitespace@npm:2.0.0"
+ dependencies:
+ micromark-factory-space: "npm:^2.0.0"
+ micromark-util-character: "npm:^2.0.0"
+ micromark-util-symbol: "npm:^2.0.0"
+ micromark-util-types: "npm:^2.0.0"
+ checksum: 10c0/4e91baab0cc71873095134bd0e225d01d9786cde352701402d71b72d317973954754e8f9f1849901f165530e6421202209f4d97c460a27bb0808ec5a3fc3148c
+ languageName: node
+ linkType: hard
+
+"micromark-util-character@npm:^2.0.0":
+ version: 2.1.0
+ resolution: "micromark-util-character@npm:2.1.0"
+ dependencies:
+ micromark-util-symbol: "npm:^2.0.0"
+ micromark-util-types: "npm:^2.0.0"
+ checksum: 10c0/fc37a76aaa5a5138191ba2bef1ac50c36b3bcb476522e98b1a42304ab4ec76f5b036a746ddf795d3de3e7004b2c09f21dd1bad42d161f39b8cfc0acd067e6373
+ languageName: node
+ linkType: hard
+
+"micromark-util-chunked@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "micromark-util-chunked@npm:2.0.0"
+ dependencies:
+ micromark-util-symbol: "npm:^2.0.0"
+ checksum: 10c0/043b5f2abc8c13a1e2e4c378ead191d1a47ed9e0cd6d0fa5a0a430b2df9e17ada9d5de5a20688a000bbc5932507e746144acec60a9589d9a79fa60918e029203
+ languageName: node
+ linkType: hard
+
+"micromark-util-classify-character@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "micromark-util-classify-character@npm:2.0.0"
+ dependencies:
+ micromark-util-character: "npm:^2.0.0"
+ micromark-util-symbol: "npm:^2.0.0"
+ micromark-util-types: "npm:^2.0.0"
+ checksum: 10c0/2bf5fa5050faa9b69f6c7e51dbaaf02329ab70fabad8229984381b356afbbf69db90f4617bec36d814a7d285fb7cad8e3c4e38d1daf4387dc9e240aa7f9a292a
+ languageName: node
+ linkType: hard
+
+"micromark-util-combine-extensions@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "micromark-util-combine-extensions@npm:2.0.0"
+ dependencies:
+ micromark-util-chunked: "npm:^2.0.0"
+ micromark-util-types: "npm:^2.0.0"
+ checksum: 10c0/cd4c8d1a85255527facb419ff3b3cc3d7b7f27005c5ef5fa7ef2c4d0e57a9129534fc292a188ec2d467c2c458642d369c5f894bc8a9e142aed6696cc7989d3ea
+ languageName: node
+ linkType: hard
+
+"micromark-util-decode-numeric-character-reference@npm:^2.0.0":
+ version: 2.0.1
+ resolution: "micromark-util-decode-numeric-character-reference@npm:2.0.1"
+ dependencies:
+ micromark-util-symbol: "npm:^2.0.0"
+ checksum: 10c0/3f6d684ee8f317c67806e19b3e761956256cb936a2e0533aad6d49ac5604c6536b2041769c6febdd387ab7175b7b7e551851bf2c1f78da943e7a3671ca7635ac
+ languageName: node
+ linkType: hard
+
+"micromark-util-decode-string@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "micromark-util-decode-string@npm:2.0.0"
+ dependencies:
+ decode-named-character-reference: "npm:^1.0.0"
+ micromark-util-character: "npm:^2.0.0"
+ micromark-util-decode-numeric-character-reference: "npm:^2.0.0"
+ micromark-util-symbol: "npm:^2.0.0"
+ checksum: 10c0/f5413bebb21bdb686cfa1bcfa7e9c93093a523d1b42443ead303b062d2d680a94e5e8424549f57b8ba9d786a758e5a26a97f56068991bbdbca5d1885b3aa7227
+ languageName: node
+ linkType: hard
+
+"micromark-util-encode@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "micromark-util-encode@npm:2.0.0"
+ checksum: 10c0/ebdaafff23100bbf4c74e63b4b1612a9ddf94cd7211d6a076bc6fb0bc32c1b48d6fb615aa0953e607c62c97d849f97f1042260d3eb135259d63d372f401bbbb2
+ languageName: node
+ linkType: hard
+
+"micromark-util-html-tag-name@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "micromark-util-html-tag-name@npm:2.0.0"
+ checksum: 10c0/988aa26367449bd345b627ae32cf605076daabe2dc1db71b578a8a511a47123e14af466bcd6dcbdacec60142f07bc2723ec5f7a0eed0f5319ce83b5e04825429
+ languageName: node
+ linkType: hard
+
+"micromark-util-normalize-identifier@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "micromark-util-normalize-identifier@npm:2.0.0"
+ dependencies:
+ micromark-util-symbol: "npm:^2.0.0"
+ checksum: 10c0/93bf8789b8449538f22cf82ac9b196363a5f3b2f26efd98aef87c4c1b1f8c05be3ef6391ff38316ff9b03c1a6fd077342567598019ddd12b9bd923dacc556333
+ languageName: node
+ linkType: hard
+
+"micromark-util-resolve-all@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "micromark-util-resolve-all@npm:2.0.0"
+ dependencies:
+ micromark-util-types: "npm:^2.0.0"
+ checksum: 10c0/3b912e88453dcefe728a9080c8934a75ac4732056d6576ceecbcaf97f42c5d6fa2df66db8abdc8427eb167c5ffddefe26713728cfe500bc0e314ed260d6e2746
+ languageName: node
+ linkType: hard
+
+"micromark-util-sanitize-uri@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "micromark-util-sanitize-uri@npm:2.0.0"
+ dependencies:
+ micromark-util-character: "npm:^2.0.0"
+ micromark-util-encode: "npm:^2.0.0"
+ micromark-util-symbol: "npm:^2.0.0"
+ checksum: 10c0/74763ca1c927dd520d3ab8fd9856a19740acf76fc091f0a1f5d4e99c8cd5f1b81c5a0be3efb564941a071fb6d85fd951103f2760eb6cff77b5ab3abe08341309
+ languageName: node
+ linkType: hard
+
+"micromark-util-subtokenize@npm:^2.0.0":
+ version: 2.0.1
+ resolution: "micromark-util-subtokenize@npm:2.0.1"
+ dependencies:
+ devlop: "npm:^1.0.0"
+ micromark-util-chunked: "npm:^2.0.0"
+ micromark-util-symbol: "npm:^2.0.0"
+ micromark-util-types: "npm:^2.0.0"
+ checksum: 10c0/000cefde827db129f4ed92b8fbdeb4866c5f9c93068c0115485564b0426abcb9058080aa257df9035e12ca7fa92259d66623ea750b9eb3bcdd8325d3fb6fc237
+ languageName: node
+ linkType: hard
+
+"micromark-util-symbol@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "micromark-util-symbol@npm:2.0.0"
+ checksum: 10c0/4e76186c185ce4cefb9cea8584213d9ffacd77099d1da30c0beb09fa21f46f66f6de4c84c781d7e34ff763fe3a06b530e132fa9004882afab9e825238d0aa8b3
+ languageName: node
+ linkType: hard
+
+"micromark-util-types@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "micromark-util-types@npm:2.0.0"
+ checksum: 10c0/d74e913b9b61268e0d6939f4209e3abe9dada640d1ee782419b04fd153711112cfaaa3c4d5f37225c9aee1e23c3bb91a1f5223e1e33ba92d33e83956a53e61de
+ languageName: node
+ linkType: hard
+
+"micromark@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "micromark@npm:4.0.0"
+ dependencies:
+ "@types/debug": "npm:^4.0.0"
+ debug: "npm:^4.0.0"
+ decode-named-character-reference: "npm:^1.0.0"
+ devlop: "npm:^1.0.0"
+ micromark-core-commonmark: "npm:^2.0.0"
+ micromark-factory-space: "npm:^2.0.0"
+ micromark-util-character: "npm:^2.0.0"
+ micromark-util-chunked: "npm:^2.0.0"
+ micromark-util-combine-extensions: "npm:^2.0.0"
+ micromark-util-decode-numeric-character-reference: "npm:^2.0.0"
+ micromark-util-encode: "npm:^2.0.0"
+ micromark-util-normalize-identifier: "npm:^2.0.0"
+ micromark-util-resolve-all: "npm:^2.0.0"
+ micromark-util-sanitize-uri: "npm:^2.0.0"
+ micromark-util-subtokenize: "npm:^2.0.0"
+ micromark-util-symbol: "npm:^2.0.0"
+ micromark-util-types: "npm:^2.0.0"
+ checksum: 10c0/7e91c8d19ff27bc52964100853f1b3b32bb5b2ece57470a34ba1b2f09f4e2a183d90106c4ae585c9f2046969ee088576fed79b2f7061cba60d16652ccc2c64fd
+ languageName: node
+ linkType: hard
+
+"micromatch@npm:^4.0.4":
+ version: 4.0.7
+ resolution: "micromatch@npm:4.0.7"
+ dependencies:
+ braces: "npm:^3.0.3"
+ picomatch: "npm:^2.3.1"
+ checksum: 10c0/58fa99bc5265edec206e9163a1d2cec5fabc46a5b473c45f4a700adce88c2520456ae35f2b301e4410fb3afb27e9521fb2813f6fc96be0a48a89430e0916a772
+ languageName: node
+ linkType: hard
+
+"micromatch@npm:^4.0.5":
+ version: 4.0.5
+ resolution: "micromatch@npm:4.0.5"
+ dependencies:
+ braces: "npm:^3.0.2"
+ picomatch: "npm:^2.3.1"
+ checksum: 10c0/3d6505b20f9fa804af5d8c596cb1c5e475b9b0cd05f652c5b56141cf941bd72adaeb7a436fda344235cef93a7f29b7472efc779fcdb83b478eab0867b95cdeff
+ languageName: node
+ linkType: hard
+
+"miller-rabin@npm:^4.0.0":
+ version: 4.0.1
+ resolution: "miller-rabin@npm:4.0.1"
+ dependencies:
+ bn.js: "npm:^4.0.0"
+ brorand: "npm:^1.0.1"
+ bin:
+ miller-rabin: bin/miller-rabin
+ checksum: 10c0/26b2b96f6e49dbcff7faebb78708ed2f5f9ae27ac8cbbf1d7c08f83cf39bed3d418c0c11034dce997da70d135cc0ff6f3a4c15dc452f8e114c11986388a64346
+ languageName: node
+ linkType: hard
+
+"mime-db@npm:1.52.0":
+ version: 1.52.0
+ resolution: "mime-db@npm:1.52.0"
+ checksum: 10c0/0557a01deebf45ac5f5777fe7740b2a5c309c6d62d40ceab4e23da9f821899ce7a900b7ac8157d4548ddbb7beffe9abc621250e6d182b0397ec7f10c7b91a5aa
+ languageName: node
+ linkType: hard
+
+"mime-types@npm:^2.1.12":
+ version: 2.1.35
+ resolution: "mime-types@npm:2.1.35"
+ dependencies:
+ mime-db: "npm:1.52.0"
+ checksum: 10c0/82fb07ec56d8ff1fc999a84f2f217aa46cb6ed1033fefaabd5785b9a974ed225c90dc72fff460259e66b95b73648596dbcc50d51ed69cdf464af2d237d3149b2
+ languageName: node
+ linkType: hard
+
+"mime@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "mime@npm:3.0.0"
+ bin:
+ mime: cli.js
+ checksum: 10c0/402e792a8df1b2cc41cb77f0dcc46472b7944b7ec29cb5bbcd398624b6b97096728f1239766d3fdeb20551dd8d94738344c195a6ea10c4f906eb0356323b0531
+ languageName: node
+ linkType: hard
+
+"mimic-fn@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "mimic-fn@npm:4.0.0"
+ checksum: 10c0/de9cc32be9996fd941e512248338e43407f63f6d497abe8441fa33447d922e927de54d4cc3c1a3c6d652857acd770389d5a3823f311a744132760ce2be15ccbf
+ languageName: node
+ linkType: hard
+
+"minimalistic-assert@npm:^1.0.0, minimalistic-assert@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "minimalistic-assert@npm:1.0.1"
+ checksum: 10c0/96730e5601cd31457f81a296f521eb56036e6f69133c0b18c13fe941109d53ad23a4204d946a0d638d7f3099482a0cec8c9bb6d642604612ce43ee536be3dddd
+ languageName: node
+ linkType: hard
+
+"minimalistic-crypto-utils@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "minimalistic-crypto-utils@npm:1.0.1"
+ checksum: 10c0/790ecec8c5c73973a4fbf2c663d911033e8494d5fb0960a4500634766ab05d6107d20af896ca2132e7031741f19888154d44b2408ada0852446705441383e9f8
+ languageName: node
+ linkType: hard
+
+"minimatch@npm:^3.0.4, minimatch@npm:^3.0.5, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2":
+ version: 3.1.2
+ resolution: "minimatch@npm:3.1.2"
+ dependencies:
+ brace-expansion: "npm:^1.1.7"
+ checksum: 10c0/0262810a8fc2e72cca45d6fd86bd349eee435eb95ac6aa45c9ea2180e7ee875ef44c32b55b5973ceabe95ea12682f6e3725cbb63d7a2d1da3ae1163c8b210311
+ languageName: node
+ linkType: hard
+
+"minimatch@npm:^9.0.4":
+ version: 9.0.4
+ resolution: "minimatch@npm:9.0.4"
+ dependencies:
+ brace-expansion: "npm:^2.0.1"
+ checksum: 10c0/2c16f21f50e64922864e560ff97c587d15fd491f65d92a677a344e970fe62aafdbeafe648965fa96d33c061b4d0eabfe0213466203dd793367e7f28658cf6414
+ languageName: node
+ linkType: hard
+
+"minimist@npm:^1.2.0, minimist@npm:^1.2.6":
+ version: 1.2.8
+ resolution: "minimist@npm:1.2.8"
+ checksum: 10c0/19d3fcdca050087b84c2029841a093691a91259a47def2f18222f41e7645a0b7c44ef4b40e88a1e58a40c84d2ef0ee6047c55594d298146d0eb3f6b737c20ce6
+ languageName: node
+ linkType: hard
+
+"minipass-collect@npm:^2.0.1":
+ version: 2.0.1
+ resolution: "minipass-collect@npm:2.0.1"
+ dependencies:
+ minipass: "npm:^7.0.3"
+ checksum: 10c0/5167e73f62bb74cc5019594709c77e6a742051a647fe9499abf03c71dca75515b7959d67a764bdc4f8b361cf897fbf25e2d9869ee039203ed45240f48b9aa06e
+ languageName: node
+ linkType: hard
+
+"minipass-fetch@npm:^3.0.0":
+ version: 3.0.5
+ resolution: "minipass-fetch@npm:3.0.5"
+ dependencies:
+ encoding: "npm:^0.1.13"
+ minipass: "npm:^7.0.3"
+ minipass-sized: "npm:^1.0.3"
+ minizlib: "npm:^2.1.2"
+ dependenciesMeta:
+ encoding:
+ optional: true
+ checksum: 10c0/9d702d57f556274286fdd97e406fc38a2f5c8d15e158b498d7393b1105974b21249289ec571fa2b51e038a4872bfc82710111cf75fae98c662f3d6f95e72152b
+ languageName: node
+ linkType: hard
+
+"minipass-flush@npm:^1.0.5":
+ version: 1.0.5
+ resolution: "minipass-flush@npm:1.0.5"
+ dependencies:
+ minipass: "npm:^3.0.0"
+ checksum: 10c0/2a51b63feb799d2bb34669205eee7c0eaf9dce01883261a5b77410c9408aa447e478efd191b4de6fc1101e796ff5892f8443ef20d9544385819093dbb32d36bd
+ languageName: node
+ linkType: hard
+
+"minipass-pipeline@npm:^1.2.4":
+ version: 1.2.4
+ resolution: "minipass-pipeline@npm:1.2.4"
+ dependencies:
+ minipass: "npm:^3.0.0"
+ checksum: 10c0/cbda57cea20b140b797505dc2cac71581a70b3247b84480c1fed5ca5ba46c25ecc25f68bfc9e6dcb1a6e9017dab5c7ada5eab73ad4f0a49d84e35093e0c643f2
+ languageName: node
+ linkType: hard
+
+"minipass-sized@npm:^1.0.3":
+ version: 1.0.3
+ resolution: "minipass-sized@npm:1.0.3"
+ dependencies:
+ minipass: "npm:^3.0.0"
+ checksum: 10c0/298f124753efdc745cfe0f2bdfdd81ba25b9f4e753ca4a2066eb17c821f25d48acea607dfc997633ee5bf7b6dfffb4eee4f2051eb168663f0b99fad2fa4829cb
+ languageName: node
+ linkType: hard
+
+"minipass@npm:^3.0.0":
+ version: 3.3.6
+ resolution: "minipass@npm:3.3.6"
+ dependencies:
+ yallist: "npm:^4.0.0"
+ checksum: 10c0/a114746943afa1dbbca8249e706d1d38b85ed1298b530f5808ce51f8e9e941962e2a5ad2e00eae7dd21d8a4aae6586a66d4216d1a259385e9d0358f0c1eba16c
+ languageName: node
+ linkType: hard
+
+"minipass@npm:^5.0.0":
+ version: 5.0.0
+ resolution: "minipass@npm:5.0.0"
+ checksum: 10c0/a91d8043f691796a8ac88df039da19933ef0f633e3d7f0d35dcd5373af49131cf2399bfc355f41515dc495e3990369c3858cd319e5c2722b4753c90bf3152462
+ languageName: node
+ linkType: hard
+
+"minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.2, minipass@npm:^7.0.3, minipass@npm:^7.1.2":
+ version: 7.1.2
+ resolution: "minipass@npm:7.1.2"
+ checksum: 10c0/b0fd20bb9fb56e5fa9a8bfac539e8915ae07430a619e4b86ff71f5fc757ef3924b23b2c4230393af1eda647ed3d75739e4e0acb250a6b1eb277cf7f8fe449557
+ languageName: node
+ linkType: hard
+
+"minizlib@npm:^2.1.1, minizlib@npm:^2.1.2":
+ version: 2.1.2
+ resolution: "minizlib@npm:2.1.2"
+ dependencies:
+ minipass: "npm:^3.0.0"
+ yallist: "npm:^4.0.0"
+ checksum: 10c0/64fae024e1a7d0346a1102bb670085b17b7f95bf6cfdf5b128772ec8faf9ea211464ea4add406a3a6384a7d87a0cd1a96263692134323477b4fb43659a6cab78
+ languageName: node
+ linkType: hard
+
+"mkdirp@npm:^1.0.3":
+ version: 1.0.4
+ resolution: "mkdirp@npm:1.0.4"
+ bin:
+ mkdirp: bin/cmd.js
+ checksum: 10c0/46ea0f3ffa8bc6a5bc0c7081ffc3907777f0ed6516888d40a518c5111f8366d97d2678911ad1a6882bf592fa9de6c784fea32e1687bb94e1f4944170af48a5cf
+ languageName: node
+ linkType: hard
+
+"mlly@npm:^1.2.0, mlly@npm:^1.6.1":
+ version: 1.6.1
+ resolution: "mlly@npm:1.6.1"
+ dependencies:
+ acorn: "npm:^8.11.3"
+ pathe: "npm:^1.1.2"
+ pkg-types: "npm:^1.0.3"
+ ufo: "npm:^1.3.2"
+ checksum: 10c0/a7bf26b3d4f83b0f5a5232caa3af44be08b464f562f31c11d885d1bc2d43b7d717137d47b0c06fdc69e1b33ffc09f902b6d2b18de02c577849d40914e8785092
+ languageName: node
+ linkType: hard
+
+"mobx@npm:^6.1.7":
+ version: 6.12.3
+ resolution: "mobx@npm:6.12.3"
+ checksum: 10c0/33e1d27d33adea0ceb4de32eb66b4384e81a249be5e01baa6bf556f458fd62a83d23bfa0cf8ba9e87c28f0d810ae301ee0e7322fd48a3bf47db33ffb08d5826c
+ languageName: node
+ linkType: hard
+
+"modern-ahocorasick@npm:^1.0.0":
+ version: 1.0.1
+ resolution: "modern-ahocorasick@npm:1.0.1"
+ checksum: 10c0/90ef4516ba8eef136d0cd4949faacdadee02217b8e25deda2881054ca8fcc32b985ef159b6e794c40e11c51040303c8e2975b20b23b86ec8a2a63516bbf93add
+ languageName: node
+ linkType: hard
+
+"mri@npm:^1.2.0":
+ version: 1.2.0
+ resolution: "mri@npm:1.2.0"
+ checksum: 10c0/a3d32379c2554cf7351db6237ddc18dc9e54e4214953f3da105b97dc3babe0deb3ffe99cf409b38ea47cc29f9430561ba6b53b24ab8f9ce97a4b50409e4a50e7
+ languageName: node
+ linkType: hard
+
+"ms@npm:2.1.2":
+ version: 2.1.2
+ resolution: "ms@npm:2.1.2"
+ checksum: 10c0/a437714e2f90dbf881b5191d35a6db792efbca5badf112f87b9e1c712aace4b4b9b742dd6537f3edf90fd6f684de897cec230abde57e87883766712ddda297cc
+ languageName: node
+ linkType: hard
+
+"ms@npm:^2.1.1":
+ version: 2.1.3
+ resolution: "ms@npm:2.1.3"
+ checksum: 10c0/d924b57e7312b3b63ad21fc5b3dc0af5e78d61a1fc7cfb5457edaf26326bf62be5307cc87ffb6862ef1c2b33b0233cdb5d4f01c4c958cc0d660948b65a287a48
+ languageName: node
+ linkType: hard
+
+"multiformats@npm:^9.4.2":
+ version: 9.9.0
+ resolution: "multiformats@npm:9.9.0"
+ checksum: 10c0/1fdb34fd2fb085142665e8bd402570659b50a5fae5994027e1df3add9e1ce1283ed1e0c2584a5c63ac0a58e871b8ee9665c4a99ca36ce71032617449d48aa975
+ languageName: node
+ linkType: hard
+
+"nan@npm:^2.13.2":
+ version: 2.19.0
+ resolution: "nan@npm:2.19.0"
+ dependencies:
+ node-gyp: "npm:latest"
+ checksum: 10c0/b8d05d75f92ee9d94affa50d0aa41b6c698254c848529452d7ab67c2e0d160a83f563bfe2cbd53e077944eceb48c757f83c93634c7c9ff404c9ec1ed4e5ced1a
+ languageName: node
+ linkType: hard
+
+"nanoid@npm:^3.3.6":
+ version: 3.3.7
+ resolution: "nanoid@npm:3.3.7"
+ bin:
+ nanoid: bin/nanoid.cjs
+ checksum: 10c0/e3fb661aa083454f40500473bb69eedb85dc160e763150b9a2c567c7e9ff560ce028a9f833123b618a6ea742e311138b591910e795614a629029e86e180660f3
+ languageName: node
+ linkType: hard
+
+"napi-wasm@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "napi-wasm@npm:1.1.0"
+ checksum: 10c0/074df6b5b72698f07b39ca3c448a3fcbaf8e6e78521f0cb3aefd8c2f059d69eae0e3bfe367b4aa3df1976c25e351e4e52a359f22fb2c379eb6781bfa042f582b
+ languageName: node
+ linkType: hard
+
+"natural-compare@npm:^1.4.0":
+ version: 1.4.0
+ resolution: "natural-compare@npm:1.4.0"
+ checksum: 10c0/f5f9a7974bfb28a91afafa254b197f0f22c684d4a1731763dda960d2c8e375b36c7d690e0d9dc8fba774c537af14a7e979129bca23d88d052fbeb9466955e447
+ languageName: node
+ linkType: hard
+
+"negotiator@npm:^0.6.3":
+ version: 0.6.3
+ resolution: "negotiator@npm:0.6.3"
+ checksum: 10c0/3ec9fd413e7bf071c937ae60d572bc67155262068ed522cf4b3be5edbe6ddf67d095ec03a3a14ebf8fc8e95f8e1d61be4869db0dbb0de696f6b837358bd43fc2
+ languageName: node
+ linkType: hard
+
+"next@npm:^13":
+ version: 13.5.6
+ resolution: "next@npm:13.5.6"
+ dependencies:
+ "@next/env": "npm:13.5.6"
+ "@next/swc-darwin-arm64": "npm:13.5.6"
+ "@next/swc-darwin-x64": "npm:13.5.6"
+ "@next/swc-linux-arm64-gnu": "npm:13.5.6"
+ "@next/swc-linux-arm64-musl": "npm:13.5.6"
+ "@next/swc-linux-x64-gnu": "npm:13.5.6"
+ "@next/swc-linux-x64-musl": "npm:13.5.6"
+ "@next/swc-win32-arm64-msvc": "npm:13.5.6"
+ "@next/swc-win32-ia32-msvc": "npm:13.5.6"
+ "@next/swc-win32-x64-msvc": "npm:13.5.6"
+ "@swc/helpers": "npm:0.5.2"
+ busboy: "npm:1.6.0"
+ caniuse-lite: "npm:^1.0.30001406"
+ postcss: "npm:8.4.31"
+ styled-jsx: "npm:5.1.1"
+ watchpack: "npm:2.4.0"
+ peerDependencies:
+ "@opentelemetry/api": ^1.1.0
+ react: ^18.2.0
+ react-dom: ^18.2.0
+ sass: ^1.3.0
+ dependenciesMeta:
+ "@next/swc-darwin-arm64":
+ optional: true
+ "@next/swc-darwin-x64":
+ optional: true
+ "@next/swc-linux-arm64-gnu":
+ optional: true
+ "@next/swc-linux-arm64-musl":
+ optional: true
+ "@next/swc-linux-x64-gnu":
+ optional: true
+ "@next/swc-linux-x64-musl":
+ optional: true
+ "@next/swc-win32-arm64-msvc":
+ optional: true
+ "@next/swc-win32-ia32-msvc":
+ optional: true
+ "@next/swc-win32-x64-msvc":
+ optional: true
+ peerDependenciesMeta:
+ "@opentelemetry/api":
+ optional: true
+ sass:
+ optional: true
+ bin:
+ next: dist/bin/next
+ checksum: 10c0/ef141d7708a432aff8bf080d285c466a83b0c1d008d1c66bbd49652a598f9ac15ef2e69a045f21ba44a5543b595cb945468b5f33e25deae2cc48b4d32be5bcec
+ languageName: node
+ linkType: hard
+
+"nock@npm:13.5.4":
+ version: 13.5.4
+ resolution: "nock@npm:13.5.4"
+ dependencies:
+ debug: "npm:^4.1.0"
+ json-stringify-safe: "npm:^5.0.1"
+ propagate: "npm:^2.0.0"
+ checksum: 10c0/9ca47d9d7e4b1f4adf871d7ca12722f8ef1dc7d2b9610b2568f5d9264eae9f424baa24fd9d91da9920b360d641b4243e89de198bd22c061813254a99cc6252af
+ languageName: node
+ linkType: hard
+
+"node-addon-api@npm:^2.0.0":
+ version: 2.0.2
+ resolution: "node-addon-api@npm:2.0.2"
+ dependencies:
+ node-gyp: "npm:latest"
+ checksum: 10c0/ade6c097ba829fa4aee1ca340117bb7f8f29fdae7b777e343a9d5cbd548481d1f0894b7b907d23ce615c70d932e8f96154caed95c3fa935cfe8cf87546510f64
+ languageName: node
+ linkType: hard
+
+"node-addon-api@npm:^7.0.0":
+ version: 7.1.0
+ resolution: "node-addon-api@npm:7.1.0"
+ dependencies:
+ node-gyp: "npm:latest"
+ checksum: 10c0/2e096ab079e3c46d33b0e252386e9c239c352f7cc6d75363d9a3c00bdff34c1a5da170da861917512843f213c32d024ced9dc9552b968029786480d18727ec66
+ languageName: node
+ linkType: hard
+
+"node-fetch-native@npm:^1.6.1, node-fetch-native@npm:^1.6.2, node-fetch-native@npm:^1.6.3":
+ version: 1.6.4
+ resolution: "node-fetch-native@npm:1.6.4"
+ checksum: 10c0/78334dc6def5d1d95cfe87b33ac76c4833592c5eb84779ad2b0c23c689f9dd5d1cfc827035ada72d6b8b218f717798968c5a99aeff0a1a8bf06657e80592f9c3
+ languageName: node
+ linkType: hard
+
+"node-fetch@npm:^2.6.1, node-fetch@npm:^2.6.12":
+ version: 2.7.0
+ resolution: "node-fetch@npm:2.7.0"
+ dependencies:
+ whatwg-url: "npm:^5.0.0"
+ peerDependencies:
+ encoding: ^0.1.0
+ peerDependenciesMeta:
+ encoding:
+ optional: true
+ checksum: 10c0/b55786b6028208e6fbe594ccccc213cab67a72899c9234eb59dba51062a299ea853210fcf526998eaa2867b0963ad72338824450905679ff0fa304b8c5093ae8
+ languageName: node
+ linkType: hard
+
+"node-forge@npm:^1.3.1":
+ version: 1.3.1
+ resolution: "node-forge@npm:1.3.1"
+ checksum: 10c0/e882819b251a4321f9fc1d67c85d1501d3004b4ee889af822fd07f64de3d1a8e272ff00b689570af0465d65d6bf5074df9c76e900e0aff23e60b847f2a46fbe8
+ languageName: node
+ linkType: hard
+
+"node-gyp-build@npm:^4.2.0, node-gyp-build@npm:^4.3.0":
+ version: 4.8.0
+ resolution: "node-gyp-build@npm:4.8.0"
+ bin:
+ node-gyp-build: bin.js
+ node-gyp-build-optional: optional.js
+ node-gyp-build-test: build-test.js
+ checksum: 10c0/85324be16f81f0235cbbc42e3eceaeb1b5ab94c8d8f5236755e1435b4908338c65a4e75f66ee343cbcb44ddf9b52a428755bec16dcd983295be4458d95c8e1ad
+ languageName: node
+ linkType: hard
+
+"node-gyp@npm:latest":
+ version: 10.1.0
+ resolution: "node-gyp@npm:10.1.0"
+ dependencies:
+ env-paths: "npm:^2.2.0"
+ exponential-backoff: "npm:^3.1.1"
+ glob: "npm:^10.3.10"
+ graceful-fs: "npm:^4.2.6"
+ make-fetch-happen: "npm:^13.0.0"
+ nopt: "npm:^7.0.0"
+ proc-log: "npm:^3.0.0"
+ semver: "npm:^7.3.5"
+ tar: "npm:^6.1.2"
+ which: "npm:^4.0.0"
+ bin:
+ node-gyp: bin/node-gyp.js
+ checksum: 10c0/9cc821111ca244a01fb7f054db7523ab0a0cd837f665267eb962eb87695d71fb1e681f9e21464cc2fd7c05530dc4c81b810bca1a88f7d7186909b74477491a3c
+ languageName: node
+ linkType: hard
+
+"node-gzip@npm:^1.1.2":
+ version: 1.1.2
+ resolution: "node-gzip@npm:1.1.2"
+ checksum: 10c0/c7aec81659bf69065bcfecb596293aaa3bd115ba328a2188a257f3640799f5ae8157ce82d93c17500494c695ff16e718308353ac628a9353679b2353f9e93402
+ languageName: node
+ linkType: hard
+
+"nopt@npm:^7.0.0":
+ version: 7.2.1
+ resolution: "nopt@npm:7.2.1"
+ dependencies:
+ abbrev: "npm:^2.0.0"
+ bin:
+ nopt: bin/nopt.js
+ checksum: 10c0/a069c7c736767121242037a22a788863accfa932ab285a1eb569eb8cd534b09d17206f68c37f096ae785647435e0c5a5a0a67b42ec743e481a455e5ae6a6df81
+ languageName: node
+ linkType: hard
+
+"normalize-path@npm:^3.0.0, normalize-path@npm:~3.0.0":
+ version: 3.0.0
+ resolution: "normalize-path@npm:3.0.0"
+ checksum: 10c0/e008c8142bcc335b5e38cf0d63cfd39d6cf2d97480af9abdbe9a439221fd4d749763bab492a8ee708ce7a194bb00c9da6d0a115018672310850489137b3da046
+ languageName: node
+ linkType: hard
+
+"npm-run-path@npm:^5.1.0":
+ version: 5.3.0
+ resolution: "npm-run-path@npm:5.3.0"
+ dependencies:
+ path-key: "npm:^4.0.0"
+ checksum: 10c0/124df74820c40c2eb9a8612a254ea1d557ddfab1581c3e751f825e3e366d9f00b0d76a3c94ecd8398e7f3eee193018622677e95816e8491f0797b21e30b2deba
+ languageName: node
+ linkType: hard
+
+"object-assign@npm:^4.1.1":
+ version: 4.1.1
+ resolution: "object-assign@npm:4.1.1"
+ checksum: 10c0/1f4df9945120325d041ccf7b86f31e8bcc14e73d29171e37a7903050e96b81323784ec59f93f102ec635bcf6fa8034ba3ea0a8c7e69fa202b87ae3b6cec5a414
+ languageName: node
+ linkType: hard
+
+"object-inspect@npm:^1.13.1":
+ version: 1.13.1
+ resolution: "object-inspect@npm:1.13.1"
+ checksum: 10c0/fad603f408e345c82e946abdf4bfd774260a5ed3e5997a0b057c44153ac32c7271ff19e3a5ae39c858da683ba045ccac2f65245c12763ce4e8594f818f4a648d
+ languageName: node
+ linkType: hard
+
+"object-is@npm:^1.1.5":
+ version: 1.1.6
+ resolution: "object-is@npm:1.1.6"
+ dependencies:
+ call-bind: "npm:^1.0.7"
+ define-properties: "npm:^1.2.1"
+ checksum: 10c0/506af444c4dce7f8e31f34fc549e2fb8152d6b9c4a30c6e62852badd7f520b579c679af433e7a072f9d78eb7808d230dc12e1cf58da9154dfbf8813099ea0fe0
+ languageName: node
+ linkType: hard
+
+"object-keys@npm:^1.1.1":
+ version: 1.1.1
+ resolution: "object-keys@npm:1.1.1"
+ checksum: 10c0/b11f7ccdbc6d406d1f186cdadb9d54738e347b2692a14439ca5ac70c225fa6db46db809711b78589866d47b25fc3e8dee0b4c722ac751e11180f9380e3d8601d
+ languageName: node
+ linkType: hard
+
+"object.assign@npm:^4.1.4, object.assign@npm:^4.1.5":
+ version: 4.1.5
+ resolution: "object.assign@npm:4.1.5"
+ dependencies:
+ call-bind: "npm:^1.0.5"
+ define-properties: "npm:^1.2.1"
+ has-symbols: "npm:^1.0.3"
+ object-keys: "npm:^1.1.1"
+ checksum: 10c0/60108e1fa2706f22554a4648299b0955236c62b3685c52abf4988d14fffb0e7731e00aa8c6448397e3eb63d087dcc124a9f21e1980f36d0b2667f3c18bacd469
+ languageName: node
+ linkType: hard
+
+"object.entries@npm:^1.1.7, object.entries@npm:^1.1.8":
+ version: 1.1.8
+ resolution: "object.entries@npm:1.1.8"
+ dependencies:
+ call-bind: "npm:^1.0.7"
+ define-properties: "npm:^1.2.1"
+ es-object-atoms: "npm:^1.0.0"
+ checksum: 10c0/db9ea979d2956a3bc26c262da4a4d212d36f374652cc4c13efdd069c1a519c16571c137e2893d1c46e1cb0e15c88fd6419eaf410c945f329f09835487d7e65d3
+ languageName: node
+ linkType: hard
+
+"object.fromentries@npm:^2.0.7, object.fromentries@npm:^2.0.8":
+ version: 2.0.8
+ resolution: "object.fromentries@npm:2.0.8"
+ dependencies:
+ call-bind: "npm:^1.0.7"
+ define-properties: "npm:^1.2.1"
+ es-abstract: "npm:^1.23.2"
+ es-object-atoms: "npm:^1.0.0"
+ checksum: 10c0/cd4327e6c3369cfa805deb4cbbe919bfb7d3aeebf0bcaba291bb568ea7169f8f8cdbcabe2f00b40db0c20cd20f08e11b5f3a5a36fb7dd3fe04850c50db3bf83b
+ languageName: node
+ linkType: hard
+
+"object.groupby@npm:^1.0.1":
+ version: 1.0.3
+ resolution: "object.groupby@npm:1.0.3"
+ dependencies:
+ call-bind: "npm:^1.0.7"
+ define-properties: "npm:^1.2.1"
+ es-abstract: "npm:^1.23.2"
+ checksum: 10c0/60d0455c85c736fbfeda0217d1a77525956f76f7b2495edeca9e9bbf8168a45783199e77b894d30638837c654d0cc410e0e02cbfcf445bc8de71c3da1ede6a9c
+ languageName: node
+ linkType: hard
+
+"object.hasown@npm:^1.1.4":
+ version: 1.1.4
+ resolution: "object.hasown@npm:1.1.4"
+ dependencies:
+ define-properties: "npm:^1.2.1"
+ es-abstract: "npm:^1.23.2"
+ es-object-atoms: "npm:^1.0.0"
+ checksum: 10c0/f23187b08d874ef1aea060118c8259eb7f99f93c15a50771d710569534119062b90e087b92952b2d0fb1bb8914d61fb0b43c57fb06f622aaad538fe6868ab987
+ languageName: node
+ linkType: hard
+
+"object.values@npm:^1.1.6, object.values@npm:^1.1.7, object.values@npm:^1.2.0":
+ version: 1.2.0
+ resolution: "object.values@npm:1.2.0"
+ dependencies:
+ call-bind: "npm:^1.0.7"
+ define-properties: "npm:^1.2.1"
+ es-object-atoms: "npm:^1.0.0"
+ checksum: 10c0/15809dc40fd6c5529501324fec5ff08570b7d70fb5ebbe8e2b3901afec35cf2b3dc484d1210c6c642cd3e7e0a5e18dd1d6850115337fef46bdae14ab0cb18ac3
+ languageName: node
+ linkType: hard
+
+"ofetch@npm:^1.3.3":
+ version: 1.3.4
+ resolution: "ofetch@npm:1.3.4"
+ dependencies:
+ destr: "npm:^2.0.3"
+ node-fetch-native: "npm:^1.6.3"
+ ufo: "npm:^1.5.3"
+ checksum: 10c0/39855005c3f8aa11c11d3a3b0c4366b67d316da58633f4cf5d4a5af0a61495fd68699f355e70deda70355ead25f27b41c3bde2fdd1d24ce3f85ac79608dd8677
+ languageName: node
+ linkType: hard
+
+"ohash@npm:^1.1.3":
+ version: 1.1.3
+ resolution: "ohash@npm:1.1.3"
+ checksum: 10c0/928f5bdbd8cd73f90cf544c0533dbda8e0a42d9b8c7454ab89e64e4d11bc85f85242830b4e107426ce13dc4dd3013286f8f5e0c84abd8942a014b907d9692540
+ languageName: node
+ linkType: hard
+
+"on-exit-leak-free@npm:^0.2.0":
+ version: 0.2.0
+ resolution: "on-exit-leak-free@npm:0.2.0"
+ checksum: 10c0/d4e1f0bea59f39aa435baaee7d76955527e245538cffc1d7bb0c165ae85e37f67690aa9272247ced17bad76052afdb45faf5ea304a2248e070202d4554c4e30c
+ languageName: node
+ linkType: hard
+
+"once@npm:^1.3.0, once@npm:^1.3.1, once@npm:^1.4.0":
+ version: 1.4.0
+ resolution: "once@npm:1.4.0"
+ dependencies:
+ wrappy: "npm:1"
+ checksum: 10c0/5d48aca287dfefabd756621c5dfce5c91a549a93e9fdb7b8246bc4c4790aa2ec17b34a260530474635147aeb631a2dcc8b32c613df0675f96041cbb8244517d0
+ languageName: node
+ linkType: hard
+
+"onetime@npm:^6.0.0":
+ version: 6.0.0
+ resolution: "onetime@npm:6.0.0"
+ dependencies:
+ mimic-fn: "npm:^4.0.0"
+ checksum: 10c0/4eef7c6abfef697dd4479345a4100c382d73c149d2d56170a54a07418c50816937ad09500e1ed1e79d235989d073a9bade8557122aee24f0576ecde0f392bb6c
+ languageName: node
+ linkType: hard
+
+"optionator@npm:^0.9.1":
+ version: 0.9.4
+ resolution: "optionator@npm:0.9.4"
+ dependencies:
+ deep-is: "npm:^0.1.3"
+ fast-levenshtein: "npm:^2.0.6"
+ levn: "npm:^0.4.1"
+ prelude-ls: "npm:^1.2.1"
+ type-check: "npm:^0.4.0"
+ word-wrap: "npm:^1.2.5"
+ checksum: 10c0/4afb687a059ee65b61df74dfe87d8d6815cd6883cb8b3d5883a910df72d0f5d029821f37025e4bccf4048873dbdb09acc6d303d27b8f76b1a80dd5a7d5334675
+ languageName: node
+ linkType: hard
+
+"osmo-query@npm:16.5.1":
+ version: 16.5.1
+ resolution: "osmo-query@npm:16.5.1"
+ dependencies:
+ "@cosmjs/amino": "npm:0.29.3"
+ "@cosmjs/proto-signing": "npm:0.29.3"
+ "@cosmjs/stargate": "npm:0.29.3"
+ "@cosmjs/tendermint-rpc": "npm:^0.29.3"
+ "@cosmology/lcd": "npm:^0.12.0"
+ checksum: 10c0/036877b1f2aefda492f1ff2c84163955de439c07bb87380cf05e3d8b244d77f12a505d93e655389172d89bd09214d5b812d8123bd1203fe649e7d934f87c2d34
+ languageName: node
+ linkType: hard
+
+"p-limit@npm:^3.0.2":
+ version: 3.1.0
+ resolution: "p-limit@npm:3.1.0"
+ dependencies:
+ yocto-queue: "npm:^0.1.0"
+ checksum: 10c0/9db675949dbdc9c3763c89e748d0ef8bdad0afbb24d49ceaf4c46c02c77d30db4e0652ed36d0a0a7a95154335fab810d95c86153105bb73b3a90448e2bb14e1a
+ languageName: node
+ linkType: hard
+
+"p-locate@npm:^5.0.0":
+ version: 5.0.0
+ resolution: "p-locate@npm:5.0.0"
+ dependencies:
+ p-limit: "npm:^3.0.2"
+ checksum: 10c0/2290d627ab7903b8b70d11d384fee714b797f6040d9278932754a6860845c4d3190603a0772a663c8cb5a7b21d1b16acb3a6487ebcafa9773094edc3dfe6009a
+ languageName: node
+ linkType: hard
+
+"p-map@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "p-map@npm:4.0.0"
+ dependencies:
+ aggregate-error: "npm:^3.0.0"
+ checksum: 10c0/592c05bd6262c466ce269ff172bb8de7c6975afca9b50c975135b974e9bdaafbfe80e61aaaf5be6d1200ba08b30ead04b88cfa7e25ff1e3b93ab28c9f62a2c75
+ languageName: node
+ linkType: hard
+
+"pako@npm:^2.0.2":
+ version: 2.1.0
+ resolution: "pako@npm:2.1.0"
+ checksum: 10c0/8e8646581410654b50eb22a5dfd71159cae98145bd5086c9a7a816ec0370b5f72b4648d08674624b3870a521e6a3daffd6c2f7bc00fdefc7063c9d8232ff5116
+ languageName: node
+ linkType: hard
+
+"parent-module@npm:^1.0.0":
+ version: 1.0.1
+ resolution: "parent-module@npm:1.0.1"
+ dependencies:
+ callsites: "npm:^3.0.0"
+ checksum: 10c0/c63d6e80000d4babd11978e0d3fee386ca7752a02b035fd2435960ffaa7219dc42146f07069fb65e6e8bf1caef89daf9af7535a39bddf354d78bf50d8294f556
+ languageName: node
+ linkType: hard
+
+"parse-asn1@npm:^5.0.0, parse-asn1@npm:^5.1.7":
+ version: 5.1.7
+ resolution: "parse-asn1@npm:5.1.7"
+ dependencies:
+ asn1.js: "npm:^4.10.1"
+ browserify-aes: "npm:^1.2.0"
+ evp_bytestokey: "npm:^1.0.3"
+ hash-base: "npm:~3.0"
+ pbkdf2: "npm:^3.1.2"
+ safe-buffer: "npm:^5.2.1"
+ checksum: 10c0/05eb5937405c904eb5a7f3633bab1acc11f4ae3478a07ef5c6d81ce88c3c0e505ff51f9c7b935ebc1265c868343793698fc91025755a895d0276f620f95e8a82
+ languageName: node
+ linkType: hard
+
+"parse-entities@npm:^4.0.0":
+ version: 4.0.1
+ resolution: "parse-entities@npm:4.0.1"
+ dependencies:
+ "@types/unist": "npm:^2.0.0"
+ character-entities: "npm:^2.0.0"
+ character-entities-legacy: "npm:^3.0.0"
+ character-reference-invalid: "npm:^2.0.0"
+ decode-named-character-reference: "npm:^1.0.0"
+ is-alphanumerical: "npm:^2.0.0"
+ is-decimal: "npm:^2.0.0"
+ is-hexadecimal: "npm:^2.0.0"
+ checksum: 10c0/9dfa3b0dc43a913c2558c4bd625b1abcc2d6c6b38aa5724b141ed988471977248f7ad234eed57e1bc70b694dd15b0d710a04f66c2f7c096e35abd91962b7d926
+ languageName: node
+ linkType: hard
+
+"path-exists@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "path-exists@npm:4.0.0"
+ checksum: 10c0/8c0bd3f5238188197dc78dced15207a4716c51cc4e3624c44fc97acf69558f5ebb9a2afff486fe1b4ee148e0c133e96c5e11a9aa5c48a3006e3467da070e5e1b
+ languageName: node
+ linkType: hard
+
+"path-is-absolute@npm:^1.0.0":
+ version: 1.0.1
+ resolution: "path-is-absolute@npm:1.0.1"
+ checksum: 10c0/127da03c82172a2a50099cddbf02510c1791fc2cc5f7713ddb613a56838db1e8168b121a920079d052e0936c23005562059756d653b7c544c53185efe53be078
+ languageName: node
+ linkType: hard
+
+"path-key@npm:^3.1.0":
+ version: 3.1.1
+ resolution: "path-key@npm:3.1.1"
+ checksum: 10c0/748c43efd5a569c039d7a00a03b58eecd1d75f3999f5a28303d75f521288df4823bc057d8784eb72358b2895a05f29a070bc9f1f17d28226cc4e62494cc58c4c
+ languageName: node
+ linkType: hard
+
+"path-key@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "path-key@npm:4.0.0"
+ checksum: 10c0/794efeef32863a65ac312f3c0b0a99f921f3e827ff63afa5cb09a377e202c262b671f7b3832a4e64731003fa94af0263713962d317b9887bd1e0c48a342efba3
+ languageName: node
+ linkType: hard
+
+"path-parse@npm:^1.0.7":
+ version: 1.0.7
+ resolution: "path-parse@npm:1.0.7"
+ checksum: 10c0/11ce261f9d294cc7a58d6a574b7f1b935842355ec66fba3c3fd79e0f036462eaf07d0aa95bb74ff432f9afef97ce1926c720988c6a7451d8a584930ae7de86e1
+ languageName: node
+ linkType: hard
+
+"path-scurry@npm:^1.11.1":
+ version: 1.11.1
+ resolution: "path-scurry@npm:1.11.1"
+ dependencies:
+ lru-cache: "npm:^10.2.0"
+ minipass: "npm:^5.0.0 || ^6.0.2 || ^7.0.0"
+ checksum: 10c0/32a13711a2a505616ae1cc1b5076801e453e7aae6ac40ab55b388bb91b9d0547a52f5aaceff710ea400205f18691120d4431e520afbe4266b836fadede15872d
+ languageName: node
+ linkType: hard
+
+"path-type@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "path-type@npm:4.0.0"
+ checksum: 10c0/666f6973f332f27581371efaf303fd6c272cc43c2057b37aa99e3643158c7e4b2626549555d88626e99ea9e046f82f32e41bbde5f1508547e9a11b149b52387c
+ languageName: node
+ linkType: hard
+
+"pathe@npm:^1.1.0, pathe@npm:^1.1.1, pathe@npm:^1.1.2":
+ version: 1.1.2
+ resolution: "pathe@npm:1.1.2"
+ checksum: 10c0/64ee0a4e587fb0f208d9777a6c56e4f9050039268faaaaecd50e959ef01bf847b7872785c36483fa5cdcdbdfdb31fef2ff222684d4fc21c330ab60395c681897
+ languageName: node
+ linkType: hard
+
+"pbkdf2@npm:^3.0.3, pbkdf2@npm:^3.1.2":
+ version: 3.1.2
+ resolution: "pbkdf2@npm:3.1.2"
+ dependencies:
+ create-hash: "npm:^1.1.2"
+ create-hmac: "npm:^1.1.4"
+ ripemd160: "npm:^2.0.1"
+ safe-buffer: "npm:^5.0.1"
+ sha.js: "npm:^2.4.8"
+ checksum: 10c0/5a30374e87d33fa080a92734d778cf172542cc7e41b96198c4c88763997b62d7850de3fbda5c3111ddf79805ee7c1da7046881c90ac4920b5e324204518b05fd
+ languageName: node
+ linkType: hard
+
+"picocolors@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "picocolors@npm:1.0.0"
+ checksum: 10c0/20a5b249e331c14479d94ec6817a182fd7a5680debae82705747b2db7ec50009a5f6648d0621c561b0572703f84dbef0858abcbd5856d3c5511426afcb1961f7
+ languageName: node
+ linkType: hard
+
+"picomatch@npm:^2.0.4, picomatch@npm:^2.2.1, picomatch@npm:^2.3.1":
+ version: 2.3.1
+ resolution: "picomatch@npm:2.3.1"
+ checksum: 10c0/26c02b8d06f03206fc2ab8d16f19960f2ff9e81a658f831ecb656d8f17d9edc799e8364b1f4a7873e89d9702dff96204be0fa26fe4181f6843f040f819dac4be
+ languageName: node
+ linkType: hard
+
+"pino-abstract-transport@npm:v0.5.0":
+ version: 0.5.0
+ resolution: "pino-abstract-transport@npm:0.5.0"
+ dependencies:
+ duplexify: "npm:^4.1.2"
+ split2: "npm:^4.0.0"
+ checksum: 10c0/0d0e30399028ec156642b4cdfe1a040b9022befdc38e8f85935d1837c3da6050691888038433f88190d1a1eff5d90abe17ff7e6edffc09baa2f96e51b6808183
+ languageName: node
+ linkType: hard
+
+"pino-std-serializers@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "pino-std-serializers@npm:4.0.0"
+ checksum: 10c0/9e8ccac9ce04a27ccc7aa26481d431b9e037d866b101b89d895c60b925baffb82685e84d5c29b05d8e3d7c146d766a9b08949cb24ab1ec526a16134c9962d649
+ languageName: node
+ linkType: hard
+
+"pino@npm:7.11.0":
+ version: 7.11.0
+ resolution: "pino@npm:7.11.0"
+ dependencies:
+ atomic-sleep: "npm:^1.0.0"
+ fast-redact: "npm:^3.0.0"
+ on-exit-leak-free: "npm:^0.2.0"
+ pino-abstract-transport: "npm:v0.5.0"
+ pino-std-serializers: "npm:^4.0.0"
+ process-warning: "npm:^1.0.0"
+ quick-format-unescaped: "npm:^4.0.3"
+ real-require: "npm:^0.1.0"
+ safe-stable-stringify: "npm:^2.1.0"
+ sonic-boom: "npm:^2.2.1"
+ thread-stream: "npm:^0.15.1"
+ bin:
+ pino: bin.js
+ checksum: 10c0/4cc1ed9d25a4bc5d61c836a861279fa0039159b8f2f37ec337e50b0a61f3980dab5d2b1393daec26f68a19c423262649f0818654c9ad102c35310544a202c62c
+ languageName: node
+ linkType: hard
+
+"pkg-types@npm:^1.0.3":
+ version: 1.0.3
+ resolution: "pkg-types@npm:1.0.3"
+ dependencies:
+ jsonc-parser: "npm:^3.2.0"
+ mlly: "npm:^1.2.0"
+ pathe: "npm:^1.1.0"
+ checksum: 10c0/7f692ff2005f51b8721381caf9bdbc7f5461506ba19c34f8631660a215c8de5e6dca268f23a319dd180b8f7c47a0dc6efea14b376c485ff99e98d810b8f786c4
+ languageName: node
+ linkType: hard
+
+"possible-typed-array-names@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "possible-typed-array-names@npm:1.0.0"
+ checksum: 10c0/d9aa22d31f4f7680e20269db76791b41c3a32c01a373e25f8a4813b4d45f7456bfc2b6d68f752dc4aab0e0bb0721cb3d76fb678c9101cb7a16316664bc2c73fd
+ languageName: node
+ linkType: hard
+
+"postcss@npm:8.4.31":
+ version: 8.4.31
+ resolution: "postcss@npm:8.4.31"
+ dependencies:
+ nanoid: "npm:^3.3.6"
+ picocolors: "npm:^1.0.0"
+ source-map-js: "npm:^1.0.2"
+ checksum: 10c0/748b82e6e5fc34034dcf2ae88ea3d11fd09f69b6c50ecdd3b4a875cfc7cdca435c958b211e2cb52355422ab6fccb7d8f2f2923161d7a1b281029e4a913d59acf
+ languageName: node
+ linkType: hard
+
+"prelude-ls@npm:^1.2.1":
+ version: 1.2.1
+ resolution: "prelude-ls@npm:1.2.1"
+ checksum: 10c0/b00d617431e7886c520a6f498a2e14c75ec58f6d93ba48c3b639cf241b54232d90daa05d83a9e9b9fef6baa63cb7e1e4602c2372fea5bc169668401eb127d0cd
+ languageName: node
+ linkType: hard
+
+"proc-log@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "proc-log@npm:3.0.0"
+ checksum: 10c0/f66430e4ff947dbb996058f6fd22de2c66612ae1a89b097744e17fb18a4e8e7a86db99eda52ccf15e53f00b63f4ec0b0911581ff2aac0355b625c8eac509b0dc
+ languageName: node
+ linkType: hard
+
+"proc-log@npm:^4.2.0":
+ version: 4.2.0
+ resolution: "proc-log@npm:4.2.0"
+ checksum: 10c0/17db4757c2a5c44c1e545170e6c70a26f7de58feb985091fb1763f5081cab3d01b181fb2dd240c9f4a4255a1d9227d163d5771b7e69c9e49a561692db865efb9
+ languageName: node
+ linkType: hard
+
+"process-nextick-args@npm:~2.0.0":
+ version: 2.0.1
+ resolution: "process-nextick-args@npm:2.0.1"
+ checksum: 10c0/bec089239487833d46b59d80327a1605e1c5287eaad770a291add7f45fda1bb5e28b38e0e061add0a1d0ee0984788ce74fa394d345eed1c420cacf392c554367
+ languageName: node
+ linkType: hard
+
+"process-warning@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "process-warning@npm:1.0.0"
+ checksum: 10c0/43ec4229d64eb5c58340c8aacade49eb5f6fd513eae54140abf365929ca20987f0a35c5868125e2b583cad4de8cd257beb5667d9cc539d9190a7a4c3014adf22
+ languageName: node
+ linkType: hard
+
+"promise-retry@npm:^2.0.1":
+ version: 2.0.1
+ resolution: "promise-retry@npm:2.0.1"
+ dependencies:
+ err-code: "npm:^2.0.2"
+ retry: "npm:^0.12.0"
+ checksum: 10c0/9c7045a1a2928094b5b9b15336dcd2a7b1c052f674550df63cc3f36cd44028e5080448175b6f6ca32b642de81150f5e7b1a98b728f15cb069f2dd60ac2616b96
+ languageName: node
+ linkType: hard
+
+"prop-types@npm:^15.8.1":
+ version: 15.8.1
+ resolution: "prop-types@npm:15.8.1"
+ dependencies:
+ loose-envify: "npm:^1.4.0"
+ object-assign: "npm:^4.1.1"
+ react-is: "npm:^16.13.1"
+ checksum: 10c0/59ece7ca2fb9838031d73a48d4becb9a7cc1ed10e610517c7d8f19a1e02fa47f7c27d557d8a5702bec3cfeccddc853579832b43f449e54635803f277b1c78077
+ languageName: node
+ linkType: hard
+
+"propagate@npm:^2.0.0":
+ version: 2.0.1
+ resolution: "propagate@npm:2.0.1"
+ checksum: 10c0/01e1023b60ae4050d1a2783f976d7db702022dbdb70dba797cceedad8cfc01b3939c41e77032f8c32aa9d93192fe937ebba1345e8604e5ce61fd3b62ee3003b8
+ languageName: node
+ linkType: hard
+
+"property-information@npm:^6.0.0":
+ version: 6.5.0
+ resolution: "property-information@npm:6.5.0"
+ checksum: 10c0/981e0f9cc2e5acdb414a6fd48a99dd0fd3a4079e7a91ab41cf97a8534cf43e0e0bc1ffada6602a1b3d047a33db8b5fc2ef46d863507eda712d5ceedac443f0ef
+ languageName: node
+ linkType: hard
+
+"protobufjs@npm:^6.11.2, protobufjs@npm:^6.8.8, protobufjs@npm:~6.11.2, protobufjs@npm:~6.11.3":
+ version: 6.11.4
+ resolution: "protobufjs@npm:6.11.4"
+ dependencies:
+ "@protobufjs/aspromise": "npm:^1.1.2"
+ "@protobufjs/base64": "npm:^1.1.2"
+ "@protobufjs/codegen": "npm:^2.0.4"
+ "@protobufjs/eventemitter": "npm:^1.1.0"
+ "@protobufjs/fetch": "npm:^1.1.0"
+ "@protobufjs/float": "npm:^1.0.2"
+ "@protobufjs/inquire": "npm:^1.1.0"
+ "@protobufjs/path": "npm:^1.1.2"
+ "@protobufjs/pool": "npm:^1.1.0"
+ "@protobufjs/utf8": "npm:^1.1.0"
+ "@types/long": "npm:^4.0.1"
+ "@types/node": "npm:>=13.7.0"
+ long: "npm:^4.0.0"
+ bin:
+ pbjs: bin/pbjs
+ pbts: bin/pbts
+ checksum: 10c0/c244d7b9b6d3258193da5c0d1e558dfb47f208ae345e209f90ec45c9dca911b90fa17e937892a9a39a4136ab9886981aae9efdf6039f7baff4f7225f5eeb9812
+ languageName: node
+ linkType: hard
+
+"proxy-from-env@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "proxy-from-env@npm:1.1.0"
+ checksum: 10c0/fe7dd8b1bdbbbea18d1459107729c3e4a2243ca870d26d34c2c1bcd3e4425b7bcc5112362df2d93cc7fb9746f6142b5e272fd1cc5c86ddf8580175186f6ad42b
+ languageName: node
+ linkType: hard
+
+"public-encrypt@npm:^4.0.0":
+ version: 4.0.3
+ resolution: "public-encrypt@npm:4.0.3"
+ dependencies:
+ bn.js: "npm:^4.1.0"
+ browserify-rsa: "npm:^4.0.0"
+ create-hash: "npm:^1.1.0"
+ parse-asn1: "npm:^5.0.0"
+ randombytes: "npm:^2.0.1"
+ safe-buffer: "npm:^5.1.2"
+ checksum: 10c0/6c2cc19fbb554449e47f2175065d6b32f828f9b3badbee4c76585ac28ae8641aafb9bb107afc430c33c5edd6b05dbe318df4f7d6d7712b1093407b11c4280700
+ languageName: node
+ linkType: hard
+
+"pump@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "pump@npm:3.0.0"
+ dependencies:
+ end-of-stream: "npm:^1.1.0"
+ once: "npm:^1.3.1"
+ checksum: 10c0/bbdeda4f747cdf47db97428f3a135728669e56a0ae5f354a9ac5b74556556f5446a46f720a8f14ca2ece5be9b4d5d23c346db02b555f46739934cc6c093a5478
+ languageName: node
+ linkType: hard
+
+"punycode@npm:^2.1.0":
+ version: 2.3.1
+ resolution: "punycode@npm:2.3.1"
+ checksum: 10c0/14f76a8206bc3464f794fb2e3d3cc665ae416c01893ad7a02b23766eb07159144ee612ad67af5e84fa4479ccfe67678c4feb126b0485651b302babf66f04f9e9
+ languageName: node
+ linkType: hard
+
+"query-string@npm:7.1.3":
+ version: 7.1.3
+ resolution: "query-string@npm:7.1.3"
+ dependencies:
+ decode-uri-component: "npm:^0.2.2"
+ filter-obj: "npm:^1.1.0"
+ split-on-first: "npm:^1.0.0"
+ strict-uri-encode: "npm:^2.0.0"
+ checksum: 10c0/a896c08e9e0d4f8ffd89a572d11f668c8d0f7df9c27c6f49b92ab31366d3ba0e9c331b9a620ee747893436cd1f2f821a6327e2bc9776bde2402ac6c270b801b2
+ languageName: node
+ linkType: hard
+
+"queue-microtask@npm:^1.2.2":
+ version: 1.2.3
+ resolution: "queue-microtask@npm:1.2.3"
+ checksum: 10c0/900a93d3cdae3acd7d16f642c29a642aea32c2026446151f0778c62ac089d4b8e6c986811076e1ae180a694cedf077d453a11b58ff0a865629a4f82ab558e102
+ languageName: node
+ linkType: hard
+
+"quick-format-unescaped@npm:^4.0.3":
+ version: 4.0.4
+ resolution: "quick-format-unescaped@npm:4.0.4"
+ checksum: 10c0/fe5acc6f775b172ca5b4373df26f7e4fd347975578199e7d74b2ae4077f0af05baa27d231de1e80e8f72d88275ccc6028568a7a8c9ee5e7368ace0e18eff93a4
+ languageName: node
+ linkType: hard
+
+"radix3@npm:^1.1.0":
+ version: 1.1.2
+ resolution: "radix3@npm:1.1.2"
+ checksum: 10c0/d4a295547f71af079868d2c2ed3814a9296ee026c5488212d58c106e6b4797c6eaec1259b46c9728913622f2240c9a944bfc8e2b3b5f6e4a5045338b1609f1e4
+ languageName: node
+ linkType: hard
+
+"rainbow-sprinkles@npm:^0.17.2":
+ version: 0.17.2
+ resolution: "rainbow-sprinkles@npm:0.17.2"
+ peerDependencies:
+ "@vanilla-extract/css": ^1
+ "@vanilla-extract/dynamic": ^2
+ checksum: 10c0/c7ab7955592860afaab023f75b20c82d5f6242c766a8b2c42cd5794082ef51b25411c6c2f22f46525791ef8104c95dc13d72772904d37382564aed3a229684ef
+ languageName: node
+ linkType: hard
+
+"randombytes@npm:^2.0.0, randombytes@npm:^2.0.1, randombytes@npm:^2.0.5":
+ version: 2.1.0
+ resolution: "randombytes@npm:2.1.0"
+ dependencies:
+ safe-buffer: "npm:^5.1.0"
+ checksum: 10c0/50395efda7a8c94f5dffab564f9ff89736064d32addf0cc7e8bf5e4166f09f8ded7a0849ca6c2d2a59478f7d90f78f20d8048bca3cdf8be09d8e8a10790388f3
+ languageName: node
+ linkType: hard
+
+"randomfill@npm:^1.0.3":
+ version: 1.0.4
+ resolution: "randomfill@npm:1.0.4"
+ dependencies:
+ randombytes: "npm:^2.0.5"
+ safe-buffer: "npm:^5.1.0"
+ checksum: 10c0/11aeed35515872e8f8a2edec306734e6b74c39c46653607f03c68385ab8030e2adcc4215f76b5e4598e028c4750d820afd5c65202527d831d2a5f207fe2bc87c
+ languageName: node
+ linkType: hard
+
+"react-ace@npm:11.0.1":
+ version: 11.0.1
+ resolution: "react-ace@npm:11.0.1"
+ dependencies:
+ ace-builds: "npm:^1.32.8"
+ diff-match-patch: "npm:^1.0.5"
+ lodash.get: "npm:^4.4.2"
+ lodash.isequal: "npm:^4.5.0"
+ prop-types: "npm:^15.8.1"
+ peerDependencies:
+ react: ^0.13.0 || ^0.14.0 || ^15.0.1 || ^16.0.0 || ^17.0.0 || ^18.0.0
+ react-dom: ^0.13.0 || ^0.14.0 || ^15.0.1 || ^16.0.0 || ^17.0.0 || ^18.0.0
+ checksum: 10c0/fa8acd2dc977d5edf6d99e238429c696c3cb4f35fb9f78b296cff875a399b12c6672618f34495be00c6d96ca877c3e30f37c5235b9b3878f65d19aa0ed5dab69
+ languageName: node
+ linkType: hard
+
+"react-aria@npm:^3.33.1":
+ version: 3.34.1
+ resolution: "react-aria@npm:3.34.1"
+ dependencies:
+ "@internationalized/string": "npm:^3.2.3"
+ "@react-aria/breadcrumbs": "npm:^3.5.15"
+ "@react-aria/button": "npm:^3.9.7"
+ "@react-aria/calendar": "npm:^3.5.10"
+ "@react-aria/checkbox": "npm:^3.14.5"
+ "@react-aria/combobox": "npm:^3.10.1"
+ "@react-aria/datepicker": "npm:^3.11.1"
+ "@react-aria/dialog": "npm:^3.5.16"
+ "@react-aria/dnd": "npm:^3.7.1"
+ "@react-aria/focus": "npm:^3.18.1"
+ "@react-aria/gridlist": "npm:^3.9.1"
+ "@react-aria/i18n": "npm:^3.12.1"
+ "@react-aria/interactions": "npm:^3.22.1"
+ "@react-aria/label": "npm:^3.7.10"
+ "@react-aria/link": "npm:^3.7.3"
+ "@react-aria/listbox": "npm:^3.13.1"
+ "@react-aria/menu": "npm:^3.15.1"
+ "@react-aria/meter": "npm:^3.4.15"
+ "@react-aria/numberfield": "npm:^3.11.5"
+ "@react-aria/overlays": "npm:^3.23.1"
+ "@react-aria/progress": "npm:^3.4.15"
+ "@react-aria/radio": "npm:^3.10.6"
+ "@react-aria/searchfield": "npm:^3.7.7"
+ "@react-aria/select": "npm:^3.14.7"
+ "@react-aria/selection": "npm:^3.19.1"
+ "@react-aria/separator": "npm:^3.4.1"
+ "@react-aria/slider": "npm:^3.7.10"
+ "@react-aria/ssr": "npm:^3.9.5"
+ "@react-aria/switch": "npm:^3.6.6"
+ "@react-aria/table": "npm:^3.15.1"
+ "@react-aria/tabs": "npm:^3.9.3"
+ "@react-aria/tag": "npm:^3.4.3"
+ "@react-aria/textfield": "npm:^3.14.7"
+ "@react-aria/tooltip": "npm:^3.7.6"
+ "@react-aria/utils": "npm:^3.25.1"
+ "@react-aria/visually-hidden": "npm:^3.8.14"
+ "@react-types/shared": "npm:^3.24.1"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/69883cf03802eada811926929d6e45e1485a546043aafbf0a84886ad2cb3c295bef25311b1796794f2e0f410500636ca4197ba33f1842f1d608adda7cbba4a25
+ languageName: node
+ linkType: hard
+
+"react-dom@npm:18.2.0":
+ version: 18.2.0
+ resolution: "react-dom@npm:18.2.0"
+ dependencies:
+ loose-envify: "npm:^1.1.0"
+ scheduler: "npm:^0.23.0"
+ peerDependencies:
+ react: ^18.2.0
+ checksum: 10c0/66dfc5f93e13d0674e78ef41f92ed21dfb80f9c4ac4ac25a4b51046d41d4d2186abc915b897f69d3d0ebbffe6184e7c5876f2af26bfa956f179225d921be713a
+ languageName: node
+ linkType: hard
+
+"react-dropzone@npm:^14.2.3":
+ version: 14.2.3
+ resolution: "react-dropzone@npm:14.2.3"
+ dependencies:
+ attr-accept: "npm:^2.2.2"
+ file-selector: "npm:^0.6.0"
+ prop-types: "npm:^15.8.1"
+ peerDependencies:
+ react: ">= 16.8 || 18.0.0"
+ checksum: 10c0/6433517c53309aca1bb4f4a535aeee297345ca1e11b123676f46c7682ffab34a3428cbda106448fc92b5c9a5e0fa5d225bc188adebcd4d302366bf6b1f9c3fc1
+ languageName: node
+ linkType: hard
+
+"react-icons@npm:4.4.0":
+ version: 4.4.0
+ resolution: "react-icons@npm:4.4.0"
+ peerDependencies:
+ react: "*"
+ checksum: 10c0/8daeae11e4b989eebcb97b9fdf3a743607b76b637d2eece309f6274f3a85b9c720313956cfabe220628324abf50b9b01823f65ac9cf71b8a816e440d2fca5293
+ languageName: node
+ linkType: hard
+
+"react-icons@npm:5.2.1":
+ version: 5.2.1
+ resolution: "react-icons@npm:5.2.1"
+ peerDependencies:
+ react: "*"
+ checksum: 10c0/9d52b975afaf27dab07dcaefd50497ba43cc57076fc26ccac5142965e01c7fd0c503a62ea31c3bb710e0b2959a4620c2fed12c3c86960ad8ceb63de7f0085f3a
+ languageName: node
+ linkType: hard
+
+"react-is@npm:^16.13.1":
+ version: 16.13.1
+ resolution: "react-is@npm:16.13.1"
+ checksum: 10c0/33977da7a5f1a287936a0c85639fec6ca74f4f15ef1e59a6bc20338fc73dc69555381e211f7a3529b8150a1f71e4225525b41b60b52965bda53ce7d47377ada1
+ languageName: node
+ linkType: hard
+
+"react-markdown@npm:9.0.1":
+ version: 9.0.1
+ resolution: "react-markdown@npm:9.0.1"
+ dependencies:
+ "@types/hast": "npm:^3.0.0"
+ devlop: "npm:^1.0.0"
+ hast-util-to-jsx-runtime: "npm:^2.0.0"
+ html-url-attributes: "npm:^3.0.0"
+ mdast-util-to-hast: "npm:^13.0.0"
+ remark-parse: "npm:^11.0.0"
+ remark-rehype: "npm:^11.0.0"
+ unified: "npm:^11.0.0"
+ unist-util-visit: "npm:^5.0.0"
+ vfile: "npm:^6.0.0"
+ peerDependencies:
+ "@types/react": ">=18"
+ react: ">=18"
+ checksum: 10c0/3a3895dbd56647bc864b8da46dd575e71a9e609eb1e43fea8e8e6209d86e208eddd5b07bf8d7b5306a194b405440760a8d134aebd5a4ce5dc7dee4299e84db96
+ languageName: node
+ linkType: hard
+
+"react-stately@npm:^3.31.1":
+ version: 3.32.1
+ resolution: "react-stately@npm:3.32.1"
+ dependencies:
+ "@react-stately/calendar": "npm:^3.5.3"
+ "@react-stately/checkbox": "npm:^3.6.7"
+ "@react-stately/collections": "npm:^3.10.9"
+ "@react-stately/combobox": "npm:^3.9.1"
+ "@react-stately/data": "npm:^3.11.6"
+ "@react-stately/datepicker": "npm:^3.10.1"
+ "@react-stately/dnd": "npm:^3.4.1"
+ "@react-stately/form": "npm:^3.0.5"
+ "@react-stately/list": "npm:^3.10.7"
+ "@react-stately/menu": "npm:^3.8.1"
+ "@react-stately/numberfield": "npm:^3.9.5"
+ "@react-stately/overlays": "npm:^3.6.9"
+ "@react-stately/radio": "npm:^3.10.6"
+ "@react-stately/searchfield": "npm:^3.5.5"
+ "@react-stately/select": "npm:^3.6.6"
+ "@react-stately/selection": "npm:^3.16.1"
+ "@react-stately/slider": "npm:^3.5.6"
+ "@react-stately/table": "npm:^3.12.1"
+ "@react-stately/tabs": "npm:^3.6.8"
+ "@react-stately/toggle": "npm:^3.7.6"
+ "@react-stately/tooltip": "npm:^3.4.11"
+ "@react-stately/tree": "npm:^3.8.3"
+ "@react-types/shared": "npm:^3.24.1"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/26343451f2f66e1f53e5080d8ad771be8a179cc327c19bafcb006fd0a085deeac4d278d2a1141d15fd041590be02278314b9d1ff609f6ab731813570aab27693
+ languageName: node
+ linkType: hard
+
+"react@npm:18.2.0":
+ version: 18.2.0
+ resolution: "react@npm:18.2.0"
+ dependencies:
+ loose-envify: "npm:^1.1.0"
+ checksum: 10c0/b562d9b569b0cb315e44b48099f7712283d93df36b19a39a67c254c6686479d3980b7f013dc931f4a5a3ae7645eae6386b4aa5eea933baa54ecd0f9acb0902b8
+ languageName: node
+ linkType: hard
+
+"readable-stream@npm:^2.3.3, readable-stream@npm:^2.3.8":
+ version: 2.3.8
+ resolution: "readable-stream@npm:2.3.8"
+ dependencies:
+ core-util-is: "npm:~1.0.0"
+ inherits: "npm:~2.0.3"
+ isarray: "npm:~1.0.0"
+ process-nextick-args: "npm:~2.0.0"
+ safe-buffer: "npm:~5.1.1"
+ string_decoder: "npm:~1.1.1"
+ util-deprecate: "npm:~1.0.1"
+ checksum: 10c0/7efdb01f3853bc35ac62ea25493567bf588773213f5f4a79f9c365e1ad13bab845ac0dae7bc946270dc40c3929483228415e92a3fc600cc7e4548992f41ee3fa
+ languageName: node
+ linkType: hard
+
+"readable-stream@npm:^3.1.1, readable-stream@npm:^3.6.0":
+ version: 3.6.2
+ resolution: "readable-stream@npm:3.6.2"
+ dependencies:
+ inherits: "npm:^2.0.3"
+ string_decoder: "npm:^1.1.1"
+ util-deprecate: "npm:^1.0.1"
+ checksum: 10c0/e37be5c79c376fdd088a45fa31ea2e423e5d48854be7a22a58869b4e84d25047b193f6acb54f1012331e1bcd667ffb569c01b99d36b0bd59658fb33f513511b7
+ languageName: node
+ linkType: hard
+
+"readdirp@npm:~3.6.0":
+ version: 3.6.0
+ resolution: "readdirp@npm:3.6.0"
+ dependencies:
+ picomatch: "npm:^2.2.1"
+ checksum: 10c0/6fa848cf63d1b82ab4e985f4cf72bd55b7dcfd8e0a376905804e48c3634b7e749170940ba77b32804d5fe93b3cc521aa95a8d7e7d725f830da6d93f3669ce66b
+ languageName: node
+ linkType: hard
+
+"readonly-date@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "readonly-date@npm:1.0.0"
+ checksum: 10c0/7ab32bf19f6bfec102584a524fa79a289e6ede0bf20c80fd90ab309962e45b71d19dd0e3915dff6e81edf226f08fda65e890539b4aca74668921790b10471356
+ languageName: node
+ linkType: hard
+
+"real-require@npm:^0.1.0":
+ version: 0.1.0
+ resolution: "real-require@npm:0.1.0"
+ checksum: 10c0/c0f8ae531d1f51fe6343d47a2a1e5756e19b65a81b4a9642b9ebb4874e0d8b5f3799bc600bf4592838242477edc6f57778593f21b71d90f8ad0d8a317bbfae1c
+ languageName: node
+ linkType: hard
+
+"reflect.getprototypeof@npm:^1.0.4":
+ version: 1.0.6
+ resolution: "reflect.getprototypeof@npm:1.0.6"
+ dependencies:
+ call-bind: "npm:^1.0.7"
+ define-properties: "npm:^1.2.1"
+ es-abstract: "npm:^1.23.1"
+ es-errors: "npm:^1.3.0"
+ get-intrinsic: "npm:^1.2.4"
+ globalthis: "npm:^1.0.3"
+ which-builtin-type: "npm:^1.1.3"
+ checksum: 10c0/baf4ef8ee6ff341600f4720b251cf5a6cb552d6a6ab0fdc036988c451bf16f920e5feb0d46bd4f530a5cce568f1f7aca2d77447ca798920749cfc52783c39b55
+ languageName: node
+ linkType: hard
+
+"regenerator-runtime@npm:^0.14.0":
+ version: 0.14.1
+ resolution: "regenerator-runtime@npm:0.14.1"
+ checksum: 10c0/1b16eb2c4bceb1665c89de70dcb64126a22bc8eb958feef3cd68fe11ac6d2a4899b5cd1b80b0774c7c03591dc57d16631a7f69d2daa2ec98100e2f29f7ec4cc4
+ languageName: node
+ linkType: hard
+
+"regexp.prototype.flags@npm:^1.5.2":
+ version: 1.5.2
+ resolution: "regexp.prototype.flags@npm:1.5.2"
+ dependencies:
+ call-bind: "npm:^1.0.6"
+ define-properties: "npm:^1.2.1"
+ es-errors: "npm:^1.3.0"
+ set-function-name: "npm:^2.0.1"
+ checksum: 10c0/0f3fc4f580d9c349f8b560b012725eb9c002f36daa0041b3fbf6f4238cb05932191a4d7d5db3b5e2caa336d5150ad0402ed2be81f711f9308fe7e1a9bf9bd552
+ languageName: node
+ linkType: hard
+
+"regexpp@npm:^3.2.0":
+ version: 3.2.0
+ resolution: "regexpp@npm:3.2.0"
+ checksum: 10c0/d1da82385c8754a1681416b90b9cca0e21b4a2babef159099b88f640637d789c69011d0bc94705dacab85b81133e929d027d85210e8b8b03f8035164dbc14710
+ languageName: node
+ linkType: hard
+
+"remark-parse@npm:^11.0.0":
+ version: 11.0.0
+ resolution: "remark-parse@npm:11.0.0"
+ dependencies:
+ "@types/mdast": "npm:^4.0.0"
+ mdast-util-from-markdown: "npm:^2.0.0"
+ micromark-util-types: "npm:^2.0.0"
+ unified: "npm:^11.0.0"
+ checksum: 10c0/6eed15ddb8680eca93e04fcb2d1b8db65a743dcc0023f5007265dda558b09db595a087f622062ccad2630953cd5cddc1055ce491d25a81f3317c858348a8dd38
+ languageName: node
+ linkType: hard
+
+"remark-rehype@npm:^11.0.0":
+ version: 11.1.0
+ resolution: "remark-rehype@npm:11.1.0"
+ dependencies:
+ "@types/hast": "npm:^3.0.0"
+ "@types/mdast": "npm:^4.0.0"
+ mdast-util-to-hast: "npm:^13.0.0"
+ unified: "npm:^11.0.0"
+ vfile: "npm:^6.0.0"
+ checksum: 10c0/7a9534847ea70e78cf09227a4302af7e491f625fd092351a1b1ee27a2de0a369ac4acf069682e8a8ec0a55847b3e83f0be76b2028aa90e98e69e21420b9794c3
+ languageName: node
+ linkType: hard
+
+"remove-accents@npm:0.5.0":
+ version: 0.5.0
+ resolution: "remove-accents@npm:0.5.0"
+ checksum: 10c0/a75321aa1b53d9abe82637115a492770bfe42bb38ed258be748bf6795871202bc8b4badff22013494a7029f5a241057ad8d3f72adf67884dbe15a9e37e87adc4
+ languageName: node
+ linkType: hard
+
+"resolve-from@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "resolve-from@npm:4.0.0"
+ checksum: 10c0/8408eec31a3112ef96e3746c37be7d64020cda07c03a920f5024e77290a218ea758b26ca9529fd7b1ad283947f34b2291c1c0f6aa0ed34acfdda9c6014c8d190
+ languageName: node
+ linkType: hard
+
+"resolve-pkg-maps@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "resolve-pkg-maps@npm:1.0.0"
+ checksum: 10c0/fb8f7bbe2ca281a73b7ef423a1cbc786fb244bd7a95cbe5c3fba25b27d327150beca8ba02f622baea65919a57e061eb5005204daa5f93ed590d9b77463a567ab
+ languageName: node
+ linkType: hard
+
+"resolve@npm:^1.22.4":
+ version: 1.22.8
+ resolution: "resolve@npm:1.22.8"
+ dependencies:
+ is-core-module: "npm:^2.13.0"
+ path-parse: "npm:^1.0.7"
+ supports-preserve-symlinks-flag: "npm:^1.0.0"
+ bin:
+ resolve: bin/resolve
+ checksum: 10c0/07e179f4375e1fd072cfb72ad66d78547f86e6196c4014b31cb0b8bb1db5f7ca871f922d08da0fbc05b94e9fd42206f819648fa3b5b873ebbc8e1dc68fec433a
+ languageName: node
+ linkType: hard
+
+"resolve@npm:^2.0.0-next.5":
+ version: 2.0.0-next.5
+ resolution: "resolve@npm:2.0.0-next.5"
+ dependencies:
+ is-core-module: "npm:^2.13.0"
+ path-parse: "npm:^1.0.7"
+ supports-preserve-symlinks-flag: "npm:^1.0.0"
+ bin:
+ resolve: bin/resolve
+ checksum: 10c0/a6c33555e3482ea2ec4c6e3d3bf0d78128abf69dca99ae468e64f1e30acaa318fd267fb66c8836b04d558d3e2d6ed875fe388067e7d8e0de647d3c21af21c43a
+ languageName: node
+ linkType: hard
+
+"resolve@patch:resolve@npm%3A^1.22.4#optional!builtin":
+ version: 1.22.8
+ resolution: "resolve@patch:resolve@npm%3A1.22.8#optional!builtin::version=1.22.8&hash=c3c19d"
+ dependencies:
+ is-core-module: "npm:^2.13.0"
+ path-parse: "npm:^1.0.7"
+ supports-preserve-symlinks-flag: "npm:^1.0.0"
+ bin:
+ resolve: bin/resolve
+ checksum: 10c0/0446f024439cd2e50c6c8fa8ba77eaa8370b4180f401a96abf3d1ebc770ac51c1955e12764cde449fde3fff480a61f84388e3505ecdbab778f4bef5f8212c729
+ languageName: node
+ linkType: hard
+
+"resolve@patch:resolve@npm%3A^2.0.0-next.5#optional!builtin":
+ version: 2.0.0-next.5
+ resolution: "resolve@patch:resolve@npm%3A2.0.0-next.5#optional!builtin::version=2.0.0-next.5&hash=c3c19d"
+ dependencies:
+ is-core-module: "npm:^2.13.0"
+ path-parse: "npm:^1.0.7"
+ supports-preserve-symlinks-flag: "npm:^1.0.0"
+ bin:
+ resolve: bin/resolve
+ checksum: 10c0/78ad6edb8309a2bfb720c2c1898f7907a37f858866ce11a5974643af1203a6a6e05b2fa9c53d8064a673a447b83d42569260c306d43628bff5bb101969708355
+ languageName: node
+ linkType: hard
+
+"retry@npm:^0.12.0":
+ version: 0.12.0
+ resolution: "retry@npm:0.12.0"
+ checksum: 10c0/59933e8501727ba13ad73ef4a04d5280b3717fd650408460c987392efe9d7be2040778ed8ebe933c5cbd63da3dcc37919c141ef8af0a54a6e4fca5a2af177bfe
+ languageName: node
+ linkType: hard
+
+"reusify@npm:^1.0.4":
+ version: 1.0.4
+ resolution: "reusify@npm:1.0.4"
+ checksum: 10c0/c19ef26e4e188f408922c46f7ff480d38e8dfc55d448310dfb518736b23ed2c4f547fb64a6ed5bdba92cd7e7ddc889d36ff78f794816d5e71498d645ef476107
+ languageName: node
+ linkType: hard
+
+"rimraf@npm:^3.0.2":
+ version: 3.0.2
+ resolution: "rimraf@npm:3.0.2"
+ dependencies:
+ glob: "npm:^7.1.3"
+ bin:
+ rimraf: bin.js
+ checksum: 10c0/9cb7757acb489bd83757ba1a274ab545eafd75598a9d817e0c3f8b164238dd90eba50d6b848bd4dcc5f3040912e882dc7ba71653e35af660d77b25c381d402e8
+ languageName: node
+ linkType: hard
+
+"ripemd160@npm:^2.0.0, ripemd160@npm:^2.0.1":
+ version: 2.0.2
+ resolution: "ripemd160@npm:2.0.2"
+ dependencies:
+ hash-base: "npm:^3.0.0"
+ inherits: "npm:^2.0.1"
+ checksum: 10c0/f6f0df78817e78287c766687aed4d5accbebc308a8e7e673fb085b9977473c1f139f0c5335d353f172a915bb288098430755d2ad3c4f30612f4dd0c901cd2c3a
+ languageName: node
+ linkType: hard
+
+"run-parallel@npm:^1.1.9":
+ version: 1.2.0
+ resolution: "run-parallel@npm:1.2.0"
+ dependencies:
+ queue-microtask: "npm:^1.2.2"
+ checksum: 10c0/200b5ab25b5b8b7113f9901bfe3afc347e19bb7475b267d55ad0eb86a62a46d77510cb0f232507c9e5d497ebda569a08a9867d0d14f57a82ad5564d991588b39
+ languageName: node
+ linkType: hard
+
+"rxjs@npm:^7.8.1":
+ version: 7.8.1
+ resolution: "rxjs@npm:7.8.1"
+ dependencies:
+ tslib: "npm:^2.1.0"
+ checksum: 10c0/3c49c1ecd66170b175c9cacf5cef67f8914dcbc7cd0162855538d365c83fea631167cacb644b3ce533b2ea0e9a4d0b12175186985f89d75abe73dbd8f7f06f68
+ languageName: node
+ linkType: hard
+
+"safe-array-concat@npm:^1.1.2":
+ version: 1.1.2
+ resolution: "safe-array-concat@npm:1.1.2"
+ dependencies:
+ call-bind: "npm:^1.0.7"
+ get-intrinsic: "npm:^1.2.4"
+ has-symbols: "npm:^1.0.3"
+ isarray: "npm:^2.0.5"
+ checksum: 10c0/12f9fdb01c8585e199a347eacc3bae7b5164ae805cdc8c6707199dbad5b9e30001a50a43c4ee24dc9ea32dbb7279397850e9208a7e217f4d8b1cf5d90129dec9
+ languageName: node
+ linkType: hard
+
+"safe-buffer@npm:^5.0.1, safe-buffer@npm:^5.1.0, safe-buffer@npm:^5.1.1, safe-buffer@npm:^5.1.2, safe-buffer@npm:^5.2.0, safe-buffer@npm:^5.2.1, safe-buffer@npm:~5.2.0":
+ version: 5.2.1
+ resolution: "safe-buffer@npm:5.2.1"
+ checksum: 10c0/6501914237c0a86e9675d4e51d89ca3c21ffd6a31642efeba25ad65720bce6921c9e7e974e5be91a786b25aa058b5303285d3c15dbabf983a919f5f630d349f3
+ languageName: node
+ linkType: hard
+
+"safe-buffer@npm:~5.1.0, safe-buffer@npm:~5.1.1":
+ version: 5.1.2
+ resolution: "safe-buffer@npm:5.1.2"
+ checksum: 10c0/780ba6b5d99cc9a40f7b951d47152297d0e260f0df01472a1b99d4889679a4b94a13d644f7dbc4f022572f09ae9005fa2fbb93bbbd83643316f365a3e9a45b21
+ languageName: node
+ linkType: hard
+
+"safe-regex-test@npm:^1.0.3":
+ version: 1.0.3
+ resolution: "safe-regex-test@npm:1.0.3"
+ dependencies:
+ call-bind: "npm:^1.0.6"
+ es-errors: "npm:^1.3.0"
+ is-regex: "npm:^1.1.4"
+ checksum: 10c0/900bf7c98dc58f08d8523b7012b468e4eb757afa624f198902c0643d7008ba777b0bdc35810ba0b758671ce887617295fb742b3f3968991b178ceca54cb07603
+ languageName: node
+ linkType: hard
+
+"safe-stable-stringify@npm:^2.1.0":
+ version: 2.4.3
+ resolution: "safe-stable-stringify@npm:2.4.3"
+ checksum: 10c0/81dede06b8f2ae794efd868b1e281e3c9000e57b39801c6c162267eb9efda17bd7a9eafa7379e1f1cacd528d4ced7c80d7460ad26f62ada7c9e01dec61b2e768
+ languageName: node
+ linkType: hard
+
+"safer-buffer@npm:>= 2.1.2 < 3.0.0":
+ version: 2.1.2
+ resolution: "safer-buffer@npm:2.1.2"
+ checksum: 10c0/7e3c8b2e88a1841c9671094bbaeebd94448111dd90a81a1f606f3f67708a6ec57763b3b47f06da09fc6054193e0e6709e77325415dc8422b04497a8070fa02d4
+ languageName: node
+ linkType: hard
+
+"scheduler@npm:^0.23.0":
+ version: 0.23.0
+ resolution: "scheduler@npm:0.23.0"
+ dependencies:
+ loose-envify: "npm:^1.1.0"
+ checksum: 10c0/b777f7ca0115e6d93e126ac490dbd82642d14983b3079f58f35519d992fa46260be7d6e6cede433a92db70306310c6f5f06e144f0e40c484199e09c1f7be53dd
+ languageName: node
+ linkType: hard
+
+"scrypt-js@npm:3.0.1":
+ version: 3.0.1
+ resolution: "scrypt-js@npm:3.0.1"
+ checksum: 10c0/e2941e1c8b5c84c7f3732b0153fee624f5329fc4e772a06270ee337d4d2df4174b8abb5e6ad53804a29f53890ecbc78f3775a319323568c0313040c0e55f5b10
+ languageName: node
+ linkType: hard
+
+"secp256k1@npm:^4.0.2":
+ version: 4.0.3
+ resolution: "secp256k1@npm:4.0.3"
+ dependencies:
+ elliptic: "npm:^6.5.4"
+ node-addon-api: "npm:^2.0.0"
+ node-gyp: "npm:latest"
+ node-gyp-build: "npm:^4.2.0"
+ checksum: 10c0/de0a0e525a6f8eb2daf199b338f0797dbfe5392874285a145bb005a72cabacb9d42c0197d0de129a1a0f6094d2cc4504d1f87acb6a8bbfb7770d4293f252c401
+ languageName: node
+ linkType: hard
+
+"semver@npm:^6.3.1":
+ version: 6.3.1
+ resolution: "semver@npm:6.3.1"
+ bin:
+ semver: bin/semver.js
+ checksum: 10c0/e3d79b609071caa78bcb6ce2ad81c7966a46a7431d9d58b8800cfa9cb6a63699b3899a0e4bcce36167a284578212d9ae6942b6929ba4aa5015c079a67751d42d
+ languageName: node
+ linkType: hard
+
+"semver@npm:^7.3.5, semver@npm:^7.5.0":
+ version: 7.6.0
+ resolution: "semver@npm:7.6.0"
+ dependencies:
+ lru-cache: "npm:^6.0.0"
+ bin:
+ semver: bin/semver.js
+ checksum: 10c0/fbfe717094ace0aa8d6332d7ef5ce727259815bd8d8815700853f4faf23aacbd7192522f0dc5af6df52ef4fa85a355ebd2f5d39f554bd028200d6cf481ab9b53
+ languageName: node
+ linkType: hard
+
+"semver@npm:^7.3.7":
+ version: 7.6.2
+ resolution: "semver@npm:7.6.2"
+ bin:
+ semver: bin/semver.js
+ checksum: 10c0/97d3441e97ace8be4b1976433d1c32658f6afaff09f143e52c593bae7eef33de19e3e369c88bd985ce1042c6f441c80c6803078d1de2a9988080b66684cbb30c
+ languageName: node
+ linkType: hard
+
+"set-function-length@npm:^1.2.1":
+ version: 1.2.2
+ resolution: "set-function-length@npm:1.2.2"
+ dependencies:
+ define-data-property: "npm:^1.1.4"
+ es-errors: "npm:^1.3.0"
+ function-bind: "npm:^1.1.2"
+ get-intrinsic: "npm:^1.2.4"
+ gopd: "npm:^1.0.1"
+ has-property-descriptors: "npm:^1.0.2"
+ checksum: 10c0/82850e62f412a258b71e123d4ed3873fa9377c216809551192bb6769329340176f109c2eeae8c22a8d386c76739855f78e8716515c818bcaef384b51110f0f3c
+ languageName: node
+ linkType: hard
+
+"set-function-name@npm:^2.0.1, set-function-name@npm:^2.0.2":
+ version: 2.0.2
+ resolution: "set-function-name@npm:2.0.2"
+ dependencies:
+ define-data-property: "npm:^1.1.4"
+ es-errors: "npm:^1.3.0"
+ functions-have-names: "npm:^1.2.3"
+ has-property-descriptors: "npm:^1.0.2"
+ checksum: 10c0/fce59f90696c450a8523e754abb305e2b8c73586452619c2bad5f7bf38c7b6b4651895c9db895679c5bef9554339cf3ef1c329b66ece3eda7255785fbe299316
+ languageName: node
+ linkType: hard
+
+"sha.js@npm:^2.4.0, sha.js@npm:^2.4.11, sha.js@npm:^2.4.8":
+ version: 2.4.11
+ resolution: "sha.js@npm:2.4.11"
+ dependencies:
+ inherits: "npm:^2.0.1"
+ safe-buffer: "npm:^5.0.1"
+ bin:
+ sha.js: ./bin.js
+ checksum: 10c0/b7a371bca8821c9cc98a0aeff67444a03d48d745cb103f17228b96793f455f0eb0a691941b89ea1e60f6359207e36081d9be193252b0f128e0daf9cfea2815a5
+ languageName: node
+ linkType: hard
+
+"shebang-command@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "shebang-command@npm:2.0.0"
+ dependencies:
+ shebang-regex: "npm:^3.0.0"
+ checksum: 10c0/a41692e7d89a553ef21d324a5cceb5f686d1f3c040759c50aab69688634688c5c327f26f3ecf7001ebfd78c01f3c7c0a11a7c8bfd0a8bc9f6240d4f40b224e4e
+ languageName: node
+ linkType: hard
+
+"shebang-regex@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "shebang-regex@npm:3.0.0"
+ checksum: 10c0/1dbed0726dd0e1152a92696c76c7f06084eb32a90f0528d11acd764043aacf76994b2fb30aa1291a21bd019d6699164d048286309a278855ee7bec06cf6fb690
+ languageName: node
+ linkType: hard
+
+"side-channel@npm:^1.0.4, side-channel@npm:^1.0.6":
+ version: 1.0.6
+ resolution: "side-channel@npm:1.0.6"
+ dependencies:
+ call-bind: "npm:^1.0.7"
+ es-errors: "npm:^1.3.0"
+ get-intrinsic: "npm:^1.2.4"
+ object-inspect: "npm:^1.13.1"
+ checksum: 10c0/d2afd163dc733cc0a39aa6f7e39bf0c436293510dbccbff446733daeaf295857dbccf94297092ec8c53e2503acac30f0b78830876f0485991d62a90e9cad305f
+ languageName: node
+ linkType: hard
+
+"signal-exit@npm:^4.0.1, signal-exit@npm:^4.1.0":
+ version: 4.1.0
+ resolution: "signal-exit@npm:4.1.0"
+ checksum: 10c0/41602dce540e46d599edba9d9860193398d135f7ff72cab629db5171516cfae628d21e7bfccde1bbfdf11c48726bc2a6d1a8fb8701125852fbfda7cf19c6aa83
+ languageName: node
+ linkType: hard
+
+"slash@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "slash@npm:3.0.0"
+ checksum: 10c0/e18488c6a42bdfd4ac5be85b2ced3ccd0224773baae6ad42cfbb9ec74fc07f9fa8396bd35ee638084ead7a2a0818eb5e7151111544d4731ce843019dab4be47b
+ languageName: node
+ linkType: hard
+
+"smart-buffer@npm:^4.2.0":
+ version: 4.2.0
+ resolution: "smart-buffer@npm:4.2.0"
+ checksum: 10c0/a16775323e1404dd43fabafe7460be13a471e021637bc7889468eb45ce6a6b207261f454e4e530a19500cc962c4cc5348583520843b363f4193cee5c00e1e539
+ languageName: node
+ linkType: hard
+
+"socks-proxy-agent@npm:^8.0.3":
+ version: 8.0.3
+ resolution: "socks-proxy-agent@npm:8.0.3"
+ dependencies:
+ agent-base: "npm:^7.1.1"
+ debug: "npm:^4.3.4"
+ socks: "npm:^2.7.1"
+ checksum: 10c0/4950529affd8ccd6951575e21c1b7be8531b24d924aa4df3ee32df506af34b618c4e50d261f4cc603f1bfd8d426915b7d629966c8ce45b05fb5ad8c8b9a6459d
+ languageName: node
+ linkType: hard
+
+"socks@npm:^2.7.1":
+ version: 2.8.3
+ resolution: "socks@npm:2.8.3"
+ dependencies:
+ ip-address: "npm:^9.0.5"
+ smart-buffer: "npm:^4.2.0"
+ checksum: 10c0/d54a52bf9325165770b674a67241143a3d8b4e4c8884560c4e0e078aace2a728dffc7f70150660f51b85797c4e1a3b82f9b7aa25e0a0ceae1a243365da5c51a7
+ languageName: node
+ linkType: hard
+
+"sonic-boom@npm:^2.2.1":
+ version: 2.8.0
+ resolution: "sonic-boom@npm:2.8.0"
+ dependencies:
+ atomic-sleep: "npm:^1.0.0"
+ checksum: 10c0/6b40f2e91a999819b1dc24018a5d1c8b74e66e5d019eabad17d5b43fc309b32255b7c405ed6ec885693c8f2b969099ce96aeefde027180928bc58c034234a86d
+ languageName: node
+ linkType: hard
+
+"source-map-js@npm:^1.0.2":
+ version: 1.2.0
+ resolution: "source-map-js@npm:1.2.0"
+ checksum: 10c0/7e5f896ac10a3a50fe2898e5009c58ff0dc102dcb056ed27a354623a0ece8954d4b2649e1a1b2b52ef2e161d26f8859c7710350930751640e71e374fe2d321a4
+ languageName: node
+ linkType: hard
+
+"space-separated-tokens@npm:^2.0.0":
+ version: 2.0.2
+ resolution: "space-separated-tokens@npm:2.0.2"
+ checksum: 10c0/6173e1d903dca41dcab6a2deed8b4caf61bd13b6d7af8374713500570aa929ff9414ae09a0519f4f8772df993300305a395d4871f35bc4ca72b6db57e1f30af8
+ languageName: node
+ linkType: hard
+
+"split-on-first@npm:^1.0.0":
+ version: 1.1.0
+ resolution: "split-on-first@npm:1.1.0"
+ checksum: 10c0/56df8344f5a5de8521898a5c090023df1d8b8c75be6228f56c52491e0fc1617a5236f2ac3a066adb67a73231eac216ccea7b5b4a2423a543c277cb2f48d24c29
+ languageName: node
+ linkType: hard
+
+"split2@npm:^4.0.0":
+ version: 4.2.0
+ resolution: "split2@npm:4.2.0"
+ checksum: 10c0/b292beb8ce9215f8c642bb68be6249c5a4c7f332fc8ecadae7be5cbdf1ea95addc95f0459ef2e7ad9d45fd1064698a097e4eb211c83e772b49bc0ee423e91534
+ languageName: node
+ linkType: hard
+
+"sprintf-js@npm:^1.1.3":
+ version: 1.1.3
+ resolution: "sprintf-js@npm:1.1.3"
+ checksum: 10c0/09270dc4f30d479e666aee820eacd9e464215cdff53848b443964202bf4051490538e5dd1b42e1a65cf7296916ca17640aebf63dae9812749c7542ee5f288dec
+ languageName: node
+ linkType: hard
+
+"ssri@npm:^10.0.0":
+ version: 10.0.6
+ resolution: "ssri@npm:10.0.6"
+ dependencies:
+ minipass: "npm:^7.0.3"
+ checksum: 10c0/e5a1e23a4057a86a97971465418f22ea89bd439ac36ade88812dd920e4e61873e8abd6a9b72a03a67ef50faa00a2daf1ab745c5a15b46d03e0544a0296354227
+ languageName: node
+ linkType: hard
+
+"std-env@npm:^3.7.0":
+ version: 3.7.0
+ resolution: "std-env@npm:3.7.0"
+ checksum: 10c0/60edf2d130a4feb7002974af3d5a5f3343558d1ccf8d9b9934d225c638606884db4a20d2fe6440a09605bca282af6b042ae8070a10490c0800d69e82e478f41e
+ languageName: node
+ linkType: hard
+
+"stream-shift@npm:^1.0.2":
+ version: 1.0.3
+ resolution: "stream-shift@npm:1.0.3"
+ checksum: 10c0/939cd1051ca750d240a0625b106a2b988c45fb5a3be0cebe9a9858cb01bc1955e8c7b9fac17a9462976bea4a7b704e317c5c2200c70f0ca715a3363b9aa4fd3b
+ languageName: node
+ linkType: hard
+
+"streamsearch@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "streamsearch@npm:1.1.0"
+ checksum: 10c0/fbd9aecc2621364384d157f7e59426f4bfd385e8b424b5aaa79c83a6f5a1c8fd2e4e3289e95de1eb3511cb96bb333d6281a9919fafce760e4edb35b2cd2facab
+ languageName: node
+ linkType: hard
+
+"strict-uri-encode@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "strict-uri-encode@npm:2.0.0"
+ checksum: 10c0/010cbc78da0e2cf833b0f5dc769e21ae74cdc5d5f5bd555f14a4a4876c8ad2c85ab8b5bdf9a722dc71a11dcd3184085e1c3c0bd50ec6bb85fffc0f28cf82597d
+ languageName: node
+ linkType: hard
+
+"string-width-cjs@npm:string-width@^4.2.0, string-width@npm:^4.1.0":
+ version: 4.2.3
+ resolution: "string-width@npm:4.2.3"
+ dependencies:
+ emoji-regex: "npm:^8.0.0"
+ is-fullwidth-code-point: "npm:^3.0.0"
+ strip-ansi: "npm:^6.0.1"
+ checksum: 10c0/1e525e92e5eae0afd7454086eed9c818ee84374bb80328fc41217ae72ff5f065ef1c9d7f72da41de40c75fa8bb3dee63d92373fd492c84260a552c636392a47b
+ languageName: node
+ linkType: hard
+
+"string-width@npm:^5.0.1, string-width@npm:^5.1.2":
+ version: 5.1.2
+ resolution: "string-width@npm:5.1.2"
+ dependencies:
+ eastasianwidth: "npm:^0.2.0"
+ emoji-regex: "npm:^9.2.2"
+ strip-ansi: "npm:^7.0.1"
+ checksum: 10c0/ab9c4264443d35b8b923cbdd513a089a60de339216d3b0ed3be3ba57d6880e1a192b70ae17225f764d7adbf5994e9bb8df253a944736c15a0240eff553c678ca
+ languageName: node
+ linkType: hard
+
+"string.prototype.matchall@npm:^4.0.11":
+ version: 4.0.11
+ resolution: "string.prototype.matchall@npm:4.0.11"
+ dependencies:
+ call-bind: "npm:^1.0.7"
+ define-properties: "npm:^1.2.1"
+ es-abstract: "npm:^1.23.2"
+ es-errors: "npm:^1.3.0"
+ es-object-atoms: "npm:^1.0.0"
+ get-intrinsic: "npm:^1.2.4"
+ gopd: "npm:^1.0.1"
+ has-symbols: "npm:^1.0.3"
+ internal-slot: "npm:^1.0.7"
+ regexp.prototype.flags: "npm:^1.5.2"
+ set-function-name: "npm:^2.0.2"
+ side-channel: "npm:^1.0.6"
+ checksum: 10c0/915a2562ac9ab5e01b7be6fd8baa0b2b233a0a9aa975fcb2ec13cc26f08fb9a3e85d5abdaa533c99c6fc4c5b65b914eba3d80c4aff9792a4c9fed403f28f7d9d
+ languageName: node
+ linkType: hard
+
+"string.prototype.trim@npm:^1.2.9":
+ version: 1.2.9
+ resolution: "string.prototype.trim@npm:1.2.9"
+ dependencies:
+ call-bind: "npm:^1.0.7"
+ define-properties: "npm:^1.2.1"
+ es-abstract: "npm:^1.23.0"
+ es-object-atoms: "npm:^1.0.0"
+ checksum: 10c0/dcef1a0fb61d255778155006b372dff8cc6c4394bc39869117e4241f41a2c52899c0d263ffc7738a1f9e61488c490b05c0427faa15151efad721e1a9fb2663c2
+ languageName: node
+ linkType: hard
+
+"string.prototype.trimend@npm:^1.0.8":
+ version: 1.0.8
+ resolution: "string.prototype.trimend@npm:1.0.8"
+ dependencies:
+ call-bind: "npm:^1.0.7"
+ define-properties: "npm:^1.2.1"
+ es-object-atoms: "npm:^1.0.0"
+ checksum: 10c0/0a0b54c17c070551b38e756ae271865ac6cc5f60dabf2e7e343cceae7d9b02e1a1120a824e090e79da1b041a74464e8477e2da43e2775c85392be30a6f60963c
+ languageName: node
+ linkType: hard
+
+"string.prototype.trimstart@npm:^1.0.8":
+ version: 1.0.8
+ resolution: "string.prototype.trimstart@npm:1.0.8"
+ dependencies:
+ call-bind: "npm:^1.0.7"
+ define-properties: "npm:^1.2.1"
+ es-object-atoms: "npm:^1.0.0"
+ checksum: 10c0/d53af1899959e53c83b64a5fd120be93e067da740e7e75acb433849aa640782fb6c7d4cd5b84c954c84413745a3764df135a8afeb22908b86a835290788d8366
+ languageName: node
+ linkType: hard
+
+"string_decoder@npm:^1.1.1":
+ version: 1.3.0
+ resolution: "string_decoder@npm:1.3.0"
+ dependencies:
+ safe-buffer: "npm:~5.2.0"
+ checksum: 10c0/810614ddb030e271cd591935dcd5956b2410dd079d64ff92a1844d6b7588bf992b3e1b69b0f4d34a3e06e0bd73046ac646b5264c1987b20d0601f81ef35d731d
+ languageName: node
+ linkType: hard
+
+"string_decoder@npm:~1.1.1":
+ version: 1.1.1
+ resolution: "string_decoder@npm:1.1.1"
+ dependencies:
+ safe-buffer: "npm:~5.1.0"
+ checksum: 10c0/b4f89f3a92fd101b5653ca3c99550e07bdf9e13b35037e9e2a1c7b47cec4e55e06ff3fc468e314a0b5e80bfbaf65c1ca5a84978764884ae9413bec1fc6ca924e
+ languageName: node
+ linkType: hard
+
+"stringify-entities@npm:^4.0.0":
+ version: 4.0.4
+ resolution: "stringify-entities@npm:4.0.4"
+ dependencies:
+ character-entities-html4: "npm:^2.0.0"
+ character-entities-legacy: "npm:^3.0.0"
+ checksum: 10c0/537c7e656354192406bdd08157d759cd615724e9d0873602d2c9b2f6a5c0a8d0b1d73a0a08677848105c5eebac6db037b57c0b3a4ec86331117fa7319ed50448
+ languageName: node
+ linkType: hard
+
+"strip-ansi-cjs@npm:strip-ansi@^6.0.1, strip-ansi@npm:^6.0.0, strip-ansi@npm:^6.0.1":
+ version: 6.0.1
+ resolution: "strip-ansi@npm:6.0.1"
+ dependencies:
+ ansi-regex: "npm:^5.0.1"
+ checksum: 10c0/1ae5f212a126fe5b167707f716942490e3933085a5ff6c008ab97ab2f272c8025d3aa218b7bd6ab25729ca20cc81cddb252102f8751e13482a5199e873680952
+ languageName: node
+ linkType: hard
+
+"strip-ansi@npm:^7.0.1":
+ version: 7.1.0
+ resolution: "strip-ansi@npm:7.1.0"
+ dependencies:
+ ansi-regex: "npm:^6.0.1"
+ checksum: 10c0/a198c3762e8832505328cbf9e8c8381de14a4fa50a4f9b2160138158ea88c0f5549fb50cb13c651c3088f47e63a108b34622ec18c0499b6c8c3a5ddf6b305ac4
+ languageName: node
+ linkType: hard
+
+"strip-bom@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "strip-bom@npm:3.0.0"
+ checksum: 10c0/51201f50e021ef16672593d7434ca239441b7b760e905d9f33df6e4f3954ff54ec0e0a06f100d028af0982d6f25c35cd5cda2ce34eaebccd0250b8befb90d8f1
+ languageName: node
+ linkType: hard
+
+"strip-final-newline@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "strip-final-newline@npm:3.0.0"
+ checksum: 10c0/a771a17901427bac6293fd416db7577e2bc1c34a19d38351e9d5478c3c415f523f391003b42ed475f27e33a78233035df183525395f731d3bfb8cdcbd4da08ce
+ languageName: node
+ linkType: hard
+
+"strip-json-comments@npm:^3.1.0, strip-json-comments@npm:^3.1.1":
+ version: 3.1.1
+ resolution: "strip-json-comments@npm:3.1.1"
+ checksum: 10c0/9681a6257b925a7fa0f285851c0e613cc934a50661fa7bb41ca9cbbff89686bb4a0ee366e6ecedc4daafd01e83eee0720111ab294366fe7c185e935475ebcecd
+ languageName: node
+ linkType: hard
+
+"style-to-object@npm:^1.0.0":
+ version: 1.0.6
+ resolution: "style-to-object@npm:1.0.6"
+ dependencies:
+ inline-style-parser: "npm:0.2.3"
+ checksum: 10c0/be5e8e3f0e35c0338de4112b9d861db576a52ebbd97f2501f1fb2c900d05c8fc42c5114407fa3a7f8b39301146cd8ca03a661bf52212394125a9629d5b771aba
+ languageName: node
+ linkType: hard
+
+"styled-jsx@npm:5.1.1":
+ version: 5.1.1
+ resolution: "styled-jsx@npm:5.1.1"
+ dependencies:
+ client-only: "npm:0.0.1"
+ peerDependencies:
+ react: ">= 16.8.0 || 17.x.x || ^18.0.0-0"
+ peerDependenciesMeta:
+ "@babel/core":
+ optional: true
+ babel-plugin-macros:
+ optional: true
+ checksum: 10c0/42655cdadfa5388f8a48bb282d6b450df7d7b8cf066ac37038bd0499d3c9f084815ebd9ff9dfa12a218fd4441338851db79603498d7557207009c1cf4d609835
+ languageName: node
+ linkType: hard
+
+"superjson@npm:^1.10.0":
+ version: 1.13.3
+ resolution: "superjson@npm:1.13.3"
+ dependencies:
+ copy-anything: "npm:^3.0.2"
+ checksum: 10c0/389a0a0c86884dd0558361af5d6d7f37102b71dda9595a665fe8b39d1ba0e57c859e39a9bd79b6f1fde6f4dcceac49a1c205f248d292744b2a340ee52846efdb
+ languageName: node
+ linkType: hard
+
+"supports-color@npm:^7.1.0":
+ version: 7.2.0
+ resolution: "supports-color@npm:7.2.0"
+ dependencies:
+ has-flag: "npm:^4.0.0"
+ checksum: 10c0/afb4c88521b8b136b5f5f95160c98dee7243dc79d5432db7efc27efb219385bbc7d9427398e43dd6cc730a0f87d5085ce1652af7efbe391327bc0a7d0f7fc124
+ languageName: node
+ linkType: hard
+
+"supports-preserve-symlinks-flag@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "supports-preserve-symlinks-flag@npm:1.0.0"
+ checksum: 10c0/6c4032340701a9950865f7ae8ef38578d8d7053f5e10518076e6554a9381fa91bd9c6850193695c141f32b21f979c985db07265a758867bac95de05f7d8aeb39
+ languageName: node
+ linkType: hard
+
+"symbol-observable@npm:^2.0.3":
+ version: 2.0.3
+ resolution: "symbol-observable@npm:2.0.3"
+ checksum: 10c0/03fb8766b75bfa65a3c7d68ae1e51a13a5ff71b40d6d53b17a0c9c77b1685c20a3bfbf45547ab36214a079665c3f551e250798f6b2f83a2a40762d864ed87f78
+ languageName: node
+ linkType: hard
+
+"system-architecture@npm:^0.1.0":
+ version: 0.1.0
+ resolution: "system-architecture@npm:0.1.0"
+ checksum: 10c0/1969974ea5d31a9ac7c38f2657cfe8255b36f9e1d5ba3c58cb84c24fbeedf562778b8511f18a0abe6d70ae90148cfcaf145ecf26e37c0a53a3829076f3238cbb
+ languageName: node
+ linkType: hard
+
+"tabbable@npm:^6.0.0":
+ version: 6.2.0
+ resolution: "tabbable@npm:6.2.0"
+ checksum: 10c0/ced8b38f05f2de62cd46836d77c2646c42b8c9713f5bd265daf0e78ff5ac73d3ba48a7ca45f348bafeef29b23da7187c72250742d37627883ef89cbd7fa76898
+ languageName: node
+ linkType: hard
+
+"tapable@npm:^2.2.0":
+ version: 2.2.1
+ resolution: "tapable@npm:2.2.1"
+ checksum: 10c0/bc40e6efe1e554d075469cedaba69a30eeb373552aaf41caeaaa45bf56ffacc2674261b106245bd566b35d8f3329b52d838e851ee0a852120acae26e622925c9
+ languageName: node
+ linkType: hard
+
+"tar@npm:^6.1.11, tar@npm:^6.1.2":
+ version: 6.2.1
+ resolution: "tar@npm:6.2.1"
+ dependencies:
+ chownr: "npm:^2.0.0"
+ fs-minipass: "npm:^2.0.0"
+ minipass: "npm:^5.0.0"
+ minizlib: "npm:^2.1.1"
+ mkdirp: "npm:^1.0.3"
+ yallist: "npm:^4.0.0"
+ checksum: 10c0/a5eca3eb50bc11552d453488344e6507156b9193efd7635e98e867fab275d527af53d8866e2370cd09dfe74378a18111622ace35af6a608e5223a7d27fe99537
+ languageName: node
+ linkType: hard
+
+"text-table@npm:^0.2.0":
+ version: 0.2.0
+ resolution: "text-table@npm:0.2.0"
+ checksum: 10c0/02805740c12851ea5982686810702e2f14369a5f4c5c40a836821e3eefc65ffeec3131ba324692a37608294b0fd8c1e55a2dd571ffed4909822787668ddbee5c
+ languageName: node
+ linkType: hard
+
+"thread-stream@npm:^0.15.1":
+ version: 0.15.2
+ resolution: "thread-stream@npm:0.15.2"
+ dependencies:
+ real-require: "npm:^0.1.0"
+ checksum: 10c0/f92f1b5a9f3f35a72c374e3fecbde6f14d69d5325ad9ce88930af6ed9c7c1ec814367716b712205fa4f06242ae5dd97321ae2c00b43586590ed4fa861f3c29ae
+ languageName: node
+ linkType: hard
+
+"tiny-secp256k1@npm:^1.1.3":
+ version: 1.1.6
+ resolution: "tiny-secp256k1@npm:1.1.6"
+ dependencies:
+ bindings: "npm:^1.3.0"
+ bn.js: "npm:^4.11.8"
+ create-hmac: "npm:^1.1.7"
+ elliptic: "npm:^6.4.0"
+ nan: "npm:^2.13.2"
+ node-gyp: "npm:latest"
+ checksum: 10c0/b47ceada38f6fa65190906e8a98b58d1584b0640383f04db8196a7098c726e926cfba6271a53e97d98d4c67e2b364618d7b3d7e402f63e44f0e07a4aca82ac8b
+ languageName: node
+ linkType: hard
+
+"tmp@npm:^0.2.1":
+ version: 0.2.3
+ resolution: "tmp@npm:0.2.3"
+ checksum: 10c0/3e809d9c2f46817475b452725c2aaa5d11985cf18d32a7a970ff25b568438e2c076c2e8609224feef3b7923fa9749b74428e3e634f6b8e520c534eef2fd24125
+ languageName: node
+ linkType: hard
+
+"to-regex-range@npm:^5.0.1":
+ version: 5.0.1
+ resolution: "to-regex-range@npm:5.0.1"
+ dependencies:
+ is-number: "npm:^7.0.0"
+ checksum: 10c0/487988b0a19c654ff3e1961b87f471702e708fa8a8dd02a298ef16da7206692e8552a0250e8b3e8759270f62e9d8314616f6da274734d3b558b1fc7b7724e892
+ languageName: node
+ linkType: hard
+
+"toggle-selection@npm:^1.0.6":
+ version: 1.0.6
+ resolution: "toggle-selection@npm:1.0.6"
+ checksum: 10c0/f2cf1f2c70f374fd87b0cdc8007453ba9e981c4305a8bf4eac10a30e62ecdfd28bca7d18f8f15b15a506bf8a7bfb20dbe3539f0fcf2a2c8396c1a78d53e1f179
+ languageName: node
+ linkType: hard
+
+"tr46@npm:~0.0.3":
+ version: 0.0.3
+ resolution: "tr46@npm:0.0.3"
+ checksum: 10c0/047cb209a6b60c742f05c9d3ace8fa510bff609995c129a37ace03476a9b12db4dbf975e74600830ef0796e18882b2381fb5fb1f6b4f96b832c374de3ab91a11
+ languageName: node
+ linkType: hard
+
+"trim-lines@npm:^3.0.0":
+ version: 3.0.1
+ resolution: "trim-lines@npm:3.0.1"
+ checksum: 10c0/3a1611fa9e52aa56a94c69951a9ea15b8aaad760eaa26c56a65330dc8adf99cb282fc07cc9d94968b7d4d88003beba220a7278bbe2063328eb23fb56f9509e94
+ languageName: node
+ linkType: hard
+
+"trough@npm:^2.0.0":
+ version: 2.2.0
+ resolution: "trough@npm:2.2.0"
+ checksum: 10c0/58b671fc970e7867a48514168894396dd94e6d9d6456aca427cc299c004fe67f35ed7172a36449086b2edde10e78a71a284ec0076809add6834fb8f857ccb9b0
+ languageName: node
+ linkType: hard
+
+"tsconfig-paths@npm:^3.15.0":
+ version: 3.15.0
+ resolution: "tsconfig-paths@npm:3.15.0"
+ dependencies:
+ "@types/json5": "npm:^0.0.29"
+ json5: "npm:^1.0.2"
+ minimist: "npm:^1.2.6"
+ strip-bom: "npm:^3.0.0"
+ checksum: 10c0/5b4f301a2b7a3766a986baf8fc0e177eb80bdba6e396792ff92dc23b5bca8bb279fc96517dcaaef63a3b49bebc6c4c833653ec58155780bc906bdbcf7dda0ef5
+ languageName: node
+ linkType: hard
+
+"tslib@npm:1.14.1, tslib@npm:^1.8.1":
+ version: 1.14.1
+ resolution: "tslib@npm:1.14.1"
+ checksum: 10c0/69ae09c49eea644bc5ebe1bca4fa4cc2c82b7b3e02f43b84bd891504edf66dbc6b2ec0eef31a957042de2269139e4acff911e6d186a258fb14069cd7f6febce2
+ languageName: node
+ linkType: hard
+
+"tslib@npm:^2.1.0, tslib@npm:^2.4.0":
+ version: 2.6.2
+ resolution: "tslib@npm:2.6.2"
+ checksum: 10c0/e03a8a4271152c8b26604ed45535954c0a45296e32445b4b87f8a5abdb2421f40b59b4ca437c4346af0f28179780d604094eb64546bee2019d903d01c6c19bdb
+ languageName: node
+ linkType: hard
+
+"tsutils@npm:^3.21.0":
+ version: 3.21.0
+ resolution: "tsutils@npm:3.21.0"
+ dependencies:
+ tslib: "npm:^1.8.1"
+ peerDependencies:
+ typescript: ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta"
+ checksum: 10c0/02f19e458ec78ead8fffbf711f834ad8ecd2cc6ade4ec0320790713dccc0a412b99e7fd907c4cda2a1dc602c75db6f12e0108e87a5afad4b2f9e90a24cabd5a2
+ languageName: node
+ linkType: hard
+
+"type-check@npm:^0.4.0, type-check@npm:~0.4.0":
+ version: 0.4.0
+ resolution: "type-check@npm:0.4.0"
+ dependencies:
+ prelude-ls: "npm:^1.2.1"
+ checksum: 10c0/7b3fd0ed43891e2080bf0c5c504b418fbb3e5c7b9708d3d015037ba2e6323a28152ec163bcb65212741fa5d2022e3075ac3c76440dbd344c9035f818e8ecee58
+ languageName: node
+ linkType: hard
+
+"type-fest@npm:^0.20.2":
+ version: 0.20.2
+ resolution: "type-fest@npm:0.20.2"
+ checksum: 10c0/dea9df45ea1f0aaa4e2d3bed3f9a0bfe9e5b2592bddb92eb1bf06e50bcf98dbb78189668cd8bc31a0511d3fc25539b4cd5c704497e53e93e2d40ca764b10bfc3
+ languageName: node
+ linkType: hard
+
+"typed-array-buffer@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "typed-array-buffer@npm:1.0.2"
+ dependencies:
+ call-bind: "npm:^1.0.7"
+ es-errors: "npm:^1.3.0"
+ is-typed-array: "npm:^1.1.13"
+ checksum: 10c0/9e043eb38e1b4df4ddf9dde1aa64919ae8bb909571c1cc4490ba777d55d23a0c74c7d73afcdd29ec98616d91bb3ae0f705fad4421ea147e1daf9528200b562da
+ languageName: node
+ linkType: hard
+
+"typed-array-byte-length@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "typed-array-byte-length@npm:1.0.1"
+ dependencies:
+ call-bind: "npm:^1.0.7"
+ for-each: "npm:^0.3.3"
+ gopd: "npm:^1.0.1"
+ has-proto: "npm:^1.0.3"
+ is-typed-array: "npm:^1.1.13"
+ checksum: 10c0/fcebeffb2436c9f355e91bd19e2368273b88c11d1acc0948a2a306792f1ab672bce4cfe524ab9f51a0505c9d7cd1c98eff4235c4f6bfef6a198f6cfc4ff3d4f3
+ languageName: node
+ linkType: hard
+
+"typed-array-byte-offset@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "typed-array-byte-offset@npm:1.0.2"
+ dependencies:
+ available-typed-arrays: "npm:^1.0.7"
+ call-bind: "npm:^1.0.7"
+ for-each: "npm:^0.3.3"
+ gopd: "npm:^1.0.1"
+ has-proto: "npm:^1.0.3"
+ is-typed-array: "npm:^1.1.13"
+ checksum: 10c0/d2628bc739732072e39269389a758025f75339de2ed40c4f91357023c5512d237f255b633e3106c461ced41907c1bf9a533c7e8578066b0163690ca8bc61b22f
+ languageName: node
+ linkType: hard
+
+"typed-array-length@npm:^1.0.6":
+ version: 1.0.6
+ resolution: "typed-array-length@npm:1.0.6"
+ dependencies:
+ call-bind: "npm:^1.0.7"
+ for-each: "npm:^0.3.3"
+ gopd: "npm:^1.0.1"
+ has-proto: "npm:^1.0.3"
+ is-typed-array: "npm:^1.1.13"
+ possible-typed-array-names: "npm:^1.0.0"
+ checksum: 10c0/74253d7dc488eb28b6b2711cf31f5a9dcefc9c41b0681fd1c178ed0a1681b4468581a3626d39cd4df7aee3d3927ab62be06aa9ca74e5baf81827f61641445b77
+ languageName: node
+ linkType: hard
+
+"typeforce@npm:^1.11.5":
+ version: 1.18.0
+ resolution: "typeforce@npm:1.18.0"
+ checksum: 10c0/011f57effd9ae6d3dd8bb249e09b4ecadb2c2a3f803b27f977ac8b7782834855930bff971ba549bcd5a8cedc8136d8a977c0b7e050cc67deded948181b7ba3e8
+ languageName: node
+ linkType: hard
+
+"typescript@npm:4.9.3":
+ version: 4.9.3
+ resolution: "typescript@npm:4.9.3"
+ bin:
+ tsc: bin/tsc
+ tsserver: bin/tsserver
+ checksum: 10c0/bddcb0794f2b8aa52094b9de9d70848fdf46ccecac68403e1c407dc9f1a4e4e28979887acd648e1917b1144e5d8fbfb4c824309d8806d393b4194aa39c71fe5e
+ languageName: node
+ linkType: hard
+
+"typescript@patch:typescript@npm%3A4.9.3#optional!builtin":
+ version: 4.9.3
+ resolution: "typescript@patch:typescript@npm%3A4.9.3#optional!builtin::version=4.9.3&hash=a66ed4"
+ bin:
+ tsc: bin/tsc
+ tsserver: bin/tsserver
+ checksum: 10c0/e5a7c3c6b75cf3eb2b6619fdc84f7ee434659413ace558da8b2c7270b21266be689ece5cf8e6bba529cdd3ea36d3c8ddac9c6d63e5f5c5224c1eac8785c92620
+ languageName: node
+ linkType: hard
+
+"ufo@npm:^1.3.2, ufo@npm:^1.4.0, ufo@npm:^1.5.3":
+ version: 1.5.3
+ resolution: "ufo@npm:1.5.3"
+ checksum: 10c0/1df10702582aa74f4deac4486ecdfd660e74be057355f1afb6adfa14243476cf3d3acff734ccc3d0b74e9bfdefe91d578f3edbbb0a5b2430fe93cd672370e024
+ languageName: node
+ linkType: hard
+
+"uint8arrays@npm:^3.0.0, uint8arrays@npm:^3.1.0":
+ version: 3.1.1
+ resolution: "uint8arrays@npm:3.1.1"
+ dependencies:
+ multiformats: "npm:^9.4.2"
+ checksum: 10c0/9946668e04f29b46bbb73cca3d190f63a2fbfe5452f8e6551ef4257d9d597b72da48fa895c15ef2ef772808a5335b3305f69da5f13a09f8c2924896b409565ff
+ languageName: node
+ linkType: hard
+
+"unbox-primitive@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "unbox-primitive@npm:1.0.2"
+ dependencies:
+ call-bind: "npm:^1.0.2"
+ has-bigints: "npm:^1.0.2"
+ has-symbols: "npm:^1.0.3"
+ which-boxed-primitive: "npm:^1.0.2"
+ checksum: 10c0/81ca2e81134167cc8f75fa79fbcc8a94379d6c61de67090986a2273850989dd3bae8440c163121b77434b68263e34787a675cbdcb34bb2f764c6b9c843a11b66
+ languageName: node
+ linkType: hard
+
+"uncrypto@npm:^0.1.3":
+ version: 0.1.3
+ resolution: "uncrypto@npm:0.1.3"
+ checksum: 10c0/74a29afefd76d5b77bedc983559ceb33f5bbc8dada84ff33755d1e3355da55a4e03a10e7ce717918c436b4dfafde1782e799ebaf2aadd775612b49f7b5b2998e
+ languageName: node
+ linkType: hard
+
+"undici-types@npm:~5.26.4":
+ version: 5.26.5
+ resolution: "undici-types@npm:5.26.5"
+ checksum: 10c0/bb673d7876c2d411b6eb6c560e0c571eef4a01c1c19925175d16e3a30c4c428181fb8d7ae802a261f283e4166a0ac435e2f505743aa9e45d893f9a3df017b501
+ languageName: node
+ linkType: hard
+
+"undici-types@npm:~6.11.1":
+ version: 6.11.1
+ resolution: "undici-types@npm:6.11.1"
+ checksum: 10c0/d8f5739a8e6c779d72336c82deb49c56d5ac9f9f6e0eb2e8dd4d3f6929ae9db7cde370d2e46516fe6cad04ea53e790c5e16c4c75eed7cd0f9bd31b0763bb2fa3
+ languageName: node
+ linkType: hard
+
+"unenv@npm:^1.9.0":
+ version: 1.9.0
+ resolution: "unenv@npm:1.9.0"
+ dependencies:
+ consola: "npm:^3.2.3"
+ defu: "npm:^6.1.3"
+ mime: "npm:^3.0.0"
+ node-fetch-native: "npm:^1.6.1"
+ pathe: "npm:^1.1.1"
+ checksum: 10c0/d00012badc83731c07f08d5129c702c49c0212375eb3732b27aae89ace3c67162dbaea4496965676f18fc06b0ec445d91385e283f5fd3e4540dda8b0b5424f81
+ languageName: node
+ linkType: hard
+
+"unfetch@npm:^4.2.0":
+ version: 4.2.0
+ resolution: "unfetch@npm:4.2.0"
+ checksum: 10c0/a5c0a896a6f09f278b868075aea65652ad185db30e827cb7df45826fe5ab850124bf9c44c4dafca4bf0c55a0844b17031e8243467fcc38dd7a7d435007151f1b
+ languageName: node
+ linkType: hard
+
+"unified@npm:^11.0.0":
+ version: 11.0.4
+ resolution: "unified@npm:11.0.4"
+ dependencies:
+ "@types/unist": "npm:^3.0.0"
+ bail: "npm:^2.0.0"
+ devlop: "npm:^1.0.0"
+ extend: "npm:^3.0.0"
+ is-plain-obj: "npm:^4.0.0"
+ trough: "npm:^2.0.0"
+ vfile: "npm:^6.0.0"
+ checksum: 10c0/b550cdc994d54c84e2e098eb02cfa53535cbc140c148aa3296f235cb43082b499d239110f342fa65eb37ad919472a93cc62f062a83541485a69498084cc87ba1
+ languageName: node
+ linkType: hard
+
+"unique-filename@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "unique-filename@npm:3.0.0"
+ dependencies:
+ unique-slug: "npm:^4.0.0"
+ checksum: 10c0/6363e40b2fa758eb5ec5e21b3c7fb83e5da8dcfbd866cc0c199d5534c42f03b9ea9ab069769cc388e1d7ab93b4eeef28ef506ab5f18d910ef29617715101884f
+ languageName: node
+ linkType: hard
+
+"unique-slug@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "unique-slug@npm:4.0.0"
+ dependencies:
+ imurmurhash: "npm:^0.1.4"
+ checksum: 10c0/cb811d9d54eb5821b81b18205750be84cb015c20a4a44280794e915f5a0a70223ce39066781a354e872df3572e8155c228f43ff0cce94c7cbf4da2cc7cbdd635
+ languageName: node
+ linkType: hard
+
+"unist-util-is@npm:^6.0.0":
+ version: 6.0.0
+ resolution: "unist-util-is@npm:6.0.0"
+ dependencies:
+ "@types/unist": "npm:^3.0.0"
+ checksum: 10c0/9419352181eaa1da35eca9490634a6df70d2217815bb5938a04af3a662c12c5607a2f1014197ec9c426fbef18834f6371bfdb6f033040fa8aa3e965300d70e7e
+ languageName: node
+ linkType: hard
+
+"unist-util-position@npm:^5.0.0":
+ version: 5.0.0
+ resolution: "unist-util-position@npm:5.0.0"
+ dependencies:
+ "@types/unist": "npm:^3.0.0"
+ checksum: 10c0/dde3b31e314c98f12b4dc6402f9722b2bf35e96a4f2d463233dd90d7cde2d4928074a7a11eff0a5eb1f4e200f27fc1557e0a64a7e8e4da6558542f251b1b7400
+ languageName: node
+ linkType: hard
+
+"unist-util-remove-position@npm:^5.0.0":
+ version: 5.0.0
+ resolution: "unist-util-remove-position@npm:5.0.0"
+ dependencies:
+ "@types/unist": "npm:^3.0.0"
+ unist-util-visit: "npm:^5.0.0"
+ checksum: 10c0/e8c76da4399446b3da2d1c84a97c607b37d03d1d92561e14838cbe4fdcb485bfc06c06cfadbb808ccb72105a80643976d0660d1fe222ca372203075be9d71105
+ languageName: node
+ linkType: hard
+
+"unist-util-stringify-position@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "unist-util-stringify-position@npm:4.0.0"
+ dependencies:
+ "@types/unist": "npm:^3.0.0"
+ checksum: 10c0/dfe1dbe79ba31f589108cb35e523f14029b6675d741a79dea7e5f3d098785045d556d5650ec6a8338af11e9e78d2a30df12b1ee86529cded1098da3f17ee999e
+ languageName: node
+ linkType: hard
+
+"unist-util-visit-parents@npm:^6.0.0":
+ version: 6.0.1
+ resolution: "unist-util-visit-parents@npm:6.0.1"
+ dependencies:
+ "@types/unist": "npm:^3.0.0"
+ unist-util-is: "npm:^6.0.0"
+ checksum: 10c0/51b1a5b0aa23c97d3e03e7288f0cdf136974df2217d0999d3de573c05001ef04cccd246f51d2ebdfb9e8b0ed2704451ad90ba85ae3f3177cf9772cef67f56206
+ languageName: node
+ linkType: hard
+
+"unist-util-visit@npm:^5.0.0":
+ version: 5.0.0
+ resolution: "unist-util-visit@npm:5.0.0"
+ dependencies:
+ "@types/unist": "npm:^3.0.0"
+ unist-util-is: "npm:^6.0.0"
+ unist-util-visit-parents: "npm:^6.0.0"
+ checksum: 10c0/51434a1d80252c1540cce6271a90fd1a106dbe624997c09ed8879279667fb0b2d3a685e02e92bf66598dcbe6cdffa7a5f5fb363af8fdf90dda6c855449ae39a5
+ languageName: node
+ linkType: hard
+
+"unstorage@npm:^1.9.0":
+ version: 1.10.2
+ resolution: "unstorage@npm:1.10.2"
+ dependencies:
+ anymatch: "npm:^3.1.3"
+ chokidar: "npm:^3.6.0"
+ destr: "npm:^2.0.3"
+ h3: "npm:^1.11.1"
+ listhen: "npm:^1.7.2"
+ lru-cache: "npm:^10.2.0"
+ mri: "npm:^1.2.0"
+ node-fetch-native: "npm:^1.6.2"
+ ofetch: "npm:^1.3.3"
+ ufo: "npm:^1.4.0"
+ peerDependencies:
+ "@azure/app-configuration": ^1.5.0
+ "@azure/cosmos": ^4.0.0
+ "@azure/data-tables": ^13.2.2
+ "@azure/identity": ^4.0.1
+ "@azure/keyvault-secrets": ^4.8.0
+ "@azure/storage-blob": ^12.17.0
+ "@capacitor/preferences": ^5.0.7
+ "@netlify/blobs": ^6.5.0 || ^7.0.0
+ "@planetscale/database": ^1.16.0
+ "@upstash/redis": ^1.28.4
+ "@vercel/kv": ^1.0.1
+ idb-keyval: ^6.2.1
+ ioredis: ^5.3.2
+ peerDependenciesMeta:
+ "@azure/app-configuration":
+ optional: true
+ "@azure/cosmos":
+ optional: true
+ "@azure/data-tables":
+ optional: true
+ "@azure/identity":
+ optional: true
+ "@azure/keyvault-secrets":
+ optional: true
+ "@azure/storage-blob":
+ optional: true
+ "@capacitor/preferences":
+ optional: true
+ "@netlify/blobs":
+ optional: true
+ "@planetscale/database":
+ optional: true
+ "@upstash/redis":
+ optional: true
+ "@vercel/kv":
+ optional: true
+ idb-keyval:
+ optional: true
+ ioredis:
+ optional: true
+ checksum: 10c0/89d61e6b2165ddc78005b8a4a340576877b56b70ec0b318f7cf2e74ee7ab19006036267ba28587100fa7256c573db3bd720700daf6586bbdcad4ed60b64c4284
+ languageName: node
+ linkType: hard
+
+"untun@npm:^0.1.3":
+ version: 0.1.3
+ resolution: "untun@npm:0.1.3"
+ dependencies:
+ citty: "npm:^0.1.5"
+ consola: "npm:^3.2.3"
+ pathe: "npm:^1.1.1"
+ bin:
+ untun: bin/untun.mjs
+ checksum: 10c0/2b44a4cc84a5c21994f43b9f55348e5a8d9dd5fd0ad8fb5cd091b6f6b53d506b1cdb90e89cc238d61b46d488f7a89ab0d1a5c735bfc835581c7b22a236381295
+ languageName: node
+ linkType: hard
+
+"uqr@npm:^0.1.2":
+ version: 0.1.2
+ resolution: "uqr@npm:0.1.2"
+ checksum: 10c0/40cd81b4c13f1764d52ec28da2d58e60816e6fae54d4eb75b32fbf3137937f438eff16c766139fb0faec5d248a5314591f5a0dbd694e569d419eed6f3bd80242
+ languageName: node
+ linkType: hard
+
+"uri-js@npm:^4.2.2":
+ version: 4.4.1
+ resolution: "uri-js@npm:4.4.1"
+ dependencies:
+ punycode: "npm:^2.1.0"
+ checksum: 10c0/4ef57b45aa820d7ac6496e9208559986c665e49447cb072744c13b66925a362d96dd5a46c4530a6b8e203e5db5fe849369444440cb22ecfc26c679359e5dfa3c
+ languageName: node
+ linkType: hard
+
+"use-sync-external-store@npm:1.2.0":
+ version: 1.2.0
+ resolution: "use-sync-external-store@npm:1.2.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
+ checksum: 10c0/ac4814e5592524f242921157e791b022efe36e451fe0d4fd4d204322d5433a4fc300d63b0ade5185f8e0735ded044c70bcf6d2352db0f74d097a238cebd2da02
+ languageName: node
+ linkType: hard
+
+"use-sync-external-store@npm:1.2.2, use-sync-external-store@npm:^1.2.0":
+ version: 1.2.2
+ resolution: "use-sync-external-store@npm:1.2.2"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
+ checksum: 10c0/23b1597c10adf15b26ade9e8c318d8cc0abc9ec0ab5fc7ca7338da92e89c2536abd150a5891bf076836c352fdfa104fc7231fb48f806fd9960e0cbe03601abaf
+ languageName: node
+ linkType: hard
+
+"utf-8-validate@npm:^5.0.5":
+ version: 5.0.10
+ resolution: "utf-8-validate@npm:5.0.10"
+ dependencies:
+ node-gyp: "npm:latest"
+ node-gyp-build: "npm:^4.3.0"
+ checksum: 10c0/23cd6adc29e6901aa37ff97ce4b81be9238d0023c5e217515b34792f3c3edb01470c3bd6b264096dd73d0b01a1690b57468de3a24167dd83004ff71c51cc025f
+ languageName: node
+ linkType: hard
+
+"util-deprecate@npm:^1.0.1, util-deprecate@npm:~1.0.1":
+ version: 1.0.2
+ resolution: "util-deprecate@npm:1.0.2"
+ checksum: 10c0/41a5bdd214df2f6c3ecf8622745e4a366c4adced864bc3c833739791aeeeb1838119af7daed4ba36428114b5c67dcda034a79c882e97e43c03e66a4dd7389942
+ languageName: node
+ linkType: hard
+
+"util@npm:^0.12.5":
+ version: 0.12.5
+ resolution: "util@npm:0.12.5"
+ dependencies:
+ inherits: "npm:^2.0.3"
+ is-arguments: "npm:^1.0.4"
+ is-generator-function: "npm:^1.0.7"
+ is-typed-array: "npm:^1.1.3"
+ which-typed-array: "npm:^1.1.2"
+ checksum: 10c0/c27054de2cea2229a66c09522d0fa1415fb12d861d08523a8846bf2e4cbf0079d4c3f725f09dcb87493549bcbf05f5798dce1688b53c6c17201a45759e7253f3
+ languageName: node
+ linkType: hard
+
+"utility-types@npm:^3.10.0":
+ version: 3.11.0
+ resolution: "utility-types@npm:3.11.0"
+ checksum: 10c0/2f1580137b0c3e6cf5405f37aaa8f5249961a76d26f1ca8efc0ff49a2fc0e0b2db56de8e521a174d075758e0c7eb3e590edec0832eb44478b958f09914920f19
+ languageName: node
+ linkType: hard
+
+"uuid@npm:^9.0.1":
+ version: 9.0.1
+ resolution: "uuid@npm:9.0.1"
+ bin:
+ uuid: dist/bin/uuid
+ checksum: 10c0/1607dd32ac7fc22f2d8f77051e6a64845c9bce5cd3dd8aa0070c074ec73e666a1f63c7b4e0f4bf2bc8b9d59dc85a15e17807446d9d2b17c8485fbc2147b27f9b
+ languageName: node
+ linkType: hard
+
+"vfile-message@npm:^4.0.0":
+ version: 4.0.2
+ resolution: "vfile-message@npm:4.0.2"
+ dependencies:
+ "@types/unist": "npm:^3.0.0"
+ unist-util-stringify-position: "npm:^4.0.0"
+ checksum: 10c0/07671d239a075f888b78f318bc1d54de02799db4e9dce322474e67c35d75ac4a5ac0aaf37b18801d91c9f8152974ea39678aa72d7198758b07f3ba04fb7d7514
+ languageName: node
+ linkType: hard
+
+"vfile@npm:^6.0.0":
+ version: 6.0.1
+ resolution: "vfile@npm:6.0.1"
+ dependencies:
+ "@types/unist": "npm:^3.0.0"
+ unist-util-stringify-position: "npm:^4.0.0"
+ vfile-message: "npm:^4.0.0"
+ checksum: 10c0/443bda43e5ad3b73c5976e987dba2b2d761439867ba7d5d7c5f4b01d3c1cb1b976f5f0e6b2399a00dc9b4eaec611bd9984ce9ce8a75a72e60aed518b10a902d2
+ languageName: node
+ linkType: hard
+
+"watchpack@npm:2.4.0":
+ version: 2.4.0
+ resolution: "watchpack@npm:2.4.0"
+ dependencies:
+ glob-to-regexp: "npm:^0.4.1"
+ graceful-fs: "npm:^4.1.2"
+ checksum: 10c0/c5e35f9fb9338d31d2141d9835643c0f49b5f9c521440bb648181059e5940d93dd8ed856aa8a33fbcdd4e121dad63c7e8c15c063cf485429cd9d427be197fe62
+ languageName: node
+ linkType: hard
+
+"webextension-polyfill@npm:>=0.10.0 <1.0, webextension-polyfill@npm:^0.10.0":
+ version: 0.10.0
+ resolution: "webextension-polyfill@npm:0.10.0"
+ checksum: 10c0/6a45278f1fed8fbd5355f9b19a7b0b3fadc91fa3a6eef69125a1706bb3efa2181235eefbfb3f538443bb396cfcb97512361551888ce8465c08914431cb2d5b6d
+ languageName: node
+ linkType: hard
+
+"webidl-conversions@npm:^3.0.0":
+ version: 3.0.1
+ resolution: "webidl-conversions@npm:3.0.1"
+ checksum: 10c0/5612d5f3e54760a797052eb4927f0ddc01383550f542ccd33d5238cfd65aeed392a45ad38364970d0a0f4fea32e1f4d231b3d8dac4a3bdd385e5cf802ae097db
+ languageName: node
+ linkType: hard
+
+"whatwg-url@npm:^5.0.0":
+ version: 5.0.0
+ resolution: "whatwg-url@npm:5.0.0"
+ dependencies:
+ tr46: "npm:~0.0.3"
+ webidl-conversions: "npm:^3.0.0"
+ checksum: 10c0/1588bed84d10b72d5eec1d0faa0722ba1962f1821e7539c535558fb5398d223b0c50d8acab950b8c488b4ba69043fd833cc2697056b167d8ad46fac3995a55d5
+ languageName: node
+ linkType: hard
+
+"which-boxed-primitive@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "which-boxed-primitive@npm:1.0.2"
+ dependencies:
+ is-bigint: "npm:^1.0.1"
+ is-boolean-object: "npm:^1.1.0"
+ is-number-object: "npm:^1.0.4"
+ is-string: "npm:^1.0.5"
+ is-symbol: "npm:^1.0.3"
+ checksum: 10c0/0a62a03c00c91dd4fb1035b2f0733c341d805753b027eebd3a304b9cb70e8ce33e25317add2fe9b5fea6f53a175c0633ae701ff812e604410ddd049777cd435e
+ languageName: node
+ linkType: hard
+
+"which-builtin-type@npm:^1.1.3":
+ version: 1.1.3
+ resolution: "which-builtin-type@npm:1.1.3"
+ dependencies:
+ function.prototype.name: "npm:^1.1.5"
+ has-tostringtag: "npm:^1.0.0"
+ is-async-function: "npm:^2.0.0"
+ is-date-object: "npm:^1.0.5"
+ is-finalizationregistry: "npm:^1.0.2"
+ is-generator-function: "npm:^1.0.10"
+ is-regex: "npm:^1.1.4"
+ is-weakref: "npm:^1.0.2"
+ isarray: "npm:^2.0.5"
+ which-boxed-primitive: "npm:^1.0.2"
+ which-collection: "npm:^1.0.1"
+ which-typed-array: "npm:^1.1.9"
+ checksum: 10c0/2b7b234df3443b52f4fbd2b65b731804de8d30bcc4210ec84107ef377a81923cea7f2763b7fb78b394175cea59118bf3c41b9ffd2d643cb1d748ef93b33b6bd4
+ languageName: node
+ linkType: hard
+
+"which-collection@npm:^1.0.1":
+ version: 1.0.2
+ resolution: "which-collection@npm:1.0.2"
+ dependencies:
+ is-map: "npm:^2.0.3"
+ is-set: "npm:^2.0.3"
+ is-weakmap: "npm:^2.0.2"
+ is-weakset: "npm:^2.0.3"
+ checksum: 10c0/3345fde20964525a04cdf7c4a96821f85f0cc198f1b2ecb4576e08096746d129eb133571998fe121c77782ac8f21cbd67745a3d35ce100d26d4e684c142ea1f2
+ languageName: node
+ linkType: hard
+
+"which-typed-array@npm:^1.1.14, which-typed-array@npm:^1.1.15, which-typed-array@npm:^1.1.2, which-typed-array@npm:^1.1.9":
+ version: 1.1.15
+ resolution: "which-typed-array@npm:1.1.15"
+ dependencies:
+ available-typed-arrays: "npm:^1.0.7"
+ call-bind: "npm:^1.0.7"
+ for-each: "npm:^0.3.3"
+ gopd: "npm:^1.0.1"
+ has-tostringtag: "npm:^1.0.2"
+ checksum: 10c0/4465d5348c044032032251be54d8988270e69c6b7154f8fcb2a47ff706fe36f7624b3a24246b8d9089435a8f4ec48c1c1025c5d6b499456b9e5eff4f48212983
+ languageName: node
+ linkType: hard
+
+"which@npm:^2.0.1":
+ version: 2.0.2
+ resolution: "which@npm:2.0.2"
+ dependencies:
+ isexe: "npm:^2.0.0"
+ bin:
+ node-which: ./bin/node-which
+ checksum: 10c0/66522872a768b60c2a65a57e8ad184e5372f5b6a9ca6d5f033d4b0dc98aff63995655a7503b9c0a2598936f532120e81dd8cc155e2e92ed662a2b9377cc4374f
+ languageName: node
+ linkType: hard
+
+"which@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "which@npm:4.0.0"
+ dependencies:
+ isexe: "npm:^3.1.1"
+ bin:
+ node-which: bin/which.js
+ checksum: 10c0/449fa5c44ed120ccecfe18c433296a4978a7583bf2391c50abce13f76878d2476defde04d0f79db8165bdf432853c1f8389d0485ca6e8ebce3bbcded513d5e6a
+ languageName: node
+ linkType: hard
+
+"wif@npm:^2.0.6":
+ version: 2.0.6
+ resolution: "wif@npm:2.0.6"
+ dependencies:
+ bs58check: "npm:<3.0.0"
+ checksum: 10c0/9ff55fdde73226bbae6a08b68298b6d14bbc22fa4cefac11edaacb2317c217700f715b95dc4432917f73511ec983f1bc032d22c467703b136f4e6ca7dfa9f10b
+ languageName: node
+ linkType: hard
+
+"word-wrap@npm:^1.2.5":
+ version: 1.2.5
+ resolution: "word-wrap@npm:1.2.5"
+ checksum: 10c0/e0e4a1ca27599c92a6ca4c32260e8a92e8a44f4ef6ef93f803f8ed823f486e0889fc0b93be4db59c8d51b3064951d25e43d434e95dc8c960cc3a63d65d00ba20
+ languageName: node
+ linkType: hard
+
+"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0":
+ version: 7.0.0
+ resolution: "wrap-ansi@npm:7.0.0"
+ dependencies:
+ ansi-styles: "npm:^4.0.0"
+ string-width: "npm:^4.1.0"
+ strip-ansi: "npm:^6.0.0"
+ checksum: 10c0/d15fc12c11e4cbc4044a552129ebc75ee3f57aa9c1958373a4db0292d72282f54373b536103987a4a7594db1ef6a4f10acf92978f79b98c49306a4b58c77d4da
+ languageName: node
+ linkType: hard
+
+"wrap-ansi@npm:^8.1.0":
+ version: 8.1.0
+ resolution: "wrap-ansi@npm:8.1.0"
+ dependencies:
+ ansi-styles: "npm:^6.1.0"
+ string-width: "npm:^5.0.1"
+ strip-ansi: "npm:^7.0.1"
+ checksum: 10c0/138ff58a41d2f877eae87e3282c0630fc2789012fc1af4d6bd626eeb9a2f9a65ca92005e6e69a75c7b85a68479fe7443c7dbe1eb8fbaa681a4491364b7c55c60
+ languageName: node
+ linkType: hard
+
+"wrappy@npm:1":
+ version: 1.0.2
+ resolution: "wrappy@npm:1.0.2"
+ checksum: 10c0/56fece1a4018c6a6c8e28fbc88c87e0fbf4ea8fd64fc6c63b18f4acc4bd13e0ad2515189786dd2c30d3eec9663d70f4ecf699330002f8ccb547e4a18231fc9f0
+ languageName: node
+ linkType: hard
+
+"ws@npm:7.4.6":
+ version: 7.4.6
+ resolution: "ws@npm:7.4.6"
+ peerDependencies:
+ bufferutil: ^4.0.1
+ utf-8-validate: ^5.0.2
+ peerDependenciesMeta:
+ bufferutil:
+ optional: true
+ utf-8-validate:
+ optional: true
+ checksum: 10c0/4b44b59bbc0549c852fb2f0cdb48e40e122a1b6078aeed3d65557cbeb7d37dda7a4f0027afba2e6a7a695de17701226d02b23bd15c97b0837808c16345c62f8e
+ languageName: node
+ linkType: hard
+
+"ws@npm:^7, ws@npm:^7.5.1, ws@npm:^7.5.9":
+ version: 7.5.9
+ resolution: "ws@npm:7.5.9"
+ peerDependencies:
+ bufferutil: ^4.0.1
+ utf-8-validate: ^5.0.2
+ peerDependenciesMeta:
+ bufferutil:
+ optional: true
+ utf-8-validate:
+ optional: true
+ checksum: 10c0/aec4ef4eb65821a7dde7b44790f8699cfafb7978c9b080f6d7a98a7f8fc0ce674c027073a78574c94786ba7112cc90fa2cc94fc224ceba4d4b1030cff9662494
+ languageName: node
+ linkType: hard
+
+"xstream@npm:^11.14.0":
+ version: 11.14.0
+ resolution: "xstream@npm:11.14.0"
+ dependencies:
+ globalthis: "npm:^1.0.1"
+ symbol-observable: "npm:^2.0.3"
+ checksum: 10c0/7a28baedc64385dc17597d04c7130ec3135db298e66d6dcf33821eb1953d5ad1b83c5fa08f1ce4d36e75fd219f2e9ef81ee0721aa8d4ccf619acc1760ba37f71
+ languageName: node
+ linkType: hard
+
+"yallist@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "yallist@npm:4.0.0"
+ checksum: 10c0/2286b5e8dbfe22204ab66e2ef5cc9bbb1e55dfc873bbe0d568aa943eb255d131890dfd5bf243637273d31119b870f49c18fcde2c6ffbb7a7a092b870dc90625a
+ languageName: node
+ linkType: hard
+
+"yocto-queue@npm:^0.1.0":
+ version: 0.1.0
+ resolution: "yocto-queue@npm:0.1.0"
+ checksum: 10c0/dceb44c28578b31641e13695d200d34ec4ab3966a5729814d5445b194933c096b7ced71494ce53a0e8820685d1d010df8b2422e5bf2cdea7e469d97ffbea306f
+ languageName: node
+ linkType: hard
+
+"zustand@npm:4.5.2":
+ version: 4.5.2
+ resolution: "zustand@npm:4.5.2"
+ dependencies:
+ use-sync-external-store: "npm:1.2.0"
+ peerDependencies:
+ "@types/react": ">=16.8"
+ immer: ">=9.0.6"
+ react: ">=16.8"
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ immer:
+ optional: true
+ react:
+ optional: true
+ checksum: 10c0/aee26f11facebb39b016e89539f72a72c2c00151208907fc909c3cedd455728240e09e01d98ebd3b63a2a3518a5917eac5de6c853743ca55a1655296d750bb48
+ languageName: node
+ linkType: hard
+
+"zustand@npm:^4.5.4":
+ version: 4.5.5
+ resolution: "zustand@npm:4.5.5"
+ dependencies:
+ use-sync-external-store: "npm:1.2.2"
+ peerDependencies:
+ "@types/react": ">=16.8"
+ immer: ">=9.0.6"
+ react: ">=16.8"
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ immer:
+ optional: true
+ react:
+ optional: true
+ checksum: 10c0/d04469d76b29c7e4070da269886de4efdadedd3d3824dc2a06ac4ff62e3b5877f925e927afe7382de651829872b99adec48082f1bd69fe486149be666345e626
+ languageName: node
+ linkType: hard
+
+"zwitch@npm:^2.0.0":
+ version: 2.0.4
+ resolution: "zwitch@npm:2.0.4"
+ checksum: 10c0/3c7830cdd3378667e058ffdb4cf2bb78ac5711214e2725900873accb23f3dfe5f9e7e5a06dcdc5f29605da976fc45c26d9a13ca334d6eea2245a15e77b8fc06e
+ languageName: node
+ linkType: hard
diff --git a/examples/chain-template/.eslintrc.json b/examples/chain-template/.eslintrc.json
new file mode 100644
index 000000000..09937b6bc
--- /dev/null
+++ b/examples/chain-template/.eslintrc.json
@@ -0,0 +1,6 @@
+{
+ "extends": "next/core-web-vitals",
+ "rules": {
+ "react-hooks/exhaustive-deps": "off"
+ }
+}
diff --git a/examples/chain-template/.gitignore b/examples/chain-template/.gitignore
new file mode 100644
index 000000000..c87c9b392
--- /dev/null
+++ b/examples/chain-template/.gitignore
@@ -0,0 +1,36 @@
+# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
+
+# dependencies
+/node_modules
+/.pnp
+.pnp.js
+
+# testing
+/coverage
+
+# next.js
+/.next/
+/out/
+
+# production
+/build
+
+# misc
+.DS_Store
+*.pem
+
+# debug
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+.pnpm-debug.log*
+
+# local env files
+.env*.local
+
+# vercel
+.vercel
+
+# typescript
+*.tsbuildinfo
+next-env.d.ts
diff --git a/examples/chain-template/CHANGELOG.md b/examples/chain-template/CHANGELOG.md
new file mode 100644
index 000000000..3ee87f067
--- /dev/null
+++ b/examples/chain-template/CHANGELOG.md
@@ -0,0 +1,406 @@
+# Change Log
+
+All notable changes to this project will be documented in this file.
+See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+
+# [1.0.0](https://github.com/cosmology-tech/create-cosmos-app/compare/@cosmology/connect-multi-chain@0.16.2...@cosmology/connect-multi-chain@1.0.0) (2024-04-06)
+
+
+### Bug Fixes
+
+* custom filtering connect-multi-chain ([0c345ce](https://github.com/cosmology-tech/create-cosmos-app/commit/0c345ceef886ebcd28574244aee3fef8f3d9ebb7))
+* custom filtering stake-tokens ([9cc3d24](https://github.com/cosmology-tech/create-cosmos-app/commit/9cc3d24055cc54358af9dc7d8a56856bd2ef0787))
+* use new combobox in asset-list ([68449d3](https://github.com/cosmology-tech/create-cosmos-app/commit/68449d39411c259f85eec07b7ae42f1a712c21a9))
+* use new dropdown for connect-multi-chain and vote-proposal ([68dd4c3](https://github.com/cosmology-tech/create-cosmos-app/commit/68dd4c3b03939b14ff46c622e6267b41ac7ddf18))
+
+
+
+
+
+## [0.16.2](https://github.com/cosmology-tech/create-cosmos-app/compare/@cosmology/connect-multi-chain@0.16.1...@cosmology/connect-multi-chain@0.16.2) (2024-01-20)
+
+**Note:** Version bump only for package @cosmology/connect-multi-chain
+
+
+
+
+
+## [0.16.1](https://github.com/cosmology-tech/create-cosmos-app/compare/@cosmology/connect-multi-chain@0.16.0...@cosmology/connect-multi-chain@0.16.1) (2024-01-19)
+
+**Note:** Version bump only for package @cosmology/connect-multi-chain
+
+
+
+
+
+# [0.16.0](https://github.com/cosmology-tech/create-cosmos-app/compare/@cosmology/connect-multi-chain@0.15.7...@cosmology/connect-multi-chain@0.16.0) (2024-01-19)
+
+**Note:** Version bump only for package @cosmology/connect-multi-chain
+
+
+
+
+
+## [0.15.7](https://github.com/cosmology-tech/create-cosmos-app/compare/@cosmology/connect-multi-chain@0.15.6...@cosmology/connect-multi-chain@0.15.7) (2024-01-19)
+
+**Note:** Version bump only for package @cosmology/connect-multi-chain
+
+
+
+
+
+## [0.15.6](https://github.com/cosmology-tech/create-cosmos-app/compare/@cosmology/connect-multi-chain@0.15.5...@cosmology/connect-multi-chain@0.15.6) (2024-01-19)
+
+**Note:** Version bump only for package @cosmology/connect-multi-chain
+
+
+
+
+
+## [0.15.5](https://github.com/cosmology-tech/create-cosmos-app/compare/@cosmology/connect-multi-chain@0.15.4...@cosmology/connect-multi-chain@0.15.5) (2023-09-27)
+
+**Note:** Version bump only for package @cosmology/connect-multi-chain
+
+
+
+
+
+## [0.15.4](https://github.com/cosmology-tech/create-cosmos-app/compare/@cosmology/connect-multi-chain@0.15.3...@cosmology/connect-multi-chain@0.15.4) (2023-09-27)
+
+**Note:** Version bump only for package @cosmology/connect-multi-chain
+
+
+
+
+
+## [0.15.3](https://github.com/cosmology-tech/create-cosmos-app/compare/@cosmology/connect-multi-chain@0.15.2...@cosmology/connect-multi-chain@0.15.3) (2023-07-30)
+
+**Note:** Version bump only for package @cosmology/connect-multi-chain
+
+
+
+
+
+## [0.15.2](https://github.com/cosmology-tech/create-cosmos-app/compare/@cosmology/connect-multi-chain@0.15.1...@cosmology/connect-multi-chain@0.15.2) (2023-07-14)
+
+**Note:** Version bump only for package @cosmology/connect-multi-chain
+
+
+
+
+
+## [0.15.1](https://github.com/cosmology-tech/create-cosmos-app/compare/@cosmology/connect-multi-chain@0.15.0...@cosmology/connect-multi-chain@0.15.1) (2023-06-28)
+
+**Note:** Version bump only for package @cosmology/connect-multi-chain
+
+
+
+
+
+# [0.15.0](https://github.com/cosmology-tech/create-cosmos-app/compare/@cosmology/connect-multi-chain@0.14.3...@cosmology/connect-multi-chain@0.15.0) (2023-04-12)
+
+**Note:** Version bump only for package @cosmology/connect-multi-chain
+
+
+
+
+
+## [0.14.3](https://github.com/cosmology-tech/create-cosmos-app/compare/@cosmology/connect-multi-chain@0.14.2...@cosmology/connect-multi-chain@0.14.3) (2023-03-28)
+
+**Note:** Version bump only for package @cosmology/connect-multi-chain
+
+
+
+
+
+## [0.14.2](https://github.com/cosmology-tech/create-cosmos-app/compare/@cosmology/connect-multi-chain@0.14.1...@cosmology/connect-multi-chain@0.14.2) (2023-02-15)
+
+**Note:** Version bump only for package @cosmology/connect-multi-chain
+
+
+
+
+
+## [0.14.1](https://github.com/cosmology-tech/create-cosmos-app/compare/@cosmology/connect-multi-chain@0.14.0...@cosmology/connect-multi-chain@0.14.1) (2023-01-11)
+
+**Note:** Version bump only for package @cosmology/connect-multi-chain
+
+
+
+
+
+# [0.14.0](https://github.com/cosmology-tech/create-cosmos-app/compare/@cosmology/connect-multi-chain@0.13.3...@cosmology/connect-multi-chain@0.14.0) (2022-12-17)
+
+**Note:** Version bump only for package @cosmology/connect-multi-chain
+
+
+
+
+
+## [0.13.3](https://github.com/cosmology-tech/create-cosmos-app/compare/@cosmology/connect-multi-chain@0.13.2...@cosmology/connect-multi-chain@0.13.3) (2022-11-25)
+
+**Note:** Version bump only for package @cosmology/connect-multi-chain
+
+
+
+
+
+## [0.13.2](https://github.com/cosmology-tech/create-cosmos-app/compare/@cosmology/connect-multi-chain@0.13.1...@cosmology/connect-multi-chain@0.13.2) (2022-11-21)
+
+**Note:** Version bump only for package @cosmology/connect-multi-chain
+
+
+
+
+
+## [0.13.1](https://github.com/cosmology-tech/create-cosmos-app/compare/@cosmology/connect-multi-chain@0.13.0...@cosmology/connect-multi-chain@0.13.1) (2022-11-17)
+
+**Note:** Version bump only for package @cosmology/connect-multi-chain
+
+
+
+
+
+# [0.13.0](https://github.com/cosmology-tech/create-cosmos-app/compare/@cosmology/connect-multi-chain@0.12.0...@cosmology/connect-multi-chain@0.13.0) (2022-11-15)
+
+**Note:** Version bump only for package @cosmology/connect-multi-chain
+
+
+
+
+
+# [0.12.0](https://github.com/cosmology-tech/create-cosmos-app/compare/@cosmology/connect-multi-chain@0.11.0...@cosmology/connect-multi-chain@0.12.0) (2022-11-14)
+
+**Note:** Version bump only for package @cosmology/connect-multi-chain
+
+
+
+
+
+# [0.11.0](https://github.com/cosmology-tech/create-cosmos-app/compare/@cosmology/connect-multi-chain@0.10.0...@cosmology/connect-multi-chain@0.11.0) (2022-11-10)
+
+**Note:** Version bump only for package @cosmology/connect-multi-chain
+
+
+
+
+
+# [0.10.0](https://github.com/cosmology-tech/create-cosmos-app/compare/@cosmology/connect-multi-chain@0.9.0...@cosmology/connect-multi-chain@0.10.0) (2022-11-09)
+
+**Note:** Version bump only for package @cosmology/connect-multi-chain
+
+
+
+
+
+# [0.9.0](https://github.com/cosmology-tech/create-cosmos-app/compare/@cosmology/connect-multi-chain@0.8.5...@cosmology/connect-multi-chain@0.9.0) (2022-11-08)
+
+**Note:** Version bump only for package @cosmology/connect-multi-chain
+
+
+
+
+
+## [0.8.5](https://github.com/cosmology-tech/create-cosmos-app/compare/@cosmology/connect-multi-chain@0.8.4...@cosmology/connect-multi-chain@0.8.5) (2022-11-05)
+
+**Note:** Version bump only for package @cosmology/connect-multi-chain
+
+
+
+
+
+## [0.8.4](https://github.com/cosmology-tech/create-cosmos-app/compare/@cosmology/connect-multi-chain@0.8.3...@cosmology/connect-multi-chain@0.8.4) (2022-11-05)
+
+**Note:** Version bump only for package @cosmology/connect-multi-chain
+
+
+
+
+
+## [0.8.3](https://github.com/cosmology-tech/create-cosmos-app/compare/@cosmology/connect-multi-chain@0.8.2...@cosmology/connect-multi-chain@0.8.3) (2022-11-05)
+
+**Note:** Version bump only for package @cosmology/connect-multi-chain
+
+
+
+
+
+## 0.8.2 (2022-11-01)
+
+**Note:** Version bump only for package @cosmology/connect-multi-chain
+
+
+
+
+
+## [0.8.1](https://github.com/cosmology-tech/create-cosmos-app/compare/@cosmonauts/connect-multi-chain@0.8.0...@cosmonauts/connect-multi-chain@0.8.1) (2022-10-27)
+
+**Note:** Version bump only for package @cosmonauts/connect-multi-chain
+
+
+
+
+
+# [0.8.0](https://github.com/cosmology-tech/create-cosmos-app/compare/@cosmonauts/connect-multi-chain@0.7.3...@cosmonauts/connect-multi-chain@0.8.0) (2022-10-26)
+
+**Note:** Version bump only for package @cosmonauts/connect-multi-chain
+
+
+
+
+
+## [0.7.3](https://github.com/cosmology-tech/create-cosmos-app/compare/@cosmonauts/connect-multi-chain@0.7.2...@cosmonauts/connect-multi-chain@0.7.3) (2022-10-24)
+
+**Note:** Version bump only for package @cosmonauts/connect-multi-chain
+
+
+
+
+
+## [0.7.2](https://github.com/cosmology-tech/create-cosmos-app/compare/@cosmonauts/connect-multi-chain@0.7.1...@cosmonauts/connect-multi-chain@0.7.2) (2022-10-15)
+
+**Note:** Version bump only for package @cosmonauts/connect-multi-chain
+
+
+
+
+
+## [0.7.1](https://github.com/cosmology-tech/create-cosmos-app/compare/@cosmonauts/connect-multi-chain@0.7.0...@cosmonauts/connect-multi-chain@0.7.1) (2022-10-03)
+
+**Note:** Version bump only for package @cosmonauts/connect-multi-chain
+
+
+
+
+
+# [0.7.0](https://github.com/cosmology-tech/create-cosmos-app/compare/@cosmonauts/connect-multi-chain@0.6.1...@cosmonauts/connect-multi-chain@0.7.0) (2022-09-30)
+
+**Note:** Version bump only for package @cosmonauts/connect-multi-chain
+
+
+
+
+
+## [0.6.1](https://github.com/cosmology-tech/create-cosmos-app/compare/@cosmonauts/connect-multi-chain@0.6.0...@cosmonauts/connect-multi-chain@0.6.1) (2022-09-25)
+
+**Note:** Version bump only for package @cosmonauts/connect-multi-chain
+
+
+
+
+
+# [0.6.0](https://github.com/cosmology-tech/create-cosmos-app/compare/@cosmonauts/connect-multi-chain@0.5.0...@cosmonauts/connect-multi-chain@0.6.0) (2022-09-25)
+
+**Note:** Version bump only for package @cosmonauts/connect-multi-chain
+
+
+
+
+
+# [0.5.0](https://github.com/cosmology-tech/create-cosmos-app/compare/@cosmonauts/connect-multi-chain@0.4.0...@cosmonauts/connect-multi-chain@0.5.0) (2022-09-23)
+
+**Note:** Version bump only for package @cosmonauts/connect-multi-chain
+
+
+
+
+
+# [0.4.0](https://github.com/cosmology-tech/create-cosmos-app/compare/@cosmonauts/connect-multi-chain@0.3.0...@cosmonauts/connect-multi-chain@0.4.0) (2022-09-22)
+
+**Note:** Version bump only for package @cosmonauts/connect-multi-chain
+
+
+
+
+
+# [0.3.0](https://github.com/cosmology-tech/create-cosmos-app/compare/@cosmonauts/connect-multi-chain@0.2.0...@cosmonauts/connect-multi-chain@0.3.0) (2022-09-22)
+
+**Note:** Version bump only for package @cosmonauts/connect-multi-chain
+
+
+
+
+
+# [0.2.0](https://github.com/cosmology-tech/create-cosmos-app/compare/@cosmonauts/connect-multi-chain@0.1.10...@cosmonauts/connect-multi-chain@0.2.0) (2022-09-22)
+
+**Note:** Version bump only for package @cosmonauts/connect-multi-chain
+
+
+
+
+
+## [0.1.10](https://github.com/cosmology-tech/create-cosmos-app/compare/@cosmonauts/connect-multi-chain@0.1.9...@cosmonauts/connect-multi-chain@0.1.10) (2022-09-11)
+
+**Note:** Version bump only for package @cosmonauts/connect-multi-chain
+
+
+
+
+
+## [0.1.9](https://github.com/cosmology-tech/create-cosmos-app/compare/@cosmonauts/connect-multi-chain@0.1.8...@cosmonauts/connect-multi-chain@0.1.9) (2022-09-08)
+
+**Note:** Version bump only for package @cosmonauts/connect-multi-chain
+
+
+
+
+
+## [0.1.8](https://github.com/cosmology-tech/create-cosmos-app/compare/@cosmonauts/connect-multi-chain@0.1.7...@cosmonauts/connect-multi-chain@0.1.8) (2022-09-02)
+
+**Note:** Version bump only for package @cosmonauts/connect-multi-chain
+
+
+
+
+
+## [0.1.7](https://github.com/cosmology-tech/create-cosmos-app/compare/@cosmonauts/connect-multi-chain@0.1.6...@cosmonauts/connect-multi-chain@0.1.7) (2022-08-30)
+
+**Note:** Version bump only for package @cosmonauts/connect-multi-chain
+
+
+
+
+
+## [0.1.6](https://github.com/cosmology-tech/create-cosmos-app/compare/@cosmonauts/connect-multi-chain@0.1.5...@cosmonauts/connect-multi-chain@0.1.6) (2022-08-27)
+
+**Note:** Version bump only for package @cosmonauts/connect-multi-chain
+
+
+
+
+
+## [0.1.5](https://github.com/cosmology-tech/create-cosmos-app/compare/@cosmonauts/connect-multi-chain@0.1.4...@cosmonauts/connect-multi-chain@0.1.5) (2022-08-27)
+
+**Note:** Version bump only for package @cosmonauts/connect-multi-chain
+
+
+
+
+
+## [0.1.4](https://github.com/cosmology-tech/create-cosmos-app/compare/@cosmonauts/connect-multi-chain@0.1.3...@cosmonauts/connect-multi-chain@0.1.4) (2022-08-27)
+
+**Note:** Version bump only for package @cosmonauts/connect-multi-chain
+
+
+
+
+
+## [0.1.3](https://github.com/cosmology-tech/create-cosmos-app/compare/@cosmonauts/connect-multi-chain@0.1.2...@cosmonauts/connect-multi-chain@0.1.3) (2022-08-25)
+
+**Note:** Version bump only for package @cosmonauts/connect-multi-chain
+
+
+
+
+
+## 0.1.2 (2022-08-25)
+
+**Note:** Version bump only for package @cosmonauts/connect-multi-chain
+
+
+
+
+
+## 0.1.1 (2022-08-24)
+
+**Note:** Version bump only for package @cosmos-app/connect-multi-chain
diff --git a/examples/chain-template/CREDITS.txt b/examples/chain-template/CREDITS.txt
new file mode 100644
index 000000000..26fcc68d8
--- /dev/null
+++ b/examples/chain-template/CREDITS.txt
@@ -0,0 +1,4 @@
+CREDITS
+-------
+The CosmWasm dashboard of this project was inspired by the design of https://github.com/alleslabs/celatone-frontend
+No code from the original project was used in this project.
diff --git a/examples/chain-template/README.md b/examples/chain-template/README.md
new file mode 100644
index 000000000..8f7ea36c7
--- /dev/null
+++ b/examples/chain-template/README.md
@@ -0,0 +1,94 @@
+This is a Cosmos App project bootstrapped with [`create-cosmos-app`](https://github.com/cosmology-tech/create-cosmos-app).
+
+## Getting Started
+
+First, install the packages and run the development server:
+
+```bash
+yarn && yarn dev
+```
+
+Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
+
+You can start editing the page by modifying `pages/index.tsx`. The page auto-updates as you edit the file.
+
+## How to connect to Starship chains
+
+1. Follow the official guide to set up Starship: https://docs.cosmology.zone/starship/get-started/step-1
+2. Run `yarn starship start` and wait until Starship is up and running
+3. Open a new terminal and run `yarn dev`
+4. Open http://localhost:3000, select "Osmosis Devnet" or "Cosmos Hub Devnet" from the chain dropdown in the top right corner then click "Connect Wallet" in the left sidebar to connect to the chain
+5. Go to "Faucet" to get some test tokens and enjoy!
+
+## Learn More
+
+### Chain Registry
+
+The npm package for the Official Cosmos chain registry. Get chain and token data for you application.
+
+- https://github.com/cosmology-tech/chain-registry
+
+### Cosmology Videos
+
+Checkout more videos for how to use various frontend tooling in the Cosmos!
+
+- https://cosmology.zone/learn
+
+### Cosmos Kit
+
+A wallet connector for the Cosmos ⚛️
+
+- https://github.com/cosmology-tech/cosmos-kit
+
+### Telescope
+
+A "babel for the Cosmos", Telescope is a TypeScript Transpiler for Cosmos Protobufs. Telescope is used to generate libraries for Cosmos blockchains. Simply point to your protobuffer files and create developer-friendly Typescript libraries for teams to build on your blockchain.
+
+- https://github.com/cosmology-tech/telescope
+
+🎥 [Checkout the Telescope video playlist](https://www.youtube.com/watch?v=n82MsLe82mk&list=PL-lMkVv7GZwyQaK6bp6kMdOS5mzosxytC) to learn how to use `telescope`!
+
+### CosmWasm TS Codegen
+
+The quickest and easiest way to interact with CosmWasm Contracts. @cosmwasm/ts-codegen converts your CosmWasm smart contracts into dev-friendly TypeScript classes so you can focus on shipping code.
+
+- https://github.com/CosmWasm/ts-codegen
+
+🎥 [Checkout the CosmWasm/ts-codegen video playlist](https://www.youtube.com/watch?v=D_A5V2PfNLA&list=PL-lMkVv7GZwz1KO3jANwr5W4MoziruXwK) to learn how to use `ts-codegen`!
+
+## Learn More about Next.js
+
+To learn more about Next.js, take a look at the following resources:
+
+- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.
+- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.
+
+You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome!
+
+## Deploy on Vercel
+
+The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js.
+
+Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details.
+
+## Related
+
+Checkout these related projects:
+
+- [@cosmology/telescope](https://github.com/cosmology-tech/telescope) Your Frontend Companion for Building with TypeScript with Cosmos SDK Modules.
+- [@cosmwasm/ts-codegen](https://github.com/CosmWasm/ts-codegen) Convert your CosmWasm smart contracts into dev-friendly TypeScript classes.
+- [chain-registry](https://github.com/cosmology-tech/chain-registry) Everything from token symbols, logos, and IBC denominations for all assets you want to support in your application.
+- [cosmos-kit](https://github.com/cosmology-tech/cosmos-kit) Experience the convenience of connecting with a variety of web3 wallets through a single, streamlined interface.
+- [create-cosmos-app](https://github.com/cosmology-tech/create-cosmos-app) Set up a modern Cosmos app by running one command.
+- [interchain-ui](https://github.com/cosmology-tech/interchain-ui) The Interchain Design System, empowering developers with a flexible, easy-to-use UI kit.
+- [starship](https://github.com/cosmology-tech/starship) Unified Testing and Development for the Interchain.
+
+## Credits
+
+🛠 Built by Cosmology — if you like our tools, please consider delegating to [our validator ⚛️](https://cosmology.zone/validator)
+
+## Disclaimer
+
+AS DESCRIBED IN THE LICENSES, THE SOFTWARE IS PROVIDED “AS IS”, AT YOUR OWN RISK, AND WITHOUT WARRANTIES OF ANY KIND.
+
+No developer or entity involved in creating this software will be liable for any claims or damages whatsoever associated with your use, inability to use, or your interaction with other users of the code, including any direct, indirect, incidental, special, exemplary, punitive or consequential damages, or loss of profits, cryptocurrencies, tokens, or anything else of value.
diff --git a/examples/chain-template/components/asset-list/AssetListSection.tsx b/examples/chain-template/components/asset-list/AssetListSection.tsx
new file mode 100644
index 000000000..e4189f1ef
--- /dev/null
+++ b/examples/chain-template/components/asset-list/AssetListSection.tsx
@@ -0,0 +1,56 @@
+import React from 'react';
+import { Text, Box } from '@interchain-ui/react';
+import AssetsOverview from './AssetsOverview';
+import { useChain } from '@cosmos-kit/react';
+import { useAssets } from '@/hooks';
+import { ChainName } from 'cosmos-kit';
+
+interface AssetListSectionProps {
+ chainName: ChainName;
+ children?: React.ReactNode;
+}
+
+export const AssetListSection = ({ chainName }: AssetListSectionProps) => {
+ const { isWalletConnected } = useChain(chainName);
+ const { data, isLoading, refetch } = useAssets(chainName);
+
+ if (!isWalletConnected) {
+ return (
+
+
+ My assets
+
+
+
+
+ Connect the wallet to see the assets
+
+
+
+ );
+ }
+
+ return (
+
+
+
+ );
+};
diff --git a/examples/chain-template/components/asset-list/AssetsOverview.tsx b/examples/chain-template/components/asset-list/AssetsOverview.tsx
new file mode 100644
index 000000000..8a5967c5b
--- /dev/null
+++ b/examples/chain-template/components/asset-list/AssetsOverview.tsx
@@ -0,0 +1,192 @@
+import React, { useMemo, useState } from 'react';
+import { flushSync } from 'react-dom';
+import { useChain } from '@cosmos-kit/react';
+import BigNumber from 'bignumber.js';
+import { ChainName } from 'cosmos-kit';
+import { SingleChain, SingleChainProps } from '@interchain-ui/react';
+
+import { useDisclosure, useChainUtils, useTotalAssets } from '@/hooks';
+import {
+ truncDecimals,
+ formatDollarValue,
+ prettyAssetToTransferItem,
+} from '@/utils';
+
+import { DropdownTransferModal } from './DropdownTransferModal';
+import { RowTransferModal } from './RowTransferModal';
+
+import { PrettyAsset, Transfer, TransferInfo } from './types';
+
+interface AssetsOverviewProps {
+ isLoading?: boolean;
+ assets: PrettyAsset[];
+ prices: Record;
+ selectedChainName: ChainName;
+ refetch?: () => void;
+}
+
+const AssetsOverview = ({
+ assets,
+ selectedChainName,
+ isLoading,
+}: AssetsOverviewProps) => {
+ const [dropdownTransferInfo, setTransferInfo] = useState();
+ const [rowTransferInfo, setRowTransferInfo] = useState();
+
+ const { chain } = useChain(selectedChainName);
+
+ const {
+ data,
+ isLoading: isLoadingTotalAssets,
+ refetch,
+ } = useTotalAssets(selectedChainName);
+ const {
+ getChainName,
+ getNativeDenom,
+ isNativeAsset,
+ getDenomBySymbolAndChain,
+ } = useChainUtils(selectedChainName);
+
+ const modalControl = useDisclosure();
+ const rowModalControl = useDisclosure();
+
+ const ibcAssets = useMemo(
+ () => assets.filter((asset) => !isNativeAsset(asset)),
+ // eslint-disable-next-line react-hooks/exhaustive-deps
+ [assets]
+ );
+
+ const hasBalance = useMemo(
+ () => ibcAssets.some((asset) => new BigNumber(asset.amount).gt(0)),
+ [ibcAssets]
+ );
+
+ const assetsToShow = useMemo(() => {
+ const returnAssets: SingleChainProps['list'] = assets.map((asset) => ({
+ imgSrc: asset.logoUrl ?? '',
+ symbol: asset.symbol,
+ denom: asset.denom,
+ name: asset.prettyChainName,
+ tokenAmount: truncDecimals(asset.displayAmount, 6),
+ tokenAmountPrice: formatDollarValue(asset.dollarValue, asset.amount),
+ chainName: asset.prettyChainName,
+ showDeposit: !isNativeAsset(asset),
+ showWithdraw: !isNativeAsset(asset),
+ onDeposit: () => {
+ const sourceChainName = getChainName(asset.denom);
+ const denom = getDenomBySymbolAndChain(sourceChainName, asset.symbol);
+ flushSync(() => {
+ setRowTransferInfo({
+ sourceChainName,
+ type: Transfer.Deposit,
+ destChainName: selectedChainName,
+ token: {
+ ...prettyAssetToTransferItem(asset),
+ priceDisplayAmount: 0,
+ available: 0,
+ denom,
+ },
+ });
+ });
+
+ rowModalControl.onOpen();
+ },
+ onWithdraw: () => {
+ const destChainName = getChainName(asset.denom);
+
+ flushSync(() => {
+ setRowTransferInfo({
+ sourceChainName: selectedChainName,
+ type: Transfer.Withdraw,
+ destChainName,
+ token: prettyAssetToTransferItem(asset),
+ });
+ });
+
+ rowModalControl.onOpen();
+ },
+ }));
+
+ return returnAssets;
+ }, [
+ assets,
+ getChainName,
+ getNativeDenom,
+ isNativeAsset,
+ rowModalControl,
+ selectedChainName,
+ ]);
+
+ const onWithdrawAsset = () => {
+ const destChainName = getChainName(ibcAssets[0].denom);
+ setTransferInfo({
+ sourceChainName: selectedChainName,
+ type: Transfer.Withdraw,
+ destChainName,
+ token: prettyAssetToTransferItem(ibcAssets[0]),
+ });
+ modalControl.onOpen();
+ };
+
+ const onDepositAsset = () => {
+ const sourceChainName = getChainName(ibcAssets[0].denom);
+ const sourceChainAssetDenom = getNativeDenom(sourceChainName);
+ setTransferInfo({
+ sourceChainName,
+ type: Transfer.Deposit,
+ destChainName: selectedChainName,
+ token: {
+ ...prettyAssetToTransferItem(ibcAssets[0]),
+ available: 0,
+ priceDisplayAmount: 0,
+ denom: sourceChainAssetDenom,
+ },
+ });
+ modalControl.onOpen();
+ };
+
+ return (
+ <>
+ 0}
+ showWithdraw={hasBalance}
+ onDeposit={onDepositAsset}
+ onWithdraw={onWithdrawAsset}
+ singleChainHeader={{
+ label: `Total on ${chain.pretty_name}`,
+ value: `${data?.total ?? 0}`,
+ }}
+ list={assetsToShow}
+ />
+
+ {data && dropdownTransferInfo && (
+
+ )}
+
+ {rowTransferInfo && (
+
+ )}
+ >
+ );
+};
+
+export default AssetsOverview;
diff --git a/examples/chain-template/components/asset-list/DropdownTransferModal.tsx b/examples/chain-template/components/asset-list/DropdownTransferModal.tsx
new file mode 100644
index 000000000..fde312b70
--- /dev/null
+++ b/examples/chain-template/components/asset-list/DropdownTransferModal.tsx
@@ -0,0 +1,291 @@
+import React, { useEffect, useState, useMemo } from 'react';
+import {
+ BasicModal,
+ OverviewTransfer,
+ OverviewTransferProps,
+} from '@interchain-ui/react';
+import { useChainWallet, useManager } from '@cosmos-kit/react';
+import BigNumber from 'bignumber.js';
+import { ibc } from 'osmo-query';
+import { StdFee, coins } from '@cosmjs/amino';
+import { ChainName } from 'cosmos-kit';
+import { keplrWalletName } from '@/config';
+import { useDisclosure, useChainUtils, useTx, useBalance } from '@/hooks';
+import { truncDecimals } from '@/utils';
+
+import {
+ PrettyAsset,
+ PriceHash,
+ TransferInfo,
+ Transfer,
+ Unpacked,
+} from './types';
+
+const { transfer } = ibc.applications.transfer.v1.MessageComposer.withTypeUrl;
+
+const ZERO_AMOUNT = '0';
+
+interface OverviewTransferWrapperProps {
+ prices: PriceHash;
+ assets: PrettyAsset[];
+ modalControl: ReturnType;
+ updateData: () => void;
+ transferInfoState: {
+ transferInfo: TransferInfo;
+ setTransferInfo: React.Dispatch<
+ React.SetStateAction
+ >;
+ };
+ selectedChainName: ChainName;
+}
+
+const OverviewTransferWrapper = (
+ props: OverviewTransferWrapperProps & {
+ isLoading: boolean;
+ setIsLoading: React.Dispatch>;
+ inputValue: string;
+ setInputValue: React.Dispatch>;
+ }
+) => {
+ const {
+ assets,
+ prices,
+ modalControl,
+ transferInfoState,
+ updateData,
+ selectedChainName,
+ isLoading,
+ setIsLoading,
+ inputValue,
+ setInputValue,
+ } = props;
+
+ const {
+ convRawToDispAmount,
+ symbolToDenom,
+ getExponentByDenom,
+ getIbcInfo,
+ getChainName,
+ getNativeDenom,
+ } = useChainUtils(selectedChainName);
+
+ const { transferInfo, setTransferInfo } = transferInfoState;
+
+ const {
+ type: transferType,
+ token: transferToken,
+ destChainName,
+ sourceChainName,
+ } = transferInfo;
+
+ const isDeposit = transferType === 'Deposit';
+ const { balance, isLoading: isLoadingBalance } = useBalance(
+ sourceChainName,
+ isDeposit
+ );
+
+ const { address: sourceAddress, connect: connectSourceChain } =
+ useChainWallet(sourceChainName, keplrWalletName);
+
+ const { address: destAddress, connect: connectDestChain } = useChainWallet(
+ destChainName,
+ keplrWalletName
+ );
+
+ const { getChainLogo } = useManager();
+ const { tx } = useTx(sourceChainName);
+
+ const availableAmount = useMemo((): number => {
+ if (!isDeposit) {
+ return transferToken.priceDisplayAmount ?? 0;
+ }
+
+ if (isLoadingBalance) {
+ return 0;
+ }
+
+ return new BigNumber(
+ convRawToDispAmount(transferToken.symbol, balance?.amount || ZERO_AMOUNT)
+ ).toNumber();
+ // eslint-disable-next-line react-hooks/exhaustive-deps
+ }, [isDeposit, isLoadingBalance, transferToken]);
+
+ const dollarValue = new BigNumber(inputValue)
+ .multipliedBy(prices[symbolToDenom(transferToken.symbol)])
+ .decimalPlaces(2)
+ .toString();
+
+ useEffect(() => {
+ if (!modalControl.isOpen) return;
+ if (!sourceAddress) connectSourceChain();
+ if (!destAddress) connectDestChain();
+ // eslint-disable-next-line react-hooks/exhaustive-deps
+ }, [destAddress, sourceAddress, modalControl]);
+
+ const closeModal = () => {
+ modalControl.onClose();
+ setInputValue('');
+ setIsLoading(false);
+ };
+
+ const handleTransferSubmit = async () => {
+ if (!sourceAddress || !destAddress) return;
+ setIsLoading(true);
+
+ const transferAmount = new BigNumber(inputValue)
+ .shiftedBy(getExponentByDenom(symbolToDenom(transferToken.symbol)))
+ .toString();
+
+ const { sourcePort, sourceChannel } = getIbcInfo(
+ sourceChainName,
+ destChainName
+ );
+
+ const fee: StdFee = {
+ amount: coins('1000', transferToken.denom ?? ''),
+ gas: '250000',
+ };
+
+ const token = {
+ denom: transferToken.denom ?? '',
+ amount: transferAmount,
+ };
+
+ const stamp = Date.now();
+ const timeoutInNanos = (stamp + 1.2e6) * 1e6;
+
+ const msg = transfer({
+ sourcePort,
+ sourceChannel,
+ sender: sourceAddress,
+ receiver: destAddress,
+ token,
+ // @ts-ignore
+ timeoutHeight: undefined,
+ timeoutTimestamp: BigInt(timeoutInNanos),
+ });
+
+ await tx([msg], {
+ fee,
+ onSuccess: () => {
+ updateData();
+ closeModal();
+ },
+ });
+
+ setIsLoading(false);
+ };
+
+ const assetOptions: OverviewTransferProps['dropdownList'] = useMemo(() => {
+ return assets
+ .filter((asset) => {
+ if (isDeposit) {
+ return true;
+ }
+ return new BigNumber(asset.amount).gt(0);
+ })
+ // .filter((asset) => {
+ // return asset.symbol !== transferToken.symbol;
+ // })
+ .map((asset) => ({
+ available: new BigNumber(asset.displayAmount).toNumber(),
+ symbol: asset.symbol,
+ name: asset.prettyChainName,
+ denom: asset.denom,
+ imgSrc: asset.logoUrl ?? '',
+ priceDisplayAmount: new BigNumber(
+ truncDecimals(asset.dollarValue, 2)
+ ).toNumber(),
+ }));
+ }, [assets, isDeposit, transferToken]);
+ console.log('assetOptions', assetOptions);
+
+ const handleOnChange = (
+ assetOption: Unpacked,
+ value: number
+ ) => {
+ setInputValue(`${value}`);
+
+ setTransferInfo((prev) => {
+ if (!prev) return;
+
+ if (transferType === Transfer.Withdraw) {
+ const destChainName = getChainName(assetOption.denom ?? '');
+ return { ...prev, destChainName, token: assetOption };
+ }
+
+ const sourceChainName = getChainName(assetOption.denom ?? '');
+ const sourceChainAssetDenom = getNativeDenom(sourceChainName);
+ return {
+ ...prev,
+ sourceChainName,
+ token: {
+ ...assetOption,
+ available: availableAmount,
+ displayAmount: ZERO_AMOUNT,
+ dollarValue: ZERO_AMOUNT,
+ amount: ZERO_AMOUNT,
+ denom: sourceChainAssetDenom,
+ },
+ };
+ });
+ };
+
+ return (
+ {
+ handleTransferSubmit();
+ }}
+ onCancel={() => {
+ closeModal();
+ }}
+ onChange={handleOnChange}
+ timeEstimateLabel="≈ 20 seconds"
+ />
+ );
+};
+
+export const DropdownTransferModal = (props: OverviewTransferWrapperProps) => {
+ const { modalControl, transferInfoState } = props;
+
+ const [inputValue, setInputValue] = useState('');
+ const [isLoading, setIsLoading] = useState(false);
+
+ const closeModal = () => {
+ modalControl.onClose();
+ setInputValue('');
+ setIsLoading(false);
+ };
+
+ return (
+ closeModal()}
+ >
+ {transferInfoState ? (
+
+ ) : null}
+
+ );
+};
diff --git a/examples/chain-template/components/asset-list/RowTransferModal.tsx b/examples/chain-template/components/asset-list/RowTransferModal.tsx
new file mode 100644
index 000000000..0d7ff4941
--- /dev/null
+++ b/examples/chain-template/components/asset-list/RowTransferModal.tsx
@@ -0,0 +1,288 @@
+import React, { useEffect, useMemo, useState } from 'react';
+import { BasicModal, AssetWithdrawTokens } from '@interchain-ui/react';
+import { useChainWallet, useManager } from '@cosmos-kit/react';
+import BigNumber from 'bignumber.js';
+import { ChainName } from 'cosmos-kit';
+import { coins, StdFee } from '@cosmjs/amino';
+import { useDisclosure, useChainUtils, useBalance, useTx } from '@/hooks';
+import { keplrWalletName } from '@/config';
+import { ibc } from 'osmo-query';
+
+import { PriceHash, TransferInfo, Transfer } from './types';
+
+const { transfer } = ibc.applications.transfer.v1.MessageComposer.withTypeUrl;
+
+interface IProps {
+ prices: PriceHash;
+ transferInfo: TransferInfo;
+ modalControl: ReturnType;
+ updateData: () => void;
+ selectedChainName: ChainName;
+}
+
+const TransferModalBody = (
+ props: IProps & {
+ isLoading: boolean;
+ setIsLoading: React.Dispatch>;
+ inputValue: string;
+ setInputValue: React.Dispatch>;
+ }
+) => {
+ const {
+ prices,
+ selectedChainName,
+ transferInfo,
+ modalControl,
+ updateData,
+ isLoading,
+ setIsLoading,
+ inputValue,
+ setInputValue,
+ } = props;
+
+ const { getIbcInfo, symbolToDenom, getExponentByDenom, convRawToDispAmount } =
+ useChainUtils(selectedChainName);
+
+ const {
+ type: transferType,
+ token: transferToken,
+ destChainName,
+ sourceChainName,
+ } = transferInfo;
+
+ const isDeposit = transferType === Transfer.Deposit;
+
+ const {
+ address: sourceAddress,
+ connect: connectSourceChain,
+ chain: sourceChainInfo,
+ } = useChainWallet(sourceChainName, keplrWalletName);
+
+ const {
+ address: destAddress,
+ connect: connectDestChain,
+ chain: destChainInfo,
+ } = useChainWallet(destChainName, keplrWalletName);
+
+ const { balance, isLoading: isLoadingBalance } = useBalance(
+ sourceChainName,
+ isDeposit,
+ transferInfo.token.symbol
+ );
+
+ const { getChainLogo } = useManager();
+ const { tx } = useTx(sourceChainName);
+
+ const availableAmount = useMemo(() => {
+ if (!isDeposit) return transferToken.available ?? 0;
+ if (isLoadingBalance) return 0;
+
+ console.log('transferInfo.token', transferInfo.token);
+
+ return new BigNumber(
+ convRawToDispAmount(transferInfo.token.symbol, balance?.amount || '0')
+ ).toNumber();
+ // eslint-disable-next-line react-hooks/exhaustive-deps
+ }, [
+ isDeposit,
+ isLoading,
+ transferToken.symbol,
+ balance?.amount,
+ transferInfo.token.symbol,
+ isLoadingBalance,
+ ]);
+
+ const dollarValue = new BigNumber(1)
+ .multipliedBy(
+ prices[symbolToDenom(transferToken.symbol, transferInfo.sourceChainName)]
+ )
+ .decimalPlaces(6)
+ .toNumber();
+
+ useEffect(() => {
+ if (!modalControl.isOpen) return;
+ if (!sourceAddress) connectSourceChain();
+ if (!destAddress) connectDestChain();
+
+ // eslint-disable-next-line react-hooks/exhaustive-deps
+ }, [modalControl.isOpen]);
+
+ const handleClick = async () => {
+ if (!sourceAddress || !destAddress) return;
+ setIsLoading(true);
+
+ const transferAmount = new BigNumber(inputValue)
+ .shiftedBy(getExponentByDenom(symbolToDenom(transferToken.symbol)))
+ .toString();
+
+ const { sourcePort, sourceChannel } = getIbcInfo(
+ sourceChainName,
+ destChainName
+ );
+
+ const fee: StdFee = {
+ amount: coins('1000', transferToken.denom ?? ''),
+ gas: '250000',
+ };
+
+ const token = {
+ denom: transferToken.denom ?? '',
+ amount: transferAmount,
+ };
+
+ const stamp = Date.now();
+ const timeoutInNanos = (stamp + 1.2e6) * 1e6;
+
+ const msg = transfer({
+ sourcePort,
+ sourceChannel,
+ sender: sourceAddress,
+ receiver: destAddress,
+ token,
+ // @ts-ignore
+ timeoutHeight: undefined,
+ timeoutTimestamp: BigInt(timeoutInNanos),
+ });
+
+ await tx([msg], {
+ fee,
+ onSuccess: () => {
+ updateData();
+ modalControl.onClose();
+ },
+ });
+
+ setIsLoading(false);
+ };
+
+ const sourceChain = useMemo(() => {
+ return {
+ name: sourceChainInfo.pretty_name,
+ address: sourceAddress ?? '',
+ imgSrc: getChainLogo(sourceChainName) ?? '',
+ };
+ }, [getChainLogo, sourceAddress, sourceChainInfo, sourceChainName]);
+
+ const destChain = useMemo(() => {
+ return {
+ symbol: destChainInfo.chain_name.toUpperCase(),
+ name: destChainInfo.pretty_name,
+ address: destAddress ?? '',
+ imgSrc: getChainLogo(destChainName) ?? '',
+ };
+ }, [destChainInfo, destAddress, getChainLogo, destChainName]);
+
+ const handleSubmitTransfer = async () => {
+ if (!sourceAddress || !destAddress) return;
+ setIsLoading(true);
+
+ const transferAmount = new BigNumber(inputValue)
+ .shiftedBy(getExponentByDenom(symbolToDenom(transferToken.symbol)))
+ .toString();
+
+ const { sourcePort, sourceChannel } = getIbcInfo(
+ sourceChainName,
+ destChainName
+ );
+
+ const fee: StdFee = {
+ amount: coins('1000', transferToken.denom ?? ''),
+ gas: '250000',
+ };
+
+ const token = {
+ denom: transferToken.denom ?? '',
+ amount: transferAmount,
+ };
+
+ const stamp = Date.now();
+ const timeoutInNanos = (stamp + 1.2e6) * 1e6;
+
+ const msg = transfer({
+ sourcePort,
+ sourceChannel,
+ sender: sourceAddress,
+ receiver: destAddress,
+ token,
+ // @ts-ignore
+ timeoutHeight: undefined,
+ timeoutTimestamp: BigInt(timeoutInNanos),
+ });
+
+ await tx([msg], {
+ fee,
+ onSuccess: () => {
+ updateData();
+ modalControl.onClose();
+ },
+ });
+
+ setIsLoading(false);
+ };
+
+ return (
+ {
+ console.log('onChange value', value);
+ setInputValue(value);
+ }}
+ onTransfer={() => {
+ console.log('onTransfer');
+ handleSubmitTransfer();
+ }}
+ onCancel={() => {
+ console.log('onCancel');
+ modalControl.onClose();
+ }}
+ />
+ );
+};
+
+export const RowTransferModal = (props: IProps) => {
+ const { modalControl, transferInfo } = props;
+ const [inputValue, setInputValue] = useState('');
+ const [isLoading, setIsLoading] = useState(false);
+
+ const closeModal = () => {
+ modalControl.onClose();
+ setInputValue('');
+ };
+
+ return (
+ closeModal()}
+ >
+
+
+ );
+};
diff --git a/examples/chain-template/components/asset-list/index.ts b/examples/chain-template/components/asset-list/index.ts
new file mode 100644
index 000000000..8a7f6313c
--- /dev/null
+++ b/examples/chain-template/components/asset-list/index.ts
@@ -0,0 +1,2 @@
+export * from './types';
+export * from './AssetListSection';
diff --git a/examples/chain-template/components/asset-list/types.tsx b/examples/chain-template/components/asset-list/types.tsx
new file mode 100644
index 000000000..56437be26
--- /dev/null
+++ b/examples/chain-template/components/asset-list/types.tsx
@@ -0,0 +1,52 @@
+import { AvailableItem } from '@interchain-ui/react';
+
+export type Unpacked = T extends (infer U)[] ? U : T;
+
+export type PrettyAsset = {
+ logoUrl: string | undefined;
+ symbol: string;
+ prettyChainName: string;
+ displayAmount: string;
+ dollarValue: string;
+ amount: string;
+ denom: string;
+};
+
+export type Token = {
+ price: number;
+ denom: string;
+ symbol: string;
+ liquidity: number;
+ volume_24h: number;
+ volume_24h_change: number;
+ name: string;
+ price_24h_change: number;
+ price_7d_change: number;
+ exponent: number;
+ display: string;
+};
+
+export type PriceHash = {
+ [key: string]: number;
+};
+
+export const Transfer = {
+ Deposit: 'Deposit',
+ Withdraw: 'Withdraw',
+} as const;
+
+export type TransferValues = typeof Transfer[keyof typeof Transfer];
+
+export type TransferInfo = {
+ type: TransferValues;
+ sourceChainName: string;
+ destChainName: string;
+ token: AvailableItem;
+};
+
+export type AssetOption = {
+ value: string;
+ icon: { png: string | undefined };
+};
+
+export type PrettyAssetOption = PrettyAsset & AssetOption;
diff --git a/examples/chain-template/components/common/Button.tsx b/examples/chain-template/components/common/Button.tsx
new file mode 100644
index 000000000..0457654fd
--- /dev/null
+++ b/examples/chain-template/components/common/Button.tsx
@@ -0,0 +1,157 @@
+import {
+ Box,
+ BoxProps,
+ Icon,
+ IconName,
+ IconProps,
+ Spinner,
+} from '@interchain-ui/react';
+import { useState, useRef, useEffect } from 'react';
+
+type Variant = 'primary' | 'outline' | 'text';
+type ButtonIcon = IconName | JSX.Element;
+type Size = 'sm' | 'md';
+
+type ButtonProps = {
+ children?: React.ReactNode;
+ variant?: Variant;
+ onClick?: () => void;
+ disabled?: boolean;
+ leftIcon?: ButtonIcon;
+ rightIcon?: ButtonIcon;
+ iconColor?: IconProps['color'];
+ iconSize?: IconProps['size'];
+ isLoading?: boolean;
+ size?: Size;
+} & BoxProps;
+
+const sizeStyles: Record = {
+ sm: {
+ py: '6px',
+ px: '12px',
+ height: '32px',
+ fontSize: '14px',
+ },
+ md: {
+ py: '10px',
+ px: '20px',
+ height: '40px',
+ fontSize: '16px',
+ },
+};
+
+const variantStyles: Record = {
+ outline: {
+ borderWidth: '1px',
+ borderStyle: '$solid',
+ borderColor: '$blackAlpha200',
+ color: '$blackAlpha500',
+ backgroundColor: {
+ hover: '$blackAlpha100',
+ base: '$background',
+ },
+ },
+ text: {
+ color: {
+ base: '$blackAlpha500',
+ hover: '$blackAlpha600',
+ },
+ backgroundColor: 'transparent',
+ },
+ primary: {
+ color: '$white',
+ backgroundColor: {
+ hover: '$purple400',
+ base: '$purple600',
+ },
+ },
+};
+
+const disabledStyles: Record = {
+ outline: {
+ color: '$blackAlpha300',
+ backgroundColor: 'transparent',
+ },
+ text: {
+ color: '$blackAlpha300',
+ },
+ primary: {
+ backgroundColor: '$purple200',
+ },
+};
+
+export const Button = ({
+ children,
+ onClick,
+ size = 'md',
+ variant = 'outline',
+ disabled = false,
+ isLoading = false,
+ iconColor = 'inherit',
+ iconSize = '$md',
+ leftIcon,
+ rightIcon,
+ ...rest
+}: ButtonProps) => {
+ const [buttonWidth, setButtonWidth] = useState(0);
+ const buttonRef = useRef(null);
+
+ useEffect(() => {
+ // maintain button width when loading
+ const updateButtonWidth = () => {
+ if (buttonRef.current && !isLoading) {
+ setButtonWidth(buttonRef.current.offsetWidth);
+ }
+ };
+
+ updateButtonWidth();
+
+ window.addEventListener('resize', updateButtonWidth);
+ return () => window.removeEventListener('resize', updateButtonWidth);
+ }, [isLoading, children, leftIcon, rightIcon, iconSize]);
+
+ return (
+
+ {isLoading ? (
+
+ ) : (
+ <>
+ {typeof leftIcon === 'string' ? (
+
+ ) : (
+ leftIcon
+ )}
+
+ {children}
+
+ {typeof rightIcon === 'string' ? (
+
+ ) : (
+ rightIcon
+ )}
+ >
+ )}
+
+ );
+};
diff --git a/examples/chain-template/components/common/Drawer.tsx b/examples/chain-template/components/common/Drawer.tsx
new file mode 100644
index 000000000..5c1a5fba5
--- /dev/null
+++ b/examples/chain-template/components/common/Drawer.tsx
@@ -0,0 +1,88 @@
+import { ReactNode, useEffect, useRef } from 'react';
+import { Box } from '@interchain-ui/react';
+import { useOutsideClick } from '@/hooks';
+
+type DrawerProps = {
+ isOpen: boolean;
+ onClose: () => void;
+ children: ReactNode;
+ direction?: 'top' | 'bottom' | 'left' | 'right';
+};
+
+export const Drawer = ({
+ isOpen,
+ onClose,
+ children,
+ direction = 'left',
+}: DrawerProps) => {
+ const contentRef = useRef(null);
+
+ useOutsideClick({
+ ref: contentRef,
+ handler: onClose,
+ shouldListen: isOpen,
+ });
+
+ useEffect(() => {
+ if (isOpen) {
+ const scrollbarWidth =
+ window.innerWidth - document.documentElement.clientWidth;
+ document.body.style.overflow = 'hidden';
+ document.body.style.paddingRight = `${scrollbarWidth}px`;
+ }
+
+ return () => {
+ document.body.style.overflow = '';
+ document.body.style.paddingRight = '';
+ };
+ }, [isOpen]);
+
+ const getTransform = () => {
+ switch (direction) {
+ case 'top':
+ return `translateY(${isOpen ? '0%' : '-100%'})`;
+ case 'bottom':
+ return `translateY(${isOpen ? '0%' : '100%'})`;
+ case 'right':
+ return `translateX(${isOpen ? '0%' : '100%'})`;
+ default:
+ return `translateX(${isOpen ? '0%' : '-100%'})`;
+ }
+ };
+
+ return (
+
+
+ {children}
+
+
+ );
+};
diff --git a/examples/chain-template/components/common/Footer.tsx b/examples/chain-template/components/common/Footer.tsx
new file mode 100644
index 000000000..95e1658ca
--- /dev/null
+++ b/examples/chain-template/components/common/Footer.tsx
@@ -0,0 +1,78 @@
+import Link from 'next/link';
+import { FaXTwitter } from 'react-icons/fa6';
+import { Box, Icon, Text } from '@interchain-ui/react';
+
+import { useDetectBreakpoints } from '@/hooks';
+
+export const Footer = () => {
+ const { isMobile } = useDetectBreakpoints();
+
+ return (
+
+ {isMobile && (
+
+
+
+ )}
+
+
+ © {new Date().getFullYear()} Cosmology
+
+ {isMobile ? : }
+
+
+ Terms of Service
+
+
+
+
+ );
+};
+
+const TextDivider = () => {
+ return (
+
+ |
+
+ );
+};
+
+const socialLinks = [
+ {
+ icon: ,
+ href: 'https://github.com/cosmology-tech',
+ },
+ {
+ icon: ,
+ href: 'https://discord.com/invite/xh3ZwHj2qQ',
+ },
+ {
+ icon: (
+
+
+
+ ),
+ href: 'https://x.com/cosmology_tech',
+ },
+ {
+ icon: ,
+ href: 'https://www.youtube.com/channel/UCA9jzRlnUJRxec8S5Lt7Vcw',
+ },
+];
+
+const SocialLinks = () => {
+ return (
+
+ {socialLinks.map(({ icon, href }) => (
+
+ {icon}
+
+ ))}
+
+ );
+};
diff --git a/examples/chain-template/components/common/Header/AddressButton.tsx b/examples/chain-template/components/common/Header/AddressButton.tsx
new file mode 100644
index 000000000..400015793
--- /dev/null
+++ b/examples/chain-template/components/common/Header/AddressButton.tsx
@@ -0,0 +1,63 @@
+import {
+ Popover,
+ PopoverContent,
+ PopoverTrigger,
+ useColorModeValue,
+} from '@interchain-ui/react';
+import { useChain } from '@cosmos-kit/react';
+import { MdOutlineAccountBalanceWallet } from 'react-icons/md';
+
+import { Button, WalletConnect } from '@/components';
+import { darkColors, lightColors } from '@/config';
+import { useChainStore } from '@/contexts';
+import { useCopyToClipboard, useDetectBreakpoints } from '@/hooks';
+import { shortenAddress } from '@/utils';
+
+export const AddressButton = () => {
+ const { selectedChain } = useChainStore();
+ const { address } = useChain(selectedChain);
+ const { isCopied, copyToClipboard } = useCopyToClipboard();
+ const { isDesktop } = useDetectBreakpoints();
+
+ const arrowBgColor = useColorModeValue(
+ lightColors?.background as string,
+ darkColors?.background as string
+ );
+
+ if (!isDesktop) {
+ return (
+
+
+ }
+ px="10px"
+ />
+
+
+
+
+
+ );
+ }
+
+ if (!address) return null;
+
+ return (
+
+ );
+};
diff --git a/examples/chain-template/components/common/Header/ChainDropdown.tsx b/examples/chain-template/components/common/Header/ChainDropdown.tsx
new file mode 100644
index 000000000..47c933b8f
--- /dev/null
+++ b/examples/chain-template/components/common/Header/ChainDropdown.tsx
@@ -0,0 +1,104 @@
+import Image from 'next/image';
+import { useEffect, useState } from 'react';
+import { useChain, useManager } from '@cosmos-kit/react';
+import { Box, Combobox, Skeleton, Stack, Text } from '@interchain-ui/react';
+
+import { useStarshipChains, useDetectBreakpoints } from '@/hooks';
+import { chainStore, useChainStore } from '@/contexts';
+import { chainOptions } from '@/config';
+import { getSignerOptions } from '@/utils';
+
+export const ChainDropdown = () => {
+ const { selectedChain } = useChainStore();
+ const { chain } = useChain(selectedChain);
+ const [input, setInput] = useState(chain.pretty_name);
+ const { isMobile } = useDetectBreakpoints();
+ const { data: starshipChains, refetch } = useStarshipChains();
+
+ const [isChainsAdded, setIsChainsAdded] = useState(false);
+ const { addChains, getChainLogo } = useManager();
+
+ useEffect(() => {
+ if (
+ starshipChains?.chains.length &&
+ starshipChains?.assets.length &&
+ !isChainsAdded
+ ) {
+ addChains(
+ starshipChains.chains,
+ starshipChains.assets,
+ getSignerOptions(),
+ );
+ setIsChainsAdded(true);
+ }
+ }, [starshipChains, isChainsAdded]);
+
+ const onOpenChange = (isOpen: boolean) => {
+ if (isOpen && !isChainsAdded) {
+ refetch();
+ }
+ };
+
+ const chains = isChainsAdded
+ ? chainOptions.concat(starshipChains?.chains ?? [])
+ : chainOptions;
+
+ return (
+ {
+ setInput(input);
+ }}
+ onOpenChange={onOpenChange}
+ selectedKey={selectedChain}
+ onSelectionChange={(key) => {
+ const chainName = key as string | null;
+ if (chainName) {
+ chainStore.setSelectedChain(chainName);
+ }
+ }}
+ inputAddonStart={
+
+ {input === chain.pretty_name ? (
+
+ ) : (
+
+ )}
+
+ }
+ styleProps={{
+ width: isMobile ? '130px' : '260px',
+ }}
+ >
+ {chains.map((c) => (
+
+
+
+
+ {c.pretty_name}
+
+
+
+ ))}
+
+ );
+};
diff --git a/examples/chain-template/components/common/Header/Header.tsx b/examples/chain-template/components/common/Header/Header.tsx
new file mode 100644
index 000000000..daabda170
--- /dev/null
+++ b/examples/chain-template/components/common/Header/Header.tsx
@@ -0,0 +1,68 @@
+import Link from 'next/link';
+import Image from 'next/image';
+import { Box, useColorModeValue, useTheme } from '@interchain-ui/react';
+import { RxHamburgerMenu } from 'react-icons/rx';
+
+import { ChainDropdown } from './ChainDropdown';
+import { Button } from '../Button';
+import { useDetectBreakpoints } from '@/hooks';
+import { AddressButton } from './AddressButton';
+
+interface HeaderProps {
+ onOpenSidebar: () => void;
+}
+
+export const Header = ({ onOpenSidebar }: HeaderProps) => {
+ const { theme, setTheme } = useTheme();
+ const { isDesktop, isMobile } = useDetectBreakpoints();
+
+ const brandLogo = useColorModeValue(
+ '/logos/brand-logo.svg',
+ '/logos/brand-logo-dark.svg'
+ );
+
+ const brandLogoSm = useColorModeValue(
+ '/logos/brand-logo-sm.svg',
+ '/logos/brand-logo-sm-dark.svg'
+ );
+
+ return (
+
+ {!isDesktop && (
+
+
+
+ )}
+
+
+
+
+
+ );
+};
diff --git a/examples/chain-template/components/common/Header/index.ts b/examples/chain-template/components/common/Header/index.ts
new file mode 100644
index 000000000..266dec8a1
--- /dev/null
+++ b/examples/chain-template/components/common/Header/index.ts
@@ -0,0 +1 @@
+export * from './Header';
diff --git a/examples/chain-template/components/common/Layout.tsx b/examples/chain-template/components/common/Layout.tsx
new file mode 100644
index 000000000..22e6408d5
--- /dev/null
+++ b/examples/chain-template/components/common/Layout.tsx
@@ -0,0 +1,39 @@
+import Head from 'next/head';
+import { Box, useColorModeValue } from '@interchain-ui/react';
+
+import { Header } from './Header';
+import { Footer } from './Footer';
+import { Sidebar } from './Sidebar';
+import { useDisclosure } from '@/hooks';
+import styles from '@/styles/layout.module.css';
+
+export function Layout({ children }: { children: React.ReactNode }) {
+ const { isOpen, onOpen, onClose } = useDisclosure();
+
+ return (
+
+
+
+ Create Cosmos App
+
+
+
+
+
+
+ {children}
+
+
+
+
+ );
+}
diff --git a/examples/chain-template/components/common/Provider.tsx b/examples/chain-template/components/common/Provider.tsx
new file mode 100644
index 000000000..63e16911b
--- /dev/null
+++ b/examples/chain-template/components/common/Provider.tsx
@@ -0,0 +1,19 @@
+import { ThemeProvider, useTheme } from '@interchain-ui/react';
+import { darkTheme, lightTheme, CustomTheme } from '@/config';
+
+type CustomThemeProviderProps = {
+ children: React.ReactNode;
+};
+
+export const CustomThemeProvider = ({ children }: CustomThemeProviderProps) => {
+ const { theme } = useTheme();
+
+ return (
+
+ {children}
+
+ );
+};
diff --git a/examples/chain-template/components/common/Radio/Radio.module.css b/examples/chain-template/components/common/Radio/Radio.module.css
new file mode 100644
index 000000000..8fa12ba19
--- /dev/null
+++ b/examples/chain-template/components/common/Radio/Radio.module.css
@@ -0,0 +1,24 @@
+.radio {
+ margin: 0;
+ appearance: none;
+ width: 16px;
+ height: 16px;
+ border: 1px solid #dce2e9;
+ border-radius: 50%;
+ position: relative;
+ outline: none;
+ cursor: pointer;
+}
+
+.radio:checked {
+ border-color: #7310ff;
+ border-width: 4px;
+}
+
+.radioDark {
+ border-color: #6d7987;
+}
+
+.radioDark:checked {
+ border-color: #ab6fff;
+}
diff --git a/examples/chain-template/components/common/Radio/Radio.tsx b/examples/chain-template/components/common/Radio/Radio.tsx
new file mode 100644
index 000000000..ebba2a220
--- /dev/null
+++ b/examples/chain-template/components/common/Radio/Radio.tsx
@@ -0,0 +1,73 @@
+import { Box, Icon, IconName, Text, useTheme } from '@interchain-ui/react';
+import styles from './Radio.module.css';
+
+type RadioProps = {
+ children: React.ReactNode;
+ value: string;
+ icon?: IconName | React.ReactNode;
+ name?: string;
+ checked?: boolean;
+ onChange?: (event: React.ChangeEvent) => void;
+};
+
+export const Radio = ({
+ children,
+ value,
+ checked,
+ name,
+ icon,
+ onChange,
+}: RadioProps) => {
+ const { theme } = useTheme();
+
+ const checkedColor = theme === 'light' ? '$purple600' : '$purple400';
+ const textColor = checked ? checkedColor : '$blackAlpha600';
+ const borderColor = checked ? checkedColor : '$blackAlpha200';
+
+ return (
+
+
+
+ {typeof icon === 'string' ? (
+
+ ) : (
+ icon
+ )}
+
+
+ {children}
+
+
+ );
+};
diff --git a/examples/chain-template/components/common/Radio/RadioGroup.tsx b/examples/chain-template/components/common/Radio/RadioGroup.tsx
new file mode 100644
index 000000000..cc422ee00
--- /dev/null
+++ b/examples/chain-template/components/common/Radio/RadioGroup.tsx
@@ -0,0 +1,51 @@
+import { Box, BoxProps } from '@interchain-ui/react';
+import React, { useState, ReactNode, useEffect } from 'react';
+
+type RadioGroupProps = {
+ name: string;
+ children: ReactNode;
+ value?: string;
+ onChange?: (value: string) => void;
+ direction?: 'row' | 'column';
+ space?: BoxProps['gap'];
+};
+
+export const RadioGroup = ({
+ name,
+ children,
+ value,
+ onChange,
+ direction = 'column',
+ space = '10px',
+}: RadioGroupProps) => {
+ const [selectedValue, setSelectedValue] = useState(value || '');
+
+ useEffect(() => {
+ setSelectedValue(value || '');
+ }, [value]);
+
+ const handleChange = (event: React.ChangeEvent) => {
+ const newValue = event.target.value;
+ setSelectedValue(newValue);
+ if (onChange) {
+ onChange(newValue);
+ }
+ };
+
+ const clonedChildren = React.Children.map(children, (child) => {
+ if (React.isValidElement(child)) {
+ return React.cloneElement(child as React.ReactElement, {
+ name,
+ checked: child.props.value === selectedValue,
+ onChange: handleChange,
+ });
+ }
+ return child;
+ });
+
+ return (
+
+ {clonedChildren}
+
+ );
+};
diff --git a/examples/chain-template/components/common/Radio/index.ts b/examples/chain-template/components/common/Radio/index.ts
new file mode 100644
index 000000000..e047ad092
--- /dev/null
+++ b/examples/chain-template/components/common/Radio/index.ts
@@ -0,0 +1,2 @@
+export * from './Radio';
+export * from './RadioGroup';
diff --git a/examples/chain-template/components/common/Sidebar/NavItems.tsx b/examples/chain-template/components/common/Sidebar/NavItems.tsx
new file mode 100644
index 000000000..164234b2a
--- /dev/null
+++ b/examples/chain-template/components/common/Sidebar/NavItems.tsx
@@ -0,0 +1,104 @@
+import Link from 'next/link';
+import { useRouter } from 'next/router';
+import { Box, Icon, IconName, Stack, Text } from '@interchain-ui/react';
+import { RiHome7Line, RiStackLine } from 'react-icons/ri';
+import { MdOutlineWaterDrop, MdOutlineHowToVote } from 'react-icons/md';
+import { LuFileJson } from 'react-icons/lu';
+
+type NavIcon = IconName | JSX.Element;
+
+type NavItem = {
+ icon: NavIcon;
+ label: string;
+ href: string;
+};
+
+const navItems: NavItem[] = [
+ {
+ icon: ,
+ label: 'Home',
+ href: '/',
+ },
+ {
+ icon: ,
+ label: 'Staking',
+ href: '/staking',
+ },
+ {
+ icon: ,
+ label: 'Governance',
+ href: '/governance',
+ },
+ {
+ icon: 'coinsLine',
+ label: 'Asset List',
+ href: '/asset-list',
+ },
+ {
+ icon: ,
+ label: 'Faucet',
+ href: '/faucet',
+ },
+ {
+ icon: ,
+ label: 'Contract',
+ href: '/contract',
+ },
+ {
+ icon: 'document',
+ label: 'Docs',
+ href: '/docs',
+ },
+];
+
+const NavItem = ({
+ icon,
+ label,
+ href,
+ onClick,
+}: NavItem & { onClick?: () => void }) => {
+ const router = useRouter();
+
+ const isActive = router.pathname === href;
+
+ return (
+
+
+ {typeof icon === 'string' ? : icon}
+
+ {label}
+
+
+
+ );
+};
+
+export const NavItems = ({ onItemClick }: { onItemClick?: () => void }) => {
+ return (
+
+ {navItems.map(({ href, icon, label }) => (
+
+ ))}
+
+ );
+};
diff --git a/examples/chain-template/components/common/Sidebar/Sidebar.tsx b/examples/chain-template/components/common/Sidebar/Sidebar.tsx
new file mode 100644
index 000000000..16bf6fca7
--- /dev/null
+++ b/examples/chain-template/components/common/Sidebar/Sidebar.tsx
@@ -0,0 +1,80 @@
+import Image from 'next/image';
+import Link from 'next/link';
+import { Box, useColorModeValue } from '@interchain-ui/react';
+import { VscClose } from 'react-icons/vsc';
+
+import { Drawer } from '@/components';
+import { useDetectBreakpoints } from '@/hooks';
+import { SidebarContent } from './SidebarContent';
+
+type SidebarProps = {
+ isOpen: boolean;
+ onClose: () => void;
+};
+
+export const Sidebar = ({ isOpen, onClose }: SidebarProps) => {
+ const { isDesktop } = useDetectBreakpoints();
+
+ const brandLogoSrc = useColorModeValue(
+ '/logos/brand-logo.svg',
+ '/logos/brand-logo-dark.svg'
+ );
+
+ const desktopSidebar = (
+
+
+
+
+
+
+ );
+
+ const mobileSidebar = (
+
+
+
+
+
+
+
+
+ );
+
+ return isDesktop ? desktopSidebar : mobileSidebar;
+};
diff --git a/examples/chain-template/components/common/Sidebar/SidebarContent.tsx b/examples/chain-template/components/common/Sidebar/SidebarContent.tsx
new file mode 100644
index 000000000..94a1206f3
--- /dev/null
+++ b/examples/chain-template/components/common/Sidebar/SidebarContent.tsx
@@ -0,0 +1,127 @@
+import Image from 'next/image';
+import { useChain, useWalletClient } from '@cosmos-kit/react';
+import { Box, useColorModeValue, Text } from '@interchain-ui/react';
+import { MdOutlineAccountBalanceWallet } from 'react-icons/md';
+import { FiLogOut } from 'react-icons/fi';
+import { Keplr } from '@keplr-wallet/types';
+
+import { NavItems } from './NavItems';
+import { Button } from '@/components';
+import { useChainStore } from '@/contexts';
+import { makeKeplrChainInfo, shortenAddress } from '@/utils';
+import { useCopyToClipboard } from '@/hooks';
+
+export const SidebarContent = ({ onClose }: { onClose: () => void }) => {
+ const { selectedChain } = useChainStore();
+ const { isCopied, copyToClipboard } = useCopyToClipboard();
+
+ const {
+ connect,
+ disconnect,
+ address,
+ isWalletConnected,
+ wallet,
+ chain,
+ assets,
+ } = useChain(selectedChain);
+ const { client: keplrWallet } = useWalletClient('keplr-extension');
+
+ const poweredByLogoSrc = useColorModeValue(
+ '/logos/cosmology.svg',
+ '/logos/cosmology-dark.svg'
+ );
+
+ const handleConnect = async () => {
+ const chainInfo = makeKeplrChainInfo(chain, assets!.assets[0]);
+ try {
+ // @ts-ignore
+ await (keplrWallet?.client as Keplr)?.experimentalSuggestChain(chainInfo);
+ connect();
+ } catch (error) {
+ console.error(error);
+ }
+ };
+
+ return (
+
+
+
+ {isWalletConnected && address ? (
+
+
+ ) : (
+ 'checkboxCircle'
+ )
+ }
+ rightIcon={isCopied ? 'checkLine' : 'copy'}
+ iconColor={isCopied ? '$textSuccess' : 'inherit'}
+ iconSize="$lg"
+ onClick={() => copyToClipboard(address)}
+ >
+ {shortenAddress(address, 4)}
+
+ }
+ variant="outline"
+ px="10px"
+ borderLeftWidth={0}
+ borderTopLeftRadius={0}
+ borderBottomLeftRadius={0}
+ onClick={disconnect}
+ />
+
+ ) : (
+ }
+ onClick={handleConnect}
+ >
+ Connect Wallet
+
+ )}
+
+
+ Powered by
+
+
+
+
+
+ );
+};
diff --git a/examples/chain-template/components/common/Sidebar/index.ts b/examples/chain-template/components/common/Sidebar/index.ts
new file mode 100644
index 000000000..c167c49f6
--- /dev/null
+++ b/examples/chain-template/components/common/Sidebar/index.ts
@@ -0,0 +1 @@
+export * from './Sidebar';
diff --git a/examples/chain-template/components/common/Stepper.tsx b/examples/chain-template/components/common/Stepper.tsx
new file mode 100644
index 000000000..a566e388b
--- /dev/null
+++ b/examples/chain-template/components/common/Stepper.tsx
@@ -0,0 +1,101 @@
+import { Box, Text, Icon } from '@interchain-ui/react';
+
+const STEP_INDICATOR_SIZE = 40;
+const STEP_SEPARATOR_WIDTH = 2;
+const STEP_SEPARATOR_OFFSET =
+ STEP_INDICATOR_SIZE / 2 - STEP_SEPARATOR_WIDTH / 2;
+
+const Status = {
+ DONE: 'done',
+ DOING: 'doing',
+ TODO: 'todo',
+} as const;
+
+type Status = (typeof Status)[keyof typeof Status];
+
+type StepperProps = {
+ steps: string[];
+ activeStep: number;
+ direction?: 'row' | 'column';
+};
+
+const getSeparatorStyles = (direction: 'row' | 'column', status: Status) => {
+ const isColumn = direction === 'column';
+ const isDone = status === Status.DONE;
+
+ const commonStyles = {
+ backgroundColor: isDone ? '$purple400' : '$blackAlpha300',
+ };
+
+ const directionStyles = isColumn
+ ? {
+ width: `${STEP_SEPARATOR_WIDTH}px`,
+ height: '30px',
+ ml: `${STEP_SEPARATOR_OFFSET}px`,
+ my: '4px',
+ }
+ : {
+ width: '30px',
+ height: `${STEP_SEPARATOR_WIDTH}px`,
+ mt: `${STEP_SEPARATOR_OFFSET}px`,
+ mx: '4px',
+ };
+
+ return { ...commonStyles, ...directionStyles };
+};
+
+export const Stepper: React.FC = ({
+ steps,
+ activeStep,
+ direction = 'column',
+}) => {
+ return (
+
+ {steps.map((step, index) => {
+ const status: Status =
+ index < activeStep
+ ? Status.DONE
+ : index === activeStep
+ ? Status.DOING
+ : Status.TODO;
+
+ return (
+
+
+
+ {status === Status.DONE ? (
+
+ ) : (
+
+ {index + 1}
+
+ )}
+
+
+ {step}
+
+
+ {index < steps.length - 1 && (
+
+ )}
+
+ );
+ })}
+
+ );
+};
diff --git a/examples/chain-template/components/common/Table.tsx b/examples/chain-template/components/common/Table.tsx
new file mode 100644
index 000000000..7750ac213
--- /dev/null
+++ b/examples/chain-template/components/common/Table.tsx
@@ -0,0 +1,66 @@
+import { Box, BoxProps, useColorModeValue } from '@interchain-ui/react';
+
+const Table = (props: BoxProps) => {
+ return ;
+};
+
+const TableHeader = (props: BoxProps) => {
+ return ;
+};
+
+const TableBody = (props: BoxProps) => {
+ return ;
+};
+
+const TableRow = ({
+ hasHover = false,
+ ...props
+}: BoxProps & { hasHover?: boolean }) => {
+ const bgHoverColor = useColorModeValue('$blackAlpha100', '$whiteAlpha100');
+
+ return (
+
+ );
+};
+
+const TableHeaderCell = (props: BoxProps) => {
+ return (
+
+ );
+};
+
+const TableCell = (props: BoxProps) => {
+ return (
+
+ );
+};
+
+Table.Header = TableHeader;
+Table.HeaderCell = TableHeaderCell;
+Table.Body = TableBody;
+Table.Row = TableRow;
+Table.Cell = TableCell;
+
+export { Table };
diff --git a/examples/chain-template/components/common/Wallet/Connected.tsx b/examples/chain-template/components/common/Wallet/Connected.tsx
new file mode 100644
index 000000000..2347bc539
--- /dev/null
+++ b/examples/chain-template/components/common/Wallet/Connected.tsx
@@ -0,0 +1,88 @@
+import Image from 'next/image';
+import { Box, Icon, Text, useColorModeValue } from '@interchain-ui/react';
+import { FiLogOut } from 'react-icons/fi';
+import { ChainWalletBase } from '@cosmos-kit/core';
+
+import { darkColors, lightColors } from '@/config';
+import { useCopyToClipboard } from '@/hooks';
+import { getWalletLogo, shortenAddress } from '@/utils';
+
+export const Connected = ({
+ selectedWallet,
+ clearSelectedWallet,
+}: {
+ selectedWallet: ChainWalletBase;
+ clearSelectedWallet: () => void;
+}) => {
+ const { walletInfo, disconnect, address } = selectedWallet;
+
+ const { isCopied, copyToClipboard } = useCopyToClipboard();
+
+ const boxShadowColor = useColorModeValue(
+ lightColors?.blackAlpha200 as string,
+ darkColors?.blackAlpha200 as string
+ );
+
+ if (!address) return null;
+
+ return (
+
+
+ {walletInfo && (
+
+ )}
+
+ {shortenAddress(address)}
+
+
+ copyToClipboard(address) }}
+ >
+
+
+ {
+ clearSelectedWallet();
+ disconnect();
+ },
+ }}
+ >
+
+
+
+ );
+};
diff --git a/examples/chain-template/components/common/Wallet/Connecting.tsx b/examples/chain-template/components/common/Wallet/Connecting.tsx
new file mode 100644
index 000000000..66f38feea
--- /dev/null
+++ b/examples/chain-template/components/common/Wallet/Connecting.tsx
@@ -0,0 +1,183 @@
+import Link from 'next/link';
+import Image from 'next/image';
+import { useMemo } from 'react';
+import { Box, Icon, Text, useColorModeValue } from '@interchain-ui/react';
+import { ChainWalletBase, WalletStatus } from '@cosmos-kit/core';
+
+import { darkColors, lightColors } from '@/config';
+import { getWalletLogo } from '@/utils';
+import { RingLoader } from './RingLoader';
+import { Button } from '../Button';
+
+export const Connecting = ({
+ selectedWallet,
+ clearSelectedWallet,
+}: {
+ selectedWallet: ChainWalletBase;
+ clearSelectedWallet: () => void;
+}) => {
+ const { walletInfo, downloadInfo, message, walletStatus } = selectedWallet;
+
+ const content = useMemo(() => {
+ if (walletStatus === WalletStatus.NotExist) {
+ return (
+ <>
+
+ {walletInfo.prettyName} Not Installed
+ {downloadInfo?.link && (
+
+
+
+ )}
+ >
+ );
+ }
+
+ if (walletStatus === WalletStatus.Connecting) {
+ return (
+ <>
+
+ Requesting Connection
+ >
+ );
+ }
+
+ if (walletStatus === WalletStatus.Rejected) {
+ return (
+ <>
+
+ Request Rejected
+ >
+ );
+ }
+
+ return (
+ <>
+
+ Connection Error
+ {message && {message}}
+ >
+ );
+ }, [walletInfo, walletStatus, message]);
+
+ const boxShadowColor = useColorModeValue(
+ lightColors?.blackAlpha200 as string,
+ darkColors?.blackAlpha200 as string
+ );
+
+ return (
+
+
+
+
+
+
+ {walletInfo.prettyName}
+
+
+
+ {content}
+
+ );
+};
+
+const StatusText = ({ children }: { children: React.ReactNode }) => {
+ return (
+
+ {children}
+
+ );
+};
+
+const StatusDescription = ({ children }: { children: React.ReactNode }) => {
+ return (
+
+ {children}
+
+ );
+};
+
+const WalletLogoWithRing = ({
+ wallet,
+ intent,
+}: {
+ wallet: ChainWalletBase['walletInfo'];
+ intent: 'connecting' | 'warning';
+}) => {
+ const isConnecting = intent === 'connecting';
+
+ return (
+
+
+
+
+ {!isConnecting && (
+
+
+ !
+
+
+ )}
+
+ );
+};
diff --git a/examples/chain-template/components/common/Wallet/RingLoader/RingLoader.tsx b/examples/chain-template/components/common/Wallet/RingLoader/RingLoader.tsx
new file mode 100644
index 000000000..1a606b4d9
--- /dev/null
+++ b/examples/chain-template/components/common/Wallet/RingLoader/RingLoader.tsx
@@ -0,0 +1,60 @@
+import React, { ReactNode } from 'react';
+import styles from './ring.module.css';
+
+interface RingLoaderProps {
+ angle?: number;
+ radius?: number;
+ strokeWidth?: number;
+ strokeColor?: string;
+ children?: ReactNode;
+ isSpinning?: boolean;
+}
+
+export const RingLoader: React.FC = ({
+ angle = 360,
+ radius = 50,
+ strokeWidth = 2,
+ strokeColor = 'currentColor',
+ children,
+ isSpinning = true,
+}) => {
+ const circumference = 2 * Math.PI * radius;
+ const visibleStrokeLength = (angle / 360) * circumference;
+ const gapLength = circumference - visibleStrokeLength;
+
+ return (
+
+ );
+};
diff --git a/examples/chain-template/components/common/Wallet/RingLoader/index.ts b/examples/chain-template/components/common/Wallet/RingLoader/index.ts
new file mode 100644
index 000000000..4772eaa69
--- /dev/null
+++ b/examples/chain-template/components/common/Wallet/RingLoader/index.ts
@@ -0,0 +1 @@
+export * from './RingLoader';
diff --git a/examples/chain-template/components/common/Wallet/RingLoader/ring.module.css b/examples/chain-template/components/common/Wallet/RingLoader/ring.module.css
new file mode 100644
index 000000000..374cad1c1
--- /dev/null
+++ b/examples/chain-template/components/common/Wallet/RingLoader/ring.module.css
@@ -0,0 +1,13 @@
+.ringLoader {
+ transform-origin: 50% 50%;
+ animation: rotate-ring 2s linear infinite;
+}
+
+@keyframes rotate-ring {
+ from {
+ transform: rotate(0deg);
+ }
+ to {
+ transform: rotate(360deg);
+ }
+}
diff --git a/examples/chain-template/components/common/Wallet/SelectWallet.tsx b/examples/chain-template/components/common/Wallet/SelectWallet.tsx
new file mode 100644
index 000000000..17a0a2207
--- /dev/null
+++ b/examples/chain-template/components/common/Wallet/SelectWallet.tsx
@@ -0,0 +1,83 @@
+import Image from 'next/image';
+import { Dispatch, SetStateAction } from 'react';
+import { MainWalletBase, ChainWalletBase } from '@cosmos-kit/core';
+import { Box, Text, useColorModeValue } from '@interchain-ui/react';
+import { Keplr } from '@keplr-wallet/types';
+
+import { darkColors, lightColors, wallets } from '@/config';
+import { getWalletLogo, makeKeplrChainInfo } from '@/utils';
+import { useChainStore } from '@/contexts';
+
+export const SelectWallet = ({
+ setSelectedWallet,
+}: {
+ setSelectedWallet: Dispatch>;
+}) => {
+ const { selectedChain } = useChainStore();
+
+ const handleSelectWallet = (wallet: MainWalletBase) => async () => {
+ const chainWallet = wallet.getChainWallet(selectedChain)!;
+ const { chain, assets, connect, client } = chainWallet;
+ const chainInfo = makeKeplrChainInfo(chain, assets[0]);
+
+ try {
+ if (wallet.walletName.startsWith('keplr')) {
+ // @ts-ignore
+ await (client?.client as Keplr).experimentalSuggestChain(chainInfo);
+ }
+ connect();
+ setTimeout(() => {
+ setSelectedWallet(chainWallet);
+ }, 100);
+ } catch (error) {
+ console.error(error);
+ }
+ };
+
+ const boxShadowColor = useColorModeValue(
+ lightColors?.blackAlpha200 as string,
+ darkColors?.blackAlpha200 as string
+ );
+
+ return (
+
+ {wallets.map((w) => (
+
+
+ {w.walletPrettyName}
+
+
+
+ ))}
+
+ );
+};
diff --git a/examples/chain-template/components/common/Wallet/WalletConnect.tsx b/examples/chain-template/components/common/Wallet/WalletConnect.tsx
new file mode 100644
index 000000000..bb614e302
--- /dev/null
+++ b/examples/chain-template/components/common/Wallet/WalletConnect.tsx
@@ -0,0 +1,41 @@
+import { useState } from 'react';
+import { useChain } from '@cosmos-kit/react';
+import { ChainWalletBase } from '@cosmos-kit/core';
+
+import { useChainStore } from '@/contexts';
+import { Connected } from './Connected';
+import { Connecting } from './Connecting';
+import { SelectWallet } from './SelectWallet';
+import { wallets } from '@/config';
+
+export const WalletConnect = () => {
+ const { selectedChain } = useChainStore();
+ const { wallet } = useChain(selectedChain);
+
+ const currentWallet = wallets.find((w) => w.walletName === wallet?.name);
+ const chainWallet = currentWallet?.getChainWallet(selectedChain);
+
+ const [selectedWallet, setSelectedWallet] = useState(
+ chainWallet?.isWalletConnected ? chainWallet : null
+ );
+
+ if (selectedWallet && selectedWallet.isWalletConnected) {
+ return (
+ setSelectedWallet(null)}
+ />
+ );
+ }
+
+ if (selectedWallet) {
+ return (
+ setSelectedWallet(null)}
+ />
+ );
+ }
+
+ return ;
+};
diff --git a/examples/chain-template/components/common/Wallet/index.ts b/examples/chain-template/components/common/Wallet/index.ts
new file mode 100644
index 000000000..18f63d3e4
--- /dev/null
+++ b/examples/chain-template/components/common/Wallet/index.ts
@@ -0,0 +1 @@
+export * from './WalletConnect';
diff --git a/examples/chain-template/components/common/index.tsx b/examples/chain-template/components/common/index.tsx
new file mode 100644
index 000000000..ddec21e86
--- /dev/null
+++ b/examples/chain-template/components/common/index.tsx
@@ -0,0 +1,8 @@
+export * from './Layout';
+export * from './Button';
+export * from './Drawer';
+export * from './Wallet';
+export * from './Radio';
+export * from './Table';
+export * from './Provider';
+export * from './Stepper';
diff --git a/examples/chain-template/components/contract/AttachFundsRadio.tsx b/examples/chain-template/components/contract/AttachFundsRadio.tsx
new file mode 100644
index 000000000..9ff349279
--- /dev/null
+++ b/examples/chain-template/components/contract/AttachFundsRadio.tsx
@@ -0,0 +1,148 @@
+import { useEffect, useMemo, useState } from 'react';
+import { Coin } from '@cosmjs/amino';
+import { Box } from '@interchain-ui/react';
+import { Asset } from '@chain-registry/types';
+import BigNumber from 'bignumber.js';
+import { TbCurrencyDollarOff } from 'react-icons/tb';
+import { LuListPlus } from 'react-icons/lu';
+import { VscJson } from 'react-icons/vsc';
+
+import { JsonInput } from './JsonInput';
+import { SelectAssetContent } from './SelectAssetContent';
+import { getExponentFromAsset, prettifyJson } from '@/utils';
+import { Radio, RadioGroup } from '../common';
+
+const defaultAssetListJson = prettifyJson(
+ JSON.stringify([{ denom: '', amount: '' }]),
+);
+
+export type SelectedAssetWithAmount = {
+ asset: Asset | undefined;
+ amount: string;
+};
+
+export const defaultSelectedAsset: SelectedAssetWithAmount = {
+ asset: undefined,
+ amount: '',
+};
+
+export type FundsOptionKey = 'no_funds' | 'select_assets' | 'json_asset_list';
+
+type FundsOption = {
+ key: FundsOptionKey;
+ icon: React.ReactNode;
+ label: string;
+ content: React.ReactNode;
+};
+
+type AttachFundsRadioProps = {
+ setFunds: (funds: Coin[]) => void;
+ setIsAssetListJsonValid: (isValid: boolean) => void;
+ direction?: 'row' | 'column';
+};
+
+export const AttachFundsRadio = ({
+ setFunds,
+ setIsAssetListJsonValid,
+ direction = 'row',
+}: AttachFundsRadioProps) => {
+ const [selectedOptionKey, setSelectedOptionKey] =
+ useState('no_funds');
+ const [assetListJson, setAssetListJson] = useState(defaultAssetListJson);
+ const [selectedAssetsWithAmount, setSelectedAssetsWithAmount] = useState<
+ SelectedAssetWithAmount[]
+ >([defaultSelectedAsset]);
+
+ const fundsOptionsMap: Record = useMemo(() => {
+ return {
+ no_funds: {
+ key: 'no_funds',
+ label: 'No funds attached',
+ icon: ,
+ content: null,
+ },
+ select_assets: {
+ key: 'select_assets',
+ label: 'Select assets',
+ icon: ,
+ content: (
+
+ ),
+ },
+ json_asset_list: {
+ key: 'json_asset_list',
+ label: 'JSON asset list',
+ icon: ,
+ content: (
+
+ ),
+ },
+ };
+ }, [selectedAssetsWithAmount, assetListJson]);
+
+ useEffect(() => {
+ setIsAssetListJsonValid(true);
+
+ if (selectedOptionKey === 'no_funds') {
+ setFunds([]);
+ }
+
+ if (selectedOptionKey === 'select_assets') {
+ const funds = selectedAssetsWithAmount
+ .filter(({ asset, amount }) => asset && amount)
+ .map(({ asset, amount }) => ({
+ denom: asset!.base,
+ amount: BigNumber(amount)
+ .shiftedBy(getExponentFromAsset(asset!) ?? 6)
+ .toString(),
+ }));
+
+ setFunds(funds);
+ }
+
+ if (selectedOptionKey === 'json_asset_list') {
+ try {
+ const parsedJson = JSON.parse(assetListJson);
+ setFunds(parsedJson);
+ } catch (e) {
+ setFunds([]);
+ setIsAssetListJsonValid(false);
+ }
+ }
+ }, [selectedOptionKey, selectedAssetsWithAmount, assetListJson]);
+
+ const optionContent = fundsOptionsMap[selectedOptionKey].content;
+
+ return (
+
+ {
+ setSelectedOptionKey(val as FundsOptionKey);
+ }}
+ >
+ {Object.values(fundsOptionsMap).map(({ key, label, icon }) => (
+
+ {label}
+
+ ))}
+
+
+ {optionContent}
+
+ );
+};
diff --git a/examples/chain-template/components/contract/BackButton.tsx b/examples/chain-template/components/contract/BackButton.tsx
new file mode 100644
index 000000000..03f83193d
--- /dev/null
+++ b/examples/chain-template/components/contract/BackButton.tsx
@@ -0,0 +1,22 @@
+import { Box, Icon, Text } from '@interchain-ui/react';
+
+export const BackButton = ({ onClick }: { onClick: () => void }) => {
+ return (
+
+
+
+ Back
+
+
+ );
+};
diff --git a/examples/chain-template/components/contract/CodeIdField.tsx b/examples/chain-template/components/contract/CodeIdField.tsx
new file mode 100644
index 000000000..3e2942745
--- /dev/null
+++ b/examples/chain-template/components/contract/CodeIdField.tsx
@@ -0,0 +1,110 @@
+import { useEffect, useState } from 'react';
+import { Box, Icon, Spinner, TextField } from '@interchain-ui/react';
+import { useChain } from '@cosmos-kit/react';
+
+import { InputField } from './InputField';
+import { useCodeDetails } from '@/hooks';
+import { useChainStore } from '@/contexts';
+import { CodeInfo, isValidCodeId, resolvePermission } from '@/utils';
+
+export type InputStatus = {
+ state: 'init' | 'loading' | 'success' | 'error';
+ message?: string;
+};
+
+export const CodeIdField = ({
+ codeId,
+ setCodeId,
+ setCodeInfo,
+ readonly = false,
+ defaultCodeId,
+}: {
+ codeId: string;
+ setCodeId: (codeId: string) => void;
+ setCodeInfo: (codeInfo: CodeInfo | undefined) => void;
+ readonly?: boolean;
+ defaultCodeId?: string;
+}) => {
+ const [status, setStatus] = useState({ state: 'init' });
+
+ const { selectedChain } = useChainStore();
+ const { address } = useChain(selectedChain);
+ const { refetch } = useCodeDetails(Number(codeId), false);
+
+ useEffect(() => {
+ if (defaultCodeId) {
+ setCodeId(defaultCodeId);
+ }
+ }, [defaultCodeId]);
+
+ useEffect(() => {
+ setStatus({ state: 'init' });
+ setCodeInfo(undefined);
+ if (codeId.length) {
+ if (!isValidCodeId(codeId)) {
+ return setStatus({ state: 'error', message: 'Invalid Code ID' });
+ }
+
+ setStatus({ state: 'loading' });
+
+ const timer = setTimeout(() => {
+ refetch().then(({ data }) => {
+ setCodeInfo(data);
+
+ if (!data) {
+ return setStatus({
+ state: 'error',
+ message: 'This code ID does not exist',
+ });
+ }
+
+ const hasPermission = resolvePermission(
+ address || '',
+ data.permission,
+ data.addresses,
+ );
+
+ hasPermission
+ ? setStatus({ state: 'success' })
+ : setStatus({
+ state: 'error',
+ message:
+ 'This wallet does not have permission to instantiate this code',
+ });
+ });
+ }, 500);
+
+ return () => clearTimeout(timer);
+ }
+ }, [codeId, refetch]);
+
+ return (
+
+
+ setCodeId(e.target.value)}
+ readonly={readonly}
+ />
+ {codeId.length > 0 && (
+
+ {status.state === 'loading' && (
+
+ )}
+ {status.state === 'success' && (
+
+ )}
+
+ )}
+
+
+ {status?.message || 'Enter the ID of an existing Code'}
+
+
+ );
+};
diff --git a/examples/chain-template/components/contract/ContractAddressField.tsx b/examples/chain-template/components/contract/ContractAddressField.tsx
new file mode 100644
index 000000000..e5921a967
--- /dev/null
+++ b/examples/chain-template/components/contract/ContractAddressField.tsx
@@ -0,0 +1,187 @@
+import { useEffect, useRef, useState } from 'react';
+import { useChain } from '@cosmos-kit/react';
+import {
+ Box,
+ Combobox,
+ Icon,
+ Spinner,
+ Text,
+ TextProps,
+} from '@interchain-ui/react';
+
+import { InputField } from './InputField';
+import { useContractInfo, useDetectBreakpoints, useMyContracts } from '@/hooks';
+import { shortenAddress, validateContractAddress } from '@/utils';
+import { InputStatus } from './CodeIdField';
+import { useChainStore } from '@/contexts';
+
+type StatusDisplay = {
+ icon?: React.ReactNode;
+ text?: string;
+ textColor?: TextProps['color'];
+};
+
+const displayStatus = (status: InputStatus) => {
+ const statusMap: Record = {
+ loading: {
+ icon: ,
+ text: 'Checking contract address...',
+ textColor: '$textSecondary',
+ },
+
+ success: {
+ icon: ,
+ text: 'Valid contract address',
+ textColor: '$text',
+ },
+
+ error: {
+ icon: ,
+ text: status.message || 'Invalid contract address',
+ textColor: '$textDanger',
+ },
+
+ init: {},
+ };
+
+ return statusMap[status.state];
+};
+
+type ContractAddressFieldProps = {
+ addressValue?: string;
+ onAddressInput?: (input: string) => void;
+ onValidAddressChange?: (address: string) => void;
+};
+
+export const ContractAddressField = ({
+ addressValue,
+ onAddressInput,
+ onValidAddressChange,
+}: ContractAddressFieldProps) => {
+ const [input, setInput] = useState('');
+ const [status, setStatus] = useState({ state: 'init' });
+ const [fieldWidth, setFieldWidth] = useState('560px');
+ const containerRef = useRef(null);
+ const prevInputRef = useRef('');
+
+ const { selectedChain } = useChainStore();
+ const { chain } = useChain(selectedChain);
+ const { refetch: fetchContractInfo } = useContractInfo({
+ contractAddress: input,
+ enabled: false,
+ });
+ const { data: myContracts = [] } = useMyContracts();
+
+ useEffect(() => {
+ const updateWidth = () => {
+ const newWidth = containerRef.current?.clientWidth;
+ if (newWidth) {
+ setFieldWidth(`${newWidth}px`);
+ }
+ };
+
+ updateWidth();
+
+ const resizeObserver = new ResizeObserver(updateWidth);
+ if (containerRef.current) {
+ resizeObserver.observe(containerRef.current);
+ }
+
+ return () => {
+ if (containerRef.current) {
+ resizeObserver.unobserve(containerRef.current);
+ }
+ resizeObserver.disconnect();
+ };
+ }, []);
+
+ useEffect(() => {
+ if (!addressValue || prevInputRef.current === addressValue) return;
+ setInput(addressValue);
+ onAddressInput?.(addressValue);
+ }, [addressValue]);
+
+ useEffect(() => {
+ if (prevInputRef.current === input) return;
+
+ prevInputRef.current = input;
+
+ setStatus({ state: 'init' });
+ onValidAddressChange?.('');
+
+ if (input.length) {
+ const error = validateContractAddress(input, chain.bech32_prefix);
+
+ if (error) {
+ return setStatus({ state: 'error', message: error });
+ }
+
+ setStatus({ state: 'loading' });
+
+ const timer = setTimeout(() => {
+ fetchContractInfo().then(({ data }) => {
+ if (!data) {
+ return setStatus({
+ state: 'error',
+ message: 'This contract does not exist',
+ });
+ }
+
+ setStatus({ state: 'success' });
+ onValidAddressChange?.(input);
+ });
+ }, 500);
+
+ return () => clearTimeout(timer);
+ }
+ }, [input, fetchContractInfo, chain.bech32_prefix]);
+
+ const { icon, text, textColor } = displayStatus(status);
+
+ const { isMobile } = useDetectBreakpoints();
+
+ return (
+
+
+ {
+ setInput(input);
+ onAddressInput?.(input);
+ }}
+ onSelectionChange={(value) => {
+ if (value) {
+ setInput(value as string);
+ onAddressInput?.(value as string);
+ }
+ }}
+ styleProps={{ width: fieldWidth }}
+ >
+ {myContracts.map(({ address, contractInfo }) => (
+
+
+
+ {`${shortenAddress(address, isMobile ? 8 : 18)} (`}
+
+ {`${contractInfo?.label || 'Unnamed'}`}
+
+ {')'}
+
+
+
+ ))}
+
+ {status.state !== 'init' && (
+
+ {icon}
+
+ {text}
+
+
+ )}
+
+
+ );
+};
diff --git a/examples/chain-template/components/contract/CreateFromCodeId.tsx b/examples/chain-template/components/contract/CreateFromCodeId.tsx
new file mode 100644
index 000000000..c58d54a4d
--- /dev/null
+++ b/examples/chain-template/components/contract/CreateFromCodeId.tsx
@@ -0,0 +1,28 @@
+import { Box } from '@interchain-ui/react';
+
+import { BackButton } from './BackButton';
+import { InstantiateContract } from './InstantiateContract';
+import { useDetectBreakpoints } from '@/hooks';
+
+type CreateFromCodeIdProps = {
+ onBack: () => void;
+ switchTab: (addressValue: string, tabId: number) => void;
+};
+
+export const CreateFromCodeId = ({
+ onBack,
+ switchTab,
+}: CreateFromCodeIdProps) => {
+ const { isTablet } = useDetectBreakpoints();
+
+ return (
+
+
+
+
+
+
+
+
+ );
+};
diff --git a/examples/chain-template/components/contract/CreateFromUpload.tsx b/examples/chain-template/components/contract/CreateFromUpload.tsx
new file mode 100644
index 000000000..2d3eefcfb
--- /dev/null
+++ b/examples/chain-template/components/contract/CreateFromUpload.tsx
@@ -0,0 +1,83 @@
+import { useState } from 'react';
+import { Box } from '@interchain-ui/react';
+
+import { UploadContract } from './UploadContract';
+import { BackButton } from './BackButton';
+import { Stepper } from '../common';
+import { InstantiateContract } from './InstantiateContract';
+import { useDetectBreakpoints } from '@/hooks';
+
+type CreateFromUploadProps = {
+ onBack: () => void;
+ switchTab: (addressValue: string, tabId: number) => void;
+};
+
+enum Step {
+ Upload = 'Upload',
+ Instantiate = 'Instantiate',
+}
+
+const steps = [Step.Upload, Step.Instantiate];
+
+export const CreateFromUpload = ({
+ onBack,
+ switchTab,
+}: CreateFromUploadProps) => {
+ const [activeStepName, setActiveStepName] = useState(Step.Upload);
+ const [completed, setCompleted] = useState(false);
+ const [codeId, setCodeId] = useState();
+
+ const nextStep = () => {
+ const currentIndex = steps.indexOf(activeStepName);
+ if (currentIndex < steps.length - 1) {
+ setActiveStepName(steps[currentIndex + 1]);
+ } else {
+ setCompleted(true);
+ }
+ };
+
+ const { isTablet } = useDetectBreakpoints();
+
+ return (
+
+
+
+
+
+
+
+
+ {
+ setCodeId(codeId);
+ nextStep();
+ }}
+ />
+ {
+ setCompleted(false);
+ setActiveStepName(Step.Upload);
+ }}
+ onViewMyContracts={onBack}
+ />
+
+
+ );
+};
diff --git a/examples/chain-template/components/contract/EmptyState.tsx b/examples/chain-template/components/contract/EmptyState.tsx
new file mode 100644
index 000000000..eab98f756
--- /dev/null
+++ b/examples/chain-template/components/contract/EmptyState.tsx
@@ -0,0 +1,17 @@
+import Image from 'next/image';
+import { Box, Text } from '@interchain-ui/react';
+
+export const EmptyState = ({ text }: { text: string }) => (
+
+
+
+ {text}
+
+
+);
diff --git a/examples/chain-template/components/contract/ExecuteTab.tsx b/examples/chain-template/components/contract/ExecuteTab.tsx
new file mode 100644
index 000000000..9d34b4ec3
--- /dev/null
+++ b/examples/chain-template/components/contract/ExecuteTab.tsx
@@ -0,0 +1,118 @@
+import { useMemo, useState } from 'react';
+import { Box, Text } from '@interchain-ui/react';
+import { useChain } from '@cosmos-kit/react';
+import { Coin } from '@cosmjs/amino';
+
+import { ContractAddressField } from './ContractAddressField';
+import { InputField } from './InputField';
+import { JsonInput } from './JsonInput';
+import { AttachFundsRadio } from './AttachFundsRadio';
+import { Button } from '../common';
+import { useChainStore } from '@/contexts';
+import { useDetectBreakpoints, useExecuteContractTx } from '@/hooks';
+import { validateJson } from '@/utils';
+
+const INPUT_LINES = 12;
+
+type ExecuteTabProps = {
+ show: boolean;
+ addressValue: string;
+ onAddressInput: (input: string) => void;
+};
+
+export const ExecuteTab = ({
+ show,
+ addressValue,
+ onAddressInput,
+}: ExecuteTabProps) => {
+ const [contractAddress, setContractAddress] = useState('');
+ const [isLoading, setIsLoading] = useState(false);
+ const [executeMsg, setExecuteMsg] = useState('');
+ const [funds, setFunds] = useState([]);
+ const [isAssetListJsonValid, setIsAssetListJsonValid] = useState(true);
+
+ const { selectedChain } = useChainStore();
+ const { address, connect } = useChain(selectedChain);
+ const { executeTx } = useExecuteContractTx(selectedChain);
+
+ const handleExecuteMsg = () => {
+ if (!address) {
+ connect();
+ return;
+ }
+
+ setIsLoading(true);
+
+ executeTx({
+ msg: JSON.parse(executeMsg),
+ address,
+ contractAddress,
+ fee: { amount: [], gas: '200000' },
+ funds,
+ onTxSucceed: () => setIsLoading(false),
+ onTxFailed: () => setIsLoading(false),
+ });
+ };
+
+ const isMsgValid = validateJson(executeMsg) === null;
+
+ const buttonText = useMemo(() => {
+ if (!address) return 'Connect Wallet';
+ return 'Execute';
+ }, [address]);
+
+ const isButtonDisabled = useMemo(() => {
+ if (!address) return false;
+ return !contractAddress || !isMsgValid || !isAssetListJsonValid;
+ }, [address, contractAddress, isMsgValid, isAssetListJsonValid]);
+
+ const { isMobile } = useDetectBreakpoints();
+
+ return (
+
+
+ Execute Contract
+
+
+
+
+
+
+
+
+
+
+ );
+};
diff --git a/examples/chain-template/components/contract/InputField.tsx b/examples/chain-template/components/contract/InputField.tsx
new file mode 100644
index 000000000..06baf8013
--- /dev/null
+++ b/examples/chain-template/components/contract/InputField.tsx
@@ -0,0 +1,47 @@
+import { Box, Text } from '@interchain-ui/react';
+
+const InputField = ({
+ children,
+ title,
+ required = false,
+}: {
+ title: string;
+ children: React.ReactNode;
+ required?: boolean;
+}) => {
+ return (
+
+
+ {title}{' '}
+ {required && (
+
+ *
+
+ )}
+
+ {children}
+
+ );
+};
+
+const Description = ({
+ children,
+ intent = 'default',
+}: {
+ children: string;
+ intent?: 'error' | 'default';
+}) => {
+ return (
+
+ {children}
+
+ );
+};
+
+InputField.Description = Description;
+
+export { InputField };
diff --git a/examples/chain-template/components/contract/InstantiateContract.tsx b/examples/chain-template/components/contract/InstantiateContract.tsx
new file mode 100644
index 000000000..c87e8a5a6
--- /dev/null
+++ b/examples/chain-template/components/contract/InstantiateContract.tsx
@@ -0,0 +1,319 @@
+import { useState } from 'react';
+import {
+ Box,
+ Divider,
+ Text,
+ TextField,
+ TextFieldAddon,
+} from '@interchain-ui/react';
+import { Coin } from '@cosmjs/stargate';
+import { IoChevronDown } from 'react-icons/io5';
+import { useChain } from '@cosmos-kit/react';
+import { InstantiateResult } from '@cosmjs/cosmwasm-stargate';
+
+import { CodeIdField } from './CodeIdField';
+import {
+ CodeInfo,
+ resolvePermission,
+ shortenAddress,
+ validateChainAddress,
+} from '@/utils';
+import { InputField } from './InputField';
+import { JsonInput } from './JsonInput';
+import { useChainStore } from '@/contexts';
+import { AttachFundsRadio } from './AttachFundsRadio';
+import { Button } from '../common';
+import {
+ useDetectBreakpoints,
+ useInstantiateTx,
+ useMyContracts,
+} from '@/hooks';
+import { TxInfoItem, TxSuccessCard } from './TxSuccessCard';
+import { TabLabel } from '@/pages/contract';
+import styles from '@/styles/comp.module.css';
+
+type InstantiateContractProps = {
+ show?: boolean;
+ switchTab?: (addressValue: string, tabId: number) => void;
+ onSuccess?: () => void;
+ defaultCodeId?: string;
+ onCreateNewContract?: () => void;
+ onViewMyContracts?: () => void;
+};
+
+export const InstantiateContract = ({
+ show = true,
+ onSuccess,
+ switchTab,
+ defaultCodeId,
+ onCreateNewContract,
+ onViewMyContracts,
+}: InstantiateContractProps) => {
+ const [codeId, setCodeId] = useState('');
+ const [codeInfo, setCodeInfo] = useState();
+ const [label, setLabel] = useState('');
+ const [initMsg, setInitMsg] = useState('');
+ const [adminAddress, setAdminAddress] = useState('');
+ const [funds, setFunds] = useState([]);
+ const [isAssetListJsonValid, setIsAssetListJsonValid] = useState(true);
+ const [isShowMore, setIsShowMore] = useState(false);
+ const [isLoading, setIsLoading] = useState(false);
+ const [txResult, setTxResult] = useState();
+
+ const { selectedChain } = useChainStore();
+ const { address, chain } = useChain(selectedChain);
+ const { instantiateTx } = useInstantiateTx(selectedChain);
+ const { refetch: updateMyContracts } = useMyContracts();
+
+ const handleInstantiate = () => {
+ if (!address || !codeInfo) return;
+
+ setIsLoading(true);
+
+ instantiateTx({
+ address,
+ codeId: codeInfo.id,
+ initMsg: JSON.parse(initMsg),
+ label,
+ admin: adminAddress,
+ funds,
+ onTxSucceed: (txInfo) => {
+ setIsLoading(false);
+ setTxResult(txInfo);
+ updateMyContracts();
+ onSuccess?.();
+ },
+ onTxFailed: () => {
+ setIsLoading(false);
+ },
+ });
+ };
+
+ const resetStates = () => {
+ setCodeId('');
+ setCodeInfo(undefined);
+ setLabel('');
+ setAdminAddress('');
+ setInitMsg('');
+ setFunds([]);
+ setTxResult(undefined);
+ };
+
+ const adminInputErr =
+ adminAddress && validateChainAddress(adminAddress, chain.bech32_prefix);
+
+ const canInstantiate =
+ !!address &&
+ !!codeInfo &&
+ resolvePermission(address, codeInfo.permission, codeInfo.addresses);
+
+ const isButtonDisabled =
+ !label ||
+ !initMsg ||
+ !isAssetListJsonValid ||
+ !canInstantiate ||
+ !!adminInputErr;
+
+ const { isMobile } = useDetectBreakpoints();
+
+ if (txResult) {
+ const infoItems: TxInfoItem[] = [
+ {
+ label: 'Tx Hash',
+ displayValue: shortenAddress(txResult.transactionHash),
+ actualValue: txResult.transactionHash,
+ },
+ {
+ label: 'Contract Address',
+ displayValue: shortenAddress(txResult.contractAddress),
+ actualValue: txResult.contractAddress,
+ },
+ ];
+
+ return (
+
+
+
+
+
+
+
+
+ }
+ />
+ );
+ }
+
+ return (
+
+
+ Instantiate Contract
+
+
+
+
+
+ setLabel(e.target.value)}
+ autoComplete="off"
+ readonly={isLoading}
+ />
+
+ Provide a short description of the contract's purpose and
+ functionality.
+
+
+
+
+
+
+
+ {isShowMore && (
+
+
+
+ More Settings
+
+
+
+ )}
+
+
+
+ setAdminAddress(e.target.value)}
+ autoComplete="off"
+ inputClassName={styles['input-pr']}
+ endAddon={
+
+
+
+
+
+ }
+ />
+
+ {adminInputErr ||
+ 'The contract admin can transfer ownership and perform future upgrades.'}
+
+
+
+
+
+
+
+
+
+
+
+
+ );
+};
diff --git a/examples/chain-template/components/contract/InstantiatePermissionRadio.tsx b/examples/chain-template/components/contract/InstantiatePermissionRadio.tsx
new file mode 100644
index 000000000..3b7173e99
--- /dev/null
+++ b/examples/chain-template/components/contract/InstantiatePermissionRadio.tsx
@@ -0,0 +1,156 @@
+import { useEffect } from 'react';
+import { Box, Text, TextField } from '@interchain-ui/react';
+import { HiOutlineTrash } from 'react-icons/hi';
+import { LuPlus } from 'react-icons/lu';
+import { cosmwasm } from 'interchain-query';
+import { useChain } from '@cosmos-kit/react';
+import { GrGroup } from 'react-icons/gr';
+import { MdOutlineHowToVote } from 'react-icons/md';
+import { MdChecklistRtl } from 'react-icons/md';
+
+import { Button, Radio, RadioGroup } from '../common';
+import { InputField } from './InputField';
+import { validateChainAddress } from '@/utils';
+import { useChainStore } from '@/contexts';
+
+export const AccessType = cosmwasm.wasm.v1.AccessType;
+
+export type Permission = (typeof AccessType)[keyof typeof AccessType];
+
+export type Address = {
+ value: string;
+ isValid?: boolean;
+ errorMsg?: string | null;
+};
+
+type Props = {
+ addresses: Address[];
+ permission: Permission;
+ setAddresses: (addresses: Address[]) => void;
+ setPermission: (permission: Permission) => void;
+ direction?: 'row' | 'column';
+};
+
+export const InstantiatePermissionRadio = ({
+ addresses,
+ permission,
+ setAddresses,
+ setPermission,
+ direction = 'row',
+}: Props) => {
+ const { selectedChain } = useChainStore();
+ const { chain } = useChain(selectedChain);
+
+ const onAddAddress = () => {
+ setAddresses([...addresses, { value: '' }]);
+ };
+
+ const onDeleteAddress = (index: number) => {
+ const newAddresses = [...addresses];
+ newAddresses.splice(index, 1);
+ setAddresses(newAddresses);
+ };
+
+ const onAddressChange = (value: string, index: number) => {
+ const newAddresses = [...addresses];
+ newAddresses[index].value = value;
+ setAddresses(newAddresses);
+ };
+
+ useEffect(() => {
+ if (permission !== AccessType.ACCESS_TYPE_ANY_OF_ADDRESSES) return;
+
+ const newAddresses = addresses.map((addr, index) => {
+ const isDuplicate =
+ addresses.findIndex((a) => a.value === addr.value) !== index;
+
+ const errorMsg = isDuplicate
+ ? 'Address already exists'
+ : validateChainAddress(addr.value, chain.bech32_prefix);
+
+ return {
+ ...addr,
+ isValid: !!addr.value && !errorMsg,
+ errorMsg: addr.value ? errorMsg : null,
+ };
+ });
+
+ setAddresses(newAddresses);
+ }, [JSON.stringify(addresses.map((addr) => addr.value))]);
+
+ return (
+ <>
+ {
+ setPermission(Number(val) as Permission);
+ }}
+ >
+ }
+ value={AccessType.ACCESS_TYPE_EVERYBODY.toString()}
+ >
+ Everybody
+
+ }
+ value={AccessType.ACCESS_TYPE_NOBODY.toString()}
+ >
+ Governance only
+
+ }
+ value={AccessType.ACCESS_TYPE_ANY_OF_ADDRESSES.toString()}
+ >
+ Approved addresses
+
+
+
+ {permission === AccessType.ACCESS_TYPE_ANY_OF_ADDRESSES && (
+
+ {addresses.map(({ value, errorMsg }, index) => (
+
+
+ onAddressChange(e.target.value, index)}
+ attributes={{ width: '100%' }}
+ intent={errorMsg ? 'error' : 'default'}
+ autoComplete="off"
+ />
+ {errorMsg && (
+
+ {errorMsg}
+
+ )}
+
+ }
+ px="10px"
+ disabled={addresses.length === 1}
+ onClick={() => onDeleteAddress(index)}
+ />
+
+ ))}
+ }
+ width="$fit"
+ px="10px"
+ onClick={onAddAddress}
+ >
+ New Address
+
+
+ )}
+ >
+ );
+};
diff --git a/examples/chain-template/components/contract/JsonEditor.tsx b/examples/chain-template/components/contract/JsonEditor.tsx
new file mode 100644
index 000000000..449206cc0
--- /dev/null
+++ b/examples/chain-template/components/contract/JsonEditor.tsx
@@ -0,0 +1,52 @@
+import AceEditor from 'react-ace';
+import { useTheme } from '@interchain-ui/react';
+
+import 'ace-builds/src-noconflict/ace';
+import 'ace-builds/src-noconflict/mode-json';
+import 'ace-builds/src-noconflict/theme-textmate';
+import 'ace-builds/src-noconflict/theme-cloud9_night';
+
+type JsonEditorProps = {
+ value: string;
+ lines: number;
+ setValue?: (value: string) => void;
+ readOnly?: boolean;
+ isValid?: boolean;
+};
+
+export const JsonEditor = ({
+ value,
+ setValue,
+ lines,
+ readOnly = false,
+ isValid = true,
+}: JsonEditorProps) => {
+ const { theme } = useTheme();
+
+ return (
+
+ );
+};
diff --git a/examples/chain-template/components/contract/JsonInput.tsx b/examples/chain-template/components/contract/JsonInput.tsx
new file mode 100644
index 000000000..7e3428c2d
--- /dev/null
+++ b/examples/chain-template/components/contract/JsonInput.tsx
@@ -0,0 +1,128 @@
+import { useEffect, useMemo, useState } from 'react';
+import {
+ Box,
+ BoxProps,
+ Spinner,
+ Text,
+ TextProps,
+ Icon,
+} from '@interchain-ui/react';
+
+import { Button } from '@/components';
+import { countJsonLines, prettifyJson, validateJson } from '@/utils';
+import { JsonEditor } from './JsonEditor';
+
+type JsonDisplay = {
+ icon?: React.ReactNode;
+ text?: string;
+ textColor?: TextProps['color'];
+};
+
+const displayJsonState = (jsonState: JsonState) => {
+ const jsonStateMap: Record = {
+ loading: {
+ icon: ,
+ text: 'Checking JSON Format...',
+ textColor: '$textSecondary',
+ },
+
+ success: {
+ icon: ,
+ text: 'Valid JSON Format',
+ textColor: '$text',
+ },
+
+ error: {
+ icon: ,
+ text: jsonState.errMsg || 'Invalid JSON Format',
+ textColor: '$textDanger',
+ },
+
+ empty: {},
+ };
+
+ return jsonStateMap[jsonState.state];
+};
+
+interface JsonState {
+ state: 'empty' | 'loading' | 'success' | 'error';
+ errMsg?: string;
+}
+
+type JsonInputProps = {
+ value: string;
+ setValue: (value: string) => void;
+ minLines?: number;
+} & Pick;
+
+export const JsonInput = ({
+ value = '',
+ setValue,
+ minLines = 16,
+ ...rest
+}: JsonInputProps) => {
+ const [jsonState, setJsonState] = useState({ state: 'empty' });
+
+ const handleChange = (val: string) => {
+ setJsonState({ state: 'loading' });
+ setValue(val);
+ };
+
+ useEffect(() => {
+ const timeoutId = setTimeout(() => {
+ const error = validateJson(value);
+
+ if (value.trim().length === 0) setJsonState({ state: 'empty' });
+ else if (error) setJsonState({ state: 'error', errMsg: error });
+ else setJsonState({ state: 'success' });
+ }, 400);
+
+ return () => clearTimeout(timeoutId);
+ }, [value]);
+
+ const { icon, text, textColor } = displayJsonState(jsonState);
+ const isValidJson = validateJson(value) === null;
+
+ const lines = useMemo(() => {
+ return Math.max(countJsonLines(value), minLines);
+ }, [value]);
+
+ return (
+
+
+
+
+
+ {jsonState.state !== 'empty' && (
+
+ {icon}
+
+ {text}
+
+
+ )}
+
+ );
+};
diff --git a/examples/chain-template/components/contract/MyContractsTab.tsx b/examples/chain-template/components/contract/MyContractsTab.tsx
new file mode 100644
index 000000000..fca89ab49
--- /dev/null
+++ b/examples/chain-template/components/contract/MyContractsTab.tsx
@@ -0,0 +1,62 @@
+import { useState } from 'react';
+import { Box } from '@interchain-ui/react';
+
+import { Button } from '../common';
+import { PopoverSelect } from './PopoverSelect';
+import { MyContractsTable } from './MyContractsTable';
+import { CreateFromUpload } from './CreateFromUpload';
+import { CreateFromCodeId } from './CreateFromCodeId';
+
+const ContentViews = {
+ MY_CONTRACTS: 'my_contracts',
+ CREATE_FROM_UPLOAD: 'create_from_upload',
+ CREATE_FROM_CODE_ID: 'create_from_code_id',
+} as const;
+
+type ContentView = (typeof ContentViews)[keyof typeof ContentViews];
+
+const contractCreationOptions = [
+ { label: 'From Upload', value: ContentViews.CREATE_FROM_UPLOAD },
+ { label: 'From Code ID', value: ContentViews.CREATE_FROM_CODE_ID },
+];
+
+type MyContractsTabProps = {
+ show: boolean;
+ switchTab: (addressValue: string, tabId: number) => void;
+};
+
+export const MyContractsTab = ({ show, switchTab }: MyContractsTabProps) => {
+ const [contentView, setContentView] = useState(
+ ContentViews.MY_CONTRACTS,
+ );
+
+ return (
+
+ Create Contract}
+ options={contractCreationOptions}
+ onOptionClick={(value) => setContentView(value as ContentView)}
+ popoverWidth="152px"
+ />
+ }
+ />
+ {contentView === ContentViews.CREATE_FROM_UPLOAD && (
+ setContentView(ContentViews.MY_CONTRACTS)}
+ />
+ )}
+ {contentView === ContentViews.CREATE_FROM_CODE_ID && (
+ setContentView(ContentViews.MY_CONTRACTS)}
+ />
+ )}
+
+ );
+};
diff --git a/examples/chain-template/components/contract/MyContractsTable.tsx b/examples/chain-template/components/contract/MyContractsTable.tsx
new file mode 100644
index 000000000..e10663d23
--- /dev/null
+++ b/examples/chain-template/components/contract/MyContractsTable.tsx
@@ -0,0 +1,188 @@
+import { useMemo, useState } from 'react';
+import { useChain } from '@cosmos-kit/react';
+import { Box, Icon, Spinner, Text, TextField } from '@interchain-ui/react';
+
+import {
+ useCopyToClipboard,
+ useDetectBreakpoints,
+ useMyContracts,
+} from '@/hooks';
+import { Button, Table } from '../common';
+import { shortenAddress } from '@/utils';
+import { TabLabel } from '@/pages/contract';
+import { EmptyState } from './EmptyState';
+import { useChainStore } from '@/contexts';
+import styles from '@/styles/comp.module.css';
+
+type MyContractsTableProps = {
+ show: boolean;
+ switchTab: (addressValue: string, tabId: number) => void;
+ title?: string;
+ createContractTrigger?: React.ReactNode;
+};
+
+export const MyContractsTable = ({
+ show,
+ switchTab,
+ title,
+ createContractTrigger,
+}: MyContractsTableProps) => {
+ const [searchValue, setSearchValue] = useState('');
+
+ const { selectedChain } = useChainStore();
+ const { address } = useChain(selectedChain);
+ const { data: myContracts = [], isLoading } = useMyContracts();
+
+ const filteredContracts = useMemo(() => {
+ return myContracts.filter(({ address, contractInfo }) =>
+ [address, contractInfo?.label, contractInfo?.codeId.toString()].some(
+ (value) =>
+ value && value.toLowerCase().includes(searchValue.toLowerCase()),
+ ),
+ );
+ }, [myContracts, searchValue]);
+
+ const { isSmMobile } = useDetectBreakpoints();
+
+ return (
+
+
+ {title}
+
+
+
+
+ setSearchValue(e.target.value)}
+ placeholder="Search"
+ autoComplete="off"
+ inputClassName={styles['input-pl']}
+ />
+
+ {createContractTrigger}
+
+
+ {!address ? (
+
+ ) : isLoading ? (
+
+ ) : myContracts.length === 0 ? (
+
+ ) : filteredContracts.length === 0 ? (
+
+ ) : (
+
+
+
+
+
+ Contract Address
+
+ Contract Name
+ Code ID
+
+
+
+
+ {filteredContracts.map(({ address, contractInfo }) => (
+
+
+
+
+ {contractInfo?.label}
+
+ {Number(contractInfo?.codeId)}
+
+
+
+
+
+
+
+
+ ))}
+
+
+
+ )}
+
+
+ );
+};
+
+const CopyText = ({
+ copyValue,
+ displayValue,
+}: {
+ displayValue: string;
+ copyValue: string;
+}) => {
+ const [isHover, setIsHover] = useState(false);
+ const { copyToClipboard, isCopied } = useCopyToClipboard();
+
+ return (
+ setIsHover(true),
+ onMouseLeave: () => setIsHover(false),
+ onClick: () => copyToClipboard(copyValue),
+ }}
+ >
+
+ {displayValue}
+
+ {isHover && (
+
+
+
+ )}
+
+ );
+};
diff --git a/examples/chain-template/components/contract/PopoverSelect.tsx b/examples/chain-template/components/contract/PopoverSelect.tsx
new file mode 100644
index 000000000..cbd6d985a
--- /dev/null
+++ b/examples/chain-template/components/contract/PopoverSelect.tsx
@@ -0,0 +1,112 @@
+import { useState } from 'react';
+import {
+ Box,
+ Popover,
+ PopoverContent,
+ PopoverTrigger,
+ Text,
+ useColorModeValue,
+ useTheme,
+} from '@interchain-ui/react';
+
+import { useDetectBreakpoints } from '@/hooks';
+
+type Option = {
+ label: string;
+ value: string;
+};
+
+type PopoverSelectProps = {
+ trigger: React.ReactNode;
+ options: Option[];
+ onOptionClick: (value: string) => void;
+ popoverWidth?: string;
+};
+
+export const PopoverSelect = ({
+ trigger,
+ options,
+ onOptionClick,
+ popoverWidth = '100%',
+}: PopoverSelectProps) => {
+ const [isPopoverOpen, setIsPopoverOpen] = useState(false);
+
+ const { theme } = useTheme();
+ const { isMobile } = useDetectBreakpoints();
+
+ return (
+
+ {trigger}
+
+
+ {options.map((p) => (
+ {
+ onOptionClick(p.value);
+ setIsPopoverOpen(false);
+ }}
+ >
+ {p.label}
+
+ ))}
+
+
+
+ );
+};
+
+const CustomOption = ({
+ children,
+ onClick,
+}: {
+ children: React.ReactNode;
+ onClick: () => void;
+}) => {
+ return (
+
+
+ {children}
+
+
+ );
+};
diff --git a/examples/chain-template/components/contract/QueryTab.tsx b/examples/chain-template/components/contract/QueryTab.tsx
new file mode 100644
index 000000000..7731f3e6c
--- /dev/null
+++ b/examples/chain-template/components/contract/QueryTab.tsx
@@ -0,0 +1,128 @@
+import { useMemo, useRef, useState } from 'react';
+import { Box, Text } from '@interchain-ui/react';
+
+import { ContractAddressField } from './ContractAddressField';
+import { InputField } from './InputField';
+import { JsonInput } from './JsonInput';
+import { Button } from '../common';
+import { JsonEditor } from './JsonEditor';
+import { useQueryContract } from '@/hooks';
+import { countJsonLines, validateJson } from '@/utils';
+
+const INPUT_LINES = 12;
+const OUTPUT_LINES = 12;
+
+type QueryTabProps = {
+ show: boolean;
+ addressValue: string;
+ onAddressInput: (input: string) => void;
+};
+
+export const QueryTab = ({
+ show,
+ addressValue,
+ onAddressInput,
+}: QueryTabProps) => {
+ const [contractAddress, setContractAddress] = useState('');
+ const [queryMsg, setQueryMsg] = useState('');
+
+ const {
+ data: queryResult,
+ refetch: queryContract,
+ error: queryContractError,
+ isFetching,
+ } = useQueryContract({
+ contractAddress,
+ queryMsg,
+ enabled: false,
+ });
+
+ const prevResultRef = useRef('');
+
+ const res = useMemo(() => {
+ if (isFetching) {
+ return prevResultRef.current;
+ } else {
+ const newResult = queryResult
+ ? JSON.stringify(queryResult, null, 2)
+ : queryContractError
+ ? (queryContractError as Error)?.message || 'Unknown error'
+ : '';
+
+ prevResultRef.current = newResult;
+
+ return newResult;
+ }
+ }, [isFetching]);
+
+ const isJsonValid = useMemo(() => {
+ return validateJson(res) === null || res.length === 0;
+ }, [res]);
+
+ const lines = useMemo(() => {
+ return Math.max(OUTPUT_LINES, countJsonLines(res));
+ }, [res]);
+
+ const isMsgValid = validateJson(queryMsg) === null;
+
+ const isQueryButtonDisabled = !contractAddress || !isMsgValid;
+
+ return (
+
+
+ Query Contract
+
+
+
+
+
+
+
+
+
+
+
+
+ );
+};
diff --git a/examples/chain-template/components/contract/SelectAssetContent.tsx b/examples/chain-template/components/contract/SelectAssetContent.tsx
new file mode 100644
index 000000000..0a147130a
--- /dev/null
+++ b/examples/chain-template/components/contract/SelectAssetContent.tsx
@@ -0,0 +1,72 @@
+import { Dispatch, SetStateAction, useMemo } from 'react';
+import { assets } from 'chain-registry';
+import { LuPlus } from 'react-icons/lu';
+
+import {
+ defaultSelectedAsset,
+ SelectedAssetWithAmount,
+} from './AttachFundsRadio';
+import { Button } from '@/components';
+import { SelectAssetItem } from './SelectAssetItem';
+import { useChainStore } from '@/contexts';
+
+type SelectAssetContentProps = {
+ selectedAssetsWithAmount: SelectedAssetWithAmount[];
+ setSelectedAssetsWithAmount: Dispatch<
+ SetStateAction
+ >;
+};
+
+export const SelectAssetContent = ({
+ selectedAssetsWithAmount,
+ setSelectedAssetsWithAmount,
+}: SelectAssetContentProps) => {
+ const { selectedChain } = useChainStore();
+
+ const nativeAssets = useMemo(() => {
+ return (
+ assets
+ .find(({ chain_name }) => chain_name === selectedChain)
+ ?.assets.filter(
+ ({ type_asset, base }) =>
+ type_asset !== 'cw20' &&
+ type_asset !== 'ics20' &&
+ !base.startsWith('factory/'),
+ ) || []
+ );
+ }, [selectedChain]);
+
+ const selectedSymbols = selectedAssetsWithAmount
+ .map(({ asset }) => asset?.symbol)
+ .filter(Boolean) as string[];
+
+ const handleAddAssets = () => {
+ setSelectedAssetsWithAmount((prev) => [...prev, defaultSelectedAsset]);
+ };
+
+ return (
+ <>
+ {selectedAssetsWithAmount.map((assetWithAmount, index) => (
+
+ ))}
+
+ }
+ width="$fit"
+ px="10px"
+ onClick={handleAddAssets}
+ disabled={selectedAssetsWithAmount.length === nativeAssets.length}
+ >
+ New Asset
+
+ >
+ );
+};
diff --git a/examples/chain-template/components/contract/SelectAssetItem.tsx b/examples/chain-template/components/contract/SelectAssetItem.tsx
new file mode 100644
index 000000000..39171966e
--- /dev/null
+++ b/examples/chain-template/components/contract/SelectAssetItem.tsx
@@ -0,0 +1,199 @@
+import { Dispatch, SetStateAction, useState } from 'react';
+import { HiOutlineTrash } from 'react-icons/hi';
+import { Asset } from '@chain-registry/types';
+import {
+ Avatar,
+ Box,
+ NumberField,
+ Popover,
+ PopoverContent,
+ PopoverTrigger,
+ SelectButton,
+ Text,
+ useColorModeValue,
+ useTheme,
+} from '@interchain-ui/react';
+
+import { Button } from '@/components';
+import { SelectedAssetWithAmount } from './AttachFundsRadio';
+import { useDetectBreakpoints } from '@/hooks';
+
+type SelectAssetItemProps = {
+ itemIndex: number;
+ allAssets: Asset[];
+ selectedSymbols: string[];
+ disableTrashButton: boolean;
+ selectedAssetWithAmount: SelectedAssetWithAmount;
+ setSelectedAssetsWithAmount: Dispatch<
+ SetStateAction
+ >;
+};
+
+export const SelectAssetItem = ({
+ itemIndex,
+ allAssets,
+ selectedSymbols,
+ disableTrashButton,
+ selectedAssetWithAmount,
+ setSelectedAssetsWithAmount,
+}: SelectAssetItemProps) => {
+ const [isOpen, setIsOpen] = useState(false);
+
+ const handleSelectAsset = (asset: Asset, index: number) => () => {
+ setSelectedAssetsWithAmount((prev) => {
+ const newFunds = [...prev];
+ newFunds[index] = {
+ ...newFunds[index],
+ asset,
+ };
+ return newFunds;
+ });
+ setIsOpen(false);
+ };
+
+ const handleAmountInput = (
+ e: React.ChangeEvent,
+ index: number,
+ ) => {
+ const amount = e.target.value;
+ setSelectedAssetsWithAmount((prev) => {
+ const newFunds = [...prev];
+ newFunds[index] = { ...newFunds[index], amount };
+ return newFunds;
+ });
+ };
+
+ const handleDeleteAsset = (index: number) => () => {
+ setSelectedAssetsWithAmount((prev) => {
+ const newFunds = [...prev];
+ newFunds.splice(index, 1);
+ return newFunds;
+ });
+ };
+
+ const { theme } = useTheme();
+ const { isMobile } = useDetectBreakpoints();
+
+ return (
+
+
+
+ Asset
+
+ {/* @ts-ignore */}
+
+
+ {}}
+ placeholder={selectedAssetWithAmount?.asset?.symbol ?? 'Select'}
+ _css={{ width: isMobile ? '100px' : '140px' }}
+ />
+
+
+
+ {allAssets.map((asset) => (
+
+ ))}
+
+
+
+
+
+
+
+ Amount
+
+ handleAmountInput(e as any, itemIndex)}
+ />
+
+
+ }
+ onClick={handleDeleteAsset(itemIndex)}
+ disabled={disableTrashButton}
+ />
+
+ );
+};
+
+const AssetOption = ({
+ asset,
+ disabled,
+ onClick,
+}: {
+ asset: Asset;
+ disabled: boolean;
+ onClick: () => void;
+}) => {
+ const hoverBg = useColorModeValue('$blackAlpha100', '$whiteAlpha100');
+ return (
+
+
+
+ {asset.symbol}
+
+
+ );
+};
diff --git a/examples/chain-template/components/contract/TxSuccessCard.tsx b/examples/chain-template/components/contract/TxSuccessCard.tsx
new file mode 100644
index 000000000..3fe196df4
--- /dev/null
+++ b/examples/chain-template/components/contract/TxSuccessCard.tsx
@@ -0,0 +1,131 @@
+import { Box, Divider, Icon, Text } from '@interchain-ui/react';
+import { useCopyToClipboard } from '@/hooks';
+
+type TxSuccessCardProps = {
+ title: string;
+ description?: string;
+ infoItems: TxInfoItem[];
+ footer: React.ReactNode;
+ show?: boolean;
+};
+
+export const TxSuccessCard = ({
+ title,
+ description,
+ infoItems,
+ footer,
+ show = true,
+}: TxSuccessCardProps) => {
+ return (
+
+
+
+
+
+
+
+
+
+
+ {title}
+
+
+ {description && (
+
+ {description}
+
+ )}
+
+
+
+
+
+ {infoItems.map((item) => (
+
+ ))}
+
+
+
+
+ {footer}
+
+ );
+};
+
+export type TxInfoItem = {
+ label: string;
+ displayValue: string;
+ allowCopy?: boolean;
+ actualValue?: string;
+};
+
+const TxInfoItem = ({
+ label,
+ displayValue,
+ actualValue,
+ allowCopy = true,
+}: TxInfoItem) => {
+ const { isCopied, copyToClipboard } = useCopyToClipboard();
+
+ return (
+
+
+ {label}
+
+
+
+ {displayValue}
+
+ {allowCopy && (
+ copyToClipboard(actualValue ?? displayValue),
+ }}
+ cursor="pointer"
+ display="flex"
+ alignItems="center"
+ >
+
+
+ )}
+
+
+ );
+};
diff --git a/examples/chain-template/components/contract/UploadContract.tsx b/examples/chain-template/components/contract/UploadContract.tsx
new file mode 100644
index 000000000..dca755b04
--- /dev/null
+++ b/examples/chain-template/components/contract/UploadContract.tsx
@@ -0,0 +1,108 @@
+import { useState } from 'react';
+import { Box, Text } from '@interchain-ui/react';
+import { AccessType } from 'interchain-query/cosmwasm/wasm/v1/types';
+import { useChain } from '@cosmos-kit/react';
+
+import { InputField } from './InputField';
+import { WasmFileUploader } from './WasmFileUploader';
+import {
+ Address,
+ Permission,
+ InstantiatePermissionRadio,
+} from './InstantiatePermissionRadio';
+import { Button } from '../common';
+import { useChainStore } from '@/contexts';
+import { useDetectBreakpoints, useStoreCodeTx } from '@/hooks';
+
+type UploadContractProps = {
+ show: boolean;
+ onSuccess?: (codeId: string) => void;
+};
+
+export const UploadContract = ({ show, onSuccess }: UploadContractProps) => {
+ const [wasmFile, setWasmFile] = useState(null);
+ const [addresses, setAddresses] = useState([{ value: '' }]);
+ const [permission, setPermission] = useState(
+ AccessType.ACCESS_TYPE_EVERYBODY,
+ );
+ const [isLoading, setIsLoading] = useState(false);
+
+ const { selectedChain } = useChainStore();
+ const { address } = useChain(selectedChain);
+ const { storeCodeTx } = useStoreCodeTx(selectedChain);
+
+ const resetStates = () => {
+ setWasmFile(null);
+ setAddresses([{ value: '' }]);
+ setPermission(AccessType.ACCESS_TYPE_EVERYBODY);
+ };
+
+ const handleUpload = () => {
+ if (!address || !wasmFile) return;
+
+ setIsLoading(true);
+
+ storeCodeTx({
+ wasmFile,
+ permission,
+ addresses: addresses.map((addr) => addr.value),
+ onTxFailed() {
+ setIsLoading(false);
+ },
+ onTxSucceed(codeId) {
+ setIsLoading(false);
+ onSuccess?.(codeId);
+ resetStates();
+ },
+ });
+ };
+
+ const isAddressesValid =
+ permission === AccessType.ACCESS_TYPE_ANY_OF_ADDRESSES
+ ? addresses.every((addr) => addr.isValid)
+ : true;
+
+ const isButtonDisabled = !address || !wasmFile || !isAddressesValid;
+
+ const { isMobile } = useDetectBreakpoints();
+
+ return (
+
+
+ Upload Contract
+
+
+
+
+
+
+
+
+
+ );
+};
diff --git a/examples/chain-template/components/contract/WasmFileUploader.tsx b/examples/chain-template/components/contract/WasmFileUploader.tsx
new file mode 100644
index 000000000..d07687bfc
--- /dev/null
+++ b/examples/chain-template/components/contract/WasmFileUploader.tsx
@@ -0,0 +1,140 @@
+import Image from 'next/image';
+import { useCallback, useMemo } from 'react';
+import {
+ Box,
+ Text,
+ useTheme,
+ useColorModeValue,
+ ThemeVariant,
+} from '@interchain-ui/react';
+import { HiOutlineTrash } from 'react-icons/hi';
+import { useDropzone } from 'react-dropzone';
+
+import { bytesToKb } from '@/utils';
+
+const MAX_FILE_SIZE = 800_000;
+
+const getDefaultFileInfo = (theme: ThemeVariant) => ({
+ image: {
+ src: theme === 'light' ? '/images/upload.svg' : '/images/upload-dark.svg',
+ alt: 'upload',
+ width: 80,
+ height: 48,
+ },
+ title: 'Upload or drag .wasm file here',
+ description: `Max file size: ${bytesToKb(MAX_FILE_SIZE)}KB`,
+});
+
+type WasmFileUploaderProps = {
+ file: File | null;
+ setFile: (file: File | null) => void;
+};
+
+export const WasmFileUploader = ({ file, setFile }: WasmFileUploaderProps) => {
+ const { theme } = useTheme();
+
+ const onDrop = useCallback(
+ (files: File[]) => {
+ setFile(files[0]);
+ },
+ [setFile],
+ );
+
+ const fileInfo = useMemo(() => {
+ if (!file) return getDefaultFileInfo(theme);
+
+ return {
+ image: {
+ src:
+ theme === 'light'
+ ? '/images/contract-file.svg'
+ : '/images/contract-file-dark.svg',
+ alt: 'contract-file',
+ width: 40,
+ height: 54,
+ },
+ title: file.name,
+ description: `File size: ${bytesToKb(file.size)}KB`,
+ };
+ }, [file, theme]);
+
+ const { getRootProps, getInputProps } = useDropzone({
+ onDrop,
+ multiple: false,
+ accept: { 'application/octet-stream': ['.wasm'] },
+ maxSize: MAX_FILE_SIZE,
+ });
+
+ return (
+
+
+ {!file && }
+
+
+
+
+ {fileInfo.title}
+
+
+ {fileInfo.description}
+
+
+
+ {file && (
+ setFile(null) }}
+ >
+
+
+ Remove
+
+
+ )}
+
+
+ );
+};
diff --git a/examples/chain-template/components/contract/index.ts b/examples/chain-template/components/contract/index.ts
new file mode 100644
index 000000000..1848e3e49
--- /dev/null
+++ b/examples/chain-template/components/contract/index.ts
@@ -0,0 +1,3 @@
+export * from './QueryTab';
+export * from './ExecuteTab';
+export * from './MyContractsTab';
diff --git a/examples/chain-template/components/index.ts b/examples/chain-template/components/index.ts
new file mode 100644
index 000000000..9b9594a60
--- /dev/null
+++ b/examples/chain-template/components/index.ts
@@ -0,0 +1,5 @@
+export * from './common';
+export * from './staking';
+export * from './voting';
+export * from './asset-list';
+export * from './contract';
diff --git a/examples/chain-template/components/staking/AllValidators.tsx b/examples/chain-template/components/staking/AllValidators.tsx
new file mode 100644
index 000000000..ca21669bf
--- /dev/null
+++ b/examples/chain-template/components/staking/AllValidators.tsx
@@ -0,0 +1,66 @@
+import { useState } from 'react';
+import { Text } from '@interchain-ui/react';
+import { ChainName } from 'cosmos-kit';
+
+import { DelegateModal } from './DelegateModal';
+import AllValidatorsList from './AllValidatorsList';
+import { Prices, useDisclosure } from '@/hooks';
+import { type ExtendedValidator as Validator } from '@/utils';
+
+export const AllValidators = ({
+ validators,
+ balance,
+ updateData,
+ unbondingDays,
+ chainName,
+ logos,
+ prices,
+}: {
+ validators: Validator[];
+ balance: string;
+ updateData: () => void;
+ unbondingDays: string;
+ chainName: ChainName;
+ logos: {
+ [key: string]: string;
+ };
+ prices: Prices;
+}) => {
+ const delegateModalControl = useDisclosure();
+ const [selectedValidator, setSelectedValidator] = useState();
+
+ return (
+ <>
+
+ All Validators
+
+
+
+
+ {selectedValidator && (
+
+ )}
+ >
+ );
+};
diff --git a/examples/chain-template/components/staking/AllValidatorsList.tsx b/examples/chain-template/components/staking/AllValidatorsList.tsx
new file mode 100644
index 000000000..0d8ce73b2
--- /dev/null
+++ b/examples/chain-template/components/staking/AllValidatorsList.tsx
@@ -0,0 +1,119 @@
+import React, { Dispatch, SetStateAction, useMemo } from 'react';
+import { ChainName } from 'cosmos-kit';
+
+import { getCoin } from '@/utils';
+import { shiftDigits, type ExtendedValidator as Validator } from '@/utils';
+import {
+ Text,
+ Button,
+ ValidatorList,
+ ValidatorNameCell,
+ ValidatorTokenAmountCell,
+ GridColumn,
+} from '@interchain-ui/react';
+
+const AllValidatorsList = ({
+ validators,
+ openModal,
+ chainName,
+ logos,
+ setSelectedValidator,
+}: {
+ validators: Validator[];
+ chainName: ChainName;
+ openModal: () => void;
+ setSelectedValidator: Dispatch>;
+ logos: {
+ [key: string]: string;
+ };
+}) => {
+ const coin = getCoin(chainName);
+
+ const columns = useMemo(() => {
+ const _columns: GridColumn[] = [
+ {
+ id: 'validator',
+ label: 'Validator',
+ width: '196px',
+ align: 'left',
+ render: (validator: Validator) => (
+
+ ),
+ },
+ {
+ id: 'voting-power',
+ label: 'Voting Power',
+ width: '196px',
+ align: 'right',
+ render: (validator: Validator) => (
+
+ ),
+ },
+ {
+ id: 'commission',
+ label: 'Commission',
+ width: '196px',
+ align: 'right',
+ render: (validator: Validator) => (
+
+ {shiftDigits(validator.commission, 2)}%
+
+ ),
+ },
+ {
+ id: 'action',
+ width: '196px',
+ align: 'right',
+ render: (validator) => (
+
+ ),
+ },
+ ];
+
+ const hasApr = !!validators[0]?.apr;
+
+ if (hasApr) {
+ _columns.splice(3, 0, {
+ id: 'apr',
+ label: 'APR',
+ width: '196px',
+ align: 'right',
+ render: (validator: Validator) => (
+ {validator.apr}%
+ ),
+ });
+ }
+
+ return _columns;
+ }, [chainName]);
+
+ return (
+
+ );
+};
+
+export default React.memo(AllValidatorsList);
diff --git a/examples/chain-template/components/staking/DelegateModal.tsx b/examples/chain-template/components/staking/DelegateModal.tsx
new file mode 100644
index 000000000..2cf84d1e6
--- /dev/null
+++ b/examples/chain-template/components/staking/DelegateModal.tsx
@@ -0,0 +1,245 @@
+import { useState } from 'react';
+import { cosmos } from 'interchain-query';
+import { StdFee } from '@cosmjs/amino';
+import { useChain } from '@cosmos-kit/react';
+import { ChainName } from 'cosmos-kit';
+import BigNumber from 'bignumber.js';
+import {
+ BasicModal,
+ StakingDelegate,
+ Box,
+ Button,
+ Callout,
+ Text,
+} from '@interchain-ui/react';
+
+import {
+ type ExtendedValidator as Validator,
+ formatValidatorMetaInfo,
+ getAssetLogoUrl,
+ isGreaterThanZero,
+ shiftDigits,
+ calcDollarValue,
+ getCoin,
+ getExponent,
+ toBaseAmount,
+} from '@/utils';
+import { Prices, UseDisclosureReturn, useTx } from '@/hooks';
+
+const { delegate } = cosmos.staking.v1beta1.MessageComposer.fromPartial;
+
+export type MaxAmountAndFee = {
+ maxAmount: number;
+ fee: StdFee;
+};
+
+export const DelegateModal = ({
+ balance,
+ updateData,
+ unbondingDays,
+ chainName,
+ logoUrl,
+ modalControl,
+ selectedValidator,
+ closeOuterModal,
+ prices,
+ modalTitle,
+ showDescription = true,
+}: {
+ balance: string;
+ updateData: () => void;
+ unbondingDays: string;
+ chainName: ChainName;
+ modalControl: UseDisclosureReturn;
+ selectedValidator: Validator;
+ logoUrl: string;
+ prices: Prices;
+ closeOuterModal?: () => void;
+ modalTitle?: string;
+ showDescription?: boolean;
+}) => {
+ const { isOpen, onClose } = modalControl;
+ const { address, estimateFee } = useChain(chainName);
+
+ const [amount, setAmount] = useState(0);
+ const [isDelegating, setIsDelegating] = useState(false);
+ const [isSimulating, setIsSimulating] = useState(false);
+ const [maxAmountAndFee, setMaxAmountAndFee] = useState();
+
+ const coin = getCoin(chainName);
+ const exp = getExponent(chainName);
+ const { tx } = useTx(chainName);
+
+ const onModalClose = () => {
+ onClose();
+ setAmount(0);
+ setIsDelegating(false);
+ setIsSimulating(false);
+ };
+
+ const onDelegateClick = async () => {
+ if (!address || !amount) return;
+
+ setIsDelegating(true);
+
+ const msg = delegate({
+ delegatorAddress: address,
+ validatorAddress: selectedValidator.address,
+ amount: {
+ amount: toBaseAmount(amount, exp), // shiftDigits(amount, exp),
+ denom: coin.base,
+ },
+ });
+
+ const isMaxAmountAndFeeExists =
+ maxAmountAndFee &&
+ new BigNumber(amount).isEqualTo(maxAmountAndFee.maxAmount);
+
+ await tx([msg], {
+ fee: isMaxAmountAndFeeExists ? maxAmountAndFee.fee : null,
+ onSuccess: () => {
+ setMaxAmountAndFee(undefined);
+ closeOuterModal && closeOuterModal();
+ updateData();
+ onModalClose();
+ },
+ });
+
+ setIsDelegating(false);
+ };
+
+ const handleMaxClick = async () => {
+ if (!address) return;
+
+ if (Number(balance) === 0) {
+ setAmount(0);
+ return;
+ }
+
+ setIsSimulating(true);
+
+ const msg = delegate({
+ delegatorAddress: address,
+ validatorAddress: selectedValidator.address,
+ amount: {
+ amount: shiftDigits(balance, exp),
+ denom: coin.base,
+ },
+ });
+
+ try {
+ const fee = await estimateFee([msg]);
+ const feeAmount = new BigNumber(fee.amount[0].amount).shiftedBy(-exp);
+ const balanceAfterFee = new BigNumber(balance)
+ .minus(feeAmount)
+ .toNumber();
+ setMaxAmountAndFee({ fee, maxAmount: balanceAfterFee });
+ setAmount(balanceAfterFee);
+ } catch (error) {
+ console.log(error);
+ } finally {
+ setIsSimulating(false);
+ }
+ };
+
+ const headerExtra = (
+ <>
+ {showDescription && selectedValidator.description && (
+ {selectedValidator.description}
+ )}
+ {unbondingDays && (
+
+ You will need to undelegate in order for your staked assets to be
+ liquid again. This process will take {unbondingDays} days to complete.
+
+ )}
+ >
+ );
+
+ return (
+
+
+ {
+ setAmount(val);
+ },
+ partials: [
+ {
+ label: '1/2',
+ onClick: () => {
+ const newAmount = new BigNumber(balance)
+ .dividedBy(2)
+ .toNumber();
+ setAmount(newAmount);
+ },
+ },
+ {
+ label: '1/3',
+ onClick: () => {
+ const newAmount = new BigNumber(balance)
+ .dividedBy(3)
+ .toNumber();
+
+ setAmount(newAmount);
+ },
+ },
+ {
+ label: 'Max',
+ onClick: () => setAmount(Number(balance)),
+ },
+ ],
+ }}
+ footer={
+
+ }
+ />
+
+
+ );
+};
diff --git a/examples/chain-template/components/staking/MyValidators.tsx b/examples/chain-template/components/staking/MyValidators.tsx
new file mode 100644
index 000000000..58b560715
--- /dev/null
+++ b/examples/chain-template/components/staking/MyValidators.tsx
@@ -0,0 +1,134 @@
+import { useState } from 'react';
+import { Text } from '@interchain-ui/react';
+import { ChainName } from 'cosmos-kit';
+
+import MyValidatorsList from './MyValidatorsList';
+import { ValidatorInfoModal } from './ValidatorInfoModal';
+import { UndelegateModal } from './UndelegateModal';
+import { SelectValidatorModal } from './SelectValidatorModal';
+import { RedelegateModal } from './RedelegateModal';
+import { type ExtendedValidator as Validator } from '@/utils';
+import { DelegateModal } from './DelegateModal';
+import { Prices, useDisclosure } from '@/hooks';
+
+export const MyValidators = ({
+ myValidators,
+ allValidators,
+ balance,
+ updateData,
+ unbondingDays,
+ chainName,
+ logos,
+ prices,
+}: {
+ myValidators: Validator[];
+ allValidators: Validator[];
+ balance: string;
+ updateData: () => void;
+ unbondingDays: string;
+ chainName: ChainName;
+ prices: Prices;
+ logos: {
+ [key: string]: string;
+ };
+}) => {
+ const [selectedValidator, setSelectedValidator] = useState();
+ const [validatorToRedelegate, setValidatorToRedelegate] =
+ useState();
+
+ const validatorInfoModalControl = useDisclosure();
+ const delegateModalControl = useDisclosure();
+ const undelegateModalControl = useDisclosure();
+ const selectValidatorModalControl = useDisclosure();
+ const redelegateModalControl = useDisclosure();
+
+ return (
+ <>
+
+ My Validators
+
+
+
+
+ {selectedValidator && validatorInfoModalControl.isOpen && (
+
+ )}
+
+ {selectedValidator && delegateModalControl.isOpen && (
+
+ )}
+
+ {selectedValidator && undelegateModalControl.isOpen && (
+
+ )}
+
+ {selectValidatorModalControl.isOpen && (
+ {
+ redelegateModalControl.onOpen();
+ selectValidatorModalControl.onClose();
+ setValidatorToRedelegate(validator);
+ }}
+ />
+ )}
+
+ {selectedValidator &&
+ validatorToRedelegate &&
+ redelegateModalControl.isOpen && (
+
+ )}
+ >
+ );
+};
diff --git a/examples/chain-template/components/staking/MyValidatorsList.tsx b/examples/chain-template/components/staking/MyValidatorsList.tsx
new file mode 100644
index 000000000..1ac5d73cd
--- /dev/null
+++ b/examples/chain-template/components/staking/MyValidatorsList.tsx
@@ -0,0 +1,97 @@
+import React from 'react';
+import { Dispatch, SetStateAction } from 'react';
+import {
+ Button,
+ ValidatorList,
+ ValidatorNameCell,
+ ValidatorTokenAmountCell,
+} from '@interchain-ui/react';
+import { ChainName } from 'cosmos-kit';
+import { getCoin } from '@/utils';
+import { type ExtendedValidator as Validator } from '@/utils';
+
+const MyValidatorsList = ({
+ myValidators,
+ openModal,
+ chainName,
+ logos,
+ setSelectedValidator,
+}: {
+ myValidators: Validator[];
+ chainName: ChainName;
+ openModal: () => void;
+ setSelectedValidator: Dispatch>;
+ logos: {
+ [key: string]: string;
+ };
+}) => {
+ const coin = getCoin(chainName);
+
+ return (
+ (
+
+ ),
+ },
+ {
+ id: 'amount-staked',
+ label: 'Amount Staked',
+ width: '196px',
+ align: 'right',
+ render: (validator: Validator) => (
+
+ ),
+ },
+ {
+ id: 'claimable-rewards',
+ label: 'Claimable Rewards',
+ width: '196px',
+ align: 'right',
+ render: (validator: Validator) => (
+
+ ),
+ },
+ {
+ id: 'action',
+ width: '196px',
+ align: 'right',
+ render: (validator) => (
+
+ ),
+ },
+ ]}
+ data={myValidators}
+ tableProps={{
+ width: '$full',
+ }}
+ />
+ );
+};
+
+export default React.memo(MyValidatorsList);
diff --git a/examples/chain-template/components/staking/Overview.tsx b/examples/chain-template/components/staking/Overview.tsx
new file mode 100644
index 000000000..d70aaa561
--- /dev/null
+++ b/examples/chain-template/components/staking/Overview.tsx
@@ -0,0 +1,96 @@
+import { useState } from 'react';
+import {
+ Box,
+ StakingAssetHeader,
+ StakingClaimHeader,
+} from '@interchain-ui/react';
+import { useChain } from '@cosmos-kit/react';
+import { ChainName } from 'cosmos-kit';
+import { cosmos } from 'interchain-query';
+
+import { getCoin } from '@/utils';
+import { Prices, useTx } from '@/hooks';
+import {
+ sum,
+ calcDollarValue,
+ isGreaterThanZero,
+ type ParsedRewards as Rewards,
+} from '@/utils';
+
+const { withdrawDelegatorReward } =
+ cosmos.distribution.v1beta1.MessageComposer.fromPartial;
+
+const Overview = ({
+ balance,
+ rewards,
+ staked,
+ updateData,
+ chainName,
+ prices,
+}: {
+ balance: string;
+ rewards: Rewards;
+ staked: string;
+ updateData: () => void;
+ chainName: ChainName;
+ prices: Prices;
+}) => {
+ const [isClaiming, setIsClaiming] = useState(false);
+ const { address } = useChain(chainName);
+ const { tx } = useTx(chainName);
+
+ const totalAmount = sum(balance, staked, rewards?.total ?? 0);
+ const coin = getCoin(chainName);
+
+ const onClaimRewardClick = async () => {
+ setIsClaiming(true);
+
+ if (!address) return;
+
+ const msgs = rewards.byValidators.map(({ validatorAddress }) =>
+ withdrawDelegatorReward({
+ delegatorAddress: address,
+ validatorAddress,
+ })
+ );
+
+ await tx(msgs, {
+ onSuccess: updateData,
+ });
+
+ setIsClaiming(false);
+ };
+
+ return (
+ <>
+
+
+
+
+
+
+
+ >
+ );
+};
+
+export default Overview;
diff --git a/examples/chain-template/components/staking/RedelegateModal.tsx b/examples/chain-template/components/staking/RedelegateModal.tsx
new file mode 100644
index 000000000..bc29a103b
--- /dev/null
+++ b/examples/chain-template/components/staking/RedelegateModal.tsx
@@ -0,0 +1,194 @@
+import { useState } from 'react';
+import { cosmos } from 'interchain-query';
+import { useChain } from '@cosmos-kit/react';
+import { ChainName } from 'cosmos-kit';
+import {
+ BasicModal,
+ Box,
+ Button,
+ StakingDelegateCard,
+ StakingDelegateInput,
+ Text,
+} from '@interchain-ui/react';
+import BigNumber from 'bignumber.js';
+
+import {
+ calcDollarValue,
+ getAssetLogoUrl,
+ isGreaterThanZero,
+ shiftDigits,
+ toBaseAmount,
+ type ExtendedValidator as Validator,
+} from '@/utils';
+import { getCoin, getExponent } from '@/utils';
+import { Prices, UseDisclosureReturn, useTx } from '@/hooks';
+
+const { beginRedelegate } = cosmos.staking.v1beta1.MessageComposer.fromPartial;
+
+export const RedelegateModal = ({
+ updateData,
+ chainName,
+ modalControl,
+ selectedValidator,
+ validatorToRedelegate,
+ prices,
+}: {
+ updateData: () => void;
+ chainName: ChainName;
+ selectedValidator: Validator;
+ validatorToRedelegate: Validator;
+ modalControl: UseDisclosureReturn;
+ prices: Prices;
+}) => {
+ const { address } = useChain(chainName);
+
+ const [amount, setAmount] = useState(0);
+ const [isRedelegating, setIsRedelegating] = useState(false);
+ const [, forceUpdate] = useState(0);
+
+ const coin = getCoin(chainName);
+ const exp = getExponent(chainName);
+
+ const { tx } = useTx(chainName);
+
+ const closeRedelegateModal = () => {
+ setAmount(0);
+ setIsRedelegating(false);
+ modalControl.onClose();
+ };
+
+ const onRedelegateClick = async () => {
+ if (!address || !amount) return;
+
+ setIsRedelegating(true);
+
+ const msg = beginRedelegate({
+ delegatorAddress: address,
+ validatorSrcAddress: selectedValidator.address,
+ validatorDstAddress: validatorToRedelegate.address,
+ amount: {
+ denom: coin.base,
+ amount: toBaseAmount(amount, exp),
+ },
+ });
+
+ await tx([msg], {
+ onSuccess: () => {
+ updateData();
+ closeRedelegateModal();
+ },
+ });
+
+ setIsRedelegating(false);
+ };
+
+ const maxAmount = selectedValidator.delegation;
+
+ return (
+
+
+
+
+
+
+
+
+ {
+ setAmount(val);
+ }}
+ // onValueInput={(val) => {
+ // if (!val) {
+ // setAmount(undefined);
+ // return;
+ // }
+
+ // if (new BigNumber(val).gt(maxAmount)) {
+ // setAmount(Number(maxAmount));
+ // forceUpdate((n) => n + 1);
+ // return;
+ // }
+
+ // setAmount(Number(val));
+ // }}
+ partials={[
+ {
+ label: '1/2',
+ onClick: () => {
+ setAmount(new BigNumber(maxAmount).dividedBy(2).toNumber());
+ },
+ },
+ {
+ label: '1/3',
+ onClick: () => {
+ setAmount(new BigNumber(maxAmount).dividedBy(3).toNumber());
+ },
+ },
+ {
+ label: 'Max',
+ onClick: () => setAmount(Number(maxAmount)),
+ },
+ ]}
+ />
+
+
+
+
+
+
+ );
+};
+
+const RedelegateLabel = ({
+ type,
+ validatorName,
+ mb,
+}: {
+ type: 'from' | 'to';
+ validatorName: string;
+ mb?: string;
+}) => {
+ return (
+
+ {type === 'from' ? 'From' : 'To'}
+
+ {validatorName}
+
+
+ );
+};
diff --git a/examples/chain-template/components/staking/SelectValidatorModal.tsx b/examples/chain-template/components/staking/SelectValidatorModal.tsx
new file mode 100644
index 000000000..76bcafc89
--- /dev/null
+++ b/examples/chain-template/components/staking/SelectValidatorModal.tsx
@@ -0,0 +1,133 @@
+import { useMemo } from 'react';
+import { ChainName } from 'cosmos-kit';
+import {
+ Text,
+ GridColumn,
+ ValidatorNameCell,
+ ValidatorTokenAmountCell,
+ ValidatorList,
+ Button,
+ BasicModal,
+ Box,
+} from '@interchain-ui/react';
+
+import { getCoin } from '@/utils';
+import { UseDisclosureReturn } from '@/hooks';
+import { shiftDigits, type ExtendedValidator as Validator } from '@/utils';
+
+export const SelectValidatorModal = ({
+ allValidators,
+ chainName,
+ logos,
+ handleValidatorClick,
+ modalControl,
+}: {
+ allValidators: Validator[];
+ chainName: ChainName;
+ handleValidatorClick: (validator: Validator) => void;
+ modalControl: UseDisclosureReturn;
+ logos: {
+ [key: string]: string;
+ };
+}) => {
+ const coin = getCoin(chainName);
+
+ const columns = useMemo(() => {
+ const hasApr = !!allValidators[0]?.apr;
+
+ const _columns: GridColumn[] = [
+ {
+ id: 'validator',
+ label: 'Validator',
+ width: '196px',
+ align: 'left',
+ render: (validator: Validator) => (
+
+ ),
+ },
+ {
+ id: 'voting-power',
+ label: 'Voting Power',
+ width: '196px',
+ align: 'right',
+ render: (validator: Validator) => (
+
+ ),
+ },
+ {
+ id: 'commission',
+ label: 'Commission',
+ width: '146px',
+ align: 'right',
+ render: (validator: Validator) => (
+
+ {shiftDigits(validator.commission, 2)}%
+
+ ),
+ },
+ {
+ id: 'action',
+ width: '126px',
+ align: 'right',
+ render: (validator) => (
+
+
+
+ ),
+ },
+ ];
+
+ if (hasApr) {
+ _columns.splice(3, 0, {
+ id: 'apr',
+ label: 'APR',
+ width: '106px',
+ align: 'right',
+ render: (validator: Validator) => (
+ {validator.apr}%
+ ),
+ });
+ }
+
+ return _columns;
+ }, [chainName]);
+
+ return (
+
+
+
+
+
+ );
+};
diff --git a/examples/chain-template/components/staking/StakingSection.tsx b/examples/chain-template/components/staking/StakingSection.tsx
new file mode 100644
index 000000000..67024c1b7
--- /dev/null
+++ b/examples/chain-template/components/staking/StakingSection.tsx
@@ -0,0 +1,82 @@
+import { useEffect } from 'react';
+import { useChain } from '@cosmos-kit/react';
+import { ChainName } from 'cosmos-kit';
+import { Box, Spinner, Text } from '@interchain-ui/react';
+
+import Overview from './Overview';
+import { MyValidators } from './MyValidators';
+import { AllValidators } from './AllValidators';
+import { useStakingData, useValidatorLogos } from '@/hooks';
+
+export const StakingSection = ({ chainName }: { chainName: ChainName }) => {
+ const { isWalletConnected } = useChain(chainName);
+ const { data, isLoading, refetch } = useStakingData(chainName);
+ const { data: logos, isLoading: isFetchingLogos } = useValidatorLogos(
+ chainName,
+ data?.allValidators || [],
+ );
+
+ useEffect(() => {
+ refetch();
+ }, []);
+
+ return (
+
+ {!isWalletConnected ? (
+
+
+ Please connect your wallet
+
+
+ ) : isLoading || isFetchingLogos || !data ? (
+
+
+
+ ) : (
+ <>
+
+
+ {data.myValidators.length > 0 && (
+
+ )}
+
+
+ >
+ )}
+
+ );
+};
diff --git a/examples/chain-template/components/staking/UndelegateModal.tsx b/examples/chain-template/components/staking/UndelegateModal.tsx
new file mode 100644
index 000000000..907a89a2b
--- /dev/null
+++ b/examples/chain-template/components/staking/UndelegateModal.tsx
@@ -0,0 +1,189 @@
+import { useState } from 'react';
+import { cosmos } from 'interchain-query';
+import { useChain } from '@cosmos-kit/react';
+import { ChainName } from 'cosmos-kit';
+import BigNumber from 'bignumber.js';
+import {
+ BasicModal,
+ StakingDelegate,
+ Callout,
+ Box,
+ Button,
+} from '@interchain-ui/react';
+
+import { getCoin, getExponent } from '@/utils';
+import { Prices, UseDisclosureReturn, useTx } from '@/hooks';
+import {
+ calcDollarValue,
+ formatValidatorMetaInfo,
+ getAssetLogoUrl,
+ isGreaterThanZero,
+ shiftDigits,
+ toBaseAmount,
+ type ExtendedValidator as Validator,
+} from '@/utils';
+
+const { undelegate } = cosmos.staking.v1beta1.MessageComposer.fromPartial;
+
+export const UndelegateModal = ({
+ updateData,
+ unbondingDays,
+ chainName,
+ logoUrl,
+ selectedValidator,
+ closeOuterModal,
+ modalControl,
+ prices,
+}: {
+ updateData: () => void;
+ unbondingDays: string;
+ chainName: ChainName;
+ selectedValidator: Validator;
+ closeOuterModal: () => void;
+ modalControl: UseDisclosureReturn;
+ logoUrl: string;
+ prices: Prices;
+}) => {
+ const [amount, setAmount] = useState(0);
+ const [isUndelegating, setIsUndelegating] = useState(false);
+ const [, forceUpdate] = useState(0);
+
+ const { address } = useChain(chainName);
+ const { tx } = useTx(chainName);
+
+ const coin = getCoin(chainName);
+ const exp = getExponent(chainName);
+
+ const closeUndelegateModal = () => {
+ setAmount(0);
+ setIsUndelegating(false);
+ modalControl.onClose();
+ };
+
+ const onUndelegateClick = async () => {
+ if (!address || !amount) return;
+
+ setIsUndelegating(true);
+
+ const msg = undelegate({
+ delegatorAddress: address,
+ validatorAddress: selectedValidator.address,
+ amount: {
+ amount: toBaseAmount(amount, exp),
+ denom: coin.base,
+ },
+ });
+
+ await tx([msg], {
+ onSuccess: () => {
+ updateData();
+ closeOuterModal();
+ closeUndelegateModal();
+ },
+ });
+
+ setIsUndelegating(false);
+ };
+
+ const maxAmount = selectedValidator.delegation;
+
+ return (
+
+
+
+
+ not receive staking rewards
+ not be able to cancel the unbonding
+
+ need to wait {unbondingDays} days for the amount to be
+ liquid
+
+
+
+ )
+ }
+ delegationItems={[
+ {
+ label: 'Your Delegation',
+ tokenAmount: selectedValidator.delegation,
+ tokenName: coin.symbol,
+ },
+ ]}
+ inputProps={{
+ inputToken: {
+ tokenName: coin.symbol,
+ tokenIconUrl: getAssetLogoUrl(coin),
+ },
+ notionalValue: amount
+ ? calcDollarValue(coin.base, amount, prices)
+ : undefined,
+ value: amount,
+ minValue: 0,
+ maxValue: Number(maxAmount),
+ onValueChange: (val) => {
+ setAmount(val);
+ },
+ // onValueInput: (val) => {
+ // if (!val) {
+ // setAmount(undefined);
+ // return;
+ // }
+
+ // if (new BigNumber(val).gt(maxAmount)) {
+ // setAmount(Number(maxAmount));
+ // forceUpdate((n) => n + 1);
+ // return;
+ // }
+
+ // setAmount(Number(val));
+ // },
+ partials: [
+ {
+ label: '1/2',
+ onClick: () => {
+ setAmount(new BigNumber(maxAmount).dividedBy(2).toNumber());
+ },
+ },
+ {
+ label: '1/3',
+ onClick: () => {
+ setAmount(new BigNumber(maxAmount).dividedBy(3).toNumber());
+ },
+ },
+ {
+ label: 'Max',
+ onClick: () => setAmount(Number(maxAmount)),
+ },
+ ],
+ }}
+ footer={
+
+ }
+ />
+
+
+ );
+};
diff --git a/examples/chain-template/components/staking/ValidatorInfoModal.tsx b/examples/chain-template/components/staking/ValidatorInfoModal.tsx
new file mode 100644
index 000000000..7d60feabf
--- /dev/null
+++ b/examples/chain-template/components/staking/ValidatorInfoModal.tsx
@@ -0,0 +1,95 @@
+import { getCoin } from '@/utils';
+import { ChainName } from 'cosmos-kit';
+import {
+ formatValidatorMetaInfo,
+ type ExtendedValidator as Validator,
+} from '@/utils';
+import {
+ BasicModal,
+ Box,
+ Button,
+ StakingDelegate,
+ Text,
+} from '@interchain-ui/react';
+import { UseDisclosureReturn } from '@/hooks';
+
+export const ValidatorInfoModal = ({
+ chainName,
+ logoUrl,
+ handleClick,
+ modalControl,
+ selectedValidator,
+}: {
+ chainName: ChainName;
+ modalControl: UseDisclosureReturn;
+ selectedValidator: Validator;
+ handleClick: {
+ openDelegateModal: () => void;
+ openUndelegateModal: () => void;
+ openSelectValidatorModal: () => void;
+ };
+ logoUrl: string;
+}) => {
+ const coin = getCoin(chainName);
+
+ const { isOpen, onClose } = modalControl;
+ const { openDelegateModal, openSelectValidatorModal, openUndelegateModal } =
+ handleClick;
+
+ return (
+
+
+ {selectedValidator.description}
+ )
+ }
+ delegationItems={[
+ {
+ label: 'Your Delegation',
+ tokenAmount: selectedValidator.delegation,
+ tokenName: coin.symbol,
+ },
+ ]}
+ footer={
+
+
+
+
+
+ }
+ />
+
+
+ );
+};
diff --git a/examples/chain-template/components/staking/index.ts b/examples/chain-template/components/staking/index.ts
new file mode 100644
index 000000000..4deb7bee7
--- /dev/null
+++ b/examples/chain-template/components/staking/index.ts
@@ -0,0 +1 @@
+export * from './StakingSection';
diff --git a/examples/chain-template/components/voting/Proposal.tsx b/examples/chain-template/components/voting/Proposal.tsx
new file mode 100644
index 000000000..220539fcf
--- /dev/null
+++ b/examples/chain-template/components/voting/Proposal.tsx
@@ -0,0 +1,366 @@
+import {
+ Box,
+ Button,
+ GovernanceRadio,
+ GovernanceRadioGroup,
+ GovernanceResultCard,
+ GovernanceVoteBreakdown,
+ GovernanceVoteType,
+ Icon,
+ Stack,
+ Text,
+} from '@interchain-ui/react';
+import {
+ Proposal as IProposal,
+ ProposalStatus,
+} from 'interchain-query/cosmos/gov/v1/gov';
+import {
+ exponentiate,
+ formatDate,
+ getCoin,
+ getExponent,
+ percent,
+} from '@/utils';
+import Markdown from 'react-markdown';
+import { useEffect, useState } from 'react';
+import { useVoting, Votes } from '@/hooks';
+
+// export declare enum VoteOption {
+// /** VOTE_OPTION_UNSPECIFIED - VOTE_OPTION_UNSPECIFIED defines a no-op vote option. */
+// VOTE_OPTION_UNSPECIFIED = 0,
+// /** VOTE_OPTION_YES - VOTE_OPTION_YES defines a yes vote option. */
+// VOTE_OPTION_YES = 1,
+// /** VOTE_OPTION_ABSTAIN - VOTE_OPTION_ABSTAIN defines an abstain vote option. */
+// VOTE_OPTION_ABSTAIN = 2,
+// /** VOTE_OPTION_NO - VOTE_OPTION_NO defines a no vote option. */
+// VOTE_OPTION_NO = 3,
+// /** VOTE_OPTION_NO_WITH_VETO - VOTE_OPTION_NO_WITH_VETO defines a no with veto vote option. */
+// VOTE_OPTION_NO_WITH_VETO = 4,
+// UNRECOGNIZED = -1
+// }
+
+const VoteTypes = ['', 'yes', 'abstain', 'no', 'noWithVeto'];
+
+export type ProposalProps = {
+ proposal: IProposal;
+ votes?: Votes;
+ quorum?: number;
+ bondedTokens?: string;
+ chainName: string;
+ onVoteSuccess?: () => void;
+};
+
+export function Proposal({
+ votes,
+ quorum,
+ proposal,
+ chainName,
+ bondedTokens,
+ onVoteSuccess = () => { },
+}: ProposalProps) {
+ const vote = votes?.[proposal.id.toString()];
+
+ const [showMore, setShowMore] = useState(false);
+ const [voteType, setVoteType] = useState();
+
+ const coin = getCoin(chainName);
+ const exponent = getExponent(chainName);
+ const { isVoting, onVote } = useVoting({ chainName, proposal });
+
+ const toggleShowMore = () => setShowMore((v) => !v);
+
+ useEffect(() => {
+ if (typeof vote === 'number') {
+ setVoteType(VoteTypes[vote] as GovernanceVoteType);
+ }
+ }, [vote]);
+
+ const isChanged =
+ (vote === undefined && voteType) ||
+ (typeof vote === 'number' && voteType && voteType !== VoteTypes[vote]);
+
+ const isPassed = proposal.status === ProposalStatus.PROPOSAL_STATUS_PASSED;
+
+ const isRejected =
+ proposal.status === ProposalStatus.PROPOSAL_STATUS_REJECTED;
+
+ const isDepositPeriod =
+ proposal.status === ProposalStatus.PROPOSAL_STATUS_DEPOSIT_PERIOD;
+
+ const isVotingPeriod =
+ proposal.status === ProposalStatus.PROPOSAL_STATUS_VOTING_PERIOD;
+
+ const total = proposal.finalTallyResult
+ ? Object.values(proposal.finalTallyResult).reduce(
+ (sum, val) => sum + Number(val),
+ 0
+ )
+ : 0;
+
+ const turnout = total / Number(bondedTokens);
+
+ // @ts-ignore
+ const description = proposal.summary || '';
+ const renderedDescription =
+ description.length > 200
+ ? showMore
+ ? description
+ : `${description.slice(0, 200)}...`
+ : description || '';
+
+ const minStakedTokens =
+ quorum && exponentiate(quorum * Number(bondedTokens), -exponent).toFixed(6);
+
+ const timepoints = [
+ {
+ label: 'Submit Time',
+ timestamp: formatDate(proposal?.submitTime!) || '',
+ },
+ {
+ label: 'Voting Starts',
+ timestamp: isDepositPeriod
+ ? 'Not Specified Yet'
+ : formatDate(proposal.votingStartTime) || '',
+ },
+ {
+ label: 'Voting Ends',
+ timestamp: isDepositPeriod
+ ? 'Not Specified Yet'
+ : formatDate(proposal?.votingEndTime!) || '',
+ },
+ ];
+
+ function onVoteTypeChange(selected: string) {
+ setVoteType(selected as GovernanceVoteType);
+ }
+
+ function onVoteButtonClick() {
+ if (!voteType) return;
+
+ onVote({
+ option: VoteTypes.indexOf(voteType),
+ success: onVoteSuccess,
+ });
+ }
+
+ return (
+
+
+
+ {timepoints.map((timepoint, i) => (
+
+
+ {timepoint.label}
+
+
+ {timepoint.timestamp}
+
+
+ ))}
+
+
+
+
+ Yes
+ No
+ No with veto
+ Abstain
+
+
+
+
+
+
+
+ Vote Details
+
+ {quorum ? (
+
+
+
+ {`Minimum of staked ${minStakedTokens} ${coin.symbol}(${quorum * 100
+ }%) need to vote
+ for this proposal to pass.`}
+
+
+ ) : null}
+
+
+
+
+
+
+
+
+
+
+ {isPassed ? (
+
+ ) : null}
+ {isRejected ? (
+
+ ) : null}
+
+
+
+
+ {/* Description */}
+
+
+ Description
+
+
+
+
+ {description}
+
+
+
+ {/*
+ {showMore ? {description} : renderedDescription}
+
+
+
+
+ */}
+
+
+ );
+}
diff --git a/examples/chain-template/components/voting/Voting.tsx b/examples/chain-template/components/voting/Voting.tsx
new file mode 100644
index 000000000..b8d1b2b38
--- /dev/null
+++ b/examples/chain-template/components/voting/Voting.tsx
@@ -0,0 +1,222 @@
+import { useEffect, useState } from 'react';
+import { useChain } from '@cosmos-kit/react';
+import {
+ Proposal as IProposal,
+ ProposalStatus,
+ TallyResult,
+} from 'interchain-query/cosmos/gov/v1/gov';
+import {
+ BasicModal,
+ Box,
+ GovernanceProposalItem,
+ Spinner,
+ Text,
+ useColorModeValue,
+} from '@interchain-ui/react';
+import { useModal, useVotingData } from '@/hooks';
+import { Proposal } from '@/components';
+import { formatDate } from '@/utils';
+import { chains } from 'chain-registry';
+
+function status(s: ProposalStatus) {
+ switch (s) {
+ case ProposalStatus.PROPOSAL_STATUS_UNSPECIFIED:
+ return 'pending';
+ case ProposalStatus.PROPOSAL_STATUS_DEPOSIT_PERIOD:
+ return 'pending';
+ case ProposalStatus.PROPOSAL_STATUS_VOTING_PERIOD:
+ return 'pending';
+ case ProposalStatus.PROPOSAL_STATUS_PASSED:
+ return 'passed';
+ case ProposalStatus.PROPOSAL_STATUS_REJECTED:
+ return 'rejected';
+ case ProposalStatus.PROPOSAL_STATUS_FAILED:
+ return 'rejected';
+ default:
+ return 'pending';
+ }
+}
+
+function votes(result: TallyResult) {
+ return {
+ yes: Number(result?.yesCount) || 0,
+ no: Number(result?.noCount) || 0,
+ abstain: Number(result?.abstainCount) || 0,
+ noWithVeto: Number(result?.noWithVetoCount) || 0,
+ };
+}
+
+export type VotingProps = {
+ chainName: string;
+};
+
+export function Voting({ chainName }: VotingProps) {
+ const { address } = useChain(chainName);
+ const [proposal, setProposal] = useState();
+ const { data, isLoading, refetch } = useVotingData(chainName);
+ const { modal, open: openModal, close: closeModal, setTitle } = useModal('');
+ const [tallies, setTallies] = useState<{ [key: string]: TallyResult }>({});
+
+ const chain = chains.find((c) => c.chain_name === chainName);
+
+ useEffect(() => {
+ if (!data.proposals || data.proposals.length === 0) return;
+ data.proposals.forEach((proposal) => {
+ if (proposal.status === ProposalStatus.PROPOSAL_STATUS_VOTING_PERIOD) {
+ (async () => {
+ for (const { address } of chain?.apis?.rest || []) {
+ const api = `${address}/cosmos/gov/v1/proposals/${Number(proposal.id)}/tally`;
+ try {
+ const tally = (await (await fetch(api)).json()).tally;
+ if (!tally) {
+ continue;
+ }
+ setTallies((prev) => {
+ return {
+ ...prev,
+ [proposal.id.toString()]: {
+ yesCount: tally.yes_count,
+ noCount: tally.no_count,
+ abstainCount: tally.abstain_count,
+ noWithVetoCount: tally.no_with_veto_count,
+ },
+ };
+ });
+ break;
+ } catch (e) {}
+ }
+ })();
+ }
+ });
+ }, [data.proposals?.length, chainName]);
+
+ function onClickProposal(index: number) {
+ const proposal = data.proposals![index];
+ openModal();
+ setProposal(proposal);
+ // @ts-ignore
+ setTitle(`#${proposal.id?.toString()} ${proposal?.title}`);
+ }
+
+ const empty = (
+
+
+ No proposals found
+
+
+ );
+
+ const content = (
+
+ {data.proposals?.length === 0
+ ? empty
+ : data.proposals?.map((proposal, index) => {
+ let tally = proposal.finalTallyResult;
+ if (
+ proposal.status === ProposalStatus.PROPOSAL_STATUS_VOTING_PERIOD
+ ) {
+ tally = tallies[proposal.id.toString()];
+ }
+ return (
+ onClickProposal(index) }}
+ >
+ {data.votes[proposal.id.toString()] ? (
+
+
+ Voted
+
+
+ ) : null}
+
+
+ );
+ })}
+
+ );
+
+ const connect = (
+
+
+ Please connect to your wallet to see the proposals.
+
+
+ );
+
+ const Loading = (
+
+
+
+ );
+
+ return (
+
+
+ Proposals
+
+
+ {address ? Loading : null}
+
+ {address ? content : connect}
+
+
+
+ {modal.title}
+
+
+ }
+ isOpen={modal.open}
+ onOpen={openModal}
+ onClose={closeModal}
+ >
+
+
+
+ );
+}
diff --git a/examples/chain-template/components/voting/index.ts b/examples/chain-template/components/voting/index.ts
new file mode 100644
index 000000000..75bcca3d8
--- /dev/null
+++ b/examples/chain-template/components/voting/index.ts
@@ -0,0 +1,2 @@
+export * from './Voting';
+export * from './Proposal';
\ No newline at end of file
diff --git a/examples/chain-template/config/breakpoints.ts b/examples/chain-template/config/breakpoints.ts
new file mode 100644
index 000000000..3a8343f9c
--- /dev/null
+++ b/examples/chain-template/config/breakpoints.ts
@@ -0,0 +1,5 @@
+export const breakpoints = {
+ mobile: 480,
+ tablet: 768,
+ desktop: 1200,
+};
diff --git a/examples/chain-template/config/chains.ts b/examples/chain-template/config/chains.ts
new file mode 100644
index 000000000..6177cb2e7
--- /dev/null
+++ b/examples/chain-template/config/chains.ts
@@ -0,0 +1,10 @@
+import { chains } from 'chain-registry';
+import osmosis from 'chain-registry/mainnet/osmosis/chain';
+
+const chainNames = ['osmosistestnet', 'juno', 'stargaze', 'osmosis', 'cosmoshub'];
+
+export const chainOptions = chainNames.map(
+ (chainName) => chains.find((chain) => chain.chain_name === chainName)!
+);
+
+export const osmosisChainName = osmosis.chain_name;
diff --git a/examples/chain-template/config/index.ts b/examples/chain-template/config/index.ts
new file mode 100644
index 000000000..d3bb41e34
--- /dev/null
+++ b/examples/chain-template/config/index.ts
@@ -0,0 +1,5 @@
+export * from './chains';
+export * from './theme';
+export * from './wallets';
+export * from './products';
+export * from './breakpoints';
diff --git a/examples/chain-template/config/products.ts b/examples/chain-template/config/products.ts
new file mode 100644
index 000000000..193111c90
--- /dev/null
+++ b/examples/chain-template/config/products.ts
@@ -0,0 +1,91 @@
+export type ProductCategory =
+ | 'cosmwasm'
+ | 'cosmos-sdk'
+ | 'frontend'
+ | 'testing';
+
+export type Product = {
+ name: string;
+ description: string;
+ link: string;
+ category: ProductCategory;
+};
+
+export const products: Product[] = [
+ {
+ name: 'Cosmos Kit',
+ description:
+ 'A wallet adapter for react with mobile WalletConnect support for the Cosmos ecosystem.',
+ link: 'https://cosmology.zone/products/cosmos-kit',
+ category: 'frontend',
+ },
+ {
+ name: 'Telescope',
+ description:
+ 'A TypeScript Transpiler for Cosmos Protobufs to generate libraries for Cosmos blockchains.',
+ link: 'https://cosmology.zone/products/telescope',
+ category: 'cosmos-sdk',
+ },
+ {
+ name: 'Interchain UI',
+ description:
+ 'A simple, modular and cross-framework component library for Cosmos ecosystem.',
+ link: 'https://cosmology.zone/products/interchain-ui',
+ category: 'frontend',
+ },
+ {
+ name: 'TS Codegen',
+ description:
+ 'The quickest and easiest way to convert CosmWasm Contracts into dev-friendly TypeScript classes.',
+ link: 'https://cosmology.zone/products/ts-codegen',
+ category: 'cosmwasm',
+ },
+ {
+ name: 'Chain Registry',
+ description:
+ 'Get chain and asset list information from the npm package for the Official Cosmos chain registry.',
+ link: 'https://cosmology.zone/products/chain-registry',
+ category: 'frontend',
+ },
+ {
+ name: 'OsmoJS',
+ description:
+ 'OsmosJS makes it easy to compose and broadcast Osmosis and Cosmos messages.',
+ link: 'https://cosmology.zone/products/osmojs',
+ category: 'frontend',
+ },
+ {
+ name: 'Starship',
+ description:
+ 'Starship makes it easy to build a universal interchain development environment in k8s.',
+ link: 'https://cosmology.zone/products/starship',
+ category: 'testing',
+ },
+ {
+ name: 'Create Cosmos App',
+ description:
+ 'One-Command Setup for Modern Cosmos dApps. Speed up your development and bootstrap new web3 dApps quickly.',
+ link: 'https://cosmology.zone/products/create-cosmos-app',
+ category: 'frontend',
+ },
+ {
+ name: 'CosmWasm Academy',
+ description:
+ 'Master CosmWasm and build your secure, multi-chain dApp on any CosmWasm chain!',
+ link: 'https://cosmology.zone/learn/ts-codegen',
+ category: 'cosmwasm',
+ },
+ {
+ name: 'Videos',
+ description:
+ 'How-to videos from the official Cosmology website, with learning resources for building in Cosmos.',
+ link: 'https://cosmology.zone/learn',
+ category: 'frontend',
+ },
+ {
+ name: 'Next.js',
+ description: 'A React Framework supports hybrid static & server rendering.',
+ link: 'https://nextjs.org/',
+ category: 'frontend',
+ },
+];
diff --git a/examples/chain-template/config/theme.ts b/examples/chain-template/config/theme.ts
new file mode 100644
index 000000000..c712fa19c
--- /dev/null
+++ b/examples/chain-template/config/theme.ts
@@ -0,0 +1,94 @@
+import { ThemeDef, ThemeVariant } from '@interchain-ui/react';
+
+export const CustomTheme: Record = {
+ light: 'custom-light',
+ dark: 'custom-dark',
+};
+
+export const lightColors: ThemeDef['vars']['colors'] = {
+ purple900: '#322F3C',
+ purple600: '#7310FF',
+ purple400: '#AB6FFF',
+ purple200: '#E5D4FB',
+ purple100: '#F9F4FF',
+ purple50: '#FCFAFF',
+ blackAlpha600: '#2C3137',
+ blackAlpha500: '#6D7987',
+ blackAlpha400: '#697584',
+ blackAlpha300: '#DDE2E9',
+ blackAlpha200: '#D5DDE9',
+ blackAlpha100: '#F6F8FE',
+ blackAlpha50: '#FBFBFB',
+ gray100: '#EFF2F4',
+ white: '#FFFFFF',
+ background: '#FFFFFF',
+ green600: '#38A169',
+ green400: '#63C892',
+ green200: '#A9E8C7',
+ orange600: '#ED8936',
+ orange400: '#EBB07F',
+ orange200: '#F5D1B4',
+ red600: '#E65858',
+ red400: '#E18080',
+ red200: '#F1C4C4',
+ blue100: '#F4FCFF',
+ blue200: '#C6E7FF',
+ blue300: '#AEDEFF',
+ blue400: '#68C7FF',
+ blue500: '#35B4FF',
+ blue600: '#01A1FF',
+ blue700: '#0068A6',
+ blue800: '#194F8F',
+ blue900: '#002D4D',
+};
+
+export const darkColors: ThemeDef['vars']['colors'] = {
+ purple900: '#322F3C',
+ purple600: '#9042FE',
+ purple400: '#AB6FFF',
+ purple200: '#4D198F',
+ purple100: '#14004D',
+ purple50: '#FCFAFF',
+ blackAlpha600: '#FFFFFF',
+ blackAlpha500: '#9EACBD',
+ blackAlpha400: '#807C86',
+ blackAlpha300: '#46424D',
+ blackAlpha200: '#443F4B',
+ blackAlpha100: '#29262F',
+ blackAlpha50: '#1D2328',
+ gray100: '#EFF2F4',
+ white: '#FFFFFF',
+ background: '#232A31',
+ green600: '#38A169',
+ green400: '#63C892',
+ green200: '#A9E8C7',
+ orange600: '#ED8936',
+ orange400: '#EBB07F',
+ orange200: '#F5D1B4',
+ red600: '#E65858',
+ red400: '#E18080',
+ red200: '#F1C4C4',
+ blue100: '#F4FCFF',
+ blue200: '#C6E7FF',
+ blue300: '#AEDEFF',
+ blue400: '#68C7FF',
+ blue500: '#35B4FF',
+ blue600: '#01A1FF',
+ blue700: '#0068A6',
+ blue800: '#194F8F',
+ blue900: '#002D4D',
+};
+
+export const lightTheme: ThemeDef = {
+ name: CustomTheme.light,
+ vars: {
+ colors: lightColors,
+ },
+};
+
+export const darkTheme: ThemeDef = {
+ name: CustomTheme.dark,
+ vars: {
+ colors: darkColors,
+ },
+};
diff --git a/examples/chain-template/config/wallets.ts b/examples/chain-template/config/wallets.ts
new file mode 100644
index 000000000..65b3fe046
--- /dev/null
+++ b/examples/chain-template/config/wallets.ts
@@ -0,0 +1,11 @@
+import { wallets as _wallets } from 'cosmos-kit';
+import { MainWalletBase } from '@cosmos-kit/core';
+
+export const keplrWalletName = _wallets.keplr.extension?.walletName!;
+
+export const wallets = [
+ _wallets.keplr.extension,
+ _wallets.leap.extension,
+ _wallets.cosmostation.extension,
+ _wallets.station.extension,
+] as MainWalletBase[];
diff --git a/examples/chain-template/contexts/chain.ts b/examples/chain-template/contexts/chain.ts
new file mode 100644
index 000000000..3a15ac56d
--- /dev/null
+++ b/examples/chain-template/contexts/chain.ts
@@ -0,0 +1,18 @@
+import { create } from 'zustand';
+import { chainOptions } from '@/config';
+
+interface ChainStore {
+ selectedChain: string;
+}
+
+export const defaultChain = chainOptions[0].chain_name;
+
+export const useChainStore = create()(() => ({
+ selectedChain: defaultChain,
+}));
+
+export const chainStore = {
+ setSelectedChain: (chainName: string) => {
+ useChainStore.setState({ selectedChain: chainName });
+ },
+};
diff --git a/examples/chain-template/contexts/index.ts b/examples/chain-template/contexts/index.ts
new file mode 100644
index 000000000..481a3404a
--- /dev/null
+++ b/examples/chain-template/contexts/index.ts
@@ -0,0 +1 @@
+export * from './chain';
diff --git a/examples/chain-template/declaration.d.ts b/examples/chain-template/declaration.d.ts
new file mode 100644
index 000000000..13a24cd09
--- /dev/null
+++ b/examples/chain-template/declaration.d.ts
@@ -0,0 +1,4 @@
+declare module '*.yaml' {
+ const content: unknown;
+ export default content;
+}
diff --git a/examples/chain-template/hooks/asset-list/index.ts b/examples/chain-template/hooks/asset-list/index.ts
new file mode 100644
index 000000000..7021f7a98
--- /dev/null
+++ b/examples/chain-template/hooks/asset-list/index.ts
@@ -0,0 +1,7 @@
+export * from './useChainUtils';
+export * from './useChainAssetsPrices';
+export * from './useTopTokens';
+export * from './useAssets';
+export * from './useTotalAssets';
+export * from './useBalance';
+export * from './useOsmoQueryHooks';
diff --git a/examples/chain-template/hooks/asset-list/useAssets.ts b/examples/chain-template/hooks/asset-list/useAssets.ts
new file mode 100644
index 000000000..2c0bc3911
--- /dev/null
+++ b/examples/chain-template/hooks/asset-list/useAssets.ts
@@ -0,0 +1,136 @@
+import { PrettyAsset } from '@/components';
+import { Coin } from '@cosmjs/stargate';
+import { useChain } from '@cosmos-kit/react';
+import { UseQueryResult } from '@tanstack/react-query';
+import BigNumber from 'bignumber.js';
+import { useEffect, useMemo } from 'react';
+import { useChainUtils } from './useChainUtils';
+import { useOsmoQueryHooks } from './useOsmoQueryHooks';
+import { useChainAssetsPrices } from './useChainAssetsPrices';
+import { useTopTokens } from './useTopTokens';
+import { getPagination } from './useTotalAssets';
+
+(BigInt.prototype as any).toJSON = function () {
+ return this.toString();
+};
+
+const MAX_TOKENS_TO_SHOW = 50;
+
+export const useAssets = (chainName: string) => {
+ const { address } = useChain(chainName);
+
+ const { cosmosQuery, isReady, isFetching } = useOsmoQueryHooks(chainName);
+
+ const allBalancesQuery: UseQueryResult =
+ cosmosQuery.bank.v1beta1.useAllBalances({
+ request: {
+ address: address || '',
+ pagination: getPagination(100n),
+ },
+ options: {
+ enabled: isReady,
+ select: ({ balances }) => balances || [],
+ },
+ });
+
+ const pricesQuery = useChainAssetsPrices(chainName);
+ const topTokensQuery = useTopTokens();
+
+ const dataQueries = {
+ allBalances: allBalancesQuery,
+ topTokens: topTokensQuery,
+ prices: pricesQuery,
+ };
+
+ const queriesToReset = [dataQueries.allBalances];
+ const queriesToRefetch = [dataQueries.allBalances];
+
+ useEffect(() => {
+ queriesToReset.forEach((query) => query.remove());
+ // eslint-disable-next-line react-hooks/exhaustive-deps
+ }, [chainName]);
+
+ const queries = Object.values(dataQueries);
+ const isInitialFetching = queries.some(({ isLoading }) => isLoading);
+ const isRefetching = queries.some(({ isRefetching }) => isRefetching);
+ const isLoading = isFetching || isInitialFetching || isRefetching;
+
+ type AllQueries = typeof dataQueries;
+
+ type QueriesData = {
+ [Key in keyof AllQueries]: NonNullable;
+ };
+
+ const {
+ ibcAssets,
+ getAssetByDenom,
+ convRawToDispAmount,
+ calcCoinDollarValue,
+ denomToSymbol,
+ getPrettyChainName,
+ } = useChainUtils(chainName);
+
+ const data = useMemo(() => {
+ if (isLoading) return;
+
+ const queriesData = Object.fromEntries(
+ Object.entries(dataQueries).map(([key, query]) => [key, query.data])
+ ) as QueriesData;
+
+ const { allBalances, prices, topTokens } = queriesData;
+
+ const nativeAndIbcBalances: Coin[] = allBalances?.filter(
+ ({ denom }) => !denom.startsWith('gamm') && prices[denom]
+ );
+
+ const emptyBalances: Coin[] = ibcAssets
+ .filter(({ base }) => {
+ const notInBalances = !nativeAndIbcBalances?.find(
+ ({ denom }) => denom === base
+ );
+ return notInBalances && prices[base];
+ })
+ .filter((asset) => {
+ const isWithinLimit = ibcAssets.length <= MAX_TOKENS_TO_SHOW;
+ return isWithinLimit || topTokens.includes(asset.symbol);
+ })
+ .map((asset) => ({ denom: asset.base, amount: '0' }))
+ .reduce((acc: { denom: string, amount: string }[], current) => {
+ if (!acc.some(balance => balance.denom === current.denom)) {
+ acc.push(current);
+ }
+ return acc;
+ }, []);
+ const finalAssets = [...(nativeAndIbcBalances ?? []), ...emptyBalances]
+ .map(({ amount, denom }) => {
+ const asset = getAssetByDenom(denom);
+ const symbol = denomToSymbol(denom);
+ const dollarValue = calcCoinDollarValue(prices, { amount, denom });
+ return {
+ symbol,
+ logoUrl: asset.logo_URIs?.png || asset.logo_URIs?.svg,
+ prettyChainName: getPrettyChainName(denom),
+ displayAmount: convRawToDispAmount(denom, amount),
+ dollarValue,
+ amount,
+ denom,
+ };
+ })
+ .sort((a, b) =>
+ new BigNumber(a.dollarValue).lt(b.dollarValue) ? 1 : -1
+ );
+
+ return {
+ prices,
+ allBalances,
+ assets: finalAssets as PrettyAsset[],
+ };
+ // eslint-disable-next-line react-hooks/exhaustive-deps
+ }, [isLoading]);
+
+ const refetch = () => {
+ queriesToRefetch.forEach((query) => query.refetch());
+ };
+
+ return { data, isLoading, refetch };
+};
diff --git a/examples/chain-template/hooks/asset-list/useBalance.ts b/examples/chain-template/hooks/asset-list/useBalance.ts
new file mode 100644
index 000000000..d29947b92
--- /dev/null
+++ b/examples/chain-template/hooks/asset-list/useBalance.ts
@@ -0,0 +1,49 @@
+import { Coin } from '@cosmjs/stargate';
+import { useChain } from '@cosmos-kit/react';
+import { UseQueryResult } from '@tanstack/react-query';
+import { useEffect } from 'react';
+import { useOsmoQueryHooks } from './useOsmoQueryHooks';
+
+export const useBalance = (
+ chainName: string,
+ enabled: boolean = true,
+ displayDenom?: string
+) => {
+ const { address, assets } = useChain(chainName);
+ let denom = assets?.assets[0].base!;
+ for (const asset of assets?.assets || []) {
+ if (asset.display.toLowerCase() === displayDenom?.toLowerCase()) {
+ denom = asset.base;
+ break;
+ }
+ }
+
+ const { cosmosQuery, isReady, isFetching } = useOsmoQueryHooks(
+ chainName,
+ 'balance'
+ );
+
+ const balanceQuery: UseQueryResult =
+ cosmosQuery.bank.v1beta1.useBalance({
+ request: {
+ denom,
+ address: address || '',
+ },
+ options: {
+ enabled: isReady && enabled,
+ select: ({ balance }) => balance,
+ },
+ });
+
+ useEffect(() => {
+ return () => {
+ balanceQuery.remove();
+ };
+ // eslint-disable-next-line react-hooks/exhaustive-deps
+ }, []);
+
+ return {
+ balance: balanceQuery.data,
+ isLoading: isFetching, // || !!balanceQueries.find(item => item.isFetching),
+ };
+};
diff --git a/examples/chain-template/hooks/asset-list/useChainAssetsPrices.ts b/examples/chain-template/hooks/asset-list/useChainAssetsPrices.ts
new file mode 100644
index 000000000..72b63edfb
--- /dev/null
+++ b/examples/chain-template/hooks/asset-list/useChainAssetsPrices.ts
@@ -0,0 +1,49 @@
+import { Asset } from '@chain-registry/types';
+import { useQuery } from '@tanstack/react-query';
+import { useChainUtils } from './useChainUtils';
+import { handleError } from './useTopTokens';
+
+type CoinGeckoId = string;
+type CoinGeckoUSD = { usd: number };
+type CoinGeckoUSDResponse = Record;
+
+const getAssetsWithGeckoIds = (assets: Asset[]) => {
+ return assets.filter((asset) => !!asset?.coingecko_id);
+};
+
+const getGeckoIds = (assets: Asset[]) => {
+ return assets.map((asset) => asset.coingecko_id) as string[];
+};
+
+const formatPrices = (
+ prices: CoinGeckoUSDResponse,
+ assets: Asset[]
+): Record => {
+ return Object.entries(prices).reduce((priceHash, cur) => {
+ const denom = assets.find((asset) => asset.coingecko_id === cur[0])!.base;
+ return { ...priceHash, [denom]: cur[1].usd };
+ }, {});
+};
+
+const fetchPrices = async (
+ geckoIds: string[]
+): Promise => {
+ const url = `https://api.coingecko.com/api/v3/simple/price?ids=${geckoIds.join()}&vs_currencies=usd`;
+
+ return fetch(url)
+ .then(handleError)
+ .then((res) => res.json());
+};
+
+export const useChainAssetsPrices = (chainName: string) => {
+ const { allAssets } = useChainUtils(chainName);
+ const assetsWithGeckoIds = getAssetsWithGeckoIds(allAssets);
+ const geckoIds = getGeckoIds(assetsWithGeckoIds);
+
+ return useQuery({
+ queryKey: ['useChainAssetsPrices', chainName],
+ queryFn: () => fetchPrices(geckoIds),
+ select: (data) => formatPrices(data, assetsWithGeckoIds),
+ staleTime: Infinity,
+ });
+};
diff --git a/examples/chain-template/hooks/asset-list/useChainUtils.ts b/examples/chain-template/hooks/asset-list/useChainUtils.ts
new file mode 100644
index 000000000..496239e64
--- /dev/null
+++ b/examples/chain-template/hooks/asset-list/useChainUtils.ts
@@ -0,0 +1,177 @@
+import { useManager } from '@cosmos-kit/react';
+import { useMemo } from 'react';
+import { Asset, AssetList } from '@chain-registry/types';
+import { asset_lists as ibcAssetLists } from '@chain-registry/assets';
+import { assets as chainAssets, ibc } from 'chain-registry';
+import { CoinDenom, CoinSymbol, Exponent, PriceHash } from '@/utils';
+import BigNumber from 'bignumber.js';
+import { Coin } from '@cosmjs/amino';
+import { PrettyAsset } from '@/components';
+import { ChainName } from 'cosmos-kit';
+
+export const useChainUtils = (chainName: string) => {
+ const { getChainRecord } = useManager();
+
+ const filterAssets = (assetList: AssetList[]): Asset[] => {
+ return (
+ assetList
+ .find(({ chain_name }) => chain_name === chainName)
+ ?.assets?.filter(({ type_asset }) => type_asset !== 'ics20') || []
+ );
+ };
+
+ const { nativeAssets, ibcAssets } = useMemo(() => {
+ // @ts-ignore
+ const nativeAssets = filterAssets(chainAssets);
+ // @ts-ignore
+ const ibcAssets = filterAssets(ibcAssetLists);
+
+ return { nativeAssets, ibcAssets };
+ // eslint-disable-next-line react-hooks/exhaustive-deps
+ }, [chainName]);
+
+ const allAssets = [...nativeAssets, ...ibcAssets];
+
+ const getIbcAssetsLength = () => {
+ return ibcAssets.length;
+ };
+
+ const getAssetByDenom = (denom: CoinDenom): Asset => {
+ return allAssets.find((asset) => asset.base === denom) as Asset;
+ };
+
+ const denomToSymbol = (denom: CoinDenom): CoinSymbol => {
+ const asset = getAssetByDenom(denom);
+ const symbol = asset?.symbol;
+ if (!symbol) {
+ return denom;
+ }
+ return symbol;
+ };
+
+ const symbolToDenom = (symbol: CoinSymbol, chainName?: string): CoinDenom => {
+ const asset = allAssets.find(
+ (asset) =>
+ asset.symbol === symbol &&
+ (!chainName ||
+ asset.traces?.[0].counterparty.chain_name.toLowerCase() ===
+ chainName.toLowerCase())
+ );
+ const base = asset?.base;
+ if (!base) {
+ return symbol;
+ }
+ return base;
+ };
+
+ const getExponentByDenom = (denom: CoinDenom): Exponent => {
+ const asset = getAssetByDenom(denom);
+ const unit = asset.denom_units.find(({ denom }) => denom === asset.display);
+ return unit?.exponent || 0;
+ };
+
+ const convRawToDispAmount = (symbol: string, amount: string | number) => {
+ const denom = symbolToDenom(symbol);
+ return new BigNumber(amount)
+ .shiftedBy(-getExponentByDenom(denom))
+ .toString();
+ };
+
+ const calcCoinDollarValue = (prices: PriceHash, coin: Coin) => {
+ const { denom, amount } = coin;
+ return new BigNumber(amount)
+ .shiftedBy(-getExponentByDenom(denom))
+ .multipliedBy(prices[denom])
+ .toString();
+ };
+
+ const getChainName = (ibcDenom: CoinDenom) => {
+ if (nativeAssets.find((asset) => asset.base === ibcDenom)) {
+ return chainName;
+ }
+ const asset = ibcAssets.find((asset) => asset.base === ibcDenom);
+ const ibcChainName = asset?.traces?.[0].counterparty.chain_name;
+ if (!ibcChainName)
+ throw Error('chainName not found for ibcDenom: ' + ibcDenom);
+ return ibcChainName;
+ };
+
+ const getPrettyChainName = (ibcDenom: CoinDenom) => {
+ const chainName = getChainName(ibcDenom);
+ try {
+ const chainRecord = getChainRecord(chainName);
+ // @ts-ignore
+ return chainRecord.chain.pretty_name;
+ } catch (e) {
+ return 'CHAIN_INFO_NOT_FOUND';
+ }
+ };
+
+ const isNativeAsset = ({ denom }: PrettyAsset) => {
+ return !!nativeAssets.find((asset) => asset.base === denom);
+ };
+
+ const getNativeDenom = (chainName: ChainName) => {
+ const chainRecord = getChainRecord(chainName);
+ const denom = chainRecord.assetList?.assets[0].base;
+ if (!denom) throw Error('denom not found');
+ return denom;
+ };
+
+ const getDenomBySymbolAndChain = (chainName: ChainName, symbol: string) => {
+ const chainRecord = getChainRecord(chainName);
+ const denom = chainRecord.assetList?.assets.find(
+ (asset) => asset.symbol === symbol
+ )?.base;
+ if (!denom) throw Error('denom not found');
+ return denom;
+ };
+
+ const getIbcInfo = (fromChainName: string, toChainName: string) => {
+ let flipped = false;
+
+ let ibcInfo = ibc.find(
+ (i) =>
+ i.chain_1.chain_name === fromChainName &&
+ i.chain_2.chain_name === toChainName
+ );
+
+ if (!ibcInfo) {
+ ibcInfo = ibc.find(
+ (i) =>
+ i.chain_1.chain_name === toChainName &&
+ i.chain_2.chain_name === fromChainName
+ );
+ flipped = true;
+ }
+
+ if (!ibcInfo) {
+ throw new Error('cannot find IBC info');
+ }
+
+ const key = flipped ? 'chain_2' : 'chain_1';
+ const sourcePort = ibcInfo.channels[0][key].port_id;
+ const sourceChannel = ibcInfo.channels[0][key].channel_id;
+
+ return { sourcePort, sourceChannel };
+ };
+
+ return {
+ allAssets,
+ nativeAssets,
+ ibcAssets,
+ getAssetByDenom,
+ denomToSymbol,
+ symbolToDenom,
+ convRawToDispAmount,
+ calcCoinDollarValue,
+ getIbcAssetsLength,
+ getChainName,
+ getPrettyChainName,
+ isNativeAsset,
+ getNativeDenom,
+ getIbcInfo,
+ getExponentByDenom,
+ getDenomBySymbolAndChain,
+ };
+};
diff --git a/examples/chain-template/hooks/asset-list/useOsmoQueryHooks.ts b/examples/chain-template/hooks/asset-list/useOsmoQueryHooks.ts
new file mode 100644
index 000000000..bb6c5fa69
--- /dev/null
+++ b/examples/chain-template/hooks/asset-list/useOsmoQueryHooks.ts
@@ -0,0 +1,37 @@
+import { useChain } from '@cosmos-kit/react';
+import { useRpcEndpoint, useRpcClient, createRpcQueryHooks } from 'osmo-query';
+
+export const useOsmoQueryHooks = (chainName: string, extraKey?: string) => {
+ const { address, getRpcEndpoint } = useChain(chainName);
+
+ const rpcEndpointQuery = useRpcEndpoint({
+ getter: getRpcEndpoint,
+ options: {
+ staleTime: Infinity,
+ queryKeyHashFn: (queryKey) => {
+ const key = [...queryKey, chainName];
+ return JSON.stringify(extraKey ? [...key, extraKey] : key);
+ },
+ },
+ });
+
+ const rpcClientQuery = useRpcClient({
+ rpcEndpoint: rpcEndpointQuery.data || '',
+ options: {
+ enabled: !!rpcEndpointQuery.data,
+ staleTime: Infinity,
+ queryKeyHashFn: (queryKey) => {
+ return JSON.stringify(extraKey ? [...queryKey, extraKey] : queryKey);
+ },
+ },
+ });
+
+ const { cosmos: cosmosQuery, osmosis: osmoQuery } = createRpcQueryHooks({
+ rpc: rpcClientQuery.data,
+ });
+
+ const isReady = !!address && !!rpcClientQuery.data;
+ const isFetching = rpcEndpointQuery.isFetching || rpcClientQuery.isFetching;
+
+ return { cosmosQuery, osmoQuery, isReady, isFetching };
+};
diff --git a/examples/chain-template/hooks/asset-list/useTopTokens.ts b/examples/chain-template/hooks/asset-list/useTopTokens.ts
new file mode 100644
index 000000000..13491ebe0
--- /dev/null
+++ b/examples/chain-template/hooks/asset-list/useTopTokens.ts
@@ -0,0 +1,45 @@
+import { useQuery } from '@tanstack/react-query';
+
+type Token = {
+ price: number;
+ denom: string;
+ symbol: string;
+ liquidity: number;
+ volume_24h: number;
+ volume_24h_change: number;
+ name: string;
+ price_24h_change: number;
+ price_7d_change: number;
+ exponent: number;
+ display: string;
+};
+
+export const handleError = (resp: Response) => {
+ if (!resp.ok) throw Error(resp.statusText);
+ return resp;
+};
+
+const fetchTokens = async (): Promise => {
+ const url = 'https://api-osmosis.imperator.co/tokens/v2/all';
+ return fetch(url)
+ .then(handleError)
+ .then((res) => res.json());
+};
+
+const MAX_TOP_TOKENS = 60;
+
+const filterTopTokens = (tokens: Token[]) => {
+ return tokens
+ .sort((a, b) => b.liquidity - a.liquidity)
+ .slice(0, MAX_TOP_TOKENS)
+ .map((token) => token.symbol);
+};
+
+export const useTopTokens = () => {
+ return useQuery({
+ queryKey: ['tokens'],
+ queryFn: fetchTokens,
+ select: filterTopTokens,
+ staleTime: Infinity,
+ });
+};
diff --git a/examples/chain-template/hooks/asset-list/useTotalAssets.ts b/examples/chain-template/hooks/asset-list/useTotalAssets.ts
new file mode 100644
index 000000000..6a0820c38
--- /dev/null
+++ b/examples/chain-template/hooks/asset-list/useTotalAssets.ts
@@ -0,0 +1,202 @@
+import { Coin } from '@cosmjs/stargate';
+import { useChain } from '@cosmos-kit/react';
+import { UseQueryResult } from '@tanstack/react-query';
+import BigNumber from 'bignumber.js';
+import { useEffect, useMemo } from 'react';
+import { useChainUtils } from './useChainUtils';
+import { useChainAssetsPrices } from './useChainAssetsPrices';
+import { osmosisChainName } from '@/config';
+import { Pool } from 'osmo-query/dist/codegen/osmosis/gamm/pool-models/balancer/balancerPool';
+import { convertGammTokenToDollarValue } from '@/utils';
+import { useOsmoQueryHooks } from './useOsmoQueryHooks';
+
+(BigInt.prototype as any).toJSON = function () {
+ return this.toString();
+};
+
+export const getPagination = (limit: bigint) => ({
+ limit,
+ key: new Uint8Array(),
+ offset: 0n,
+ countTotal: true,
+ reverse: false,
+});
+
+export const useTotalAssets = (chainName: string) => {
+ const { address } = useChain(chainName);
+
+ const { cosmosQuery, osmoQuery, isReady, isFetching } =
+ useOsmoQueryHooks(chainName);
+
+ const isOsmosisChain = chainName === osmosisChainName;
+
+ const allBalancesQuery: UseQueryResult =
+ cosmosQuery.bank.v1beta1.useAllBalances({
+ request: {
+ address: address || '',
+ pagination: getPagination(100n),
+ },
+ options: {
+ enabled: isReady,
+ select: ({ balances }) => balances || [],
+ },
+ });
+
+ const delegationsQuery: UseQueryResult =
+ cosmosQuery.staking.v1beta1.useDelegatorDelegations({
+ request: {
+ delegatorAddr: address || '',
+ pagination: getPagination(100n),
+ },
+ options: {
+ enabled: isReady,
+ select: ({ delegationResponses }) =>
+ delegationResponses.map(({ balance }) => balance) || [],
+ },
+ });
+
+ const lockedCoinsQuery: UseQueryResult =
+ osmoQuery.lockup.useAccountLockedCoins({
+ request: {
+ owner: address || '',
+ },
+ options: {
+ enabled: isReady && isOsmosisChain,
+ select: ({ coins }) => coins || [],
+ staleTime: Infinity,
+ },
+ });
+
+ const poolsQuery: UseQueryResult = osmoQuery.gamm.v1beta1.usePools({
+ request: {
+ pagination: getPagination(5000n),
+ },
+ options: {
+ enabled: isReady && isOsmosisChain,
+ select: ({ pools }) => pools || [],
+ staleTime: Infinity,
+ },
+ });
+
+ const pricesQuery = useChainAssetsPrices(chainName);
+
+ const dataQueries = {
+ pools: poolsQuery,
+ prices: pricesQuery,
+ allBalances: allBalancesQuery,
+ delegations: delegationsQuery,
+ lockedCoins: lockedCoinsQuery,
+ };
+
+ const queriesToReset = [dataQueries.allBalances, dataQueries.delegations];
+ const queriesToRefetch = [dataQueries.allBalances];
+
+ useEffect(() => {
+ queriesToReset.forEach((query) => query.remove());
+ // eslint-disable-next-line react-hooks/exhaustive-deps
+ }, [chainName]);
+
+ const queries = Object.values(dataQueries);
+ const isInitialFetching = queries.some(({ isFetching }) => isFetching);
+ const isRefetching = queries.some(({ isRefetching }) => isRefetching);
+ const isLoading = isFetching || isInitialFetching || isRefetching;
+
+ type AllQueries = typeof dataQueries;
+
+ type QueriesData = {
+ [Key in keyof AllQueries]: NonNullable;
+ };
+
+ const { calcCoinDollarValue } = useChainUtils(chainName);
+
+ const zero = new BigNumber(0);
+
+ const data = useMemo(() => {
+ if (isLoading) return;
+
+ const queriesData = Object.fromEntries(
+ Object.entries(dataQueries).map(([key, query]) => [key, query.data])
+ ) as QueriesData;
+
+ const {
+ allBalances,
+ delegations,
+ lockedCoins = [],
+ pools = [],
+ prices = {},
+ } = queriesData;
+
+ const stakedTotal = delegations
+ ?.map((coin) => calcCoinDollarValue(prices, coin))
+ .reduce((total, cur) => total.plus(cur), zero)
+ .toString();
+
+ const balancesTotal = allBalances
+ ?.filter(({ denom }) => !denom.startsWith('gamm') && prices[denom])
+ .map((coin) => calcCoinDollarValue(prices, coin))
+ .reduce((total, cur) => total.plus(cur), zero)
+ .toString();
+
+ let bondedTotal;
+ let liquidityTotal;
+
+ if (isOsmosisChain) {
+ const liquidityCoins = (allBalances ?? []).filter(({ denom }) =>
+ denom.startsWith('gamm')
+ );
+ const gammTokenDenoms = [
+ ...(liquidityCoins ?? []),
+ ...(lockedCoins ?? []),
+ ].map(({ denom }) => denom);
+
+ const uniqueDenoms = [...new Set(gammTokenDenoms)];
+
+ const poolsMap: Record = pools
+ .filter(({ totalShares }) => uniqueDenoms.includes(totalShares.denom))
+ .filter((pool) => !pool?.$typeUrl?.includes('stableswap'))
+ .filter(({ poolAssets }) => {
+ return poolAssets.every(({ token }) => {
+ const isGammToken = token.denom.startsWith('gamm/pool');
+ return !isGammToken && prices[token.denom];
+ });
+ })
+ .reduce((prev, cur) => ({ ...prev, [cur.totalShares.denom]: cur }), {});
+
+ bondedTotal = lockedCoins
+ .map((coin) => {
+ const poolData = poolsMap[coin.denom];
+ if (!poolData) return '0';
+ return convertGammTokenToDollarValue(coin, poolData, prices);
+ })
+ .reduce((total, cur) => total.plus(cur), zero)
+ .toString();
+
+ liquidityTotal = liquidityCoins
+ .map((coin) => {
+ const poolData = poolsMap[coin.denom];
+ if (!poolData) return '0';
+ return convertGammTokenToDollarValue(coin, poolData, prices);
+ })
+ .reduce((total, cur) => total.plus(cur), zero)
+ .toString();
+ }
+
+ const total = [stakedTotal, balancesTotal, bondedTotal, liquidityTotal]
+ .reduce((total, cur) => total.plus(cur || 0), zero)
+ .decimalPlaces(2)
+ .toString();
+
+ return {
+ total,
+ prices,
+ allBalances,
+ };
+ // eslint-disable-next-line react-hooks/exhaustive-deps
+ }, [isLoading]);
+
+ const refetch = () => {
+ queriesToRefetch.forEach((query) => query.refetch());
+ };
+
+ return { data, isLoading, refetch };
+};
diff --git a/examples/chain-template/hooks/common/index.ts b/examples/chain-template/hooks/common/index.ts
new file mode 100644
index 000000000..e013bcb0a
--- /dev/null
+++ b/examples/chain-template/hooks/common/index.ts
@@ -0,0 +1,8 @@
+export * from './useTx';
+export * from './useToast';
+export * from './useDisclosure';
+export * from './useCopyToClipboard';
+export * from './useOutsideClick';
+export * from './useMediaQuery';
+export * from './useDetectBreakpoints';
+export * from './useStarshipChains';
diff --git a/examples/chain-template/hooks/common/useCopyToClipboard.ts b/examples/chain-template/hooks/common/useCopyToClipboard.ts
new file mode 100644
index 000000000..e2e143e8f
--- /dev/null
+++ b/examples/chain-template/hooks/common/useCopyToClipboard.ts
@@ -0,0 +1,18 @@
+import { useState } from 'react';
+import { toast } from '@interchain-ui/react';
+
+export const useCopyToClipboard = () => {
+ const [isCopied, setIsCopied] = useState(false);
+
+ const copyToClipboard = async (text: string) => {
+ try {
+ await navigator.clipboard.writeText(text);
+ setIsCopied(true);
+ setTimeout(() => setIsCopied(false), 1000);
+ } catch (err) {
+ toast.error('Failed to copy text. Please try again.');
+ }
+ };
+
+ return { isCopied, copyToClipboard };
+};
diff --git a/examples/chain-template/hooks/common/useDetectBreakpoints.ts b/examples/chain-template/hooks/common/useDetectBreakpoints.ts
new file mode 100644
index 000000000..5240375c3
--- /dev/null
+++ b/examples/chain-template/hooks/common/useDetectBreakpoints.ts
@@ -0,0 +1,13 @@
+import { breakpoints } from '@/config';
+import { useMediaQuery } from './useMediaQuery';
+
+export const useDetectBreakpoints = () => {
+ const { mobile, tablet, desktop } = breakpoints;
+
+ const isSmMobile = useMediaQuery(`(max-width: ${mobile - 1}px)`);
+ const isMobile = useMediaQuery(`(max-width: ${tablet - 1}px)`);
+ const isTablet = useMediaQuery(`(max-width: ${desktop - 1}px)`);
+ const isDesktop = useMediaQuery(`(min-width: ${desktop}px)`);
+
+ return { isSmMobile, isMobile, isTablet, isDesktop };
+};
diff --git a/examples/chain-template/hooks/common/useDisclosure.ts b/examples/chain-template/hooks/common/useDisclosure.ts
new file mode 100644
index 000000000..cb14407a5
--- /dev/null
+++ b/examples/chain-template/hooks/common/useDisclosure.ts
@@ -0,0 +1,18 @@
+import { useState } from 'react';
+
+export const useDisclosure = (initialState = false) => {
+ const [isOpen, setIsOpen] = useState(initialState);
+
+ const onClose = () => setIsOpen(false);
+ const onOpen = () => setIsOpen(true);
+ const onToggle = () => setIsOpen((prev) => !prev);
+
+ return {
+ isOpen,
+ onClose,
+ onOpen,
+ onToggle,
+ };
+};
+
+export type UseDisclosureReturn = ReturnType;
diff --git a/examples/chain-template/hooks/common/useMediaQuery.ts b/examples/chain-template/hooks/common/useMediaQuery.ts
new file mode 100644
index 000000000..902662469
--- /dev/null
+++ b/examples/chain-template/hooks/common/useMediaQuery.ts
@@ -0,0 +1,27 @@
+import { useState, useCallback, useEffect } from 'react';
+
+export const useMediaQuery = (mediaQuery: string) => {
+ const [targetReached, setTargetReached] = useState(false);
+
+ const updateTarget = useCallback((e: MediaQueryListEvent) => {
+ if (e.matches) {
+ setTargetReached(true);
+ } else {
+ setTargetReached(false);
+ }
+ }, []);
+
+ useEffect(() => {
+ const media = window.matchMedia(mediaQuery);
+ media.addEventListener('change', updateTarget);
+
+ // Check on mount (callback is not called until a change occurs)
+ if (media.matches) {
+ setTargetReached(true);
+ }
+
+ return () => media.removeEventListener('change', updateTarget);
+ }, []);
+
+ return targetReached;
+};
diff --git a/examples/chain-template/hooks/common/useOutsideClick.ts b/examples/chain-template/hooks/common/useOutsideClick.ts
new file mode 100644
index 000000000..4f4670b3a
--- /dev/null
+++ b/examples/chain-template/hooks/common/useOutsideClick.ts
@@ -0,0 +1,27 @@
+import { useEffect } from 'react';
+
+interface UseOutsideClickProps {
+ ref: React.RefObject;
+ handler: () => void;
+ shouldListen?: boolean;
+}
+
+export const useOutsideClick = ({ ref, handler, shouldListen = true }: UseOutsideClickProps) => {
+ const handleClick = (event: MouseEvent) => {
+ if (ref.current && !ref.current.contains(event.target as Node)) {
+ handler();
+ }
+ };
+
+ useEffect(() => {
+ if (shouldListen) {
+ document.addEventListener('mousedown', handleClick);
+ } else {
+ document.removeEventListener('mousedown', handleClick);
+ }
+
+ return () => {
+ document.removeEventListener('mousedown', handleClick);
+ };
+ }, [ref, handler, shouldListen]);
+};
diff --git a/examples/chain-template/hooks/common/useStarshipChains.ts b/examples/chain-template/hooks/common/useStarshipChains.ts
new file mode 100644
index 000000000..a1bbf3409
--- /dev/null
+++ b/examples/chain-template/hooks/common/useStarshipChains.ts
@@ -0,0 +1,47 @@
+import { useQuery } from '@tanstack/react-query';
+import { AssetList, Chain } from '@chain-registry/types';
+
+import { StarshipConfig } from '@/starship';
+import config from '@/starship/configs/config.yaml';
+
+export const useStarshipChains = () => {
+ const { registry } = config as StarshipConfig;
+ const baseUrl = `http://localhost:${registry.ports.rest}`;
+
+ return useQuery({
+ queryKey: ['starship-chains'],
+ queryFn: async () => {
+ try {
+ const { chains } = (await fetcher<{ chains: Chain[] }>(
+ `${baseUrl}/chains`
+ )) ?? { chains: [] };
+ const chainIds = chains.map((chain) => chain.chain_id);
+ const assets = (await Promise.all(
+ chainIds.map((chainId) =>
+ fetcher(`${baseUrl}/chains/${chainId}/assets`)
+ )
+ ).then((assetLists) => assetLists.filter(Boolean))) as AssetList[];
+
+ return { chains, assets };
+ } catch (error) {
+ console.error(error);
+ return undefined;
+ }
+ },
+ staleTime: Infinity,
+ cacheTime: Infinity,
+ refetchOnMount: false,
+ refetchOnReconnect: false,
+ });
+};
+
+const fetcher = async (url: string): Promise => {
+ try {
+ const response = await fetch(url);
+ const data = await response.json();
+ return data;
+ } catch (error) {
+ console.error(error);
+ return null;
+ }
+};
diff --git a/examples/chain-template/hooks/common/useToast.tsx b/examples/chain-template/hooks/common/useToast.tsx
new file mode 100644
index 000000000..2b3e89ef8
--- /dev/null
+++ b/examples/chain-template/hooks/common/useToast.tsx
@@ -0,0 +1,35 @@
+import { toast, Text, ToastType, Spinner } from '@interchain-ui/react';
+
+export type CustomToast = {
+ type: ToastType;
+ title: string;
+ duration?: number;
+ description?: string | JSX.Element;
+};
+
+const ToastTitle = ({ title }: { title: string }) => {
+ return (
+
+ {title}
+
+ );
+};
+
+export const useToast = () => {
+ const customToast = ({
+ type,
+ title,
+ description,
+ duration = 5000,
+ }: CustomToast) => {
+ return toast.custom(type, , {
+ duration,
+ description,
+ icon: type === 'loading' ? : undefined,
+ });
+ };
+
+ customToast.close = toast.dismiss;
+
+ return { toast: customToast };
+};
diff --git a/examples/chain-template/hooks/common/useTx.ts b/examples/chain-template/hooks/common/useTx.ts
new file mode 100644
index 000000000..d1d68ed19
--- /dev/null
+++ b/examples/chain-template/hooks/common/useTx.ts
@@ -0,0 +1,113 @@
+import { cosmos } from 'interchain-query';
+import { useChain } from '@cosmos-kit/react';
+import { isDeliverTxSuccess, StdFee } from '@cosmjs/stargate';
+import { useToast, type CustomToast } from './useToast';
+
+const txRaw = cosmos.tx.v1beta1.TxRaw;
+
+interface Msg {
+ typeUrl: string;
+ value: any;
+}
+
+interface TxOptions {
+ fee?: StdFee | null;
+ toast?: Partial;
+ onSuccess?: () => void;
+}
+
+export enum TxStatus {
+ Failed = 'Transaction Failed',
+ Successful = 'Transaction Successful',
+ Broadcasting = 'Transaction Broadcasting',
+}
+
+export const useTx = (chainName: string) => {
+ const { address, getSigningStargateClient, estimateFee } =
+ useChain(chainName);
+
+ const { toast } = useToast();
+
+ const tx = async (msgs: Msg[], options: TxOptions) => {
+ if (!address) {
+ toast({
+ type: 'error',
+ title: 'Wallet not connected',
+ description: 'Please connect your wallet',
+ });
+ return;
+ }
+
+ let signed: Parameters['0'];
+ let client: Awaited>;
+
+ try {
+ let fee: StdFee;
+ if (options?.fee) {
+ fee = options.fee;
+ client = await getSigningStargateClient();
+ } else {
+ const [_fee, _client] = await Promise.all([
+ estimateFee(msgs),
+ getSigningStargateClient(),
+ ]);
+ fee = _fee;
+ client = _client;
+ }
+ signed = await client.sign(address, msgs, fee, '');
+ } catch (e: any) {
+ console.error(e);
+ toast({
+ title: TxStatus.Failed,
+ description: e?.message || 'An unexpected error has occured',
+ type: 'error',
+ });
+ return;
+ }
+
+ let broadcastToastId: string | number;
+
+ broadcastToastId = toast({
+ title: TxStatus.Broadcasting,
+ description: 'Waiting for transaction to be included in the block',
+ type: 'loading',
+ duration: 999999,
+ });
+
+ if (client && signed) {
+ await client
+ .broadcastTx(Uint8Array.from(txRaw.encode(signed).finish()))
+ .then((res: any) => {
+ if (isDeliverTxSuccess(res)) {
+ if (options.onSuccess) options.onSuccess();
+
+ toast({
+ title: options.toast?.title || TxStatus.Successful,
+ type: options.toast?.type || 'success',
+ description: options.toast?.description,
+ });
+ } else {
+ toast({
+ title: TxStatus.Failed,
+ description: res?.rawLog,
+ type: 'error',
+ duration: 10000,
+ });
+ }
+ })
+ .catch((err) => {
+ toast({
+ title: TxStatus.Failed,
+ description: err?.message,
+ type: 'error',
+ duration: 10000,
+ });
+ })
+ .finally(() => toast.close(broadcastToastId));
+ } else {
+ toast.close(broadcastToastId);
+ }
+ };
+
+ return { tx };
+};
diff --git a/examples/chain-template/hooks/contract/index.ts b/examples/chain-template/hooks/contract/index.ts
new file mode 100644
index 000000000..c3824d24b
--- /dev/null
+++ b/examples/chain-template/hooks/contract/index.ts
@@ -0,0 +1,7 @@
+export * from './useContractInfo';
+export * from './useQueryContract';
+export * from './useExecuteContractTx';
+export * from './useStoreCodeTx';
+export * from './useInstantiateTx';
+export * from './useMyContracts';
+export * from './useCodeDetails';
diff --git a/examples/chain-template/hooks/contract/useCodeDetails.ts b/examples/chain-template/hooks/contract/useCodeDetails.ts
new file mode 100644
index 000000000..0949ee364
--- /dev/null
+++ b/examples/chain-template/hooks/contract/useCodeDetails.ts
@@ -0,0 +1,28 @@
+import { prettyCodeInfo } from '@/utils';
+import { useQuery } from '@tanstack/react-query';
+import { useCwQueryClient } from './useCwQueryClient';
+
+export const useCodeDetails = (codeId: number, enabled: boolean = true) => {
+ const { data: client } = useCwQueryClient();
+
+ return useQuery({
+ queryKey: ['codeDetails', codeId],
+ queryFn: async () => {
+ if (!client) return;
+ try {
+ const { codeInfo } = await client.cosmwasm.wasm.v1.code({
+ codeId: BigInt(codeId),
+ });
+ return codeInfo && prettyCodeInfo(codeInfo);
+ } catch (error) {
+ console.error(error);
+ }
+ },
+ enabled: !!client && enabled,
+ retry: false,
+ cacheTime: 0,
+ refetchOnMount: false,
+ refetchOnReconnect: false,
+ refetchOnWindowFocus: false,
+ });
+};
diff --git a/examples/chain-template/hooks/contract/useContractInfo.ts b/examples/chain-template/hooks/contract/useContractInfo.ts
new file mode 100644
index 000000000..a70291e02
--- /dev/null
+++ b/examples/chain-template/hooks/contract/useContractInfo.ts
@@ -0,0 +1,25 @@
+import { useQuery } from '@tanstack/react-query';
+import { useCosmWasmClient } from './useCosmWasmClient';
+import { useChainStore } from '@/contexts';
+import { useChain } from '@cosmos-kit/react';
+
+export const useContractInfo = ({
+ contractAddress,
+ enabled = true,
+}: {
+ contractAddress: string;
+ enabled?: boolean;
+}) => {
+ const { data: cwClient } = useCosmWasmClient();
+ const { selectedChain } = useChainStore();
+ const { getCosmWasmClient } = useChain(selectedChain);
+
+ return useQuery({
+ queryKey: ['useContractInfo', contractAddress],
+ queryFn: async () => {
+ const client = cwClient ?? (await getCosmWasmClient());
+ return client.getContract(contractAddress);
+ },
+ enabled: !!contractAddress && enabled,
+ });
+};
diff --git a/examples/chain-template/hooks/contract/useCosmWasmClient.ts b/examples/chain-template/hooks/contract/useCosmWasmClient.ts
new file mode 100644
index 000000000..50ef7d875
--- /dev/null
+++ b/examples/chain-template/hooks/contract/useCosmWasmClient.ts
@@ -0,0 +1,17 @@
+import { useChain } from '@cosmos-kit/react';
+import { useQuery } from '@tanstack/react-query';
+import { useChainStore } from '@/contexts';
+
+export const useCosmWasmClient = () => {
+ const { selectedChain } = useChainStore();
+ const { getCosmWasmClient } = useChain(selectedChain);
+
+ return useQuery({
+ queryKey: ['useCosmWasmClient', selectedChain],
+ queryFn: () => getCosmWasmClient(),
+ staleTime: Infinity,
+ refetchOnMount: false,
+ refetchOnReconnect: false,
+ refetchOnWindowFocus: false,
+ });
+};
diff --git a/examples/chain-template/hooks/contract/useCwQueryClient.ts b/examples/chain-template/hooks/contract/useCwQueryClient.ts
new file mode 100644
index 000000000..66d63df92
--- /dev/null
+++ b/examples/chain-template/hooks/contract/useCwQueryClient.ts
@@ -0,0 +1,25 @@
+import { useChainStore } from '@/contexts';
+import { useChain } from '@cosmos-kit/react';
+import { useQuery } from '@tanstack/react-query';
+import { cosmwasm } from 'interchain-query';
+
+export const useCwQueryClient = () => {
+ const { selectedChain } = useChainStore();
+ const { getRpcEndpoint } = useChain(selectedChain);
+
+ return useQuery({
+ queryKey: ['cwQueryClient', selectedChain],
+ queryFn: async () => {
+ const rpcEndpoint = await getRpcEndpoint();
+ const client = await cosmwasm.ClientFactory.createRPCQueryClient({
+ rpcEndpoint,
+ });
+ return client;
+ },
+ staleTime: Infinity,
+ cacheTime: Infinity,
+ refetchOnMount: false,
+ refetchOnReconnect: false,
+ refetchOnWindowFocus: false,
+ });
+};
diff --git a/examples/chain-template/hooks/contract/useExecuteContractTx.tsx b/examples/chain-template/hooks/contract/useExecuteContractTx.tsx
new file mode 100644
index 000000000..41194c9e7
--- /dev/null
+++ b/examples/chain-template/hooks/contract/useExecuteContractTx.tsx
@@ -0,0 +1,84 @@
+import Link from 'next/link';
+import { Coin, StdFee } from '@cosmjs/amino';
+import { useChain } from '@cosmos-kit/react';
+
+import { useToast } from '../common';
+import { Box, Text, Icon } from '@interchain-ui/react';
+import { getExplorerLink } from '@/utils';
+
+interface ExecuteTxParams {
+ address: string;
+ contractAddress: string;
+ fee: StdFee;
+ msg: object;
+ funds: Coin[];
+ onTxSucceed?: () => void;
+ onTxFailed?: () => void;
+}
+
+export const useExecuteContractTx = (chainName: string) => {
+ const { getSigningCosmWasmClient, chain } = useChain(chainName);
+
+ const executeTx = async ({
+ address,
+ contractAddress,
+ fee,
+ funds,
+ msg,
+ onTxFailed = () => {},
+ onTxSucceed = () => {},
+ }: ExecuteTxParams) => {
+ const client = await getSigningCosmWasmClient();
+ const { toast } = useToast();
+
+ const toastId = toast({
+ title: 'Sending Transaction',
+ type: 'loading',
+ duration: 999999,
+ });
+
+ try {
+ const result = await client.execute(
+ address,
+ contractAddress,
+ msg,
+ fee,
+ undefined,
+ funds
+ );
+ onTxSucceed();
+ toast.close(toastId);
+ toast({
+ title: 'Transaction Successful',
+ type: 'success',
+ description: (
+
+
+ View tx details
+
+
+
+ ),
+ });
+ } catch (e: any) {
+ console.error(e);
+ onTxFailed();
+ toast.close(toastId);
+ toast({
+ title: 'Transaction Failed',
+ type: 'error',
+ description: (
+
+ {e.message}
+
+ ),
+ duration: 10000,
+ });
+ }
+ };
+
+ return { executeTx };
+};
diff --git a/examples/chain-template/hooks/contract/useInstantiateTx.tsx b/examples/chain-template/hooks/contract/useInstantiateTx.tsx
new file mode 100644
index 000000000..e1bbbfda7
--- /dev/null
+++ b/examples/chain-template/hooks/contract/useInstantiateTx.tsx
@@ -0,0 +1,82 @@
+import { Box } from '@interchain-ui/react';
+import { useChain } from '@cosmos-kit/react';
+import { Coin, StdFee } from '@cosmjs/amino';
+import { InstantiateResult } from '@cosmjs/cosmwasm-stargate';
+
+import { useToast } from '../common';
+
+interface InstantiateTxParams {
+ address: string;
+ codeId: number;
+ initMsg: object;
+ label: string;
+ admin: string;
+ funds: Coin[];
+ onTxSucceed?: (txInfo: InstantiateResult) => void;
+ onTxFailed?: () => void;
+}
+
+export const useInstantiateTx = (chainName: string) => {
+ const { getSigningCosmWasmClient } = useChain(chainName);
+
+ const instantiateTx = async ({
+ address,
+ codeId,
+ initMsg,
+ label,
+ admin,
+ funds,
+ onTxSucceed = () => {},
+ onTxFailed = () => {},
+ }: InstantiateTxParams) => {
+ const client = await getSigningCosmWasmClient();
+ const { toast } = useToast();
+
+ const toastId = toast({
+ title: 'Sending Transaction',
+ type: 'loading',
+ duration: 999999,
+ });
+
+ const fee: StdFee = {
+ amount: [],
+ gas: '300000',
+ };
+
+ try {
+ const result = await client.instantiate(
+ address,
+ codeId,
+ initMsg,
+ label,
+ fee,
+ {
+ admin,
+ funds,
+ }
+ );
+ onTxSucceed(result);
+ toast.close(toastId);
+ toast({
+ title: 'Instantiate Success',
+ type: 'success',
+ });
+ } catch (e: any) {
+ console.error(e);
+ onTxFailed();
+ toast.close(toastId);
+ toast({
+ title: 'Transaction Failed',
+ type: 'error',
+ description: (
+
+ {e.message}
+
+ ),
+ duration: 10000,
+ });
+ }
+ };
+
+ return { instantiateTx };
+};
diff --git a/examples/chain-template/hooks/contract/useMyContracts.ts b/examples/chain-template/hooks/contract/useMyContracts.ts
new file mode 100644
index 000000000..6c026b613
--- /dev/null
+++ b/examples/chain-template/hooks/contract/useMyContracts.ts
@@ -0,0 +1,43 @@
+import { useChainStore } from '@/contexts';
+import { useChain } from '@cosmos-kit/react';
+import { useQuery } from '@tanstack/react-query';
+import { useCwQueryClient } from './useCwQueryClient';
+
+export const useMyContracts = () => {
+ const { selectedChain } = useChainStore();
+ const { address } = useChain(selectedChain);
+ const { data: client } = useCwQueryClient();
+
+ return useQuery({
+ queryKey: ['myContracts', selectedChain, address],
+ queryFn: async () => {
+ if (!client || !address) return [];
+
+ try {
+ const { contractAddresses } =
+ await client.cosmwasm.wasm.v1.contractsByCreator({
+ creatorAddress: address,
+ pagination: {
+ limit: 1000n,
+ reverse: true,
+ countTotal: false,
+ key: new Uint8Array(),
+ offset: 0n,
+ },
+ });
+
+ const contractsInfo = await Promise.all(
+ contractAddresses.map((address) =>
+ client.cosmwasm.wasm.v1.contractInfo({ address })
+ )
+ );
+
+ return contractsInfo;
+ } catch (error) {
+ console.error(error);
+ return [];
+ }
+ },
+ enabled: !!client && !!address,
+ });
+};
diff --git a/examples/chain-template/hooks/contract/useQueryContract.ts b/examples/chain-template/hooks/contract/useQueryContract.ts
new file mode 100644
index 000000000..a9eb1df11
--- /dev/null
+++ b/examples/chain-template/hooks/contract/useQueryContract.ts
@@ -0,0 +1,23 @@
+import { useQuery } from '@tanstack/react-query';
+import { useCosmWasmClient } from './useCosmWasmClient';
+
+export const useQueryContract = ({
+ contractAddress,
+ queryMsg,
+ enabled = true,
+}: {
+ contractAddress: string;
+ queryMsg: string;
+ enabled?: boolean;
+}) => {
+ const { data: client } = useCosmWasmClient();
+
+ return useQuery({
+ queryKey: ['useQueryContract', contractAddress, queryMsg],
+ queryFn: async () => {
+ if (!client) return null;
+ return client.queryContractSmart(contractAddress, JSON.parse(queryMsg));
+ },
+ enabled: !!client && !!contractAddress && !!queryMsg && enabled,
+ });
+};
diff --git a/examples/chain-template/hooks/contract/useStoreCodeTx.tsx b/examples/chain-template/hooks/contract/useStoreCodeTx.tsx
new file mode 100644
index 000000000..750066f37
--- /dev/null
+++ b/examples/chain-template/hooks/contract/useStoreCodeTx.tsx
@@ -0,0 +1,81 @@
+import { useChain } from '@cosmos-kit/react';
+import { AccessType } from 'interchain-query/cosmwasm/wasm/v1/types';
+import { cosmwasm } from 'interchain-query';
+import { gzip } from 'node-gzip';
+import { StdFee } from '@cosmjs/amino';
+import { Box } from '@interchain-ui/react';
+
+import { useToast } from '../common';
+import { prettyStoreCodeTxResult } from '@/utils';
+
+const { storeCode } = cosmwasm.wasm.v1.MessageComposer.fromPartial;
+
+type StoreCodeTxParams = {
+ wasmFile: File;
+ permission: AccessType;
+ addresses: string[];
+ onTxSucceed?: (codeId: string) => void;
+ onTxFailed?: () => void;
+};
+
+export const useStoreCodeTx = (chainName: string) => {
+ const { getSigningCosmWasmClient, address } = useChain(chainName);
+ const { toast } = useToast();
+
+ const storeCodeTx = async ({
+ wasmFile,
+ permission,
+ addresses,
+ onTxSucceed = () => {},
+ onTxFailed = () => {},
+ }: StoreCodeTxParams) => {
+ if (!address) return;
+
+ const toastId = toast({
+ title: 'Sending Transaction',
+ type: 'loading',
+ duration: 999999,
+ });
+
+ const wasmCode = await wasmFile.arrayBuffer();
+ const wasmByteCode = new Uint8Array(await gzip(new Uint8Array(wasmCode)));
+
+ const message = storeCode({
+ sender: address,
+ wasmByteCode,
+ instantiatePermission: {
+ permission,
+ addresses,
+ },
+ });
+
+ const fee: StdFee = { amount: [], gas: '5800000' };
+
+ try {
+ const client = await getSigningCosmWasmClient();
+ const result = await client.signAndBroadcast(address, [message], fee);
+ onTxSucceed(prettyStoreCodeTxResult(result).codeId);
+ toast.close(toastId);
+ toast({
+ title: 'Contract uploaded successfully',
+ type: 'success',
+ });
+ } catch (error: any) {
+ console.error('Failed to upload contract:', error);
+ onTxFailed();
+ toast.close(toastId);
+ toast({
+ title: 'Transaction Failed',
+ type: 'error',
+ description: (
+
+ {error.message}
+
+ ),
+ duration: 10000,
+ });
+ }
+ };
+
+ return { storeCodeTx };
+};
diff --git a/examples/chain-template/hooks/index.ts b/examples/chain-template/hooks/index.ts
new file mode 100644
index 000000000..9b9594a60
--- /dev/null
+++ b/examples/chain-template/hooks/index.ts
@@ -0,0 +1,5 @@
+export * from './common';
+export * from './staking';
+export * from './voting';
+export * from './asset-list';
+export * from './contract';
diff --git a/examples/chain-template/hooks/staking/index.ts b/examples/chain-template/hooks/staking/index.ts
new file mode 100644
index 000000000..ba6cecec0
--- /dev/null
+++ b/examples/chain-template/hooks/staking/index.ts
@@ -0,0 +1,3 @@
+export * from './useStakingData';
+export * from './useAssetsPrices';
+export * from './useValidatorLogos';
diff --git a/examples/chain-template/hooks/staking/useAssetsPrices.ts b/examples/chain-template/hooks/staking/useAssetsPrices.ts
new file mode 100644
index 000000000..76af1d357
--- /dev/null
+++ b/examples/chain-template/hooks/staking/useAssetsPrices.ts
@@ -0,0 +1,53 @@
+import { assets } from 'chain-registry';
+import { useQuery } from '@tanstack/react-query';
+import { AssetList } from '@chain-registry/types';
+
+type CoinGeckoId = string;
+type CoinGeckoUSD = { usd: number };
+type CoinGeckoUSDResponse = Record;
+export type Prices = Record;
+
+const handleError = (resp: Response) => {
+ if (!resp.ok) throw Error(resp.statusText);
+ return resp;
+};
+
+const getGeckoIdsFromAssets = (assets: AssetList[]) => {
+ return assets
+ .map((asset) => asset.assets[0].coingecko_id)
+ .filter(Boolean) as string[];
+};
+
+const formatPrices = (
+ prices: CoinGeckoUSDResponse,
+ assets: AssetList[]
+): Prices => {
+ return Object.entries(prices).reduce((priceHash, cur) => {
+ const assetList = assets.find(
+ (asset) => asset.assets[0].coingecko_id === cur[0]
+ )!;
+ const denom = assetList.assets[0].base;
+ return { ...priceHash, [denom]: cur[1].usd };
+ }, {});
+};
+
+const fetchPrices = async (
+ geckoIds: string[]
+): Promise => {
+ const url = `https://api.coingecko.com/api/v3/simple/price?ids=${geckoIds.join()}&vs_currencies=usd`;
+
+ return fetch(url)
+ .then(handleError)
+ .then((res) => res.json());
+};
+
+export const useAssetsPrices = () => {
+ const geckoIds = getGeckoIdsFromAssets(assets);
+
+ return useQuery({
+ queryKey: ['useAssetsPrices'],
+ queryFn: () => fetchPrices(geckoIds),
+ select: (data) => formatPrices(data, assets),
+ staleTime: Infinity,
+ });
+};
diff --git a/examples/chain-template/hooks/staking/useStakingData.ts b/examples/chain-template/hooks/staking/useStakingData.ts
new file mode 100644
index 000000000..f23a70808
--- /dev/null
+++ b/examples/chain-template/hooks/staking/useStakingData.ts
@@ -0,0 +1,265 @@
+import { useEffect, useMemo } from 'react';
+import { useChain } from '@cosmos-kit/react';
+import BigNumber from 'bignumber.js';
+import {
+ cosmos,
+ useRpcClient,
+ useRpcEndpoint,
+ createRpcQueryHooks,
+} from 'interchain-query';
+
+import { useAssetsPrices } from './useAssetsPrices';
+import {
+ shiftDigits,
+ calcTotalDelegation,
+ extendValidators,
+ parseAnnualProvisions,
+ parseDelegations,
+ parseRewards,
+ parseUnbondingDays,
+ parseValidators,
+ getCoin,
+ getExponent,
+} from '@/utils';
+
+(BigInt.prototype as any).toJSON = function () {
+ return this.toString();
+};
+
+export const useStakingData = (chainName: string) => {
+ const { address, getRpcEndpoint } = useChain(chainName);
+
+ const coin = getCoin(chainName);
+ const exp = getExponent(chainName);
+
+ const rpcEndpointQuery = useRpcEndpoint({
+ getter: getRpcEndpoint,
+ options: {
+ enabled: !!address,
+ staleTime: Infinity,
+ queryKeyHashFn: (queryKey) => {
+ return JSON.stringify([...queryKey, chainName]);
+ },
+ },
+ });
+
+ const rpcClientQuery = useRpcClient({
+ rpcEndpoint: rpcEndpointQuery.data || '',
+ options: {
+ enabled: !!address && !!rpcEndpointQuery.data,
+ staleTime: Infinity,
+ },
+ });
+
+ const { cosmos: cosmosQuery } = createRpcQueryHooks({
+ rpc: rpcClientQuery.data,
+ });
+
+ const isDataQueryEnabled = !!address && !!rpcClientQuery.data;
+
+ const balanceQuery = cosmosQuery.bank.v1beta1.useBalance({
+ request: {
+ address: address || '',
+ denom: coin.base,
+ },
+ options: {
+ enabled: isDataQueryEnabled,
+ select: ({ balance }) => shiftDigits(balance?.amount || '0', -exp),
+ },
+ });
+
+ const myValidatorsQuery = cosmosQuery.staking.v1beta1.useDelegatorValidators({
+ request: {
+ delegatorAddr: address || '',
+ pagination: undefined,
+ },
+ options: {
+ enabled: isDataQueryEnabled,
+ select: ({ validators }) => parseValidators(validators),
+ },
+ });
+
+ const rewardsQuery =
+ cosmosQuery.distribution.v1beta1.useDelegationTotalRewards({
+ request: {
+ delegatorAddress: address || '',
+ },
+ options: {
+ enabled: isDataQueryEnabled,
+ select: (data) => parseRewards(data, coin.base, -exp),
+ },
+ });
+
+ const validatorsQuery = cosmosQuery.staking.v1beta1.useValidators({
+ request: {
+ status: cosmos.staking.v1beta1.bondStatusToJSON(
+ cosmos.staking.v1beta1.BondStatus.BOND_STATUS_BONDED
+ ),
+ pagination: {
+ key: new Uint8Array(),
+ offset: 0n,
+ limit: 200n,
+ countTotal: true,
+ reverse: false,
+ },
+ },
+ options: {
+ enabled: isDataQueryEnabled,
+ select: ({ validators }) => {
+ const sorted = validators.sort((a, b) =>
+ new BigNumber(b.tokens).minus(a.tokens).toNumber()
+ );
+ return parseValidators(sorted);
+ },
+ },
+ });
+
+ const delegationsQuery = cosmosQuery.staking.v1beta1.useDelegatorDelegations({
+ request: {
+ delegatorAddr: address || '',
+ pagination: {
+ key: new Uint8Array(),
+ offset: 0n,
+ limit: 100n,
+ countTotal: true,
+ reverse: false,
+ },
+ },
+ options: {
+ enabled: isDataQueryEnabled,
+ select: ({ delegationResponses }) =>
+ parseDelegations(delegationResponses, -exp),
+ },
+ });
+
+ const unbondingDaysQuery = cosmosQuery.staking.v1beta1.useParams({
+ options: {
+ enabled: isDataQueryEnabled,
+ select: ({ params }) => parseUnbondingDays(params),
+ },
+ });
+
+ const annualProvisionsQuery = cosmosQuery.mint.v1beta1.useAnnualProvisions({
+ options: {
+ enabled: isDataQueryEnabled,
+ select: parseAnnualProvisions,
+ retry: false,
+ },
+ });
+
+ const poolQuery = cosmosQuery.staking.v1beta1.usePool({
+ options: {
+ enabled: isDataQueryEnabled,
+ select: ({ pool }) => pool,
+ },
+ });
+
+ const communityTaxQuery = cosmosQuery.distribution.v1beta1.useParams({
+ options: {
+ enabled: isDataQueryEnabled,
+ select: ({ params }) => shiftDigits(params?.communityTax || '0', -18),
+ },
+ });
+
+ const pricesQuery = useAssetsPrices();
+
+ const allQueries = {
+ balance: balanceQuery,
+ myValidators: myValidatorsQuery,
+ rewards: rewardsQuery,
+ allValidators: validatorsQuery,
+ delegations: delegationsQuery,
+ unbondingDays: unbondingDaysQuery,
+ annualProvisions: annualProvisionsQuery,
+ pool: poolQuery,
+ communityTax: communityTaxQuery,
+ prices: pricesQuery,
+ };
+
+ const queriesWithUnchangingKeys = [
+ allQueries.unbondingDays,
+ allQueries.annualProvisions,
+ allQueries.pool,
+ allQueries.communityTax,
+ allQueries.allValidators,
+ ];
+
+ const updatableQueriesAfterMutation = [
+ allQueries.balance,
+ allQueries.myValidators,
+ allQueries.rewards,
+ allQueries.allValidators,
+ allQueries.delegations,
+ ];
+
+ useEffect(() => {
+ queriesWithUnchangingKeys.forEach((query) => query.remove());
+ // eslint-disable-next-line react-hooks/exhaustive-deps
+ }, [chainName]);
+
+ const isInitialFetching = Object.values(allQueries).some(
+ ({ isLoading }) => isLoading
+ );
+
+ const isRefetching = Object.values(allQueries).some(
+ ({ isRefetching }) => isRefetching
+ );
+
+ const isLoading = isInitialFetching || isRefetching;
+
+ type AllQueries = typeof allQueries;
+
+ type QueriesData = {
+ [Key in keyof AllQueries]: NonNullable;
+ };
+
+ const data = useMemo(() => {
+ if (isLoading) return;
+
+ const queriesData = Object.fromEntries(
+ Object.entries(allQueries).map(([key, query]) => [key, query.data])
+ ) as QueriesData;
+
+ const {
+ allValidators,
+ delegations,
+ rewards,
+ myValidators,
+ annualProvisions,
+ communityTax,
+ pool,
+ } = queriesData;
+
+ const chainMetadata = { annualProvisions, communityTax, pool };
+
+ const extendedAllValidators = extendValidators(
+ allValidators,
+ delegations,
+ rewards?.byValidators,
+ chainMetadata
+ );
+
+ const extendedMyValidators = extendValidators(
+ myValidators,
+ delegations,
+ rewards?.byValidators,
+ chainMetadata
+ );
+
+ const totalDelegated = calcTotalDelegation(delegations);
+
+ return {
+ ...queriesData,
+ allValidators: extendedAllValidators,
+ myValidators: extendedMyValidators,
+ totalDelegated,
+ };
+ // eslint-disable-next-line react-hooks/exhaustive-deps
+ }, [isLoading]);
+
+ const refetch = () => {
+ updatableQueriesAfterMutation.forEach((query) => query.refetch());
+ };
+
+ return { data, isLoading, refetch };
+};
diff --git a/examples/chain-template/hooks/staking/useValidatorLogos.ts b/examples/chain-template/hooks/staking/useValidatorLogos.ts
new file mode 100644
index 000000000..01deb5012
--- /dev/null
+++ b/examples/chain-template/hooks/staking/useValidatorLogos.ts
@@ -0,0 +1,13 @@
+import { ExtendedValidator, getLogoUrls } from '@/utils';
+import { useQuery } from '@tanstack/react-query';
+
+export const useValidatorLogos = (
+ chainName: string,
+ validators: ExtendedValidator[]
+) => {
+ return useQuery({
+ queryKey: ['validatorLogos', chainName, validators.length],
+ queryFn: () => getLogoUrls(validators, chainName),
+ staleTime: Infinity,
+ });
+};
diff --git a/examples/chain-template/hooks/voting/index.ts b/examples/chain-template/hooks/voting/index.ts
new file mode 100644
index 000000000..f028800e1
--- /dev/null
+++ b/examples/chain-template/hooks/voting/index.ts
@@ -0,0 +1,5 @@
+export * from './useModal';
+export * from './useVoting';
+export * from './useVotingData';
+export * from './useQueryHooks';
+export * from './useRpcQueryClient';
diff --git a/examples/chain-template/hooks/voting/useModal.ts b/examples/chain-template/hooks/voting/useModal.ts
new file mode 100644
index 000000000..a0d02c107
--- /dev/null
+++ b/examples/chain-template/hooks/voting/useModal.ts
@@ -0,0 +1,13 @@
+import { useState } from 'react';
+
+export function useModal(title = '') {
+ const [modal, setModal] = useState({ open: false, title });
+
+ const open = () => setModal(modal => ({ ...modal, open: true }));
+ const close = () => setModal(modal => ({ ...modal, open: false }));
+ const toggle = () => setModal(modal => ({ ...modal, open: !modal.open }));
+
+ const setTitle = (title: string) => setModal(modal => ({ ...modal, title }));
+
+ return { modal, open, close, toggle, setTitle }
+}
\ No newline at end of file
diff --git a/examples/chain-template/hooks/voting/useQueryHooks.ts b/examples/chain-template/hooks/voting/useQueryHooks.ts
new file mode 100644
index 000000000..058db38e8
--- /dev/null
+++ b/examples/chain-template/hooks/voting/useQueryHooks.ts
@@ -0,0 +1,46 @@
+import { useChain } from '@cosmos-kit/react';
+import {
+ useRpcEndpoint,
+ useRpcClient,
+ createRpcQueryHooks
+} from 'interchain-query';
+
+export const useQueryHooks = (chainName: string, extraKey?: string) => {
+ const { getRpcEndpoint } = useChain(chainName);
+
+ const rpcEndpointQuery = useRpcEndpoint({
+ getter: getRpcEndpoint,
+ options: {
+ staleTime: Infinity,
+ queryKeyHashFn: (queryKey) => {
+ const key = [...queryKey, chainName];
+ return JSON.stringify(extraKey ? [...key, extraKey] : key);
+ },
+ },
+ });
+
+ const rpcClientQuery = useRpcClient({
+ rpcEndpoint: rpcEndpointQuery.data || '',
+ options: {
+ enabled: Boolean(rpcEndpointQuery.data),
+ staleTime: Infinity,
+ queryKeyHashFn: (queryKey) => {
+ return JSON.stringify(extraKey ? [...queryKey, extraKey] : queryKey);
+ },
+ },
+ });
+
+ const { cosmos } = createRpcQueryHooks({
+ rpc: rpcClientQuery.data,
+ });
+
+ const isReady = Boolean(rpcClientQuery.data);
+ const isFetching = rpcEndpointQuery.isFetching || rpcClientQuery.isFetching;
+
+ return {
+ cosmos,
+ isReady,
+ isFetching,
+ rpcEndpoint: rpcEndpointQuery.data,
+ };
+};
diff --git a/examples/chain-template/hooks/voting/useRpcQueryClient.ts b/examples/chain-template/hooks/voting/useRpcQueryClient.ts
new file mode 100644
index 000000000..b38dc51ea
--- /dev/null
+++ b/examples/chain-template/hooks/voting/useRpcQueryClient.ts
@@ -0,0 +1,18 @@
+import { cosmos } from 'interchain-query';
+import { useQuery } from '@tanstack/react-query';
+import { useQueryHooks } from './useQueryHooks';
+
+const { createRPCQueryClient } = cosmos.ClientFactory;
+
+export const useRpcQueryClient = (chainName: string) => {
+ const { rpcEndpoint } = useQueryHooks(chainName);
+
+ const rpcQueryClientQuery = useQuery({
+ queryKey: ['rpcQueryClient', rpcEndpoint],
+ queryFn: () => createRPCQueryClient({ rpcEndpoint: rpcEndpoint || '' }),
+ enabled: Boolean(rpcEndpoint),
+ staleTime: Infinity,
+ });
+
+ return { rpcQueryClient: rpcQueryClientQuery.data };
+};
diff --git a/examples/chain-template/hooks/voting/useVoting.ts b/examples/chain-template/hooks/voting/useVoting.ts
new file mode 100644
index 000000000..32e8a8978
--- /dev/null
+++ b/examples/chain-template/hooks/voting/useVoting.ts
@@ -0,0 +1,69 @@
+import { useState } from 'react';
+import { cosmos } from 'interchain-query';
+import { toast } from '@interchain-ui/react';
+import { useChain } from '@cosmos-kit/react';
+import { coins, StdFee } from '@cosmjs/stargate';
+import { Proposal } from 'interchain-query/cosmos/gov/v1/gov';
+import { getCoin } from '@/utils';
+import { useVotingTx } from './useVotingTx';
+
+const MessageComposer = cosmos.gov.v1beta1.MessageComposer;
+
+export type useVotingOptions = {
+ chainName: string;
+ proposal: Proposal;
+};
+
+export type onVoteOptions = {
+ option: number;
+ success?: () => void;
+ error?: () => void;
+};
+
+export function useVoting({ chainName, proposal }: useVotingOptions) {
+ const { tx } = useVotingTx(chainName);
+ const { address } = useChain(chainName);
+ const [isVoting, setIsVoting] = useState(false);
+
+ const coin = getCoin(chainName);
+
+ async function onVote({
+ option,
+ success = () => {},
+ error = () => {},
+ }: onVoteOptions) {
+ if (!address || !option) return;
+
+ const msg = MessageComposer.fromPartial.vote({
+ option,
+ voter: address,
+ proposalId: proposal.id,
+ });
+
+ const fee: StdFee = {
+ amount: coins('1000', coin.base),
+ gas: '100000',
+ };
+
+ try {
+ setIsVoting(true);
+ const res = await tx([msg], { fee });
+ if (res.error) {
+ error();
+ console.error(res.error);
+ toast.error(res.errorMsg);
+ } else {
+ success();
+ toast.success('Vote successful');
+ }
+ } catch (e) {
+ error();
+ console.error(e);
+ toast.error('Vote failed');
+ } finally {
+ setIsVoting(false);
+ }
+ }
+
+ return { isVoting, onVote };
+}
diff --git a/examples/chain-template/hooks/voting/useVotingData.ts b/examples/chain-template/hooks/voting/useVotingData.ts
new file mode 100644
index 000000000..aae05fd1b
--- /dev/null
+++ b/examples/chain-template/hooks/voting/useVotingData.ts
@@ -0,0 +1,195 @@
+import { useEffect, useMemo, useState } from 'react';
+import { useChain } from '@cosmos-kit/react';
+import { useQueries } from '@tanstack/react-query';
+import { ProposalStatus } from 'interchain-query/cosmos/gov/v1beta1/gov';
+import { Proposal as ProposalV1 } from 'interchain-query/cosmos/gov/v1/gov';
+import { useQueryHooks, useRpcQueryClient } from '.';
+import { getTitle, paginate, parseQuorum } from '@/utils';
+import { chains } from 'chain-registry'
+
+(BigInt.prototype as any).toJSON = function () {
+ return this.toString();
+};
+
+export interface Votes {
+ [key: string]: number;
+}
+
+export function processProposals(proposals: ProposalV1[]) {
+ const sorted = proposals.sort(
+ (a, b) => Number(b.id) - Number(a.id)
+ );
+
+ proposals.forEach((proposal) => {
+ // @ts-ignore
+ if (!proposal.content?.title && proposal.content?.value) {
+ // @ts-ignore
+ proposal.content.title = getTitle(proposal.content?.value);
+ }
+ });
+
+ return sorted.filter(
+ ({ status }) => status === ProposalStatus.PROPOSAL_STATUS_VOTING_PERIOD
+ ).concat(sorted.filter(
+ ({ status }) => status !== ProposalStatus.PROPOSAL_STATUS_VOTING_PERIOD
+ ));
+};
+
+export function useVotingData(chainName: string) {
+ const [isLoading, setIsLoading] = useState(false);
+ const { address } = useChain(chainName);
+ const { rpcQueryClient } = useRpcQueryClient(chainName);
+ const { cosmos, isReady, isFetching } = useQueryHooks(chainName);
+ const chain = chains.find((c) => c.chain_name === chainName);
+
+ const proposalsQuery = cosmos.gov.v1.useProposals({
+ request: {
+ voter: '',
+ depositor: '',
+ pagination: paginate(50n, true),
+ proposalStatus: ProposalStatus.PROPOSAL_STATUS_UNSPECIFIED,
+ },
+ options: {
+ enabled: isReady,
+ staleTime: Infinity,
+ select: ({ proposals }) => processProposals(proposals),
+ },
+ });
+
+ const bondedTokensQuery = cosmos.staking.v1beta1.usePool({
+ options: {
+ enabled: isReady,
+ staleTime: Infinity,
+ select: ({ pool }) => pool?.bondedTokens,
+ },
+ });
+
+ const quorumQuery = cosmos.gov.v1.useParams({
+ request: { paramsType: 'tallying' },
+ options: {
+ enabled: isReady,
+ staleTime: Infinity,
+ select: ({ tallyParams }) => parseQuorum(tallyParams?.quorum as any),
+ },
+ });
+
+ const votedProposalsQuery = cosmos.gov.v1.useProposals({
+ request: {
+ voter: address || '/', // use '/' to differentiate from proposalsQuery
+ depositor: '',
+ pagination: paginate(50n, true),
+ proposalStatus: ProposalStatus.PROPOSAL_STATUS_UNSPECIFIED,
+ },
+ options: {
+ enabled: isReady && Boolean(address),
+ select: ({ proposals }) => proposals,
+ keepPreviousData: true,
+ },
+ });
+
+ const votesQueries = useQueries({
+ queries: (votedProposalsQuery.data || []).map(({ id }) => ({
+ queryKey: ['voteQuery', id, address],
+ queryFn: () =>
+ rpcQueryClient?.cosmos.gov.v1.vote({
+ proposalId: id,
+ voter: address || '',
+ }),
+ enabled: Boolean(rpcQueryClient) && Boolean(address) && Boolean(votedProposalsQuery.data),
+ keepPreviousData: true,
+ })),
+ });
+
+ const singleQueries = {
+ quorum: quorumQuery,
+ proposals: proposalsQuery,
+ bondedTokens: bondedTokensQuery,
+ votedProposals: votedProposalsQuery,
+ };
+
+ const staticQueries = [
+ singleQueries.quorum,
+ singleQueries.proposals,
+ singleQueries.bondedTokens,
+ ];
+
+ const dynamicQueries = [singleQueries.votedProposals];
+
+ useEffect(() => {
+ staticQueries.forEach((query) => query.remove());
+ // eslint-disable-next-line react-hooks/exhaustive-deps
+ }, [chainName]);
+
+ const isStaticQueriesFetching = staticQueries.some(
+ ({ isFetching }) => isFetching
+ );
+
+ const isDynamicQueriesFetching =
+ singleQueries.votedProposals.isFetching ||
+ votesQueries.some(({ isFetching }) => isFetching);
+
+ const loading =
+ isFetching || isStaticQueriesFetching || isDynamicQueriesFetching;
+
+ useEffect(() => {
+ // no loading when refetching
+ if (isFetching || isStaticQueriesFetching) setIsLoading(true);
+ if (!loading) setIsLoading(false);
+ }, [isStaticQueriesFetching, loading]);
+
+ type SingleQueries = typeof singleQueries;
+
+ type SingleQueriesData = {
+ [Key in keyof SingleQueries]: NonNullable;
+ };
+
+ const singleQueriesData = useMemo(() => {
+ if (isStaticQueriesFetching || !isReady) return;
+
+ const singleQueriesData = Object.fromEntries(
+ Object.entries(singleQueries).map(([key, query]) => [key, query.data])
+ ) as SingleQueriesData;
+
+ singleQueriesData?.proposals.forEach((proposal) => {
+ if (proposal.status === ProposalStatus.PROPOSAL_STATUS_VOTING_PERIOD) {
+ (async () => {
+ for (const { address } of chain?.apis?.rest || []) {
+ const api = `${address}/cosmos/gov/v1/proposals/${Number(proposal.id)}/tally`
+ try {
+ const tally = (await (await fetch(api)).json()).tally
+ if (!tally) {
+ continue
+ }
+ proposal.finalTallyResult = {
+ yesCount: tally.yes_count,
+ noCount: tally.no_count,
+ abstainCount: tally.abstain_count,
+ noWithVetoCount: tally.no_with_veto_count,
+ }
+ break
+ } catch (e) {
+ console.error('error fetch tally', api)
+ }
+ }
+ })()
+ }
+ })
+
+ return singleQueriesData
+ }, [isStaticQueriesFetching, isReady]);
+
+ const votes = useMemo(() => {
+ const votesEntries = votesQueries
+ .map((query) => query.data)
+ .map((data) => [data?.vote?.proposalId, data?.vote?.options[0].option]);
+
+ return Object.fromEntries(votesEntries) as Votes;
+ }, [votesQueries]);
+
+ const refetch = () => {
+ votesQueries.forEach((query) => query.remove());
+ dynamicQueries.forEach((query) => query.refetch());
+ };
+
+ return { data: { ...singleQueriesData, votes }, isLoading, refetch };
+}
\ No newline at end of file
diff --git a/examples/chain-template/hooks/voting/useVotingTx.ts b/examples/chain-template/hooks/voting/useVotingTx.ts
new file mode 100644
index 000000000..1a9ceae2f
--- /dev/null
+++ b/examples/chain-template/hooks/voting/useVotingTx.ts
@@ -0,0 +1,83 @@
+import { cosmos } from 'interchain-query';
+import { useChain } from '@cosmos-kit/react';
+import {
+ DeliverTxResponse,
+ isDeliverTxSuccess,
+ StdFee,
+} from '@cosmjs/stargate';
+
+export type Msg = {
+ typeUrl: string;
+ value: { [key: string]: any };
+};
+
+export type TxOptions = {
+ fee?: StdFee;
+};
+
+export class TxError extends Error {
+ constructor(message: string = 'Tx Error', options?: ErrorOptions) {
+ super(message, options);
+ this.name = 'TxError';
+ }
+}
+
+export class TxResult {
+ error?: TxError;
+ response?: DeliverTxResponse;
+
+ constructor({ error, response }: Pick) {
+ this.error = error;
+ this.response = response;
+ }
+
+ get errorMsg() {
+ return this.isOutOfGas
+ ? `Out of gas. gasWanted: ${this.response?.gasWanted} gasUsed: ${this.response?.gasUsed}`
+ : this.error?.message || 'Vote Failed';
+ }
+
+ get isSuccess() {
+ return this.response && isDeliverTxSuccess(this.response);
+ }
+
+ get isOutOfGas() {
+ return this.response && this.response.gasUsed > this.response.gasWanted;
+ }
+}
+
+export function useVotingTx(chainName: string) {
+ const { address, getSigningStargateClient, estimateFee } =
+ useChain(chainName);
+
+ async function tx(msgs: Msg[], options: TxOptions = {}) {
+ if (!address) {
+ return new TxResult({ error: new TxError('Wallet not connected') });
+ }
+
+ try {
+ const txRaw = cosmos.tx.v1beta1.TxRaw;
+ const fee = options.fee || (await estimateFee(msgs));
+ const client = await getSigningStargateClient();
+ const signed = await client.sign(address, msgs, fee, '');
+
+ if (!client)
+ return new TxResult({ error: new TxError('Invalid stargate client') });
+ if (!signed)
+ return new TxResult({ error: new TxError('Invalid transaction') });
+
+ // @ts-ignore
+ const response: DeliverTxResponse = await client.broadcastTx(
+ Uint8Array.from(txRaw.encode(signed).finish())
+ );
+
+ return isDeliverTxSuccess(response)
+ ? new TxResult({ response })
+ : new TxResult({ response, error: new TxError(response.rawLog) });
+ } catch (e: any) {
+ return new TxResult({ error: new TxError(e.message || 'Tx Error') });
+ }
+ }
+
+ return { tx };
+}
diff --git a/examples/chain-template/next.config.js b/examples/chain-template/next.config.js
new file mode 100644
index 000000000..59bb75eaa
--- /dev/null
+++ b/examples/chain-template/next.config.js
@@ -0,0 +1,21 @@
+/** @type {import('next').NextConfig} */
+
+module.exports = {
+ reactStrictMode: true,
+ swcMinify: true,
+ webpack: (config) => {
+ config.module.rules.push({
+ test: /\.yaml$/,
+ use: 'yaml-loader',
+ });
+
+ return config;
+ },
+ images: {
+ remotePatterns: [
+ {
+ hostname: 'raw.githubusercontent.com',
+ },
+ ],
+ },
+};
diff --git a/examples/chain-template/package.json b/examples/chain-template/package.json
new file mode 100644
index 000000000..656a29707
--- /dev/null
+++ b/examples/chain-template/package.json
@@ -0,0 +1,64 @@
+{
+ "name": "@cosmology/chain-template",
+ "version": "1.0.0",
+ "private": true,
+ "scripts": {
+ "dev": "next dev",
+ "build": "next build",
+ "start": "next start",
+ "lint": "next lint",
+ "locks:remove": "rm -f yarn.lock",
+ "locks:create": "generate-lockfile --lockfile ../../yarn.lock --package package.json --write yarn.lock --force",
+ "locks": "npm run locks:remove && npm run locks:create",
+ "starship": "starship --config starship/configs/config.yaml"
+ },
+ "resolutions": {
+ "react": "18.2.0",
+ "react-dom": "18.2.0",
+ "@types/react": "18.0.25",
+ "@types/react-dom": "18.0.9"
+ },
+ "dependencies": {
+ "@chain-registry/assets": "1.63.5",
+ "@chain-registry/osmosis": "1.61.3",
+ "@cosmjs/amino": "0.32.3",
+ "@cosmjs/cosmwasm-stargate": "0.32.3",
+ "@cosmjs/stargate": "0.31.1",
+ "@cosmos-kit/react": "2.18.0",
+ "@interchain-ui/react": "1.23.31",
+ "@interchain-ui/react-no-ssr": "0.1.2",
+ "@tanstack/react-query": "4.32.0",
+ "ace-builds": "1.35.0",
+ "bignumber.js": "9.1.2",
+ "chain-registry": "1.62.3",
+ "cosmos-kit": "2.18.4",
+ "dayjs": "1.11.11",
+ "interchain-query": "1.10.1",
+ "next": "^13",
+ "node-gzip": "^1.1.2",
+ "osmo-query": "16.5.1",
+ "react": "18.2.0",
+ "react-ace": "11.0.1",
+ "react-dom": "18.2.0",
+ "react-dropzone": "^14.2.3",
+ "react-icons": "5.2.1",
+ "react-markdown": "9.0.1",
+ "zustand": "4.5.2"
+ },
+ "devDependencies": {
+ "@chain-registry/types": "0.44.3",
+ "@keplr-wallet/types": "^0.12.111",
+ "@starship-ci/cli": "^2.9.0",
+ "@tanstack/react-query-devtools": "4.32.0",
+ "@types/node": "18.11.9",
+ "@types/node-gzip": "^1",
+ "@types/react": "18.0.25",
+ "@types/react-dom": "18.0.9",
+ "eslint": "8.28.0",
+ "eslint-config-next": "13.0.5",
+ "generate-lockfile": "0.0.12",
+ "starshipjs": "^2.4.0",
+ "typescript": "4.9.3",
+ "yaml-loader": "^0.8.1"
+ }
+}
diff --git a/examples/chain-template/pages/_app.tsx b/examples/chain-template/pages/_app.tsx
new file mode 100644
index 000000000..e5f79bd46
--- /dev/null
+++ b/examples/chain-template/pages/_app.tsx
@@ -0,0 +1,71 @@
+import '../styles/globals.css';
+import '@interchain-ui/react/styles';
+
+import type { AppProps } from 'next/app';
+import { ChainProvider } from '@cosmos-kit/react';
+import { QueryClientProvider, QueryClient } from '@tanstack/react-query';
+// import { ReactQueryDevtools } from '@tanstack/react-query-devtools';
+import { Box, Toaster, useTheme } from '@interchain-ui/react';
+import { chains, assets } from 'chain-registry';
+
+import { CustomThemeProvider, Layout } from '@/components';
+import { wallets } from '@/config';
+import { getSignerOptions } from '@/utils';
+
+const queryClient = new QueryClient({
+ defaultOptions: {
+ queries: {
+ retry: 2,
+ refetchOnMount: false,
+ refetchOnWindowFocus: false,
+ },
+ },
+});
+
+function CreateCosmosApp({ Component, pageProps }: AppProps) {
+ const { themeClass } = useTheme();
+
+ return (
+
+
+
+
+
+ {/* @ts-ignore */}
+
+
+
+
+ {/* */}
+
+
+
+ );
+}
+
+export default CreateCosmosApp;
diff --git a/examples/chain-template/pages/asset-list.tsx b/examples/chain-template/pages/asset-list.tsx
new file mode 100644
index 000000000..49ecba754
--- /dev/null
+++ b/examples/chain-template/pages/asset-list.tsx
@@ -0,0 +1,13 @@
+import { ReactNoSSR } from '@interchain-ui/react-no-ssr';
+import { AssetListSection } from '@/components';
+import { useChainStore } from '@/contexts';
+
+export default function AssetListPage() {
+ const { selectedChain } = useChainStore();
+
+ return (
+
+
+
+ );
+}
diff --git a/examples/chain-template/pages/contract.tsx b/examples/chain-template/pages/contract.tsx
new file mode 100644
index 000000000..a08a0477f
--- /dev/null
+++ b/examples/chain-template/pages/contract.tsx
@@ -0,0 +1,124 @@
+import { useState, useCallback, useEffect, useRef } from 'react';
+import { Box, Tabs } from '@interchain-ui/react';
+import { useRouter } from 'next/router';
+
+import { ExecuteTab, MyContractsTab, QueryTab } from '@/components';
+import { splitCamelCase, toKebabCase, toPascalCase } from '@/utils';
+import styles from '@/styles/comp.module.css';
+
+export enum TabLabel {
+ MyContracts,
+ Query,
+ Execute,
+}
+
+export default function Contract() {
+ const router = useRouter();
+ const [activeTab, setActiveTab] = useState(TabLabel.MyContracts);
+ const [queryAddress, setQueryAddress] = useState('');
+ const [executeAddress, setExecuteAddress] = useState('');
+ const initialTab = useRef(false);
+
+ useEffect(() => {
+ if (!initialTab.current && router.isReady) {
+ const { tab, address } = router.query;
+
+ if (typeof tab === 'string') {
+ const pascalCaseTab = toPascalCase(tab);
+ const newTab = TabLabel[pascalCaseTab as keyof typeof TabLabel];
+ if (newTab !== undefined) {
+ setActiveTab(newTab);
+ }
+
+ if (typeof address === 'string') {
+ if (newTab === TabLabel.Query) setQueryAddress(address);
+ if (newTab === TabLabel.Execute) setExecuteAddress(address);
+ }
+ }
+
+ initialTab.current = true;
+ }
+ }, [router.isReady, router.query]);
+
+ const updateUrl = useCallback(
+ (tabId: TabLabel, address?: string) => {
+ const tabName = toKebabCase(TabLabel[tabId]);
+ const query: { tab: string; address?: string } = { tab: tabName };
+ if (address) {
+ query.address = address;
+ } else {
+ delete query.address;
+ }
+ router.push({ pathname: '/contract', query }, undefined, {
+ shallow: true,
+ });
+ },
+ [router],
+ );
+
+ const handleTabChange = useCallback(
+ (tabId: TabLabel) => {
+ setActiveTab(tabId);
+ updateUrl(
+ tabId,
+ tabId === TabLabel.Query
+ ? queryAddress
+ : tabId === TabLabel.Execute
+ ? executeAddress
+ : undefined,
+ );
+ },
+ [updateUrl, queryAddress, executeAddress],
+ );
+
+ const switchTabWithAddress = useCallback(
+ (address: string, tabId: TabLabel) => {
+ if (tabId === TabLabel.Query) setQueryAddress(address);
+ if (tabId === TabLabel.Execute) setExecuteAddress(address);
+ setActiveTab(tabId);
+ updateUrl(tabId, address);
+ },
+ [updateUrl],
+ );
+
+ const handleAddressInput = useCallback(
+ (address: string) => {
+ if (activeTab === TabLabel.Query) setQueryAddress(address);
+ if (activeTab === TabLabel.Execute) setExecuteAddress(address);
+ updateUrl(activeTab, address);
+ },
+ [activeTab, updateUrl],
+ );
+
+ return (
+ <>
+ typeof v === 'string')
+ .map((label) => ({
+ label: splitCamelCase(label as string),
+ content: undefined,
+ }))}
+ activeTab={activeTab}
+ onActiveTabChange={handleTabChange}
+ className={styles.tabs}
+ />
+
+
+
+
+
+ >
+ );
+}
diff --git a/examples/chain-template/pages/disclaimer.tsx b/examples/chain-template/pages/disclaimer.tsx
new file mode 100644
index 000000000..57962147d
--- /dev/null
+++ b/examples/chain-template/pages/disclaimer.tsx
@@ -0,0 +1,109 @@
+import { Box, Text } from '@interchain-ui/react';
+
+export default function Disclaimer() {
+ return (
+
+ Disclaimer
+ No Investment Advice
+
+ The information provided on this website does not constitute investment
+ advice, financial advice, trading advice, or any other sort of advice
+ and you should not treat any of the website's content as such.
+ Cosmology does not recommend that any cryptocurrency should be bought,
+ sold, or held by you. Do conduct your own due diligence and consult your
+ financial advisor before making any investment decisions.
+
+ Accuracy of Information
+
+ Cosmology will strive to ensure accuracy of information listed on this
+ website although it will not hold any responsibility for any missing or
+ wrong information. Cosmology provides all information as is. You
+ understand that you are using any and all information available here at
+ your own risk.
+
+ Risk Statement
+
+ The trading of cryptocurrencies has potential rewards, and it also has
+ potential risks involved. Trading may not be suitable for all people.
+ Anyone wishing to invest should seek his or her own independent
+ financial or professional advice.
+
+ Tax Compliance
+
+ The users of Cosmology app are solely responsible to determinate what,
+ if any, taxes apply to their cryptocurrency transactions. The owners of,
+ or contributors to, the Cosmology app are NOT responsible for
+ determining the taxes that apply to cryptocurrency transactions.
+
+ Software Disclaimer
+
+ Cosmology leverages decentralized peer-to-peer blockchains that people
+ can use to create liquidity and trade IBC enabled tokens. These
+ blockchains are made up of free, public, and open-source software. Your
+ use of Cosmology involves various risks, including, but not limited, to
+ losses while digital assets are being supplied to liquidity pools and
+ losses due to the fluctuation of prices of tokens in a trading pair or
+ liquidity pool, including Impermanence Loss. Before using any pool on
+ these blockchains, you should review the relevant documentation to make
+ sure you understand how they work, and the pool you use on each
+ blockchain works. Additionally, just as you can access email protocols,
+ such as SMTP, through multiple email clients, you can access pools on
+ the blockchain through several web or mobile interfaces. You are
+ responsible for doing your own diligence on those interfaces to
+ understand the fees and risks they present. AS DESCRIBED IN THE
+ COSMOLOGY LICENSES, THE SOFTWARE IS PROVIDED “AS IS”, AT YOUR OWN RISK,
+ AND WITHOUT WARRANTIES OF ANY KIND. Although Web, Inc. ( “Web Incubator”
+ ) developed much of the initial code for the Cosmology app, it does not
+ provide, own, or control the leveraged blockchain protocols, which are
+ run by decentralized validator sets. Upgrades and modifications to these
+ protocol are managed in a community-driven way by holders of various
+ governance tokens. No developer or entity involved in creating Cosmology
+ will be liable for any claims or damages whatsoever associated with your
+ use, inability to use, or your interaction with other users of the
+ Cosmology app, including any direct, indirect, incidental, special,
+ exemplary, punitive or consequential damages, or loss of profits,
+ cryptocurrencies, tokens, or anything else of value.
+
+
+ );
+}
+
+const Title = ({ children }: { children: string }) => {
+ return (
+
+ {children}
+
+ );
+};
+
+const SectionTitle = ({ children }: { children: string }) => {
+ return (
+
+ {children}
+
+ );
+};
+
+const SectionBody = ({ children }: { children: string }) => {
+ return (
+
+ {children}
+
+ );
+};
diff --git a/examples/chain-template/pages/docs.tsx b/examples/chain-template/pages/docs.tsx
new file mode 100644
index 000000000..a400279d0
--- /dev/null
+++ b/examples/chain-template/pages/docs.tsx
@@ -0,0 +1,125 @@
+import Link from 'next/link';
+import { useState } from 'react';
+import { Box, Icon, Tabs, Text } from '@interchain-ui/react';
+
+import styles from '@/styles/utils.module.css';
+import { ProductCategory, products } from '@/config';
+import { useDetectBreakpoints } from '@/hooks';
+
+type Tab = {
+ label: string;
+ category: ProductCategory | null;
+};
+
+const tabs: Tab[] = [
+ {
+ label: 'All',
+ category: null,
+ },
+ {
+ label: 'CosmWasm',
+ category: 'cosmwasm',
+ },
+ {
+ label: 'Cosmos SDK',
+ category: 'cosmos-sdk',
+ },
+ {
+ label: 'Frontend & UI',
+ category: 'frontend',
+ },
+ {
+ label: 'Testing',
+ category: 'testing',
+ },
+];
+
+export default function DocsPage() {
+ const [activeTab, setActiveTab] = useState(0);
+
+ const { isTablet, isMobile } = useDetectBreakpoints();
+
+ const filteredProducts = products.filter(
+ (product) =>
+ tabs[activeTab].category === null ||
+ product.category === tabs[activeTab].category
+ );
+
+ return (
+
+ ({ label, content: undefined }))}
+ activeTab={activeTab}
+ onActiveTabChange={(tabId) => setActiveTab(tabId)}
+ />
+
+ {filteredProducts.map(({ name, link, description }) => (
+
+ ))}
+
+
+ );
+}
+
+const ProductItem = ({
+ name,
+ link,
+ description,
+}: {
+ name: string;
+ description: string;
+ link: string;
+}) => {
+ return (
+
+
+
+
+ {name}
+
+
+
+
+ {description}
+
+
+
+ );
+};
diff --git a/examples/chain-template/pages/faucet.tsx b/examples/chain-template/pages/faucet.tsx
new file mode 100644
index 000000000..3c8a0801f
--- /dev/null
+++ b/examples/chain-template/pages/faucet.tsx
@@ -0,0 +1,214 @@
+import { useState } from 'react';
+import { Box, Text, TextField, TextFieldAddon } from '@interchain-ui/react';
+import { useChain } from '@cosmos-kit/react';
+
+import { Button } from '@/components';
+import { useChainStore } from '@/contexts';
+import { creditFromFaucet, validateChainAddress } from '@/utils';
+import { useStarshipChains, useToast } from '@/hooks';
+import config from '@/starship/configs/config.yaml';
+import type { StarshipConfig } from '@/starship';
+import styles from '@/styles/comp.module.css';
+
+export default function Faucet() {
+ const [input, setInput] = useState('');
+ const [isLoading, setIsLoading] = useState(false);
+
+ const { selectedChain } = useChainStore();
+ const { address, chain, assets } = useChain(selectedChain);
+ const { toast } = useToast();
+ const { data: starshipChains } = useStarshipChains();
+
+ const checkIsChainSupported = () => {
+ const isStarshipRunning =
+ starshipChains?.chains?.length && starshipChains?.assets?.length;
+
+ if (!isStarshipRunning) {
+ toast({
+ type: 'error',
+ title: 'Starship is not running',
+ description: 'Faucet is only available in Starship environment',
+ });
+ return false;
+ }
+
+ const isStarshipChain = starshipChains?.chains?.some(
+ (c) => c.chain_id === chain.chain_id,
+ );
+
+ if (!isStarshipChain) {
+ toast({
+ type: 'error',
+ title: 'Chain is not supported',
+ description: 'Faucet is only available for Starship chains',
+ });
+ return false;
+ }
+
+ return true;
+ };
+
+ const inputErrMsg = input
+ ? validateChainAddress(input, chain.bech32_prefix)
+ : null;
+
+ const handleGetTokens = async () => {
+ if (!assets || !checkIsChainSupported()) return;
+
+ setIsLoading(true);
+
+ const asset = assets.assets[0];
+ const port = (config as StarshipConfig).chains.find(
+ (c) => c.id === chain.chain_id,
+ )!.ports.faucet;
+
+ try {
+ await creditFromFaucet(input, asset.base, port);
+ toast({
+ type: 'success',
+ title: 'Tokens credited',
+ });
+ } catch (error: any) {
+ console.error(error);
+ toast({
+ type: 'error',
+ title: 'Failed to get tokens',
+ description: error.message,
+ });
+ } finally {
+ setIsLoading(false);
+ }
+ };
+
+ const isButtonDisabled = !input || !!inputErrMsg;
+
+ return (
+ <>
+
+ Faucet
+
+
+ Get test tokens for building applications
+
+
+
+ Address
+
+
+
+ setInput(e.target.value)}
+ placeholder="Enter your address"
+ intent={inputErrMsg ? 'error' : 'default'}
+ autoComplete="off"
+ inputClassName={styles['input-pr']}
+ endAddon={
+
+
+
+
+
+ }
+ />
+ {inputErrMsg && (
+
+ {inputErrMsg}
+
+ )}
+
+
+
+
+
+ FAQ
+
+
+
+ {faqs.map(({ question, answer }) => (
+
+ ))}
+
+
+ >
+ );
+}
+
+const faqs = [
+ {
+ question: 'What is faucet?',
+ answer:
+ 'A crypto faucet is a website or application that rewards you with cryptocurrency for completing simple tasks.',
+ },
+ {
+ question: 'How can I get test tokens?',
+ answer:
+ 'The Faucet dispenses a small number of test tokens after you claimed.',
+ },
+];
+
+const FaqItem = ({
+ question,
+ answer,
+}: {
+ question: string;
+ answer: string;
+}) => {
+ return (
+
+
+ {question}
+
+
+ {answer}
+
+
+ );
+};
diff --git a/examples/chain-template/pages/governance.tsx b/examples/chain-template/pages/governance.tsx
new file mode 100644
index 000000000..4050cf7d2
--- /dev/null
+++ b/examples/chain-template/pages/governance.tsx
@@ -0,0 +1,13 @@
+import { ReactNoSSR } from '@interchain-ui/react-no-ssr';
+import { Voting } from '@/components';
+import { useChainStore } from '@/contexts';
+
+export default function GovernancePage() {
+ const { selectedChain } = useChainStore();
+
+ return (
+
+
+
+ );
+}
diff --git a/examples/chain-template/pages/index.tsx b/examples/chain-template/pages/index.tsx
new file mode 100644
index 000000000..43bc321dc
--- /dev/null
+++ b/examples/chain-template/pages/index.tsx
@@ -0,0 +1,73 @@
+import Image from 'next/image';
+import { Box, Text, useColorModeValue } from '@interchain-ui/react';
+import { useChain } from '@cosmos-kit/react';
+
+import { Button } from '@/components';
+import { useChainStore } from '@/contexts';
+import { useDetectBreakpoints } from '@/hooks';
+
+export default function Home() {
+ const { isMobile } = useDetectBreakpoints();
+ const { selectedChain } = useChainStore();
+ const { connect, isWalletConnected, openView } = useChain(selectedChain);
+
+ const chainsImageSrc = useColorModeValue(
+ '/images/chains.png',
+ '/images/chains-dark.png'
+ );
+
+ return (
+ <>
+
+ Create Cosmos App
+
+
+ Welcome to Cosmos Kit +{' '}
+ Next.js
+
+
+
+
+
+ >
+ );
+}
+
+const HighlightText = ({ children }: { children: string }) => {
+ return (
+
+ {children}
+
+ );
+};
diff --git a/examples/chain-template/pages/staking.tsx b/examples/chain-template/pages/staking.tsx
new file mode 100644
index 000000000..51057e7b1
--- /dev/null
+++ b/examples/chain-template/pages/staking.tsx
@@ -0,0 +1,13 @@
+import { ReactNoSSR } from '@interchain-ui/react-no-ssr';
+import { useChainStore } from '@/contexts';
+import { StakingSection } from '@/components';
+
+export default function StakingPage() {
+ const { selectedChain } = useChainStore();
+
+ return (
+
+
+
+ );
+}
diff --git a/examples/chain-template/public/images/chains-dark.png b/examples/chain-template/public/images/chains-dark.png
new file mode 100644
index 000000000..287c0ae4c
Binary files /dev/null and b/examples/chain-template/public/images/chains-dark.png differ
diff --git a/examples/chain-template/public/images/chains.png b/examples/chain-template/public/images/chains.png
new file mode 100644
index 000000000..71de98c3e
Binary files /dev/null and b/examples/chain-template/public/images/chains.png differ
diff --git a/examples/chain-template/public/images/contract-file-dark.svg b/examples/chain-template/public/images/contract-file-dark.svg
new file mode 100644
index 000000000..bede0b527
--- /dev/null
+++ b/examples/chain-template/public/images/contract-file-dark.svg
@@ -0,0 +1,14 @@
+
diff --git a/examples/chain-template/public/images/contract-file.svg b/examples/chain-template/public/images/contract-file.svg
new file mode 100644
index 000000000..e2bfcc6fb
--- /dev/null
+++ b/examples/chain-template/public/images/contract-file.svg
@@ -0,0 +1,14 @@
+
diff --git a/examples/chain-template/public/images/empty.svg b/examples/chain-template/public/images/empty.svg
new file mode 100644
index 000000000..fec305ff8
--- /dev/null
+++ b/examples/chain-template/public/images/empty.svg
@@ -0,0 +1,5 @@
+
\ No newline at end of file
diff --git a/examples/chain-template/public/images/favicon.ico b/examples/chain-template/public/images/favicon.ico
new file mode 100644
index 000000000..d7b1d76a3
Binary files /dev/null and b/examples/chain-template/public/images/favicon.ico differ
diff --git a/examples/chain-template/public/images/upload-dark.svg b/examples/chain-template/public/images/upload-dark.svg
new file mode 100644
index 000000000..be53406cc
--- /dev/null
+++ b/examples/chain-template/public/images/upload-dark.svg
@@ -0,0 +1,4 @@
+
diff --git a/examples/chain-template/public/images/upload.svg b/examples/chain-template/public/images/upload.svg
new file mode 100644
index 000000000..388c40354
--- /dev/null
+++ b/examples/chain-template/public/images/upload.svg
@@ -0,0 +1,4 @@
+
diff --git a/examples/chain-template/public/logos/brand-logo-dark.svg b/examples/chain-template/public/logos/brand-logo-dark.svg
new file mode 100644
index 000000000..e6d02d4d6
--- /dev/null
+++ b/examples/chain-template/public/logos/brand-logo-dark.svg
@@ -0,0 +1,8 @@
+
diff --git a/examples/chain-template/public/logos/brand-logo-sm-dark.svg b/examples/chain-template/public/logos/brand-logo-sm-dark.svg
new file mode 100644
index 000000000..458760972
--- /dev/null
+++ b/examples/chain-template/public/logos/brand-logo-sm-dark.svg
@@ -0,0 +1,12 @@
+
diff --git a/examples/chain-template/public/logos/brand-logo-sm.svg b/examples/chain-template/public/logos/brand-logo-sm.svg
new file mode 100644
index 000000000..a692bc2db
--- /dev/null
+++ b/examples/chain-template/public/logos/brand-logo-sm.svg
@@ -0,0 +1,12 @@
+
diff --git a/examples/chain-template/public/logos/brand-logo.svg b/examples/chain-template/public/logos/brand-logo.svg
new file mode 100644
index 000000000..719d5891b
--- /dev/null
+++ b/examples/chain-template/public/logos/brand-logo.svg
@@ -0,0 +1,8 @@
+
diff --git a/examples/chain-template/public/logos/cosmology-dark.svg b/examples/chain-template/public/logos/cosmology-dark.svg
new file mode 100644
index 000000000..bf63a61e8
--- /dev/null
+++ b/examples/chain-template/public/logos/cosmology-dark.svg
@@ -0,0 +1,18 @@
+
diff --git a/examples/chain-template/public/logos/cosmology.svg b/examples/chain-template/public/logos/cosmology.svg
new file mode 100644
index 000000000..2bf50f5be
--- /dev/null
+++ b/examples/chain-template/public/logos/cosmology.svg
@@ -0,0 +1,18 @@
+
diff --git a/examples/chain-template/starship/configs/config.yaml b/examples/chain-template/starship/configs/config.yaml
new file mode 100644
index 000000000..8b7331028
--- /dev/null
+++ b/examples/chain-template/starship/configs/config.yaml
@@ -0,0 +1,36 @@
+name: starship-dev
+version: 0.2.10
+
+chains:
+ - id: test-osmosis-1
+ name: osmosis
+ numValidators: 1
+ ports:
+ rest: 1317
+ rpc: 26657
+ faucet: 8007
+ - id: test-cosmoshub-4
+ name: cosmoshub
+ numValidators: 1
+ ports:
+ rest: 1313
+ rpc: 26653
+ faucet: 8003
+
+relayers:
+ - name: osmosis-cosmoshub
+ type: hermes
+ replicas: 1
+ chains:
+ - test-osmosis-1
+ - test-cosmoshub-4
+
+registry:
+ enabled: true
+ ports:
+ rest: 8081
+
+explorer:
+ enabled: true
+ ports:
+ rest: 8080
diff --git a/examples/chain-template/starship/index.ts b/examples/chain-template/starship/index.ts
new file mode 100644
index 000000000..fcb073fef
--- /dev/null
+++ b/examples/chain-template/starship/index.ts
@@ -0,0 +1 @@
+export * from './types';
diff --git a/examples/chain-template/starship/types.ts b/examples/chain-template/starship/types.ts
new file mode 100644
index 000000000..e822f7e70
--- /dev/null
+++ b/examples/chain-template/starship/types.ts
@@ -0,0 +1,19 @@
+export interface StarshipConfig {
+ registry: {
+ ports: {
+ rest: number;
+ };
+ };
+ chains: Array<{
+ id: string;
+ name: string;
+ ports: {
+ rpc: number;
+ rest: number;
+ faucet: number;
+ };
+ }>;
+ relayers: Array<{
+ chains: [string, string];
+ }>;
+}
diff --git a/examples/chain-template/styles/comp.module.css b/examples/chain-template/styles/comp.module.css
new file mode 100644
index 000000000..f4f953033
--- /dev/null
+++ b/examples/chain-template/styles/comp.module.css
@@ -0,0 +1,17 @@
+.tabs {
+ width: 100%;
+}
+
+.tabs ul {
+ max-width: 600px;
+ min-width: auto;
+ margin: 0 auto;
+}
+
+.input-pl {
+ padding-left: 36px;
+}
+
+.input-pr {
+ padding-right: 66px;
+}
diff --git a/examples/chain-template/styles/globals.css b/examples/chain-template/styles/globals.css
new file mode 100644
index 000000000..e5e2dcc23
--- /dev/null
+++ b/examples/chain-template/styles/globals.css
@@ -0,0 +1,16 @@
+html,
+body {
+ padding: 0;
+ margin: 0;
+ font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen,
+ Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif;
+}
+
+a {
+ color: inherit;
+ text-decoration: none;
+}
+
+* {
+ box-sizing: border-box;
+}
diff --git a/examples/chain-template/styles/layout.module.css b/examples/chain-template/styles/layout.module.css
new file mode 100644
index 000000000..dd0895bcd
--- /dev/null
+++ b/examples/chain-template/styles/layout.module.css
@@ -0,0 +1,3 @@
+.layout {
+ padding-left: calc(100vw - 100%); /* prevent scrollbar layout shift */
+}
diff --git a/examples/chain-template/styles/utils.module.css b/examples/chain-template/styles/utils.module.css
new file mode 100644
index 000000000..a6a6583cc
--- /dev/null
+++ b/examples/chain-template/styles/utils.module.css
@@ -0,0 +1,9 @@
+.threeLineClamp {
+ display: -webkit-box;
+ line-clamp: 3;
+ -webkit-line-clamp: 3;
+ -webkit-box-orient: vertical;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: normal;
+}
diff --git a/examples/chain-template/tsconfig.json b/examples/chain-template/tsconfig.json
new file mode 100644
index 000000000..61581e45d
--- /dev/null
+++ b/examples/chain-template/tsconfig.json
@@ -0,0 +1,24 @@
+{
+ "compilerOptions": {
+ "target": "ES2020",
+ "lib": ["dom", "dom.iterable", "esnext"],
+ "allowJs": true,
+ "skipLibCheck": true,
+ "strict": true,
+ "forceConsistentCasingInFileNames": true,
+ "noEmit": true,
+ "esModuleInterop": true,
+ "module": "esnext",
+ "moduleResolution": "node",
+ "resolveJsonModule": true,
+ "isolatedModules": true,
+ "jsx": "preserve",
+ "incremental": true,
+ "baseUrl": ".",
+ "paths": {
+ "@/*": ["*"]
+ }
+ },
+ "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"],
+ "exclude": ["node_modules"]
+}
diff --git a/examples/chain-template/utils/asset-list/assets.ts b/examples/chain-template/utils/asset-list/assets.ts
new file mode 100644
index 000000000..4ce93bf00
--- /dev/null
+++ b/examples/chain-template/utils/asset-list/assets.ts
@@ -0,0 +1,8 @@
+import { asset_list, assets } from "@chain-registry/osmosis";
+import { Asset as OsmosisAsset } from "@chain-registry/types";
+
+// @ts-ignore
+export const osmosisAssets: OsmosisAsset[] = [
+ ...assets.assets,
+ ...asset_list.assets,
+];
diff --git a/examples/chain-template/utils/asset-list/base.ts b/examples/chain-template/utils/asset-list/base.ts
new file mode 100644
index 000000000..856413cda
--- /dev/null
+++ b/examples/chain-template/utils/asset-list/base.ts
@@ -0,0 +1,96 @@
+import { osmosisAssets } from './assets';
+import {
+ CoinGeckoToken,
+ CoinDenom,
+ Exponent,
+ CoinSymbol,
+ PriceHash,
+ CoinGeckoUSDResponse,
+} from './types';
+import { Asset as OsmosisAsset } from '@chain-registry/types';
+import BigNumber from 'bignumber.js';
+
+export const getOsmoAssetByDenom = (denom: CoinDenom): OsmosisAsset => {
+ return osmosisAssets.find((asset) => asset.base === denom) as OsmosisAsset;
+};
+
+export const getDenomForCoinGeckoId = (
+ coinGeckoId: CoinGeckoToken
+): CoinDenom => {
+ // @ts-ignore
+ return osmosisAssets.find((asset) => asset.coingecko_id === coinGeckoId).base;
+};
+
+export const osmoDenomToSymbol = (denom: CoinDenom): CoinSymbol => {
+ const asset = getOsmoAssetByDenom(denom);
+ const symbol = asset?.symbol;
+ if (!symbol) {
+ return denom;
+ }
+ return symbol;
+};
+
+export const symbolToOsmoDenom = (token: CoinSymbol): CoinDenom => {
+ const asset = osmosisAssets.find(({ symbol }) => symbol === token);
+ const base = asset?.base;
+ if (!base) {
+ console.log(`cannot find base for token ${token}`);
+ // @ts-ignore
+ return null;
+ }
+ return base;
+};
+
+export const getExponentByDenom = (denom: CoinDenom): Exponent => {
+ const asset = getOsmoAssetByDenom(denom);
+ const unit = asset.denom_units.find(({ denom }) => denom === asset.display);
+ // @ts-ignore
+ return unit.exponent;
+};
+
+export const convertGeckoPricesToDenomPriceHash = (
+ prices: CoinGeckoUSDResponse
+): PriceHash => {
+ return Object.keys(prices).reduce((res, geckoId) => {
+ const denom = getDenomForCoinGeckoId(geckoId);
+ // @ts-ignore
+ res[denom] = prices[geckoId].usd;
+ return res;
+ }, {});
+};
+
+export const noDecimals = (num: number | string) => {
+ return new BigNumber(num).decimalPlaces(0, BigNumber.ROUND_DOWN).toString();
+};
+
+export const baseUnitsToDollarValue = (
+ prices: PriceHash,
+ symbol: string,
+ amount: string | number
+) => {
+ const denom = symbolToOsmoDenom(symbol);
+ return new BigNumber(amount)
+ .shiftedBy(-getExponentByDenom(denom))
+ .multipliedBy(prices[denom])
+ .toString();
+};
+
+export const dollarValueToDenomUnits = (
+ prices: PriceHash,
+ symbol: string,
+ value: string | number
+) => {
+ const denom = symbolToOsmoDenom(symbol);
+ return new BigNumber(value)
+ .dividedBy(prices[denom])
+ .shiftedBy(getExponentByDenom(denom))
+ .toString();
+};
+
+export const baseUnitsToDisplayUnits = (
+ symbol: string,
+ amount: string | number
+) => {
+ const denom = symbolToOsmoDenom(symbol);
+ return new BigNumber(amount).shiftedBy(-getExponentByDenom(denom)).toString();
+};
diff --git a/examples/chain-template/utils/asset-list/format.ts b/examples/chain-template/utils/asset-list/format.ts
new file mode 100644
index 000000000..c5fb7036d
--- /dev/null
+++ b/examples/chain-template/utils/asset-list/format.ts
@@ -0,0 +1,31 @@
+import BigNumber from 'bignumber.js';
+import { PrettyAsset } from '@/components';
+import { AvailableItem } from '@interchain-ui/react';
+
+export const truncDecimals = (
+ val: string | number | undefined,
+ decimals: number
+) => {
+ return new BigNumber(val || 0).decimalPlaces(decimals).toString();
+};
+
+export const formatDollarValue = (dollarValue: string, amount: string) => {
+ return new BigNumber(dollarValue).gt(0.01)
+ ? '$' + truncDecimals(dollarValue, 2)
+ : new BigNumber(amount).gt(0)
+ ? '< $0.01'
+ : '$0';
+};
+
+export const prettyAssetToTransferItem = (from: PrettyAsset): AvailableItem => {
+ return {
+ imgSrc: from.logoUrl ?? '',
+ symbol: from.symbol,
+ name: from.prettyChainName,
+ denom: from.denom,
+ available: new BigNumber(from.displayAmount).toNumber(),
+ priceDisplayAmount: new BigNumber(
+ truncDecimals(from.dollarValue, 2)
+ ).toNumber(),
+ };
+};
diff --git a/examples/chain-template/utils/asset-list/index.ts b/examples/chain-template/utils/asset-list/index.ts
new file mode 100644
index 000000000..8a42ed6d7
--- /dev/null
+++ b/examples/chain-template/utils/asset-list/index.ts
@@ -0,0 +1,5 @@
+export * from './pool';
+export * from './base';
+export * from './assets';
+export * from './format';
+export * from './types';
diff --git a/examples/chain-template/utils/asset-list/pool.ts b/examples/chain-template/utils/asset-list/pool.ts
new file mode 100644
index 000000000..0d5114402
--- /dev/null
+++ b/examples/chain-template/utils/asset-list/pool.ts
@@ -0,0 +1,279 @@
+import { Pool } from 'osmo-query/dist/codegen/osmosis/gamm/pool-models/balancer/balancerPool';
+import { Coin } from 'osmo-query/dist/codegen/cosmos/base/v1beta1/coin';
+import {
+ PriceHash,
+ CoinValue,
+ PoolPretty,
+ CoinBalance,
+ PoolAssetPretty,
+ PrettyPair,
+} from './types';
+import BigNumber from 'bignumber.js';
+import { osmosisAssets } from './assets';
+import {
+ baseUnitsToDisplayUnits,
+ baseUnitsToDollarValue,
+ dollarValueToDenomUnits,
+ getExponentByDenom,
+ osmoDenomToSymbol,
+ noDecimals,
+ getOsmoAssetByDenom,
+} from './base';
+
+export const calcPoolLiquidity = (pool: Pool, prices: PriceHash): string => {
+ return pool.poolAssets
+ .reduce((res, { token }) => {
+ const liquidity = new BigNumber(token.amount)
+ .shiftedBy(-getExponentByDenom(token.denom))
+ .multipliedBy(prices[token.denom]);
+ return res.plus(liquidity);
+ }, new BigNumber(0))
+ .toString();
+};
+
+export const getPoolByGammName = (pools: Pool[], gammId: string): Pool => {
+ return pools.find(({ totalShares: { denom } }) => denom === gammId) as Pool;
+};
+
+export const convertGammTokenToDollarValue = (
+ coin: Coin,
+ pool: Pool,
+ prices: PriceHash
+): string => {
+ const { amount } = coin;
+ const liquidity = calcPoolLiquidity(pool, prices);
+
+ return new BigNumber(liquidity)
+ .multipliedBy(amount)
+ .dividedBy(pool.totalShares!.amount)
+ .toString();
+};
+
+export const convertDollarValueToCoins = (
+ value: string | number,
+ pool: Pool,
+ prices: PriceHash
+): CoinValue[] => {
+ const tokens = pool.poolAssets.map(({ token: { denom }, weight }) => {
+ const ratio = new BigNumber(weight).dividedBy(pool.totalWeight);
+ const valueByRatio = new BigNumber(value).multipliedBy(ratio);
+ const displayAmount = valueByRatio.dividedBy(prices[denom]).toString();
+ const amount = new BigNumber(displayAmount)
+ .shiftedBy(getExponentByDenom(denom))
+ .toString();
+ const symbol = osmoDenomToSymbol(denom);
+
+ return {
+ denom,
+ symbol,
+ amount,
+ displayAmount,
+ value: valueByRatio.toString(),
+ };
+ });
+ return tokens;
+};
+
+export const convertDollarValueToShares = (
+ value: string | number,
+ pool: Pool,
+ prices: PriceHash
+) => {
+ const liquidity = calcPoolLiquidity(pool, prices);
+
+ return new BigNumber(value)
+ .multipliedBy(pool.totalShares.amount)
+ .dividedBy(liquidity)
+ .shiftedBy(-18)
+ .toString();
+};
+
+const assetHashMap = osmosisAssets.reduce((res, asset) => {
+ return { ...res, [asset.base]: asset };
+}, {});
+
+export const prettyPool = (
+ pool: Pool,
+ { includeDetails = false } = {}
+): PoolPretty => {
+ const totalWeight = new BigNumber(pool.totalWeight);
+ const tokens = pool.poolAssets.map(({ token, weight }) => {
+ // @ts-ignore
+ const asset = assetHashMap?.[token.denom];
+ const symbol = asset?.symbol ?? token.denom;
+ const ratio = new BigNumber(weight).dividedBy(totalWeight).toString();
+ const obj = {
+ symbol,
+ denom: token.denom,
+ amount: token.amount,
+ ratio,
+ info: undefined,
+ };
+ if (includeDetails) {
+ obj.info = asset;
+ }
+ return obj;
+ });
+ const value = {
+ nickname: tokens.map((t) => t.symbol).join('/'),
+ images: undefined,
+ };
+ if (includeDetails) {
+ // @ts-ignore
+ value.images = tokens
+ .map((t) => {
+ // @ts-ignore
+ const imgs = t?.info?.logo_URIs;
+ if (imgs) {
+ return {
+ token: t.symbol,
+ images: imgs,
+ };
+ }
+ })
+ .filter(Boolean);
+ }
+ // @ts-ignore
+ return {
+ ...value,
+ ...pool,
+ poolAssetsPretty: tokens,
+ };
+};
+
+export const calcCoinsNeededForValue = (
+ prices: PriceHash,
+ poolInfo: PoolPretty,
+ value: string | number
+) => {
+ const val = new BigNumber(value);
+ const coinsNeeded = poolInfo.poolAssetsPretty.map(
+ ({ symbol, amount, denom, ratio }) => {
+ const valueByRatio = val.multipliedBy(ratio).toString();
+ const amountNeeded = dollarValueToDenomUnits(
+ prices,
+ symbol,
+ valueByRatio
+ );
+ const unitRatio = new BigNumber(amountNeeded)
+ .dividedBy(amount)
+ .toString();
+
+ return {
+ denom: denom,
+ symbol: symbol,
+ amount: noDecimals(amountNeeded),
+ shareTotalValue: valueByRatio,
+ displayAmount: baseUnitsToDisplayUnits(symbol, amountNeeded),
+ totalDollarValue: baseUnitsToDollarValue(prices, symbol, amount),
+ unitRatio,
+ };
+ }
+ );
+ return coinsNeeded;
+};
+
+export const getCoinBalance = (
+ prices: PriceHash,
+ balances: Coin[],
+ prettyAsset: PoolAssetPretty
+): CoinBalance => {
+ const coinBalance = balances.find((coin) => coin.denom == prettyAsset.denom);
+
+ if (!coinBalance || !coinBalance.amount) {
+ // console.log({ coinBalance });
+ // throw new Error("not enough " + prettyAsset.symbol);
+ // @ts-ignore
+ return { ...coinBalance, displayValue: 0 };
+ }
+
+ const displayValue = baseUnitsToDollarValue(
+ prices,
+ prettyAsset.symbol,
+ coinBalance.amount
+ );
+
+ return { ...coinBalance, displayValue };
+};
+
+export const calcMaxCoinsForPool = (
+ prices: PriceHash,
+ poolInfo: PoolPretty,
+ balances: Coin[]
+) => {
+ const smallestTotalDollarValue = poolInfo.poolAssetsPretty
+ .map((prettyAsset) => {
+ const { displayValue } = getCoinBalance(prices, balances, prettyAsset);
+ return new BigNumber(displayValue).dividedBy(prettyAsset.ratio);
+ })
+ .sort((a, b) => a.minus(b).toNumber())[0]
+ .toString();
+
+ const coinsNeeded = poolInfo.poolAssetsPretty.map((asset) => {
+ const coinValue = new BigNumber(smallestTotalDollarValue)
+ .multipliedBy(asset.ratio)
+ .toString();
+ const amount = dollarValueToDenomUnits(prices, asset.symbol, coinValue);
+
+ return {
+ denom: asset.denom,
+ amount: noDecimals(amount),
+ };
+ });
+
+ return coinsNeeded;
+};
+
+export const calcShareOutAmount = (
+ poolInfo: Pool,
+ coinsNeeded: Coin[]
+): string => {
+ return poolInfo.poolAssets
+ .map(({ token }, i) => {
+ const tokenInAmount = new BigNumber(coinsNeeded[i].amount);
+ const totalShare = new BigNumber(poolInfo.totalShares.amount);
+ const totalShareExp = totalShare.shiftedBy(-18);
+ const poolAssetAmount = new BigNumber(token.amount);
+
+ return tokenInAmount
+ .multipliedBy(totalShareExp)
+ .dividedBy(poolAssetAmount)
+ .shiftedBy(18)
+ .decimalPlaces(0, BigNumber.ROUND_HALF_UP)
+ .toString();
+ })
+ .sort()[0];
+};
+
+export const makePoolPairs = (pools: Pool[]): PrettyPair[] => {
+ // @ts-ignore
+ return pools
+ .filter(
+ (pool) =>
+ pool.poolAssets.length === 2 &&
+ pool.poolAssets.every(({ token }) => !token.denom.startsWith('gamm'))
+ )
+ .map((pool) => {
+ const assetA = pool.poolAssets[0].token;
+ const assetAinfo = getOsmoAssetByDenom(assetA.denom);
+ const assetB = pool.poolAssets[1].token;
+ const assetBinfo = getOsmoAssetByDenom(assetB.denom);
+
+ if (!assetAinfo || !assetBinfo) return;
+
+ return {
+ // TODO fix the fact this is seemingly using long
+ // TODO or, why do we even have pools here???
+ // @ts-ignore
+ poolId: typeof pool.id === 'string' ? pool.id : pool.id.low.toString(),
+ poolAddress: pool.address,
+ baseName: assetAinfo.display,
+ baseSymbol: assetAinfo.symbol,
+ baseAddress: assetAinfo.base,
+ quoteName: assetBinfo.display,
+ quoteSymbol: assetBinfo.symbol,
+ quoteAddress: assetBinfo.base,
+ };
+ })
+ .filter(Boolean);
+};
diff --git a/examples/chain-template/utils/asset-list/types.ts b/examples/chain-template/utils/asset-list/types.ts
new file mode 100644
index 000000000..e1e13eb1c
--- /dev/null
+++ b/examples/chain-template/utils/asset-list/types.ts
@@ -0,0 +1,85 @@
+import { AssetDenomUnit } from '@chain-registry/types';
+import { Duration } from 'osmo-query/dist/codegen/google/protobuf/duration';
+import { Gauge } from 'osmo-query/dist/codegen/osmosis/incentives/gauge';
+import { SuperfluidAsset } from 'osmo-query/dist/codegen/osmosis/superfluid/superfluid';
+import { Coin } from 'osmo-query/dist/codegen/cosmos/base/v1beta1/coin';
+import { Pool } from 'osmo-query/dist/codegen/osmosis/gamm/pool-models/balancer/balancerPool';
+
+export type CoinDenom = AssetDenomUnit['denom'];
+
+export type Exponent = AssetDenomUnit['exponent'];
+
+export type CoinSymbol = string;
+
+export interface PriceHash {
+ [key: CoinDenom]: number;
+}
+
+export type CoinGeckoToken = string;
+
+export interface CoinGeckoUSD {
+ usd: number;
+}
+
+export type CoinGeckoUSDResponse = Record;
+
+export interface CoinValue {
+ amount: string;
+ denom: CoinDenom;
+ displayAmount: string;
+ value: string;
+ symbol: CoinSymbol;
+}
+
+export type CoinBalance = Coin & { displayValue: string | number };
+
+export interface PoolAssetPretty {
+ symbol: any;
+ denom: string;
+ amount: string;
+ ratio: string;
+ info: any;
+}
+
+export interface PoolTokenImage {
+ token: CoinSymbol;
+ images: {
+ png: string;
+ svg: string;
+ };
+}
+
+export interface PoolPretty extends Pool {
+ nickname: string;
+ images: PoolTokenImage[] | null;
+ poolAssetsPretty: PoolAssetPretty[];
+}
+
+export interface CalcPoolAprsParams {
+ activeGauges: Gauge[];
+ pool: Pool;
+ prices: PriceHash;
+ superfluidPools: SuperfluidAsset[];
+ aprSuperfluid: string | number;
+ lockupDurations: Duration[];
+ volume7d: string | number;
+ swapFee: string | number;
+ lockup?: string;
+ includeNonPerpetual?: boolean;
+}
+
+export interface Trade {
+ sell: Coin;
+ buy: Coin;
+}
+
+export interface PrettyPair {
+ poolId: string;
+ poolAddress: string;
+ baseName: string;
+ baseSymbol: string;
+ baseAddress: string;
+ quoteName: string;
+ quoteSymbol: string;
+ quoteAddress: string;
+}
diff --git a/examples/chain-template/utils/common.ts b/examples/chain-template/utils/common.ts
new file mode 100644
index 000000000..45f856b71
--- /dev/null
+++ b/examples/chain-template/utils/common.ts
@@ -0,0 +1,54 @@
+import { assets } from 'chain-registry';
+import { Asset, AssetList } from '@chain-registry/types';
+import { GasPrice } from '@cosmjs/stargate';
+import { SignerOptions, Wallet } from '@cosmos-kit/core';
+
+export const getChainAssets = (chainName: string) => {
+ return assets.find((chain) => chain.chain_name === chainName) as AssetList;
+};
+
+export const getCoin = (chainName: string) => {
+ const chainAssets = getChainAssets(chainName);
+ return chainAssets.assets[0] as Asset;
+};
+
+export const getExponent = (chainName: string) => {
+ return getCoin(chainName).denom_units.find(
+ (unit) => unit.denom === getCoin(chainName).display,
+ )?.exponent as number;
+};
+
+export const shortenAddress = (address: string, partLength = 6) => {
+ return `${address.slice(0, partLength)}...${address.slice(-partLength)}`;
+};
+
+export const getWalletLogo = (wallet: Wallet) => {
+ if (!wallet?.logo) return '';
+
+ return typeof wallet.logo === 'string'
+ ? wallet.logo
+ : wallet.logo.major || wallet.logo.minor;
+};
+
+export const getSignerOptions = (): SignerOptions => {
+ const defaultGasPrice = GasPrice.fromString('0.025uosmo');
+
+ return {
+ // @ts-ignore
+ signingStargate: (chain) => {
+ if (typeof chain === 'string') {
+ return { gasPrice: defaultGasPrice };
+ }
+ let gasPrice;
+ try {
+ const feeToken = chain.fees?.fee_tokens[0];
+ const fee = `${feeToken?.average_gas_price || 0.025}${feeToken?.denom}`;
+ gasPrice = GasPrice.fromString(fee);
+ } catch (error) {
+ gasPrice = defaultGasPrice;
+ }
+ return { gasPrice };
+ },
+ preferredSignType: () => 'direct',
+ };
+};
diff --git a/examples/chain-template/utils/contract.ts b/examples/chain-template/utils/contract.ts
new file mode 100644
index 000000000..3511318c3
--- /dev/null
+++ b/examples/chain-template/utils/contract.ts
@@ -0,0 +1,164 @@
+import { Asset, Chain } from '@chain-registry/types';
+import { toBech32, fromBech32 } from '@cosmjs/encoding';
+import { DeliverTxResponse } from '@cosmjs/cosmwasm-stargate';
+import { logs } from '@cosmjs/stargate';
+import { CodeInfoResponse } from 'interchain-query/cosmwasm/wasm/v1/query';
+import { AccessType } from 'interchain-query/cosmwasm/wasm/v1/types';
+import BigNumber from 'bignumber.js';
+
+export const validateContractAddress = (
+ address: string,
+ bech32Prefix: string,
+) => {
+ if (!bech32Prefix)
+ return 'Cannot retrieve bech32 prefix of the current network.';
+
+ if (!address.startsWith(bech32Prefix))
+ return `Invalid prefix (expected "${bech32Prefix}")`;
+
+ const bytes = Array.from(Array(32).keys());
+ const exampleAddress = toBech32(bech32Prefix, new Uint8Array(bytes));
+
+ if (address.length !== exampleAddress.length) return 'Invalid address length';
+
+ try {
+ fromBech32(address);
+ } catch (e) {
+ return (e as Error).message;
+ }
+
+ return null;
+};
+
+export const validateJson = (text: string) => {
+ try {
+ if (text.trim().length === 0)
+ throw new SyntaxError(`Can't use empty string`);
+ JSON.parse(text);
+ return null;
+ } catch (error) {
+ return (error as SyntaxError).message;
+ }
+};
+
+export const prettifyJson = (text: string) => {
+ try {
+ return JSON.stringify(JSON.parse(text), null, 2);
+ } catch {
+ return text;
+ }
+};
+
+export const countJsonLines = (text: string) => text.split(/\n/).length;
+
+export const getExplorerLink = (chain: Chain, txHash: string) => {
+ const txPageLink = chain.explorers?.[0].tx_page ?? '';
+ return `${txPageLink.replace('${txHash}', txHash)}`;
+};
+
+export const getExponentFromAsset = (asset: Asset) => {
+ return asset.denom_units.find((unit) => unit.denom === asset.display)
+ ?.exponent;
+};
+
+export const bytesToKb = (bytes: number) => {
+ return BigNumber(bytes)
+ .dividedBy(1000)
+ .toFixed(bytes >= 1000 ? 0 : 2);
+};
+
+export const findAttr = (
+ events: logs.Log['events'],
+ eventType: string,
+ attrKey: string,
+) => {
+ const mimicLog: logs.Log = {
+ msg_index: 0,
+ log: '',
+ events,
+ };
+
+ try {
+ return logs.findAttribute([mimicLog], eventType, attrKey).value;
+ } catch {
+ return undefined;
+ }
+};
+
+export type PrettyTxResult = {
+ codeId: string;
+ codeHash: string;
+ txHash: string;
+ txFee: string;
+};
+
+export const prettyStoreCodeTxResult = (
+ txResponse: DeliverTxResponse,
+): PrettyTxResult => {
+ const events = txResponse.events;
+ const codeId = findAttr(events, 'store_code', 'code_id') ?? '0';
+ const codeHash = findAttr(events, 'store_code', 'code_checksum') ?? '';
+ const txHash = txResponse.transactionHash;
+ const txFee =
+ txResponse.events.find((e) => e.type === 'tx')?.attributes[0].value ?? '';
+
+ return {
+ codeId,
+ codeHash,
+ txHash,
+ txFee,
+ };
+};
+
+export const splitCamelCase = (text: string): string => {
+ return text.replace(/([A-Z])/g, ' $1').trim();
+};
+
+export const resolvePermission = (
+ address: string,
+ permission: AccessType,
+ permissionAddresses: string[] = [],
+): boolean =>
+ permission === AccessType.ACCESS_TYPE_EVERYBODY ||
+ (address ? permissionAddresses.includes(address) : false);
+
+export interface CodeInfo {
+ id: number;
+ uploader: string;
+ permission: AccessType;
+ addresses: string[];
+}
+
+export const prettyCodeInfo = (rawCodeInfo: CodeInfoResponse): CodeInfo => {
+ const { codeId, creator, instantiatePermission } = rawCodeInfo;
+
+ return {
+ id: Number(codeId),
+ permission: instantiatePermission?.permission!,
+ uploader: creator,
+ addresses: instantiatePermission?.addresses || [],
+ };
+};
+
+export const isPositiveInt = (input: string): boolean => {
+ if (input.startsWith('0x')) return false;
+ const numberValue = Number(input);
+ return Number.isInteger(numberValue) && numberValue > 0;
+};
+
+export const isValidCodeId = (input: string): boolean =>
+ input.length <= 7 && isPositiveInt(input);
+
+export const toKebabCase = (str: string): string => {
+ return str
+ .split(/(?=[A-Z])/)
+ .join('-')
+ .toLowerCase();
+};
+
+export const toPascalCase = (str: string): string => {
+ return str
+ .split('-')
+ .map((s) => s.charAt(0).toUpperCase() + s.slice(1))
+ .join('');
+};
diff --git a/examples/chain-template/utils/faucet.ts b/examples/chain-template/utils/faucet.ts
new file mode 100644
index 000000000..699c8bd98
--- /dev/null
+++ b/examples/chain-template/utils/faucet.ts
@@ -0,0 +1,82 @@
+import { Asset, Chain } from '@chain-registry/types';
+import { ChainInfo, Currency } from '@keplr-wallet/types';
+import { fromBech32 } from '@cosmjs/encoding';
+
+export const makeKeplrChainInfo = (chain: Chain, asset: Asset): ChainInfo => {
+ const currency: Currency = {
+ coinDenom: asset.symbol,
+ coinMinimalDenom: asset.base,
+ coinDecimals:
+ asset.denom_units.find(({ denom }) => denom === asset.display)
+ ?.exponent ?? 6,
+ coinGeckoId: asset.coingecko_id,
+ coinImageUrl:
+ asset.logo_URIs?.svg ||
+ asset.logo_URIs?.png ||
+ asset.logo_URIs?.jpeg ||
+ '',
+ };
+
+ return {
+ rpc: chain.apis?.rpc?.[0].address ?? '',
+ rest: chain.apis?.rest?.[0].address ?? '',
+ chainId: chain.chain_id,
+ chainName: chain.chain_name,
+ bip44: {
+ coinType: 118,
+ },
+ bech32Config: {
+ bech32PrefixAccAddr: chain.bech32_prefix,
+ bech32PrefixAccPub: chain.bech32_prefix + 'pub',
+ bech32PrefixValAddr: chain.bech32_prefix + 'valoper',
+ bech32PrefixValPub: chain.bech32_prefix + 'valoperpub',
+ bech32PrefixConsAddr: chain.bech32_prefix + 'valcons',
+ bech32PrefixConsPub: chain.bech32_prefix + 'valconspub',
+ },
+ currencies: [currency],
+ feeCurrencies: [
+ {
+ ...currency,
+ gasPriceStep: {
+ low: chain.fees?.fee_tokens[0].low_gas_price ?? 0.0025,
+ average: chain.fees?.fee_tokens[0].average_gas_price ?? 0.025,
+ high: chain.fees?.fee_tokens[0].high_gas_price ?? 0.04,
+ },
+ },
+ ],
+ stakeCurrency: currency,
+ };
+};
+
+export const creditFromFaucet = async (
+ address: string,
+ denom: string,
+ port: number
+) => {
+ const faucetEndpoint = `http://localhost:${port}/credit`;
+
+ await fetch(faucetEndpoint, {
+ method: 'POST',
+ body: JSON.stringify({
+ address,
+ denom,
+ }),
+ headers: {
+ 'Content-type': 'application/json',
+ },
+ });
+};
+
+export const validateChainAddress = (address: string, bech32Prefix: string) => {
+ if (!address.startsWith(bech32Prefix)) {
+ return `Invalid prefix (expected "${bech32Prefix}")`;
+ }
+
+ try {
+ fromBech32(address);
+ } catch (e) {
+ return 'Invalid address';
+ }
+
+ return null;
+};
diff --git a/examples/chain-template/utils/index.ts b/examples/chain-template/utils/index.ts
new file mode 100644
index 000000000..acb8b6030
--- /dev/null
+++ b/examples/chain-template/utils/index.ts
@@ -0,0 +1,6 @@
+export * from './common';
+export * from './staking';
+export * from './voting';
+export * from './asset-list';
+export * from './contract';
+export * from './faucet';
diff --git a/examples/chain-template/utils/staking/index.ts b/examples/chain-template/utils/staking/index.ts
new file mode 100644
index 000000000..1814eb8c7
--- /dev/null
+++ b/examples/chain-template/utils/staking/index.ts
@@ -0,0 +1,3 @@
+export * from './math';
+export * from './logos';
+export * from './staking';
diff --git a/examples/chain-template/utils/staking/logos.ts b/examples/chain-template/utils/staking/logos.ts
new file mode 100644
index 000000000..e0e256d2e
--- /dev/null
+++ b/examples/chain-template/utils/staking/logos.ts
@@ -0,0 +1,123 @@
+import { ExtendedValidator as Validator } from './staking';
+
+type ImageSource = {
+ imageSource: 'cosmostation' | 'keybase';
+};
+
+export const splitIntoChunks = (arr: any[], chunkSize: number) => {
+ const res = [];
+ for (let i = 0; i < arr.length; i += chunkSize) {
+ const chunk = arr.slice(i, i + chunkSize);
+ res.push(chunk);
+ }
+ return res;
+};
+
+export const convertChainName = (chainName: string) => {
+ if (chainName.endsWith('testnet')) {
+ return chainName.replace('testnet', '-testnet');
+ }
+
+ switch (chainName) {
+ case 'cosmoshub':
+ return 'cosmos';
+ case 'assetmantle':
+ return 'asset-mantle';
+ case 'cryptoorgchain':
+ return 'crypto-org';
+ case 'dig':
+ return 'dig-chain';
+ case 'gravitybridge':
+ return 'gravity-bridge';
+ case 'kichain':
+ return 'ki-chain';
+ case 'oraichain':
+ return 'orai-chain';
+ case 'terra':
+ return 'terra-classic';
+ default:
+ return chainName;
+ }
+};
+
+export const isUrlValid = async (url: string) => {
+ const res = await fetch(url, { method: 'HEAD' });
+ const contentType = res?.headers?.get('Content-Type') || '';
+ return contentType.startsWith('image');
+};
+
+export const getCosmostationUrl = (
+ chainName: string,
+ validatorAddr: string
+) => {
+ const cosmostationChainName = convertChainName(chainName);
+ return `https://raw.githubusercontent.com/cosmostation/chainlist/main/chain/${cosmostationChainName}/moniker/${validatorAddr}.png`;
+};
+
+export const getKeybaseUrl = (identity: string) => {
+ return `https://keybase.io/_/api/1.0/user/lookup.json?key_suffix=${identity}&fields=pictures`;
+};
+
+export const addLogoUrlSource = async (
+ validator: Validator,
+ chainName: string
+): Promise => {
+ const url = getCosmostationUrl(chainName, validator.address);
+ const isValid = await isUrlValid(url);
+ return { ...validator, imageSource: isValid ? 'cosmostation' : 'keybase' };
+};
+
+export const getLogoUrls = async (
+ validators: Validator[],
+ chainName: string
+) => {
+ const validatorsWithImgSource = await Promise.all(
+ validators.map((validator) => addLogoUrlSource(validator, chainName))
+ );
+
+ // cosmostation urls
+ const cosmostationUrls = validatorsWithImgSource
+ .filter((validator) => validator.imageSource === 'cosmostation')
+ .map(({ address }) => {
+ return {
+ address,
+ url: getCosmostationUrl(chainName, address),
+ };
+ });
+
+ // keybase urls
+ const keybaseIdentities = validatorsWithImgSource
+ .filter((validator) => validator.imageSource === 'keybase')
+ .map(({ address, identity }) => ({
+ address,
+ identity,
+ }));
+
+ const chunkedIdentities = splitIntoChunks(keybaseIdentities, 20);
+
+ let responses: any[] = [];
+
+ for (const chunk of chunkedIdentities) {
+ const logoUrlRequests = chunk.map(({ address, identity }) => {
+ if (!identity) return { address, url: '' };
+
+ return fetch(getKeybaseUrl(identity))
+ .then((response) => response.json())
+ .then((res) => ({
+ address,
+ url: res.them?.[0]?.pictures?.primary.url || '',
+ }));
+ });
+ responses = [...responses, await Promise.all(logoUrlRequests)];
+ await new Promise((resolve) => setTimeout(resolve, 500));
+ }
+
+ const keybaseUrls = responses.flat();
+
+ const allUrls = [...cosmostationUrls, ...keybaseUrls].reduce(
+ (prev, cur) => ({ ...prev, [cur.address]: cur.url }),
+ {}
+ );
+
+ return allUrls;
+};
diff --git a/examples/chain-template/utils/staking/math.ts b/examples/chain-template/utils/staking/math.ts
new file mode 100644
index 000000000..cc6887791
--- /dev/null
+++ b/examples/chain-template/utils/staking/math.ts
@@ -0,0 +1,48 @@
+import { Prices } from '@/hooks';
+import BigNumber from 'bignumber.js';
+
+export const isGreaterThanZero = (val: number | string | undefined) => {
+ return new BigNumber(val || 0).gt(0);
+};
+
+export const shiftDigits = (
+ num: string | number,
+ places: number,
+ decimalPlaces?: number
+) => {
+ return new BigNumber(num)
+ .shiftedBy(places)
+ .decimalPlaces(decimalPlaces || 6)
+ .toString();
+};
+
+export const toNumber = (val: string, decimals: number = 6) => {
+ return new BigNumber(val).decimalPlaces(decimals).toNumber();
+};
+
+export const sum = (...args: string[]) => {
+ return args
+ .reduce((prev, cur) => prev.plus(cur), new BigNumber(0))
+ .toString();
+};
+
+export const calcDollarValue = (
+ denom: string,
+ amount: string | number,
+ prices: Prices
+) => {
+ return new BigNumber(prices?.[denom] || 0)
+ .times(amount)
+ .decimalPlaces(2)
+ .toNumber();
+};
+
+export const toBaseAmount = (
+ num: string | number,
+ places: number
+) => {
+ return new BigNumber(num)
+ .shiftedBy(places)
+ .integerValue(BigNumber.ROUND_DOWN)
+ .toString();
+};
\ No newline at end of file
diff --git a/examples/chain-template/utils/staking/staking.ts b/examples/chain-template/utils/staking/staking.ts
new file mode 100644
index 000000000..6a279b7d7
--- /dev/null
+++ b/examples/chain-template/utils/staking/staking.ts
@@ -0,0 +1,180 @@
+import { QueryDelegationTotalRewardsResponse } from 'interchain-query/cosmos/distribution/v1beta1/query';
+import {
+ Pool,
+ Validator,
+} from 'interchain-query/cosmos/staking/v1beta1/staking';
+import { isGreaterThanZero, shiftDigits, toNumber } from '.';
+import { Coin, decodeCosmosSdkDecFromProto } from '@cosmjs/stargate';
+import {
+ QueryDelegatorDelegationsResponse,
+ QueryParamsResponse,
+} from 'interchain-query/cosmos/staking/v1beta1/query';
+import BigNumber from 'bignumber.js';
+import { QueryAnnualProvisionsResponse } from 'interchain-query/cosmos/mint/v1beta1/query';
+import type { Asset } from '@chain-registry/types';
+
+const DAY_TO_SECONDS = 24 * 60 * 60;
+const ZERO = '0';
+
+export const calcStakingApr = ({
+ pool,
+ commission,
+ communityTax,
+ annualProvisions,
+}: ChainMetaData & { commission: string }) => {
+ const totalSupply = new BigNumber(pool?.bondedTokens || 0).plus(
+ pool?.notBondedTokens || 0
+ );
+
+ const bondedTokensRatio = new BigNumber(pool?.bondedTokens || 0).div(
+ totalSupply
+ );
+
+ const inflation = new BigNumber(annualProvisions || 0).div(totalSupply);
+
+ const one = new BigNumber(1);
+
+ return inflation
+ .multipliedBy(one.minus(communityTax || 0))
+ .div(bondedTokensRatio)
+ .multipliedBy(one.minus(commission))
+ .shiftedBy(2)
+ .decimalPlaces(2, BigNumber.ROUND_DOWN)
+ .toString();
+};
+
+export const decodeUint8Arr = (uint8array: Uint8Array | undefined) => {
+ if (!uint8array) return '';
+ return new TextDecoder('utf-8').decode(uint8array);
+};
+
+const formatCommission = (commission: string) => {
+ return new BigNumber(commission).isLessThan(1)
+ ? commission
+ : shiftDigits(commission, -18);
+};
+
+export type ParsedValidator = ReturnType[0];
+
+export const parseValidators = (validators: Validator[]) => {
+ return validators.map((validator) => ({
+ description: validator.description?.details || '',
+ name: validator.description?.moniker || '',
+ identity: validator.description?.identity || '',
+ address: validator.operatorAddress,
+ commission: formatCommission(
+ validator.commission?.commissionRates?.rate || '0'
+ ),
+ votingPower: toNumber(shiftDigits(validator.tokens, -6, 4), 4),
+ }));
+};
+
+export type ExtendedValidator = ReturnType[0];
+
+export type ChainMetaData = {
+ annualProvisions: string;
+ communityTax: string;
+ pool: Pool;
+};
+
+export const extendValidators = (
+ validators: ParsedValidator[] = [],
+ delegations: ParsedDelegations = [],
+ rewards: ParsedRewards['byValidators'] = [],
+ chainMetadata: ChainMetaData
+) => {
+ const { annualProvisions, communityTax, pool } = chainMetadata;
+
+ return validators.map((validator) => {
+ const { address, commission } = validator;
+
+ const delegation =
+ delegations.find(({ validatorAddress }) => validatorAddress === address)
+ ?.amount || ZERO;
+ const reward =
+ rewards.find(({ validatorAddress }) => validatorAddress === address)
+ ?.amount || ZERO;
+
+ const apr =
+ annualProvisions && communityTax && pool && commission
+ ? calcStakingApr({ annualProvisions, commission, communityTax, pool })
+ : null;
+
+ return { ...validator, delegation, reward, apr };
+ });
+};
+
+const findAndDecodeReward = (
+ coins: Coin[],
+ denom: string,
+ exponent: number
+) => {
+ const amount = coins.find((coin) => coin.denom === denom)?.amount || ZERO;
+ const decodedAmount = decodeCosmosSdkDecFromProto(amount).toString();
+ return shiftDigits(decodedAmount, exponent);
+};
+
+export type ParsedRewards = ReturnType;
+
+export const parseRewards = (
+ { rewards, total }: QueryDelegationTotalRewardsResponse,
+ denom: string,
+ exponent: number
+) => {
+ if (!rewards || !total) return { byValidators: [], total: ZERO };
+
+ const totalReward = findAndDecodeReward(total, denom, exponent);
+
+ const rewardsParsed = rewards.map(({ reward, validatorAddress }) => ({
+ validatorAddress,
+ amount: findAndDecodeReward(reward, denom, exponent),
+ }));
+
+ return { byValidators: rewardsParsed, total: totalReward };
+};
+
+export type ParsedDelegations = ReturnType;
+
+export const parseDelegations = (
+ delegations: QueryDelegatorDelegationsResponse['delegationResponses'],
+ exponent: number
+) => {
+ if (!delegations) return [];
+ return delegations.map(({ balance, delegation }) => ({
+ validatorAddress: delegation?.validatorAddress || '',
+ amount: shiftDigits(balance?.amount || ZERO, exponent),
+ }));
+};
+
+export const calcTotalDelegation = (delegations: ParsedDelegations) => {
+ if (!delegations) return ZERO;
+
+ return delegations
+ .reduce((prev, cur) => prev.plus(cur.amount), new BigNumber(0))
+ .toString();
+};
+
+export const parseUnbondingDays = (params: QueryParamsResponse['params']) => {
+ return new BigNumber(Number(params?.unbondingTime?.seconds || 0))
+ .div(DAY_TO_SECONDS)
+ .decimalPlaces(0)
+ .toString();
+};
+
+export const parseAnnualProvisions = (data: QueryAnnualProvisionsResponse) => {
+ const res = shiftDigits(decodeUint8Arr(data?.annualProvisions), -18);
+ return isGreaterThanZero(res) ? res : null;
+};
+
+export const getAssetLogoUrl = (asset: Asset): string => {
+ return Object.values(asset?.logo_URIs || {})?.[0] || '';
+};
+
+export const formatValidatorMetaInfo = (
+ validator: ExtendedValidator
+): string => {
+ const commissionStr = `Commission ${shiftDigits(validator.commission, 2)}%`;
+ const aprStr = validator.apr ? `APR ${validator.apr}%` : '';
+
+ return [commissionStr, aprStr].filter(Boolean).join(' | ');
+};
diff --git a/examples/chain-template/utils/voting.ts b/examples/chain-template/utils/voting.ts
new file mode 100644
index 000000000..38ca488de
--- /dev/null
+++ b/examples/chain-template/utils/voting.ts
@@ -0,0 +1,82 @@
+import dayjs from 'dayjs';
+import BigNumber from 'bignumber.js';
+import { Chain } from '@chain-registry/types';
+import {
+ Proposal,
+ ProposalStatus,
+} from 'interchain-query/cosmos/gov/v1beta1/gov';
+
+export function getChainLogo(chain: Chain) {
+ return chain.logo_URIs?.svg || chain.logo_URIs?.png || chain.logo_URIs?.jpeg;
+}
+
+export function formatDate(date?: Date) {
+ if (!date) return null;
+ return dayjs(date).format('YYYY-MM-DD HH:mm:ss');
+}
+
+export function paginate(limit: bigint, reverse: boolean = false) {
+ return {
+ limit,
+ reverse,
+ key: new Uint8Array(),
+ offset: 0n,
+ countTotal: true,
+ };
+}
+
+export function percent(num: number | string = 0, total: number, decimals = 2) {
+ return total
+ ? new BigNumber(num)
+ .dividedBy(total)
+ .multipliedBy(100)
+ .decimalPlaces(decimals)
+ .toNumber()
+ : 0;
+}
+
+export const exponentiate = (num: number | string | undefined, exp: number) => {
+ if (!num) return 0;
+ return new BigNumber(num)
+ .multipliedBy(new BigNumber(10).exponentiatedBy(exp))
+ .toNumber();
+};
+
+export function decodeUint8Array(value?: Uint8Array) {
+ return value ? new TextDecoder('utf-8').decode(value) : '';
+}
+
+export function getTitle(value?: Uint8Array) {
+ return decodeUint8Array(value)
+ .slice(0, 250)
+ .match(/[A-Z][A-Za-z].*(?=\u0012)/)?.[0];
+}
+
+export function parseQuorum(value?: Uint8Array) {
+ const quorum = decodeUint8Array(value);
+ return new BigNumber(quorum).shiftedBy(-quorum.length).toNumber();
+}
+
+export function processProposals(proposals: Proposal[]) {
+ const sorted = proposals.sort(
+ (a, b) => Number(b.proposalId) - Number(a.proposalId)
+ );
+
+ proposals.forEach((proposal) => {
+ // @ts-ignore
+ if (!proposal.content?.title && proposal.content?.value) {
+ // @ts-ignore
+ proposal.content.title = getTitle(proposal.content?.value);
+ }
+ });
+
+ return sorted
+ .filter(
+ ({ status }) => status === ProposalStatus.PROPOSAL_STATUS_VOTING_PERIOD
+ )
+ .concat(
+ sorted.filter(
+ ({ status }) => status !== ProposalStatus.PROPOSAL_STATUS_VOTING_PERIOD
+ )
+ );
+}
diff --git a/examples/chain-template/yarn.lock b/examples/chain-template/yarn.lock
new file mode 100644
index 000000000..04085362e
--- /dev/null
+++ b/examples/chain-template/yarn.lock
@@ -0,0 +1,12095 @@
+# This file is generated by running "yarn install" inside your project.
+# Manual changes might be lost - proceed with caution!
+
+__metadata:
+ version: 8
+ cacheKey: 10c0
+
+"@babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.21.0":
+ version: 7.24.4
+ resolution: "@babel/runtime@npm:7.24.4"
+ dependencies:
+ regenerator-runtime: "npm:^0.14.0"
+ checksum: 10c0/785aff96a3aa8ff97f90958e1e8a7b1d47f793b204b47c6455eaadc3f694f48c97cd5c0a921fe3596d818e71f18106610a164fb0f1c71fd68c622a58269d537c
+ languageName: node
+ linkType: hard
+
+"@babel/runtime@npm:^7.23.2":
+ version: 7.24.6
+ resolution: "@babel/runtime@npm:7.24.6"
+ dependencies:
+ regenerator-runtime: "npm:^0.14.0"
+ checksum: 10c0/224ad205de33ea28979baaec89eea4c4d4e9482000dd87d15b97859365511cdd4d06517712504024f5d33a5fb9412f9b91c96f1d923974adf9359e1575cde049
+ languageName: node
+ linkType: hard
+
+"@chain-registry/assets@npm:1.63.5":
+ version: 1.63.5
+ resolution: "@chain-registry/assets@npm:1.63.5"
+ dependencies:
+ "@chain-registry/types": "npm:^0.44.3"
+ checksum: 10c0/52211bb383829a245f738e9a7f388fb768ae35ad34a299dce6b4506ee02d069eaee103f62794b786efc4fc258c6b9b26fd88d21a5c8a2d75612343737b9f10f2
+ languageName: node
+ linkType: hard
+
+"@chain-registry/client@npm:1.18.1":
+ version: 1.18.1
+ resolution: "@chain-registry/client@npm:1.18.1"
+ dependencies:
+ "@babel/runtime": "npm:^7.21.0"
+ "@chain-registry/types": "npm:^0.17.1"
+ "@chain-registry/utils": "npm:^1.17.0"
+ bfs-path: "npm:^1.0.2"
+ cross-fetch: "npm:^3.1.5"
+ checksum: 10c0/9e03b44aae667f6050d6de4f1388122470a2dd94693314f7214c925ed4a1eff79e88ca000bf9f10d308bfd5eb633eca722d2b4e413fef7b566c9a83331e71f26
+ languageName: node
+ linkType: hard
+
+"@chain-registry/client@npm:^1.48.1":
+ version: 1.48.31
+ resolution: "@chain-registry/client@npm:1.48.31"
+ dependencies:
+ "@chain-registry/types": "npm:^0.45.31"
+ "@chain-registry/utils": "npm:^1.46.31"
+ bfs-path: "npm:^1.0.2"
+ cross-fetch: "npm:^3.1.5"
+ checksum: 10c0/ec4a6fa1ae197b939eab0079464bbca4e7fe82714191ef5d679bb468c97fe71fa664baf8c51583e9db9ac9194ec24a9d598fe20ef0f94dd058f67eff82b4b121
+ languageName: node
+ linkType: hard
+
+"@chain-registry/cosmostation@npm:1.66.2":
+ version: 1.66.2
+ resolution: "@chain-registry/cosmostation@npm:1.66.2"
+ dependencies:
+ "@chain-registry/types": "npm:^0.45.1"
+ "@chain-registry/utils": "npm:^1.46.1"
+ "@cosmostation/extension-client": "npm:0.1.15"
+ checksum: 10c0/6ec2bdfd32b05e93bfef23ee72dd65c2c0a539ae70c5cf22fc7e73602e0172bda1a8343352cf4025e410dfec88aa3abe2a59a76e88fc69f2fe5d867eca9408f9
+ languageName: node
+ linkType: hard
+
+"@chain-registry/cosmostation@npm:^1.66.2":
+ version: 1.66.38
+ resolution: "@chain-registry/cosmostation@npm:1.66.38"
+ dependencies:
+ "@chain-registry/types": "npm:^0.45.31"
+ "@chain-registry/utils": "npm:^1.46.31"
+ "@cosmostation/extension-client": "npm:0.1.15"
+ checksum: 10c0/f781d7b66f9db61802c9ed33da317a5c55e29021cf2572b5b934967c3700fb8449a1c776078770c5ce9dc3e2127a2ed7120fdf64d0703e4338e37803df9883a6
+ languageName: node
+ linkType: hard
+
+"@chain-registry/keplr@npm:1.68.2":
+ version: 1.68.2
+ resolution: "@chain-registry/keplr@npm:1.68.2"
+ dependencies:
+ "@chain-registry/types": "npm:^0.45.1"
+ "@keplr-wallet/cosmos": "npm:0.12.28"
+ "@keplr-wallet/crypto": "npm:0.12.28"
+ semver: "npm:^7.5.0"
+ checksum: 10c0/a155f2029f7fb366b6aa6169b8774d01a57150af0ca6925024a77d401e9c0302860208520a7dd5fead08a47b65025b1eddd65c77f10d73cbd7be71b2cda8132d
+ languageName: node
+ linkType: hard
+
+"@chain-registry/keplr@npm:^1.68.2":
+ version: 1.68.38
+ resolution: "@chain-registry/keplr@npm:1.68.38"
+ dependencies:
+ "@chain-registry/types": "npm:^0.45.31"
+ "@keplr-wallet/cosmos": "npm:0.12.28"
+ "@keplr-wallet/crypto": "npm:0.12.28"
+ semver: "npm:^7.5.0"
+ checksum: 10c0/afdc3a1eec9184d9b01179ed67b450f7cb218270ab7500517aaca021eaf62806e0436c22cf10ce5d1d36c52d0d13c7b009aa632f020acc8c39249822b683d6b3
+ languageName: node
+ linkType: hard
+
+"@chain-registry/osmosis@npm:1.61.3":
+ version: 1.61.3
+ resolution: "@chain-registry/osmosis@npm:1.61.3"
+ dependencies:
+ "@chain-registry/types": "npm:^0.44.3"
+ checksum: 10c0/e69033c32dfa46d126d2377103e4527f88f572fad0b185645cd08910557b393956a0c7d73ec8f9b62217ce6f311fff749b20869092f90f084b43fb041825da97
+ languageName: node
+ linkType: hard
+
+"@chain-registry/types@npm:0.44.3, @chain-registry/types@npm:^0.44.3":
+ version: 0.44.3
+ resolution: "@chain-registry/types@npm:0.44.3"
+ checksum: 10c0/471e85e934e42ba2704fece7ca0545df5ef98e947a5d10aaefa7872145a21211036740b4b37bb8a33359561b7533c07c22e1608b372efc19be5e2ebd386ac3de
+ languageName: node
+ linkType: hard
+
+"@chain-registry/types@npm:0.45.1":
+ version: 0.45.1
+ resolution: "@chain-registry/types@npm:0.45.1"
+ checksum: 10c0/d2008c36e2b9d5b4dfbeae2e4038b956789cf7a70bff85d936fdb76a34a16609952b8b233bd09c3e93eeb9ccde26a5492230d1f3e450b2a7a7b8474df76835a5
+ languageName: node
+ linkType: hard
+
+"@chain-registry/types@npm:^0.17.1":
+ version: 0.17.1
+ resolution: "@chain-registry/types@npm:0.17.1"
+ dependencies:
+ "@babel/runtime": "npm:^7.21.0"
+ checksum: 10c0/00400f2994c838dbf0a4a6aa01af397d72badbeee82e13095e1ae1e5853a9405f802f0e5629f3aab0cfaa7ec9eae78eb0976001d5a24a7f33d138e2b02edb547
+ languageName: node
+ linkType: hard
+
+"@chain-registry/types@npm:^0.45.1, @chain-registry/types@npm:^0.45.31":
+ version: 0.45.31
+ resolution: "@chain-registry/types@npm:0.45.31"
+ checksum: 10c0/dcbca6b8fbfbabed00eacf0f15e1863f38493a86d8135987bb591c65f7145fc17403e9b52d8ca1ed2124922964d7336103e03675b48eaa5345950f44f32aaf54
+ languageName: node
+ linkType: hard
+
+"@chain-registry/types@npm:^0.45.26":
+ version: 0.45.26
+ resolution: "@chain-registry/types@npm:0.45.26"
+ checksum: 10c0/9f3163a458c7f2a5867bbad2cea0916345df9df3c03e110dfd79290331b58462da903836fb98b573ba1b95ad835ecffb803c3de649edcfcfb608dde7880e24b4
+ languageName: node
+ linkType: hard
+
+"@chain-registry/utils@npm:^1.17.0":
+ version: 1.46.26
+ resolution: "@chain-registry/utils@npm:1.46.26"
+ dependencies:
+ "@chain-registry/types": "npm:^0.45.26"
+ bignumber.js: "npm:9.1.2"
+ sha.js: "npm:^2.4.11"
+ checksum: 10c0/37cff17ed77323e9c2fe7575261e30ed7e07812b6488e61649252259e6cdb03349146a1d789d2fd5ca77fc51b9baabe38e9ddce267f082a0b95806bf25de505c
+ languageName: node
+ linkType: hard
+
+"@chain-registry/utils@npm:^1.46.1, @chain-registry/utils@npm:^1.46.31":
+ version: 1.46.31
+ resolution: "@chain-registry/utils@npm:1.46.31"
+ dependencies:
+ "@chain-registry/types": "npm:^0.45.31"
+ bignumber.js: "npm:9.1.2"
+ sha.js: "npm:^2.4.11"
+ checksum: 10c0/1c4a53f3ac133ffe8d7f6b6c3f15134e204fe375c9b7e66651fc493751f742e3e91a8c130c6fac9e55d7817ad9f0804a7ecd709197fe3ebfdca16044c96bc817
+ languageName: node
+ linkType: hard
+
+"@classic-terra/terra.proto@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "@classic-terra/terra.proto@npm:1.1.0"
+ dependencies:
+ "@improbable-eng/grpc-web": "npm:^0.14.1"
+ google-protobuf: "npm:^3.17.3"
+ long: "npm:^4.0.0"
+ protobufjs: "npm:~6.11.2"
+ checksum: 10c0/b285534bf7242286a9780a484d10d901af491bbfad1b3697f7b3439dc824ae7658ad8d2a8c3af179ef772c66a2c3c5d6118b055b0a087bea29e5a98abdfd6072
+ languageName: node
+ linkType: hard
+
+"@confio/ics23@npm:^0.6.8":
+ version: 0.6.8
+ resolution: "@confio/ics23@npm:0.6.8"
+ dependencies:
+ "@noble/hashes": "npm:^1.0.0"
+ protobufjs: "npm:^6.8.8"
+ checksum: 10c0/2f3f5032cd6a34c9b2fbd64bbf7e1cdec75ca71f348a770f7b5474b5027b12202bfbcd404eca931efddb5901f769af035a87cb8bddbf3f23d7e5d93c9d3d7f6f
+ languageName: node
+ linkType: hard
+
+"@cosmjs/amino@npm:0.29.3":
+ version: 0.29.3
+ resolution: "@cosmjs/amino@npm:0.29.3"
+ dependencies:
+ "@cosmjs/crypto": "npm:^0.29.3"
+ "@cosmjs/encoding": "npm:^0.29.3"
+ "@cosmjs/math": "npm:^0.29.3"
+ "@cosmjs/utils": "npm:^0.29.3"
+ checksum: 10c0/5f7916ed259239c83303a5c1ae467021961db7c250a56aba24b2432ad66c2d1612c73055a1e86783f54417720450ba814ca5e854a0c98eb6823f66f20bdecdec
+ languageName: node
+ linkType: hard
+
+"@cosmjs/amino@npm:0.29.4":
+ version: 0.29.4
+ resolution: "@cosmjs/amino@npm:0.29.4"
+ dependencies:
+ "@cosmjs/crypto": "npm:^0.29.4"
+ "@cosmjs/encoding": "npm:^0.29.4"
+ "@cosmjs/math": "npm:^0.29.4"
+ "@cosmjs/utils": "npm:^0.29.4"
+ checksum: 10c0/c740fe4c6d8adf157d560bba5d1b8213502725dad1d39516bf809f9b29001e04c22a9b8c63781953d0ddc3c857bf819f10ab42681ec0fe3f7050ffb8eae659f2
+ languageName: node
+ linkType: hard
+
+"@cosmjs/amino@npm:0.32.3, @cosmjs/amino@npm:^0.32.3":
+ version: 0.32.3
+ resolution: "@cosmjs/amino@npm:0.32.3"
+ dependencies:
+ "@cosmjs/crypto": "npm:^0.32.3"
+ "@cosmjs/encoding": "npm:^0.32.3"
+ "@cosmjs/math": "npm:^0.32.3"
+ "@cosmjs/utils": "npm:^0.32.3"
+ checksum: 10c0/6f3da2ba6d88257d6717898af798aad9f2a51bb2c0d0b61cd40cf103c86a1431f4fa5086df350f81371d3282b8a28bcbc4f97c6d9eb83a9831fad473ae1ab492
+ languageName: node
+ linkType: hard
+
+"@cosmjs/amino@npm:^0.29.3, @cosmjs/amino@npm:^0.29.4, @cosmjs/amino@npm:^0.29.5":
+ version: 0.29.5
+ resolution: "@cosmjs/amino@npm:0.29.5"
+ dependencies:
+ "@cosmjs/crypto": "npm:^0.29.5"
+ "@cosmjs/encoding": "npm:^0.29.5"
+ "@cosmjs/math": "npm:^0.29.5"
+ "@cosmjs/utils": "npm:^0.29.5"
+ checksum: 10c0/bf8ec4d2412997aea89997fa07474c8590b02ac9337b3e87e68e8c9295d1001cf3f41a660a72208dc4e005d5a25620483c8eac21f7fa1b0a6adc6b6eeaee2a4a
+ languageName: node
+ linkType: hard
+
+"@cosmjs/amino@npm:^0.31.1, @cosmjs/amino@npm:^0.31.3":
+ version: 0.31.3
+ resolution: "@cosmjs/amino@npm:0.31.3"
+ dependencies:
+ "@cosmjs/crypto": "npm:^0.31.3"
+ "@cosmjs/encoding": "npm:^0.31.3"
+ "@cosmjs/math": "npm:^0.31.3"
+ "@cosmjs/utils": "npm:^0.31.3"
+ checksum: 10c0/2f5f866df043bef072ef8802844beacd282027dcc32f69428fe98e256d5fec0dd4a45a4c7d6c45c8a7d7f4387893ef02c8b471a32d6450215f56157d6eaa467e
+ languageName: node
+ linkType: hard
+
+"@cosmjs/amino@npm:^0.32.0, @cosmjs/amino@npm:^0.32.4":
+ version: 0.32.4
+ resolution: "@cosmjs/amino@npm:0.32.4"
+ dependencies:
+ "@cosmjs/crypto": "npm:^0.32.4"
+ "@cosmjs/encoding": "npm:^0.32.4"
+ "@cosmjs/math": "npm:^0.32.4"
+ "@cosmjs/utils": "npm:^0.32.4"
+ checksum: 10c0/cd8e215b0406f5c7b73ab0a21106d06b6f76b1da12f1ab7b612884e1dd8bc626966dc67d4e7580090ade131546cbec70000f854e6596935299d054b788929a7e
+ languageName: node
+ linkType: hard
+
+"@cosmjs/cosmwasm-stargate@npm:0.32.3":
+ version: 0.32.3
+ resolution: "@cosmjs/cosmwasm-stargate@npm:0.32.3"
+ dependencies:
+ "@cosmjs/amino": "npm:^0.32.3"
+ "@cosmjs/crypto": "npm:^0.32.3"
+ "@cosmjs/encoding": "npm:^0.32.3"
+ "@cosmjs/math": "npm:^0.32.3"
+ "@cosmjs/proto-signing": "npm:^0.32.3"
+ "@cosmjs/stargate": "npm:^0.32.3"
+ "@cosmjs/tendermint-rpc": "npm:^0.32.3"
+ "@cosmjs/utils": "npm:^0.32.3"
+ cosmjs-types: "npm:^0.9.0"
+ pako: "npm:^2.0.2"
+ checksum: 10c0/e33110be3004a462134c21f356066d16ba478664b4bbccd834c9d8b3f8156b6f94c14df8cf235803f13237f1408c12dcf5f9f64f4011dcca9a49298857c0c74c
+ languageName: node
+ linkType: hard
+
+"@cosmjs/cosmwasm-stargate@npm:^0.32.3":
+ version: 0.32.4
+ resolution: "@cosmjs/cosmwasm-stargate@npm:0.32.4"
+ dependencies:
+ "@cosmjs/amino": "npm:^0.32.4"
+ "@cosmjs/crypto": "npm:^0.32.4"
+ "@cosmjs/encoding": "npm:^0.32.4"
+ "@cosmjs/math": "npm:^0.32.4"
+ "@cosmjs/proto-signing": "npm:^0.32.4"
+ "@cosmjs/stargate": "npm:^0.32.4"
+ "@cosmjs/tendermint-rpc": "npm:^0.32.4"
+ "@cosmjs/utils": "npm:^0.32.4"
+ cosmjs-types: "npm:^0.9.0"
+ pako: "npm:^2.0.2"
+ checksum: 10c0/f7e285c51ef8b1098a9ea5ca2546a1e226b4fa0a990d95faa6f3b752f3638b6c55f36a56b6f4b11f0a66fd61e3ae8772921d8e99418218df0b2205efe1c82f37
+ languageName: node
+ linkType: hard
+
+"@cosmjs/crypto@npm:^0.29.3, @cosmjs/crypto@npm:^0.29.4, @cosmjs/crypto@npm:^0.29.5":
+ version: 0.29.5
+ resolution: "@cosmjs/crypto@npm:0.29.5"
+ dependencies:
+ "@cosmjs/encoding": "npm:^0.29.5"
+ "@cosmjs/math": "npm:^0.29.5"
+ "@cosmjs/utils": "npm:^0.29.5"
+ "@noble/hashes": "npm:^1"
+ bn.js: "npm:^5.2.0"
+ elliptic: "npm:^6.5.4"
+ libsodium-wrappers: "npm:^0.7.6"
+ checksum: 10c0/5f4706cd4b80853e0e3891252e9eab414334ca4a50afd7d6efeca5525dbb612c0cb1828b04119419ea4ac6bad74f6c4771b7ab6a7b840cc91971a49eb7f6f2dc
+ languageName: node
+ linkType: hard
+
+"@cosmjs/crypto@npm:^0.31.3":
+ version: 0.31.3
+ resolution: "@cosmjs/crypto@npm:0.31.3"
+ dependencies:
+ "@cosmjs/encoding": "npm:^0.31.3"
+ "@cosmjs/math": "npm:^0.31.3"
+ "@cosmjs/utils": "npm:^0.31.3"
+ "@noble/hashes": "npm:^1"
+ bn.js: "npm:^5.2.0"
+ elliptic: "npm:^6.5.4"
+ libsodium-wrappers-sumo: "npm:^0.7.11"
+ checksum: 10c0/595de61be8832c0f012e80343427efc5f7dec6157f31410908edefcae710f31bed723b50d0979b66d961765854e76d89e6942b5430a727f458b8d7e67fc7b174
+ languageName: node
+ linkType: hard
+
+"@cosmjs/crypto@npm:^0.32.3":
+ version: 0.32.3
+ resolution: "@cosmjs/crypto@npm:0.32.3"
+ dependencies:
+ "@cosmjs/encoding": "npm:^0.32.3"
+ "@cosmjs/math": "npm:^0.32.3"
+ "@cosmjs/utils": "npm:^0.32.3"
+ "@noble/hashes": "npm:^1"
+ bn.js: "npm:^5.2.0"
+ elliptic: "npm:^6.5.4"
+ libsodium-wrappers-sumo: "npm:^0.7.11"
+ checksum: 10c0/6925ee15c31d2ed6dfbda666834b188f81706d9c83b9afef27d88e4330cf516addcfcb7f9374dc4513bfea27c5fc717ff49679de9c45b282e601c93b67ac7c98
+ languageName: node
+ linkType: hard
+
+"@cosmjs/crypto@npm:^0.32.4":
+ version: 0.32.4
+ resolution: "@cosmjs/crypto@npm:0.32.4"
+ dependencies:
+ "@cosmjs/encoding": "npm:^0.32.4"
+ "@cosmjs/math": "npm:^0.32.4"
+ "@cosmjs/utils": "npm:^0.32.4"
+ "@noble/hashes": "npm:^1"
+ bn.js: "npm:^5.2.0"
+ elliptic: "npm:^6.5.4"
+ libsodium-wrappers-sumo: "npm:^0.7.11"
+ checksum: 10c0/94e742285eb8c7c5393055ba0635f10c06bf87710e953aedc71e3edc2b8e21a12a0d9b5e8eff37e326765f57c9eb3c7fd358f24f639efad4f1a6624eb8189534
+ languageName: node
+ linkType: hard
+
+"@cosmjs/encoding@npm:^0.29.3, @cosmjs/encoding@npm:^0.29.4, @cosmjs/encoding@npm:^0.29.5":
+ version: 0.29.5
+ resolution: "@cosmjs/encoding@npm:0.29.5"
+ dependencies:
+ base64-js: "npm:^1.3.0"
+ bech32: "npm:^1.1.4"
+ readonly-date: "npm:^1.0.0"
+ checksum: 10c0/2a5a455766aa763dc0cc73ac4eb4040e895f8675a1bae8935a40c74d931bb97a344a3df75c9b4d95f27109dc04bace842cead983c56992a2f6f57f9253b9c89f
+ languageName: node
+ linkType: hard
+
+"@cosmjs/encoding@npm:^0.31.1, @cosmjs/encoding@npm:^0.31.3":
+ version: 0.31.3
+ resolution: "@cosmjs/encoding@npm:0.31.3"
+ dependencies:
+ base64-js: "npm:^1.3.0"
+ bech32: "npm:^1.1.4"
+ readonly-date: "npm:^1.0.0"
+ checksum: 10c0/48eb9f9259bdfd88db280b6b5ea970fd1b3b0f81a8f4253f315ff2c736b27dbe0fdf74405c52ad35fcd4b16f1fde4250c4de936997b9d92e79cb97d98cc538c7
+ languageName: node
+ linkType: hard
+
+"@cosmjs/encoding@npm:^0.32.3":
+ version: 0.32.3
+ resolution: "@cosmjs/encoding@npm:0.32.3"
+ dependencies:
+ base64-js: "npm:^1.3.0"
+ bech32: "npm:^1.1.4"
+ readonly-date: "npm:^1.0.0"
+ checksum: 10c0/3c3d4b610093c2c8ca13437664e4736d60cdfb309bf2671f492388c59a9bca20f1a75ab4686a7b73d48aa6208f454bee56c84c0fe780015473ea53353a70266a
+ languageName: node
+ linkType: hard
+
+"@cosmjs/encoding@npm:^0.32.4":
+ version: 0.32.4
+ resolution: "@cosmjs/encoding@npm:0.32.4"
+ dependencies:
+ base64-js: "npm:^1.3.0"
+ bech32: "npm:^1.1.4"
+ readonly-date: "npm:^1.0.0"
+ checksum: 10c0/4a30d5ae1a2d1247d44bda46101ce208c7666d8801ca9a33de94edc35cc22460c16b4834ec84d5a65ffef5e2a4b58605e0a0a056c46bc0a042979ec84acf20cd
+ languageName: node
+ linkType: hard
+
+"@cosmjs/json-rpc@npm:^0.29.5":
+ version: 0.29.5
+ resolution: "@cosmjs/json-rpc@npm:0.29.5"
+ dependencies:
+ "@cosmjs/stream": "npm:^0.29.5"
+ xstream: "npm:^11.14.0"
+ checksum: 10c0/3616604eacd7987597e9bb656668b45498919f9a4acdf455ffda263d3736e1af30582dcf8ba094ae623bc7d484f4dab07ffd97d9cc479f1205e26b36a1aeab1b
+ languageName: node
+ linkType: hard
+
+"@cosmjs/json-rpc@npm:^0.31.3":
+ version: 0.31.3
+ resolution: "@cosmjs/json-rpc@npm:0.31.3"
+ dependencies:
+ "@cosmjs/stream": "npm:^0.31.3"
+ xstream: "npm:^11.14.0"
+ checksum: 10c0/8cc8fa9490e512a2865e888b162e2cc38477a6a5b6261fce885579712c880087c8bb2733717eb5fe03c131f31064e1f9060f87ae2a4d1d01d6c465761ab1a32d
+ languageName: node
+ linkType: hard
+
+"@cosmjs/json-rpc@npm:^0.32.3":
+ version: 0.32.3
+ resolution: "@cosmjs/json-rpc@npm:0.32.3"
+ dependencies:
+ "@cosmjs/stream": "npm:^0.32.3"
+ xstream: "npm:^11.14.0"
+ checksum: 10c0/8074cab7b9fcdd27c86329d820edf8be27e5cf12f99b845acb9d2fd8263b9a26557ee0729d293c8965c75117fcccd440d4c32eb314c03eef0d3c4273408302df
+ languageName: node
+ linkType: hard
+
+"@cosmjs/json-rpc@npm:^0.32.4":
+ version: 0.32.4
+ resolution: "@cosmjs/json-rpc@npm:0.32.4"
+ dependencies:
+ "@cosmjs/stream": "npm:^0.32.4"
+ xstream: "npm:^11.14.0"
+ checksum: 10c0/b3ebd240f4fb21260e284d2e503ecc61bac898842187ab717f0efb9a5f21272f161f267cc145629caeb9735f80946844384e2bd410275a4744147a44518c0fa0
+ languageName: node
+ linkType: hard
+
+"@cosmjs/math@npm:^0.29.3, @cosmjs/math@npm:^0.29.4, @cosmjs/math@npm:^0.29.5":
+ version: 0.29.5
+ resolution: "@cosmjs/math@npm:0.29.5"
+ dependencies:
+ bn.js: "npm:^5.2.0"
+ checksum: 10c0/e44aedcaf2d72085585612909685c453b6c27397b4506bdfa3556163f33050df5448f6ca076256ed8229ddb12bdd74072b38334d136524180d23d89781deeea7
+ languageName: node
+ linkType: hard
+
+"@cosmjs/math@npm:^0.31.1, @cosmjs/math@npm:^0.31.3":
+ version: 0.31.3
+ resolution: "@cosmjs/math@npm:0.31.3"
+ dependencies:
+ bn.js: "npm:^5.2.0"
+ checksum: 10c0/7dd742ee6ff52bc322d3cd43b9ab0e15d70b41b74a487f64c23609ffe5abce9a02cbec46a729155608a1abb3bc0067ac97361f0af23453fb0b4c438b17e37a99
+ languageName: node
+ linkType: hard
+
+"@cosmjs/math@npm:^0.32.3":
+ version: 0.32.3
+ resolution: "@cosmjs/math@npm:0.32.3"
+ dependencies:
+ bn.js: "npm:^5.2.0"
+ checksum: 10c0/cad8b13a0db739ef4a416b334e39ea9f55874315ebdf91dc38772676c2ead6caccaf8a28b9e8803fc48680a72cf5a9fde97564f5efbfbe9a9073c95665f31294
+ languageName: node
+ linkType: hard
+
+"@cosmjs/math@npm:^0.32.4":
+ version: 0.32.4
+ resolution: "@cosmjs/math@npm:0.32.4"
+ dependencies:
+ bn.js: "npm:^5.2.0"
+ checksum: 10c0/91e47015be5634d27d71d14c5a05899fb4992b69db02cab1558376dedf8254f96d5e24f097c5601804ae18ed33c7c25d023653ac2bf9d20250fd3e5637f6b101
+ languageName: node
+ linkType: hard
+
+"@cosmjs/proto-signing@npm:0.29.3":
+ version: 0.29.3
+ resolution: "@cosmjs/proto-signing@npm:0.29.3"
+ dependencies:
+ "@cosmjs/amino": "npm:^0.29.3"
+ "@cosmjs/crypto": "npm:^0.29.3"
+ "@cosmjs/encoding": "npm:^0.29.3"
+ "@cosmjs/math": "npm:^0.29.3"
+ "@cosmjs/utils": "npm:^0.29.3"
+ cosmjs-types: "npm:^0.5.2"
+ long: "npm:^4.0.0"
+ checksum: 10c0/8d73649b3a340a085633609d4db94b4fc01f94574e3ead2667db071afd12a4008a84710142dd15dc315981d39d55c9355c875176e7ab20ac239980110e23eebe
+ languageName: node
+ linkType: hard
+
+"@cosmjs/proto-signing@npm:0.29.4":
+ version: 0.29.4
+ resolution: "@cosmjs/proto-signing@npm:0.29.4"
+ dependencies:
+ "@cosmjs/amino": "npm:^0.29.4"
+ "@cosmjs/crypto": "npm:^0.29.4"
+ "@cosmjs/encoding": "npm:^0.29.4"
+ "@cosmjs/math": "npm:^0.29.4"
+ "@cosmjs/utils": "npm:^0.29.4"
+ cosmjs-types: "npm:^0.5.2"
+ long: "npm:^4.0.0"
+ checksum: 10c0/0767efde440354e92aa0853b4c649912cd0b65213211144e39edd6c1c930c3571df9ca7c7005806339201e4b54c22ed8e1c8adb108a096f0aaaa175dab102cd5
+ languageName: node
+ linkType: hard
+
+"@cosmjs/proto-signing@npm:^0.29.3, @cosmjs/proto-signing@npm:^0.29.4":
+ version: 0.29.5
+ resolution: "@cosmjs/proto-signing@npm:0.29.5"
+ dependencies:
+ "@cosmjs/amino": "npm:^0.29.5"
+ "@cosmjs/crypto": "npm:^0.29.5"
+ "@cosmjs/encoding": "npm:^0.29.5"
+ "@cosmjs/math": "npm:^0.29.5"
+ "@cosmjs/utils": "npm:^0.29.5"
+ cosmjs-types: "npm:^0.5.2"
+ long: "npm:^4.0.0"
+ checksum: 10c0/d2bcb001511c67f65cee6dbf760f1abcefce0eadcb44f7c663156469cbf2ec0bff80b665b971327b40d4f8ca72b84193f00b17889badf1d8d8407fd05a359fe3
+ languageName: node
+ linkType: hard
+
+"@cosmjs/proto-signing@npm:^0.31.1":
+ version: 0.31.3
+ resolution: "@cosmjs/proto-signing@npm:0.31.3"
+ dependencies:
+ "@cosmjs/amino": "npm:^0.31.3"
+ "@cosmjs/crypto": "npm:^0.31.3"
+ "@cosmjs/encoding": "npm:^0.31.3"
+ "@cosmjs/math": "npm:^0.31.3"
+ "@cosmjs/utils": "npm:^0.31.3"
+ cosmjs-types: "npm:^0.8.0"
+ long: "npm:^4.0.0"
+ checksum: 10c0/91bc6c0d03462b16e85fd6acfd3d28ab56a8de9a199f97601aac30aace75b64250bf0efcdda0aa5e3ea9e6defa46844b5f8e4358aabaeeb16d439480f55bbff7
+ languageName: node
+ linkType: hard
+
+"@cosmjs/proto-signing@npm:^0.32.0, @cosmjs/proto-signing@npm:^0.32.4":
+ version: 0.32.4
+ resolution: "@cosmjs/proto-signing@npm:0.32.4"
+ dependencies:
+ "@cosmjs/amino": "npm:^0.32.4"
+ "@cosmjs/crypto": "npm:^0.32.4"
+ "@cosmjs/encoding": "npm:^0.32.4"
+ "@cosmjs/math": "npm:^0.32.4"
+ "@cosmjs/utils": "npm:^0.32.4"
+ cosmjs-types: "npm:^0.9.0"
+ checksum: 10c0/6915059d2e6dbe1abda4a747c3b1abd47a9eff4f8cb2cf9a5545f939b656b4a15bbde2bfc1364357f9b2a081a066280c3b469f6d13dd5fc51b429b0f90a54913
+ languageName: node
+ linkType: hard
+
+"@cosmjs/proto-signing@npm:^0.32.3":
+ version: 0.32.3
+ resolution: "@cosmjs/proto-signing@npm:0.32.3"
+ dependencies:
+ "@cosmjs/amino": "npm:^0.32.3"
+ "@cosmjs/crypto": "npm:^0.32.3"
+ "@cosmjs/encoding": "npm:^0.32.3"
+ "@cosmjs/math": "npm:^0.32.3"
+ "@cosmjs/utils": "npm:^0.32.3"
+ cosmjs-types: "npm:^0.9.0"
+ checksum: 10c0/d44511d3a50489c1a3f61f28f68ca8cac87d6bdbb69e434cb0916dfc1d79e6a68ca0c09e074d4be73624f26fbb215024848225b862201b7f8d1d6a44014fd819
+ languageName: node
+ linkType: hard
+
+"@cosmjs/socket@npm:^0.29.5":
+ version: 0.29.5
+ resolution: "@cosmjs/socket@npm:0.29.5"
+ dependencies:
+ "@cosmjs/stream": "npm:^0.29.5"
+ isomorphic-ws: "npm:^4.0.1"
+ ws: "npm:^7"
+ xstream: "npm:^11.14.0"
+ checksum: 10c0/ffd7afe5a12fc77603ae3d89380f81330ea565de9de41485c266e61fce224c4666a19f6c47d91de6b6f276389bb5e51bd89bb7002bd43a1d02ae6eb776df9b8f
+ languageName: node
+ linkType: hard
+
+"@cosmjs/socket@npm:^0.31.3":
+ version: 0.31.3
+ resolution: "@cosmjs/socket@npm:0.31.3"
+ dependencies:
+ "@cosmjs/stream": "npm:^0.31.3"
+ isomorphic-ws: "npm:^4.0.1"
+ ws: "npm:^7"
+ xstream: "npm:^11.14.0"
+ checksum: 10c0/35ce93726f1c5c7d4cdf49c68d754b5587ac94fa65fd66f3db625c4794413359e225ddcaa55ee0bb17806a0b9cc13f884a7ec780503267addc6d03aacee1770c
+ languageName: node
+ linkType: hard
+
+"@cosmjs/socket@npm:^0.32.3":
+ version: 0.32.3
+ resolution: "@cosmjs/socket@npm:0.32.3"
+ dependencies:
+ "@cosmjs/stream": "npm:^0.32.3"
+ isomorphic-ws: "npm:^4.0.1"
+ ws: "npm:^7"
+ xstream: "npm:^11.14.0"
+ checksum: 10c0/25a82bd503d6f41adc3fa0b8c350b21bc4838efb0f1322966d6ebffefee61b5f5220d2fe3795b95932873f17937ceae45b25c5d1de92ed72b13abb7309cbace9
+ languageName: node
+ linkType: hard
+
+"@cosmjs/socket@npm:^0.32.4":
+ version: 0.32.4
+ resolution: "@cosmjs/socket@npm:0.32.4"
+ dependencies:
+ "@cosmjs/stream": "npm:^0.32.4"
+ isomorphic-ws: "npm:^4.0.1"
+ ws: "npm:^7"
+ xstream: "npm:^11.14.0"
+ checksum: 10c0/2d94c1fb39016bea3c7c145f4565c8a0fed20c805ac569ea604cd3646c15147b82b8db18a4e3c832d6ae0c3dd14363d4db3d91bcacac922679efba164ed49386
+ languageName: node
+ linkType: hard
+
+"@cosmjs/stargate@npm:0.29.3":
+ version: 0.29.3
+ resolution: "@cosmjs/stargate@npm:0.29.3"
+ dependencies:
+ "@confio/ics23": "npm:^0.6.8"
+ "@cosmjs/amino": "npm:^0.29.3"
+ "@cosmjs/encoding": "npm:^0.29.3"
+ "@cosmjs/math": "npm:^0.29.3"
+ "@cosmjs/proto-signing": "npm:^0.29.3"
+ "@cosmjs/stream": "npm:^0.29.3"
+ "@cosmjs/tendermint-rpc": "npm:^0.29.3"
+ "@cosmjs/utils": "npm:^0.29.3"
+ cosmjs-types: "npm:^0.5.2"
+ long: "npm:^4.0.0"
+ protobufjs: "npm:~6.11.3"
+ xstream: "npm:^11.14.0"
+ checksum: 10c0/a37fc5ba1f2c8521c55d7efb9dfce0e3bfde7b6cbe241e54b36af769d256683ecd955e8b50ee5a9f6932f8847adda3866c3652ece3610463fac3b6d9a021e9fe
+ languageName: node
+ linkType: hard
+
+"@cosmjs/stargate@npm:0.29.4":
+ version: 0.29.4
+ resolution: "@cosmjs/stargate@npm:0.29.4"
+ dependencies:
+ "@confio/ics23": "npm:^0.6.8"
+ "@cosmjs/amino": "npm:^0.29.4"
+ "@cosmjs/encoding": "npm:^0.29.4"
+ "@cosmjs/math": "npm:^0.29.4"
+ "@cosmjs/proto-signing": "npm:^0.29.4"
+ "@cosmjs/stream": "npm:^0.29.4"
+ "@cosmjs/tendermint-rpc": "npm:^0.29.4"
+ "@cosmjs/utils": "npm:^0.29.4"
+ cosmjs-types: "npm:^0.5.2"
+ long: "npm:^4.0.0"
+ protobufjs: "npm:~6.11.3"
+ xstream: "npm:^11.14.0"
+ checksum: 10c0/da9f2b022569b7ad104f5a545fbac23b079d54588cf503bffe5215feb62ae8969344371dce42deba4976d5cdd032b51c1e6d801e5a7879b78e85db4d9d22ca5e
+ languageName: node
+ linkType: hard
+
+"@cosmjs/stargate@npm:0.31.1":
+ version: 0.31.1
+ resolution: "@cosmjs/stargate@npm:0.31.1"
+ dependencies:
+ "@confio/ics23": "npm:^0.6.8"
+ "@cosmjs/amino": "npm:^0.31.1"
+ "@cosmjs/encoding": "npm:^0.31.1"
+ "@cosmjs/math": "npm:^0.31.1"
+ "@cosmjs/proto-signing": "npm:^0.31.1"
+ "@cosmjs/stream": "npm:^0.31.1"
+ "@cosmjs/tendermint-rpc": "npm:^0.31.1"
+ "@cosmjs/utils": "npm:^0.31.1"
+ cosmjs-types: "npm:^0.8.0"
+ long: "npm:^4.0.0"
+ protobufjs: "npm:~6.11.3"
+ xstream: "npm:^11.14.0"
+ checksum: 10c0/4532669efad7630f32df99d3e4f760d870a210e378169c7fa6311b94c722c710990c311f59054621ea50031f507ea5f5fdfc1b20dc77b5452ae59626421a2d4b
+ languageName: node
+ linkType: hard
+
+"@cosmjs/stargate@npm:^0.32.3":
+ version: 0.32.3
+ resolution: "@cosmjs/stargate@npm:0.32.3"
+ dependencies:
+ "@confio/ics23": "npm:^0.6.8"
+ "@cosmjs/amino": "npm:^0.32.3"
+ "@cosmjs/encoding": "npm:^0.32.3"
+ "@cosmjs/math": "npm:^0.32.3"
+ "@cosmjs/proto-signing": "npm:^0.32.3"
+ "@cosmjs/stream": "npm:^0.32.3"
+ "@cosmjs/tendermint-rpc": "npm:^0.32.3"
+ "@cosmjs/utils": "npm:^0.32.3"
+ cosmjs-types: "npm:^0.9.0"
+ xstream: "npm:^11.14.0"
+ checksum: 10c0/c82db0355f4b15ca988f0452f8142102b44840319fe48d44c8dc9c1a316cbe3c9e765eb90970348bd5b5fddd6d9452d5a556e14dbbbd93eda6a6c92ceb616241
+ languageName: node
+ linkType: hard
+
+"@cosmjs/stargate@npm:^0.32.4":
+ version: 0.32.4
+ resolution: "@cosmjs/stargate@npm:0.32.4"
+ dependencies:
+ "@confio/ics23": "npm:^0.6.8"
+ "@cosmjs/amino": "npm:^0.32.4"
+ "@cosmjs/encoding": "npm:^0.32.4"
+ "@cosmjs/math": "npm:^0.32.4"
+ "@cosmjs/proto-signing": "npm:^0.32.4"
+ "@cosmjs/stream": "npm:^0.32.4"
+ "@cosmjs/tendermint-rpc": "npm:^0.32.4"
+ "@cosmjs/utils": "npm:^0.32.4"
+ cosmjs-types: "npm:^0.9.0"
+ xstream: "npm:^11.14.0"
+ checksum: 10c0/c30a3519516aaa7eae58ba827c80fcf74c7fe7a9d3aa5cc8138c3a2768f5f241f59c2f5cec27e9037b4df12b1c6605b4fac9eadb4de97bd84edddc3a80a02e24
+ languageName: node
+ linkType: hard
+
+"@cosmjs/stream@npm:^0.29.3, @cosmjs/stream@npm:^0.29.4, @cosmjs/stream@npm:^0.29.5":
+ version: 0.29.5
+ resolution: "@cosmjs/stream@npm:0.29.5"
+ dependencies:
+ xstream: "npm:^11.14.0"
+ checksum: 10c0/c69613738c01282d43e855af6350a3cb1e254cc472f1a63a817a8f32a86bd4797b5280c120528787dfb6f38738a037a5fafa9c83821c2aef54e79684e134d6ca
+ languageName: node
+ linkType: hard
+
+"@cosmjs/stream@npm:^0.31.1, @cosmjs/stream@npm:^0.31.3":
+ version: 0.31.3
+ resolution: "@cosmjs/stream@npm:0.31.3"
+ dependencies:
+ xstream: "npm:^11.14.0"
+ checksum: 10c0/e0279b925c4f02535ba9b1f6f9563a1db4fb53ed1396e4e3958fcad887e047a78b431a227dd7c159aadb6e0e054db9dfb34b7a9128f2082ff3114bcfd74516c3
+ languageName: node
+ linkType: hard
+
+"@cosmjs/stream@npm:^0.32.3":
+ version: 0.32.3
+ resolution: "@cosmjs/stream@npm:0.32.3"
+ dependencies:
+ xstream: "npm:^11.14.0"
+ checksum: 10c0/963abad76c044265e6961add2a66060134dd610ced9397edcd331669e5aca2a157cc08db658590110233038c38fc5812a9e8d156babbf524eb291200a3708b3a
+ languageName: node
+ linkType: hard
+
+"@cosmjs/stream@npm:^0.32.4":
+ version: 0.32.4
+ resolution: "@cosmjs/stream@npm:0.32.4"
+ dependencies:
+ xstream: "npm:^11.14.0"
+ checksum: 10c0/c677c53f9101c2a36fa03a475d92dea2fa69c475f896751b5e18a5d07087eeecbf6bca2e62a8940003da53fa235a9b2dd78c8257bf19c3f96e3f69fa8d5f183d
+ languageName: node
+ linkType: hard
+
+"@cosmjs/tendermint-rpc@npm:^0.29.3, @cosmjs/tendermint-rpc@npm:^0.29.4":
+ version: 0.29.5
+ resolution: "@cosmjs/tendermint-rpc@npm:0.29.5"
+ dependencies:
+ "@cosmjs/crypto": "npm:^0.29.5"
+ "@cosmjs/encoding": "npm:^0.29.5"
+ "@cosmjs/json-rpc": "npm:^0.29.5"
+ "@cosmjs/math": "npm:^0.29.5"
+ "@cosmjs/socket": "npm:^0.29.5"
+ "@cosmjs/stream": "npm:^0.29.5"
+ "@cosmjs/utils": "npm:^0.29.5"
+ axios: "npm:^0.21.2"
+ readonly-date: "npm:^1.0.0"
+ xstream: "npm:^11.14.0"
+ checksum: 10c0/b2e958e01eb4aafa106a3098c8cae93fcbc04d999c2fb2646132d4d93c7b3668c03f6bb7b0c35946b96a01ab18214c9039f2b078cb16b604fa52444a3f1851c0
+ languageName: node
+ linkType: hard
+
+"@cosmjs/tendermint-rpc@npm:^0.31.1":
+ version: 0.31.3
+ resolution: "@cosmjs/tendermint-rpc@npm:0.31.3"
+ dependencies:
+ "@cosmjs/crypto": "npm:^0.31.3"
+ "@cosmjs/encoding": "npm:^0.31.3"
+ "@cosmjs/json-rpc": "npm:^0.31.3"
+ "@cosmjs/math": "npm:^0.31.3"
+ "@cosmjs/socket": "npm:^0.31.3"
+ "@cosmjs/stream": "npm:^0.31.3"
+ "@cosmjs/utils": "npm:^0.31.3"
+ axios: "npm:^0.21.2"
+ readonly-date: "npm:^1.0.0"
+ xstream: "npm:^11.14.0"
+ checksum: 10c0/1d8d8a78cc1dc54884c0916e709c98d533215f2235ce48f2079cbd8b3a9edf7aa14f216b815d727cacabfead54c0b15ca622fd43243260d8d311bc408edd0f11
+ languageName: node
+ linkType: hard
+
+"@cosmjs/tendermint-rpc@npm:^0.32.3":
+ version: 0.32.3
+ resolution: "@cosmjs/tendermint-rpc@npm:0.32.3"
+ dependencies:
+ "@cosmjs/crypto": "npm:^0.32.3"
+ "@cosmjs/encoding": "npm:^0.32.3"
+ "@cosmjs/json-rpc": "npm:^0.32.3"
+ "@cosmjs/math": "npm:^0.32.3"
+ "@cosmjs/socket": "npm:^0.32.3"
+ "@cosmjs/stream": "npm:^0.32.3"
+ "@cosmjs/utils": "npm:^0.32.3"
+ axios: "npm:^1.6.0"
+ readonly-date: "npm:^1.0.0"
+ xstream: "npm:^11.14.0"
+ checksum: 10c0/9ccde526456e9c4be7a2562c3def25a016267404a057e807ecc0f520aeb0cbfc5bf04bfca58ceecd6f7bf61b7089924c7949c13a7d685efc7ad946b71388c3df
+ languageName: node
+ linkType: hard
+
+"@cosmjs/tendermint-rpc@npm:^0.32.4":
+ version: 0.32.4
+ resolution: "@cosmjs/tendermint-rpc@npm:0.32.4"
+ dependencies:
+ "@cosmjs/crypto": "npm:^0.32.4"
+ "@cosmjs/encoding": "npm:^0.32.4"
+ "@cosmjs/json-rpc": "npm:^0.32.4"
+ "@cosmjs/math": "npm:^0.32.4"
+ "@cosmjs/socket": "npm:^0.32.4"
+ "@cosmjs/stream": "npm:^0.32.4"
+ "@cosmjs/utils": "npm:^0.32.4"
+ axios: "npm:^1.6.0"
+ readonly-date: "npm:^1.0.0"
+ xstream: "npm:^11.14.0"
+ checksum: 10c0/5fae7afcdf98cc7dd36922aa1586254cc8c202cf8fe66804e61d793d31dcff816f40d33f7a0eb72c1b9226c7c361d4848e4ff12d0489f6fa66f47f0c86ae18dd
+ languageName: node
+ linkType: hard
+
+"@cosmjs/utils@npm:^0.29.3, @cosmjs/utils@npm:^0.29.4, @cosmjs/utils@npm:^0.29.5":
+ version: 0.29.5
+ resolution: "@cosmjs/utils@npm:0.29.5"
+ checksum: 10c0/cfb2dbc499bc305cf0b7d3f0afc936b52e0e7492dce33e3bef7986b0e3aa8c34316c60072b7664799d182ce5f5016eaead3d5f948d871c5b1afe30604ef2542d
+ languageName: node
+ linkType: hard
+
+"@cosmjs/utils@npm:^0.31.1, @cosmjs/utils@npm:^0.31.3":
+ version: 0.31.3
+ resolution: "@cosmjs/utils@npm:0.31.3"
+ checksum: 10c0/26266e1206ed8c7c4e744db1e97fc7a341ffee383ca9f43e6c9e8ff596039a90068c39aadc4f6524b6f2b5b6d581318657f3eb272f98b9e430f2d0df79382b6a
+ languageName: node
+ linkType: hard
+
+"@cosmjs/utils@npm:^0.32.3":
+ version: 0.32.3
+ resolution: "@cosmjs/utils@npm:0.32.3"
+ checksum: 10c0/e21cb0387d135142fdebe64fadfe2f7c9446b8b974b9d0dff7a02f04e17e79fcfc3946258ad79af1db35b252058d97c38e1f90f2f14e903a37d85316f31efde6
+ languageName: node
+ linkType: hard
+
+"@cosmjs/utils@npm:^0.32.4":
+ version: 0.32.4
+ resolution: "@cosmjs/utils@npm:0.32.4"
+ checksum: 10c0/d5ff8b235094be1150853a715116049f73eb5cdfeea8ce8e22ecccc61ec99792db457404d4307782b1a2f935dcf438f5c485beabfcfbc1dc5df26eb6e6da9062
+ languageName: node
+ linkType: hard
+
+"@cosmology/chain-template@workspace:.":
+ version: 0.0.0-use.local
+ resolution: "@cosmology/chain-template@workspace:."
+ dependencies:
+ "@chain-registry/assets": "npm:1.63.5"
+ "@chain-registry/osmosis": "npm:1.61.3"
+ "@chain-registry/types": "npm:0.44.3"
+ "@cosmjs/amino": "npm:0.32.3"
+ "@cosmjs/cosmwasm-stargate": "npm:0.32.3"
+ "@cosmjs/stargate": "npm:0.31.1"
+ "@cosmos-kit/react": "npm:2.18.0"
+ "@interchain-ui/react": "npm:1.23.31"
+ "@interchain-ui/react-no-ssr": "npm:0.1.2"
+ "@keplr-wallet/types": "npm:^0.12.111"
+ "@starship-ci/cli": "npm:^2.9.0"
+ "@tanstack/react-query": "npm:4.32.0"
+ "@tanstack/react-query-devtools": "npm:4.32.0"
+ "@types/node": "npm:18.11.9"
+ "@types/node-gzip": "npm:^1"
+ "@types/react": "npm:18.0.25"
+ "@types/react-dom": "npm:18.0.9"
+ ace-builds: "npm:1.35.0"
+ bignumber.js: "npm:9.1.2"
+ chain-registry: "npm:1.62.3"
+ cosmos-kit: "npm:2.18.4"
+ dayjs: "npm:1.11.11"
+ eslint: "npm:8.28.0"
+ eslint-config-next: "npm:13.0.5"
+ generate-lockfile: "npm:0.0.12"
+ interchain-query: "npm:1.10.1"
+ next: "npm:^13"
+ node-gzip: "npm:^1.1.2"
+ osmo-query: "npm:16.5.1"
+ react: "npm:18.2.0"
+ react-ace: "npm:11.0.1"
+ react-dom: "npm:18.2.0"
+ react-dropzone: "npm:^14.2.3"
+ react-icons: "npm:5.2.1"
+ react-markdown: "npm:9.0.1"
+ starshipjs: "npm:^2.4.0"
+ typescript: "npm:4.9.3"
+ yaml-loader: "npm:^0.8.1"
+ zustand: "npm:4.5.2"
+ languageName: unknown
+ linkType: soft
+
+"@cosmology/lcd@npm:^0.12.0":
+ version: 0.12.0
+ resolution: "@cosmology/lcd@npm:0.12.0"
+ dependencies:
+ "@babel/runtime": "npm:^7.21.0"
+ axios: "npm:0.27.2"
+ checksum: 10c0/28fbc26cd4c7cf693ae5be7aab637d1f5420f407dbc7a588d67bf5e5bb5e8f0b58e1c428993ca54dbe1dbac8c9dbd9d2713dffad76dfbc727d7bb77b5fb9b041
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/cdcwallet-extension@npm:^2.13.2":
+ version: 2.13.2
+ resolution: "@cosmos-kit/cdcwallet-extension@npm:2.13.2"
+ dependencies:
+ "@chain-registry/keplr": "npm:1.68.2"
+ "@cosmos-kit/core": "npm:^2.13.1"
+ peerDependencies:
+ "@cosmjs/amino": ">=0.32.3"
+ "@cosmjs/proto-signing": ">=0.32.3"
+ checksum: 10c0/2c159f90a568ed1a94495950ddc9d5674249276e803eff784143c2b35986933b95a8a8735d6fcd670070651e8bf3c8de67013cd5f58e62dae95f488bfd1a85d9
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/cdcwallet@npm:^2.13.2":
+ version: 2.13.2
+ resolution: "@cosmos-kit/cdcwallet@npm:2.13.2"
+ dependencies:
+ "@cosmos-kit/cdcwallet-extension": "npm:^2.13.2"
+ checksum: 10c0/d9d0d888a771810356154bc4fbfb1b4530cb97831ce7ff1e35c46a2b388864660dc9e0a7c7b76dff720c0a922645a519877e3f0e69180633f48e06ac0f8a5bf5
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/coin98-extension@npm:^2.12.2":
+ version: 2.12.2
+ resolution: "@cosmos-kit/coin98-extension@npm:2.12.2"
+ dependencies:
+ "@chain-registry/keplr": "npm:1.68.2"
+ "@cosmos-kit/core": "npm:^2.13.1"
+ cosmjs-types: "npm:>=0.9.0"
+ peerDependencies:
+ "@cosmjs/amino": ">=0.32.3"
+ "@cosmjs/proto-signing": ">=0.32.3"
+ checksum: 10c0/1a1423dd45288f77b7cb615342fa9750a11cfd741d5047ef6737d258d6af115f5e2ef6eac4cc41b5ed7599db7d21d02fb7682e02b0f1b533625714a8316794da
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/coin98@npm:^2.11.2":
+ version: 2.11.2
+ resolution: "@cosmos-kit/coin98@npm:2.11.2"
+ dependencies:
+ "@cosmos-kit/coin98-extension": "npm:^2.12.2"
+ checksum: 10c0/7b9cf76b26e816743e17011eb3f1780bf9b49cbcdb7a8d2534322189c4e8e785212fe20794903ffbcfd11c532ab1828463d2527bba85b4a27f921bb8f63e1c9a
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/compass-extension@npm:^2.11.2":
+ version: 2.11.2
+ resolution: "@cosmos-kit/compass-extension@npm:2.11.2"
+ dependencies:
+ "@chain-registry/keplr": "npm:1.68.2"
+ "@cosmos-kit/core": "npm:^2.13.1"
+ peerDependencies:
+ "@cosmjs/amino": ">=0.32.3"
+ "@cosmjs/proto-signing": ">=0.32.3"
+ checksum: 10c0/663087e375619b271e0a0c41e45679c5e45ba17d0c6bd12a354316471ad186454583d15ff5076c106660b9becd723ed6ad3645a502352309a453053955cea8cf
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/compass@npm:^2.11.2":
+ version: 2.11.2
+ resolution: "@cosmos-kit/compass@npm:2.11.2"
+ dependencies:
+ "@cosmos-kit/compass-extension": "npm:^2.11.2"
+ checksum: 10c0/35fe8f1cfe889425cfd85ed41e8299839677a12a4fe3228b78cf2cf5e9389990aeb737b7cea3c9fb7b316a72abfa4bcd441fe07a4065f14e7f59b96d108b7ffe
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/core@npm:^2.13.1":
+ version: 2.13.1
+ resolution: "@cosmos-kit/core@npm:2.13.1"
+ dependencies:
+ "@chain-registry/client": "npm:^1.48.1"
+ "@chain-registry/keplr": "npm:^1.68.2"
+ "@chain-registry/types": "npm:^0.45.1"
+ "@cosmjs/amino": "npm:^0.32.3"
+ "@cosmjs/cosmwasm-stargate": "npm:^0.32.3"
+ "@cosmjs/proto-signing": "npm:^0.32.3"
+ "@cosmjs/stargate": "npm:^0.32.3"
+ "@dao-dao/cosmiframe": "npm:^0.1.0"
+ "@walletconnect/types": "npm:2.11.0"
+ bowser: "npm:2.11.0"
+ cosmjs-types: "npm:^0.9.0"
+ events: "npm:3.3.0"
+ nock: "npm:13.5.4"
+ uuid: "npm:^9.0.1"
+ checksum: 10c0/5295440b213fed8d1853023253888652dd57624ea7dee86720c04964f00209078fafc843359686daffac78fc8e52b68078fbbdf4552dd2e8903315f2ab0e22d5
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/cosmostation-extension@npm:^2.12.2":
+ version: 2.12.2
+ resolution: "@cosmos-kit/cosmostation-extension@npm:2.12.2"
+ dependencies:
+ "@chain-registry/cosmostation": "npm:^1.66.2"
+ "@cosmos-kit/core": "npm:^2.13.1"
+ cosmjs-types: "npm:^0.9.0"
+ peerDependencies:
+ "@cosmjs/amino": ">=0.32.3"
+ "@cosmjs/proto-signing": ">=0.32.3"
+ checksum: 10c0/fcc95612410700ed8114322b5cda8d059b9e168511d5ecdc652b0bdf97c48b25d46fd38227323066cd0b447ff0b8dd59bdb6c0925b8979480032947f77165f6b
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/cosmostation-mobile@npm:^2.11.2":
+ version: 2.11.2
+ resolution: "@cosmos-kit/cosmostation-mobile@npm:2.11.2"
+ dependencies:
+ "@chain-registry/cosmostation": "npm:1.66.2"
+ "@cosmos-kit/core": "npm:^2.13.1"
+ "@cosmos-kit/walletconnect": "npm:^2.10.1"
+ checksum: 10c0/a52d1ae62b1797b809251715e3c88c74646053e34f9e9b96d9d170c252ecf18118bf55e58ca59a8fd50fa7503cd5aebd5a59546de1dabfa618f09733ff3c5439
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/cosmostation@npm:^2.11.2":
+ version: 2.11.2
+ resolution: "@cosmos-kit/cosmostation@npm:2.11.2"
+ dependencies:
+ "@cosmos-kit/cosmostation-extension": "npm:^2.12.2"
+ "@cosmos-kit/cosmostation-mobile": "npm:^2.11.2"
+ checksum: 10c0/f1c55e88e97b47091e5f757a9a4615ddec90baf4e49bbc7d401537728e75cd93b4e96f999215d3d74b3c9c65748b8dd81851b2565c964376a592df4326a445c9
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/exodus-extension@npm:^2.10.2":
+ version: 2.10.2
+ resolution: "@cosmos-kit/exodus-extension@npm:2.10.2"
+ dependencies:
+ "@cosmos-kit/core": "npm:^2.13.1"
+ react-icons: "npm:4.4.0"
+ peerDependencies:
+ "@cosmjs/amino": ">=0.32.3"
+ "@cosmjs/proto-signing": ">=0.32.3"
+ checksum: 10c0/a6b7716472fd28a3172a99471d8e8f9c557344f0c9ea36e5e031f2424e9674ba5de16998fcb2bd0b72d5037a93bfae662f687d83f04268647042462707de3c6c
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/exodus@npm:^2.10.2":
+ version: 2.10.2
+ resolution: "@cosmos-kit/exodus@npm:2.10.2"
+ dependencies:
+ "@cosmos-kit/exodus-extension": "npm:^2.10.2"
+ checksum: 10c0/5733c78fbf176824881124b97a0404d95faf366d39b13fa4e3eecc1119edc9932f7f1469bd2c66d7f7c41d28d70392bf66deaebc76ba3c0a6f353f6e7d557502
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/fin-extension@npm:^2.11.2":
+ version: 2.11.2
+ resolution: "@cosmos-kit/fin-extension@npm:2.11.2"
+ dependencies:
+ "@chain-registry/keplr": "npm:1.68.2"
+ "@cosmos-kit/core": "npm:^2.13.1"
+ peerDependencies:
+ "@cosmjs/amino": ">=0.32.3"
+ "@cosmjs/proto-signing": ">=0.32.3"
+ checksum: 10c0/314968c6c2c637fbc4d7785dd3fb2e12203ea9566583f7b8bc101833c59497d9ce3bd0216236b5dbcbb787d0492b80f9e501bd54d898f5a150b8f76fa46d4537
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/fin@npm:^2.11.2":
+ version: 2.11.2
+ resolution: "@cosmos-kit/fin@npm:2.11.2"
+ dependencies:
+ "@cosmos-kit/fin-extension": "npm:^2.11.2"
+ checksum: 10c0/f24e13e27baf5caf37f1bd18474dad022f4b987fd0213974c7fdd4510cfce3eab428d69ed73ed134115f3b91aa208ec29451ab92f71146660a510ea92f08a025
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/frontier-extension@npm:^2.10.2":
+ version: 2.10.2
+ resolution: "@cosmos-kit/frontier-extension@npm:2.10.2"
+ dependencies:
+ "@cosmos-kit/core": "npm:^2.13.1"
+ peerDependencies:
+ "@cosmjs/amino": ">=0.32.3"
+ "@cosmjs/proto-signing": ">=0.32.3"
+ checksum: 10c0/ae6ceeaaded9367d0a46932d534c051c0ec8d49a76dd80144c61f8de5d9ddbf3cdfe03b682a2ea66756ce93e46e2e1142251a31174ffbc45f688a1aff9cc3155
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/frontier@npm:^2.10.2":
+ version: 2.10.2
+ resolution: "@cosmos-kit/frontier@npm:2.10.2"
+ dependencies:
+ "@cosmos-kit/frontier-extension": "npm:^2.10.2"
+ checksum: 10c0/617ed26dd6cecf960b511180f9a15b4a1360ae7293467ea165b25a4ce89e192d98dc47d77d4086af79abd7ca682a26d2311ac61c3c3cf164b0007a87bca994f5
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/galaxy-station-extension@npm:^2.11.2":
+ version: 2.11.2
+ resolution: "@cosmos-kit/galaxy-station-extension@npm:2.11.2"
+ dependencies:
+ "@chain-registry/types": "npm:0.45.1"
+ "@cosmos-kit/core": "npm:^2.13.1"
+ "@hexxagon/feather.js": "npm:^1.0.9-beta.8"
+ "@hexxagon/station-connector": "npm:^1.0.17"
+ peerDependencies:
+ "@cosmjs/amino": ">=0.32.3"
+ "@cosmjs/proto-signing": ">=0.32.3"
+ checksum: 10c0/6c481b17504935ed589583d18cda708a9d81efde41e66c589b16ee401b8ae72a887b016a106a3a0f2ce9afd12560244474ccd11f818143d342169cea769ca073
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/galaxy-station@npm:^2.10.2":
+ version: 2.10.2
+ resolution: "@cosmos-kit/galaxy-station@npm:2.10.2"
+ dependencies:
+ "@cosmos-kit/galaxy-station-extension": "npm:^2.11.2"
+ checksum: 10c0/86721b41a710dae0c8ec22c0466def90ef8b61cd09505e648d145bcd48997413e996cda4330bfce96e2e788cfcd572bbed556ad1d4d8ef693a1e7a6a3cb765d4
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/keplr-extension@npm:^2.12.2":
+ version: 2.12.2
+ resolution: "@cosmos-kit/keplr-extension@npm:2.12.2"
+ dependencies:
+ "@chain-registry/keplr": "npm:^1.68.2"
+ "@cosmos-kit/core": "npm:^2.13.1"
+ "@keplr-wallet/provider-extension": "npm:^0.12.95"
+ "@keplr-wallet/types": "npm:^0.12.95"
+ peerDependencies:
+ "@cosmjs/amino": ">=0.32.3"
+ "@cosmjs/proto-signing": ">=0.32.3"
+ checksum: 10c0/679a71402b31a520dfe4a14ac18b7d3bc2aec75132760f4d3ad67ae91170a52e5c33587fb8208126ffec8ac911fe07413d37edf2d99c4637fec8d836d6338753
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/keplr-mobile@npm:^2.12.2":
+ version: 2.12.2
+ resolution: "@cosmos-kit/keplr-mobile@npm:2.12.2"
+ dependencies:
+ "@chain-registry/keplr": "npm:1.68.2"
+ "@cosmos-kit/core": "npm:^2.13.1"
+ "@cosmos-kit/keplr-extension": "npm:^2.12.2"
+ "@cosmos-kit/walletconnect": "npm:^2.10.1"
+ "@keplr-wallet/provider-extension": "npm:^0.12.95"
+ "@keplr-wallet/wc-client": "npm:^0.12.95"
+ peerDependencies:
+ "@cosmjs/amino": ">=0.32.3"
+ "@cosmjs/proto-signing": ">=0.32.3"
+ checksum: 10c0/9e8ece5399bd206089e796812018e36ba76be39282e6b397316cb8c102512ee3e866d7b297530067f1705aa808095e016ae785295f0f8cc5d3ae2b780c943090
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/keplr@npm:^2.12.2":
+ version: 2.12.2
+ resolution: "@cosmos-kit/keplr@npm:2.12.2"
+ dependencies:
+ "@cosmos-kit/keplr-extension": "npm:^2.12.2"
+ "@cosmos-kit/keplr-mobile": "npm:^2.12.2"
+ checksum: 10c0/7bc3c2f6b8c360ab0d8fedc02353341d2ad64351d4f309e2a8374484170975e2cdb1a6866af58a2edb1957cc5e4e28012b43f283d23e4e3e9f0478d2db2770ae
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/leap-extension@npm:^2.12.2":
+ version: 2.12.2
+ resolution: "@cosmos-kit/leap-extension@npm:2.12.2"
+ dependencies:
+ "@chain-registry/keplr": "npm:1.68.2"
+ "@cosmos-kit/core": "npm:^2.13.1"
+ peerDependencies:
+ "@cosmjs/amino": ">=0.32.3"
+ "@cosmjs/proto-signing": ">=0.32.3"
+ checksum: 10c0/5d7130cefbf5d29e05f7b792ac8f4d31ffd962088a25531d5be7cae5221309755a8a978982baf627d069d9ff315a6de592c527539657ee3dcf6f6957d205d223
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/leap-metamask-cosmos-snap@npm:^0.12.2":
+ version: 0.12.2
+ resolution: "@cosmos-kit/leap-metamask-cosmos-snap@npm:0.12.2"
+ dependencies:
+ "@chain-registry/keplr": "npm:1.68.2"
+ "@cosmos-kit/core": "npm:^2.13.1"
+ "@leapwallet/cosmos-snap-provider": "npm:0.1.26"
+ "@metamask/providers": "npm:^11.1.1"
+ peerDependencies:
+ "@cosmjs/amino": ">=0.32.3"
+ "@cosmjs/proto-signing": ">=0.32.3"
+ cosmjs-types: ">=0.9.0"
+ checksum: 10c0/123838d21fb83fce13f4635bf34c6484dd8f5e9f6d24d5ce674afd196e0a67c9f6e3e6068c873160060377c8c231d3089a40e5d93a51c9526eed1bd91d8a0080
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/leap-mobile@npm:^2.11.2":
+ version: 2.11.2
+ resolution: "@cosmos-kit/leap-mobile@npm:2.11.2"
+ dependencies:
+ "@chain-registry/keplr": "npm:1.68.2"
+ "@cosmos-kit/core": "npm:^2.13.1"
+ "@cosmos-kit/walletconnect": "npm:^2.10.1"
+ checksum: 10c0/b00131dcdf4155dd6fde16afc3233accf64b31a1dbfbc854b95d7b89642fe95c39d182477cbd102b335b59a59f659072238a29f84e970f3e126694ee22d74596
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/leap@npm:^2.12.2":
+ version: 2.12.2
+ resolution: "@cosmos-kit/leap@npm:2.12.2"
+ dependencies:
+ "@cosmos-kit/leap-extension": "npm:^2.12.2"
+ "@cosmos-kit/leap-metamask-cosmos-snap": "npm:^0.12.2"
+ "@cosmos-kit/leap-mobile": "npm:^2.11.2"
+ checksum: 10c0/cf146378bfd82c7ca84ed4dbd95371ab02b496cd98aa041e5047dfa529f7c9723aae57cc74811f810ebbd737902ea84ea4677d82d9099ab7b2d5c1df19c3a104
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/ledger@npm:^2.11.2":
+ version: 2.11.2
+ resolution: "@cosmos-kit/ledger@npm:2.11.2"
+ dependencies:
+ "@cosmos-kit/core": "npm:^2.13.1"
+ "@ledgerhq/hw-app-cosmos": "npm:^6.28.1"
+ "@ledgerhq/hw-transport-webhid": "npm:^6.27.15"
+ "@ledgerhq/hw-transport-webusb": "npm:^6.27.15"
+ peerDependencies:
+ "@cosmjs/amino": ">=0.32.3"
+ "@cosmjs/proto-signing": ">=0.32.3"
+ checksum: 10c0/96bacf4e41569bb274d10871e1974d156bc2a58e2e3bdf7ae7ee1b73630d2267f6a852c114e9ee30cda03ddda9f7e3d74ed2b937e9c575f84f87919804f985ec
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/okxwallet-extension@npm:^2.11.2":
+ version: 2.11.2
+ resolution: "@cosmos-kit/okxwallet-extension@npm:2.11.2"
+ dependencies:
+ "@cosmos-kit/core": "npm:^2.13.1"
+ peerDependencies:
+ "@cosmjs/amino": ">=0.32.3"
+ "@cosmjs/proto-signing": ">=0.32.3"
+ checksum: 10c0/f2b2bd0067eed702f6a16cf8ef716e1c6a7aa42d8f263b90f4fb8e2346c41a275221a544c4fd42bb50a83d13c254de90d428e1f0b22c3591075e0daf37d069eb
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/omni-mobile@npm:^2.10.2":
+ version: 2.10.2
+ resolution: "@cosmos-kit/omni-mobile@npm:2.10.2"
+ dependencies:
+ "@cosmos-kit/core": "npm:^2.13.1"
+ "@cosmos-kit/walletconnect": "npm:^2.10.1"
+ peerDependencies:
+ "@cosmjs/amino": ">=0.32.3"
+ "@cosmjs/proto-signing": ">=0.32.3"
+ checksum: 10c0/71a780a4f7a9ffa60be8c35c0515123c4e657a4f4495df23c0343d870838ebac64a65678a15748774b166f60cde5894075534213e354f54d4e12d09cbada3cf3
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/omni@npm:^2.10.2":
+ version: 2.10.2
+ resolution: "@cosmos-kit/omni@npm:2.10.2"
+ dependencies:
+ "@cosmos-kit/omni-mobile": "npm:^2.10.2"
+ checksum: 10c0/d33c64f53f740cf4c50bbdf04a195c8f676d1acfb94aac82b996cd183afdd405602904ac1ff11c41daddcde2a56691f959d528259e7d26d0a57b18ce61d4807e
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/owallet-extension@npm:^2.12.2":
+ version: 2.12.2
+ resolution: "@cosmos-kit/owallet-extension@npm:2.12.2"
+ dependencies:
+ "@chain-registry/keplr": "npm:1.68.2"
+ "@cosmos-kit/core": "npm:^2.13.1"
+ "@keplr-wallet/types": "npm:^0.12.90"
+ peerDependencies:
+ "@cosmjs/amino": ">=0.32.3"
+ "@cosmjs/proto-signing": ">=0.32.3"
+ checksum: 10c0/c6e10fa9caff33c3a8788ec1be4a12ee2c25d906a4fb24b0b08c387d6ea6c6b6b3d0e2a77e980c0839513a42ef790db897a310327ba0354a0ed79987f98ca285
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/owallet@npm:^2.11.2":
+ version: 2.11.2
+ resolution: "@cosmos-kit/owallet@npm:2.11.2"
+ dependencies:
+ "@cosmos-kit/owallet-extension": "npm:^2.12.2"
+ checksum: 10c0/06d2a2b086d932ac18824a926674e6f102c99e4cd8ebfb79e5e0254d594c2ef82b2e44da550144ce56bd685c44a84b6c4cecc421b062b7a1ed07a07ae9f0e52a
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/react-lite@npm:^2.13.0":
+ version: 2.13.0
+ resolution: "@cosmos-kit/react-lite@npm:2.13.0"
+ dependencies:
+ "@chain-registry/types": "npm:^0.45.1"
+ "@cosmos-kit/core": "npm:^2.13.1"
+ "@dao-dao/cosmiframe": "npm:^0.1.0"
+ peerDependencies:
+ "@types/react": ">= 17"
+ "@types/react-dom": ">= 17"
+ react: ^18
+ react-dom: ^18
+ checksum: 10c0/8eae200d14fdd74cfad691a56ae3cd87e4d84f3b0483669adc4cc0228782bd630959b13e0cd1276ad3b297aa21b56bbd93867e9644daa25bd4ea95cbafa682a6
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/react@npm:2.18.0":
+ version: 2.18.0
+ resolution: "@cosmos-kit/react@npm:2.18.0"
+ dependencies:
+ "@chain-registry/types": "npm:^0.45.1"
+ "@cosmos-kit/core": "npm:^2.13.1"
+ "@cosmos-kit/react-lite": "npm:^2.13.0"
+ "@react-icons/all-files": "npm:^4.1.0"
+ peerDependencies:
+ "@interchain-ui/react": ^1.23.9
+ "@types/react": ">= 17"
+ "@types/react-dom": ">= 17"
+ react: ^18
+ react-dom: ^18
+ checksum: 10c0/b23e43a79e8c616e2c245a5637f904a7efc7b46358415963e0a6879846061a26964416afde4d2275175a3777291b985d25e433429bf198c52f148ea47aa08da8
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/shell-extension@npm:^2.11.2":
+ version: 2.11.2
+ resolution: "@cosmos-kit/shell-extension@npm:2.11.2"
+ dependencies:
+ "@chain-registry/keplr": "npm:1.68.2"
+ "@cosmos-kit/core": "npm:^2.13.1"
+ peerDependencies:
+ "@cosmjs/amino": ">=0.32.3"
+ "@cosmjs/proto-signing": ">=0.32.3"
+ checksum: 10c0/c708c603aab2c7c289f8decfc8cb7b833595734e147f8905f8cd30a4bf288391f0c3366f2a8e4855041b12495ed70a40cb98470edd446a495277d00b4e91518c
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/shell@npm:^2.11.2":
+ version: 2.11.2
+ resolution: "@cosmos-kit/shell@npm:2.11.2"
+ dependencies:
+ "@cosmos-kit/shell-extension": "npm:^2.11.2"
+ checksum: 10c0/cc531070a980b4fa57a34ee96b54d070fe9782e4477ff9da997ae37e6f30d3ea5921ea523768bd70f72e0eddf46f67ba592e4b7fe75b99679bc7da562797ccf0
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/station-extension@npm:^2.11.2":
+ version: 2.11.2
+ resolution: "@cosmos-kit/station-extension@npm:2.11.2"
+ dependencies:
+ "@cosmos-kit/core": "npm:^2.13.1"
+ "@terra-money/feather.js": "npm:^1.0.8"
+ "@terra-money/station-connector": "npm:^1.1.0"
+ "@terra-money/wallet-types": "npm:^3.11.2"
+ peerDependencies:
+ "@chain-registry/types": ">= 0.17"
+ "@cosmjs/amino": ">=0.32.3"
+ "@cosmjs/proto-signing": ">=0.32.3"
+ checksum: 10c0/0532961a303ab7cad2319f27c71c80f9662ec9f7a5d957f27dc49c8753417dbc94c4ec175010b9b616af1512e42dc09144a12c5c143a5ab64bb2015d0fc6768e
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/station@npm:^2.10.2":
+ version: 2.10.2
+ resolution: "@cosmos-kit/station@npm:2.10.2"
+ dependencies:
+ "@cosmos-kit/station-extension": "npm:^2.11.2"
+ checksum: 10c0/1d0e1a05e9fd2528d1c105fba340244adff25460b536d75fcc2454f56f317efd6edced3eddee9cc8b9d897338114f9469af272fd1a5f7f1c317273acfc5f29b4
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/tailwind-extension@npm:^1.5.2":
+ version: 1.5.2
+ resolution: "@cosmos-kit/tailwind-extension@npm:1.5.2"
+ dependencies:
+ "@cosmos-kit/core": "npm:^2.13.1"
+ checksum: 10c0/a8facdddc4df41814ae5048423b3c9da8c223503f16fb6728038238790fd143a2ebda727c813f9ae2c1190c0d0da07e942a8c0181ea2e1268f9580435550d2ed
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/tailwind@npm:^1.5.2":
+ version: 1.5.2
+ resolution: "@cosmos-kit/tailwind@npm:1.5.2"
+ dependencies:
+ "@cosmos-kit/tailwind-extension": "npm:^1.5.2"
+ checksum: 10c0/79d9ce43765e90c990f52d72049d4705322d3fc9175214f80aec7d24cbce24460cf37aaab9baf424aa965ff2b9398e3c84c32f8ac2bb5c4a35370ebddefc4733
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/trust-extension@npm:^2.10.2":
+ version: 2.10.2
+ resolution: "@cosmos-kit/trust-extension@npm:2.10.2"
+ dependencies:
+ "@cosmos-kit/core": "npm:^2.13.1"
+ peerDependencies:
+ "@cosmjs/amino": ">=0.32.3"
+ "@cosmjs/proto-signing": ">=0.32.3"
+ checksum: 10c0/4a56176642f984aa07a3b46f4dfed59113e4012350c45b854c4ea96cedd2dbf8cbf07e7c9a943ffaf85d624c0f8612d3eb6dd2518926ce82289a48a208859f13
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/trust-mobile@npm:^2.10.2":
+ version: 2.10.2
+ resolution: "@cosmos-kit/trust-mobile@npm:2.10.2"
+ dependencies:
+ "@cosmos-kit/core": "npm:^2.13.1"
+ "@cosmos-kit/walletconnect": "npm:^2.10.1"
+ peerDependencies:
+ "@cosmjs/amino": ">=0.32.3"
+ "@cosmjs/proto-signing": ">=0.32.3"
+ checksum: 10c0/6ed367a52d75355add3bddcbefc47e589110da9e1d42f7b65fdd7e02398786d083403f685539ea03a0b65f9a9813e1703d2c53a67aa834c091170e488b77205c
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/trust@npm:^2.11.2":
+ version: 2.11.2
+ resolution: "@cosmos-kit/trust@npm:2.11.2"
+ dependencies:
+ "@cosmos-kit/trust-extension": "npm:^2.10.2"
+ "@cosmos-kit/trust-mobile": "npm:^2.10.2"
+ checksum: 10c0/68824bdab267de17b5ed0689a6b2a4881b06d5ec292bc1d12d9890552039229f6768eaf0e0ac8017633f67e9140a56da62df514f13f9aa6de09e7a55cc350132
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/vectis-extension@npm:^2.11.2":
+ version: 2.11.2
+ resolution: "@cosmos-kit/vectis-extension@npm:2.11.2"
+ dependencies:
+ "@chain-registry/keplr": "npm:1.68.2"
+ "@cosmos-kit/core": "npm:^2.13.1"
+ peerDependencies:
+ "@cosmjs/amino": ">=0.32.3"
+ "@cosmjs/proto-signing": ">=0.32.3"
+ checksum: 10c0/d150dd1f8845073b98d4ebf1d59f8459881cfc3e7b954fe0cd1932852bc7cb1986da6c44cbea7d06ce57c971fd8a1d5b7daa7c27fb0d31abfb4b1fdc786bd2b4
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/vectis@npm:^2.11.2":
+ version: 2.11.2
+ resolution: "@cosmos-kit/vectis@npm:2.11.2"
+ dependencies:
+ "@cosmos-kit/vectis-extension": "npm:^2.11.2"
+ checksum: 10c0/e9baa032280d35fc6da13a771bb7e4180decede89f052d9297e702d9ea3aaed7ce92d98865e2bb3b60f8a86ae7770add714db8072d64c89fd8d00449887ddee7
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/walletconnect@npm:^2.10.1":
+ version: 2.10.1
+ resolution: "@cosmos-kit/walletconnect@npm:2.10.1"
+ dependencies:
+ "@cosmjs/proto-signing": "npm:^0.32.3"
+ "@cosmos-kit/core": "npm:^2.13.1"
+ "@walletconnect/sign-client": "npm:^2.9.0"
+ "@walletconnect/utils": "npm:^2.9.0"
+ events: "npm:3.3.0"
+ peerDependencies:
+ "@cosmjs/amino": ">=0.32.3"
+ "@walletconnect/types": 2.11.0
+ checksum: 10c0/5940d33dfebb75f029b57cfa1de9206d2fc3c36e406cef29786ac5c0cd749cd0f5c06e5953d096bc522f45d8c1903cb1aa4429ee07425f261cc3167dcb6b35b6
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/xdefi-extension@npm:^2.11.2":
+ version: 2.11.2
+ resolution: "@cosmos-kit/xdefi-extension@npm:2.11.2"
+ dependencies:
+ "@cosmos-kit/core": "npm:^2.13.1"
+ peerDependencies:
+ "@cosmjs/amino": ">=0.32.3"
+ "@cosmjs/proto-signing": ">=0.32.3"
+ checksum: 10c0/73afc1fb1ed406c5fa44081baf2c0b3d0fd90e6d162427e66040f8319a10ef72c756bd180861400f0f1b51cdd8d54c4a4fdb56fb71eda1aef2003d3131a7404a
+ languageName: node
+ linkType: hard
+
+"@cosmos-kit/xdefi@npm:^2.10.2":
+ version: 2.10.2
+ resolution: "@cosmos-kit/xdefi@npm:2.10.2"
+ dependencies:
+ "@cosmos-kit/xdefi-extension": "npm:^2.11.2"
+ checksum: 10c0/a7dcb2a6234d4828f60fa835247627a6183fe000f4e2106f8c6a1e2bff5c2c842a887a5ddae188e2d500b807e1d4580fddfb318499683914f0abf6ffa2f72faa
+ languageName: node
+ linkType: hard
+
+"@cosmostation/extension-client@npm:0.1.15":
+ version: 0.1.15
+ resolution: "@cosmostation/extension-client@npm:0.1.15"
+ checksum: 10c0/4afc033a6f0c894a632b5b6806c9588daab2aeb0afd3004429be2b6ec96636b9103f3097b86c606de3df239451dce4efdc930acdb0835919cc3f6727755871c3
+ languageName: node
+ linkType: hard
+
+"@dao-dao/cosmiframe@npm:^0.1.0":
+ version: 0.1.0
+ resolution: "@dao-dao/cosmiframe@npm:0.1.0"
+ dependencies:
+ uuid: "npm:^9.0.1"
+ peerDependencies:
+ "@cosmjs/amino": "*"
+ "@cosmjs/proto-signing": "*"
+ checksum: 10c0/e65a64a8ce67063585c2f21c07a7443358cfcbd2153c432b2e882a0549e37edb8d5a375ef49d279d2ec7cb46dfce6d728ccc872cdf89a444602319d11e44ccc8
+ languageName: node
+ linkType: hard
+
+"@emotion/hash@npm:^0.9.0":
+ version: 0.9.1
+ resolution: "@emotion/hash@npm:0.9.1"
+ checksum: 10c0/cdafe5da63fc1137f3db6e232fdcde9188b2b47ee66c56c29137199642a4086f42382d866911cfb4833cae2cc00271ab45cad3946b024f67b527bb7fac7f4c9d
+ languageName: node
+ linkType: hard
+
+"@eslint/eslintrc@npm:^1.3.3":
+ version: 1.4.1
+ resolution: "@eslint/eslintrc@npm:1.4.1"
+ dependencies:
+ ajv: "npm:^6.12.4"
+ debug: "npm:^4.3.2"
+ espree: "npm:^9.4.0"
+ globals: "npm:^13.19.0"
+ ignore: "npm:^5.2.0"
+ import-fresh: "npm:^3.2.1"
+ js-yaml: "npm:^4.1.0"
+ minimatch: "npm:^3.1.2"
+ strip-json-comments: "npm:^3.1.1"
+ checksum: 10c0/1030e1a4a355f8e4629e19d3d45448a05a8e65ecf49154bebc66599d038f155e830498437cbfc7246e8084adc1f814904f696c2461707cc8c73be961e2e8ae5a
+ languageName: node
+ linkType: hard
+
+"@ethersproject/abi@npm:5.7.0, @ethersproject/abi@npm:^5.7.0":
+ version: 5.7.0
+ resolution: "@ethersproject/abi@npm:5.7.0"
+ dependencies:
+ "@ethersproject/address": "npm:^5.7.0"
+ "@ethersproject/bignumber": "npm:^5.7.0"
+ "@ethersproject/bytes": "npm:^5.7.0"
+ "@ethersproject/constants": "npm:^5.7.0"
+ "@ethersproject/hash": "npm:^5.7.0"
+ "@ethersproject/keccak256": "npm:^5.7.0"
+ "@ethersproject/logger": "npm:^5.7.0"
+ "@ethersproject/properties": "npm:^5.7.0"
+ "@ethersproject/strings": "npm:^5.7.0"
+ checksum: 10c0/7de51bf52ff03df2526546dacea6e74f15d4c5ef762d931552082b9600dcefd8e333599f02d7906ba89f7b7f48c45ab72cee76f397212b4f17fa9d9ff5615916
+ languageName: node
+ linkType: hard
+
+"@ethersproject/abstract-provider@npm:5.7.0, @ethersproject/abstract-provider@npm:^5.7.0":
+ version: 5.7.0
+ resolution: "@ethersproject/abstract-provider@npm:5.7.0"
+ dependencies:
+ "@ethersproject/bignumber": "npm:^5.7.0"
+ "@ethersproject/bytes": "npm:^5.7.0"
+ "@ethersproject/logger": "npm:^5.7.0"
+ "@ethersproject/networks": "npm:^5.7.0"
+ "@ethersproject/properties": "npm:^5.7.0"
+ "@ethersproject/transactions": "npm:^5.7.0"
+ "@ethersproject/web": "npm:^5.7.0"
+ checksum: 10c0/a5708e2811b90ddc53d9318ce152511a32dd4771aa2fb59dbe9e90468bb75ca6e695d958bf44d13da684dc3b6aab03f63d425ff7591332cb5d7ddaf68dff7224
+ languageName: node
+ linkType: hard
+
+"@ethersproject/abstract-signer@npm:5.7.0, @ethersproject/abstract-signer@npm:^5.7.0":
+ version: 5.7.0
+ resolution: "@ethersproject/abstract-signer@npm:5.7.0"
+ dependencies:
+ "@ethersproject/abstract-provider": "npm:^5.7.0"
+ "@ethersproject/bignumber": "npm:^5.7.0"
+ "@ethersproject/bytes": "npm:^5.7.0"
+ "@ethersproject/logger": "npm:^5.7.0"
+ "@ethersproject/properties": "npm:^5.7.0"
+ checksum: 10c0/e174966b3be17269a5974a3ae5eef6d15ac62ee8c300ceace26767f218f6bbf3de66f29d9a9c9ca300fa8551aab4c92e28d2cc772f5475fdeaa78d9b5be0e745
+ languageName: node
+ linkType: hard
+
+"@ethersproject/address@npm:5.7.0, @ethersproject/address@npm:^5.6.0, @ethersproject/address@npm:^5.7.0":
+ version: 5.7.0
+ resolution: "@ethersproject/address@npm:5.7.0"
+ dependencies:
+ "@ethersproject/bignumber": "npm:^5.7.0"
+ "@ethersproject/bytes": "npm:^5.7.0"
+ "@ethersproject/keccak256": "npm:^5.7.0"
+ "@ethersproject/logger": "npm:^5.7.0"
+ "@ethersproject/rlp": "npm:^5.7.0"
+ checksum: 10c0/db5da50abeaae8f6cf17678323e8d01cad697f9a184b0593c62b71b0faa8d7e5c2ba14da78a998d691773ed6a8eb06701f65757218e0eaaeb134e5c5f3e5a908
+ languageName: node
+ linkType: hard
+
+"@ethersproject/base64@npm:5.7.0, @ethersproject/base64@npm:^5.7.0":
+ version: 5.7.0
+ resolution: "@ethersproject/base64@npm:5.7.0"
+ dependencies:
+ "@ethersproject/bytes": "npm:^5.7.0"
+ checksum: 10c0/4f748cd82af60ff1866db699fbf2bf057feff774ea0a30d1f03ea26426f53293ea10cc8265cda1695301da61093bedb8cc0d38887f43ed9dad96b78f19d7337e
+ languageName: node
+ linkType: hard
+
+"@ethersproject/basex@npm:5.7.0, @ethersproject/basex@npm:^5.7.0":
+ version: 5.7.0
+ resolution: "@ethersproject/basex@npm:5.7.0"
+ dependencies:
+ "@ethersproject/bytes": "npm:^5.7.0"
+ "@ethersproject/properties": "npm:^5.7.0"
+ checksum: 10c0/02304de77477506ad798eb5c68077efd2531624380d770ef4a823e631a288fb680107a0f9dc4a6339b2a0b0f5b06ee77f53429afdad8f950cde0f3e40d30167d
+ languageName: node
+ linkType: hard
+
+"@ethersproject/bignumber@npm:5.7.0, @ethersproject/bignumber@npm:^5.7.0":
+ version: 5.7.0
+ resolution: "@ethersproject/bignumber@npm:5.7.0"
+ dependencies:
+ "@ethersproject/bytes": "npm:^5.7.0"
+ "@ethersproject/logger": "npm:^5.7.0"
+ bn.js: "npm:^5.2.1"
+ checksum: 10c0/14263cdc91a7884b141d9300f018f76f69839c47e95718ef7161b11d2c7563163096fee69724c5fa8ef6f536d3e60f1c605819edbc478383a2b98abcde3d37b2
+ languageName: node
+ linkType: hard
+
+"@ethersproject/bytes@npm:5.7.0, @ethersproject/bytes@npm:^5.7.0":
+ version: 5.7.0
+ resolution: "@ethersproject/bytes@npm:5.7.0"
+ dependencies:
+ "@ethersproject/logger": "npm:^5.7.0"
+ checksum: 10c0/07dd1f0341b3de584ef26c8696674ff2bb032f4e99073856fc9cd7b4c54d1d846cabe149e864be267934658c3ce799e5ea26babe01f83af0e1f06c51e5ac791f
+ languageName: node
+ linkType: hard
+
+"@ethersproject/constants@npm:5.7.0, @ethersproject/constants@npm:^5.7.0":
+ version: 5.7.0
+ resolution: "@ethersproject/constants@npm:5.7.0"
+ dependencies:
+ "@ethersproject/bignumber": "npm:^5.7.0"
+ checksum: 10c0/6df63ab753e152726b84595250ea722165a5744c046e317df40a6401f38556385a37c84dadf5b11ca651c4fb60f967046125369c57ac84829f6b30e69a096273
+ languageName: node
+ linkType: hard
+
+"@ethersproject/contracts@npm:5.7.0":
+ version: 5.7.0
+ resolution: "@ethersproject/contracts@npm:5.7.0"
+ dependencies:
+ "@ethersproject/abi": "npm:^5.7.0"
+ "@ethersproject/abstract-provider": "npm:^5.7.0"
+ "@ethersproject/abstract-signer": "npm:^5.7.0"
+ "@ethersproject/address": "npm:^5.7.0"
+ "@ethersproject/bignumber": "npm:^5.7.0"
+ "@ethersproject/bytes": "npm:^5.7.0"
+ "@ethersproject/constants": "npm:^5.7.0"
+ "@ethersproject/logger": "npm:^5.7.0"
+ "@ethersproject/properties": "npm:^5.7.0"
+ "@ethersproject/transactions": "npm:^5.7.0"
+ checksum: 10c0/97a10361dddaccfb3e9e20e24d071cfa570050adcb964d3452c5f7c9eaaddb4e145ec9cf928e14417948701b89e81d4907800e799a6083123e4d13a576842f41
+ languageName: node
+ linkType: hard
+
+"@ethersproject/hash@npm:5.7.0, @ethersproject/hash@npm:^5.7.0":
+ version: 5.7.0
+ resolution: "@ethersproject/hash@npm:5.7.0"
+ dependencies:
+ "@ethersproject/abstract-signer": "npm:^5.7.0"
+ "@ethersproject/address": "npm:^5.7.0"
+ "@ethersproject/base64": "npm:^5.7.0"
+ "@ethersproject/bignumber": "npm:^5.7.0"
+ "@ethersproject/bytes": "npm:^5.7.0"
+ "@ethersproject/keccak256": "npm:^5.7.0"
+ "@ethersproject/logger": "npm:^5.7.0"
+ "@ethersproject/properties": "npm:^5.7.0"
+ "@ethersproject/strings": "npm:^5.7.0"
+ checksum: 10c0/1a631dae34c4cf340dde21d6940dd1715fc7ae483d576f7b8ef9e8cb1d0e30bd7e8d30d4a7d8dc531c14164602323af2c3d51eb2204af18b2e15167e70c9a5ef
+ languageName: node
+ linkType: hard
+
+"@ethersproject/hdnode@npm:5.7.0, @ethersproject/hdnode@npm:^5.7.0":
+ version: 5.7.0
+ resolution: "@ethersproject/hdnode@npm:5.7.0"
+ dependencies:
+ "@ethersproject/abstract-signer": "npm:^5.7.0"
+ "@ethersproject/basex": "npm:^5.7.0"
+ "@ethersproject/bignumber": "npm:^5.7.0"
+ "@ethersproject/bytes": "npm:^5.7.0"
+ "@ethersproject/logger": "npm:^5.7.0"
+ "@ethersproject/pbkdf2": "npm:^5.7.0"
+ "@ethersproject/properties": "npm:^5.7.0"
+ "@ethersproject/sha2": "npm:^5.7.0"
+ "@ethersproject/signing-key": "npm:^5.7.0"
+ "@ethersproject/strings": "npm:^5.7.0"
+ "@ethersproject/transactions": "npm:^5.7.0"
+ "@ethersproject/wordlists": "npm:^5.7.0"
+ checksum: 10c0/36d5c13fe69b1e0a18ea98537bc560d8ba166e012d63faac92522a0b5f405eb67d8848c5aca69e2470f62743aaef2ac36638d9e27fd8c68f51506eb61479d51d
+ languageName: node
+ linkType: hard
+
+"@ethersproject/json-wallets@npm:5.7.0, @ethersproject/json-wallets@npm:^5.7.0":
+ version: 5.7.0
+ resolution: "@ethersproject/json-wallets@npm:5.7.0"
+ dependencies:
+ "@ethersproject/abstract-signer": "npm:^5.7.0"
+ "@ethersproject/address": "npm:^5.7.0"
+ "@ethersproject/bytes": "npm:^5.7.0"
+ "@ethersproject/hdnode": "npm:^5.7.0"
+ "@ethersproject/keccak256": "npm:^5.7.0"
+ "@ethersproject/logger": "npm:^5.7.0"
+ "@ethersproject/pbkdf2": "npm:^5.7.0"
+ "@ethersproject/properties": "npm:^5.7.0"
+ "@ethersproject/random": "npm:^5.7.0"
+ "@ethersproject/strings": "npm:^5.7.0"
+ "@ethersproject/transactions": "npm:^5.7.0"
+ aes-js: "npm:3.0.0"
+ scrypt-js: "npm:3.0.1"
+ checksum: 10c0/f1a84d19ff38d3506f453abc4702107cbc96a43c000efcd273a056371363767a06a8d746f84263b1300266eb0c329fe3b49a9b39a37aadd016433faf9e15a4bb
+ languageName: node
+ linkType: hard
+
+"@ethersproject/keccak256@npm:5.7.0, @ethersproject/keccak256@npm:^5.5.0, @ethersproject/keccak256@npm:^5.7.0":
+ version: 5.7.0
+ resolution: "@ethersproject/keccak256@npm:5.7.0"
+ dependencies:
+ "@ethersproject/bytes": "npm:^5.7.0"
+ js-sha3: "npm:0.8.0"
+ checksum: 10c0/3b1a91706ff11f5ab5496840b9c36cedca27db443186d28b94847149fd16baecdc13f6fc5efb8359506392f2aba559d07e7f9c1e17a63f9d5de9f8053cfcb033
+ languageName: node
+ linkType: hard
+
+"@ethersproject/logger@npm:5.7.0, @ethersproject/logger@npm:^5.7.0":
+ version: 5.7.0
+ resolution: "@ethersproject/logger@npm:5.7.0"
+ checksum: 10c0/d03d460fb2d4a5e71c627b7986fb9e50e1b59a6f55e8b42a545b8b92398b961e7fd294bd9c3d8f92b35d0f6ff9d15aa14c95eab378f8ea194e943c8ace343501
+ languageName: node
+ linkType: hard
+
+"@ethersproject/networks@npm:5.7.1, @ethersproject/networks@npm:^5.7.0":
+ version: 5.7.1
+ resolution: "@ethersproject/networks@npm:5.7.1"
+ dependencies:
+ "@ethersproject/logger": "npm:^5.7.0"
+ checksum: 10c0/9efcdce27f150459e85d74af3f72d5c32898823a99f5410e26bf26cca2d21fb14e403377314a93aea248e57fb2964e19cee2c3f7bfc586ceba4c803a8f1b75c0
+ languageName: node
+ linkType: hard
+
+"@ethersproject/pbkdf2@npm:5.7.0, @ethersproject/pbkdf2@npm:^5.7.0":
+ version: 5.7.0
+ resolution: "@ethersproject/pbkdf2@npm:5.7.0"
+ dependencies:
+ "@ethersproject/bytes": "npm:^5.7.0"
+ "@ethersproject/sha2": "npm:^5.7.0"
+ checksum: 10c0/e5a29cf28b4f4ca1def94d37cfb6a9c05c896106ed64881707813de01c1e7ded613f1e95febcccda4de96aae929068831d72b9d06beef1377b5a1a13a0eb3ff5
+ languageName: node
+ linkType: hard
+
+"@ethersproject/properties@npm:5.7.0, @ethersproject/properties@npm:^5.7.0":
+ version: 5.7.0
+ resolution: "@ethersproject/properties@npm:5.7.0"
+ dependencies:
+ "@ethersproject/logger": "npm:^5.7.0"
+ checksum: 10c0/4fe5d36e5550b8e23a305aa236a93e8f04d891d8198eecdc8273914c761b0e198fd6f757877406ee3eb05033ec271132a3e5998c7bd7b9a187964fb4f67b1373
+ languageName: node
+ linkType: hard
+
+"@ethersproject/providers@npm:5.7.2":
+ version: 5.7.2
+ resolution: "@ethersproject/providers@npm:5.7.2"
+ dependencies:
+ "@ethersproject/abstract-provider": "npm:^5.7.0"
+ "@ethersproject/abstract-signer": "npm:^5.7.0"
+ "@ethersproject/address": "npm:^5.7.0"
+ "@ethersproject/base64": "npm:^5.7.0"
+ "@ethersproject/basex": "npm:^5.7.0"
+ "@ethersproject/bignumber": "npm:^5.7.0"
+ "@ethersproject/bytes": "npm:^5.7.0"
+ "@ethersproject/constants": "npm:^5.7.0"
+ "@ethersproject/hash": "npm:^5.7.0"
+ "@ethersproject/logger": "npm:^5.7.0"
+ "@ethersproject/networks": "npm:^5.7.0"
+ "@ethersproject/properties": "npm:^5.7.0"
+ "@ethersproject/random": "npm:^5.7.0"
+ "@ethersproject/rlp": "npm:^5.7.0"
+ "@ethersproject/sha2": "npm:^5.7.0"
+ "@ethersproject/strings": "npm:^5.7.0"
+ "@ethersproject/transactions": "npm:^5.7.0"
+ "@ethersproject/web": "npm:^5.7.0"
+ bech32: "npm:1.1.4"
+ ws: "npm:7.4.6"
+ checksum: 10c0/4c8d19e6b31f769c24042fb2d02e483a4ee60dcbfca9e3291f0a029b24337c47d1ea719a390be856f8fd02997125819e834415e77da4fb2023369712348dae4c
+ languageName: node
+ linkType: hard
+
+"@ethersproject/random@npm:5.7.0, @ethersproject/random@npm:^5.7.0":
+ version: 5.7.0
+ resolution: "@ethersproject/random@npm:5.7.0"
+ dependencies:
+ "@ethersproject/bytes": "npm:^5.7.0"
+ "@ethersproject/logger": "npm:^5.7.0"
+ checksum: 10c0/23e572fc55372653c22062f6a153a68c2e2d3200db734cd0d39621fbfd0ca999585bed2d5682e3ac65d87a2893048375682e49d1473d9965631ff56d2808580b
+ languageName: node
+ linkType: hard
+
+"@ethersproject/rlp@npm:5.7.0, @ethersproject/rlp@npm:^5.7.0":
+ version: 5.7.0
+ resolution: "@ethersproject/rlp@npm:5.7.0"
+ dependencies:
+ "@ethersproject/bytes": "npm:^5.7.0"
+ "@ethersproject/logger": "npm:^5.7.0"
+ checksum: 10c0/bc863d21dcf7adf6a99ae75c41c4a3fb99698cfdcfc6d5d82021530f3d3551c6305bc7b6f0475ad6de6f69e91802b7e872bee48c0596d98969aefcf121c2a044
+ languageName: node
+ linkType: hard
+
+"@ethersproject/sha2@npm:5.7.0, @ethersproject/sha2@npm:^5.7.0":
+ version: 5.7.0
+ resolution: "@ethersproject/sha2@npm:5.7.0"
+ dependencies:
+ "@ethersproject/bytes": "npm:^5.7.0"
+ "@ethersproject/logger": "npm:^5.7.0"
+ hash.js: "npm:1.1.7"
+ checksum: 10c0/0e7f9ce6b1640817b921b9c6dd9dab8d5bf5a0ce7634d6a7d129b7366a576c2f90dcf4bcb15a0aa9310dde67028f3a44e4fcc2f26b565abcd2a0f465116ff3b1
+ languageName: node
+ linkType: hard
+
+"@ethersproject/signing-key@npm:5.7.0, @ethersproject/signing-key@npm:^5.7.0":
+ version: 5.7.0
+ resolution: "@ethersproject/signing-key@npm:5.7.0"
+ dependencies:
+ "@ethersproject/bytes": "npm:^5.7.0"
+ "@ethersproject/logger": "npm:^5.7.0"
+ "@ethersproject/properties": "npm:^5.7.0"
+ bn.js: "npm:^5.2.1"
+ elliptic: "npm:6.5.4"
+ hash.js: "npm:1.1.7"
+ checksum: 10c0/fe2ca55bcdb6e370d81372191d4e04671234a2da872af20b03c34e6e26b97dc07c1ee67e91b673680fb13344c9d5d7eae52f1fa6117733a3d68652b778843e09
+ languageName: node
+ linkType: hard
+
+"@ethersproject/solidity@npm:5.7.0":
+ version: 5.7.0
+ resolution: "@ethersproject/solidity@npm:5.7.0"
+ dependencies:
+ "@ethersproject/bignumber": "npm:^5.7.0"
+ "@ethersproject/bytes": "npm:^5.7.0"
+ "@ethersproject/keccak256": "npm:^5.7.0"
+ "@ethersproject/logger": "npm:^5.7.0"
+ "@ethersproject/sha2": "npm:^5.7.0"
+ "@ethersproject/strings": "npm:^5.7.0"
+ checksum: 10c0/bedf9918911144b0ec352b8aa7fa44abf63f0b131629c625672794ee196ba7d3992b0e0d3741935ca176813da25b9bcbc81aec454652c63113bdc3a1706beac6
+ languageName: node
+ linkType: hard
+
+"@ethersproject/strings@npm:5.7.0, @ethersproject/strings@npm:^5.7.0":
+ version: 5.7.0
+ resolution: "@ethersproject/strings@npm:5.7.0"
+ dependencies:
+ "@ethersproject/bytes": "npm:^5.7.0"
+ "@ethersproject/constants": "npm:^5.7.0"
+ "@ethersproject/logger": "npm:^5.7.0"
+ checksum: 10c0/570d87040ccc7d94de9861f76fc2fba6c0b84c5d6104a99a5c60b8a2401df2e4f24bf9c30afa536163b10a564a109a96f02e6290b80e8f0c610426f56ad704d1
+ languageName: node
+ linkType: hard
+
+"@ethersproject/transactions@npm:5.7.0, @ethersproject/transactions@npm:^5.7.0":
+ version: 5.7.0
+ resolution: "@ethersproject/transactions@npm:5.7.0"
+ dependencies:
+ "@ethersproject/address": "npm:^5.7.0"
+ "@ethersproject/bignumber": "npm:^5.7.0"
+ "@ethersproject/bytes": "npm:^5.7.0"
+ "@ethersproject/constants": "npm:^5.7.0"
+ "@ethersproject/keccak256": "npm:^5.7.0"
+ "@ethersproject/logger": "npm:^5.7.0"
+ "@ethersproject/properties": "npm:^5.7.0"
+ "@ethersproject/rlp": "npm:^5.7.0"
+ "@ethersproject/signing-key": "npm:^5.7.0"
+ checksum: 10c0/aa4d51379caab35b9c468ed1692a23ae47ce0de121890b4f7093c982ee57e30bd2df0c743faed0f44936d7e59c55fffd80479f2c28ec6777b8de06bfb638c239
+ languageName: node
+ linkType: hard
+
+"@ethersproject/units@npm:5.7.0":
+ version: 5.7.0
+ resolution: "@ethersproject/units@npm:5.7.0"
+ dependencies:
+ "@ethersproject/bignumber": "npm:^5.7.0"
+ "@ethersproject/constants": "npm:^5.7.0"
+ "@ethersproject/logger": "npm:^5.7.0"
+ checksum: 10c0/4da2fdefe2a506cc9f8b408b2c8638ab35b843ec413d52713143f08501a55ff67a808897f9a91874774fb526423a0821090ba294f93e8bf4933a57af9677ac5e
+ languageName: node
+ linkType: hard
+
+"@ethersproject/wallet@npm:5.7.0":
+ version: 5.7.0
+ resolution: "@ethersproject/wallet@npm:5.7.0"
+ dependencies:
+ "@ethersproject/abstract-provider": "npm:^5.7.0"
+ "@ethersproject/abstract-signer": "npm:^5.7.0"
+ "@ethersproject/address": "npm:^5.7.0"
+ "@ethersproject/bignumber": "npm:^5.7.0"
+ "@ethersproject/bytes": "npm:^5.7.0"
+ "@ethersproject/hash": "npm:^5.7.0"
+ "@ethersproject/hdnode": "npm:^5.7.0"
+ "@ethersproject/json-wallets": "npm:^5.7.0"
+ "@ethersproject/keccak256": "npm:^5.7.0"
+ "@ethersproject/logger": "npm:^5.7.0"
+ "@ethersproject/properties": "npm:^5.7.0"
+ "@ethersproject/random": "npm:^5.7.0"
+ "@ethersproject/signing-key": "npm:^5.7.0"
+ "@ethersproject/transactions": "npm:^5.7.0"
+ "@ethersproject/wordlists": "npm:^5.7.0"
+ checksum: 10c0/f872b957db46f9de247d39a398538622b6c7a12f93d69bec5f47f9abf0701ef1edc10497924dd1c14a68109284c39a1686fa85586d89b3ee65df49002c40ba4c
+ languageName: node
+ linkType: hard
+
+"@ethersproject/web@npm:5.7.1, @ethersproject/web@npm:^5.7.0":
+ version: 5.7.1
+ resolution: "@ethersproject/web@npm:5.7.1"
+ dependencies:
+ "@ethersproject/base64": "npm:^5.7.0"
+ "@ethersproject/bytes": "npm:^5.7.0"
+ "@ethersproject/logger": "npm:^5.7.0"
+ "@ethersproject/properties": "npm:^5.7.0"
+ "@ethersproject/strings": "npm:^5.7.0"
+ checksum: 10c0/c82d6745c7f133980e8dab203955260e07da22fa544ccafdd0f21c79fae127bd6ef30957319e37b1cc80cddeb04d6bfb60f291bb14a97c9093d81ce50672f453
+ languageName: node
+ linkType: hard
+
+"@ethersproject/wordlists@npm:5.7.0, @ethersproject/wordlists@npm:^5.7.0":
+ version: 5.7.0
+ resolution: "@ethersproject/wordlists@npm:5.7.0"
+ dependencies:
+ "@ethersproject/bytes": "npm:^5.7.0"
+ "@ethersproject/hash": "npm:^5.7.0"
+ "@ethersproject/logger": "npm:^5.7.0"
+ "@ethersproject/properties": "npm:^5.7.0"
+ "@ethersproject/strings": "npm:^5.7.0"
+ checksum: 10c0/da4f3eca6d691ebf4f578e6b2ec3a76dedba791be558f6cf7e10cd0bfbaeab5a6753164201bb72ced745fb02b6ef7ef34edcb7e6065ce2b624c6556a461c3f70
+ languageName: node
+ linkType: hard
+
+"@floating-ui/core@npm:^1.0.0":
+ version: 1.6.0
+ resolution: "@floating-ui/core@npm:1.6.0"
+ dependencies:
+ "@floating-ui/utils": "npm:^0.2.1"
+ checksum: 10c0/667a68036f7dd5ed19442c7792a6002ca02d1799221c4396691bbe0b6008b48f6ccad581225e81fa266bb91232f6c66838a5f825f554217e1ec886178b93381b
+ languageName: node
+ linkType: hard
+
+"@floating-ui/core@npm:^1.6.0":
+ version: 1.6.2
+ resolution: "@floating-ui/core@npm:1.6.2"
+ dependencies:
+ "@floating-ui/utils": "npm:^0.2.0"
+ checksum: 10c0/db2621dc682e7f043d6f118d087ae6a6bfdacf40b26ede561760dd53548c16e2e7c59031e013e37283801fa307b55e6de65bf3b316b96a054e4a6a7cb937c59e
+ languageName: node
+ linkType: hard
+
+"@floating-ui/core@npm:^1.6.4":
+ version: 1.6.7
+ resolution: "@floating-ui/core@npm:1.6.7"
+ dependencies:
+ "@floating-ui/utils": "npm:^0.2.7"
+ checksum: 10c0/5c9ae274854f87ed09a61de758377d444c2b13ade7fd1067d74287b3e66de5340ae1281e48604b631c540855a2595cfc717adf9a2331eaadc4fa6d28e8571f64
+ languageName: node
+ linkType: hard
+
+"@floating-ui/dom@npm:^1.0.0":
+ version: 1.6.5
+ resolution: "@floating-ui/dom@npm:1.6.5"
+ dependencies:
+ "@floating-ui/core": "npm:^1.0.0"
+ "@floating-ui/utils": "npm:^0.2.0"
+ checksum: 10c0/ebdc14806f786e60df8e7cc2c30bf9cd4d75fe734f06d755588bbdef2f60d0a0f21dffb14abdc58dea96e5577e2e366feca6d66ba962018efd1bc91a3ece4526
+ languageName: node
+ linkType: hard
+
+"@floating-ui/dom@npm:^1.6.7":
+ version: 1.6.10
+ resolution: "@floating-ui/dom@npm:1.6.10"
+ dependencies:
+ "@floating-ui/core": "npm:^1.6.0"
+ "@floating-ui/utils": "npm:^0.2.7"
+ checksum: 10c0/ed7d7b400e00b2f31f1b8f11863af2cb95d0d3cd84635186ca31b41d8d9fe7fe12c85e4985617d7df7ed365abad48b327d0bae35934842007b4e1052d9780576
+ languageName: node
+ linkType: hard
+
+"@floating-ui/react-dom@npm:^2.1.1":
+ version: 2.1.1
+ resolution: "@floating-ui/react-dom@npm:2.1.1"
+ dependencies:
+ "@floating-ui/dom": "npm:^1.0.0"
+ peerDependencies:
+ react: ">=16.8.0"
+ react-dom: ">=16.8.0"
+ checksum: 10c0/732ab64600c511ceb0563b87bc557aa61789fec4f416a3f092bab89e508fa1d3ee5ade0f42051cc56eb5e4db867b87ab7fd48ce82db9fd4c01d94ffa08f60115
+ languageName: node
+ linkType: hard
+
+"@floating-ui/react@npm:^0.26.19":
+ version: 0.26.22
+ resolution: "@floating-ui/react@npm:0.26.22"
+ dependencies:
+ "@floating-ui/react-dom": "npm:^2.1.1"
+ "@floating-ui/utils": "npm:^0.2.7"
+ tabbable: "npm:^6.0.0"
+ peerDependencies:
+ react: ">=16.8.0"
+ react-dom: ">=16.8.0"
+ checksum: 10c0/7eea7bef4fb98d13873752c5cabcf61216dbf00d748027450cdd0ff5c7a51328f8800fa012ecd87bef8e1abedcc7703d5298a604843ec031dc88a18233548623
+ languageName: node
+ linkType: hard
+
+"@floating-ui/utils@npm:^0.2.0, @floating-ui/utils@npm:^0.2.1":
+ version: 0.2.1
+ resolution: "@floating-ui/utils@npm:0.2.1"
+ checksum: 10c0/ee77756712cf5b000c6bacf11992ffb364f3ea2d0d51cc45197a7e646a17aeb86ea4b192c0b42f3fbb29487aee918a565e84f710b8c3645827767f406a6b4cc9
+ languageName: node
+ linkType: hard
+
+"@floating-ui/utils@npm:^0.2.4, @floating-ui/utils@npm:^0.2.7":
+ version: 0.2.7
+ resolution: "@floating-ui/utils@npm:0.2.7"
+ checksum: 10c0/0559ea5df2dc82219bad26e3509e9d2b70f6987e552dc8ddf7d7f5923cfeb7c44bf884567125b1f9cdb122a4c7e6e7ddbc666740bc30b0e4091ccbca63c6fb1c
+ languageName: node
+ linkType: hard
+
+"@formatjs/ecma402-abstract@npm:1.18.2":
+ version: 1.18.2
+ resolution: "@formatjs/ecma402-abstract@npm:1.18.2"
+ dependencies:
+ "@formatjs/intl-localematcher": "npm:0.5.4"
+ tslib: "npm:^2.4.0"
+ checksum: 10c0/87afb37dd937555e712ca85d5142a9083d617c491d1dddf8d660fdfb6186272d2bc75b78809b076388d26f016200c8bddbce73281fd707eb899da2bf3bc9b7ca
+ languageName: node
+ linkType: hard
+
+"@formatjs/fast-memoize@npm:2.2.0":
+ version: 2.2.0
+ resolution: "@formatjs/fast-memoize@npm:2.2.0"
+ dependencies:
+ tslib: "npm:^2.4.0"
+ checksum: 10c0/ae88c5a93b96235aba4bd9b947d0310d2ec013687a99133413361b24122b5cdea8c9bf2e04a4a2a8b61f1f4ee5419ef6416ca4796554226b5050e05a9ce6ef49
+ languageName: node
+ linkType: hard
+
+"@formatjs/icu-messageformat-parser@npm:2.7.6":
+ version: 2.7.6
+ resolution: "@formatjs/icu-messageformat-parser@npm:2.7.6"
+ dependencies:
+ "@formatjs/ecma402-abstract": "npm:1.18.2"
+ "@formatjs/icu-skeleton-parser": "npm:1.8.0"
+ tslib: "npm:^2.4.0"
+ checksum: 10c0/9fc72c2075333a969601e2be4260638940b1abefd1a5fc15b93b0b10d2319c9df5778aa51fc2a173ce66ca5e8a47b4b64caca85a32d0eb6095e16e8d65cb4b00
+ languageName: node
+ linkType: hard
+
+"@formatjs/icu-skeleton-parser@npm:1.8.0":
+ version: 1.8.0
+ resolution: "@formatjs/icu-skeleton-parser@npm:1.8.0"
+ dependencies:
+ "@formatjs/ecma402-abstract": "npm:1.18.2"
+ tslib: "npm:^2.4.0"
+ checksum: 10c0/10956732d70cc67049d216410b5dc3ef048935d1ea2ae76f5755bb9d0243af37ddeabd5d140ddbf5f6c7047068c3d02a05f93c68a89cedfaf7488d5062885ea4
+ languageName: node
+ linkType: hard
+
+"@formatjs/intl-localematcher@npm:0.5.4":
+ version: 0.5.4
+ resolution: "@formatjs/intl-localematcher@npm:0.5.4"
+ dependencies:
+ tslib: "npm:^2.4.0"
+ checksum: 10c0/c9ff5d34ca8b6fe59f8f303a3cc31a92d343e095a6987e273e5cc23f0fe99feb557a392a05da95931c7d24106acb6988e588d00ddd05b0934005aafd7fdbafe6
+ languageName: node
+ linkType: hard
+
+"@formkit/auto-animate@npm:^0.8.2":
+ version: 0.8.2
+ resolution: "@formkit/auto-animate@npm:0.8.2"
+ checksum: 10c0/0b24af241c229f37643cd62ea78fd7fddf621c06516cf62452035ea0bf489b6b53068eea47abb40b6bb3653bb91c1efad8b7257014a3559d26ad77b47b5337cb
+ languageName: node
+ linkType: hard
+
+"@hexxagon/feather.js@npm:^1.0.9-beta.8":
+ version: 1.0.11
+ resolution: "@hexxagon/feather.js@npm:1.0.11"
+ dependencies:
+ "@classic-terra/terra.proto": "npm:^1.1.0"
+ "@terra-money/legacy.proto": "npm:@terra-money/terra.proto@^0.1.7"
+ "@terra-money/terra.proto": "npm:3.0.5"
+ axios: "npm:^0.27.2"
+ bech32: "npm:^2.0.0"
+ bip32: "npm:^2.0.6"
+ bip39: "npm:^3.0.3"
+ bufferutil: "npm:^4.0.3"
+ decimal.js: "npm:^10.2.1"
+ jscrypto: "npm:^1.0.1"
+ readable-stream: "npm:^3.6.0"
+ secp256k1: "npm:^4.0.2"
+ tmp: "npm:^0.2.1"
+ utf-8-validate: "npm:^5.0.5"
+ ws: "npm:^7.5.9"
+ checksum: 10c0/912e3133e059b73eb587a47774db29d0299750f762bd7ef8a10a6b7ccd3ba05100d8c9d31c04b67097522ea64883ff864970d69875fb68652f239c54b0ad424b
+ languageName: node
+ linkType: hard
+
+"@hexxagon/station-connector@npm:^1.0.17":
+ version: 1.0.19
+ resolution: "@hexxagon/station-connector@npm:1.0.19"
+ dependencies:
+ bech32: "npm:^2.0.0"
+ peerDependencies:
+ "@cosmjs/amino": ^0.31.0
+ "@hexxagon/feather.js": ^2.1.0-beta.5
+ axios: ^0.27.2
+ checksum: 10c0/32d1eb7d20b941c199ebbf68022b9caa94ecdbee6983d7b66d64868362c03a684befb6c7432990afb28a4540ea304e7d5ed2d7823f204165345018ff71644417
+ languageName: node
+ linkType: hard
+
+"@humanwhocodes/config-array@npm:^0.11.6":
+ version: 0.11.14
+ resolution: "@humanwhocodes/config-array@npm:0.11.14"
+ dependencies:
+ "@humanwhocodes/object-schema": "npm:^2.0.2"
+ debug: "npm:^4.3.1"
+ minimatch: "npm:^3.0.5"
+ checksum: 10c0/66f725b4ee5fdd8322c737cb5013e19fac72d4d69c8bf4b7feb192fcb83442b035b92186f8e9497c220e58b2d51a080f28a73f7899bc1ab288c3be172c467541
+ languageName: node
+ linkType: hard
+
+"@humanwhocodes/module-importer@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "@humanwhocodes/module-importer@npm:1.0.1"
+ checksum: 10c0/909b69c3b86d482c26b3359db16e46a32e0fb30bd306a3c176b8313b9e7313dba0f37f519de6aa8b0a1921349e505f259d19475e123182416a506d7f87e7f529
+ languageName: node
+ linkType: hard
+
+"@humanwhocodes/object-schema@npm:^2.0.2":
+ version: 2.0.3
+ resolution: "@humanwhocodes/object-schema@npm:2.0.3"
+ checksum: 10c0/80520eabbfc2d32fe195a93557cef50dfe8c8905de447f022675aaf66abc33ae54098f5ea78548d925aa671cd4ab7c7daa5ad704fe42358c9b5e7db60f80696c
+ languageName: node
+ linkType: hard
+
+"@improbable-eng/grpc-web@npm:^0.14.1":
+ version: 0.14.1
+ resolution: "@improbable-eng/grpc-web@npm:0.14.1"
+ dependencies:
+ browser-headers: "npm:^0.4.1"
+ peerDependencies:
+ google-protobuf: ^3.14.0
+ checksum: 10c0/972f20d97970b3c7239ef8f26866e417e3079faec5a66e86755cc49b1dc3c56ed50a8f04dbb9d23d2f12ffb5719e39500d5e513d0087d576bc0844d2034491c1
+ languageName: node
+ linkType: hard
+
+"@interchain-ui/react-no-ssr@npm:0.1.2":
+ version: 0.1.2
+ resolution: "@interchain-ui/react-no-ssr@npm:0.1.2"
+ peerDependencies:
+ react: ^18.x
+ react-dom: ^18.x
+ checksum: 10c0/1613c455c767de2a3271705d53049e66911b36f01cab340e7d74be49bd8e68fd5db1204072d9c7bca2b850fdfb90d426b374c0cc4561d3806f18a73adb5a1bf1
+ languageName: node
+ linkType: hard
+
+"@interchain-ui/react@npm:1.23.31":
+ version: 1.23.31
+ resolution: "@interchain-ui/react@npm:1.23.31"
+ dependencies:
+ "@floating-ui/core": "npm:^1.6.4"
+ "@floating-ui/dom": "npm:^1.6.7"
+ "@floating-ui/react": "npm:^0.26.19"
+ "@floating-ui/react-dom": "npm:^2.1.1"
+ "@floating-ui/utils": "npm:^0.2.4"
+ "@formkit/auto-animate": "npm:^0.8.2"
+ "@react-aria/listbox": "npm:^3.12.1"
+ "@react-aria/overlays": "npm:^3.22.1"
+ "@react-aria/utils": "npm:^3.24.1"
+ "@tanstack/react-virtual": "npm:^3.8.3"
+ "@vanilla-extract/css": "npm:^1.15.3"
+ "@vanilla-extract/dynamic": "npm:^2.1.1"
+ "@vanilla-extract/recipes": "npm:^0.5.3"
+ animejs: "npm:^3.2.2"
+ bignumber.js: "npm:^9.1.2"
+ client-only: "npm:^0.0.1"
+ clsx: "npm:^2.1.1"
+ copy-to-clipboard: "npm:^3.3.3"
+ immer: "npm:^10.1.1"
+ lodash: "npm:^4.17.21"
+ rainbow-sprinkles: "npm:^0.17.2"
+ react-aria: "npm:^3.33.1"
+ react-stately: "npm:^3.31.1"
+ zustand: "npm:^4.5.4"
+ peerDependencies:
+ react: ^16.14.0 || ^17.0.0 || ^18.0.0
+ react-dom: ^16.14.0 || ^17.0.0 || ^18.0.0
+ checksum: 10c0/b8ec3c81035651de08958aeb1497e423e02643f2b1e3fc1fc80b09396f017b2769e94de3b1f6cb44ef9852d8fa8ac890d82e86c23291a029961332000cccc2de
+ languageName: node
+ linkType: hard
+
+"@internationalized/date@npm:^3.5.5":
+ version: 3.5.5
+ resolution: "@internationalized/date@npm:3.5.5"
+ dependencies:
+ "@swc/helpers": "npm:^0.5.0"
+ checksum: 10c0/fc17291c8923eaf413e4cb1c74570a8f78269d8b6a5ad74de6f4f45b4e9a84f4243a9c3f224526c36b024f77e4a2fae34df6b34b022ae1b068384e04ad32560e
+ languageName: node
+ linkType: hard
+
+"@internationalized/message@npm:^3.1.4":
+ version: 3.1.4
+ resolution: "@internationalized/message@npm:3.1.4"
+ dependencies:
+ "@swc/helpers": "npm:^0.5.0"
+ intl-messageformat: "npm:^10.1.0"
+ checksum: 10c0/29d2a2117381a2e50377a13cdc4379981403992b917997c477bc7bc82b59fcdd1252addf36d001edd4d30b2f496ad9c5a982732b52032e5559f0703e27521a9c
+ languageName: node
+ linkType: hard
+
+"@internationalized/number@npm:^3.5.3":
+ version: 3.5.3
+ resolution: "@internationalized/number@npm:3.5.3"
+ dependencies:
+ "@swc/helpers": "npm:^0.5.0"
+ checksum: 10c0/dd1bb4e89c6468b97e8357e1ba0a60234bd2c8226f3241c4c7499e5b1791ba0574127ea6de0fd6c4158e2ceef564bba6531a8f5589e58b820df669e312500f99
+ languageName: node
+ linkType: hard
+
+"@internationalized/string@npm:^3.2.3":
+ version: 3.2.3
+ resolution: "@internationalized/string@npm:3.2.3"
+ dependencies:
+ "@swc/helpers": "npm:^0.5.0"
+ checksum: 10c0/824d2972951823d0421babb7e03003228fcbd9966028264838b2dad1032d4142f159c82f730a0b8026b8c8c10f06afe7df634c8d0cc8a9b6362909c6f653440a
+ languageName: node
+ linkType: hard
+
+"@isaacs/cliui@npm:^8.0.2":
+ version: 8.0.2
+ resolution: "@isaacs/cliui@npm:8.0.2"
+ dependencies:
+ string-width: "npm:^5.1.2"
+ string-width-cjs: "npm:string-width@^4.2.0"
+ strip-ansi: "npm:^7.0.1"
+ strip-ansi-cjs: "npm:strip-ansi@^6.0.1"
+ wrap-ansi: "npm:^8.1.0"
+ wrap-ansi-cjs: "npm:wrap-ansi@^7.0.0"
+ checksum: 10c0/b1bf42535d49f11dc137f18d5e4e63a28c5569de438a221c369483731e9dac9fb797af554e8bf02b6192d1e5eba6e6402cf93900c3d0ac86391d00d04876789e
+ languageName: node
+ linkType: hard
+
+"@keplr-wallet/common@npm:0.12.28":
+ version: 0.12.28
+ resolution: "@keplr-wallet/common@npm:0.12.28"
+ dependencies:
+ "@keplr-wallet/crypto": "npm:0.12.28"
+ "@keplr-wallet/types": "npm:0.12.28"
+ buffer: "npm:^6.0.3"
+ delay: "npm:^4.4.0"
+ mobx: "npm:^6.1.7"
+ checksum: 10c0/6207dac075aad13af4cd78efe5f79b3abfc445cb42cef6c6bf0c06b32c6e570dd1f4f93a4c64214bd03b77a669b308c30c09d041f51e25f14544305bc7f7f6a2
+ languageName: node
+ linkType: hard
+
+"@keplr-wallet/cosmos@npm:0.12.28":
+ version: 0.12.28
+ resolution: "@keplr-wallet/cosmos@npm:0.12.28"
+ dependencies:
+ "@ethersproject/address": "npm:^5.6.0"
+ "@keplr-wallet/common": "npm:0.12.28"
+ "@keplr-wallet/crypto": "npm:0.12.28"
+ "@keplr-wallet/proto-types": "npm:0.12.28"
+ "@keplr-wallet/simple-fetch": "npm:0.12.28"
+ "@keplr-wallet/types": "npm:0.12.28"
+ "@keplr-wallet/unit": "npm:0.12.28"
+ bech32: "npm:^1.1.4"
+ buffer: "npm:^6.0.3"
+ long: "npm:^4.0.0"
+ protobufjs: "npm:^6.11.2"
+ checksum: 10c0/b062eb75c03a1285aba7e5398191961e7e9d01ec53e1094a6c3858817e4e41d9c571f09961289b07fb3175d9648eeb3587744efb563be9c379b79e2ed0fc207c
+ languageName: node
+ linkType: hard
+
+"@keplr-wallet/crypto@npm:0.12.28":
+ version: 0.12.28
+ resolution: "@keplr-wallet/crypto@npm:0.12.28"
+ dependencies:
+ "@ethersproject/keccak256": "npm:^5.5.0"
+ bip32: "npm:^2.0.6"
+ bip39: "npm:^3.0.3"
+ bs58check: "npm:^2.1.2"
+ buffer: "npm:^6.0.3"
+ crypto-js: "npm:^4.0.0"
+ elliptic: "npm:^6.5.3"
+ sha.js: "npm:^2.4.11"
+ checksum: 10c0/90bb3ec875c1dbaceb5fa31c2bce201d4556b293e9bc8173e0959bd04f47690a65567ad2c6e8a49f597d7b5b81bf4f02c36fe12e1fa0ee4e5c4447d50101f228
+ languageName: node
+ linkType: hard
+
+"@keplr-wallet/proto-types@npm:0.12.28":
+ version: 0.12.28
+ resolution: "@keplr-wallet/proto-types@npm:0.12.28"
+ dependencies:
+ long: "npm:^4.0.0"
+ protobufjs: "npm:^6.11.2"
+ checksum: 10c0/c3b05d4788040dfcbb8e6ea1516aaa1e375f73fc1099476f880771ae410ec69985ccbf22056a37c8c715446c0e829912fa8061cfbfdd8bdeca74c58a6a153afc
+ languageName: node
+ linkType: hard
+
+"@keplr-wallet/provider-extension@npm:^0.12.95":
+ version: 0.12.113
+ resolution: "@keplr-wallet/provider-extension@npm:0.12.113"
+ dependencies:
+ "@keplr-wallet/types": "npm:0.12.113"
+ deepmerge: "npm:^4.2.2"
+ long: "npm:^4.0.0"
+ checksum: 10c0/2f062539d892754141ad00767029e1b4ac259c97765a9f49a29b189a56941a45c60793fed8fdaa8c240a89fb922ca21c8f9cd91131b741b816c387995860a2b2
+ languageName: node
+ linkType: hard
+
+"@keplr-wallet/provider@npm:0.12.113":
+ version: 0.12.113
+ resolution: "@keplr-wallet/provider@npm:0.12.113"
+ dependencies:
+ "@keplr-wallet/router": "npm:0.12.113"
+ "@keplr-wallet/types": "npm:0.12.113"
+ buffer: "npm:^6.0.3"
+ deepmerge: "npm:^4.2.2"
+ long: "npm:^4.0.0"
+ checksum: 10c0/c3472442cf5d57122a734287f14103517e180183937a9d74de510d0216f97c2983f2162077417bcac94f82698ceacc1ed5d7cbc0ceb07c4c8aad25928c26eee5
+ languageName: node
+ linkType: hard
+
+"@keplr-wallet/router@npm:0.12.113":
+ version: 0.12.113
+ resolution: "@keplr-wallet/router@npm:0.12.113"
+ checksum: 10c0/7998bcafbe962bdc1e8c4b359ab60c1ee05c19920e952e82ba72389257121b9e4c74b69c43ed6f9ad24d689e091e84550f8373df592cf5586ddf42818b2cd1ba
+ languageName: node
+ linkType: hard
+
+"@keplr-wallet/simple-fetch@npm:0.12.28":
+ version: 0.12.28
+ resolution: "@keplr-wallet/simple-fetch@npm:0.12.28"
+ checksum: 10c0/a5f7b9df3555f1d6b1fb0c72560302a62f6482ce7417c4218724e97827cad3ec8c71ea0dea2929571a9db9236d55ece7df15326944c5e1e64df0d55eab871882
+ languageName: node
+ linkType: hard
+
+"@keplr-wallet/types@npm:0.12.113, @keplr-wallet/types@npm:^0.12.90, @keplr-wallet/types@npm:^0.12.95":
+ version: 0.12.113
+ resolution: "@keplr-wallet/types@npm:0.12.113"
+ dependencies:
+ long: "npm:^4.0.0"
+ checksum: 10c0/00a0f49b9361689839bb120923da615f96a293d4aa413ef7565c9583ba48e0ea698e0c6ae2a8c3fa4cc4dd34878885627bb2d1122c3508337f758686f2a5d5a4
+ languageName: node
+ linkType: hard
+
+"@keplr-wallet/types@npm:0.12.28":
+ version: 0.12.28
+ resolution: "@keplr-wallet/types@npm:0.12.28"
+ dependencies:
+ long: "npm:^4.0.0"
+ checksum: 10c0/a541088e55ee0a57ac0e5a9c56e8b788d6325f438fcb4f0a478ba4ce76e336660774d8373a2c3dc6b53e4c6d7b5d91be3128102f340728c71a25448d35245980
+ languageName: node
+ linkType: hard
+
+"@keplr-wallet/types@npm:^0.12.111":
+ version: 0.12.111
+ resolution: "@keplr-wallet/types@npm:0.12.111"
+ dependencies:
+ long: "npm:^4.0.0"
+ checksum: 10c0/45988cafc2ae3197509c78545b50f8e37bb47290ed566ea85f501eb47c608f0b67339f3a7badae6e79e04db7dbd5c6f8ef6904ad6e518c900650fdb984d41338
+ languageName: node
+ linkType: hard
+
+"@keplr-wallet/unit@npm:0.12.28":
+ version: 0.12.28
+ resolution: "@keplr-wallet/unit@npm:0.12.28"
+ dependencies:
+ "@keplr-wallet/types": "npm:0.12.28"
+ big-integer: "npm:^1.6.48"
+ utility-types: "npm:^3.10.0"
+ checksum: 10c0/08d86d9ba01a11fcf2acd6a8a8b2252381eda8dc7613e3c3a50d7ebf73433fcece862b437f4118410e8c968983535e0aa5c4f2747eef9fd9785635eff836f7a7
+ languageName: node
+ linkType: hard
+
+"@keplr-wallet/wc-client@npm:^0.12.95":
+ version: 0.12.113
+ resolution: "@keplr-wallet/wc-client@npm:0.12.113"
+ dependencies:
+ "@keplr-wallet/provider": "npm:0.12.113"
+ "@keplr-wallet/types": "npm:0.12.113"
+ buffer: "npm:^6.0.3"
+ deepmerge: "npm:^4.2.2"
+ long: "npm:^3 || ^4 || ^5"
+ peerDependencies:
+ "@walletconnect/sign-client": ^2
+ "@walletconnect/types": ^2
+ checksum: 10c0/9b6f4dafd13bbfc93212302bec7f3e90eade3b62b8893c9b7fe67096bdf2fe945b66f5bc069e8c046bb0cc91dbcaa72b0a80b645c7eff2f1635e2dfc9a43f4af
+ languageName: node
+ linkType: hard
+
+"@leapwallet/cosmos-snap-provider@npm:0.1.26":
+ version: 0.1.26
+ resolution: "@leapwallet/cosmos-snap-provider@npm:0.1.26"
+ dependencies:
+ "@cosmjs/amino": "npm:^0.32.0"
+ "@cosmjs/proto-signing": "npm:^0.32.0"
+ bignumber.js: "npm:^9.1.2"
+ long: "npm:^5.2.3"
+ checksum: 10c0/e6a74773eed4754b37777bfbd946fbfd902213774eabb047c3c4a9aec82728be42196d79aee735cefe6e03bd77be4548805a5fd373eba741dd9667004f43523a
+ languageName: node
+ linkType: hard
+
+"@ledgerhq/devices@npm:^8.2.2":
+ version: 8.2.2
+ resolution: "@ledgerhq/devices@npm:8.2.2"
+ dependencies:
+ "@ledgerhq/errors": "npm:^6.16.3"
+ "@ledgerhq/logs": "npm:^6.12.0"
+ rxjs: "npm:^7.8.1"
+ semver: "npm:^7.3.5"
+ checksum: 10c0/c9bd63858ac4ce37a8e8fa3523ec1ed343b381d9711404d4334ef89d8cc8898af85e951b48ad962dce9a9c98344f0942393b69e52627cc34ec6e1b0dc93a5bbd
+ languageName: node
+ linkType: hard
+
+"@ledgerhq/errors@npm:^6.16.3":
+ version: 6.16.3
+ resolution: "@ledgerhq/errors@npm:6.16.3"
+ checksum: 10c0/12e8e39317aac45694ae0f01f20b870a933611cd31187fc6ff63f268154b58f99d34b02f5dc033cbe3aebbe6fbfcd6f19aea842b7de22b5d8e051aef2fb94f94
+ languageName: node
+ linkType: hard
+
+"@ledgerhq/hw-app-cosmos@npm:^6.28.1":
+ version: 6.29.5
+ resolution: "@ledgerhq/hw-app-cosmos@npm:6.29.5"
+ dependencies:
+ "@ledgerhq/errors": "npm:^6.16.3"
+ "@ledgerhq/hw-transport": "npm:^6.30.5"
+ bip32-path: "npm:^0.4.2"
+ checksum: 10c0/0b1988defdf762abe3cd8d160f1e5234056765d0c4d13459300cef1c524a5b925dd85cb8c0357288537c040b72f48cb7d20a797770fdd1d24631a65b6419e3e9
+ languageName: node
+ linkType: hard
+
+"@ledgerhq/hw-transport-webhid@npm:^6.27.15":
+ version: 6.28.5
+ resolution: "@ledgerhq/hw-transport-webhid@npm:6.28.5"
+ dependencies:
+ "@ledgerhq/devices": "npm:^8.2.2"
+ "@ledgerhq/errors": "npm:^6.16.3"
+ "@ledgerhq/hw-transport": "npm:^6.30.5"
+ "@ledgerhq/logs": "npm:^6.12.0"
+ checksum: 10c0/e9233f83b9f5ee4ab480ffd894c44251c85d6a11c2591665ee5b91ce0997316a822bbd52ca9129736f074df5d809df576c528fd009a309652c1cc1bb41fe4862
+ languageName: node
+ linkType: hard
+
+"@ledgerhq/hw-transport-webusb@npm:^6.27.15":
+ version: 6.28.5
+ resolution: "@ledgerhq/hw-transport-webusb@npm:6.28.5"
+ dependencies:
+ "@ledgerhq/devices": "npm:^8.2.2"
+ "@ledgerhq/errors": "npm:^6.16.3"
+ "@ledgerhq/hw-transport": "npm:^6.30.5"
+ "@ledgerhq/logs": "npm:^6.12.0"
+ checksum: 10c0/25ae085cf6f74202f7c4d089aca39058790d32fa287de9fb3e7ae982fd9e80c34988ad3b82249b856839db81165e0c94f02a0a3954866b83f2cf13c393e3a2ba
+ languageName: node
+ linkType: hard
+
+"@ledgerhq/hw-transport@npm:^6.30.5":
+ version: 6.30.5
+ resolution: "@ledgerhq/hw-transport@npm:6.30.5"
+ dependencies:
+ "@ledgerhq/devices": "npm:^8.2.2"
+ "@ledgerhq/errors": "npm:^6.16.3"
+ "@ledgerhq/logs": "npm:^6.12.0"
+ events: "npm:^3.3.0"
+ checksum: 10c0/ef80bb7d5839e3f2dc278fc4aaa2a2e74766cce80cfc0c42958601ce231ce576e2cd318ead971aa09263e43592160a5256a945ccb31dc542a341ad26f871102f
+ languageName: node
+ linkType: hard
+
+"@ledgerhq/logs@npm:^6.12.0":
+ version: 6.12.0
+ resolution: "@ledgerhq/logs@npm:6.12.0"
+ checksum: 10c0/573122867ae807a60c3218234019ba7c4b35c14551b90c291fd589d7c2e7f002c2e84151868e67801c9f89a33d8a5569da77aef83b5f5e03b5faa2811cab6a86
+ languageName: node
+ linkType: hard
+
+"@metamask/object-multiplex@npm:^1.1.0":
+ version: 1.3.0
+ resolution: "@metamask/object-multiplex@npm:1.3.0"
+ dependencies:
+ end-of-stream: "npm:^1.4.4"
+ once: "npm:^1.4.0"
+ readable-stream: "npm:^2.3.3"
+ checksum: 10c0/24d80303b545da4c6de77a4f6adf46b3a498e15024f6b40b6e3594cbc7b77248b86b83716f343c24fc62379486b47ab4e5b0a4103552354f08e9fb68ecb01c7c
+ languageName: node
+ linkType: hard
+
+"@metamask/providers@npm:^11.1.1":
+ version: 11.1.2
+ resolution: "@metamask/providers@npm:11.1.2"
+ dependencies:
+ "@metamask/object-multiplex": "npm:^1.1.0"
+ "@metamask/safe-event-emitter": "npm:^3.0.0"
+ detect-browser: "npm:^5.2.0"
+ eth-rpc-errors: "npm:^4.0.2"
+ extension-port-stream: "npm:^2.1.1"
+ fast-deep-equal: "npm:^3.1.3"
+ is-stream: "npm:^2.0.0"
+ json-rpc-engine: "npm:^6.1.0"
+ json-rpc-middleware-stream: "npm:^4.2.1"
+ pump: "npm:^3.0.0"
+ webextension-polyfill: "npm:^0.10.0"
+ checksum: 10c0/0c0da8735be8943b1801f98115a87554076e97d5ff00fad83bb707992bb35fb8a849ff0f04aecb1ff54ebeba47ba61326e39c5b9b6de373839e18607e2ee7c7b
+ languageName: node
+ linkType: hard
+
+"@metamask/safe-event-emitter@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "@metamask/safe-event-emitter@npm:2.0.0"
+ checksum: 10c0/a86b91f909834dc14de7eadd38b22d4975f6529001d265cd0f5c894351f69f39447f1ef41b690b9849c86dd2a25a39515ef5f316545d36aea7b3fc50ee930933
+ languageName: node
+ linkType: hard
+
+"@metamask/safe-event-emitter@npm:^3.0.0":
+ version: 3.1.1
+ resolution: "@metamask/safe-event-emitter@npm:3.1.1"
+ checksum: 10c0/4dd51651fa69adf65952449b20410acac7edad06f176dc6f0a5d449207527a2e85d5a21a864566e3d8446fb259f8840bd69fdb65932007a882f771f473a2b682
+ languageName: node
+ linkType: hard
+
+"@next/env@npm:13.5.6":
+ version: 13.5.6
+ resolution: "@next/env@npm:13.5.6"
+ checksum: 10c0/b1fefa21b698397a2f922ee53a5ecb91ff858f042b2a198652b9de49c031fc5e00d79da92ba7d84ef205e95368d5afbb0f104abaf00e9dde7985d9eae63bb4fb
+ languageName: node
+ linkType: hard
+
+"@next/eslint-plugin-next@npm:13.0.5":
+ version: 13.0.5
+ resolution: "@next/eslint-plugin-next@npm:13.0.5"
+ dependencies:
+ glob: "npm:7.1.7"
+ checksum: 10c0/cee469f5484a9da000089ac9dd3169a904f61ab198b575efdaace086fa773aa6cc634a975b4ed567e97b8f8087983b59d133abd83cd51bd86a2213481d2672f8
+ languageName: node
+ linkType: hard
+
+"@next/swc-darwin-arm64@npm:13.5.6":
+ version: 13.5.6
+ resolution: "@next/swc-darwin-arm64@npm:13.5.6"
+ conditions: os=darwin & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"@next/swc-darwin-x64@npm:13.5.6":
+ version: 13.5.6
+ resolution: "@next/swc-darwin-x64@npm:13.5.6"
+ conditions: os=darwin & cpu=x64
+ languageName: node
+ linkType: hard
+
+"@next/swc-linux-arm64-gnu@npm:13.5.6":
+ version: 13.5.6
+ resolution: "@next/swc-linux-arm64-gnu@npm:13.5.6"
+ conditions: os=linux & cpu=arm64 & libc=glibc
+ languageName: node
+ linkType: hard
+
+"@next/swc-linux-arm64-musl@npm:13.5.6":
+ version: 13.5.6
+ resolution: "@next/swc-linux-arm64-musl@npm:13.5.6"
+ conditions: os=linux & cpu=arm64 & libc=musl
+ languageName: node
+ linkType: hard
+
+"@next/swc-linux-x64-gnu@npm:13.5.6":
+ version: 13.5.6
+ resolution: "@next/swc-linux-x64-gnu@npm:13.5.6"
+ conditions: os=linux & cpu=x64 & libc=glibc
+ languageName: node
+ linkType: hard
+
+"@next/swc-linux-x64-musl@npm:13.5.6":
+ version: 13.5.6
+ resolution: "@next/swc-linux-x64-musl@npm:13.5.6"
+ conditions: os=linux & cpu=x64 & libc=musl
+ languageName: node
+ linkType: hard
+
+"@next/swc-win32-arm64-msvc@npm:13.5.6":
+ version: 13.5.6
+ resolution: "@next/swc-win32-arm64-msvc@npm:13.5.6"
+ conditions: os=win32 & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"@next/swc-win32-ia32-msvc@npm:13.5.6":
+ version: 13.5.6
+ resolution: "@next/swc-win32-ia32-msvc@npm:13.5.6"
+ conditions: os=win32 & cpu=ia32
+ languageName: node
+ linkType: hard
+
+"@next/swc-win32-x64-msvc@npm:13.5.6":
+ version: 13.5.6
+ resolution: "@next/swc-win32-x64-msvc@npm:13.5.6"
+ conditions: os=win32 & cpu=x64
+ languageName: node
+ linkType: hard
+
+"@noble/hashes@npm:^1, @noble/hashes@npm:^1.0.0, @noble/hashes@npm:^1.2.0":
+ version: 1.4.0
+ resolution: "@noble/hashes@npm:1.4.0"
+ checksum: 10c0/8c3f005ee72e7b8f9cff756dfae1241485187254e3f743873e22073d63906863df5d4f13d441b7530ea614b7a093f0d889309f28b59850f33b66cb26a779a4a5
+ languageName: node
+ linkType: hard
+
+"@nodelib/fs.scandir@npm:2.1.5":
+ version: 2.1.5
+ resolution: "@nodelib/fs.scandir@npm:2.1.5"
+ dependencies:
+ "@nodelib/fs.stat": "npm:2.0.5"
+ run-parallel: "npm:^1.1.9"
+ checksum: 10c0/732c3b6d1b1e967440e65f284bd06e5821fedf10a1bea9ed2bb75956ea1f30e08c44d3def9d6a230666574edbaf136f8cfd319c14fd1f87c66e6a44449afb2eb
+ languageName: node
+ linkType: hard
+
+"@nodelib/fs.stat@npm:2.0.5, @nodelib/fs.stat@npm:^2.0.2":
+ version: 2.0.5
+ resolution: "@nodelib/fs.stat@npm:2.0.5"
+ checksum: 10c0/88dafe5e3e29a388b07264680dc996c17f4bda48d163a9d4f5c1112979f0ce8ec72aa7116122c350b4e7976bc5566dc3ddb579be1ceaacc727872eb4ed93926d
+ languageName: node
+ linkType: hard
+
+"@nodelib/fs.walk@npm:^1.2.3, @nodelib/fs.walk@npm:^1.2.8":
+ version: 1.2.8
+ resolution: "@nodelib/fs.walk@npm:1.2.8"
+ dependencies:
+ "@nodelib/fs.scandir": "npm:2.1.5"
+ fastq: "npm:^1.6.0"
+ checksum: 10c0/db9de047c3bb9b51f9335a7bb46f4fcfb6829fb628318c12115fbaf7d369bfce71c15b103d1fc3b464812d936220ee9bc1c8f762d032c9f6be9acc99249095b1
+ languageName: node
+ linkType: hard
+
+"@npmcli/agent@npm:^2.0.0":
+ version: 2.2.2
+ resolution: "@npmcli/agent@npm:2.2.2"
+ dependencies:
+ agent-base: "npm:^7.1.0"
+ http-proxy-agent: "npm:^7.0.0"
+ https-proxy-agent: "npm:^7.0.1"
+ lru-cache: "npm:^10.0.1"
+ socks-proxy-agent: "npm:^8.0.3"
+ checksum: 10c0/325e0db7b287d4154ecd164c0815c08007abfb07653cc57bceded17bb7fd240998a3cbdbe87d700e30bef494885eccc725ab73b668020811d56623d145b524ae
+ languageName: node
+ linkType: hard
+
+"@npmcli/fs@npm:^3.1.0":
+ version: 3.1.1
+ resolution: "@npmcli/fs@npm:3.1.1"
+ dependencies:
+ semver: "npm:^7.3.5"
+ checksum: 10c0/c37a5b4842bfdece3d14dfdb054f73fe15ed2d3da61b34ff76629fb5b1731647c49166fd2a8bf8b56fcfa51200382385ea8909a3cbecdad612310c114d3f6c99
+ languageName: node
+ linkType: hard
+
+"@parcel/watcher-android-arm64@npm:2.4.1":
+ version: 2.4.1
+ resolution: "@parcel/watcher-android-arm64@npm:2.4.1"
+ conditions: os=android & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"@parcel/watcher-darwin-arm64@npm:2.4.1":
+ version: 2.4.1
+ resolution: "@parcel/watcher-darwin-arm64@npm:2.4.1"
+ conditions: os=darwin & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"@parcel/watcher-darwin-x64@npm:2.4.1":
+ version: 2.4.1
+ resolution: "@parcel/watcher-darwin-x64@npm:2.4.1"
+ conditions: os=darwin & cpu=x64
+ languageName: node
+ linkType: hard
+
+"@parcel/watcher-freebsd-x64@npm:2.4.1":
+ version: 2.4.1
+ resolution: "@parcel/watcher-freebsd-x64@npm:2.4.1"
+ conditions: os=freebsd & cpu=x64
+ languageName: node
+ linkType: hard
+
+"@parcel/watcher-linux-arm-glibc@npm:2.4.1":
+ version: 2.4.1
+ resolution: "@parcel/watcher-linux-arm-glibc@npm:2.4.1"
+ conditions: os=linux & cpu=arm & libc=glibc
+ languageName: node
+ linkType: hard
+
+"@parcel/watcher-linux-arm64-glibc@npm:2.4.1":
+ version: 2.4.1
+ resolution: "@parcel/watcher-linux-arm64-glibc@npm:2.4.1"
+ conditions: os=linux & cpu=arm64 & libc=glibc
+ languageName: node
+ linkType: hard
+
+"@parcel/watcher-linux-arm64-musl@npm:2.4.1":
+ version: 2.4.1
+ resolution: "@parcel/watcher-linux-arm64-musl@npm:2.4.1"
+ conditions: os=linux & cpu=arm64 & libc=musl
+ languageName: node
+ linkType: hard
+
+"@parcel/watcher-linux-x64-glibc@npm:2.4.1":
+ version: 2.4.1
+ resolution: "@parcel/watcher-linux-x64-glibc@npm:2.4.1"
+ conditions: os=linux & cpu=x64 & libc=glibc
+ languageName: node
+ linkType: hard
+
+"@parcel/watcher-linux-x64-musl@npm:2.4.1":
+ version: 2.4.1
+ resolution: "@parcel/watcher-linux-x64-musl@npm:2.4.1"
+ conditions: os=linux & cpu=x64 & libc=musl
+ languageName: node
+ linkType: hard
+
+"@parcel/watcher-wasm@npm:^2.4.1":
+ version: 2.4.1
+ resolution: "@parcel/watcher-wasm@npm:2.4.1"
+ dependencies:
+ is-glob: "npm:^4.0.3"
+ micromatch: "npm:^4.0.5"
+ napi-wasm: "npm:^1.1.0"
+ checksum: 10c0/30a0d4e618c4867a5990025df56dff3a31a01f78b2d108b31e6ed7fabf123a13fd79ee292f547b572e439d272a6157c2ba9fb8e527456951c14283f872bdc16f
+ languageName: node
+ linkType: hard
+
+"@parcel/watcher-win32-arm64@npm:2.4.1":
+ version: 2.4.1
+ resolution: "@parcel/watcher-win32-arm64@npm:2.4.1"
+ conditions: os=win32 & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"@parcel/watcher-win32-ia32@npm:2.4.1":
+ version: 2.4.1
+ resolution: "@parcel/watcher-win32-ia32@npm:2.4.1"
+ conditions: os=win32 & cpu=ia32
+ languageName: node
+ linkType: hard
+
+"@parcel/watcher-win32-x64@npm:2.4.1":
+ version: 2.4.1
+ resolution: "@parcel/watcher-win32-x64@npm:2.4.1"
+ conditions: os=win32 & cpu=x64
+ languageName: node
+ linkType: hard
+
+"@parcel/watcher@npm:^2.4.1":
+ version: 2.4.1
+ resolution: "@parcel/watcher@npm:2.4.1"
+ dependencies:
+ "@parcel/watcher-android-arm64": "npm:2.4.1"
+ "@parcel/watcher-darwin-arm64": "npm:2.4.1"
+ "@parcel/watcher-darwin-x64": "npm:2.4.1"
+ "@parcel/watcher-freebsd-x64": "npm:2.4.1"
+ "@parcel/watcher-linux-arm-glibc": "npm:2.4.1"
+ "@parcel/watcher-linux-arm64-glibc": "npm:2.4.1"
+ "@parcel/watcher-linux-arm64-musl": "npm:2.4.1"
+ "@parcel/watcher-linux-x64-glibc": "npm:2.4.1"
+ "@parcel/watcher-linux-x64-musl": "npm:2.4.1"
+ "@parcel/watcher-win32-arm64": "npm:2.4.1"
+ "@parcel/watcher-win32-ia32": "npm:2.4.1"
+ "@parcel/watcher-win32-x64": "npm:2.4.1"
+ detect-libc: "npm:^1.0.3"
+ is-glob: "npm:^4.0.3"
+ micromatch: "npm:^4.0.5"
+ node-addon-api: "npm:^7.0.0"
+ node-gyp: "npm:latest"
+ dependenciesMeta:
+ "@parcel/watcher-android-arm64":
+ optional: true
+ "@parcel/watcher-darwin-arm64":
+ optional: true
+ "@parcel/watcher-darwin-x64":
+ optional: true
+ "@parcel/watcher-freebsd-x64":
+ optional: true
+ "@parcel/watcher-linux-arm-glibc":
+ optional: true
+ "@parcel/watcher-linux-arm64-glibc":
+ optional: true
+ "@parcel/watcher-linux-arm64-musl":
+ optional: true
+ "@parcel/watcher-linux-x64-glibc":
+ optional: true
+ "@parcel/watcher-linux-x64-musl":
+ optional: true
+ "@parcel/watcher-win32-arm64":
+ optional: true
+ "@parcel/watcher-win32-ia32":
+ optional: true
+ "@parcel/watcher-win32-x64":
+ optional: true
+ checksum: 10c0/33b7112094b9eb46c234d824953967435b628d3d93a0553255e9910829b84cab3da870153c3a870c31db186dc58f3b2db81382fcaee3451438aeec4d786a6211
+ languageName: node
+ linkType: hard
+
+"@pkgjs/parseargs@npm:^0.11.0":
+ version: 0.11.0
+ resolution: "@pkgjs/parseargs@npm:0.11.0"
+ checksum: 10c0/5bd7576bb1b38a47a7fc7b51ac9f38748e772beebc56200450c4a817d712232b8f1d3ef70532c80840243c657d491cf6a6be1e3a214cff907645819fdc34aadd
+ languageName: node
+ linkType: hard
+
+"@protobufjs/aspromise@npm:^1.1.1, @protobufjs/aspromise@npm:^1.1.2":
+ version: 1.1.2
+ resolution: "@protobufjs/aspromise@npm:1.1.2"
+ checksum: 10c0/a83343a468ff5b5ec6bff36fd788a64c839e48a07ff9f4f813564f58caf44d011cd6504ed2147bf34835bd7a7dd2107052af755961c6b098fd8902b4f6500d0f
+ languageName: node
+ linkType: hard
+
+"@protobufjs/base64@npm:^1.1.2":
+ version: 1.1.2
+ resolution: "@protobufjs/base64@npm:1.1.2"
+ checksum: 10c0/eec925e681081af190b8ee231f9bad3101e189abbc182ff279da6b531e7dbd2a56f1f306f37a80b1be9e00aa2d271690d08dcc5f326f71c9eed8546675c8caf6
+ languageName: node
+ linkType: hard
+
+"@protobufjs/codegen@npm:^2.0.4":
+ version: 2.0.4
+ resolution: "@protobufjs/codegen@npm:2.0.4"
+ checksum: 10c0/26ae337c5659e41f091606d16465bbcc1df1f37cc1ed462438b1f67be0c1e28dfb2ca9f294f39100c52161aef82edf758c95d6d75650a1ddf31f7ddee1440b43
+ languageName: node
+ linkType: hard
+
+"@protobufjs/eventemitter@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "@protobufjs/eventemitter@npm:1.1.0"
+ checksum: 10c0/1eb0a75180e5206d1033e4138212a8c7089a3d418c6dfa5a6ce42e593a4ae2e5892c4ef7421f38092badba4040ea6a45f0928869989411001d8c1018ea9a6e70
+ languageName: node
+ linkType: hard
+
+"@protobufjs/fetch@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "@protobufjs/fetch@npm:1.1.0"
+ dependencies:
+ "@protobufjs/aspromise": "npm:^1.1.1"
+ "@protobufjs/inquire": "npm:^1.1.0"
+ checksum: 10c0/cda6a3dc2d50a182c5865b160f72077aac197046600091dbb005dd0a66db9cce3c5eaed6d470ac8ed49d7bcbeef6ee5f0bc288db5ff9a70cbd003e5909065233
+ languageName: node
+ linkType: hard
+
+"@protobufjs/float@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "@protobufjs/float@npm:1.0.2"
+ checksum: 10c0/18f2bdede76ffcf0170708af15c9c9db6259b771e6b84c51b06df34a9c339dbbeec267d14ce0bddd20acc142b1d980d983d31434398df7f98eb0c94a0eb79069
+ languageName: node
+ linkType: hard
+
+"@protobufjs/inquire@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "@protobufjs/inquire@npm:1.1.0"
+ checksum: 10c0/64372482efcba1fb4d166a2664a6395fa978b557803857c9c03500e0ac1013eb4b1aacc9ed851dd5fc22f81583670b4f4431bae186f3373fedcfde863ef5921a
+ languageName: node
+ linkType: hard
+
+"@protobufjs/path@npm:^1.1.2":
+ version: 1.1.2
+ resolution: "@protobufjs/path@npm:1.1.2"
+ checksum: 10c0/cece0a938e7f5dfd2fa03f8c14f2f1cf8b0d6e13ac7326ff4c96ea311effd5fb7ae0bba754fbf505312af2e38500250c90e68506b97c02360a43793d88a0d8b4
+ languageName: node
+ linkType: hard
+
+"@protobufjs/pool@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "@protobufjs/pool@npm:1.1.0"
+ checksum: 10c0/eda2718b7f222ac6e6ad36f758a92ef90d26526026a19f4f17f668f45e0306a5bd734def3f48f51f8134ae0978b6262a5c517c08b115a551756d1a3aadfcf038
+ languageName: node
+ linkType: hard
+
+"@protobufjs/utf8@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "@protobufjs/utf8@npm:1.1.0"
+ checksum: 10c0/a3fe31fe3fa29aa3349e2e04ee13dc170cc6af7c23d92ad49e3eeaf79b9766264544d3da824dba93b7855bd6a2982fb40032ef40693da98a136d835752beb487
+ languageName: node
+ linkType: hard
+
+"@react-aria/breadcrumbs@npm:^3.5.15":
+ version: 3.5.15
+ resolution: "@react-aria/breadcrumbs@npm:3.5.15"
+ dependencies:
+ "@react-aria/i18n": "npm:^3.12.1"
+ "@react-aria/link": "npm:^3.7.3"
+ "@react-aria/utils": "npm:^3.25.1"
+ "@react-types/breadcrumbs": "npm:^3.7.7"
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/38d22f5d4741b156d3116431ea0b6ed8e4afc006b944ec3b8a4b87a4cfcd1e9e85423bf300ac1b808b5ef38aa5972d0d32f0c28a89ea765ad7d5c91cf51c8dd0
+ languageName: node
+ linkType: hard
+
+"@react-aria/button@npm:^3.9.7":
+ version: 3.9.7
+ resolution: "@react-aria/button@npm:3.9.7"
+ dependencies:
+ "@react-aria/focus": "npm:^3.18.1"
+ "@react-aria/interactions": "npm:^3.22.1"
+ "@react-aria/utils": "npm:^3.25.1"
+ "@react-stately/toggle": "npm:^3.7.6"
+ "@react-types/button": "npm:^3.9.6"
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/c8e6893933880db28cfcd701f82b0659d0ecc1e717cf75a2fa6b7c54626a4fc966bc1d22e39a01c2cc14926d20e45d63139a8aba2da3896041c6785a145c377f
+ languageName: node
+ linkType: hard
+
+"@react-aria/calendar@npm:^3.5.10":
+ version: 3.5.10
+ resolution: "@react-aria/calendar@npm:3.5.10"
+ dependencies:
+ "@internationalized/date": "npm:^3.5.5"
+ "@react-aria/i18n": "npm:^3.12.1"
+ "@react-aria/interactions": "npm:^3.22.1"
+ "@react-aria/live-announcer": "npm:^3.3.4"
+ "@react-aria/utils": "npm:^3.25.1"
+ "@react-stately/calendar": "npm:^3.5.3"
+ "@react-types/button": "npm:^3.9.6"
+ "@react-types/calendar": "npm:^3.4.8"
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/339a4224262f93b345bd5a1c81457927fc63aac43f5651aaa46420935bbbc3536fbc6446069d08eee18535c89e100734db0fb957aafdafbe04ab7130863d9da1
+ languageName: node
+ linkType: hard
+
+"@react-aria/checkbox@npm:^3.14.5":
+ version: 3.14.5
+ resolution: "@react-aria/checkbox@npm:3.14.5"
+ dependencies:
+ "@react-aria/form": "npm:^3.0.7"
+ "@react-aria/interactions": "npm:^3.22.1"
+ "@react-aria/label": "npm:^3.7.10"
+ "@react-aria/toggle": "npm:^3.10.6"
+ "@react-aria/utils": "npm:^3.25.1"
+ "@react-stately/checkbox": "npm:^3.6.7"
+ "@react-stately/form": "npm:^3.0.5"
+ "@react-stately/toggle": "npm:^3.7.6"
+ "@react-types/checkbox": "npm:^3.8.3"
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/019b1e8063d9cf9ed229c7bbbfde5649b927daf008612cd35c038dd793dcae3a8b2de9a2758a294f5852e8bb2a82ce0b8ff1213963d4407618d7a2a1cc82f3af
+ languageName: node
+ linkType: hard
+
+"@react-aria/combobox@npm:^3.10.1":
+ version: 3.10.1
+ resolution: "@react-aria/combobox@npm:3.10.1"
+ dependencies:
+ "@react-aria/i18n": "npm:^3.12.1"
+ "@react-aria/listbox": "npm:^3.13.1"
+ "@react-aria/live-announcer": "npm:^3.3.4"
+ "@react-aria/menu": "npm:^3.15.1"
+ "@react-aria/overlays": "npm:^3.23.1"
+ "@react-aria/selection": "npm:^3.19.1"
+ "@react-aria/textfield": "npm:^3.14.7"
+ "@react-aria/utils": "npm:^3.25.1"
+ "@react-stately/collections": "npm:^3.10.9"
+ "@react-stately/combobox": "npm:^3.9.1"
+ "@react-stately/form": "npm:^3.0.5"
+ "@react-types/button": "npm:^3.9.6"
+ "@react-types/combobox": "npm:^3.12.1"
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/e5b0f7466bc6956a19ef6cc4cf923c0768885efe6588c75edcf230f656cabc5bdf5d8882e9b900287627e51f65881845ba946857bd2144f2c4449555eeae2e71
+ languageName: node
+ linkType: hard
+
+"@react-aria/datepicker@npm:^3.11.1":
+ version: 3.11.1
+ resolution: "@react-aria/datepicker@npm:3.11.1"
+ dependencies:
+ "@internationalized/date": "npm:^3.5.5"
+ "@internationalized/number": "npm:^3.5.3"
+ "@internationalized/string": "npm:^3.2.3"
+ "@react-aria/focus": "npm:^3.18.1"
+ "@react-aria/form": "npm:^3.0.7"
+ "@react-aria/i18n": "npm:^3.12.1"
+ "@react-aria/interactions": "npm:^3.22.1"
+ "@react-aria/label": "npm:^3.7.10"
+ "@react-aria/spinbutton": "npm:^3.6.7"
+ "@react-aria/utils": "npm:^3.25.1"
+ "@react-stately/datepicker": "npm:^3.10.1"
+ "@react-stately/form": "npm:^3.0.5"
+ "@react-types/button": "npm:^3.9.6"
+ "@react-types/calendar": "npm:^3.4.8"
+ "@react-types/datepicker": "npm:^3.8.1"
+ "@react-types/dialog": "npm:^3.5.12"
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/ed171f4a8a424248094a0af2ed7b8c181e5830413d1f66dd3547f41efa74c725e3fac38cc8d01409640ff8aabfb1d361d7948b394739fc4ce9b17d98eb5c0100
+ languageName: node
+ linkType: hard
+
+"@react-aria/dialog@npm:^3.5.16":
+ version: 3.5.16
+ resolution: "@react-aria/dialog@npm:3.5.16"
+ dependencies:
+ "@react-aria/focus": "npm:^3.18.1"
+ "@react-aria/overlays": "npm:^3.23.1"
+ "@react-aria/utils": "npm:^3.25.1"
+ "@react-types/dialog": "npm:^3.5.12"
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/a8993610563da0fb0cd247d25daff5d2e10d531272f1d61e38547c6abeda18ca71771c826c9865cf2a8da209122551d48820cf0624c69ad12a792b2bf9c6eecc
+ languageName: node
+ linkType: hard
+
+"@react-aria/dnd@npm:^3.7.1":
+ version: 3.7.1
+ resolution: "@react-aria/dnd@npm:3.7.1"
+ dependencies:
+ "@internationalized/string": "npm:^3.2.3"
+ "@react-aria/i18n": "npm:^3.12.1"
+ "@react-aria/interactions": "npm:^3.22.1"
+ "@react-aria/live-announcer": "npm:^3.3.4"
+ "@react-aria/overlays": "npm:^3.23.1"
+ "@react-aria/utils": "npm:^3.25.1"
+ "@react-stately/dnd": "npm:^3.4.1"
+ "@react-types/button": "npm:^3.9.6"
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/288225d6a916ee64499ea7dee34aa151fbf1201f9a9982dfa3745e632016f18df502b11ab9e1599bc1082b34dcfa80e241834e82861bb6b58f3fbfedeb854ebf
+ languageName: node
+ linkType: hard
+
+"@react-aria/focus@npm:^3.18.1":
+ version: 3.18.1
+ resolution: "@react-aria/focus@npm:3.18.1"
+ dependencies:
+ "@react-aria/interactions": "npm:^3.22.1"
+ "@react-aria/utils": "npm:^3.25.1"
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ clsx: "npm:^2.0.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/e52cac0c7b61f5e78fa4e7be7dc090fb5ff028549facaf58488712574042f73f1a0dc9f2f3b96ea2c239f581049bf3b4476aad292a7c9cda378c12d02327f1c6
+ languageName: node
+ linkType: hard
+
+"@react-aria/form@npm:^3.0.7":
+ version: 3.0.7
+ resolution: "@react-aria/form@npm:3.0.7"
+ dependencies:
+ "@react-aria/interactions": "npm:^3.22.1"
+ "@react-aria/utils": "npm:^3.25.1"
+ "@react-stately/form": "npm:^3.0.5"
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/83f238854f6f3cb2ef9646d66a99965c55e56bade9ac42a0d56e9ac8354b277fefb9708d6aba2f1dbd2f47ccf8966f7ad6f386bec168db8b217c3c1511a568c6
+ languageName: node
+ linkType: hard
+
+"@react-aria/grid@npm:^3.10.1":
+ version: 3.10.1
+ resolution: "@react-aria/grid@npm:3.10.1"
+ dependencies:
+ "@react-aria/focus": "npm:^3.18.1"
+ "@react-aria/i18n": "npm:^3.12.1"
+ "@react-aria/interactions": "npm:^3.22.1"
+ "@react-aria/live-announcer": "npm:^3.3.4"
+ "@react-aria/selection": "npm:^3.19.1"
+ "@react-aria/utils": "npm:^3.25.1"
+ "@react-stately/collections": "npm:^3.10.9"
+ "@react-stately/grid": "npm:^3.9.1"
+ "@react-stately/selection": "npm:^3.16.1"
+ "@react-types/checkbox": "npm:^3.8.3"
+ "@react-types/grid": "npm:^3.2.8"
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/6072d42f5d8d1a98cf0b623e174348fd1d742e7a9777aec131e65588768a6d64494aaf664f94eb666c357cc15fc17e782b720343ad4cb1945c6afac3785eec69
+ languageName: node
+ linkType: hard
+
+"@react-aria/gridlist@npm:^3.9.1":
+ version: 3.9.1
+ resolution: "@react-aria/gridlist@npm:3.9.1"
+ dependencies:
+ "@react-aria/focus": "npm:^3.18.1"
+ "@react-aria/grid": "npm:^3.10.1"
+ "@react-aria/i18n": "npm:^3.12.1"
+ "@react-aria/interactions": "npm:^3.22.1"
+ "@react-aria/selection": "npm:^3.19.1"
+ "@react-aria/utils": "npm:^3.25.1"
+ "@react-stately/collections": "npm:^3.10.9"
+ "@react-stately/list": "npm:^3.10.7"
+ "@react-stately/tree": "npm:^3.8.3"
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/702e7840b0f979fdf5ade22159377ea89486c2e4e5c86b293f71df8c8a36178916a84fa9397724063fbd17726bdd79992cd0a5ad25b3eec582d948f1227ad14c
+ languageName: node
+ linkType: hard
+
+"@react-aria/i18n@npm:^3.12.1":
+ version: 3.12.1
+ resolution: "@react-aria/i18n@npm:3.12.1"
+ dependencies:
+ "@internationalized/date": "npm:^3.5.5"
+ "@internationalized/message": "npm:^3.1.4"
+ "@internationalized/number": "npm:^3.5.3"
+ "@internationalized/string": "npm:^3.2.3"
+ "@react-aria/ssr": "npm:^3.9.5"
+ "@react-aria/utils": "npm:^3.25.1"
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/145d602a0f47a24fe38ba444b2b72f7917d3f6656a2e3af9c71850af44f8939f912e508b6b4d251f8b8dc6c93ead3fe4749ab7f71e756304a675f23a852eebf1
+ languageName: node
+ linkType: hard
+
+"@react-aria/interactions@npm:^3.22.1":
+ version: 3.22.1
+ resolution: "@react-aria/interactions@npm:3.22.1"
+ dependencies:
+ "@react-aria/ssr": "npm:^3.9.5"
+ "@react-aria/utils": "npm:^3.25.1"
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/d54d5398cd0e399b9752f57628b2c58c25add43c74fa785f849ffa187605a14bf0cc5754e1d8859af244cd3bb4478309fdea6e02653b5cbebfc7a66c8142e059
+ languageName: node
+ linkType: hard
+
+"@react-aria/label@npm:^3.7.10":
+ version: 3.7.10
+ resolution: "@react-aria/label@npm:3.7.10"
+ dependencies:
+ "@react-aria/utils": "npm:^3.25.1"
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/34759d487c9d93041ce582fc0e5b2e5f8418c88e81ed913ed061e160a01acf42d2556a342017fb0448799e4544c731d261925df5910178bfb70c92ea83c9e4af
+ languageName: node
+ linkType: hard
+
+"@react-aria/link@npm:^3.7.3":
+ version: 3.7.3
+ resolution: "@react-aria/link@npm:3.7.3"
+ dependencies:
+ "@react-aria/focus": "npm:^3.18.1"
+ "@react-aria/interactions": "npm:^3.22.1"
+ "@react-aria/utils": "npm:^3.25.1"
+ "@react-types/link": "npm:^3.5.7"
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/751f68003aef54c277c98c823fb0289772c4069963a909e4456acd1810fb5f41436fa6e2296cb500561f48b34b467addd94454428d10d738e108812a64b1fcee
+ languageName: node
+ linkType: hard
+
+"@react-aria/listbox@npm:^3.12.1, @react-aria/listbox@npm:^3.13.1":
+ version: 3.13.1
+ resolution: "@react-aria/listbox@npm:3.13.1"
+ dependencies:
+ "@react-aria/interactions": "npm:^3.22.1"
+ "@react-aria/label": "npm:^3.7.10"
+ "@react-aria/selection": "npm:^3.19.1"
+ "@react-aria/utils": "npm:^3.25.1"
+ "@react-stately/collections": "npm:^3.10.9"
+ "@react-stately/list": "npm:^3.10.7"
+ "@react-types/listbox": "npm:^3.5.1"
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/894aa8943bdd7b49dc374ae87caa7a3e8f6b0ae20bfa48047e86127db32e2a4057121f6209483f0e931015597e031a904593e56b2228cbc1008b22d438c3df44
+ languageName: node
+ linkType: hard
+
+"@react-aria/live-announcer@npm:^3.3.4":
+ version: 3.3.4
+ resolution: "@react-aria/live-announcer@npm:3.3.4"
+ dependencies:
+ "@swc/helpers": "npm:^0.5.0"
+ checksum: 10c0/69c86b75686a2c4108da3f959da4c5739b0130ff370468c6d8ea3aaf594315c6ac1577c5b7bdb56629073ad19852d2bef18e412fd7acfd6c390201291ac9dcf9
+ languageName: node
+ linkType: hard
+
+"@react-aria/menu@npm:^3.15.1":
+ version: 3.15.1
+ resolution: "@react-aria/menu@npm:3.15.1"
+ dependencies:
+ "@react-aria/focus": "npm:^3.18.1"
+ "@react-aria/i18n": "npm:^3.12.1"
+ "@react-aria/interactions": "npm:^3.22.1"
+ "@react-aria/overlays": "npm:^3.23.1"
+ "@react-aria/selection": "npm:^3.19.1"
+ "@react-aria/utils": "npm:^3.25.1"
+ "@react-stately/collections": "npm:^3.10.9"
+ "@react-stately/menu": "npm:^3.8.1"
+ "@react-stately/tree": "npm:^3.8.3"
+ "@react-types/button": "npm:^3.9.6"
+ "@react-types/menu": "npm:^3.9.11"
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/7e6cd5f3a7bf1fc71f71672c370a037be9052a44a54980edc8bff4ce83d01c283729b972504f4df073b087439613c49bc90d69a2bce33b03fe9df6bf247374ee
+ languageName: node
+ linkType: hard
+
+"@react-aria/meter@npm:^3.4.15":
+ version: 3.4.15
+ resolution: "@react-aria/meter@npm:3.4.15"
+ dependencies:
+ "@react-aria/progress": "npm:^3.4.15"
+ "@react-types/meter": "npm:^3.4.3"
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/104b67005613ff096155f1f2d6d1f023c0f5262affebad14f1b53c83ade2e0fd83066ff64dcd54ae132436af4832866f7d804ca8a770879243539c2946411ad5
+ languageName: node
+ linkType: hard
+
+"@react-aria/numberfield@npm:^3.11.5":
+ version: 3.11.5
+ resolution: "@react-aria/numberfield@npm:3.11.5"
+ dependencies:
+ "@react-aria/i18n": "npm:^3.12.1"
+ "@react-aria/interactions": "npm:^3.22.1"
+ "@react-aria/spinbutton": "npm:^3.6.7"
+ "@react-aria/textfield": "npm:^3.14.7"
+ "@react-aria/utils": "npm:^3.25.1"
+ "@react-stately/form": "npm:^3.0.5"
+ "@react-stately/numberfield": "npm:^3.9.5"
+ "@react-types/button": "npm:^3.9.6"
+ "@react-types/numberfield": "npm:^3.8.5"
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/71c9cbd60847b81642b65520ba226bb32beb81c8ce0d7835cb6ce87132f35809b17b556a7538fb8beefdbd3945730156327bff030983f66b0c53b50f64bfe989
+ languageName: node
+ linkType: hard
+
+"@react-aria/overlays@npm:^3.22.1, @react-aria/overlays@npm:^3.23.1":
+ version: 3.23.1
+ resolution: "@react-aria/overlays@npm:3.23.1"
+ dependencies:
+ "@react-aria/focus": "npm:^3.18.1"
+ "@react-aria/i18n": "npm:^3.12.1"
+ "@react-aria/interactions": "npm:^3.22.1"
+ "@react-aria/ssr": "npm:^3.9.5"
+ "@react-aria/utils": "npm:^3.25.1"
+ "@react-aria/visually-hidden": "npm:^3.8.14"
+ "@react-stately/overlays": "npm:^3.6.9"
+ "@react-types/button": "npm:^3.9.6"
+ "@react-types/overlays": "npm:^3.8.9"
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/3a5829a57a28071efcbb4a548d6e30e5b0ea52c831e03ef5394c0fa64625ce3b4f64b7e769653f32d0bea6bbee0ee5ad7a1e6ae87373fb861fef57b1d54ee7df
+ languageName: node
+ linkType: hard
+
+"@react-aria/progress@npm:^3.4.15":
+ version: 3.4.15
+ resolution: "@react-aria/progress@npm:3.4.15"
+ dependencies:
+ "@react-aria/i18n": "npm:^3.12.1"
+ "@react-aria/label": "npm:^3.7.10"
+ "@react-aria/utils": "npm:^3.25.1"
+ "@react-types/progress": "npm:^3.5.6"
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/cb2b130fe869333d3c014b6093c62c29372dc7d680e121552a918f7b1f08808d53371b75b41f6c431bc54a9609babd624965a00f3e4ceaf68e850294f86464e0
+ languageName: node
+ linkType: hard
+
+"@react-aria/radio@npm:^3.10.6":
+ version: 3.10.6
+ resolution: "@react-aria/radio@npm:3.10.6"
+ dependencies:
+ "@react-aria/focus": "npm:^3.18.1"
+ "@react-aria/form": "npm:^3.0.7"
+ "@react-aria/i18n": "npm:^3.12.1"
+ "@react-aria/interactions": "npm:^3.22.1"
+ "@react-aria/label": "npm:^3.7.10"
+ "@react-aria/utils": "npm:^3.25.1"
+ "@react-stately/radio": "npm:^3.10.6"
+ "@react-types/radio": "npm:^3.8.3"
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/a5e2da0453f9319314607bba16f788efbe21016b326ddcbd4721687b18db7b6999afe4ddff4bae52948650dcfea78f6ef16d0aa73fb808a27230c013ba38499c
+ languageName: node
+ linkType: hard
+
+"@react-aria/searchfield@npm:^3.7.7":
+ version: 3.7.7
+ resolution: "@react-aria/searchfield@npm:3.7.7"
+ dependencies:
+ "@react-aria/i18n": "npm:^3.12.1"
+ "@react-aria/textfield": "npm:^3.14.7"
+ "@react-aria/utils": "npm:^3.25.1"
+ "@react-stately/searchfield": "npm:^3.5.5"
+ "@react-types/button": "npm:^3.9.6"
+ "@react-types/searchfield": "npm:^3.5.7"
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/48a6b01fb939b263e2cee8299591b121e04246bd439e3a34f8d7f4acf20e5e890a862251a239d465e054662c1e9a5b316ed4ea63f19bf9abd662f6cb492b6057
+ languageName: node
+ linkType: hard
+
+"@react-aria/select@npm:^3.14.7":
+ version: 3.14.7
+ resolution: "@react-aria/select@npm:3.14.7"
+ dependencies:
+ "@react-aria/form": "npm:^3.0.7"
+ "@react-aria/i18n": "npm:^3.12.1"
+ "@react-aria/interactions": "npm:^3.22.1"
+ "@react-aria/label": "npm:^3.7.10"
+ "@react-aria/listbox": "npm:^3.13.1"
+ "@react-aria/menu": "npm:^3.15.1"
+ "@react-aria/selection": "npm:^3.19.1"
+ "@react-aria/utils": "npm:^3.25.1"
+ "@react-aria/visually-hidden": "npm:^3.8.14"
+ "@react-stately/select": "npm:^3.6.6"
+ "@react-types/button": "npm:^3.9.6"
+ "@react-types/select": "npm:^3.9.6"
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/26f302bcac13684732fc447896096abc1dade9458d7547233b036ec9633ebf946f907e0f997daa79b753ff3dc13d261ea1f38b8678d15bcdc6c82b343cb6f2ea
+ languageName: node
+ linkType: hard
+
+"@react-aria/selection@npm:^3.19.1":
+ version: 3.19.1
+ resolution: "@react-aria/selection@npm:3.19.1"
+ dependencies:
+ "@react-aria/focus": "npm:^3.18.1"
+ "@react-aria/i18n": "npm:^3.12.1"
+ "@react-aria/interactions": "npm:^3.22.1"
+ "@react-aria/utils": "npm:^3.25.1"
+ "@react-stately/selection": "npm:^3.16.1"
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/6b00810378d4e57e4cfd72af223df7772a52bf4c68fee3398f23b1e43c293c2eaca66048d1f4ef1180d80163e5f2e95cf105077e0e48cdebadfcb254d4cd47a6
+ languageName: node
+ linkType: hard
+
+"@react-aria/separator@npm:^3.4.1":
+ version: 3.4.1
+ resolution: "@react-aria/separator@npm:3.4.1"
+ dependencies:
+ "@react-aria/utils": "npm:^3.25.1"
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/a48f42b21f14d1bb20149d8b5c43a41b1bed8bdc3876609c762a891cf5158889c419ea99f08be4efb77fe76b9e5f18a86f6d7085409195c9dc0460c6daf4d17e
+ languageName: node
+ linkType: hard
+
+"@react-aria/slider@npm:^3.7.10":
+ version: 3.7.10
+ resolution: "@react-aria/slider@npm:3.7.10"
+ dependencies:
+ "@react-aria/focus": "npm:^3.18.1"
+ "@react-aria/i18n": "npm:^3.12.1"
+ "@react-aria/interactions": "npm:^3.22.1"
+ "@react-aria/label": "npm:^3.7.10"
+ "@react-aria/utils": "npm:^3.25.1"
+ "@react-stately/slider": "npm:^3.5.6"
+ "@react-types/shared": "npm:^3.24.1"
+ "@react-types/slider": "npm:^3.7.5"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/309b6a7fea5220a798712f89b5e47ec75676667252546d24d0883f630e034130fe72bc306861268cead914ee796818ebc6f59ab6ffb3a32a8cd91fc82dcef021
+ languageName: node
+ linkType: hard
+
+"@react-aria/spinbutton@npm:^3.6.7":
+ version: 3.6.7
+ resolution: "@react-aria/spinbutton@npm:3.6.7"
+ dependencies:
+ "@react-aria/i18n": "npm:^3.12.1"
+ "@react-aria/live-announcer": "npm:^3.3.4"
+ "@react-aria/utils": "npm:^3.25.1"
+ "@react-types/button": "npm:^3.9.6"
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/44238b64b267513567b1eed1c24c5696c77bb61855223a7867ad9004a070cf042a895ebcd97c2970dd52b67cebce6d74807664d97eb5d03f2cfe0dd3613b1eb3
+ languageName: node
+ linkType: hard
+
+"@react-aria/ssr@npm:^3.9.5":
+ version: 3.9.5
+ resolution: "@react-aria/ssr@npm:3.9.5"
+ dependencies:
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/e28d3e366b77c77276bd74c8d906ccccc9a5f72c00e65c82c9f35584c3bb2467513429e87facc4e6ede756a2870dddb1645073a6b9afb00b3f28f20a1b0f2d36
+ languageName: node
+ linkType: hard
+
+"@react-aria/switch@npm:^3.6.6":
+ version: 3.6.6
+ resolution: "@react-aria/switch@npm:3.6.6"
+ dependencies:
+ "@react-aria/toggle": "npm:^3.10.6"
+ "@react-stately/toggle": "npm:^3.7.6"
+ "@react-types/shared": "npm:^3.24.1"
+ "@react-types/switch": "npm:^3.5.5"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/bd83dc1b3467f58c451d8b5d7a4bd2a6cbf848e291e5487a487f8694fb182bd6213890ea8a2f15a113d04ca8f4fe4c4ec276644228e208b1bf38a105af05f2e4
+ languageName: node
+ linkType: hard
+
+"@react-aria/table@npm:^3.15.1":
+ version: 3.15.1
+ resolution: "@react-aria/table@npm:3.15.1"
+ dependencies:
+ "@react-aria/focus": "npm:^3.18.1"
+ "@react-aria/grid": "npm:^3.10.1"
+ "@react-aria/i18n": "npm:^3.12.1"
+ "@react-aria/interactions": "npm:^3.22.1"
+ "@react-aria/live-announcer": "npm:^3.3.4"
+ "@react-aria/utils": "npm:^3.25.1"
+ "@react-aria/visually-hidden": "npm:^3.8.14"
+ "@react-stately/collections": "npm:^3.10.9"
+ "@react-stately/flags": "npm:^3.0.3"
+ "@react-stately/table": "npm:^3.12.1"
+ "@react-types/checkbox": "npm:^3.8.3"
+ "@react-types/grid": "npm:^3.2.8"
+ "@react-types/shared": "npm:^3.24.1"
+ "@react-types/table": "npm:^3.10.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/5684c5de6281b34de63a0d872fe777d793d7403deeaa7645946797c75fc9e0ccc8a7be316a06e1cbf88e477f592b1a0124da4f395d0d26c16be126db93f24cd3
+ languageName: node
+ linkType: hard
+
+"@react-aria/tabs@npm:^3.9.3":
+ version: 3.9.3
+ resolution: "@react-aria/tabs@npm:3.9.3"
+ dependencies:
+ "@react-aria/focus": "npm:^3.18.1"
+ "@react-aria/i18n": "npm:^3.12.1"
+ "@react-aria/selection": "npm:^3.19.1"
+ "@react-aria/utils": "npm:^3.25.1"
+ "@react-stately/tabs": "npm:^3.6.8"
+ "@react-types/shared": "npm:^3.24.1"
+ "@react-types/tabs": "npm:^3.3.9"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/59225fc3e25709006e474dd269df673125e06528173fed777fd75337b52bbe4c5a1bc4e4f5b67f27a324c099cdcc4dea040b3f73c7ce3e77eb06e7218d9e4531
+ languageName: node
+ linkType: hard
+
+"@react-aria/tag@npm:^3.4.3":
+ version: 3.4.3
+ resolution: "@react-aria/tag@npm:3.4.3"
+ dependencies:
+ "@react-aria/gridlist": "npm:^3.9.1"
+ "@react-aria/i18n": "npm:^3.12.1"
+ "@react-aria/interactions": "npm:^3.22.1"
+ "@react-aria/label": "npm:^3.7.10"
+ "@react-aria/selection": "npm:^3.19.1"
+ "@react-aria/utils": "npm:^3.25.1"
+ "@react-stately/list": "npm:^3.10.7"
+ "@react-types/button": "npm:^3.9.6"
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/07044ab99d2866a21677b88d4ed4141e5fb327f822cad8c88b9e8ce87ad171cbddcadbec20e5260a1f5437e31bdb4d6802f0ff7703a067db9bfec77bf7ad051a
+ languageName: node
+ linkType: hard
+
+"@react-aria/textfield@npm:^3.14.7":
+ version: 3.14.7
+ resolution: "@react-aria/textfield@npm:3.14.7"
+ dependencies:
+ "@react-aria/focus": "npm:^3.18.1"
+ "@react-aria/form": "npm:^3.0.7"
+ "@react-aria/label": "npm:^3.7.10"
+ "@react-aria/utils": "npm:^3.25.1"
+ "@react-stately/form": "npm:^3.0.5"
+ "@react-stately/utils": "npm:^3.10.2"
+ "@react-types/shared": "npm:^3.24.1"
+ "@react-types/textfield": "npm:^3.9.5"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/f7805991e4593c3223f5ceee33984148575e504907b9d283b2ceef2815d6fa25c825536c71032585f873199ce62f6c28ea22db747f21b9dc970e115181024724
+ languageName: node
+ linkType: hard
+
+"@react-aria/toggle@npm:^3.10.6":
+ version: 3.10.6
+ resolution: "@react-aria/toggle@npm:3.10.6"
+ dependencies:
+ "@react-aria/focus": "npm:^3.18.1"
+ "@react-aria/interactions": "npm:^3.22.1"
+ "@react-aria/utils": "npm:^3.25.1"
+ "@react-stately/toggle": "npm:^3.7.6"
+ "@react-types/checkbox": "npm:^3.8.3"
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/80263dd0f445f48a4cff6501dd76cccef92b7552541a438b42f853cdd410196209854cc0a1b25dddf14a01d95221b7a0cd4dcfd381c4ffa26ea9c3d3b523c51b
+ languageName: node
+ linkType: hard
+
+"@react-aria/tooltip@npm:^3.7.6":
+ version: 3.7.6
+ resolution: "@react-aria/tooltip@npm:3.7.6"
+ dependencies:
+ "@react-aria/focus": "npm:^3.18.1"
+ "@react-aria/interactions": "npm:^3.22.1"
+ "@react-aria/utils": "npm:^3.25.1"
+ "@react-stately/tooltip": "npm:^3.4.11"
+ "@react-types/shared": "npm:^3.24.1"
+ "@react-types/tooltip": "npm:^3.4.11"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/6fa92ada13ce0840eef879e155eaa4155462984e2bea62150d762879d20f2085f035173566a11e61612361b9490f21bde43377206889caf40ae84b8cd7a55bf8
+ languageName: node
+ linkType: hard
+
+"@react-aria/utils@npm:^3.24.1, @react-aria/utils@npm:^3.25.1":
+ version: 3.25.1
+ resolution: "@react-aria/utils@npm:3.25.1"
+ dependencies:
+ "@react-aria/ssr": "npm:^3.9.5"
+ "@react-stately/utils": "npm:^3.10.2"
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ clsx: "npm:^2.0.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/a03638713ce7d4f415256cbd3643ef16f2cfd76839778a4ec3b232c6534bd1b4aa1ce02d77dddca57305a04a220dcf345da187e16ba4ae5b2081d73479bafb33
+ languageName: node
+ linkType: hard
+
+"@react-aria/visually-hidden@npm:^3.8.14":
+ version: 3.8.14
+ resolution: "@react-aria/visually-hidden@npm:3.8.14"
+ dependencies:
+ "@react-aria/interactions": "npm:^3.22.1"
+ "@react-aria/utils": "npm:^3.25.1"
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/6ba4071afe0dc5c587dccaec263ecbe0722ec69af7e6dff1c3737702a35f599c6459946a15b7683f1ae1b80c6ada72dbae27eb45269afd1c613ad832add76fe7
+ languageName: node
+ linkType: hard
+
+"@react-icons/all-files@npm:^4.1.0":
+ version: 4.1.0
+ resolution: "@react-icons/all-files@npm:4.1.0"
+ peerDependencies:
+ react: "*"
+ checksum: 10c0/6327623b857ba2a9fdf835f2e7029feec7acdd53dc14163085789518d7e1323deb7db649b660d3bad3991285e8408238ad4d09c37b9a0ba7d2601dd74ac0ae56
+ languageName: node
+ linkType: hard
+
+"@react-stately/calendar@npm:^3.5.3":
+ version: 3.5.3
+ resolution: "@react-stately/calendar@npm:3.5.3"
+ dependencies:
+ "@internationalized/date": "npm:^3.5.5"
+ "@react-stately/utils": "npm:^3.10.2"
+ "@react-types/calendar": "npm:^3.4.8"
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/8ae73e55503ee93864eded90bdbe3155218e55de0e19f52c5419930be41634085b8f90f99e56775ddef1f3172ef03f1fa0710bb9fd3cc5155d62a4f6305fc980
+ languageName: node
+ linkType: hard
+
+"@react-stately/checkbox@npm:^3.6.7":
+ version: 3.6.7
+ resolution: "@react-stately/checkbox@npm:3.6.7"
+ dependencies:
+ "@react-stately/form": "npm:^3.0.5"
+ "@react-stately/utils": "npm:^3.10.2"
+ "@react-types/checkbox": "npm:^3.8.3"
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/e84c9e8d57631e1007e05268cd15fce84f5208fd8d2f8bc3313ac6fede36cb580f224260a98caebfb9bdb7f5e54b43758d867d7e8e45ce67b4f6656b91a20792
+ languageName: node
+ linkType: hard
+
+"@react-stately/collections@npm:^3.10.9":
+ version: 3.10.9
+ resolution: "@react-stately/collections@npm:3.10.9"
+ dependencies:
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/726fb28ee15b3c115caef3b39513b70672c9a6c6e4de88d0c13572d449e95f5bd188bc2eac0ebd147fef78b4e008eefb20149e63c37b3c9bdf126dc98a237d2b
+ languageName: node
+ linkType: hard
+
+"@react-stately/combobox@npm:^3.9.1":
+ version: 3.9.1
+ resolution: "@react-stately/combobox@npm:3.9.1"
+ dependencies:
+ "@react-stately/collections": "npm:^3.10.9"
+ "@react-stately/form": "npm:^3.0.5"
+ "@react-stately/list": "npm:^3.10.7"
+ "@react-stately/overlays": "npm:^3.6.9"
+ "@react-stately/select": "npm:^3.6.6"
+ "@react-stately/utils": "npm:^3.10.2"
+ "@react-types/combobox": "npm:^3.12.1"
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/74a160c1ee8af41a2fb329d4f885a43e2c58ed3c14d4393bd96232acf0905f447bf1e1c5e50afe9a746016aaebe0b5e93cbfcd4aec1bdee0be0dfeb1248f07c8
+ languageName: node
+ linkType: hard
+
+"@react-stately/data@npm:^3.11.6":
+ version: 3.11.6
+ resolution: "@react-stately/data@npm:3.11.6"
+ dependencies:
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/b81e229ef2ca8b0bc80a35a47695a1fbf1dd1c15f1728411e2440b398439024ce405cba963cbff267bf0a6235650f06744b719e6764fa21f6f490307c98783e1
+ languageName: node
+ linkType: hard
+
+"@react-stately/datepicker@npm:^3.10.1":
+ version: 3.10.1
+ resolution: "@react-stately/datepicker@npm:3.10.1"
+ dependencies:
+ "@internationalized/date": "npm:^3.5.5"
+ "@internationalized/string": "npm:^3.2.3"
+ "@react-stately/form": "npm:^3.0.5"
+ "@react-stately/overlays": "npm:^3.6.9"
+ "@react-stately/utils": "npm:^3.10.2"
+ "@react-types/datepicker": "npm:^3.8.1"
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/0f50b56d643517ac9353cc2a4c0e30160c086075b586107bddf1c49da5072affd654de23b521b14feef40ab4307c183ca6ee98c179344d9075fa1d36fba42153
+ languageName: node
+ linkType: hard
+
+"@react-stately/dnd@npm:^3.4.1":
+ version: 3.4.1
+ resolution: "@react-stately/dnd@npm:3.4.1"
+ dependencies:
+ "@react-stately/selection": "npm:^3.16.1"
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/7aeeb34f7dd7099635b1c08b1004ae7698af1b1cac5c1bdfbf2741aecc97d4555f8410fb01f45261dbf5f956df8b54f32c1d1083e971cae8dc51ae2f09711e1e
+ languageName: node
+ linkType: hard
+
+"@react-stately/flags@npm:^3.0.3":
+ version: 3.0.3
+ resolution: "@react-stately/flags@npm:3.0.3"
+ dependencies:
+ "@swc/helpers": "npm:^0.5.0"
+ checksum: 10c0/314a5885e2060dc56a32d1bae892af1f7644e14e66aa3ae3f6c0b1b4a6a1a8ded0e03adcea24bcfb9df3b87cd77f2139fde8a3d1098a0e3ba3604c3c8916385e
+ languageName: node
+ linkType: hard
+
+"@react-stately/form@npm:^3.0.5":
+ version: 3.0.5
+ resolution: "@react-stately/form@npm:3.0.5"
+ dependencies:
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/e85c2e4635b56b29d0aaf636e6c4d9df9c8a2877db2cfb3a0d0a4ecb4fa54f028a24a606a495152d83c8b350a97dda199c572f1413a2d49ce9dd8ebcf577a51f
+ languageName: node
+ linkType: hard
+
+"@react-stately/grid@npm:^3.9.1":
+ version: 3.9.1
+ resolution: "@react-stately/grid@npm:3.9.1"
+ dependencies:
+ "@react-stately/collections": "npm:^3.10.9"
+ "@react-stately/selection": "npm:^3.16.1"
+ "@react-types/grid": "npm:^3.2.8"
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/0a10d718062215c2c75bd27d629bf6af926e206edafaf846d97754d2d8c5a183cc1f72d83320648cfdfa5cc6ecbdeb94abff7ff0fd68f2ea7b8033ec840e3099
+ languageName: node
+ linkType: hard
+
+"@react-stately/list@npm:^3.10.7":
+ version: 3.10.7
+ resolution: "@react-stately/list@npm:3.10.7"
+ dependencies:
+ "@react-stately/collections": "npm:^3.10.9"
+ "@react-stately/selection": "npm:^3.16.1"
+ "@react-stately/utils": "npm:^3.10.2"
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/fba520082a8ff84cf1f9df20c7675366d16585fb58788c845ee3dedf3611c609c5746c1c40ce0cce45fffed2bb778eb4a26a0550006d44935dd164598e9d4f51
+ languageName: node
+ linkType: hard
+
+"@react-stately/menu@npm:^3.8.1":
+ version: 3.8.1
+ resolution: "@react-stately/menu@npm:3.8.1"
+ dependencies:
+ "@react-stately/overlays": "npm:^3.6.9"
+ "@react-types/menu": "npm:^3.9.11"
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/81c9edddcbd4554337028545700fd18b1c8b70980ff6b4d97a15c90fb8d17ecec799a9aae826f0cd340f813cc4d25a210c06c83f6754f116b27ee22b2c706546
+ languageName: node
+ linkType: hard
+
+"@react-stately/numberfield@npm:^3.9.5":
+ version: 3.9.5
+ resolution: "@react-stately/numberfield@npm:3.9.5"
+ dependencies:
+ "@internationalized/number": "npm:^3.5.3"
+ "@react-stately/form": "npm:^3.0.5"
+ "@react-stately/utils": "npm:^3.10.2"
+ "@react-types/numberfield": "npm:^3.8.5"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/75df2a78d9c2eba744f7d8bc9d57f7edd97f90152694978c4f75cb8260af0bd3d0aa3dce7f5ddbb1a1d2253e9cbb2a557218fab6e0f8ee7d200d2ddbf7422f8c
+ languageName: node
+ linkType: hard
+
+"@react-stately/overlays@npm:^3.6.9":
+ version: 3.6.9
+ resolution: "@react-stately/overlays@npm:3.6.9"
+ dependencies:
+ "@react-stately/utils": "npm:^3.10.2"
+ "@react-types/overlays": "npm:^3.8.9"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/ee8074c60257605169f649c8dde09379d5700a7284c453c7e53b9ba84442247eac170319fab5b8e7663e698560ec3cb5c8014cc9f50b0edb9fbef3ae7bec7ef5
+ languageName: node
+ linkType: hard
+
+"@react-stately/radio@npm:^3.10.6":
+ version: 3.10.6
+ resolution: "@react-stately/radio@npm:3.10.6"
+ dependencies:
+ "@react-stately/form": "npm:^3.0.5"
+ "@react-stately/utils": "npm:^3.10.2"
+ "@react-types/radio": "npm:^3.8.3"
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/762713b9d39c11deee83b8192556ae911849e67349d029f1dc547a8167bc3cc56553c5d034ae8a44637f901dad1aaf94c5186e7ed291afd56ff565def8b6676a
+ languageName: node
+ linkType: hard
+
+"@react-stately/searchfield@npm:^3.5.5":
+ version: 3.5.5
+ resolution: "@react-stately/searchfield@npm:3.5.5"
+ dependencies:
+ "@react-stately/utils": "npm:^3.10.2"
+ "@react-types/searchfield": "npm:^3.5.7"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/3d600d81bb806227d882b4f50a656fafbc7923c0bc647744827e7081b545dd905cd405262473fdf2858cf12c4eb660bd6f35e68183c34f2f22efc12234bafe5b
+ languageName: node
+ linkType: hard
+
+"@react-stately/select@npm:^3.6.6":
+ version: 3.6.6
+ resolution: "@react-stately/select@npm:3.6.6"
+ dependencies:
+ "@react-stately/form": "npm:^3.0.5"
+ "@react-stately/list": "npm:^3.10.7"
+ "@react-stately/overlays": "npm:^3.6.9"
+ "@react-types/select": "npm:^3.9.6"
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/6894b64bef84c3abc3de7711491e1696412f18521c15f16772542d7b16a1598f29d2375e0dba4cb5789212db322934cf6e47df22e78e4d96dc90412a9b9b3637
+ languageName: node
+ linkType: hard
+
+"@react-stately/selection@npm:^3.16.1":
+ version: 3.16.1
+ resolution: "@react-stately/selection@npm:3.16.1"
+ dependencies:
+ "@react-stately/collections": "npm:^3.10.9"
+ "@react-stately/utils": "npm:^3.10.2"
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/d4bd18c0a565070a0390e0cd0c658fcede552fdd7714f6c19f08013633cff3cb2b1c4c18004bb5e639a4455ec05ca34932ca3a703ff439f1b12c9487e7305607
+ languageName: node
+ linkType: hard
+
+"@react-stately/slider@npm:^3.5.6":
+ version: 3.5.6
+ resolution: "@react-stately/slider@npm:3.5.6"
+ dependencies:
+ "@react-stately/utils": "npm:^3.10.2"
+ "@react-types/shared": "npm:^3.24.1"
+ "@react-types/slider": "npm:^3.7.5"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/20056505c707c2667c350695fa20c7121aae317f82dda1b90bb711f34fcc7e5a63c39e6b0626efc49bca6658b3fd90996bba3f8bc3a9c959f8037ee1c0371264
+ languageName: node
+ linkType: hard
+
+"@react-stately/table@npm:^3.12.1":
+ version: 3.12.1
+ resolution: "@react-stately/table@npm:3.12.1"
+ dependencies:
+ "@react-stately/collections": "npm:^3.10.9"
+ "@react-stately/flags": "npm:^3.0.3"
+ "@react-stately/grid": "npm:^3.9.1"
+ "@react-stately/selection": "npm:^3.16.1"
+ "@react-stately/utils": "npm:^3.10.2"
+ "@react-types/grid": "npm:^3.2.8"
+ "@react-types/shared": "npm:^3.24.1"
+ "@react-types/table": "npm:^3.10.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/4d2922c976add176c14d01caa2adada27f4244f310e84205b3c35879b8db7edde93cb9ee0bb633485111aa2484659966c26b8bd724b23afcf02d0ea8f7a13110
+ languageName: node
+ linkType: hard
+
+"@react-stately/tabs@npm:^3.6.8":
+ version: 3.6.8
+ resolution: "@react-stately/tabs@npm:3.6.8"
+ dependencies:
+ "@react-stately/list": "npm:^3.10.7"
+ "@react-types/shared": "npm:^3.24.1"
+ "@react-types/tabs": "npm:^3.3.9"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/45e353bf2aaa248640f10a41b0ed1c98be85d4c37fb79f0cea2059824c5b761f67c7564f18af838d4498ad724e9f6f8fe59c44ffe700af5addb5b5ac1757c58c
+ languageName: node
+ linkType: hard
+
+"@react-stately/toggle@npm:^3.7.6":
+ version: 3.7.6
+ resolution: "@react-stately/toggle@npm:3.7.6"
+ dependencies:
+ "@react-stately/utils": "npm:^3.10.2"
+ "@react-types/checkbox": "npm:^3.8.3"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/d79fa29ad9cc5783c31920f0cae9af5cf5c9e5b8edbb3eda827b88e30995504762be27ee891e77e61db6342880225749b8ab55b084caf3bf5ee193a411c07e51
+ languageName: node
+ linkType: hard
+
+"@react-stately/tooltip@npm:^3.4.11":
+ version: 3.4.11
+ resolution: "@react-stately/tooltip@npm:3.4.11"
+ dependencies:
+ "@react-stately/overlays": "npm:^3.6.9"
+ "@react-types/tooltip": "npm:^3.4.11"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/78be4066d582325c898784d32c4f324d0cfd4a953f05b4942ca530da22c3f6b9849888530ab382cfc02f17f204a6139536918a671339d3cf991a00a1221c4e5a
+ languageName: node
+ linkType: hard
+
+"@react-stately/tree@npm:^3.8.3":
+ version: 3.8.3
+ resolution: "@react-stately/tree@npm:3.8.3"
+ dependencies:
+ "@react-stately/collections": "npm:^3.10.9"
+ "@react-stately/selection": "npm:^3.16.1"
+ "@react-stately/utils": "npm:^3.10.2"
+ "@react-types/shared": "npm:^3.24.1"
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/6c87317309220043fefb0434d308a433a3936f864ff6eb690641e9b0d7ba065802fca7a5cfb7f26ff6c8f1789585ed100bca6b743fc173d1ad9d6f702e996488
+ languageName: node
+ linkType: hard
+
+"@react-stately/utils@npm:^3.10.2":
+ version: 3.10.2
+ resolution: "@react-stately/utils@npm:3.10.2"
+ dependencies:
+ "@swc/helpers": "npm:^0.5.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/b7cefaeaab45e700916130fbef25480245068d10272e40a18133d5fc6a187f666a2e50bf0c21cb6774060b9b2313a2ff4b188982e759b31995b87a51432c6fe1
+ languageName: node
+ linkType: hard
+
+"@react-types/breadcrumbs@npm:^3.7.7":
+ version: 3.7.7
+ resolution: "@react-types/breadcrumbs@npm:3.7.7"
+ dependencies:
+ "@react-types/link": "npm:^3.5.7"
+ "@react-types/shared": "npm:^3.24.1"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/9deaac78acfd4ccf9d821bdf3bed8701e933b1e106f9ff55ca890cb6e75eaf5e3432d631ac61f02829078305c00bc54123c82d0405511b83b171ca1f64d8e48c
+ languageName: node
+ linkType: hard
+
+"@react-types/button@npm:^3.9.6":
+ version: 3.9.6
+ resolution: "@react-types/button@npm:3.9.6"
+ dependencies:
+ "@react-types/shared": "npm:^3.24.1"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/b041a3922d8fa0a41ae4ca4f1e229b8ded70397057b1d6c6cd62e619978530c04cb283578a0c21afb83246169bfa0a71fb065071d12b58fa5d8c5e36c39abf1c
+ languageName: node
+ linkType: hard
+
+"@react-types/calendar@npm:^3.4.8":
+ version: 3.4.8
+ resolution: "@react-types/calendar@npm:3.4.8"
+ dependencies:
+ "@internationalized/date": "npm:^3.5.5"
+ "@react-types/shared": "npm:^3.24.1"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/ccecf3dece7da830c2a260bd4ee11541c241bf95ba990d051c187b727a5308d03271e5d401c2715d436c3548cf69d63894a872d0d0cad27230a2f17628c2fdc1
+ languageName: node
+ linkType: hard
+
+"@react-types/checkbox@npm:^3.8.3":
+ version: 3.8.3
+ resolution: "@react-types/checkbox@npm:3.8.3"
+ dependencies:
+ "@react-types/shared": "npm:^3.24.1"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/cc968b449857022a3b6a51ca7882ba6a7bc17a4878457c94eec93fcaf482cb02611b471c4fdb2c5060422bc6a2e6f4a10db011e48eb64bcece8d17934707cde6
+ languageName: node
+ linkType: hard
+
+"@react-types/combobox@npm:^3.12.1":
+ version: 3.12.1
+ resolution: "@react-types/combobox@npm:3.12.1"
+ dependencies:
+ "@react-types/shared": "npm:^3.24.1"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/714dde84ce0effba879744bb4ae914a13215621d8b46692b09fbe71238143067163f9d07bcf2ea252aeb893118db57ceb32994746523852dd8d216a28ce3384b
+ languageName: node
+ linkType: hard
+
+"@react-types/datepicker@npm:^3.8.1":
+ version: 3.8.1
+ resolution: "@react-types/datepicker@npm:3.8.1"
+ dependencies:
+ "@internationalized/date": "npm:^3.5.5"
+ "@react-types/calendar": "npm:^3.4.8"
+ "@react-types/overlays": "npm:^3.8.9"
+ "@react-types/shared": "npm:^3.24.1"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/4331a95b637a527217bd2fb2fdcc1ca2903653f17d53c30a2b25cb3ae2d8f382308f64cc0a7018d43d4dce3331e4c46f6ef0d0a7a36466b4839420dbad5bfafa
+ languageName: node
+ linkType: hard
+
+"@react-types/dialog@npm:^3.5.12":
+ version: 3.5.12
+ resolution: "@react-types/dialog@npm:3.5.12"
+ dependencies:
+ "@react-types/overlays": "npm:^3.8.9"
+ "@react-types/shared": "npm:^3.24.1"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/75991c5be8a28323936baa2461db4cb4dc877a9f210a9d4f11f667d7b0e1eca2f90090fbaf335bb4be71c905216286177721fd7e9ba3ae084b1a272b2e8da6cb
+ languageName: node
+ linkType: hard
+
+"@react-types/grid@npm:^3.2.8":
+ version: 3.2.8
+ resolution: "@react-types/grid@npm:3.2.8"
+ dependencies:
+ "@react-types/shared": "npm:^3.24.1"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/1c2c456f89b2984fc330f9ddacd4d45c8aaf1afbaec8444e753a84dceea4381325c07d153b28942959b369ad7667575ae9bae08bd7c11a1ee22e908dd658498c
+ languageName: node
+ linkType: hard
+
+"@react-types/link@npm:^3.5.7":
+ version: 3.5.7
+ resolution: "@react-types/link@npm:3.5.7"
+ dependencies:
+ "@react-types/shared": "npm:^3.24.1"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/cc8c526ff1fcacab28647f7355a96ba21b858444d53ff5eb236636fc88da9e3fb91e784aa5cf2d112cdbf7be8fdea5067a975be6c1c113cd7e5dc3bf4fc8499c
+ languageName: node
+ linkType: hard
+
+"@react-types/listbox@npm:^3.5.1":
+ version: 3.5.1
+ resolution: "@react-types/listbox@npm:3.5.1"
+ dependencies:
+ "@react-types/shared": "npm:^3.24.1"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/fa1d0ec7e70a4b9a2a2e379899016dd81d9172f9065f6626436ab956f166f73e0062c2c73f8122b993096d8936f8433e85d6ecebeae67b54980e571ec30d688e
+ languageName: node
+ linkType: hard
+
+"@react-types/menu@npm:^3.9.11":
+ version: 3.9.11
+ resolution: "@react-types/menu@npm:3.9.11"
+ dependencies:
+ "@react-types/overlays": "npm:^3.8.9"
+ "@react-types/shared": "npm:^3.24.1"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/e0bae8eb7c19900512a32d0d4d2909b7537c28be30cb58c9c8ff0de621828bdf14030fbe17cd8addf919844aa3d462182b2c81a0b3eba864f7144c9edbec3add
+ languageName: node
+ linkType: hard
+
+"@react-types/meter@npm:^3.4.3":
+ version: 3.4.3
+ resolution: "@react-types/meter@npm:3.4.3"
+ dependencies:
+ "@react-types/progress": "npm:^3.5.6"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/e06d845e33b6cd0d3dee783ea68927187409896db963be1b7356e6ab63f909fbb3deaed6f95ce8f2b8855cd2d4f8138b4c54a5ab7e6fb8898d324a177302e16d
+ languageName: node
+ linkType: hard
+
+"@react-types/numberfield@npm:^3.8.5":
+ version: 3.8.5
+ resolution: "@react-types/numberfield@npm:3.8.5"
+ dependencies:
+ "@react-types/shared": "npm:^3.24.1"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/842c6cbb6c68c48764b1498103b1c40e940285366a8b342c3e259c48b518e9c986d9e358e7f0f6af0aaddbb48d709681c4fd4dcd3bb9b553a5be20d7548ce068
+ languageName: node
+ linkType: hard
+
+"@react-types/overlays@npm:^3.8.9":
+ version: 3.8.9
+ resolution: "@react-types/overlays@npm:3.8.9"
+ dependencies:
+ "@react-types/shared": "npm:^3.24.1"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/8719684bd606e119f3a20db73cecf1e36e7c2d8158b996e9308495e5b78252689c459ce394a798f03ebb0c7303eac67093ce9345eb45e5bb4e1ae55451dcf4b3
+ languageName: node
+ linkType: hard
+
+"@react-types/progress@npm:^3.5.6":
+ version: 3.5.6
+ resolution: "@react-types/progress@npm:3.5.6"
+ dependencies:
+ "@react-types/shared": "npm:^3.24.1"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/dfd6e957148fef5014e3b3ca761f38ef9927dfad78bdbe194eb08fa747718903397d973170f91a4f98c6c703217996e60c76217c0601f71015c43a6332dc6aae
+ languageName: node
+ linkType: hard
+
+"@react-types/radio@npm:^3.8.3":
+ version: 3.8.3
+ resolution: "@react-types/radio@npm:3.8.3"
+ dependencies:
+ "@react-types/shared": "npm:^3.24.1"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/b110d915a11747897781bf635fc1f1b86be892f8bd01ce38e2e8e229d9ab82e46b37980540bd930e71124ccc02081d143c513440994da127f9ed2d34a75912ee
+ languageName: node
+ linkType: hard
+
+"@react-types/searchfield@npm:^3.5.7":
+ version: 3.5.7
+ resolution: "@react-types/searchfield@npm:3.5.7"
+ dependencies:
+ "@react-types/shared": "npm:^3.24.1"
+ "@react-types/textfield": "npm:^3.9.5"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/cd40e9e9227aa7ba5d664d1f7bb69b83370f89726da5d2c1f5f6d07663228e4dc8543c7efb0c1328d757221a372072db9b160cc5d2062869aa32a5efce2b188c
+ languageName: node
+ linkType: hard
+
+"@react-types/select@npm:^3.9.6":
+ version: 3.9.6
+ resolution: "@react-types/select@npm:3.9.6"
+ dependencies:
+ "@react-types/shared": "npm:^3.24.1"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/10495da46af019a1f2a5473740f4dcf84cd03c4aee9aa19dba2a8867f521efc33d4587c02ef762619c903ef8426cd887b89957efe3c91c96acd9e07a60f19af8
+ languageName: node
+ linkType: hard
+
+"@react-types/shared@npm:^3.24.1":
+ version: 3.24.1
+ resolution: "@react-types/shared@npm:3.24.1"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/34ef83cf5d945963208beb724d54468e5371fd7361024f6f42a29cdc6d4a9516aa4d82804cdecbcf01c16d82c96aacb511418d7c839e1ea4579b20411e565ed4
+ languageName: node
+ linkType: hard
+
+"@react-types/slider@npm:^3.7.5":
+ version: 3.7.5
+ resolution: "@react-types/slider@npm:3.7.5"
+ dependencies:
+ "@react-types/shared": "npm:^3.24.1"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/7566c726c2b4a0639130c4bb0730dc66bb17cacdfba39af95fbe64ef30544805ac2eb00af69d2689fc86529a0b7beea544e4c2d7f6fc91f1e3633921d0e9feff
+ languageName: node
+ linkType: hard
+
+"@react-types/switch@npm:^3.5.5":
+ version: 3.5.5
+ resolution: "@react-types/switch@npm:3.5.5"
+ dependencies:
+ "@react-types/shared": "npm:^3.24.1"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/b7d865c49d213af0048fd36d29991779021c3a6bc9a8e57eabe10f05be42b122c49fc3d2ba287bf3fd33b65fc00442905c9f3784d2524a333c931c782c55e2eb
+ languageName: node
+ linkType: hard
+
+"@react-types/table@npm:^3.10.1":
+ version: 3.10.1
+ resolution: "@react-types/table@npm:3.10.1"
+ dependencies:
+ "@react-types/grid": "npm:^3.2.8"
+ "@react-types/shared": "npm:^3.24.1"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/1f3d2390f421ed9053816ba40b41744c5168d8f3b926c29d565e5588420a133315f1d2301db16c33ffff5d0689fad014b388385fd5876a7c365873e21b02189d
+ languageName: node
+ linkType: hard
+
+"@react-types/tabs@npm:^3.3.9":
+ version: 3.3.9
+ resolution: "@react-types/tabs@npm:3.3.9"
+ dependencies:
+ "@react-types/shared": "npm:^3.24.1"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/53416d3060c911e3c1416e5fe749cffff5eca30ed1a101bb012b9c89726cea818fd1f16650230410bec0dd7d2626dc1581c53106d7a0660101174a242f6ae458
+ languageName: node
+ linkType: hard
+
+"@react-types/textfield@npm:^3.9.5":
+ version: 3.9.5
+ resolution: "@react-types/textfield@npm:3.9.5"
+ dependencies:
+ "@react-types/shared": "npm:^3.24.1"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/d8732bbd53a44d7a6af824a063ec9ad8f448b0ac50dc7f5653ace06112c64b99a7c207415db213087b26c78e80b1d9eaf022c86b3b6030bf50f9bc08e0785aab
+ languageName: node
+ linkType: hard
+
+"@react-types/tooltip@npm:^3.4.11":
+ version: 3.4.11
+ resolution: "@react-types/tooltip@npm:3.4.11"
+ dependencies:
+ "@react-types/overlays": "npm:^3.8.9"
+ "@react-types/shared": "npm:^3.24.1"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/76bfaeb25c9c06668e85e451bd527e0e15249f025a12fe4c710e8cb4d6ae2643f9fad065729646205c87b7be571c5d8baadb43ab7bc44946dc7e73402aae7f98
+ languageName: node
+ linkType: hard
+
+"@rushstack/eslint-patch@npm:^1.1.3":
+ version: 1.10.3
+ resolution: "@rushstack/eslint-patch@npm:1.10.3"
+ checksum: 10c0/ec75d23fba30fc5f3303109181ce81a686f7b5660b6e06d454cd7b74a635bd68d5b28300ddd6e2a53b6cb10a876246e952e12fa058af32b2fa29b73744f00521
+ languageName: node
+ linkType: hard
+
+"@stablelib/aead@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "@stablelib/aead@npm:1.0.1"
+ checksum: 10c0/8ec16795a6f94264f93514661e024c5b0434d75000ea133923c57f0db30eab8ddc74fa35f5ff1ae4886803a8b92e169b828512c9e6bc02c818688d0f5b9f5aef
+ languageName: node
+ linkType: hard
+
+"@stablelib/binary@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "@stablelib/binary@npm:1.0.1"
+ dependencies:
+ "@stablelib/int": "npm:^1.0.1"
+ checksum: 10c0/154cb558d8b7c20ca5dc2e38abca2a3716ce36429bf1b9c298939cea0929766ed954feb8a9c59245ac64c923d5d3466bb7d99f281debd3a9d561e1279b11cd35
+ languageName: node
+ linkType: hard
+
+"@stablelib/bytes@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "@stablelib/bytes@npm:1.0.1"
+ checksum: 10c0/ee99bb15dac2f4ae1aa4e7a571e76483617a441feff422442f293993bc8b2c7ef021285c98f91a043bc05fb70502457799e28ffd43a8564a17913ee5ce889237
+ languageName: node
+ linkType: hard
+
+"@stablelib/chacha20poly1305@npm:1.0.1":
+ version: 1.0.1
+ resolution: "@stablelib/chacha20poly1305@npm:1.0.1"
+ dependencies:
+ "@stablelib/aead": "npm:^1.0.1"
+ "@stablelib/binary": "npm:^1.0.1"
+ "@stablelib/chacha": "npm:^1.0.1"
+ "@stablelib/constant-time": "npm:^1.0.1"
+ "@stablelib/poly1305": "npm:^1.0.1"
+ "@stablelib/wipe": "npm:^1.0.1"
+ checksum: 10c0/fe202aa8aface111c72bc9ec099f9c36a7b1470eda9834e436bb228618a704929f095b937f04e867fe4d5c40216ff089cbfeb2eeb092ab33af39ff333eb2c1e6
+ languageName: node
+ linkType: hard
+
+"@stablelib/chacha@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "@stablelib/chacha@npm:1.0.1"
+ dependencies:
+ "@stablelib/binary": "npm:^1.0.1"
+ "@stablelib/wipe": "npm:^1.0.1"
+ checksum: 10c0/4d70b484ae89416d21504024f977f5517bf16b344b10fb98382c9e3e52fe8ca77ac65f5d6a358d8b152f2c9ffed101a1eb15ed1707cdf906e1b6624db78d2d16
+ languageName: node
+ linkType: hard
+
+"@stablelib/constant-time@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "@stablelib/constant-time@npm:1.0.1"
+ checksum: 10c0/694a282441215735a1fdfa3d06db5a28ba92423890967a154514ef28e0d0298ce7b6a2bc65ebc4273573d6669a6b601d330614747aa2e69078c1d523d7069e12
+ languageName: node
+ linkType: hard
+
+"@stablelib/ed25519@npm:^1.0.2":
+ version: 1.0.3
+ resolution: "@stablelib/ed25519@npm:1.0.3"
+ dependencies:
+ "@stablelib/random": "npm:^1.0.2"
+ "@stablelib/sha512": "npm:^1.0.1"
+ "@stablelib/wipe": "npm:^1.0.1"
+ checksum: 10c0/b4a05e3c24dabd8a9e0b5bd72dea761bfb4b5c66404308e9f0529ef898e75d6f588234920762d5372cb920d9d47811250160109f02d04b6eed53835fb6916eb9
+ languageName: node
+ linkType: hard
+
+"@stablelib/hash@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "@stablelib/hash@npm:1.0.1"
+ checksum: 10c0/58b5572a4067820b77a1606ed2d4a6dc4068c5475f68ba0918860a5f45adf60b33024a0cea9532dcd8b7345c53b3c9636a23723f5f8ae83e0c3648f91fb5b5cc
+ languageName: node
+ linkType: hard
+
+"@stablelib/hkdf@npm:1.0.1":
+ version: 1.0.1
+ resolution: "@stablelib/hkdf@npm:1.0.1"
+ dependencies:
+ "@stablelib/hash": "npm:^1.0.1"
+ "@stablelib/hmac": "npm:^1.0.1"
+ "@stablelib/wipe": "npm:^1.0.1"
+ checksum: 10c0/722d30e36afa8029fda2a9e8c65ad753deff92a234e708820f9fd39309d2494e1c035a4185f29ae8d7fbf8a74862b27128c66a1fb4bd7a792bd300190080dbe9
+ languageName: node
+ linkType: hard
+
+"@stablelib/hmac@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "@stablelib/hmac@npm:1.0.1"
+ dependencies:
+ "@stablelib/constant-time": "npm:^1.0.1"
+ "@stablelib/hash": "npm:^1.0.1"
+ "@stablelib/wipe": "npm:^1.0.1"
+ checksum: 10c0/a111d5e687966b62c81f7dbd390f13582b027edee9bd39df6474a6472e5ad89d705e735af32bae2c9280a205806649f54b5ff8c4e8c8a7b484083a35b257e9e6
+ languageName: node
+ linkType: hard
+
+"@stablelib/int@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "@stablelib/int@npm:1.0.1"
+ checksum: 10c0/e1a6a7792fc2146d65de56e4ef42e8bc385dd5157eff27019b84476f564a1a6c43413235ed0e9f7c9bb8907dbdab24679467aeb10f44c92e6b944bcd864a7ee0
+ languageName: node
+ linkType: hard
+
+"@stablelib/keyagreement@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "@stablelib/keyagreement@npm:1.0.1"
+ dependencies:
+ "@stablelib/bytes": "npm:^1.0.1"
+ checksum: 10c0/18c9e09772a058edee265c65992ec37abe4ab5118171958972e28f3bbac7f2a0afa6aaf152ec1d785452477bdab5366b3f5b750e8982ae9ad090f5fa2e5269ba
+ languageName: node
+ linkType: hard
+
+"@stablelib/poly1305@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "@stablelib/poly1305@npm:1.0.1"
+ dependencies:
+ "@stablelib/constant-time": "npm:^1.0.1"
+ "@stablelib/wipe": "npm:^1.0.1"
+ checksum: 10c0/080185ffa92f5111e6ecfeab7919368b9984c26d048b9c09a111fbc657ea62bb5dfe6b56245e1804ce692a445cc93ab6625936515fa0e7518b8f2d86feda9630
+ languageName: node
+ linkType: hard
+
+"@stablelib/random@npm:^1.0.1, @stablelib/random@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "@stablelib/random@npm:1.0.2"
+ dependencies:
+ "@stablelib/binary": "npm:^1.0.1"
+ "@stablelib/wipe": "npm:^1.0.1"
+ checksum: 10c0/ebb217cfb76db97d98ec07bd7ce03a650fa194b91f0cb12382738161adff1830f405de0e9bad22bbc352422339ff85f531873b6a874c26ea9b59cfcc7ea787e0
+ languageName: node
+ linkType: hard
+
+"@stablelib/sha256@npm:1.0.1":
+ version: 1.0.1
+ resolution: "@stablelib/sha256@npm:1.0.1"
+ dependencies:
+ "@stablelib/binary": "npm:^1.0.1"
+ "@stablelib/hash": "npm:^1.0.1"
+ "@stablelib/wipe": "npm:^1.0.1"
+ checksum: 10c0/e29ee9bc76eece4345e9155ce4bdeeb1df8652296be72bd2760523ad565e3b99dca85b81db3b75ee20b34837077eb8542ca88f153f162154c62ba1f75aecc24a
+ languageName: node
+ linkType: hard
+
+"@stablelib/sha512@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "@stablelib/sha512@npm:1.0.1"
+ dependencies:
+ "@stablelib/binary": "npm:^1.0.1"
+ "@stablelib/hash": "npm:^1.0.1"
+ "@stablelib/wipe": "npm:^1.0.1"
+ checksum: 10c0/84549070a383f4daf23d9065230eb81bc8f590c68bf5f7968f1b78901236b3bb387c14f63773dc6c3dc78e823b1c15470d2a04d398a2506391f466c16ba29b58
+ languageName: node
+ linkType: hard
+
+"@stablelib/wipe@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "@stablelib/wipe@npm:1.0.1"
+ checksum: 10c0/c5a54f769c286a5b3ecff979471dfccd4311f2e84a959908e8c0e3aa4eed1364bd9707f7b69d1384b757e62cc295c221fa27286c7f782410eb8a690f30cfd796
+ languageName: node
+ linkType: hard
+
+"@stablelib/x25519@npm:^1.0.3":
+ version: 1.0.3
+ resolution: "@stablelib/x25519@npm:1.0.3"
+ dependencies:
+ "@stablelib/keyagreement": "npm:^1.0.1"
+ "@stablelib/random": "npm:^1.0.2"
+ "@stablelib/wipe": "npm:^1.0.1"
+ checksum: 10c0/d8afe8a120923a434359d7d1c6759780426fed117a84a6c0f84d1a4878834cb4c2d7da78a1fa7cf227ce3924fdc300cd6ed6e46cf2508bf17b1545c319ab8418
+ languageName: node
+ linkType: hard
+
+"@starship-ci/cli@npm:^2.9.0":
+ version: 2.9.0
+ resolution: "@starship-ci/cli@npm:2.9.0"
+ dependencies:
+ "@starship-ci/client": "npm:^2.8.0"
+ chalk: "npm:^4.1.0"
+ deepmerge: "npm:^4.3.1"
+ inquirerer: "npm:^1.9.0"
+ js-yaml: "npm:^4.1.0"
+ minimist: "npm:^1.2.8"
+ bin:
+ starship: index.js
+ checksum: 10c0/3aca862a045a6d0a3f163b7e4b729d7f7e13666a7ea34c3b418eb47776f86ece193ed89544486fd44ade91ebadd652d41709d8e3c3b96bdb8cee0873b6a3c036
+ languageName: node
+ linkType: hard
+
+"@starship-ci/client@npm:^2.8.0":
+ version: 2.8.0
+ resolution: "@starship-ci/client@npm:2.8.0"
+ dependencies:
+ chalk: "npm:^4.1.0"
+ deepmerge: "npm:^4.3.1"
+ js-yaml: "npm:^4.1.0"
+ mkdirp: "npm:3.0.1"
+ shelljs: "npm:^0.8.5"
+ checksum: 10c0/ceb176da93674f56933aebca44c7ae09ba0d19f452eeb388a91833a607248c0bb00a1466ef574c35fcacd7c58bdd6ad7b371957b8cad1257061fcc2d221d8b7f
+ languageName: node
+ linkType: hard
+
+"@swc/helpers@npm:0.5.2":
+ version: 0.5.2
+ resolution: "@swc/helpers@npm:0.5.2"
+ dependencies:
+ tslib: "npm:^2.4.0"
+ checksum: 10c0/b6fa49bcf6c00571d0eb7837b163f8609960d4d77538160585e27ed167361e9776bd6e5eb9646ffac2fb4d43c58df9ca50dab9d96ab097e6591bc82a75fd1164
+ languageName: node
+ linkType: hard
+
+"@swc/helpers@npm:^0.5.0":
+ version: 0.5.8
+ resolution: "@swc/helpers@npm:0.5.8"
+ dependencies:
+ tslib: "npm:^2.4.0"
+ checksum: 10c0/53a52b3654edb1b22ab317feb4ab7fa805eb368082530d2835647e5d0cc497f5c3aa8e16d568df6eee301982aac532674345acbaaa45354ffb58043768d4db36
+ languageName: node
+ linkType: hard
+
+"@tanstack/match-sorter-utils@npm:^8.7.0":
+ version: 8.15.1
+ resolution: "@tanstack/match-sorter-utils@npm:8.15.1"
+ dependencies:
+ remove-accents: "npm:0.5.0"
+ checksum: 10c0/a947c280093ed0214c3b1c6d9219b1a98cd000815891cb313f2a3e8cc01505a6d3bf358ba8273556804e0580a51e110a43ececabf0eec7386450662d827b0fa9
+ languageName: node
+ linkType: hard
+
+"@tanstack/query-core@npm:4.32.0":
+ version: 4.32.0
+ resolution: "@tanstack/query-core@npm:4.32.0"
+ checksum: 10c0/e897d1d294d79f6d3d522db2d64977e71d99f5f74e22314bd0bbbf6c31df3deac5d19516fc2513be4ad1c545fd031d4355ee0a47dec7211e70e80c9cd5feb25e
+ languageName: node
+ linkType: hard
+
+"@tanstack/react-query-devtools@npm:4.32.0":
+ version: 4.32.0
+ resolution: "@tanstack/react-query-devtools@npm:4.32.0"
+ dependencies:
+ "@tanstack/match-sorter-utils": "npm:^8.7.0"
+ superjson: "npm:^1.10.0"
+ use-sync-external-store: "npm:^1.2.0"
+ peerDependencies:
+ "@tanstack/react-query": 4.32.0
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
+ react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
+ checksum: 10c0/c583365058f77b8e1199d938e4da337181b08dedd6316d25e4e65924e414aa4bf8b63072ab7fdc546bef01c4a9529368c6e30483f019999a6f2e87501bfeb8a4
+ languageName: node
+ linkType: hard
+
+"@tanstack/react-query@npm:4.32.0":
+ version: 4.32.0
+ resolution: "@tanstack/react-query@npm:4.32.0"
+ dependencies:
+ "@tanstack/query-core": "npm:4.32.0"
+ use-sync-external-store: "npm:^1.2.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
+ react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
+ react-native: "*"
+ peerDependenciesMeta:
+ react-dom:
+ optional: true
+ react-native:
+ optional: true
+ checksum: 10c0/761f0c48fba41d0296ac76d42d92128d6ca55fca261d819252753fb38988a6c1dc9442344bdccba946a8db243ebcd3f259c61ac1957933493db0605e1a0a0e77
+ languageName: node
+ linkType: hard
+
+"@tanstack/react-virtual@npm:^3.8.3":
+ version: 3.9.0
+ resolution: "@tanstack/react-virtual@npm:3.9.0"
+ dependencies:
+ "@tanstack/virtual-core": "npm:3.9.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
+ react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
+ checksum: 10c0/25b6e24d6ef7c5322d9ed8f422ac1ec6d0c18c75a0ef8d113911dd298e860f12138d6946532d1d6642a6f52b51b92de02cdb10a2c728c95e2c9bf57c650e255c
+ languageName: node
+ linkType: hard
+
+"@tanstack/virtual-core@npm:3.9.0":
+ version: 3.9.0
+ resolution: "@tanstack/virtual-core@npm:3.9.0"
+ checksum: 10c0/2c8ce40204e377808a0f5dc53b95a04710eac7832b97f61a743ee234aba894c1efdf56e55be44d57e559d71b8d47f4e18f9535091fbe0fea68cc1dc12c3b577e
+ languageName: node
+ linkType: hard
+
+"@terra-money/feather.js@npm:^1.0.8":
+ version: 1.2.1
+ resolution: "@terra-money/feather.js@npm:1.2.1"
+ dependencies:
+ "@ethersproject/bytes": "npm:^5.7.0"
+ "@terra-money/legacy.proto": "npm:@terra-money/terra.proto@^0.1.7"
+ "@terra-money/terra.proto": "npm:^4.0.3"
+ assert: "npm:^2.0.0"
+ axios: "npm:^0.27.2"
+ bech32: "npm:^2.0.0"
+ bip32: "npm:^2.0.6"
+ bip39: "npm:^3.0.3"
+ bufferutil: "npm:^4.0.3"
+ crypto-browserify: "npm:^3.12.0"
+ decimal.js: "npm:^10.2.1"
+ ethers: "npm:^5.7.2"
+ jscrypto: "npm:^1.0.1"
+ keccak256: "npm:^1.0.6"
+ long: "npm:^5.2.3"
+ readable-stream: "npm:^3.6.0"
+ secp256k1: "npm:^4.0.2"
+ tmp: "npm:^0.2.1"
+ utf-8-validate: "npm:^5.0.5"
+ ws: "npm:^7.5.9"
+ checksum: 10c0/bf1c952bf6e6531f663727c5793bfc4a9fb1a6025eed0b8f68f994bedced184a11d961a4ae42620690108171428933fc48e68ea078b53c2375b938b791eb4ff0
+ languageName: node
+ linkType: hard
+
+"@terra-money/legacy.proto@npm:@terra-money/terra.proto@^0.1.7":
+ version: 0.1.7
+ resolution: "@terra-money/terra.proto@npm:0.1.7"
+ dependencies:
+ google-protobuf: "npm:^3.17.3"
+ long: "npm:^4.0.0"
+ protobufjs: "npm:~6.11.2"
+ checksum: 10c0/3ae54002eac9b8fa7dcc90e167ca50134fd5d36549a336e1aa02c9deb6133441d755e6681a6a272e51c70e27610e1566ee5ccf1e2174f239f81b631cb7a8eead
+ languageName: node
+ linkType: hard
+
+"@terra-money/station-connector@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "@terra-money/station-connector@npm:1.1.0"
+ dependencies:
+ bech32: "npm:^2.0.0"
+ peerDependencies:
+ "@cosmjs/amino": ^0.31.0
+ "@terra-money/feather.js": ^3.0.0-beta.1
+ axios: ^0.27.2
+ checksum: 10c0/9749876044357bc0f28ceeb15a1535b8201e6fa3eb09e95c0374ecba04b87d85388a4d5c491b2a89cc3b02ad24c8fa055e69240ae937c16f5bee196416263898
+ languageName: node
+ linkType: hard
+
+"@terra-money/terra.proto@npm:3.0.5":
+ version: 3.0.5
+ resolution: "@terra-money/terra.proto@npm:3.0.5"
+ dependencies:
+ "@improbable-eng/grpc-web": "npm:^0.14.1"
+ google-protobuf: "npm:^3.17.3"
+ long: "npm:^4.0.0"
+ protobufjs: "npm:~6.11.2"
+ checksum: 10c0/f057cbf49dd8dc9effce875f2e60b7c0f17b375b160f08887a3007998584be834141f221dad642c68aac5324583f6e95d06fecc1fc8ee18374960bdd58808538
+ languageName: node
+ linkType: hard
+
+"@terra-money/terra.proto@npm:^4.0.3":
+ version: 4.0.10
+ resolution: "@terra-money/terra.proto@npm:4.0.10"
+ dependencies:
+ "@improbable-eng/grpc-web": "npm:^0.14.1"
+ browser-headers: "npm:^0.4.1"
+ google-protobuf: "npm:^3.17.3"
+ long: "npm:^4.0.0"
+ protobufjs: "npm:~6.11.2"
+ checksum: 10c0/80e701fe8ff5420c896acda16682cc8ad3aa4a317bbfcae89c5576a2ad800f349b0cb1d9bba82c1770829e083bbfbbf82ba2d6124ea06c8b64a17d386126c71e
+ languageName: node
+ linkType: hard
+
+"@terra-money/wallet-types@npm:^3.11.2":
+ version: 3.11.2
+ resolution: "@terra-money/wallet-types@npm:3.11.2"
+ peerDependencies:
+ "@terra-money/terra.js": ^3.1.6
+ checksum: 10c0/3fe1d475bb02655b4d4817dfbddf52f6ecbb87c8731a0c2077f4a5c36c88c730e9d167e802294b04fd6f25f841f68ab12f159f69164375c00dac2a9b6e6f32f5
+ languageName: node
+ linkType: hard
+
+"@types/debug@npm:^4.0.0":
+ version: 4.1.12
+ resolution: "@types/debug@npm:4.1.12"
+ dependencies:
+ "@types/ms": "npm:*"
+ checksum: 10c0/5dcd465edbb5a7f226e9a5efd1f399c6172407ef5840686b73e3608ce135eeca54ae8037dcd9f16bdb2768ac74925b820a8b9ecc588a58ca09eca6acabe33e2f
+ languageName: node
+ linkType: hard
+
+"@types/estree-jsx@npm:^1.0.0":
+ version: 1.0.5
+ resolution: "@types/estree-jsx@npm:1.0.5"
+ dependencies:
+ "@types/estree": "npm:*"
+ checksum: 10c0/07b354331516428b27a3ab99ee397547d47eb223c34053b48f84872fafb841770834b90cc1a0068398e7c7ccb15ec51ab00ec64b31dc5e3dbefd624638a35c6d
+ languageName: node
+ linkType: hard
+
+"@types/estree@npm:*, @types/estree@npm:^1.0.0":
+ version: 1.0.5
+ resolution: "@types/estree@npm:1.0.5"
+ checksum: 10c0/b3b0e334288ddb407c7b3357ca67dbee75ee22db242ca7c56fe27db4e1a31989cb8af48a84dd401deb787fe10cc6b2ab1ee82dc4783be87ededbe3d53c79c70d
+ languageName: node
+ linkType: hard
+
+"@types/hast@npm:^3.0.0":
+ version: 3.0.4
+ resolution: "@types/hast@npm:3.0.4"
+ dependencies:
+ "@types/unist": "npm:*"
+ checksum: 10c0/3249781a511b38f1d330fd1e3344eed3c4e7ea8eff82e835d35da78e637480d36fad37a78be5a7aed8465d237ad0446abc1150859d0fde395354ea634decf9f7
+ languageName: node
+ linkType: hard
+
+"@types/json5@npm:^0.0.29":
+ version: 0.0.29
+ resolution: "@types/json5@npm:0.0.29"
+ checksum: 10c0/6bf5337bc447b706bb5b4431d37686aa2ea6d07cfd6f79cc31de80170d6ff9b1c7384a9c0ccbc45b3f512bae9e9f75c2e12109806a15331dc94e8a8db6dbb4ac
+ languageName: node
+ linkType: hard
+
+"@types/long@npm:^4.0.1":
+ version: 4.0.2
+ resolution: "@types/long@npm:4.0.2"
+ checksum: 10c0/42ec66ade1f72ff9d143c5a519a65efc7c1c77be7b1ac5455c530ae9acd87baba065542f8847522af2e3ace2cc999f3ad464ef86e6b7352eece34daf88f8c924
+ languageName: node
+ linkType: hard
+
+"@types/mdast@npm:^4.0.0":
+ version: 4.0.4
+ resolution: "@types/mdast@npm:4.0.4"
+ dependencies:
+ "@types/unist": "npm:*"
+ checksum: 10c0/84f403dbe582ee508fd9c7643ac781ad8597fcbfc9ccb8d4715a2c92e4545e5772cbd0dbdf18eda65789386d81b009967fdef01b24faf6640f817287f54d9c82
+ languageName: node
+ linkType: hard
+
+"@types/ms@npm:*":
+ version: 0.7.34
+ resolution: "@types/ms@npm:0.7.34"
+ checksum: 10c0/ac80bd90012116ceb2d188fde62d96830ca847823e8ca71255616bc73991aa7d9f057b8bfab79e8ee44ffefb031ddd1bcce63ea82f9e66f7c31ec02d2d823ccc
+ languageName: node
+ linkType: hard
+
+"@types/node-gzip@npm:^1":
+ version: 1.1.3
+ resolution: "@types/node-gzip@npm:1.1.3"
+ dependencies:
+ "@types/node": "npm:*"
+ checksum: 10c0/dfb240b02a5d8e335942f847b61cd02dda38425b6083b6d7ae1c6fa70624c19faee87e82b470f5880e73d4937bf1aa8e61a06ca52700bce2a1f50e552f137011
+ languageName: node
+ linkType: hard
+
+"@types/node@npm:*":
+ version: 22.0.0
+ resolution: "@types/node@npm:22.0.0"
+ dependencies:
+ undici-types: "npm:~6.11.1"
+ checksum: 10c0/af26a8ec7266c857b0ced75dc3a93c6b65280d1fa40d1b4488c814d30831c5c752489c99ecb5698daec1376145b1a9ddd08350882dc2e07769917a5f22a460bc
+ languageName: node
+ linkType: hard
+
+"@types/node@npm:10.12.18":
+ version: 10.12.18
+ resolution: "@types/node@npm:10.12.18"
+ checksum: 10c0/7c2f966f59bff476ea9bf6bbe2d4b03d583899cb4fd7eb4d4daf49bab3475a9c68601ed8e40f57f89a860f46ab4e6c0216ad428506abac17182e888675b265f8
+ languageName: node
+ linkType: hard
+
+"@types/node@npm:18.11.9":
+ version: 18.11.9
+ resolution: "@types/node@npm:18.11.9"
+ checksum: 10c0/aeaa925406f841c41679b32def9391a9892171e977105e025050e9f66e2830b4c50d0d974a1af0077ead3337a1f3bdf49ee7e7f402ebf2e034a3f97d9d240dba
+ languageName: node
+ linkType: hard
+
+"@types/node@npm:>=13.7.0":
+ version: 20.12.4
+ resolution: "@types/node@npm:20.12.4"
+ dependencies:
+ undici-types: "npm:~5.26.4"
+ checksum: 10c0/9b142fcd839a48c348d6b9acfc753dfa4b3fb1f3e23ed67e8952bee9b2dfdaffdddfbcf0e4701557b88631591a5f9968433910027532ef847759f8682e27ffe7
+ languageName: node
+ linkType: hard
+
+"@types/prop-types@npm:*":
+ version: 15.7.12
+ resolution: "@types/prop-types@npm:15.7.12"
+ checksum: 10c0/1babcc7db6a1177779f8fde0ccc78d64d459906e6ef69a4ed4dd6339c920c2e05b074ee5a92120fe4e9d9f1a01c952f843ebd550bee2332fc2ef81d1706878f8
+ languageName: node
+ linkType: hard
+
+"@types/react-dom@npm:18.0.9":
+ version: 18.0.9
+ resolution: "@types/react-dom@npm:18.0.9"
+ dependencies:
+ "@types/react": "npm:*"
+ checksum: 10c0/1c85b0889f15631132816fba93bf3aaa7b11cd0ce6f4a825d3c863a46b1b8d0b7fcdf03d7fcdf761f4a2e38312e5f26fc9b9ba34b486ee9f160477b9103625af
+ languageName: node
+ linkType: hard
+
+"@types/react@npm:18.0.25":
+ version: 18.0.25
+ resolution: "@types/react@npm:18.0.25"
+ dependencies:
+ "@types/prop-types": "npm:*"
+ "@types/scheduler": "npm:*"
+ csstype: "npm:^3.0.2"
+ checksum: 10c0/5d30dbf46124a63ee832864bf38ce42de2e8924dc53470f14742343503a2cf1851b6b4f8b892ef661e1a670561f4c9052d782e419d314912e54626f3296e49b6
+ languageName: node
+ linkType: hard
+
+"@types/scheduler@npm:*":
+ version: 0.23.0
+ resolution: "@types/scheduler@npm:0.23.0"
+ checksum: 10c0/5cf7f2ba3732b74877559eb20b19f95fcd0a20c17dcb20e75a7ca7c7369cd455aeb2d406b3ff5a38168a9750da3bad78dd20d96d11118468b78f4959b8e56090
+ languageName: node
+ linkType: hard
+
+"@types/unist@npm:*, @types/unist@npm:^3.0.0":
+ version: 3.0.2
+ resolution: "@types/unist@npm:3.0.2"
+ checksum: 10c0/39f220ce184a773c55c18a127062bfc4d0d30c987250cd59bab544d97be6cfec93717a49ef96e81f024b575718f798d4d329eb81c452fc57d6d051af8b043ebf
+ languageName: node
+ linkType: hard
+
+"@types/unist@npm:^2.0.0":
+ version: 2.0.10
+ resolution: "@types/unist@npm:2.0.10"
+ checksum: 10c0/5f247dc2229944355209ad5c8e83cfe29419fa7f0a6d557421b1985a1500444719cc9efcc42c652b55aab63c931813c88033e0202c1ac684bcd4829d66e44731
+ languageName: node
+ linkType: hard
+
+"@typescript-eslint/parser@npm:^5.42.0":
+ version: 5.62.0
+ resolution: "@typescript-eslint/parser@npm:5.62.0"
+ dependencies:
+ "@typescript-eslint/scope-manager": "npm:5.62.0"
+ "@typescript-eslint/types": "npm:5.62.0"
+ "@typescript-eslint/typescript-estree": "npm:5.62.0"
+ debug: "npm:^4.3.4"
+ peerDependencies:
+ eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ checksum: 10c0/315194b3bf39beb9bd16c190956c46beec64b8371e18d6bb72002108b250983eb1e186a01d34b77eb4045f4941acbb243b16155fbb46881105f65e37dc9e24d4
+ languageName: node
+ linkType: hard
+
+"@typescript-eslint/scope-manager@npm:5.62.0":
+ version: 5.62.0
+ resolution: "@typescript-eslint/scope-manager@npm:5.62.0"
+ dependencies:
+ "@typescript-eslint/types": "npm:5.62.0"
+ "@typescript-eslint/visitor-keys": "npm:5.62.0"
+ checksum: 10c0/861253235576c1c5c1772d23cdce1418c2da2618a479a7de4f6114a12a7ca853011a1e530525d0931c355a8fd237b9cd828fac560f85f9623e24054fd024726f
+ languageName: node
+ linkType: hard
+
+"@typescript-eslint/types@npm:5.62.0":
+ version: 5.62.0
+ resolution: "@typescript-eslint/types@npm:5.62.0"
+ checksum: 10c0/7febd3a7f0701c0b927e094f02e82d8ee2cada2b186fcb938bc2b94ff6fbad88237afc304cbaf33e82797078bbbb1baf91475f6400912f8b64c89be79bfa4ddf
+ languageName: node
+ linkType: hard
+
+"@typescript-eslint/typescript-estree@npm:5.62.0":
+ version: 5.62.0
+ resolution: "@typescript-eslint/typescript-estree@npm:5.62.0"
+ dependencies:
+ "@typescript-eslint/types": "npm:5.62.0"
+ "@typescript-eslint/visitor-keys": "npm:5.62.0"
+ debug: "npm:^4.3.4"
+ globby: "npm:^11.1.0"
+ is-glob: "npm:^4.0.3"
+ semver: "npm:^7.3.7"
+ tsutils: "npm:^3.21.0"
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ checksum: 10c0/d7984a3e9d56897b2481940ec803cb8e7ead03df8d9cfd9797350be82ff765dfcf3cfec04e7355e1779e948da8f02bc5e11719d07a596eb1cb995c48a95e38cf
+ languageName: node
+ linkType: hard
+
+"@typescript-eslint/visitor-keys@npm:5.62.0":
+ version: 5.62.0
+ resolution: "@typescript-eslint/visitor-keys@npm:5.62.0"
+ dependencies:
+ "@typescript-eslint/types": "npm:5.62.0"
+ eslint-visitor-keys: "npm:^3.3.0"
+ checksum: 10c0/7c3b8e4148e9b94d9b7162a596a1260d7a3efc4e65199693b8025c71c4652b8042501c0bc9f57654c1e2943c26da98c0f77884a746c6ae81389fcb0b513d995d
+ languageName: node
+ linkType: hard
+
+"@ungap/structured-clone@npm:^1.0.0":
+ version: 1.2.0
+ resolution: "@ungap/structured-clone@npm:1.2.0"
+ checksum: 10c0/8209c937cb39119f44eb63cf90c0b73e7c754209a6411c707be08e50e29ee81356dca1a848a405c8bdeebfe2f5e4f831ad310ae1689eeef65e7445c090c6657d
+ languageName: node
+ linkType: hard
+
+"@vanilla-extract/css@npm:^1.15.3":
+ version: 1.15.3
+ resolution: "@vanilla-extract/css@npm:1.15.3"
+ dependencies:
+ "@emotion/hash": "npm:^0.9.0"
+ "@vanilla-extract/private": "npm:^1.0.5"
+ css-what: "npm:^6.1.0"
+ cssesc: "npm:^3.0.0"
+ csstype: "npm:^3.0.7"
+ dedent: "npm:^1.5.3"
+ deep-object-diff: "npm:^1.1.9"
+ deepmerge: "npm:^4.2.2"
+ media-query-parser: "npm:^2.0.2"
+ modern-ahocorasick: "npm:^1.0.0"
+ picocolors: "npm:^1.0.0"
+ checksum: 10c0/57c53e961bc0a273fa792c65c1b6cc6ce45d8f0d3c8b239df6ece4fbf2c58d09764ed70773bf25582e3cc6789ccce2b920c33d177ef276f63c6604c85dbc5c01
+ languageName: node
+ linkType: hard
+
+"@vanilla-extract/dynamic@npm:^2.1.1":
+ version: 2.1.1
+ resolution: "@vanilla-extract/dynamic@npm:2.1.1"
+ dependencies:
+ "@vanilla-extract/private": "npm:^1.0.5"
+ checksum: 10c0/0c353b6326e73054a5ca1cfbb02e865cd8853e88976d7f53794e91ccf3fdfcab18211ad93750927b05c8d57e3816c1e56b55a8e24ad7f616b5e627339a3d36b6
+ languageName: node
+ linkType: hard
+
+"@vanilla-extract/private@npm:^1.0.5":
+ version: 1.0.5
+ resolution: "@vanilla-extract/private@npm:1.0.5"
+ checksum: 10c0/9a5053763fc1964b68c8384afcba7abcb7d776755763fcc96fbc70f1317618368b8127088871611b7beae480f20bd05cc486a90ed3a48332a2c02293357ba819
+ languageName: node
+ linkType: hard
+
+"@vanilla-extract/recipes@npm:^0.5.3":
+ version: 0.5.3
+ resolution: "@vanilla-extract/recipes@npm:0.5.3"
+ peerDependencies:
+ "@vanilla-extract/css": ^1.0.0
+ checksum: 10c0/1a8a155c53031efeafd67e0e429bb766049a61ca1dda8dfc6144f09882ccf7058557d6a89c2454cd2726452fedd5110a55a4d89a5f1e2846d815eca095494aea
+ languageName: node
+ linkType: hard
+
+"@walletconnect/core@npm:2.12.1":
+ version: 2.12.1
+ resolution: "@walletconnect/core@npm:2.12.1"
+ dependencies:
+ "@walletconnect/heartbeat": "npm:1.2.1"
+ "@walletconnect/jsonrpc-provider": "npm:1.0.13"
+ "@walletconnect/jsonrpc-types": "npm:1.0.3"
+ "@walletconnect/jsonrpc-utils": "npm:1.0.8"
+ "@walletconnect/jsonrpc-ws-connection": "npm:1.0.14"
+ "@walletconnect/keyvaluestorage": "npm:^1.1.1"
+ "@walletconnect/logger": "npm:^2.1.0"
+ "@walletconnect/relay-api": "npm:^1.0.9"
+ "@walletconnect/relay-auth": "npm:^1.0.4"
+ "@walletconnect/safe-json": "npm:^1.0.2"
+ "@walletconnect/time": "npm:^1.0.2"
+ "@walletconnect/types": "npm:2.12.1"
+ "@walletconnect/utils": "npm:2.12.1"
+ events: "npm:^3.3.0"
+ isomorphic-unfetch: "npm:3.1.0"
+ lodash.isequal: "npm:4.5.0"
+ uint8arrays: "npm:^3.1.0"
+ checksum: 10c0/1bc872d5659fc229436e6ee620126c7d2f7e30c711dd2781fcc254a201b3b2ff3fee94a596681ac4797d023db2233904d1a679a920b11a4607a77478251d188d
+ languageName: node
+ linkType: hard
+
+"@walletconnect/environment@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "@walletconnect/environment@npm:1.0.1"
+ dependencies:
+ tslib: "npm:1.14.1"
+ checksum: 10c0/08eacce6452950a17f4209c443bd4db6bf7bddfc860593bdbd49edda9d08821696dee79e5617a954fbe90ff32c1d1f1691ef0c77455ed3e4201b328856a5e2f7
+ languageName: node
+ linkType: hard
+
+"@walletconnect/events@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "@walletconnect/events@npm:1.0.1"
+ dependencies:
+ keyvaluestorage-interface: "npm:^1.0.0"
+ tslib: "npm:1.14.1"
+ checksum: 10c0/919a97e1dacf7096aefe07af810362cfc190533a576dcfa21387295d825a3c3d5f90bedee73235b1b343f5c696f242d7bffc5ea3359d3833541349ca23f50df8
+ languageName: node
+ linkType: hard
+
+"@walletconnect/heartbeat@npm:1.2.1":
+ version: 1.2.1
+ resolution: "@walletconnect/heartbeat@npm:1.2.1"
+ dependencies:
+ "@walletconnect/events": "npm:^1.0.1"
+ "@walletconnect/time": "npm:^1.0.2"
+ tslib: "npm:1.14.1"
+ checksum: 10c0/5ad46f26dcb7b9b3227f004cd74b18741d4cd32c21825a036eb03985c67a0cf859c285bc5635401966a99129e854d72de3458ff592370575ef7e52f5dd12ebbc
+ languageName: node
+ linkType: hard
+
+"@walletconnect/jsonrpc-provider@npm:1.0.13":
+ version: 1.0.13
+ resolution: "@walletconnect/jsonrpc-provider@npm:1.0.13"
+ dependencies:
+ "@walletconnect/jsonrpc-utils": "npm:^1.0.8"
+ "@walletconnect/safe-json": "npm:^1.0.2"
+ tslib: "npm:1.14.1"
+ checksum: 10c0/9b5b2f0ce516d2ddebe2cd1a2c8ea18a6b765b0d068162caf39745c18534e264a0cc6198adb869ba8684d0efa563be30956a3b9a7cc82b80b9e263f6211e30ab
+ languageName: node
+ linkType: hard
+
+"@walletconnect/jsonrpc-types@npm:1.0.3, @walletconnect/jsonrpc-types@npm:^1.0.2, @walletconnect/jsonrpc-types@npm:^1.0.3":
+ version: 1.0.3
+ resolution: "@walletconnect/jsonrpc-types@npm:1.0.3"
+ dependencies:
+ keyvaluestorage-interface: "npm:^1.0.0"
+ tslib: "npm:1.14.1"
+ checksum: 10c0/a0fc8a88c62795bf4bf83d4e98a4e2cdd659ef70c73642582089fdf0994c54fd8050aa6cca85cfdcca6b77994e71334895e7a19649c325a8c822b059c2003884
+ languageName: node
+ linkType: hard
+
+"@walletconnect/jsonrpc-utils@npm:1.0.8, @walletconnect/jsonrpc-utils@npm:^1.0.6, @walletconnect/jsonrpc-utils@npm:^1.0.8":
+ version: 1.0.8
+ resolution: "@walletconnect/jsonrpc-utils@npm:1.0.8"
+ dependencies:
+ "@walletconnect/environment": "npm:^1.0.1"
+ "@walletconnect/jsonrpc-types": "npm:^1.0.3"
+ tslib: "npm:1.14.1"
+ checksum: 10c0/e4a6bd801cf555bca775e03d961d1fe5ad0a22838e3496adda43ab4020a73d1b38de7096c06940e51f00fccccc734cd422fe4f1f7a8682302467b9c4d2a93d5d
+ languageName: node
+ linkType: hard
+
+"@walletconnect/jsonrpc-ws-connection@npm:1.0.14":
+ version: 1.0.14
+ resolution: "@walletconnect/jsonrpc-ws-connection@npm:1.0.14"
+ dependencies:
+ "@walletconnect/jsonrpc-utils": "npm:^1.0.6"
+ "@walletconnect/safe-json": "npm:^1.0.2"
+ events: "npm:^3.3.0"
+ ws: "npm:^7.5.1"
+ checksum: 10c0/a710ecc51f8d3ed819ba6d6e53151ef274473aa8746ffdeaffaa3d4c020405bc694b0d179649fc2510a556eb4daf02f4a9e3dacef69ff95f673939bd67be649e
+ languageName: node
+ linkType: hard
+
+"@walletconnect/keyvaluestorage@npm:^1.1.1":
+ version: 1.1.1
+ resolution: "@walletconnect/keyvaluestorage@npm:1.1.1"
+ dependencies:
+ "@walletconnect/safe-json": "npm:^1.0.1"
+ idb-keyval: "npm:^6.2.1"
+ unstorage: "npm:^1.9.0"
+ peerDependencies:
+ "@react-native-async-storage/async-storage": 1.x
+ peerDependenciesMeta:
+ "@react-native-async-storage/async-storage":
+ optional: true
+ checksum: 10c0/de2ec39d09ce99370865f7d7235b93c42b3e4fd3406bdbc644329eff7faea2722618aa88ffc4ee7d20b1d6806a8331261b65568187494cbbcceeedbe79dc30e8
+ languageName: node
+ linkType: hard
+
+"@walletconnect/logger@npm:^2.0.1":
+ version: 2.0.1
+ resolution: "@walletconnect/logger@npm:2.0.1"
+ dependencies:
+ pino: "npm:7.11.0"
+ tslib: "npm:1.14.1"
+ checksum: 10c0/1778686f608f03bc8a67fb560a2694e8aef74b392811508e98cc158d1839a1bb0a0256eb2ed719c4ee17e65a11543ddc4f9059d3bdd5dddcca6359ba1bab18bd
+ languageName: node
+ linkType: hard
+
+"@walletconnect/logger@npm:^2.1.0":
+ version: 2.1.0
+ resolution: "@walletconnect/logger@npm:2.1.0"
+ dependencies:
+ "@walletconnect/safe-json": "npm:^1.0.2"
+ pino: "npm:7.11.0"
+ checksum: 10c0/3d7b4eaf3b1e95e8cc12740ef7768a2722f70d23998a4dc45422da6817829626c6d79fa3683bd8eb52c5e1091bd6b63773d7c04b1f2d1932167f38e0123b1537
+ languageName: node
+ linkType: hard
+
+"@walletconnect/relay-api@npm:^1.0.9":
+ version: 1.0.9
+ resolution: "@walletconnect/relay-api@npm:1.0.9"
+ dependencies:
+ "@walletconnect/jsonrpc-types": "npm:^1.0.2"
+ tslib: "npm:1.14.1"
+ checksum: 10c0/e5994c63619b89cae45428108857389536f3c7e43a92f324a8ef305f351cf125dcfafeb9c480f23798c162ca2cad7b8f91828bae28a84cf869c3e7ee1dcca9dd
+ languageName: node
+ linkType: hard
+
+"@walletconnect/relay-auth@npm:^1.0.4":
+ version: 1.0.4
+ resolution: "@walletconnect/relay-auth@npm:1.0.4"
+ dependencies:
+ "@stablelib/ed25519": "npm:^1.0.2"
+ "@stablelib/random": "npm:^1.0.1"
+ "@walletconnect/safe-json": "npm:^1.0.1"
+ "@walletconnect/time": "npm:^1.0.2"
+ tslib: "npm:1.14.1"
+ uint8arrays: "npm:^3.0.0"
+ checksum: 10c0/e90294ff718c5c1e49751a28916aaac45dd07d694f117052506309eb05b68cc2c72d9b302366e40d79ef952c22bd0bbea731d09633a6663b0ab8e18b4804a832
+ languageName: node
+ linkType: hard
+
+"@walletconnect/safe-json@npm:^1.0.1, @walletconnect/safe-json@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "@walletconnect/safe-json@npm:1.0.2"
+ dependencies:
+ tslib: "npm:1.14.1"
+ checksum: 10c0/8689072018c1ff7ab58eca67bd6f06b53702738d8183d67bfe6ed220aeac804e41901b8ee0fb14299e83c70093fafb90a90992202d128d53b2832bb01b591752
+ languageName: node
+ linkType: hard
+
+"@walletconnect/sign-client@npm:^2.9.0":
+ version: 2.12.1
+ resolution: "@walletconnect/sign-client@npm:2.12.1"
+ dependencies:
+ "@walletconnect/core": "npm:2.12.1"
+ "@walletconnect/events": "npm:^1.0.1"
+ "@walletconnect/heartbeat": "npm:1.2.1"
+ "@walletconnect/jsonrpc-utils": "npm:1.0.8"
+ "@walletconnect/logger": "npm:^2.0.1"
+ "@walletconnect/time": "npm:^1.0.2"
+ "@walletconnect/types": "npm:2.12.1"
+ "@walletconnect/utils": "npm:2.12.1"
+ events: "npm:^3.3.0"
+ checksum: 10c0/ccf0ea03d953c0e7b06d037f9e4c2f957cc6a0134be31e55adb308f3ee88dd91c89e53c521317ea9b1274cf80a1ae9a28d2474258ad980714e07f254efe56e55
+ languageName: node
+ linkType: hard
+
+"@walletconnect/time@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "@walletconnect/time@npm:1.0.2"
+ dependencies:
+ tslib: "npm:1.14.1"
+ checksum: 10c0/6317f93086e36daa3383cab4a8579c7d0bed665fb0f8e9016575200314e9ba5e61468f66142a7bb5b8489bb4c9250196576d90a60b6b00e0e856b5d0ab6ba474
+ languageName: node
+ linkType: hard
+
+"@walletconnect/types@npm:2.11.0":
+ version: 2.11.0
+ resolution: "@walletconnect/types@npm:2.11.0"
+ dependencies:
+ "@walletconnect/events": "npm:^1.0.1"
+ "@walletconnect/heartbeat": "npm:1.2.1"
+ "@walletconnect/jsonrpc-types": "npm:1.0.3"
+ "@walletconnect/keyvaluestorage": "npm:^1.1.1"
+ "@walletconnect/logger": "npm:^2.0.1"
+ events: "npm:^3.3.0"
+ checksum: 10c0/7fa2493d8a9c938821f5234b4d2a087f903359875925a7abea3a0640aa765886c01b4846bbe5e39923b48883f7fd92c3f4ff8e643c4c894c50e9f715b3a881d8
+ languageName: node
+ linkType: hard
+
+"@walletconnect/types@npm:2.12.1":
+ version: 2.12.1
+ resolution: "@walletconnect/types@npm:2.12.1"
+ dependencies:
+ "@walletconnect/events": "npm:^1.0.1"
+ "@walletconnect/heartbeat": "npm:1.2.1"
+ "@walletconnect/jsonrpc-types": "npm:1.0.3"
+ "@walletconnect/keyvaluestorage": "npm:^1.1.1"
+ "@walletconnect/logger": "npm:^2.0.1"
+ events: "npm:^3.3.0"
+ checksum: 10c0/c04d2f769b5a2c7e72e501a50b95ccfad9bc086643dbd036779bb66662885c312be9ed0ddc7b095e26ed666d47494c912e8b82624e6e348063b42a73ba174299
+ languageName: node
+ linkType: hard
+
+"@walletconnect/utils@npm:2.12.1, @walletconnect/utils@npm:^2.9.0":
+ version: 2.12.1
+ resolution: "@walletconnect/utils@npm:2.12.1"
+ dependencies:
+ "@stablelib/chacha20poly1305": "npm:1.0.1"
+ "@stablelib/hkdf": "npm:1.0.1"
+ "@stablelib/random": "npm:^1.0.2"
+ "@stablelib/sha256": "npm:1.0.1"
+ "@stablelib/x25519": "npm:^1.0.3"
+ "@walletconnect/relay-api": "npm:^1.0.9"
+ "@walletconnect/safe-json": "npm:^1.0.2"
+ "@walletconnect/time": "npm:^1.0.2"
+ "@walletconnect/types": "npm:2.12.1"
+ "@walletconnect/window-getters": "npm:^1.0.1"
+ "@walletconnect/window-metadata": "npm:^1.0.1"
+ detect-browser: "npm:5.3.0"
+ query-string: "npm:7.1.3"
+ uint8arrays: "npm:^3.1.0"
+ checksum: 10c0/0864afecb5bbfa736e6d390cb0e0b721cdd03a9616a6c0c93a8f381cb8f0354db658800880131e9bbcf6e5a22e819bf413e197484dce3218b677fad6da068b8e
+ languageName: node
+ linkType: hard
+
+"@walletconnect/window-getters@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "@walletconnect/window-getters@npm:1.0.1"
+ dependencies:
+ tslib: "npm:1.14.1"
+ checksum: 10c0/c3aedba77aa9274b8277c4189ec992a0a6000377e95656443b3872ca5b5fe77dd91170b1695027fc524dc20362ce89605d277569a0d9a5bedc841cdaf14c95df
+ languageName: node
+ linkType: hard
+
+"@walletconnect/window-metadata@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "@walletconnect/window-metadata@npm:1.0.1"
+ dependencies:
+ "@walletconnect/window-getters": "npm:^1.0.1"
+ tslib: "npm:1.14.1"
+ checksum: 10c0/f190e9bed77282d8ba868a4895f4d813e135f9bbecb8dd4aed988ab1b06992f78128ac19d7d073cf41d8a6a74d0c055cd725908ce0a894649fd25443ad934cf4
+ languageName: node
+ linkType: hard
+
+"@yarnpkg/lockfile@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "@yarnpkg/lockfile@npm:1.1.0"
+ checksum: 10c0/0bfa50a3d756623d1f3409bc23f225a1d069424dbc77c6fd2f14fb377390cd57ec703dc70286e081c564be9051ead9ba85d81d66a3e68eeb6eb506d4e0c0fbda
+ languageName: node
+ linkType: hard
+
+"abbrev@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "abbrev@npm:2.0.0"
+ checksum: 10c0/f742a5a107473946f426c691c08daba61a1d15942616f300b5d32fd735be88fef5cba24201757b6c407fd564555fb48c751cfa33519b2605c8a7aadd22baf372
+ languageName: node
+ linkType: hard
+
+"ace-builds@npm:1.35.0, ace-builds@npm:^1.32.8":
+ version: 1.35.0
+ resolution: "ace-builds@npm:1.35.0"
+ checksum: 10c0/f5bcde60e26718634d87aba84fee4c110fea48ba76aa0fc2d73b8c945e9626dbe95be943a0f3fdb16a4c9594d1a7b0d28979b94f73ca9c7073a8269e20e42cfb
+ languageName: node
+ linkType: hard
+
+"acorn-jsx@npm:^5.3.2":
+ version: 5.3.2
+ resolution: "acorn-jsx@npm:5.3.2"
+ peerDependencies:
+ acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
+ checksum: 10c0/4c54868fbef3b8d58927d5e33f0a4de35f59012fe7b12cf9dfbb345fb8f46607709e1c4431be869a23fb63c151033d84c4198fa9f79385cec34fcb1dd53974c1
+ languageName: node
+ linkType: hard
+
+"acorn@npm:^8.11.3, acorn@npm:^8.9.0":
+ version: 8.11.3
+ resolution: "acorn@npm:8.11.3"
+ bin:
+ acorn: bin/acorn
+ checksum: 10c0/3ff155f8812e4a746fee8ecff1f227d527c4c45655bb1fad6347c3cb58e46190598217551b1500f18542d2bbe5c87120cb6927f5a074a59166fbdd9468f0a299
+ languageName: node
+ linkType: hard
+
+"aes-js@npm:3.0.0":
+ version: 3.0.0
+ resolution: "aes-js@npm:3.0.0"
+ checksum: 10c0/87dd5b2363534b867db7cef8bc85a90c355460783744877b2db7c8be09740aac5750714f9e00902822f692662bda74cdf40e03fbb5214ffec75c2666666288b8
+ languageName: node
+ linkType: hard
+
+"agent-base@npm:^7.0.2, agent-base@npm:^7.1.0, agent-base@npm:^7.1.1":
+ version: 7.1.1
+ resolution: "agent-base@npm:7.1.1"
+ dependencies:
+ debug: "npm:^4.3.4"
+ checksum: 10c0/e59ce7bed9c63bf071a30cc471f2933862044c97fd9958967bfe22521d7a0f601ce4ed5a8c011799d0c726ca70312142ae193bbebb60f576b52be19d4a363b50
+ languageName: node
+ linkType: hard
+
+"aggregate-error@npm:^3.0.0":
+ version: 3.1.0
+ resolution: "aggregate-error@npm:3.1.0"
+ dependencies:
+ clean-stack: "npm:^2.0.0"
+ indent-string: "npm:^4.0.0"
+ checksum: 10c0/a42f67faa79e3e6687a4923050e7c9807db3848a037076f791d10e092677d65c1d2d863b7848560699f40fc0502c19f40963fb1cd1fb3d338a7423df8e45e039
+ languageName: node
+ linkType: hard
+
+"ajv@npm:^6.10.0, ajv@npm:^6.12.4":
+ version: 6.12.6
+ resolution: "ajv@npm:6.12.6"
+ dependencies:
+ fast-deep-equal: "npm:^3.1.1"
+ fast-json-stable-stringify: "npm:^2.0.0"
+ json-schema-traverse: "npm:^0.4.1"
+ uri-js: "npm:^4.2.2"
+ checksum: 10c0/41e23642cbe545889245b9d2a45854ebba51cda6c778ebced9649420d9205f2efb39cb43dbc41e358409223b1ea43303ae4839db682c848b891e4811da1a5a71
+ languageName: node
+ linkType: hard
+
+"animejs@npm:^3.2.2":
+ version: 3.2.2
+ resolution: "animejs@npm:3.2.2"
+ checksum: 10c0/f43dfcc0c743a2774e76fbfcb16a22350da7104f413d9d1b85c48128b0c078090642809deb631e21dfa0a40651111be39d9d7f694c9c1b70d8637ce8b6d63116
+ languageName: node
+ linkType: hard
+
+"ansi-regex@npm:^5.0.1":
+ version: 5.0.1
+ resolution: "ansi-regex@npm:5.0.1"
+ checksum: 10c0/9a64bb8627b434ba9327b60c027742e5d17ac69277960d041898596271d992d4d52ba7267a63ca10232e29f6107fc8a835f6ce8d719b88c5f8493f8254813737
+ languageName: node
+ linkType: hard
+
+"ansi-regex@npm:^6.0.1":
+ version: 6.0.1
+ resolution: "ansi-regex@npm:6.0.1"
+ checksum: 10c0/cbe16dbd2c6b2735d1df7976a7070dd277326434f0212f43abf6d87674095d247968209babdaad31bb00882fa68807256ba9be340eec2f1004de14ca75f52a08
+ languageName: node
+ linkType: hard
+
+"ansi-styles@npm:^4.0.0, ansi-styles@npm:^4.1.0":
+ version: 4.3.0
+ resolution: "ansi-styles@npm:4.3.0"
+ dependencies:
+ color-convert: "npm:^2.0.1"
+ checksum: 10c0/895a23929da416f2bd3de7e9cb4eabd340949328ab85ddd6e484a637d8f6820d485f53933446f5291c3b760cbc488beb8e88573dd0f9c7daf83dccc8fe81b041
+ languageName: node
+ linkType: hard
+
+"ansi-styles@npm:^6.1.0":
+ version: 6.2.1
+ resolution: "ansi-styles@npm:6.2.1"
+ checksum: 10c0/5d1ec38c123984bcedd996eac680d548f31828bd679a66db2bdf11844634dde55fec3efa9c6bb1d89056a5e79c1ac540c4c784d592ea1d25028a92227d2f2d5c
+ languageName: node
+ linkType: hard
+
+"anymatch@npm:^3.1.3, anymatch@npm:~3.1.2":
+ version: 3.1.3
+ resolution: "anymatch@npm:3.1.3"
+ dependencies:
+ normalize-path: "npm:^3.0.0"
+ picomatch: "npm:^2.0.4"
+ checksum: 10c0/57b06ae984bc32a0d22592c87384cd88fe4511b1dd7581497831c56d41939c8a001b28e7b853e1450f2bf61992dfcaa8ae2d0d161a0a90c4fb631ef07098fbac
+ languageName: node
+ linkType: hard
+
+"argparse@npm:^2.0.1":
+ version: 2.0.1
+ resolution: "argparse@npm:2.0.1"
+ checksum: 10c0/c5640c2d89045371c7cedd6a70212a04e360fd34d6edeae32f6952c63949e3525ea77dbec0289d8213a99bbaeab5abfa860b5c12cf88a2e6cf8106e90dd27a7e
+ languageName: node
+ linkType: hard
+
+"aria-query@npm:^5.3.0":
+ version: 5.3.0
+ resolution: "aria-query@npm:5.3.0"
+ dependencies:
+ dequal: "npm:^2.0.3"
+ checksum: 10c0/2bff0d4eba5852a9dd578ecf47eaef0e82cc52569b48469b0aac2db5145db0b17b7a58d9e01237706d1e14b7a1b0ac9b78e9c97027ad97679dd8f91b85da1469
+ languageName: node
+ linkType: hard
+
+"array-buffer-byte-length@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "array-buffer-byte-length@npm:1.0.1"
+ dependencies:
+ call-bind: "npm:^1.0.5"
+ is-array-buffer: "npm:^3.0.4"
+ checksum: 10c0/f5cdf54527cd18a3d2852ddf73df79efec03829e7373a8322ef5df2b4ef546fb365c19c71d6b42d641cb6bfe0f1a2f19bc0ece5b533295f86d7c3d522f228917
+ languageName: node
+ linkType: hard
+
+"array-includes@npm:^3.1.6, array-includes@npm:^3.1.7, array-includes@npm:^3.1.8":
+ version: 3.1.8
+ resolution: "array-includes@npm:3.1.8"
+ dependencies:
+ call-bind: "npm:^1.0.7"
+ define-properties: "npm:^1.2.1"
+ es-abstract: "npm:^1.23.2"
+ es-object-atoms: "npm:^1.0.0"
+ get-intrinsic: "npm:^1.2.4"
+ is-string: "npm:^1.0.7"
+ checksum: 10c0/5b1004d203e85873b96ddc493f090c9672fd6c80d7a60b798da8a14bff8a670ff95db5aafc9abc14a211943f05220dacf8ea17638ae0af1a6a47b8c0b48ce370
+ languageName: node
+ linkType: hard
+
+"array-union@npm:^2.1.0":
+ version: 2.1.0
+ resolution: "array-union@npm:2.1.0"
+ checksum: 10c0/429897e68110374f39b771ec47a7161fc6a8fc33e196857c0a396dc75df0b5f65e4d046674db764330b6bb66b39ef48dd7c53b6a2ee75cfb0681e0c1a7033962
+ languageName: node
+ linkType: hard
+
+"array.prototype.findlast@npm:^1.2.5":
+ version: 1.2.5
+ resolution: "array.prototype.findlast@npm:1.2.5"
+ dependencies:
+ call-bind: "npm:^1.0.7"
+ define-properties: "npm:^1.2.1"
+ es-abstract: "npm:^1.23.2"
+ es-errors: "npm:^1.3.0"
+ es-object-atoms: "npm:^1.0.0"
+ es-shim-unscopables: "npm:^1.0.2"
+ checksum: 10c0/ddc952b829145ab45411b9d6adcb51a8c17c76bf89c9dd64b52d5dffa65d033da8c076ed2e17091779e83bc892b9848188d7b4b33453c5565e65a92863cb2775
+ languageName: node
+ linkType: hard
+
+"array.prototype.findlastindex@npm:^1.2.3":
+ version: 1.2.5
+ resolution: "array.prototype.findlastindex@npm:1.2.5"
+ dependencies:
+ call-bind: "npm:^1.0.7"
+ define-properties: "npm:^1.2.1"
+ es-abstract: "npm:^1.23.2"
+ es-errors: "npm:^1.3.0"
+ es-object-atoms: "npm:^1.0.0"
+ es-shim-unscopables: "npm:^1.0.2"
+ checksum: 10c0/962189487728b034f3134802b421b5f39e42ee2356d13b42d2ddb0e52057ffdcc170b9524867f4f0611a6f638f4c19b31e14606e8bcbda67799e26685b195aa3
+ languageName: node
+ linkType: hard
+
+"array.prototype.flat@npm:^1.3.1, array.prototype.flat@npm:^1.3.2":
+ version: 1.3.2
+ resolution: "array.prototype.flat@npm:1.3.2"
+ dependencies:
+ call-bind: "npm:^1.0.2"
+ define-properties: "npm:^1.2.0"
+ es-abstract: "npm:^1.22.1"
+ es-shim-unscopables: "npm:^1.0.0"
+ checksum: 10c0/a578ed836a786efbb6c2db0899ae80781b476200617f65a44846cb1ed8bd8b24c8821b83703375d8af639c689497b7b07277060024b9919db94ac3e10dc8a49b
+ languageName: node
+ linkType: hard
+
+"array.prototype.flatmap@npm:^1.3.2":
+ version: 1.3.2
+ resolution: "array.prototype.flatmap@npm:1.3.2"
+ dependencies:
+ call-bind: "npm:^1.0.2"
+ define-properties: "npm:^1.2.0"
+ es-abstract: "npm:^1.22.1"
+ es-shim-unscopables: "npm:^1.0.0"
+ checksum: 10c0/67b3f1d602bb73713265145853128b1ad77cc0f9b833c7e1e056b323fbeac41a4ff1c9c99c7b9445903caea924d9ca2450578d9011913191aa88cc3c3a4b54f4
+ languageName: node
+ linkType: hard
+
+"array.prototype.toreversed@npm:^1.1.2":
+ version: 1.1.2
+ resolution: "array.prototype.toreversed@npm:1.1.2"
+ dependencies:
+ call-bind: "npm:^1.0.2"
+ define-properties: "npm:^1.2.0"
+ es-abstract: "npm:^1.22.1"
+ es-shim-unscopables: "npm:^1.0.0"
+ checksum: 10c0/2b7627ea85eae1e80ecce665a500cc0f3355ac83ee4a1a727562c7c2a1d5f1c0b4dd7b65c468ec6867207e452ba01256910a2c0b41486bfdd11acf875a7a3435
+ languageName: node
+ linkType: hard
+
+"array.prototype.tosorted@npm:^1.1.3":
+ version: 1.1.4
+ resolution: "array.prototype.tosorted@npm:1.1.4"
+ dependencies:
+ call-bind: "npm:^1.0.7"
+ define-properties: "npm:^1.2.1"
+ es-abstract: "npm:^1.23.3"
+ es-errors: "npm:^1.3.0"
+ es-shim-unscopables: "npm:^1.0.2"
+ checksum: 10c0/eb3c4c4fc0381b0bf6dba2ea4d48d367c2827a0d4236a5718d97caaccc6b78f11f4cadf090736e86301d295a6aa4967ed45568f92ced51be8cbbacd9ca410943
+ languageName: node
+ linkType: hard
+
+"arraybuffer.prototype.slice@npm:^1.0.3":
+ version: 1.0.3
+ resolution: "arraybuffer.prototype.slice@npm:1.0.3"
+ dependencies:
+ array-buffer-byte-length: "npm:^1.0.1"
+ call-bind: "npm:^1.0.5"
+ define-properties: "npm:^1.2.1"
+ es-abstract: "npm:^1.22.3"
+ es-errors: "npm:^1.2.1"
+ get-intrinsic: "npm:^1.2.3"
+ is-array-buffer: "npm:^3.0.4"
+ is-shared-array-buffer: "npm:^1.0.2"
+ checksum: 10c0/d32754045bcb2294ade881d45140a5e52bda2321b9e98fa514797b7f0d252c4c5ab0d1edb34112652c62fa6a9398def568da63a4d7544672229afea283358c36
+ languageName: node
+ linkType: hard
+
+"asn1.js@npm:^4.10.1":
+ version: 4.10.1
+ resolution: "asn1.js@npm:4.10.1"
+ dependencies:
+ bn.js: "npm:^4.0.0"
+ inherits: "npm:^2.0.1"
+ minimalistic-assert: "npm:^1.0.0"
+ checksum: 10c0/afa7f3ab9e31566c80175a75b182e5dba50589dcc738aa485be42bdd787e2a07246a4b034d481861123cbe646a7656f318f4f1cad2e9e5e808a210d5d6feaa88
+ languageName: node
+ linkType: hard
+
+"assert@npm:^2.0.0":
+ version: 2.1.0
+ resolution: "assert@npm:2.1.0"
+ dependencies:
+ call-bind: "npm:^1.0.2"
+ is-nan: "npm:^1.3.2"
+ object-is: "npm:^1.1.5"
+ object.assign: "npm:^4.1.4"
+ util: "npm:^0.12.5"
+ checksum: 10c0/7271a5da883c256a1fa690677bf1dd9d6aa882139f2bed1cd15da4f9e7459683e1da8e32a203d6cc6767e5e0f730c77a9532a87b896b4b0af0dd535f668775f0
+ languageName: node
+ linkType: hard
+
+"ast-types-flow@npm:^0.0.8":
+ version: 0.0.8
+ resolution: "ast-types-flow@npm:0.0.8"
+ checksum: 10c0/f2a0ba8055353b743c41431974521e5e852a9824870cd6fce2db0e538ac7bf4da406bbd018d109af29ff3f8f0993f6a730c9eddbd0abd031fbcb29ca75c1014e
+ languageName: node
+ linkType: hard
+
+"asynckit@npm:^0.4.0":
+ version: 0.4.0
+ resolution: "asynckit@npm:0.4.0"
+ checksum: 10c0/d73e2ddf20c4eb9337e1b3df1a0f6159481050a5de457c55b14ea2e5cb6d90bb69e004c9af54737a5ee0917fcf2c9e25de67777bbe58261847846066ba75bc9d
+ languageName: node
+ linkType: hard
+
+"atomic-sleep@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "atomic-sleep@npm:1.0.0"
+ checksum: 10c0/e329a6665512736a9bbb073e1761b4ec102f7926cce35037753146a9db9c8104f5044c1662e4a863576ce544fb8be27cd2be6bc8c1a40147d03f31eb1cfb6e8a
+ languageName: node
+ linkType: hard
+
+"attr-accept@npm:^2.2.2":
+ version: 2.2.2
+ resolution: "attr-accept@npm:2.2.2"
+ checksum: 10c0/f77c073ac9616a783f2df814a56f65f1c870193e8da6097139e30b3be84ecc19fb835b93e81315d1da4f19e80721f14e8c8075014205e00abd37b856fe030b80
+ languageName: node
+ linkType: hard
+
+"available-typed-arrays@npm:^1.0.7":
+ version: 1.0.7
+ resolution: "available-typed-arrays@npm:1.0.7"
+ dependencies:
+ possible-typed-array-names: "npm:^1.0.0"
+ checksum: 10c0/d07226ef4f87daa01bd0fe80f8f310982e345f372926da2e5296aecc25c41cab440916bbaa4c5e1034b453af3392f67df5961124e4b586df1e99793a1374bdb2
+ languageName: node
+ linkType: hard
+
+"axe-core@npm:=4.7.0":
+ version: 4.7.0
+ resolution: "axe-core@npm:4.7.0"
+ checksum: 10c0/89ac5712b5932ac7d23398b4cb5ba081c394a086e343acc68ba49c83472706e18e0799804e8388c779dcdacc465377deb29f2714241d3fbb389cf3a6b275c9ba
+ languageName: node
+ linkType: hard
+
+"axios@npm:0.27.2, axios@npm:^0.27.2":
+ version: 0.27.2
+ resolution: "axios@npm:0.27.2"
+ dependencies:
+ follow-redirects: "npm:^1.14.9"
+ form-data: "npm:^4.0.0"
+ checksum: 10c0/76d673d2a90629944b44d6f345f01e58e9174690f635115d5ffd4aca495d99bcd8f95c590d5ccb473513f5ebc1d1a6e8934580d0c57cdd0498c3a101313ef771
+ languageName: node
+ linkType: hard
+
+"axios@npm:^0.21.2":
+ version: 0.21.4
+ resolution: "axios@npm:0.21.4"
+ dependencies:
+ follow-redirects: "npm:^1.14.0"
+ checksum: 10c0/fbcff55ec68f71f02d3773d467db2fcecdf04e749826c82c2427a232f9eba63242150a05f15af9ef15818352b814257541155de0281f8fb2b7e8a5b79f7f2142
+ languageName: node
+ linkType: hard
+
+"axios@npm:^1.6.0":
+ version: 1.6.8
+ resolution: "axios@npm:1.6.8"
+ dependencies:
+ follow-redirects: "npm:^1.15.6"
+ form-data: "npm:^4.0.0"
+ proxy-from-env: "npm:^1.1.0"
+ checksum: 10c0/0f22da6f490335479a89878bc7d5a1419484fbb437b564a80c34888fc36759ae4f56ea28d55a191695e5ed327f0bad56e7ff60fb6770c14d1be6501505d47ab9
+ languageName: node
+ linkType: hard
+
+"axobject-query@npm:^3.2.1":
+ version: 3.2.1
+ resolution: "axobject-query@npm:3.2.1"
+ dependencies:
+ dequal: "npm:^2.0.3"
+ checksum: 10c0/f7debc2012e456139b57d888c223f6d3cb4b61eb104164a85e3d346273dd6ef0bc9a04b6660ca9407704a14a8e05fa6b6eb9d55f44f348c7210de7ffb350c3a7
+ languageName: node
+ linkType: hard
+
+"bail@npm:^2.0.0":
+ version: 2.0.2
+ resolution: "bail@npm:2.0.2"
+ checksum: 10c0/25cbea309ef6a1f56214187004e8f34014eb015713ea01fa5b9b7e9e776ca88d0fdffd64143ac42dc91966c915a4b7b683411b56e14929fad16153fc026ffb8b
+ languageName: node
+ linkType: hard
+
+"balanced-match@npm:^1.0.0":
+ version: 1.0.2
+ resolution: "balanced-match@npm:1.0.2"
+ checksum: 10c0/9308baf0a7e4838a82bbfd11e01b1cb0f0cf2893bc1676c27c2a8c0e70cbae1c59120c3268517a8ae7fb6376b4639ef81ca22582611dbee4ed28df945134aaee
+ languageName: node
+ linkType: hard
+
+"base-x@npm:^3.0.2":
+ version: 3.0.9
+ resolution: "base-x@npm:3.0.9"
+ dependencies:
+ safe-buffer: "npm:^5.0.1"
+ checksum: 10c0/e6bbeae30b24f748b546005affb710c5fbc8b11a83f6cd0ca999bd1ab7ad3a22e42888addc40cd145adc4edfe62fcfab4ebc91da22e4259aae441f95a77aee1a
+ languageName: node
+ linkType: hard
+
+"base64-js@npm:^1.3.0, base64-js@npm:^1.3.1":
+ version: 1.5.1
+ resolution: "base64-js@npm:1.5.1"
+ checksum: 10c0/f23823513b63173a001030fae4f2dabe283b99a9d324ade3ad3d148e218134676f1ee8568c877cd79ec1c53158dcf2d2ba527a97c606618928ba99dd930102bf
+ languageName: node
+ linkType: hard
+
+"bech32@npm:1.1.4, bech32@npm:^1.1.4":
+ version: 1.1.4
+ resolution: "bech32@npm:1.1.4"
+ checksum: 10c0/5f62ca47b8df99ace9c0e0d8deb36a919d91bf40066700aaa9920a45f86bb10eb56d537d559416fd8703aa0fb60dddb642e58f049701e7291df678b2033e5ee5
+ languageName: node
+ linkType: hard
+
+"bech32@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "bech32@npm:2.0.0"
+ checksum: 10c0/45e7cc62758c9b26c05161b4483f40ea534437cf68ef785abadc5b62a2611319b878fef4f86ddc14854f183b645917a19addebc9573ab890e19194bc8f521942
+ languageName: node
+ linkType: hard
+
+"bfs-path@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "bfs-path@npm:1.0.2"
+ checksum: 10c0/776cd5cf823d0767bab64d9c029bcf3336a5ee3a3e15f8ef9186772885fa2a3dd2bf4e3a5a5e7a96d02805a85d983a51d0aff76712a5b5c0b331db37578d0b79
+ languageName: node
+ linkType: hard
+
+"big-integer@npm:^1.6.48":
+ version: 1.6.52
+ resolution: "big-integer@npm:1.6.52"
+ checksum: 10c0/9604224b4c2ab3c43c075d92da15863077a9f59e5d4205f4e7e76acd0cd47e8d469ec5e5dba8d9b32aa233951893b29329ca56ac80c20ce094b4a647a66abae0
+ languageName: node
+ linkType: hard
+
+"big.js@npm:^5.2.2":
+ version: 5.2.2
+ resolution: "big.js@npm:5.2.2"
+ checksum: 10c0/230520f1ff920b2d2ce3e372d77a33faa4fa60d802fe01ca4ffbc321ee06023fe9a741ac02793ee778040a16b7e497f7d60c504d1c402b8fdab6f03bb785a25f
+ languageName: node
+ linkType: hard
+
+"bignumber.js@npm:9.1.2, bignumber.js@npm:^9.1.2":
+ version: 9.1.2
+ resolution: "bignumber.js@npm:9.1.2"
+ checksum: 10c0/e17786545433f3110b868725c449fa9625366a6e675cd70eb39b60938d6adbd0158cb4b3ad4f306ce817165d37e63f4aa3098ba4110db1d9a3b9f66abfbaf10d
+ languageName: node
+ linkType: hard
+
+"binary-extensions@npm:^2.0.0":
+ version: 2.3.0
+ resolution: "binary-extensions@npm:2.3.0"
+ checksum: 10c0/75a59cafc10fb12a11d510e77110c6c7ae3f4ca22463d52487709ca7f18f69d886aa387557cc9864fbdb10153d0bdb4caacabf11541f55e89ed6e18d12ece2b5
+ languageName: node
+ linkType: hard
+
+"bindings@npm:^1.3.0":
+ version: 1.5.0
+ resolution: "bindings@npm:1.5.0"
+ dependencies:
+ file-uri-to-path: "npm:1.0.0"
+ checksum: 10c0/3dab2491b4bb24124252a91e656803eac24292473e56554e35bbfe3cc1875332cfa77600c3bac7564049dc95075bf6fcc63a4609920ff2d64d0fe405fcf0d4ba
+ languageName: node
+ linkType: hard
+
+"bip32-path@npm:^0.4.2":
+ version: 0.4.2
+ resolution: "bip32-path@npm:0.4.2"
+ checksum: 10c0/7d4123a5393fc5b70a20d0997c2b5a77feb789b49bdc3485ff7db02f916acf0f8c5eccf659f3d5dff5e0b34f22f5681babba86eb9ad7fa1287daf31d69982d75
+ languageName: node
+ linkType: hard
+
+"bip32@npm:^2.0.6":
+ version: 2.0.6
+ resolution: "bip32@npm:2.0.6"
+ dependencies:
+ "@types/node": "npm:10.12.18"
+ bs58check: "npm:^2.1.1"
+ create-hash: "npm:^1.2.0"
+ create-hmac: "npm:^1.1.7"
+ tiny-secp256k1: "npm:^1.1.3"
+ typeforce: "npm:^1.11.5"
+ wif: "npm:^2.0.6"
+ checksum: 10c0/65005eec40786767842665d68ba37e9be789570516256b7419dad9cc1160a7bb0a5db51cc441ff57d10461506ae150c2dfcfb22e83076a3d566fbbd7420006c6
+ languageName: node
+ linkType: hard
+
+"bip39@npm:^3.0.3, bip39@npm:^3.1.0":
+ version: 3.1.0
+ resolution: "bip39@npm:3.1.0"
+ dependencies:
+ "@noble/hashes": "npm:^1.2.0"
+ checksum: 10c0/68f9673a0d6a851e9635f3af8a85f2a1ecef9066c76d77e6f0d58d274b5bf22a67f429da3997e07c0d2cf153a4d7321f9273e656cac0526f667575ddee28ef71
+ languageName: node
+ linkType: hard
+
+"bn.js@npm:^4.0.0, bn.js@npm:^4.1.0, bn.js@npm:^4.11.8, bn.js@npm:^4.11.9":
+ version: 4.12.0
+ resolution: "bn.js@npm:4.12.0"
+ checksum: 10c0/9736aaa317421b6b3ed038ff3d4491935a01419ac2d83ddcfebc5717385295fcfcf0c57311d90fe49926d0abbd7a9dbefdd8861e6129939177f7e67ebc645b21
+ languageName: node
+ linkType: hard
+
+"bn.js@npm:^5.0.0, bn.js@npm:^5.2.0, bn.js@npm:^5.2.1":
+ version: 5.2.1
+ resolution: "bn.js@npm:5.2.1"
+ checksum: 10c0/bed3d8bd34ec89dbcf9f20f88bd7d4a49c160fda3b561c7bb227501f974d3e435a48fb9b61bc3de304acab9215a3bda0803f7017ffb4d0016a0c3a740a283caa
+ languageName: node
+ linkType: hard
+
+"bowser@npm:2.11.0":
+ version: 2.11.0
+ resolution: "bowser@npm:2.11.0"
+ checksum: 10c0/04efeecc7927a9ec33c667fa0965dea19f4ac60b3fea60793c2e6cf06c1dcd2f7ae1dbc656f450c5f50783b1c75cf9dc173ba6f3b7db2feee01f8c4b793e1bd3
+ languageName: node
+ linkType: hard
+
+"brace-expansion@npm:^1.1.7":
+ version: 1.1.11
+ resolution: "brace-expansion@npm:1.1.11"
+ dependencies:
+ balanced-match: "npm:^1.0.0"
+ concat-map: "npm:0.0.1"
+ checksum: 10c0/695a56cd058096a7cb71fb09d9d6a7070113c7be516699ed361317aca2ec169f618e28b8af352e02ab4233fb54eb0168460a40dc320bab0034b36ab59aaad668
+ languageName: node
+ linkType: hard
+
+"brace-expansion@npm:^2.0.1":
+ version: 2.0.1
+ resolution: "brace-expansion@npm:2.0.1"
+ dependencies:
+ balanced-match: "npm:^1.0.0"
+ checksum: 10c0/b358f2fe060e2d7a87aa015979ecea07f3c37d4018f8d6deb5bd4c229ad3a0384fe6029bb76cd8be63c81e516ee52d1a0673edbe2023d53a5191732ae3c3e49f
+ languageName: node
+ linkType: hard
+
+"braces@npm:^3.0.2, braces@npm:~3.0.2":
+ version: 3.0.2
+ resolution: "braces@npm:3.0.2"
+ dependencies:
+ fill-range: "npm:^7.0.1"
+ checksum: 10c0/321b4d675791479293264019156ca322163f02dc06e3c4cab33bb15cd43d80b51efef69b0930cfde3acd63d126ebca24cd0544fa6f261e093a0fb41ab9dda381
+ languageName: node
+ linkType: hard
+
+"braces@npm:^3.0.3":
+ version: 3.0.3
+ resolution: "braces@npm:3.0.3"
+ dependencies:
+ fill-range: "npm:^7.1.1"
+ checksum: 10c0/7c6dfd30c338d2997ba77500539227b9d1f85e388a5f43220865201e407e076783d0881f2d297b9f80951b4c957fcf0b51c1d2d24227631643c3f7c284b0aa04
+ languageName: node
+ linkType: hard
+
+"brorand@npm:^1.0.1, brorand@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "brorand@npm:1.1.0"
+ checksum: 10c0/6f366d7c4990f82c366e3878492ba9a372a73163c09871e80d82fb4ae0d23f9f8924cb8a662330308206e6b3b76ba1d528b4601c9ef73c2166b440b2ea3b7571
+ languageName: node
+ linkType: hard
+
+"browser-headers@npm:^0.4.1":
+ version: 0.4.1
+ resolution: "browser-headers@npm:0.4.1"
+ checksum: 10c0/3b08864bb955b295ab3dd6ab775c7798096c2e85486571803b4070ec484de83ccceebe531a8b00d5daf4463fada5e7ca18cd1a71cc1ee0dfdbab705332318cef
+ languageName: node
+ linkType: hard
+
+"browserify-aes@npm:^1.0.4, browserify-aes@npm:^1.2.0":
+ version: 1.2.0
+ resolution: "browserify-aes@npm:1.2.0"
+ dependencies:
+ buffer-xor: "npm:^1.0.3"
+ cipher-base: "npm:^1.0.0"
+ create-hash: "npm:^1.1.0"
+ evp_bytestokey: "npm:^1.0.3"
+ inherits: "npm:^2.0.1"
+ safe-buffer: "npm:^5.0.1"
+ checksum: 10c0/967f2ae60d610b7b252a4cbb55a7a3331c78293c94b4dd9c264d384ca93354c089b3af9c0dd023534efdc74ffbc82510f7ad4399cf82bc37bc07052eea485f18
+ languageName: node
+ linkType: hard
+
+"browserify-cipher@npm:^1.0.0":
+ version: 1.0.1
+ resolution: "browserify-cipher@npm:1.0.1"
+ dependencies:
+ browserify-aes: "npm:^1.0.4"
+ browserify-des: "npm:^1.0.0"
+ evp_bytestokey: "npm:^1.0.0"
+ checksum: 10c0/aa256dcb42bc53a67168bbc94ab85d243b0a3b56109dee3b51230b7d010d9b78985ffc1fb36e145c6e4db151f888076c1cfc207baf1525d3e375cbe8187fe27d
+ languageName: node
+ linkType: hard
+
+"browserify-des@npm:^1.0.0":
+ version: 1.0.2
+ resolution: "browserify-des@npm:1.0.2"
+ dependencies:
+ cipher-base: "npm:^1.0.1"
+ des.js: "npm:^1.0.0"
+ inherits: "npm:^2.0.1"
+ safe-buffer: "npm:^5.1.2"
+ checksum: 10c0/943eb5d4045eff80a6cde5be4e5fbb1f2d5002126b5a4789c3c1aae3cdddb1eb92b00fb92277f512288e5c6af330730b1dbabcf7ce0923e749e151fcee5a074d
+ languageName: node
+ linkType: hard
+
+"browserify-rsa@npm:^4.0.0, browserify-rsa@npm:^4.1.0":
+ version: 4.1.0
+ resolution: "browserify-rsa@npm:4.1.0"
+ dependencies:
+ bn.js: "npm:^5.0.0"
+ randombytes: "npm:^2.0.1"
+ checksum: 10c0/fb2b5a8279d8a567a28d8ee03fb62e448428a906bab5c3dc9e9c3253ace551b5ea271db15e566ac78f1b1d71b243559031446604168b9235c351a32cae99d02a
+ languageName: node
+ linkType: hard
+
+"browserify-sign@npm:^4.0.0":
+ version: 4.2.3
+ resolution: "browserify-sign@npm:4.2.3"
+ dependencies:
+ bn.js: "npm:^5.2.1"
+ browserify-rsa: "npm:^4.1.0"
+ create-hash: "npm:^1.2.0"
+ create-hmac: "npm:^1.1.7"
+ elliptic: "npm:^6.5.5"
+ hash-base: "npm:~3.0"
+ inherits: "npm:^2.0.4"
+ parse-asn1: "npm:^5.1.7"
+ readable-stream: "npm:^2.3.8"
+ safe-buffer: "npm:^5.2.1"
+ checksum: 10c0/30c0eba3f5970a20866a4d3fbba2c5bd1928cd24f47faf995f913f1499214c6f3be14bb4d6ec1ab5c6cafb1eca9cb76ba1c2e1c04ed018370634d4e659c77216
+ languageName: node
+ linkType: hard
+
+"bs58@npm:^4.0.0":
+ version: 4.0.1
+ resolution: "bs58@npm:4.0.1"
+ dependencies:
+ base-x: "npm:^3.0.2"
+ checksum: 10c0/613a1b1441e754279a0e3f44d1faeb8c8e838feef81e550efe174ff021dd2e08a4c9ae5805b52dfdde79f97b5c0918c78dd24a0eb726c4a94365f0984a0ffc65
+ languageName: node
+ linkType: hard
+
+"bs58check@npm:<3.0.0, bs58check@npm:^2.1.1, bs58check@npm:^2.1.2":
+ version: 2.1.2
+ resolution: "bs58check@npm:2.1.2"
+ dependencies:
+ bs58: "npm:^4.0.0"
+ create-hash: "npm:^1.1.0"
+ safe-buffer: "npm:^5.1.2"
+ checksum: 10c0/5d33f319f0d7abbe1db786f13f4256c62a076bc8d184965444cb62ca4206b2c92bee58c93bce57150ffbbbe00c48838ac02e6f384e0da8215cac219c0556baa9
+ languageName: node
+ linkType: hard
+
+"buffer-xor@npm:^1.0.3":
+ version: 1.0.3
+ resolution: "buffer-xor@npm:1.0.3"
+ checksum: 10c0/fd269d0e0bf71ecac3146187cfc79edc9dbb054e2ee69b4d97dfb857c6d997c33de391696d04bdd669272751fa48e7872a22f3a6c7b07d6c0bc31dbe02a4075c
+ languageName: node
+ linkType: hard
+
+"buffer@npm:^6.0.3":
+ version: 6.0.3
+ resolution: "buffer@npm:6.0.3"
+ dependencies:
+ base64-js: "npm:^1.3.1"
+ ieee754: "npm:^1.2.1"
+ checksum: 10c0/2a905fbbcde73cc5d8bd18d1caa23715d5f83a5935867c2329f0ac06104204ba7947be098fe1317fbd8830e26090ff8e764f08cd14fefc977bb248c3487bcbd0
+ languageName: node
+ linkType: hard
+
+"bufferutil@npm:^4.0.3":
+ version: 4.0.8
+ resolution: "bufferutil@npm:4.0.8"
+ dependencies:
+ node-gyp: "npm:latest"
+ node-gyp-build: "npm:^4.3.0"
+ checksum: 10c0/36cdc5b53a38d9f61f89fdbe62029a2ebcd020599862253fefebe31566155726df9ff961f41b8c97b02b4c12b391ef97faf94e2383392654cf8f0ed68f76e47c
+ languageName: node
+ linkType: hard
+
+"busboy@npm:1.6.0":
+ version: 1.6.0
+ resolution: "busboy@npm:1.6.0"
+ dependencies:
+ streamsearch: "npm:^1.1.0"
+ checksum: 10c0/fa7e836a2b82699b6e074393428b91ae579d4f9e21f5ac468e1b459a244341d722d2d22d10920cdd849743dbece6dca11d72de939fb75a7448825cf2babfba1f
+ languageName: node
+ linkType: hard
+
+"cacache@npm:^18.0.0":
+ version: 18.0.3
+ resolution: "cacache@npm:18.0.3"
+ dependencies:
+ "@npmcli/fs": "npm:^3.1.0"
+ fs-minipass: "npm:^3.0.0"
+ glob: "npm:^10.2.2"
+ lru-cache: "npm:^10.0.1"
+ minipass: "npm:^7.0.3"
+ minipass-collect: "npm:^2.0.1"
+ minipass-flush: "npm:^1.0.5"
+ minipass-pipeline: "npm:^1.2.4"
+ p-map: "npm:^4.0.0"
+ ssri: "npm:^10.0.0"
+ tar: "npm:^6.1.11"
+ unique-filename: "npm:^3.0.0"
+ checksum: 10c0/dfda92840bb371fb66b88c087c61a74544363b37a265023223a99965b16a16bbb87661fe4948718d79df6e0cc04e85e62784fbcf1832b2a5e54ff4c46fbb45b7
+ languageName: node
+ linkType: hard
+
+"call-bind@npm:^1.0.0, call-bind@npm:^1.0.2, call-bind@npm:^1.0.5, call-bind@npm:^1.0.6, call-bind@npm:^1.0.7":
+ version: 1.0.7
+ resolution: "call-bind@npm:1.0.7"
+ dependencies:
+ es-define-property: "npm:^1.0.0"
+ es-errors: "npm:^1.3.0"
+ function-bind: "npm:^1.1.2"
+ get-intrinsic: "npm:^1.2.4"
+ set-function-length: "npm:^1.2.1"
+ checksum: 10c0/a3ded2e423b8e2a265983dba81c27e125b48eefb2655e7dfab6be597088da3d47c47976c24bc51b8fd9af1061f8f87b4ab78a314f3c77784b2ae2ba535ad8b8d
+ languageName: node
+ linkType: hard
+
+"callsites@npm:^3.0.0":
+ version: 3.1.0
+ resolution: "callsites@npm:3.1.0"
+ checksum: 10c0/fff92277400eb06c3079f9e74f3af120db9f8ea03bad0e84d9aede54bbe2d44a56cccb5f6cf12211f93f52306df87077ecec5b712794c5a9b5dac6d615a3f301
+ languageName: node
+ linkType: hard
+
+"caniuse-lite@npm:^1.0.30001406":
+ version: 1.0.30001606
+ resolution: "caniuse-lite@npm:1.0.30001606"
+ checksum: 10c0/fc9816f7d073e4f655c00acf9d6625f923e722430545b0aabefb9dc01347f3093608eb18841cf981acbd464fcac918a708908549738a8cd9517a14ac005bf8fc
+ languageName: node
+ linkType: hard
+
+"ccount@npm:^2.0.0":
+ version: 2.0.1
+ resolution: "ccount@npm:2.0.1"
+ checksum: 10c0/3939b1664390174484322bc3f45b798462e6c07ee6384cb3d645e0aa2f318502d174845198c1561930e1d431087f74cf1fe291ae9a4722821a9f4ba67e574350
+ languageName: node
+ linkType: hard
+
+"chain-registry@npm:1.62.3":
+ version: 1.62.3
+ resolution: "chain-registry@npm:1.62.3"
+ dependencies:
+ "@chain-registry/types": "npm:^0.44.3"
+ checksum: 10c0/acb2dcee56604083a38dd7e4524458d7d5c2e786d8d78ed40444530a8cb3236d16e0fef52462603ef339c2c529ede1c846597a8e6f99fa7751481b28279c9a56
+ languageName: node
+ linkType: hard
+
+"chalk@npm:^4.0.0, chalk@npm:^4.1.0":
+ version: 4.1.2
+ resolution: "chalk@npm:4.1.2"
+ dependencies:
+ ansi-styles: "npm:^4.1.0"
+ supports-color: "npm:^7.1.0"
+ checksum: 10c0/4a3fef5cc34975c898ffe77141450f679721df9dde00f6c304353fa9c8b571929123b26a0e4617bde5018977eb655b31970c297b91b63ee83bb82aeb04666880
+ languageName: node
+ linkType: hard
+
+"character-entities-html4@npm:^2.0.0":
+ version: 2.1.0
+ resolution: "character-entities-html4@npm:2.1.0"
+ checksum: 10c0/fe61b553f083400c20c0b0fd65095df30a0b445d960f3bbf271536ae6c3ba676f39cb7af0b4bf2755812f08ab9b88f2feed68f9aebb73bb153f7a115fe5c6e40
+ languageName: node
+ linkType: hard
+
+"character-entities-legacy@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "character-entities-legacy@npm:3.0.0"
+ checksum: 10c0/ec4b430af873661aa754a896a2b55af089b4e938d3d010fad5219299a6b6d32ab175142699ee250640678cd64bdecd6db3c9af0b8759ab7b155d970d84c4c7d1
+ languageName: node
+ linkType: hard
+
+"character-entities@npm:^2.0.0":
+ version: 2.0.2
+ resolution: "character-entities@npm:2.0.2"
+ checksum: 10c0/b0c645a45bcc90ff24f0e0140f4875a8436b8ef13b6bcd31ec02cfb2ca502b680362aa95386f7815bdc04b6464d48cf191210b3840d7c04241a149ede591a308
+ languageName: node
+ linkType: hard
+
+"character-reference-invalid@npm:^2.0.0":
+ version: 2.0.1
+ resolution: "character-reference-invalid@npm:2.0.1"
+ checksum: 10c0/2ae0dec770cd8659d7e8b0ce24392d83b4c2f0eb4a3395c955dce5528edd4cc030a794cfa06600fcdd700b3f2de2f9b8e40e309c0011c4180e3be64a0b42e6a1
+ languageName: node
+ linkType: hard
+
+"chokidar@npm:^3.6.0":
+ version: 3.6.0
+ resolution: "chokidar@npm:3.6.0"
+ dependencies:
+ anymatch: "npm:~3.1.2"
+ braces: "npm:~3.0.2"
+ fsevents: "npm:~2.3.2"
+ glob-parent: "npm:~5.1.2"
+ is-binary-path: "npm:~2.1.0"
+ is-glob: "npm:~4.0.1"
+ normalize-path: "npm:~3.0.0"
+ readdirp: "npm:~3.6.0"
+ dependenciesMeta:
+ fsevents:
+ optional: true
+ checksum: 10c0/8361dcd013f2ddbe260eacb1f3cb2f2c6f2b0ad118708a343a5ed8158941a39cb8fb1d272e0f389712e74ee90ce8ba864eece9e0e62b9705cb468a2f6d917462
+ languageName: node
+ linkType: hard
+
+"chownr@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "chownr@npm:2.0.0"
+ checksum: 10c0/594754e1303672171cc04e50f6c398ae16128eb134a88f801bf5354fd96f205320f23536a045d9abd8b51024a149696e51231565891d4efdab8846021ecf88e6
+ languageName: node
+ linkType: hard
+
+"cipher-base@npm:^1.0.0, cipher-base@npm:^1.0.1, cipher-base@npm:^1.0.3":
+ version: 1.0.4
+ resolution: "cipher-base@npm:1.0.4"
+ dependencies:
+ inherits: "npm:^2.0.1"
+ safe-buffer: "npm:^5.0.1"
+ checksum: 10c0/d8d005f8b64d8a77b3d3ce531301ae7b45902c9cab4ec8b66bdbd2bf2a1d9fceb9a2133c293eb3c060b2d964da0f14c47fb740366081338aa3795dd1faa8984b
+ languageName: node
+ linkType: hard
+
+"citty@npm:^0.1.5, citty@npm:^0.1.6":
+ version: 0.1.6
+ resolution: "citty@npm:0.1.6"
+ dependencies:
+ consola: "npm:^3.2.3"
+ checksum: 10c0/d26ad82a9a4a8858c7e149d90b878a3eceecd4cfd3e2ed3cd5f9a06212e451fb4f8cbe0fa39a3acb1b3e8f18e22db8ee5def5829384bad50e823d4b301609b48
+ languageName: node
+ linkType: hard
+
+"clean-stack@npm:^2.0.0":
+ version: 2.2.0
+ resolution: "clean-stack@npm:2.2.0"
+ checksum: 10c0/1f90262d5f6230a17e27d0c190b09d47ebe7efdd76a03b5a1127863f7b3c9aec4c3e6c8bb3a7bbf81d553d56a1fd35728f5a8ef4c63f867ac8d690109742a8c1
+ languageName: node
+ linkType: hard
+
+"client-only@npm:0.0.1, client-only@npm:^0.0.1":
+ version: 0.0.1
+ resolution: "client-only@npm:0.0.1"
+ checksum: 10c0/9d6cfd0c19e1c96a434605added99dff48482152af791ec4172fb912a71cff9027ff174efd8cdb2160cc7f377543e0537ffc462d4f279bc4701de3f2a3c4b358
+ languageName: node
+ linkType: hard
+
+"clipboardy@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "clipboardy@npm:4.0.0"
+ dependencies:
+ execa: "npm:^8.0.1"
+ is-wsl: "npm:^3.1.0"
+ is64bit: "npm:^2.0.0"
+ checksum: 10c0/02bb5f3d0a772bd84ec26a3566c72c2319a9f3b4cb8338370c3bffcf0073c80b834abe1a6945bea4f2cbea28e1627a975aaac577e3f61a868d924ce79138b041
+ languageName: node
+ linkType: hard
+
+"clsx@npm:^2.0.0":
+ version: 2.1.0
+ resolution: "clsx@npm:2.1.0"
+ checksum: 10c0/c09c00ad14f638366ca814097e6cab533dfa1972a358da5b557be487168acbb25b4c1395e89ffa842a8a61ba87a462d2b4885bc9d4f8410b598f3cb339599cdb
+ languageName: node
+ linkType: hard
+
+"clsx@npm:^2.1.1":
+ version: 2.1.1
+ resolution: "clsx@npm:2.1.1"
+ checksum: 10c0/c4c8eb865f8c82baab07e71bfa8897c73454881c4f99d6bc81585aecd7c441746c1399d08363dc096c550cceaf97bd4ce1e8854e1771e9998d9f94c4fe075839
+ languageName: node
+ linkType: hard
+
+"color-convert@npm:^2.0.1":
+ version: 2.0.1
+ resolution: "color-convert@npm:2.0.1"
+ dependencies:
+ color-name: "npm:~1.1.4"
+ checksum: 10c0/37e1150172f2e311fe1b2df62c6293a342ee7380da7b9cfdba67ea539909afbd74da27033208d01d6d5cfc65ee7868a22e18d7e7648e004425441c0f8a15a7d7
+ languageName: node
+ linkType: hard
+
+"color-name@npm:~1.1.4":
+ version: 1.1.4
+ resolution: "color-name@npm:1.1.4"
+ checksum: 10c0/a1a3f914156960902f46f7f56bc62effc6c94e84b2cae157a526b1c1f74b677a47ec602bf68a61abfa2b42d15b7c5651c6dbe72a43af720bc588dff885b10f95
+ languageName: node
+ linkType: hard
+
+"combined-stream@npm:^1.0.8":
+ version: 1.0.8
+ resolution: "combined-stream@npm:1.0.8"
+ dependencies:
+ delayed-stream: "npm:~1.0.0"
+ checksum: 10c0/0dbb829577e1b1e839fa82b40c07ffaf7de8a09b935cadd355a73652ae70a88b4320db322f6634a4ad93424292fa80973ac6480986247f1734a1137debf271d5
+ languageName: node
+ linkType: hard
+
+"comma-separated-tokens@npm:^2.0.0":
+ version: 2.0.3
+ resolution: "comma-separated-tokens@npm:2.0.3"
+ checksum: 10c0/91f90f1aae320f1755d6957ef0b864fe4f54737f3313bd95e0802686ee2ca38bff1dd381964d00ae5db42912dd1f4ae5c2709644e82706ffc6f6842a813cdd67
+ languageName: node
+ linkType: hard
+
+"commander-plus@npm:^0.0.6":
+ version: 0.0.6
+ resolution: "commander-plus@npm:0.0.6"
+ dependencies:
+ keypress: "npm:0.1.x"
+ checksum: 10c0/c20cb3e27c220f101e354c9c916dacd80de4363cb5a1b1b94dd6b81a675e2cabc92d182a3a041a6bea418300e2955077607da1a07dabf383813007963c01533b
+ languageName: node
+ linkType: hard
+
+"concat-map@npm:0.0.1":
+ version: 0.0.1
+ resolution: "concat-map@npm:0.0.1"
+ checksum: 10c0/c996b1cfdf95b6c90fee4dae37e332c8b6eb7d106430c17d538034c0ad9a1630cb194d2ab37293b1bdd4d779494beee7786d586a50bd9376fd6f7bcc2bd4c98f
+ languageName: node
+ linkType: hard
+
+"consola@npm:^3.2.3":
+ version: 3.2.3
+ resolution: "consola@npm:3.2.3"
+ checksum: 10c0/c606220524ec88a05bb1baf557e9e0e04a0c08a9c35d7a08652d99de195c4ddcb6572040a7df57a18ff38bbc13ce9880ad032d56630cef27bef72768ef0ac078
+ languageName: node
+ linkType: hard
+
+"cookie-es@npm:^1.0.0":
+ version: 1.1.0
+ resolution: "cookie-es@npm:1.1.0"
+ checksum: 10c0/27f1057b05eb42dca539a80cf45b8f9d5bacf35482690d756025447810dcd669e0cd13952a063a43e47a4e6fd7400745defedc97479a4254019f0bdb5c200341
+ languageName: node
+ linkType: hard
+
+"copy-anything@npm:^3.0.2":
+ version: 3.0.5
+ resolution: "copy-anything@npm:3.0.5"
+ dependencies:
+ is-what: "npm:^4.1.8"
+ checksum: 10c0/01eadd500c7e1db71d32d95a3bfaaedcb839ef891c741f6305ab0461398056133de08f2d1bf4c392b364e7bdb7ce498513896e137a7a183ac2516b065c28a4fe
+ languageName: node
+ linkType: hard
+
+"copy-to-clipboard@npm:^3.3.3":
+ version: 3.3.3
+ resolution: "copy-to-clipboard@npm:3.3.3"
+ dependencies:
+ toggle-selection: "npm:^1.0.6"
+ checksum: 10c0/3ebf5e8ee00601f8c440b83ec08d838e8eabb068c1fae94a9cda6b42f288f7e1b552f3463635f419af44bf7675afc8d0390d30876cf5c2d5d35f86d9c56a3e5f
+ languageName: node
+ linkType: hard
+
+"core-util-is@npm:~1.0.0":
+ version: 1.0.3
+ resolution: "core-util-is@npm:1.0.3"
+ checksum: 10c0/90a0e40abbddfd7618f8ccd63a74d88deea94e77d0e8dbbea059fa7ebebb8fbb4e2909667fe26f3a467073de1a542ebe6ae4c73a73745ac5833786759cd906c9
+ languageName: node
+ linkType: hard
+
+"cosmjs-types@npm:>=0.9.0, cosmjs-types@npm:^0.9.0":
+ version: 0.9.0
+ resolution: "cosmjs-types@npm:0.9.0"
+ checksum: 10c0/bc20f4293fb34629d7c5f96bafe533987f753df957ff68eb078d0128ae5a418320cb945024441769a07bb9bc5dde9d22b972fd40d485933e5706ea191c43727b
+ languageName: node
+ linkType: hard
+
+"cosmjs-types@npm:^0.5.2":
+ version: 0.5.2
+ resolution: "cosmjs-types@npm:0.5.2"
+ dependencies:
+ long: "npm:^4.0.0"
+ protobufjs: "npm:~6.11.2"
+ checksum: 10c0/88bc5fd23339abeaf08a7d63cb34eb96e04a36776c7dba585ae03ceb364b436526dadafc709ba0494cb7d53d9a8b9cd4233c4d6b45cce323042366d4f8781812
+ languageName: node
+ linkType: hard
+
+"cosmjs-types@npm:^0.8.0":
+ version: 0.8.0
+ resolution: "cosmjs-types@npm:0.8.0"
+ dependencies:
+ long: "npm:^4.0.0"
+ protobufjs: "npm:~6.11.2"
+ checksum: 10c0/910a84d04d17c3a32120bda52063a582325b900e9bb2f5ddffee621c1d053bc562bedc0d39d20e12736445b66d897bdae085247f51c6ffd1ca0154f99b938214
+ languageName: node
+ linkType: hard
+
+"cosmos-kit@npm:2.18.4":
+ version: 2.18.4
+ resolution: "cosmos-kit@npm:2.18.4"
+ dependencies:
+ "@cosmos-kit/cdcwallet": "npm:^2.13.2"
+ "@cosmos-kit/coin98": "npm:^2.11.2"
+ "@cosmos-kit/compass": "npm:^2.11.2"
+ "@cosmos-kit/cosmostation": "npm:^2.11.2"
+ "@cosmos-kit/exodus": "npm:^2.10.2"
+ "@cosmos-kit/fin": "npm:^2.11.2"
+ "@cosmos-kit/frontier": "npm:^2.10.2"
+ "@cosmos-kit/galaxy-station": "npm:^2.10.2"
+ "@cosmos-kit/keplr": "npm:^2.12.2"
+ "@cosmos-kit/leap": "npm:^2.12.2"
+ "@cosmos-kit/ledger": "npm:^2.11.2"
+ "@cosmos-kit/okxwallet-extension": "npm:^2.11.2"
+ "@cosmos-kit/omni": "npm:^2.10.2"
+ "@cosmos-kit/owallet": "npm:^2.11.2"
+ "@cosmos-kit/shell": "npm:^2.11.2"
+ "@cosmos-kit/station": "npm:^2.10.2"
+ "@cosmos-kit/tailwind": "npm:^1.5.2"
+ "@cosmos-kit/trust": "npm:^2.11.2"
+ "@cosmos-kit/vectis": "npm:^2.11.2"
+ "@cosmos-kit/xdefi": "npm:^2.10.2"
+ checksum: 10c0/76ccf246c852b58e99a64b1eed4c3409664159f4b9348362369775c74c6037437c945e2a44759a59bd79320d0d45981aa34cd7d4a3c4d3e67d7865d7777f7f61
+ languageName: node
+ linkType: hard
+
+"create-ecdh@npm:^4.0.0":
+ version: 4.0.4
+ resolution: "create-ecdh@npm:4.0.4"
+ dependencies:
+ bn.js: "npm:^4.1.0"
+ elliptic: "npm:^6.5.3"
+ checksum: 10c0/77b11a51360fec9c3bce7a76288fc0deba4b9c838d5fb354b3e40c59194d23d66efe6355fd4b81df7580da0661e1334a235a2a5c040b7569ba97db428d466e7f
+ languageName: node
+ linkType: hard
+
+"create-hash@npm:^1.1.0, create-hash@npm:^1.1.2, create-hash@npm:^1.2.0":
+ version: 1.2.0
+ resolution: "create-hash@npm:1.2.0"
+ dependencies:
+ cipher-base: "npm:^1.0.1"
+ inherits: "npm:^2.0.1"
+ md5.js: "npm:^1.3.4"
+ ripemd160: "npm:^2.0.1"
+ sha.js: "npm:^2.4.0"
+ checksum: 10c0/d402e60e65e70e5083cb57af96d89567954d0669e90550d7cec58b56d49c4b193d35c43cec8338bc72358198b8cbf2f0cac14775b651e99238e1cf411490f915
+ languageName: node
+ linkType: hard
+
+"create-hmac@npm:^1.1.0, create-hmac@npm:^1.1.4, create-hmac@npm:^1.1.7":
+ version: 1.1.7
+ resolution: "create-hmac@npm:1.1.7"
+ dependencies:
+ cipher-base: "npm:^1.0.3"
+ create-hash: "npm:^1.1.0"
+ inherits: "npm:^2.0.1"
+ ripemd160: "npm:^2.0.0"
+ safe-buffer: "npm:^5.0.1"
+ sha.js: "npm:^2.4.8"
+ checksum: 10c0/24332bab51011652a9a0a6d160eed1e8caa091b802335324ae056b0dcb5acbc9fcf173cf10d128eba8548c3ce98dfa4eadaa01bd02f44a34414baee26b651835
+ languageName: node
+ linkType: hard
+
+"cross-fetch@npm:^3.1.5":
+ version: 3.1.8
+ resolution: "cross-fetch@npm:3.1.8"
+ dependencies:
+ node-fetch: "npm:^2.6.12"
+ checksum: 10c0/4c5e022ffe6abdf380faa6e2373c0c4ed7ef75e105c95c972b6f627c3f083170b6886f19fb488a7fa93971f4f69dcc890f122b0d97f0bf5f41ca1d9a8f58c8af
+ languageName: node
+ linkType: hard
+
+"cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.2, cross-spawn@npm:^7.0.3":
+ version: 7.0.3
+ resolution: "cross-spawn@npm:7.0.3"
+ dependencies:
+ path-key: "npm:^3.1.0"
+ shebang-command: "npm:^2.0.0"
+ which: "npm:^2.0.1"
+ checksum: 10c0/5738c312387081c98d69c98e105b6327b069197f864a60593245d64c8089c8a0a744e16349281210d56835bb9274130d825a78b2ad6853ca13cfbeffc0c31750
+ languageName: node
+ linkType: hard
+
+"crossws@npm:^0.2.0, crossws@npm:^0.2.2":
+ version: 0.2.4
+ resolution: "crossws@npm:0.2.4"
+ peerDependencies:
+ uWebSockets.js: "*"
+ peerDependenciesMeta:
+ uWebSockets.js:
+ optional: true
+ checksum: 10c0/b950c64d36f3f11fdb8e0faf3107598660d89d77eb860e68b535fe6acba9f0f2f0507cc7250bd219a3ef2fe08718db91b591e6912b7324fcfc8fd1b8d9f78c96
+ languageName: node
+ linkType: hard
+
+"crypto-browserify@npm:^3.12.0":
+ version: 3.12.0
+ resolution: "crypto-browserify@npm:3.12.0"
+ dependencies:
+ browserify-cipher: "npm:^1.0.0"
+ browserify-sign: "npm:^4.0.0"
+ create-ecdh: "npm:^4.0.0"
+ create-hash: "npm:^1.1.0"
+ create-hmac: "npm:^1.1.0"
+ diffie-hellman: "npm:^5.0.0"
+ inherits: "npm:^2.0.1"
+ pbkdf2: "npm:^3.0.3"
+ public-encrypt: "npm:^4.0.0"
+ randombytes: "npm:^2.0.0"
+ randomfill: "npm:^1.0.3"
+ checksum: 10c0/0c20198886576050a6aa5ba6ae42f2b82778bfba1753d80c5e7a090836890dc372bdc780986b2568b4fb8ed2a91c958e61db1f0b6b1cc96af4bd03ffc298ba92
+ languageName: node
+ linkType: hard
+
+"crypto-js@npm:^4.0.0":
+ version: 4.2.0
+ resolution: "crypto-js@npm:4.2.0"
+ checksum: 10c0/8fbdf9d56f47aea0794ab87b0eb9833baf80b01a7c5c1b0edc7faf25f662fb69ab18dc2199e2afcac54670ff0cd9607a9045a3f7a80336cccd18d77a55b9fdf0
+ languageName: node
+ linkType: hard
+
+"css-what@npm:^6.1.0":
+ version: 6.1.0
+ resolution: "css-what@npm:6.1.0"
+ checksum: 10c0/a09f5a6b14ba8dcf57ae9a59474722e80f20406c53a61e9aedb0eedc693b135113ffe2983f4efc4b5065ae639442e9ae88df24941ef159c218b231011d733746
+ languageName: node
+ linkType: hard
+
+"cssesc@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "cssesc@npm:3.0.0"
+ bin:
+ cssesc: bin/cssesc
+ checksum: 10c0/6bcfd898662671be15ae7827120472c5667afb3d7429f1f917737f3bf84c4176003228131b643ae74543f17a394446247df090c597bb9a728cce298606ed0aa7
+ languageName: node
+ linkType: hard
+
+"csstype@npm:^3.0.2, csstype@npm:^3.0.7":
+ version: 3.1.3
+ resolution: "csstype@npm:3.1.3"
+ checksum: 10c0/80c089d6f7e0c5b2bd83cf0539ab41474198579584fa10d86d0cafe0642202343cbc119e076a0b1aece191989477081415d66c9fefbf3c957fc2fc4b7009f248
+ languageName: node
+ linkType: hard
+
+"damerau-levenshtein@npm:^1.0.8":
+ version: 1.0.8
+ resolution: "damerau-levenshtein@npm:1.0.8"
+ checksum: 10c0/4c2647e0f42acaee7d068756c1d396e296c3556f9c8314bac1ac63ffb236217ef0e7e58602b18bb2173deec7ec8e0cac8e27cccf8f5526666b4ff11a13ad54a3
+ languageName: node
+ linkType: hard
+
+"data-view-buffer@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "data-view-buffer@npm:1.0.1"
+ dependencies:
+ call-bind: "npm:^1.0.6"
+ es-errors: "npm:^1.3.0"
+ is-data-view: "npm:^1.0.1"
+ checksum: 10c0/8984119e59dbed906a11fcfb417d7d861936f16697a0e7216fe2c6c810f6b5e8f4a5281e73f2c28e8e9259027190ac4a33e2a65fdd7fa86ac06b76e838918583
+ languageName: node
+ linkType: hard
+
+"data-view-byte-length@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "data-view-byte-length@npm:1.0.1"
+ dependencies:
+ call-bind: "npm:^1.0.7"
+ es-errors: "npm:^1.3.0"
+ is-data-view: "npm:^1.0.1"
+ checksum: 10c0/b7d9e48a0cf5aefed9ab7d123559917b2d7e0d65531f43b2fd95b9d3a6b46042dd3fca597c42bba384e66b70d7ad66ff23932f8367b241f53d93af42cfe04ec2
+ languageName: node
+ linkType: hard
+
+"data-view-byte-offset@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "data-view-byte-offset@npm:1.0.0"
+ dependencies:
+ call-bind: "npm:^1.0.6"
+ es-errors: "npm:^1.3.0"
+ is-data-view: "npm:^1.0.1"
+ checksum: 10c0/21b0d2e53fd6e20cc4257c873bf6d36d77bd6185624b84076c0a1ddaa757b49aaf076254006341d35568e89f52eecd1ccb1a502cfb620f2beca04f48a6a62a8f
+ languageName: node
+ linkType: hard
+
+"dayjs@npm:1.11.11":
+ version: 1.11.11
+ resolution: "dayjs@npm:1.11.11"
+ checksum: 10c0/0131d10516b9945f05a57e13f4af49a6814de5573a494824e103131a3bbe4cc470b1aefe8e17e51f9a478a22cd116084be1ee5725cedb66ec4c3f9091202dc4b
+ languageName: node
+ linkType: hard
+
+"debug@npm:4, debug@npm:^4.0.0, debug@npm:^4.1.0, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4":
+ version: 4.3.5
+ resolution: "debug@npm:4.3.5"
+ dependencies:
+ ms: "npm:2.1.2"
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+ checksum: 10c0/082c375a2bdc4f4469c99f325ff458adad62a3fc2c482d59923c260cb08152f34e2659f72b3767db8bb2f21ca81a60a42d1019605a412132d7b9f59363a005cc
+ languageName: node
+ linkType: hard
+
+"debug@npm:^3.2.7":
+ version: 3.2.7
+ resolution: "debug@npm:3.2.7"
+ dependencies:
+ ms: "npm:^2.1.1"
+ checksum: 10c0/37d96ae42cbc71c14844d2ae3ba55adf462ec89fd3a999459dec3833944cd999af6007ff29c780f1c61153bcaaf2c842d1e4ce1ec621e4fc4923244942e4a02a
+ languageName: node
+ linkType: hard
+
+"decimal.js@npm:^10.2.1":
+ version: 10.4.3
+ resolution: "decimal.js@npm:10.4.3"
+ checksum: 10c0/6d60206689ff0911f0ce968d40f163304a6c1bc739927758e6efc7921cfa630130388966f16bf6ef6b838cb33679fbe8e7a78a2f3c478afce841fd55ac8fb8ee
+ languageName: node
+ linkType: hard
+
+"decode-named-character-reference@npm:^1.0.0":
+ version: 1.0.2
+ resolution: "decode-named-character-reference@npm:1.0.2"
+ dependencies:
+ character-entities: "npm:^2.0.0"
+ checksum: 10c0/66a9fc5d9b5385a2b3675c69ba0d8e893393d64057f7dbbb585265bb4fc05ec513d76943b8e5aac7d8016d20eea4499322cbf4cd6d54b466976b78f3a7587a4c
+ languageName: node
+ linkType: hard
+
+"decode-uri-component@npm:^0.2.2":
+ version: 0.2.2
+ resolution: "decode-uri-component@npm:0.2.2"
+ checksum: 10c0/1f4fa54eb740414a816b3f6c24818fbfcabd74ac478391e9f4e2282c994127db02010ce804f3d08e38255493cfe68608b3f5c8e09fd6efc4ae46c807691f7a31
+ languageName: node
+ linkType: hard
+
+"dedent@npm:^1.5.3":
+ version: 1.5.3
+ resolution: "dedent@npm:1.5.3"
+ peerDependencies:
+ babel-plugin-macros: ^3.1.0
+ peerDependenciesMeta:
+ babel-plugin-macros:
+ optional: true
+ checksum: 10c0/d94bde6e6f780be4da4fd760288fcf755ec368872f4ac5218197200d86430aeb8d90a003a840bff1c20221188e3f23adced0119cb811c6873c70d0ac66d12832
+ languageName: node
+ linkType: hard
+
+"deep-is@npm:^0.1.3":
+ version: 0.1.4
+ resolution: "deep-is@npm:0.1.4"
+ checksum: 10c0/7f0ee496e0dff14a573dc6127f14c95061b448b87b995fc96c017ce0a1e66af1675e73f1d6064407975bc4ea6ab679497a29fff7b5b9c4e99cb10797c1ad0b4c
+ languageName: node
+ linkType: hard
+
+"deep-object-diff@npm:^1.1.9":
+ version: 1.1.9
+ resolution: "deep-object-diff@npm:1.1.9"
+ checksum: 10c0/12cfd1b000d16c9192fc649923c972f8aac2ddca4f71a292f8f2c1e2d5cf3c9c16c85e73ab3e7d8a89a5ec6918d6460677d0b05bd160f7bd50bb4816d496dc24
+ languageName: node
+ linkType: hard
+
+"deepmerge@npm:^4.2.2, deepmerge@npm:^4.3.1":
+ version: 4.3.1
+ resolution: "deepmerge@npm:4.3.1"
+ checksum: 10c0/e53481aaf1aa2c4082b5342be6b6d8ad9dfe387bc92ce197a66dea08bd4265904a087e75e464f14d1347cf2ac8afe1e4c16b266e0561cc5df29382d3c5f80044
+ languageName: node
+ linkType: hard
+
+"define-data-property@npm:^1.0.1, define-data-property@npm:^1.1.4":
+ version: 1.1.4
+ resolution: "define-data-property@npm:1.1.4"
+ dependencies:
+ es-define-property: "npm:^1.0.0"
+ es-errors: "npm:^1.3.0"
+ gopd: "npm:^1.0.1"
+ checksum: 10c0/dea0606d1483eb9db8d930d4eac62ca0fa16738b0b3e07046cddfacf7d8c868bbe13fa0cb263eb91c7d0d527960dc3f2f2471a69ed7816210307f6744fe62e37
+ languageName: node
+ linkType: hard
+
+"define-properties@npm:^1.1.3, define-properties@npm:^1.2.0, define-properties@npm:^1.2.1":
+ version: 1.2.1
+ resolution: "define-properties@npm:1.2.1"
+ dependencies:
+ define-data-property: "npm:^1.0.1"
+ has-property-descriptors: "npm:^1.0.0"
+ object-keys: "npm:^1.1.1"
+ checksum: 10c0/88a152319ffe1396ccc6ded510a3896e77efac7a1bfbaa174a7b00414a1747377e0bb525d303794a47cf30e805c2ec84e575758512c6e44a993076d29fd4e6c3
+ languageName: node
+ linkType: hard
+
+"defu@npm:^6.1.3, defu@npm:^6.1.4":
+ version: 6.1.4
+ resolution: "defu@npm:6.1.4"
+ checksum: 10c0/2d6cc366262dc0cb8096e429368e44052fdf43ed48e53ad84cc7c9407f890301aa5fcb80d0995abaaf842b3949f154d060be4160f7a46cb2bc2f7726c81526f5
+ languageName: node
+ linkType: hard
+
+"delay@npm:^4.4.0":
+ version: 4.4.1
+ resolution: "delay@npm:4.4.1"
+ checksum: 10c0/9b3aa8c4cc88ee5e18a92c2e53f3912ed2930d4279c7d16d913813de6c2214eaf8bc5704b7357c72bf0f2f28f4507f9ab37599c3f84dc7d99ac178ae91dea3f9
+ languageName: node
+ linkType: hard
+
+"delayed-stream@npm:~1.0.0":
+ version: 1.0.0
+ resolution: "delayed-stream@npm:1.0.0"
+ checksum: 10c0/d758899da03392e6712f042bec80aa293bbe9e9ff1b2634baae6a360113e708b91326594c8a486d475c69d6259afb7efacdc3537bfcda1c6c648e390ce601b19
+ languageName: node
+ linkType: hard
+
+"dequal@npm:^2.0.0, dequal@npm:^2.0.3":
+ version: 2.0.3
+ resolution: "dequal@npm:2.0.3"
+ checksum: 10c0/f98860cdf58b64991ae10205137c0e97d384c3a4edc7f807603887b7c4b850af1224a33d88012009f150861cbee4fa2d322c4cc04b9313bee312e47f6ecaa888
+ languageName: node
+ linkType: hard
+
+"des.js@npm:^1.0.0":
+ version: 1.1.0
+ resolution: "des.js@npm:1.1.0"
+ dependencies:
+ inherits: "npm:^2.0.1"
+ minimalistic-assert: "npm:^1.0.0"
+ checksum: 10c0/671354943ad67493e49eb4c555480ab153edd7cee3a51c658082fcde539d2690ed2a4a0b5d1f401f9cde822edf3939a6afb2585f32c091f2d3a1b1665cd45236
+ languageName: node
+ linkType: hard
+
+"destr@npm:^2.0.3":
+ version: 2.0.3
+ resolution: "destr@npm:2.0.3"
+ checksum: 10c0/10e7eff5149e2839a4dd29a1e9617c3c675a3b53608d78d74fc6f4abc31daa977e6de08e0eea78965527a0d5a35467ae2f9624e0a4646d54aa1162caa094473e
+ languageName: node
+ linkType: hard
+
+"detect-browser@npm:5.3.0, detect-browser@npm:^5.2.0":
+ version: 5.3.0
+ resolution: "detect-browser@npm:5.3.0"
+ checksum: 10c0/88d49b70ce3836e7971345b2ebdd486ad0d457d1e4f066540d0c12f9210c8f731ccbed955fcc9af2f048f5d4629702a8e46bedf5bcad42ad49a3a0927bfd5a76
+ languageName: node
+ linkType: hard
+
+"detect-libc@npm:^1.0.3":
+ version: 1.0.3
+ resolution: "detect-libc@npm:1.0.3"
+ bin:
+ detect-libc: ./bin/detect-libc.js
+ checksum: 10c0/4da0deae9f69e13bc37a0902d78bf7169480004b1fed3c19722d56cff578d16f0e11633b7fbf5fb6249181236c72e90024cbd68f0b9558ae06e281f47326d50d
+ languageName: node
+ linkType: hard
+
+"devlop@npm:^1.0.0, devlop@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "devlop@npm:1.1.0"
+ dependencies:
+ dequal: "npm:^2.0.0"
+ checksum: 10c0/e0928ab8f94c59417a2b8389c45c55ce0a02d9ac7fd74ef62d01ba48060129e1d594501b77de01f3eeafc7cb00773819b0df74d96251cf20b31c5b3071f45c0e
+ languageName: node
+ linkType: hard
+
+"diff-match-patch@npm:^1.0.5":
+ version: 1.0.5
+ resolution: "diff-match-patch@npm:1.0.5"
+ checksum: 10c0/142b6fad627b9ef309d11bd935e82b84c814165a02500f046e2773f4ea894d10ed3017ac20454900d79d4a0322079f5b713cf0986aaf15fce0ec4a2479980c86
+ languageName: node
+ linkType: hard
+
+"diffie-hellman@npm:^5.0.0":
+ version: 5.0.3
+ resolution: "diffie-hellman@npm:5.0.3"
+ dependencies:
+ bn.js: "npm:^4.1.0"
+ miller-rabin: "npm:^4.0.0"
+ randombytes: "npm:^2.0.0"
+ checksum: 10c0/ce53ccafa9ca544b7fc29b08a626e23a9b6562efc2a98559a0c97b4718937cebaa9b5d7d0a05032cc9c1435e9b3c1532b9e9bf2e0ede868525922807ad6e1ecf
+ languageName: node
+ linkType: hard
+
+"dir-glob@npm:^3.0.1":
+ version: 3.0.1
+ resolution: "dir-glob@npm:3.0.1"
+ dependencies:
+ path-type: "npm:^4.0.0"
+ checksum: 10c0/dcac00920a4d503e38bb64001acb19df4efc14536ada475725e12f52c16777afdee4db827f55f13a908ee7efc0cb282e2e3dbaeeb98c0993dd93d1802d3bf00c
+ languageName: node
+ linkType: hard
+
+"doctrine@npm:^2.1.0":
+ version: 2.1.0
+ resolution: "doctrine@npm:2.1.0"
+ dependencies:
+ esutils: "npm:^2.0.2"
+ checksum: 10c0/b6416aaff1f380bf56c3b552f31fdf7a69b45689368deca72d28636f41c16bb28ec3ebc40ace97db4c1afc0ceeb8120e8492fe0046841c94c2933b2e30a7d5ac
+ languageName: node
+ linkType: hard
+
+"doctrine@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "doctrine@npm:3.0.0"
+ dependencies:
+ esutils: "npm:^2.0.2"
+ checksum: 10c0/c96bdccabe9d62ab6fea9399fdff04a66e6563c1d6fb3a3a063e8d53c3bb136ba63e84250bbf63d00086a769ad53aef92d2bd483f03f837fc97b71cbee6b2520
+ languageName: node
+ linkType: hard
+
+"duplexify@npm:^4.1.2":
+ version: 4.1.3
+ resolution: "duplexify@npm:4.1.3"
+ dependencies:
+ end-of-stream: "npm:^1.4.1"
+ inherits: "npm:^2.0.3"
+ readable-stream: "npm:^3.1.1"
+ stream-shift: "npm:^1.0.2"
+ checksum: 10c0/8a7621ae95c89f3937f982fe36d72ea997836a708471a75bb2a0eecde3330311b1e128a6dad510e0fd64ace0c56bff3484ed2e82af0e465600c82117eadfbda5
+ languageName: node
+ linkType: hard
+
+"eastasianwidth@npm:^0.2.0":
+ version: 0.2.0
+ resolution: "eastasianwidth@npm:0.2.0"
+ checksum: 10c0/26f364ebcdb6395f95124fda411f63137a4bfb5d3a06453f7f23dfe52502905bd84e0488172e0f9ec295fdc45f05c23d5d91baf16bd26f0fe9acd777a188dc39
+ languageName: node
+ linkType: hard
+
+"elliptic@npm:6.5.4":
+ version: 6.5.4
+ resolution: "elliptic@npm:6.5.4"
+ dependencies:
+ bn.js: "npm:^4.11.9"
+ brorand: "npm:^1.1.0"
+ hash.js: "npm:^1.0.0"
+ hmac-drbg: "npm:^1.0.1"
+ inherits: "npm:^2.0.4"
+ minimalistic-assert: "npm:^1.0.1"
+ minimalistic-crypto-utils: "npm:^1.0.1"
+ checksum: 10c0/5f361270292c3b27cf0843e84526d11dec31652f03c2763c6c2b8178548175ff5eba95341dd62baff92b2265d1af076526915d8af6cc9cb7559c44a62f8ca6e2
+ languageName: node
+ linkType: hard
+
+"elliptic@npm:^6.4.0, elliptic@npm:^6.5.3, elliptic@npm:^6.5.4, elliptic@npm:^6.5.5":
+ version: 6.5.5
+ resolution: "elliptic@npm:6.5.5"
+ dependencies:
+ bn.js: "npm:^4.11.9"
+ brorand: "npm:^1.1.0"
+ hash.js: "npm:^1.0.0"
+ hmac-drbg: "npm:^1.0.1"
+ inherits: "npm:^2.0.4"
+ minimalistic-assert: "npm:^1.0.1"
+ minimalistic-crypto-utils: "npm:^1.0.1"
+ checksum: 10c0/3e591e93783a1b66f234ebf5bd3a8a9a8e063a75073a35a671e03e3b25253b6e33ac121f7efe9b8808890fffb17b40596cc19d01e6e8d1fa13b9a56ff65597c8
+ languageName: node
+ linkType: hard
+
+"emoji-regex@npm:^8.0.0":
+ version: 8.0.0
+ resolution: "emoji-regex@npm:8.0.0"
+ checksum: 10c0/b6053ad39951c4cf338f9092d7bfba448cdfd46fe6a2a034700b149ac9ffbc137e361cbd3c442297f86bed2e5f7576c1b54cc0a6bf8ef5106cc62f496af35010
+ languageName: node
+ linkType: hard
+
+"emoji-regex@npm:^9.2.2":
+ version: 9.2.2
+ resolution: "emoji-regex@npm:9.2.2"
+ checksum: 10c0/af014e759a72064cf66e6e694a7fc6b0ed3d8db680427b021a89727689671cefe9d04151b2cad51dbaf85d5ba790d061cd167f1cf32eb7b281f6368b3c181639
+ languageName: node
+ linkType: hard
+
+"emojis-list@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "emojis-list@npm:3.0.0"
+ checksum: 10c0/7dc4394b7b910444910ad64b812392159a21e1a7ecc637c775a440227dcb4f80eff7fe61f4453a7d7603fa23d23d30cc93fe9e4b5ed985b88d6441cd4a35117b
+ languageName: node
+ linkType: hard
+
+"encoding@npm:^0.1.13":
+ version: 0.1.13
+ resolution: "encoding@npm:0.1.13"
+ dependencies:
+ iconv-lite: "npm:^0.6.2"
+ checksum: 10c0/36d938712ff00fe1f4bac88b43bcffb5930c1efa57bbcdca9d67e1d9d6c57cfb1200fb01efe0f3109b2ce99b231f90779532814a81370a1bd3274a0f58585039
+ languageName: node
+ linkType: hard
+
+"end-of-stream@npm:^1.1.0, end-of-stream@npm:^1.4.1, end-of-stream@npm:^1.4.4":
+ version: 1.4.4
+ resolution: "end-of-stream@npm:1.4.4"
+ dependencies:
+ once: "npm:^1.4.0"
+ checksum: 10c0/870b423afb2d54bb8d243c63e07c170409d41e20b47eeef0727547aea5740bd6717aca45597a9f2745525667a6b804c1e7bede41f856818faee5806dd9ff3975
+ languageName: node
+ linkType: hard
+
+"enhanced-resolve@npm:^5.12.0":
+ version: 5.17.0
+ resolution: "enhanced-resolve@npm:5.17.0"
+ dependencies:
+ graceful-fs: "npm:^4.2.4"
+ tapable: "npm:^2.2.0"
+ checksum: 10c0/90065e58e4fd08e77ba47f827eaa17d60c335e01e4859f6e644bb3b8d0e32b203d33894aee92adfa5121fa262f912b48bdf0d0475e98b4a0a1132eea1169ad37
+ languageName: node
+ linkType: hard
+
+"env-paths@npm:^2.2.0":
+ version: 2.2.1
+ resolution: "env-paths@npm:2.2.1"
+ checksum: 10c0/285325677bf00e30845e330eec32894f5105529db97496ee3f598478e50f008c5352a41a30e5e72ec9de8a542b5a570b85699cd63bd2bc646dbcb9f311d83bc4
+ languageName: node
+ linkType: hard
+
+"err-code@npm:^2.0.2":
+ version: 2.0.3
+ resolution: "err-code@npm:2.0.3"
+ checksum: 10c0/b642f7b4dd4a376e954947550a3065a9ece6733ab8e51ad80db727aaae0817c2e99b02a97a3d6cecc648a97848305e728289cf312d09af395403a90c9d4d8a66
+ languageName: node
+ linkType: hard
+
+"es-abstract@npm:^1.22.1, es-abstract@npm:^1.22.3, es-abstract@npm:^1.23.0, es-abstract@npm:^1.23.1, es-abstract@npm:^1.23.2, es-abstract@npm:^1.23.3":
+ version: 1.23.3
+ resolution: "es-abstract@npm:1.23.3"
+ dependencies:
+ array-buffer-byte-length: "npm:^1.0.1"
+ arraybuffer.prototype.slice: "npm:^1.0.3"
+ available-typed-arrays: "npm:^1.0.7"
+ call-bind: "npm:^1.0.7"
+ data-view-buffer: "npm:^1.0.1"
+ data-view-byte-length: "npm:^1.0.1"
+ data-view-byte-offset: "npm:^1.0.0"
+ es-define-property: "npm:^1.0.0"
+ es-errors: "npm:^1.3.0"
+ es-object-atoms: "npm:^1.0.0"
+ es-set-tostringtag: "npm:^2.0.3"
+ es-to-primitive: "npm:^1.2.1"
+ function.prototype.name: "npm:^1.1.6"
+ get-intrinsic: "npm:^1.2.4"
+ get-symbol-description: "npm:^1.0.2"
+ globalthis: "npm:^1.0.3"
+ gopd: "npm:^1.0.1"
+ has-property-descriptors: "npm:^1.0.2"
+ has-proto: "npm:^1.0.3"
+ has-symbols: "npm:^1.0.3"
+ hasown: "npm:^2.0.2"
+ internal-slot: "npm:^1.0.7"
+ is-array-buffer: "npm:^3.0.4"
+ is-callable: "npm:^1.2.7"
+ is-data-view: "npm:^1.0.1"
+ is-negative-zero: "npm:^2.0.3"
+ is-regex: "npm:^1.1.4"
+ is-shared-array-buffer: "npm:^1.0.3"
+ is-string: "npm:^1.0.7"
+ is-typed-array: "npm:^1.1.13"
+ is-weakref: "npm:^1.0.2"
+ object-inspect: "npm:^1.13.1"
+ object-keys: "npm:^1.1.1"
+ object.assign: "npm:^4.1.5"
+ regexp.prototype.flags: "npm:^1.5.2"
+ safe-array-concat: "npm:^1.1.2"
+ safe-regex-test: "npm:^1.0.3"
+ string.prototype.trim: "npm:^1.2.9"
+ string.prototype.trimend: "npm:^1.0.8"
+ string.prototype.trimstart: "npm:^1.0.8"
+ typed-array-buffer: "npm:^1.0.2"
+ typed-array-byte-length: "npm:^1.0.1"
+ typed-array-byte-offset: "npm:^1.0.2"
+ typed-array-length: "npm:^1.0.6"
+ unbox-primitive: "npm:^1.0.2"
+ which-typed-array: "npm:^1.1.15"
+ checksum: 10c0/d27e9afafb225c6924bee9971a7f25f20c314f2d6cb93a63cada4ac11dcf42040896a6c22e5fb8f2a10767055ed4ddf400be3b1eb12297d281726de470b75666
+ languageName: node
+ linkType: hard
+
+"es-define-property@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "es-define-property@npm:1.0.0"
+ dependencies:
+ get-intrinsic: "npm:^1.2.4"
+ checksum: 10c0/6bf3191feb7ea2ebda48b577f69bdfac7a2b3c9bcf97307f55fd6ef1bbca0b49f0c219a935aca506c993d8c5d8bddd937766cb760cd5e5a1071351f2df9f9aa4
+ languageName: node
+ linkType: hard
+
+"es-errors@npm:^1.2.1, es-errors@npm:^1.3.0":
+ version: 1.3.0
+ resolution: "es-errors@npm:1.3.0"
+ checksum: 10c0/0a61325670072f98d8ae3b914edab3559b6caa980f08054a3b872052640d91da01d38df55df797fcc916389d77fc92b8d5906cf028f4db46d7e3003abecbca85
+ languageName: node
+ linkType: hard
+
+"es-iterator-helpers@npm:^1.0.15, es-iterator-helpers@npm:^1.0.19":
+ version: 1.0.19
+ resolution: "es-iterator-helpers@npm:1.0.19"
+ dependencies:
+ call-bind: "npm:^1.0.7"
+ define-properties: "npm:^1.2.1"
+ es-abstract: "npm:^1.23.3"
+ es-errors: "npm:^1.3.0"
+ es-set-tostringtag: "npm:^2.0.3"
+ function-bind: "npm:^1.1.2"
+ get-intrinsic: "npm:^1.2.4"
+ globalthis: "npm:^1.0.3"
+ has-property-descriptors: "npm:^1.0.2"
+ has-proto: "npm:^1.0.3"
+ has-symbols: "npm:^1.0.3"
+ internal-slot: "npm:^1.0.7"
+ iterator.prototype: "npm:^1.1.2"
+ safe-array-concat: "npm:^1.1.2"
+ checksum: 10c0/ae8f0241e383b3d197383b9842c48def7fce0255fb6ed049311b686ce295595d9e389b466f6a1b7d4e7bb92d82f5e716d6fae55e20c1040249bf976743b038c5
+ languageName: node
+ linkType: hard
+
+"es-object-atoms@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "es-object-atoms@npm:1.0.0"
+ dependencies:
+ es-errors: "npm:^1.3.0"
+ checksum: 10c0/1fed3d102eb27ab8d983337bb7c8b159dd2a1e63ff833ec54eea1311c96d5b08223b433060ba240541ca8adba9eee6b0a60cdbf2f80634b784febc9cc8b687b4
+ languageName: node
+ linkType: hard
+
+"es-set-tostringtag@npm:^2.0.3":
+ version: 2.0.3
+ resolution: "es-set-tostringtag@npm:2.0.3"
+ dependencies:
+ get-intrinsic: "npm:^1.2.4"
+ has-tostringtag: "npm:^1.0.2"
+ hasown: "npm:^2.0.1"
+ checksum: 10c0/f22aff1585eb33569c326323f0b0d175844a1f11618b86e193b386f8be0ea9474cfbe46df39c45d959f7aa8f6c06985dc51dd6bce5401645ec5a74c4ceaa836a
+ languageName: node
+ linkType: hard
+
+"es-shim-unscopables@npm:^1.0.0, es-shim-unscopables@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "es-shim-unscopables@npm:1.0.2"
+ dependencies:
+ hasown: "npm:^2.0.0"
+ checksum: 10c0/f495af7b4b7601a4c0cfb893581c352636e5c08654d129590386a33a0432cf13a7bdc7b6493801cadd990d838e2839b9013d1de3b880440cb537825e834fe783
+ languageName: node
+ linkType: hard
+
+"es-to-primitive@npm:^1.2.1":
+ version: 1.2.1
+ resolution: "es-to-primitive@npm:1.2.1"
+ dependencies:
+ is-callable: "npm:^1.1.4"
+ is-date-object: "npm:^1.0.1"
+ is-symbol: "npm:^1.0.2"
+ checksum: 10c0/0886572b8dc075cb10e50c0af62a03d03a68e1e69c388bd4f10c0649ee41b1fbb24840a1b7e590b393011b5cdbe0144b776da316762653685432df37d6de60f1
+ languageName: node
+ linkType: hard
+
+"escape-string-regexp@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "escape-string-regexp@npm:4.0.0"
+ checksum: 10c0/9497d4dd307d845bd7f75180d8188bb17ea8c151c1edbf6b6717c100e104d629dc2dfb687686181b0f4b7d732c7dfdc4d5e7a8ff72de1b0ca283a75bbb3a9cd9
+ languageName: node
+ linkType: hard
+
+"eslint-config-next@npm:13.0.5":
+ version: 13.0.5
+ resolution: "eslint-config-next@npm:13.0.5"
+ dependencies:
+ "@next/eslint-plugin-next": "npm:13.0.5"
+ "@rushstack/eslint-patch": "npm:^1.1.3"
+ "@typescript-eslint/parser": "npm:^5.42.0"
+ eslint-import-resolver-node: "npm:^0.3.6"
+ eslint-import-resolver-typescript: "npm:^3.5.2"
+ eslint-plugin-import: "npm:^2.26.0"
+ eslint-plugin-jsx-a11y: "npm:^6.5.1"
+ eslint-plugin-react: "npm:^7.31.7"
+ eslint-plugin-react-hooks: "npm:^4.5.0"
+ peerDependencies:
+ eslint: ^7.23.0 || ^8.0.0
+ typescript: ">=3.3.1"
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ checksum: 10c0/3f04508d00bb7a68fb52baae3e96734170bf040422cb9f2516fce145f0ce72b63c4683b29a6958373fde0f47d3f1b3c8d36a9dab89be535e7642dc99c726e38f
+ languageName: node
+ linkType: hard
+
+"eslint-import-resolver-node@npm:^0.3.6, eslint-import-resolver-node@npm:^0.3.9":
+ version: 0.3.9
+ resolution: "eslint-import-resolver-node@npm:0.3.9"
+ dependencies:
+ debug: "npm:^3.2.7"
+ is-core-module: "npm:^2.13.0"
+ resolve: "npm:^1.22.4"
+ checksum: 10c0/0ea8a24a72328a51fd95aa8f660dcca74c1429806737cf10261ab90cfcaaf62fd1eff664b76a44270868e0a932711a81b250053942595bcd00a93b1c1575dd61
+ languageName: node
+ linkType: hard
+
+"eslint-import-resolver-typescript@npm:^3.5.2":
+ version: 3.6.1
+ resolution: "eslint-import-resolver-typescript@npm:3.6.1"
+ dependencies:
+ debug: "npm:^4.3.4"
+ enhanced-resolve: "npm:^5.12.0"
+ eslint-module-utils: "npm:^2.7.4"
+ fast-glob: "npm:^3.3.1"
+ get-tsconfig: "npm:^4.5.0"
+ is-core-module: "npm:^2.11.0"
+ is-glob: "npm:^4.0.3"
+ peerDependencies:
+ eslint: "*"
+ eslint-plugin-import: "*"
+ checksum: 10c0/cb1cb4389916fe78bf8c8567aae2f69243dbfe624bfe21078c56ad46fa1ebf0634fa7239dd3b2055ab5c27359e4b4c28b69b11fcb3a5df8a9e6f7add8e034d86
+ languageName: node
+ linkType: hard
+
+"eslint-module-utils@npm:^2.7.4, eslint-module-utils@npm:^2.8.0":
+ version: 2.8.1
+ resolution: "eslint-module-utils@npm:2.8.1"
+ dependencies:
+ debug: "npm:^3.2.7"
+ peerDependenciesMeta:
+ eslint:
+ optional: true
+ checksum: 10c0/1aeeb97bf4b688d28de136ee57c824480c37691b40fa825c711a4caf85954e94b99c06ac639d7f1f6c1d69223bd21bcb991155b3e589488e958d5b83dfd0f882
+ languageName: node
+ linkType: hard
+
+"eslint-plugin-import@npm:^2.26.0":
+ version: 2.29.1
+ resolution: "eslint-plugin-import@npm:2.29.1"
+ dependencies:
+ array-includes: "npm:^3.1.7"
+ array.prototype.findlastindex: "npm:^1.2.3"
+ array.prototype.flat: "npm:^1.3.2"
+ array.prototype.flatmap: "npm:^1.3.2"
+ debug: "npm:^3.2.7"
+ doctrine: "npm:^2.1.0"
+ eslint-import-resolver-node: "npm:^0.3.9"
+ eslint-module-utils: "npm:^2.8.0"
+ hasown: "npm:^2.0.0"
+ is-core-module: "npm:^2.13.1"
+ is-glob: "npm:^4.0.3"
+ minimatch: "npm:^3.1.2"
+ object.fromentries: "npm:^2.0.7"
+ object.groupby: "npm:^1.0.1"
+ object.values: "npm:^1.1.7"
+ semver: "npm:^6.3.1"
+ tsconfig-paths: "npm:^3.15.0"
+ peerDependencies:
+ eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8
+ checksum: 10c0/5f35dfbf4e8e67f741f396987de9504ad125c49f4144508a93282b4ea0127e052bde65ab6def1f31b6ace6d5d430be698333f75bdd7dca3bc14226c92a083196
+ languageName: node
+ linkType: hard
+
+"eslint-plugin-jsx-a11y@npm:^6.5.1":
+ version: 6.8.0
+ resolution: "eslint-plugin-jsx-a11y@npm:6.8.0"
+ dependencies:
+ "@babel/runtime": "npm:^7.23.2"
+ aria-query: "npm:^5.3.0"
+ array-includes: "npm:^3.1.7"
+ array.prototype.flatmap: "npm:^1.3.2"
+ ast-types-flow: "npm:^0.0.8"
+ axe-core: "npm:=4.7.0"
+ axobject-query: "npm:^3.2.1"
+ damerau-levenshtein: "npm:^1.0.8"
+ emoji-regex: "npm:^9.2.2"
+ es-iterator-helpers: "npm:^1.0.15"
+ hasown: "npm:^2.0.0"
+ jsx-ast-utils: "npm:^3.3.5"
+ language-tags: "npm:^1.0.9"
+ minimatch: "npm:^3.1.2"
+ object.entries: "npm:^1.1.7"
+ object.fromentries: "npm:^2.0.7"
+ peerDependencies:
+ eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8
+ checksum: 10c0/199b883e526e6f9d7c54cb3f094abc54f11a1ec816db5fb6cae3b938eb0e503acc10ccba91ca7451633a9d0b9abc0ea03601844a8aba5fe88c5e8897c9ac8f49
+ languageName: node
+ linkType: hard
+
+"eslint-plugin-react-hooks@npm:^4.5.0":
+ version: 4.6.2
+ resolution: "eslint-plugin-react-hooks@npm:4.6.2"
+ peerDependencies:
+ eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0
+ checksum: 10c0/4844e58c929bc05157fb70ba1e462e34f1f4abcbc8dd5bbe5b04513d33e2699effb8bca668297976ceea8e7ebee4e8fc29b9af9d131bcef52886feaa2308b2cc
+ languageName: node
+ linkType: hard
+
+"eslint-plugin-react@npm:^7.31.7":
+ version: 7.34.2
+ resolution: "eslint-plugin-react@npm:7.34.2"
+ dependencies:
+ array-includes: "npm:^3.1.8"
+ array.prototype.findlast: "npm:^1.2.5"
+ array.prototype.flatmap: "npm:^1.3.2"
+ array.prototype.toreversed: "npm:^1.1.2"
+ array.prototype.tosorted: "npm:^1.1.3"
+ doctrine: "npm:^2.1.0"
+ es-iterator-helpers: "npm:^1.0.19"
+ estraverse: "npm:^5.3.0"
+ jsx-ast-utils: "npm:^2.4.1 || ^3.0.0"
+ minimatch: "npm:^3.1.2"
+ object.entries: "npm:^1.1.8"
+ object.fromentries: "npm:^2.0.8"
+ object.hasown: "npm:^1.1.4"
+ object.values: "npm:^1.2.0"
+ prop-types: "npm:^15.8.1"
+ resolve: "npm:^2.0.0-next.5"
+ semver: "npm:^6.3.1"
+ string.prototype.matchall: "npm:^4.0.11"
+ peerDependencies:
+ eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8
+ checksum: 10c0/37dc04424da8626f20a071466e7238d53ed111c53e5e5398d813ac2cf76a2078f00d91f7833fe5b2f0fc98f2688a75b36e78e9ada9f1068705d23c7031094316
+ languageName: node
+ linkType: hard
+
+"eslint-scope@npm:^7.1.1":
+ version: 7.2.2
+ resolution: "eslint-scope@npm:7.2.2"
+ dependencies:
+ esrecurse: "npm:^4.3.0"
+ estraverse: "npm:^5.2.0"
+ checksum: 10c0/613c267aea34b5a6d6c00514e8545ef1f1433108097e857225fed40d397dd6b1809dffd11c2fde23b37ca53d7bf935fe04d2a18e6fc932b31837b6ad67e1c116
+ languageName: node
+ linkType: hard
+
+"eslint-utils@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "eslint-utils@npm:3.0.0"
+ dependencies:
+ eslint-visitor-keys: "npm:^2.0.0"
+ peerDependencies:
+ eslint: ">=5"
+ checksum: 10c0/45aa2b63667a8d9b474c98c28af908d0a592bed1a4568f3145cd49fb5d9510f545327ec95561625290313fe126e6d7bdfe3fdbdb6f432689fab6b9497d3bfb52
+ languageName: node
+ linkType: hard
+
+"eslint-visitor-keys@npm:^2.0.0":
+ version: 2.1.0
+ resolution: "eslint-visitor-keys@npm:2.1.0"
+ checksum: 10c0/9f0e3a2db751d84067d15977ac4b4472efd6b303e369e6ff241a99feac04da758f46d5add022c33d06b53596038dbae4b4aceb27c7e68b8dfc1055b35e495787
+ languageName: node
+ linkType: hard
+
+"eslint-visitor-keys@npm:^3.3.0, eslint-visitor-keys@npm:^3.4.1":
+ version: 3.4.3
+ resolution: "eslint-visitor-keys@npm:3.4.3"
+ checksum: 10c0/92708e882c0a5ffd88c23c0b404ac1628cf20104a108c745f240a13c332a11aac54f49a22d5762efbffc18ecbc9a580d1b7ad034bf5f3cc3307e5cbff2ec9820
+ languageName: node
+ linkType: hard
+
+"eslint@npm:8.28.0":
+ version: 8.28.0
+ resolution: "eslint@npm:8.28.0"
+ dependencies:
+ "@eslint/eslintrc": "npm:^1.3.3"
+ "@humanwhocodes/config-array": "npm:^0.11.6"
+ "@humanwhocodes/module-importer": "npm:^1.0.1"
+ "@nodelib/fs.walk": "npm:^1.2.8"
+ ajv: "npm:^6.10.0"
+ chalk: "npm:^4.0.0"
+ cross-spawn: "npm:^7.0.2"
+ debug: "npm:^4.3.2"
+ doctrine: "npm:^3.0.0"
+ escape-string-regexp: "npm:^4.0.0"
+ eslint-scope: "npm:^7.1.1"
+ eslint-utils: "npm:^3.0.0"
+ eslint-visitor-keys: "npm:^3.3.0"
+ espree: "npm:^9.4.0"
+ esquery: "npm:^1.4.0"
+ esutils: "npm:^2.0.2"
+ fast-deep-equal: "npm:^3.1.3"
+ file-entry-cache: "npm:^6.0.1"
+ find-up: "npm:^5.0.0"
+ glob-parent: "npm:^6.0.2"
+ globals: "npm:^13.15.0"
+ grapheme-splitter: "npm:^1.0.4"
+ ignore: "npm:^5.2.0"
+ import-fresh: "npm:^3.0.0"
+ imurmurhash: "npm:^0.1.4"
+ is-glob: "npm:^4.0.0"
+ is-path-inside: "npm:^3.0.3"
+ js-sdsl: "npm:^4.1.4"
+ js-yaml: "npm:^4.1.0"
+ json-stable-stringify-without-jsonify: "npm:^1.0.1"
+ levn: "npm:^0.4.1"
+ lodash.merge: "npm:^4.6.2"
+ minimatch: "npm:^3.1.2"
+ natural-compare: "npm:^1.4.0"
+ optionator: "npm:^0.9.1"
+ regexpp: "npm:^3.2.0"
+ strip-ansi: "npm:^6.0.1"
+ strip-json-comments: "npm:^3.1.0"
+ text-table: "npm:^0.2.0"
+ bin:
+ eslint: bin/eslint.js
+ checksum: 10c0/5378ee96346cf0c59e9a1de002f7bd19c2c0642ad8010f18254936563fa3cfd1d34fd420de5a31866aab1fa586875d39e4cef6b9367c2a361f2106723f900db2
+ languageName: node
+ linkType: hard
+
+"espree@npm:^9.4.0":
+ version: 9.6.1
+ resolution: "espree@npm:9.6.1"
+ dependencies:
+ acorn: "npm:^8.9.0"
+ acorn-jsx: "npm:^5.3.2"
+ eslint-visitor-keys: "npm:^3.4.1"
+ checksum: 10c0/1a2e9b4699b715347f62330bcc76aee224390c28bb02b31a3752e9d07549c473f5f986720483c6469cf3cfb3c9d05df612ffc69eb1ee94b54b739e67de9bb460
+ languageName: node
+ linkType: hard
+
+"esquery@npm:^1.4.0":
+ version: 1.5.0
+ resolution: "esquery@npm:1.5.0"
+ dependencies:
+ estraverse: "npm:^5.1.0"
+ checksum: 10c0/a084bd049d954cc88ac69df30534043fb2aee5555b56246493f42f27d1e168f00d9e5d4192e46f10290d312dc30dc7d58994d61a609c579c1219d636996f9213
+ languageName: node
+ linkType: hard
+
+"esrecurse@npm:^4.3.0":
+ version: 4.3.0
+ resolution: "esrecurse@npm:4.3.0"
+ dependencies:
+ estraverse: "npm:^5.2.0"
+ checksum: 10c0/81a37116d1408ded88ada45b9fb16dbd26fba3aadc369ce50fcaf82a0bac12772ebd7b24cd7b91fc66786bf2c1ac7b5f196bc990a473efff972f5cb338877cf5
+ languageName: node
+ linkType: hard
+
+"estraverse@npm:^5.1.0, estraverse@npm:^5.2.0, estraverse@npm:^5.3.0":
+ version: 5.3.0
+ resolution: "estraverse@npm:5.3.0"
+ checksum: 10c0/1ff9447b96263dec95d6d67431c5e0771eb9776427421260a3e2f0fdd5d6bd4f8e37a7338f5ad2880c9f143450c9b1e4fc2069060724570a49cf9cf0312bd107
+ languageName: node
+ linkType: hard
+
+"estree-util-is-identifier-name@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "estree-util-is-identifier-name@npm:3.0.0"
+ checksum: 10c0/d1881c6ed14bd588ebd508fc90bf2a541811dbb9ca04dec2f39d27dcaa635f85b5ed9bbbe7fc6fb1ddfca68744a5f7c70456b4b7108b6c4c52780631cc787c5b
+ languageName: node
+ linkType: hard
+
+"esutils@npm:^2.0.2":
+ version: 2.0.3
+ resolution: "esutils@npm:2.0.3"
+ checksum: 10c0/9a2fe69a41bfdade834ba7c42de4723c97ec776e40656919c62cbd13607c45e127a003f05f724a1ea55e5029a4cf2de444b13009f2af71271e42d93a637137c7
+ languageName: node
+ linkType: hard
+
+"eth-rpc-errors@npm:^4.0.2":
+ version: 4.0.3
+ resolution: "eth-rpc-errors@npm:4.0.3"
+ dependencies:
+ fast-safe-stringify: "npm:^2.0.6"
+ checksum: 10c0/332cbc5a957b62bb66ea01da2a467da65026df47e6516a286a969cad74d6002f2b481335510c93f12ca29c46ebc8354e39e2240769d86184f9b4c30832cf5466
+ languageName: node
+ linkType: hard
+
+"ethers@npm:^5.7.2":
+ version: 5.7.2
+ resolution: "ethers@npm:5.7.2"
+ dependencies:
+ "@ethersproject/abi": "npm:5.7.0"
+ "@ethersproject/abstract-provider": "npm:5.7.0"
+ "@ethersproject/abstract-signer": "npm:5.7.0"
+ "@ethersproject/address": "npm:5.7.0"
+ "@ethersproject/base64": "npm:5.7.0"
+ "@ethersproject/basex": "npm:5.7.0"
+ "@ethersproject/bignumber": "npm:5.7.0"
+ "@ethersproject/bytes": "npm:5.7.0"
+ "@ethersproject/constants": "npm:5.7.0"
+ "@ethersproject/contracts": "npm:5.7.0"
+ "@ethersproject/hash": "npm:5.7.0"
+ "@ethersproject/hdnode": "npm:5.7.0"
+ "@ethersproject/json-wallets": "npm:5.7.0"
+ "@ethersproject/keccak256": "npm:5.7.0"
+ "@ethersproject/logger": "npm:5.7.0"
+ "@ethersproject/networks": "npm:5.7.1"
+ "@ethersproject/pbkdf2": "npm:5.7.0"
+ "@ethersproject/properties": "npm:5.7.0"
+ "@ethersproject/providers": "npm:5.7.2"
+ "@ethersproject/random": "npm:5.7.0"
+ "@ethersproject/rlp": "npm:5.7.0"
+ "@ethersproject/sha2": "npm:5.7.0"
+ "@ethersproject/signing-key": "npm:5.7.0"
+ "@ethersproject/solidity": "npm:5.7.0"
+ "@ethersproject/strings": "npm:5.7.0"
+ "@ethersproject/transactions": "npm:5.7.0"
+ "@ethersproject/units": "npm:5.7.0"
+ "@ethersproject/wallet": "npm:5.7.0"
+ "@ethersproject/web": "npm:5.7.1"
+ "@ethersproject/wordlists": "npm:5.7.0"
+ checksum: 10c0/90629a4cdb88cde7a7694f5610a83eb00d7fbbaea687446b15631397988f591c554dd68dfa752ddf00aabefd6285e5b298be44187e960f5e4962684e10b39962
+ languageName: node
+ linkType: hard
+
+"events@npm:3.3.0, events@npm:^3.3.0":
+ version: 3.3.0
+ resolution: "events@npm:3.3.0"
+ checksum: 10c0/d6b6f2adbccbcda74ddbab52ed07db727ef52e31a61ed26db9feb7dc62af7fc8e060defa65e5f8af9449b86b52cc1a1f6a79f2eafcf4e62add2b7a1fa4a432f6
+ languageName: node
+ linkType: hard
+
+"evp_bytestokey@npm:^1.0.0, evp_bytestokey@npm:^1.0.3":
+ version: 1.0.3
+ resolution: "evp_bytestokey@npm:1.0.3"
+ dependencies:
+ md5.js: "npm:^1.3.4"
+ node-gyp: "npm:latest"
+ safe-buffer: "npm:^5.1.1"
+ checksum: 10c0/77fbe2d94a902a80e9b8f5a73dcd695d9c14899c5e82967a61b1fc6cbbb28c46552d9b127cff47c45fcf684748bdbcfa0a50410349109de87ceb4b199ef6ee99
+ languageName: node
+ linkType: hard
+
+"execa@npm:^8.0.1":
+ version: 8.0.1
+ resolution: "execa@npm:8.0.1"
+ dependencies:
+ cross-spawn: "npm:^7.0.3"
+ get-stream: "npm:^8.0.1"
+ human-signals: "npm:^5.0.0"
+ is-stream: "npm:^3.0.0"
+ merge-stream: "npm:^2.0.0"
+ npm-run-path: "npm:^5.1.0"
+ onetime: "npm:^6.0.0"
+ signal-exit: "npm:^4.1.0"
+ strip-final-newline: "npm:^3.0.0"
+ checksum: 10c0/2c52d8775f5bf103ce8eec9c7ab3059909ba350a5164744e9947ed14a53f51687c040a250bda833f906d1283aa8803975b84e6c8f7a7c42f99dc8ef80250d1af
+ languageName: node
+ linkType: hard
+
+"exponential-backoff@npm:^3.1.1":
+ version: 3.1.1
+ resolution: "exponential-backoff@npm:3.1.1"
+ checksum: 10c0/160456d2d647e6019640bd07111634d8c353038d9fa40176afb7cd49b0548bdae83b56d05e907c2cce2300b81cae35d800ef92fefb9d0208e190fa3b7d6bb579
+ languageName: node
+ linkType: hard
+
+"extend@npm:^3.0.0":
+ version: 3.0.2
+ resolution: "extend@npm:3.0.2"
+ checksum: 10c0/73bf6e27406e80aa3e85b0d1c4fd987261e628064e170ca781125c0b635a3dabad5e05adbf07595ea0cf1e6c5396cacb214af933da7cbaf24fe75ff14818e8f9
+ languageName: node
+ linkType: hard
+
+"extension-port-stream@npm:^2.1.1":
+ version: 2.1.1
+ resolution: "extension-port-stream@npm:2.1.1"
+ dependencies:
+ webextension-polyfill: "npm:>=0.10.0 <1.0"
+ checksum: 10c0/e3fb183669fee8adbb0fecdd0aa604feb976dc9d54c42da6c838c97c10be7f7f33c5341f198401e21216e1dd536fadd7b3f4bdf8e1bb38bbe3f135ecc3f6fda4
+ languageName: node
+ linkType: hard
+
+"fast-deep-equal@npm:^3.1.1, fast-deep-equal@npm:^3.1.3":
+ version: 3.1.3
+ resolution: "fast-deep-equal@npm:3.1.3"
+ checksum: 10c0/40dedc862eb8992c54579c66d914635afbec43350afbbe991235fdcb4e3a8d5af1b23ae7e79bef7d4882d0ecee06c3197488026998fb19f72dc95acff1d1b1d0
+ languageName: node
+ linkType: hard
+
+"fast-glob@npm:^3.2.9, fast-glob@npm:^3.3.1":
+ version: 3.3.2
+ resolution: "fast-glob@npm:3.3.2"
+ dependencies:
+ "@nodelib/fs.stat": "npm:^2.0.2"
+ "@nodelib/fs.walk": "npm:^1.2.3"
+ glob-parent: "npm:^5.1.2"
+ merge2: "npm:^1.3.0"
+ micromatch: "npm:^4.0.4"
+ checksum: 10c0/42baad7b9cd40b63e42039132bde27ca2cb3a4950d0a0f9abe4639ea1aa9d3e3b40f98b1fe31cbc0cc17b664c9ea7447d911a152fa34ec5b72977b125a6fc845
+ languageName: node
+ linkType: hard
+
+"fast-json-stable-stringify@npm:^2.0.0":
+ version: 2.1.0
+ resolution: "fast-json-stable-stringify@npm:2.1.0"
+ checksum: 10c0/7f081eb0b8a64e0057b3bb03f974b3ef00135fbf36c1c710895cd9300f13c94ba809bb3a81cf4e1b03f6e5285610a61abbd7602d0652de423144dfee5a389c9b
+ languageName: node
+ linkType: hard
+
+"fast-levenshtein@npm:^2.0.6":
+ version: 2.0.6
+ resolution: "fast-levenshtein@npm:2.0.6"
+ checksum: 10c0/111972b37338bcb88f7d9e2c5907862c280ebf4234433b95bc611e518d192ccb2d38119c4ac86e26b668d75f7f3894f4ff5c4982899afced7ca78633b08287c4
+ languageName: node
+ linkType: hard
+
+"fast-redact@npm:^3.0.0":
+ version: 3.5.0
+ resolution: "fast-redact@npm:3.5.0"
+ checksum: 10c0/7e2ce4aad6e7535e0775bf12bd3e4f2e53d8051d8b630e0fa9e67f68cb0b0e6070d2f7a94b1d0522ef07e32f7c7cda5755e2b677a6538f1e9070ca053c42343a
+ languageName: node
+ linkType: hard
+
+"fast-safe-stringify@npm:^2.0.6":
+ version: 2.1.1
+ resolution: "fast-safe-stringify@npm:2.1.1"
+ checksum: 10c0/d90ec1c963394919828872f21edaa3ad6f1dddd288d2bd4e977027afff09f5db40f94e39536d4646f7e01761d704d72d51dce5af1b93717f3489ef808f5f4e4d
+ languageName: node
+ linkType: hard
+
+"fastq@npm:^1.6.0":
+ version: 1.17.1
+ resolution: "fastq@npm:1.17.1"
+ dependencies:
+ reusify: "npm:^1.0.4"
+ checksum: 10c0/1095f16cea45fb3beff558bb3afa74ca7a9250f5a670b65db7ed585f92b4b48381445cd328b3d87323da81e43232b5d5978a8201bde84e0cd514310f1ea6da34
+ languageName: node
+ linkType: hard
+
+"file-entry-cache@npm:^6.0.1":
+ version: 6.0.1
+ resolution: "file-entry-cache@npm:6.0.1"
+ dependencies:
+ flat-cache: "npm:^3.0.4"
+ checksum: 10c0/58473e8a82794d01b38e5e435f6feaf648e3f36fdb3a56e98f417f4efae71ad1c0d4ebd8a9a7c50c3ad085820a93fc7494ad721e0e4ebc1da3573f4e1c3c7cdd
+ languageName: node
+ linkType: hard
+
+"file-selector@npm:^0.6.0":
+ version: 0.6.0
+ resolution: "file-selector@npm:0.6.0"
+ dependencies:
+ tslib: "npm:^2.4.0"
+ checksum: 10c0/477ca1b56274db9fee1a8a623c4bfef580389726a5fef843af8c1f2f17f70ec2d1e41b29115777c92e120a15f1cca734c6ef36bb48bfa2ee027c68da16cd0d28
+ languageName: node
+ linkType: hard
+
+"file-uri-to-path@npm:1.0.0":
+ version: 1.0.0
+ resolution: "file-uri-to-path@npm:1.0.0"
+ checksum: 10c0/3b545e3a341d322d368e880e1c204ef55f1d45cdea65f7efc6c6ce9e0c4d22d802d5629320eb779d006fe59624ac17b0e848d83cc5af7cd101f206cb704f5519
+ languageName: node
+ linkType: hard
+
+"fill-range@npm:^7.0.1":
+ version: 7.0.1
+ resolution: "fill-range@npm:7.0.1"
+ dependencies:
+ to-regex-range: "npm:^5.0.1"
+ checksum: 10c0/7cdad7d426ffbaadf45aeb5d15ec675bbd77f7597ad5399e3d2766987ed20bda24d5fac64b3ee79d93276f5865608bb22344a26b9b1ae6c4d00bd94bf611623f
+ languageName: node
+ linkType: hard
+
+"fill-range@npm:^7.1.1":
+ version: 7.1.1
+ resolution: "fill-range@npm:7.1.1"
+ dependencies:
+ to-regex-range: "npm:^5.0.1"
+ checksum: 10c0/b75b691bbe065472f38824f694c2f7449d7f5004aa950426a2c28f0306c60db9b880c0b0e4ed819997ffb882d1da02cfcfc819bddc94d71627f5269682edf018
+ languageName: node
+ linkType: hard
+
+"filter-obj@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "filter-obj@npm:1.1.0"
+ checksum: 10c0/071e0886b2b50238ca5026c5bbf58c26a7c1a1f720773b8c7813d16ba93d0200de977af14ac143c5ac18f666b2cfc83073f3a5fe6a4e996c49e0863d5500fccf
+ languageName: node
+ linkType: hard
+
+"find-up@npm:^5.0.0":
+ version: 5.0.0
+ resolution: "find-up@npm:5.0.0"
+ dependencies:
+ locate-path: "npm:^6.0.0"
+ path-exists: "npm:^4.0.0"
+ checksum: 10c0/062c5a83a9c02f53cdd6d175a37ecf8f87ea5bbff1fdfb828f04bfa021441bc7583e8ebc0872a4c1baab96221fb8a8a275a19809fb93fbc40bd69ec35634069a
+ languageName: node
+ linkType: hard
+
+"flat-cache@npm:^3.0.4":
+ version: 3.2.0
+ resolution: "flat-cache@npm:3.2.0"
+ dependencies:
+ flatted: "npm:^3.2.9"
+ keyv: "npm:^4.5.3"
+ rimraf: "npm:^3.0.2"
+ checksum: 10c0/b76f611bd5f5d68f7ae632e3ae503e678d205cf97a17c6ab5b12f6ca61188b5f1f7464503efae6dc18683ed8f0b41460beb48ac4b9ac63fe6201296a91ba2f75
+ languageName: node
+ linkType: hard
+
+"flatted@npm:^3.2.9":
+ version: 3.3.1
+ resolution: "flatted@npm:3.3.1"
+ checksum: 10c0/324166b125ee07d4ca9bcf3a5f98d915d5db4f39d711fba640a3178b959919aae1f7cfd8aabcfef5826ed8aa8a2aa14cc85b2d7d18ff638ddf4ae3df39573eaf
+ languageName: node
+ linkType: hard
+
+"follow-redirects@npm:^1.14.0, follow-redirects@npm:^1.14.9, follow-redirects@npm:^1.15.6":
+ version: 1.15.6
+ resolution: "follow-redirects@npm:1.15.6"
+ peerDependenciesMeta:
+ debug:
+ optional: true
+ checksum: 10c0/9ff767f0d7be6aa6870c82ac79cf0368cd73e01bbc00e9eb1c2a16fbb198ec105e3c9b6628bb98e9f3ac66fe29a957b9645bcb9a490bb7aa0d35f908b6b85071
+ languageName: node
+ linkType: hard
+
+"for-each@npm:^0.3.3":
+ version: 0.3.3
+ resolution: "for-each@npm:0.3.3"
+ dependencies:
+ is-callable: "npm:^1.1.3"
+ checksum: 10c0/22330d8a2db728dbf003ec9182c2d421fbcd2969b02b4f97ec288721cda63eb28f2c08585ddccd0f77cb2930af8d958005c9e72f47141dc51816127a118f39aa
+ languageName: node
+ linkType: hard
+
+"foreground-child@npm:^3.1.0":
+ version: 3.1.1
+ resolution: "foreground-child@npm:3.1.1"
+ dependencies:
+ cross-spawn: "npm:^7.0.0"
+ signal-exit: "npm:^4.0.1"
+ checksum: 10c0/9700a0285628abaeb37007c9a4d92bd49f67210f09067638774338e146c8e9c825c5c877f072b2f75f41dc6a2d0be8664f79ffc03f6576649f54a84fb9b47de0
+ languageName: node
+ linkType: hard
+
+"form-data@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "form-data@npm:4.0.0"
+ dependencies:
+ asynckit: "npm:^0.4.0"
+ combined-stream: "npm:^1.0.8"
+ mime-types: "npm:^2.1.12"
+ checksum: 10c0/cb6f3ac49180be03ff07ba3ff125f9eba2ff0b277fb33c7fc47569fc5e616882c5b1c69b9904c4c4187e97dd0419dd03b134174756f296dec62041e6527e2c6e
+ languageName: node
+ linkType: hard
+
+"fs-minipass@npm:^2.0.0":
+ version: 2.1.0
+ resolution: "fs-minipass@npm:2.1.0"
+ dependencies:
+ minipass: "npm:^3.0.0"
+ checksum: 10c0/703d16522b8282d7299337539c3ed6edddd1afe82435e4f5b76e34a79cd74e488a8a0e26a636afc2440e1a23b03878e2122e3a2cfe375a5cf63c37d92b86a004
+ languageName: node
+ linkType: hard
+
+"fs-minipass@npm:^3.0.0":
+ version: 3.0.3
+ resolution: "fs-minipass@npm:3.0.3"
+ dependencies:
+ minipass: "npm:^7.0.3"
+ checksum: 10c0/63e80da2ff9b621e2cb1596abcb9207f1cf82b968b116ccd7b959e3323144cce7fb141462200971c38bbf2ecca51695069db45265705bed09a7cd93ae5b89f94
+ languageName: node
+ linkType: hard
+
+"fs.realpath@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "fs.realpath@npm:1.0.0"
+ checksum: 10c0/444cf1291d997165dfd4c0d58b69f0e4782bfd9149fd72faa4fe299e68e0e93d6db941660b37dd29153bf7186672ececa3b50b7e7249477b03fdf850f287c948
+ languageName: node
+ linkType: hard
+
+"fsevents@npm:~2.3.2":
+ version: 2.3.3
+ resolution: "fsevents@npm:2.3.3"
+ dependencies:
+ node-gyp: "npm:latest"
+ checksum: 10c0/a1f0c44595123ed717febbc478aa952e47adfc28e2092be66b8ab1635147254ca6cfe1df792a8997f22716d4cbafc73309899ff7bfac2ac3ad8cf2e4ecc3ec60
+ conditions: os=darwin
+ languageName: node
+ linkType: hard
+
+"fsevents@patch:fsevents@npm%3A~2.3.2#optional!builtin":
+ version: 2.3.3
+ resolution: "fsevents@patch:fsevents@npm%3A2.3.3#optional!builtin::version=2.3.3&hash=df0bf1"
+ dependencies:
+ node-gyp: "npm:latest"
+ conditions: os=darwin
+ languageName: node
+ linkType: hard
+
+"function-bind@npm:^1.1.2":
+ version: 1.1.2
+ resolution: "function-bind@npm:1.1.2"
+ checksum: 10c0/d8680ee1e5fcd4c197e4ac33b2b4dce03c71f4d91717292785703db200f5c21f977c568d28061226f9b5900cbcd2c84463646134fd5337e7925e0942bc3f46d5
+ languageName: node
+ linkType: hard
+
+"function.prototype.name@npm:^1.1.5, function.prototype.name@npm:^1.1.6":
+ version: 1.1.6
+ resolution: "function.prototype.name@npm:1.1.6"
+ dependencies:
+ call-bind: "npm:^1.0.2"
+ define-properties: "npm:^1.2.0"
+ es-abstract: "npm:^1.22.1"
+ functions-have-names: "npm:^1.2.3"
+ checksum: 10c0/9eae11294905b62cb16874adb4fc687927cda3162285e0ad9612e6a1d04934005d46907362ea9cdb7428edce05a2f2c3dabc3b2d21e9fd343e9bb278230ad94b
+ languageName: node
+ linkType: hard
+
+"functions-have-names@npm:^1.2.3":
+ version: 1.2.3
+ resolution: "functions-have-names@npm:1.2.3"
+ checksum: 10c0/33e77fd29bddc2d9bb78ab3eb854c165909201f88c75faa8272e35899e2d35a8a642a15e7420ef945e1f64a9670d6aa3ec744106b2aa42be68ca5114025954ca
+ languageName: node
+ linkType: hard
+
+"generate-lockfile@npm:0.0.12":
+ version: 0.0.12
+ resolution: "generate-lockfile@npm:0.0.12"
+ dependencies:
+ "@yarnpkg/lockfile": "npm:^1.1.0"
+ chalk: "npm:^4.1.0"
+ commander-plus: "npm:^0.0.6"
+ bin:
+ generate-lockfile: bin/index.js
+ checksum: 10c0/c573e6a9137cb82c57022587dcb0d4024b2ffcaf8c87a95cb7c17c41d3303a0dd414c06ceb905f48f7bb653da13a490ba324d12350a5bd945289206170b02d99
+ languageName: node
+ linkType: hard
+
+"get-intrinsic@npm:^1.1.3, get-intrinsic@npm:^1.2.1, get-intrinsic@npm:^1.2.3, get-intrinsic@npm:^1.2.4":
+ version: 1.2.4
+ resolution: "get-intrinsic@npm:1.2.4"
+ dependencies:
+ es-errors: "npm:^1.3.0"
+ function-bind: "npm:^1.1.2"
+ has-proto: "npm:^1.0.1"
+ has-symbols: "npm:^1.0.3"
+ hasown: "npm:^2.0.0"
+ checksum: 10c0/0a9b82c16696ed6da5e39b1267104475c47e3a9bdbe8b509dfe1710946e38a87be70d759f4bb3cda042d76a41ef47fe769660f3b7c0d1f68750299344ffb15b7
+ languageName: node
+ linkType: hard
+
+"get-port-please@npm:^3.1.2":
+ version: 3.1.2
+ resolution: "get-port-please@npm:3.1.2"
+ checksum: 10c0/61237342fe035967e5ad1b67a2dee347a64de093bf1222b7cd50072568d73c48dad5cc5cd4fa44635b7cfdcd14d6c47554edb9891c2ec70ab33ecb831683e257
+ languageName: node
+ linkType: hard
+
+"get-stream@npm:^8.0.1":
+ version: 8.0.1
+ resolution: "get-stream@npm:8.0.1"
+ checksum: 10c0/5c2181e98202b9dae0bb4a849979291043e5892eb40312b47f0c22b9414fc9b28a3b6063d2375705eb24abc41ecf97894d9a51f64ff021511b504477b27b4290
+ languageName: node
+ linkType: hard
+
+"get-symbol-description@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "get-symbol-description@npm:1.0.2"
+ dependencies:
+ call-bind: "npm:^1.0.5"
+ es-errors: "npm:^1.3.0"
+ get-intrinsic: "npm:^1.2.4"
+ checksum: 10c0/867be6d63f5e0eb026cb3b0ef695ec9ecf9310febb041072d2e142f260bd91ced9eeb426b3af98791d1064e324e653424afa6fd1af17dee373bea48ae03162bc
+ languageName: node
+ linkType: hard
+
+"get-tsconfig@npm:^4.5.0":
+ version: 4.7.5
+ resolution: "get-tsconfig@npm:4.7.5"
+ dependencies:
+ resolve-pkg-maps: "npm:^1.0.0"
+ checksum: 10c0/a917dff2ba9ee187c41945736bf9bbab65de31ce5bc1effd76267be483a7340915cff232199406379f26517d2d0a4edcdbcda8cca599c2480a0f2cf1e1de3efa
+ languageName: node
+ linkType: hard
+
+"glob-parent@npm:^5.1.2, glob-parent@npm:~5.1.2":
+ version: 5.1.2
+ resolution: "glob-parent@npm:5.1.2"
+ dependencies:
+ is-glob: "npm:^4.0.1"
+ checksum: 10c0/cab87638e2112bee3f839ef5f6e0765057163d39c66be8ec1602f3823da4692297ad4e972de876ea17c44d652978638d2fd583c6713d0eb6591706825020c9ee
+ languageName: node
+ linkType: hard
+
+"glob-parent@npm:^6.0.2":
+ version: 6.0.2
+ resolution: "glob-parent@npm:6.0.2"
+ dependencies:
+ is-glob: "npm:^4.0.3"
+ checksum: 10c0/317034d88654730230b3f43bb7ad4f7c90257a426e872ea0bf157473ac61c99bf5d205fad8f0185f989be8d2fa6d3c7dce1645d99d545b6ea9089c39f838e7f8
+ languageName: node
+ linkType: hard
+
+"glob-to-regexp@npm:^0.4.1":
+ version: 0.4.1
+ resolution: "glob-to-regexp@npm:0.4.1"
+ checksum: 10c0/0486925072d7a916f052842772b61c3e86247f0a80cc0deb9b5a3e8a1a9faad5b04fb6f58986a09f34d3e96cd2a22a24b7e9882fb1cf904c31e9a310de96c429
+ languageName: node
+ linkType: hard
+
+"glob@npm:7.1.7":
+ version: 7.1.7
+ resolution: "glob@npm:7.1.7"
+ dependencies:
+ fs.realpath: "npm:^1.0.0"
+ inflight: "npm:^1.0.4"
+ inherits: "npm:2"
+ minimatch: "npm:^3.0.4"
+ once: "npm:^1.3.0"
+ path-is-absolute: "npm:^1.0.0"
+ checksum: 10c0/173245e6f9ccf904309eb7ef4a44a11f3bf68e9e341dff5a28b5db0dd7123b7506daf41497f3437a0710f57198187b758c2351eeaabce4d16935e956920da6a4
+ languageName: node
+ linkType: hard
+
+"glob@npm:^10.2.2, glob@npm:^10.3.10":
+ version: 10.4.1
+ resolution: "glob@npm:10.4.1"
+ dependencies:
+ foreground-child: "npm:^3.1.0"
+ jackspeak: "npm:^3.1.2"
+ minimatch: "npm:^9.0.4"
+ minipass: "npm:^7.1.2"
+ path-scurry: "npm:^1.11.1"
+ bin:
+ glob: dist/esm/bin.mjs
+ checksum: 10c0/77f2900ed98b9cc2a0e1901ee5e476d664dae3cd0f1b662b8bfd4ccf00d0edc31a11595807706a274ca10e1e251411bbf2e8e976c82bed0d879a9b89343ed379
+ languageName: node
+ linkType: hard
+
+"glob@npm:^7.0.0, glob@npm:^7.1.3":
+ version: 7.2.3
+ resolution: "glob@npm:7.2.3"
+ dependencies:
+ fs.realpath: "npm:^1.0.0"
+ inflight: "npm:^1.0.4"
+ inherits: "npm:2"
+ minimatch: "npm:^3.1.1"
+ once: "npm:^1.3.0"
+ path-is-absolute: "npm:^1.0.0"
+ checksum: 10c0/65676153e2b0c9095100fe7f25a778bf45608eeb32c6048cf307f579649bcc30353277b3b898a3792602c65764e5baa4f643714dfbdfd64ea271d210c7a425fe
+ languageName: node
+ linkType: hard
+
+"globals@npm:^13.15.0, globals@npm:^13.19.0":
+ version: 13.24.0
+ resolution: "globals@npm:13.24.0"
+ dependencies:
+ type-fest: "npm:^0.20.2"
+ checksum: 10c0/d3c11aeea898eb83d5ec7a99508600fbe8f83d2cf00cbb77f873dbf2bcb39428eff1b538e4915c993d8a3b3473fa71eeebfe22c9bb3a3003d1e26b1f2c8a42cd
+ languageName: node
+ linkType: hard
+
+"globalthis@npm:^1.0.1":
+ version: 1.0.3
+ resolution: "globalthis@npm:1.0.3"
+ dependencies:
+ define-properties: "npm:^1.1.3"
+ checksum: 10c0/0db6e9af102a5254630351557ac15e6909bc7459d3e3f6b001e59fe784c96d31108818f032d9095739355a88467459e6488ff16584ee6250cd8c27dec05af4b0
+ languageName: node
+ linkType: hard
+
+"globalthis@npm:^1.0.3":
+ version: 1.0.4
+ resolution: "globalthis@npm:1.0.4"
+ dependencies:
+ define-properties: "npm:^1.2.1"
+ gopd: "npm:^1.0.1"
+ checksum: 10c0/9d156f313af79d80b1566b93e19285f481c591ad6d0d319b4be5e03750d004dde40a39a0f26f7e635f9007a3600802f53ecd85a759b86f109e80a5f705e01846
+ languageName: node
+ linkType: hard
+
+"globby@npm:^11.1.0":
+ version: 11.1.0
+ resolution: "globby@npm:11.1.0"
+ dependencies:
+ array-union: "npm:^2.1.0"
+ dir-glob: "npm:^3.0.1"
+ fast-glob: "npm:^3.2.9"
+ ignore: "npm:^5.2.0"
+ merge2: "npm:^1.4.1"
+ slash: "npm:^3.0.0"
+ checksum: 10c0/b39511b4afe4bd8a7aead3a27c4ade2b9968649abab0a6c28b1a90141b96ca68ca5db1302f7c7bd29eab66bf51e13916b8e0a3d0ac08f75e1e84a39b35691189
+ languageName: node
+ linkType: hard
+
+"google-protobuf@npm:^3.17.3":
+ version: 3.21.2
+ resolution: "google-protobuf@npm:3.21.2"
+ checksum: 10c0/df20b41aad9eba4d842d69c717a4d73ac6d321084c12f524ad5eb79a47ad185323bd1b477c19565a15fd08b6eef29e475c8ac281dbc6fe547b81d8b6b99974f5
+ languageName: node
+ linkType: hard
+
+"gopd@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "gopd@npm:1.0.1"
+ dependencies:
+ get-intrinsic: "npm:^1.1.3"
+ checksum: 10c0/505c05487f7944c552cee72087bf1567debb470d4355b1335f2c262d218ebbff805cd3715448fe29b4b380bae6912561d0467233e4165830efd28da241418c63
+ languageName: node
+ linkType: hard
+
+"graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6":
+ version: 4.2.11
+ resolution: "graceful-fs@npm:4.2.11"
+ checksum: 10c0/386d011a553e02bc594ac2ca0bd6d9e4c22d7fa8cfbfc448a6d148c59ea881b092db9dbe3547ae4b88e55f1b01f7c4a2ecc53b310c042793e63aa44cf6c257f2
+ languageName: node
+ linkType: hard
+
+"grapheme-splitter@npm:^1.0.4":
+ version: 1.0.4
+ resolution: "grapheme-splitter@npm:1.0.4"
+ checksum: 10c0/108415fb07ac913f17040dc336607772fcea68c7f495ef91887edddb0b0f5ff7bc1d1ab181b125ecb2f0505669ef12c9a178a3bbd2dd8e042d8c5f1d7c90331a
+ languageName: node
+ linkType: hard
+
+"h3@npm:^1.10.2, h3@npm:^1.11.1":
+ version: 1.11.1
+ resolution: "h3@npm:1.11.1"
+ dependencies:
+ cookie-es: "npm:^1.0.0"
+ crossws: "npm:^0.2.2"
+ defu: "npm:^6.1.4"
+ destr: "npm:^2.0.3"
+ iron-webcrypto: "npm:^1.0.0"
+ ohash: "npm:^1.1.3"
+ radix3: "npm:^1.1.0"
+ ufo: "npm:^1.4.0"
+ uncrypto: "npm:^0.1.3"
+ unenv: "npm:^1.9.0"
+ checksum: 10c0/bd02bfae536a0facb9ddcd85bd51ad16264ea6fd331a548540a0846e426348449fcbcb10b0fa08673cd1d9c60e6ff5d8f56e7ec2e1ee43fda460d8c16866cbfa
+ languageName: node
+ linkType: hard
+
+"has-bigints@npm:^1.0.1, has-bigints@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "has-bigints@npm:1.0.2"
+ checksum: 10c0/724eb1485bfa3cdff6f18d95130aa190561f00b3fcf9f19dc640baf8176b5917c143b81ec2123f8cddb6c05164a198c94b13e1377c497705ccc8e1a80306e83b
+ languageName: node
+ linkType: hard
+
+"has-flag@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "has-flag@npm:4.0.0"
+ checksum: 10c0/2e789c61b7888d66993e14e8331449e525ef42aac53c627cc53d1c3334e768bcb6abdc4f5f0de1478a25beec6f0bd62c7549058b7ac53e924040d4f301f02fd1
+ languageName: node
+ linkType: hard
+
+"has-property-descriptors@npm:^1.0.0, has-property-descriptors@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "has-property-descriptors@npm:1.0.2"
+ dependencies:
+ es-define-property: "npm:^1.0.0"
+ checksum: 10c0/253c1f59e80bb476cf0dde8ff5284505d90c3bdb762983c3514d36414290475fe3fd6f574929d84de2a8eec00d35cf07cb6776205ff32efd7c50719125f00236
+ languageName: node
+ linkType: hard
+
+"has-proto@npm:^1.0.1, has-proto@npm:^1.0.3":
+ version: 1.0.3
+ resolution: "has-proto@npm:1.0.3"
+ checksum: 10c0/35a6989f81e9f8022c2f4027f8b48a552de714938765d019dbea6bb547bd49ce5010a3c7c32ec6ddac6e48fc546166a3583b128f5a7add8b058a6d8b4afec205
+ languageName: node
+ linkType: hard
+
+"has-symbols@npm:^1.0.2, has-symbols@npm:^1.0.3":
+ version: 1.0.3
+ resolution: "has-symbols@npm:1.0.3"
+ checksum: 10c0/e6922b4345a3f37069cdfe8600febbca791c94988c01af3394d86ca3360b4b93928bbf395859158f88099cb10b19d98e3bbab7c9ff2c1bd09cf665ee90afa2c3
+ languageName: node
+ linkType: hard
+
+"has-tostringtag@npm:^1.0.0, has-tostringtag@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "has-tostringtag@npm:1.0.2"
+ dependencies:
+ has-symbols: "npm:^1.0.3"
+ checksum: 10c0/a8b166462192bafe3d9b6e420a1d581d93dd867adb61be223a17a8d6dad147aa77a8be32c961bb2f27b3ef893cae8d36f564ab651f5e9b7938ae86f74027c48c
+ languageName: node
+ linkType: hard
+
+"hash-base@npm:^3.0.0":
+ version: 3.1.0
+ resolution: "hash-base@npm:3.1.0"
+ dependencies:
+ inherits: "npm:^2.0.4"
+ readable-stream: "npm:^3.6.0"
+ safe-buffer: "npm:^5.2.0"
+ checksum: 10c0/663eabcf4173326fbb65a1918a509045590a26cc7e0964b754eef248d281305c6ec9f6b31cb508d02ffca383ab50028180ce5aefe013e942b44a903ac8dc80d0
+ languageName: node
+ linkType: hard
+
+"hash-base@npm:~3.0":
+ version: 3.0.4
+ resolution: "hash-base@npm:3.0.4"
+ dependencies:
+ inherits: "npm:^2.0.1"
+ safe-buffer: "npm:^5.0.1"
+ checksum: 10c0/a13357dccb3827f0bb0b56bf928da85c428dc8670f6e4a1c7265e4f1653ce02d69030b40fd01b0f1d218a995a066eea279cded9cec72d207b593bcdfe309c2f0
+ languageName: node
+ linkType: hard
+
+"hash.js@npm:1.1.7, hash.js@npm:^1.0.0, hash.js@npm:^1.0.3":
+ version: 1.1.7
+ resolution: "hash.js@npm:1.1.7"
+ dependencies:
+ inherits: "npm:^2.0.3"
+ minimalistic-assert: "npm:^1.0.1"
+ checksum: 10c0/41ada59494eac5332cfc1ce6b7ebdd7b88a3864a6d6b08a3ea8ef261332ed60f37f10877e0c825aaa4bddebf164fbffa618286aeeec5296675e2671cbfa746c4
+ languageName: node
+ linkType: hard
+
+"hasown@npm:^2.0.0, hasown@npm:^2.0.1, hasown@npm:^2.0.2":
+ version: 2.0.2
+ resolution: "hasown@npm:2.0.2"
+ dependencies:
+ function-bind: "npm:^1.1.2"
+ checksum: 10c0/3769d434703b8ac66b209a4cca0737519925bbdb61dd887f93a16372b14694c63ff4e797686d87c90f08168e81082248b9b028bad60d4da9e0d1148766f56eb9
+ languageName: node
+ linkType: hard
+
+"hast-util-to-jsx-runtime@npm:^2.0.0":
+ version: 2.3.0
+ resolution: "hast-util-to-jsx-runtime@npm:2.3.0"
+ dependencies:
+ "@types/estree": "npm:^1.0.0"
+ "@types/hast": "npm:^3.0.0"
+ "@types/unist": "npm:^3.0.0"
+ comma-separated-tokens: "npm:^2.0.0"
+ devlop: "npm:^1.0.0"
+ estree-util-is-identifier-name: "npm:^3.0.0"
+ hast-util-whitespace: "npm:^3.0.0"
+ mdast-util-mdx-expression: "npm:^2.0.0"
+ mdast-util-mdx-jsx: "npm:^3.0.0"
+ mdast-util-mdxjs-esm: "npm:^2.0.0"
+ property-information: "npm:^6.0.0"
+ space-separated-tokens: "npm:^2.0.0"
+ style-to-object: "npm:^1.0.0"
+ unist-util-position: "npm:^5.0.0"
+ vfile-message: "npm:^4.0.0"
+ checksum: 10c0/df7a36dcc792df7667a54438f044b721753d5e09692606d23bf7336bf4651670111fe7728eebbf9f0e4f96ab3346a05bb23037fa1b1d115482b3bc5bde8b6912
+ languageName: node
+ linkType: hard
+
+"hast-util-whitespace@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "hast-util-whitespace@npm:3.0.0"
+ dependencies:
+ "@types/hast": "npm:^3.0.0"
+ checksum: 10c0/b898bc9fe27884b272580d15260b6bbdabe239973a147e97fa98c45fa0ffec967a481aaa42291ec34fb56530dc2d484d473d7e2bae79f39c83f3762307edfea8
+ languageName: node
+ linkType: hard
+
+"hmac-drbg@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "hmac-drbg@npm:1.0.1"
+ dependencies:
+ hash.js: "npm:^1.0.3"
+ minimalistic-assert: "npm:^1.0.0"
+ minimalistic-crypto-utils: "npm:^1.0.1"
+ checksum: 10c0/f3d9ba31b40257a573f162176ac5930109816036c59a09f901eb2ffd7e5e705c6832bedfff507957125f2086a0ab8f853c0df225642a88bf1fcaea945f20600d
+ languageName: node
+ linkType: hard
+
+"html-url-attributes@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "html-url-attributes@npm:3.0.0"
+ checksum: 10c0/af300ae1f3b9cf90aba0d95a165c3f4066ec2b3ee2f36a885a8d842e68675e4133896b00bde42d18ac799d0ce678fa1695baec3f865b01a628922d737c0d035c
+ languageName: node
+ linkType: hard
+
+"http-cache-semantics@npm:^4.1.1":
+ version: 4.1.1
+ resolution: "http-cache-semantics@npm:4.1.1"
+ checksum: 10c0/ce1319b8a382eb3cbb4a37c19f6bfe14e5bb5be3d09079e885e8c513ab2d3cd9214902f8a31c9dc4e37022633ceabfc2d697405deeaf1b8f3552bb4ed996fdfc
+ languageName: node
+ linkType: hard
+
+"http-proxy-agent@npm:^7.0.0":
+ version: 7.0.2
+ resolution: "http-proxy-agent@npm:7.0.2"
+ dependencies:
+ agent-base: "npm:^7.1.0"
+ debug: "npm:^4.3.4"
+ checksum: 10c0/4207b06a4580fb85dd6dff521f0abf6db517489e70863dca1a0291daa7f2d3d2d6015a57bd702af068ea5cf9f1f6ff72314f5f5b4228d299c0904135d2aef921
+ languageName: node
+ linkType: hard
+
+"http-shutdown@npm:^1.2.2":
+ version: 1.2.2
+ resolution: "http-shutdown@npm:1.2.2"
+ checksum: 10c0/1ea04d50d9a84ad6e7d9ee621160ce9515936e32e7f5ba445db48a5d72681858002c934c7f3ae5f474b301c1cd6b418aee3f6a2f109822109e606cc1a6c17c03
+ languageName: node
+ linkType: hard
+
+"https-proxy-agent@npm:^7.0.1":
+ version: 7.0.4
+ resolution: "https-proxy-agent@npm:7.0.4"
+ dependencies:
+ agent-base: "npm:^7.0.2"
+ debug: "npm:4"
+ checksum: 10c0/bc4f7c38da32a5fc622450b6cb49a24ff596f9bd48dcedb52d2da3fa1c1a80e100fb506bd59b326c012f21c863c69b275c23de1a01d0b84db396822fdf25e52b
+ languageName: node
+ linkType: hard
+
+"human-signals@npm:^5.0.0":
+ version: 5.0.0
+ resolution: "human-signals@npm:5.0.0"
+ checksum: 10c0/5a9359073fe17a8b58e5a085e9a39a950366d9f00217c4ff5878bd312e09d80f460536ea6a3f260b5943a01fe55c158d1cea3fc7bee3d0520aeef04f6d915c82
+ languageName: node
+ linkType: hard
+
+"iconv-lite@npm:^0.6.2":
+ version: 0.6.3
+ resolution: "iconv-lite@npm:0.6.3"
+ dependencies:
+ safer-buffer: "npm:>= 2.1.2 < 3.0.0"
+ checksum: 10c0/98102bc66b33fcf5ac044099d1257ba0b7ad5e3ccd3221f34dd508ab4070edff183276221684e1e0555b145fce0850c9f7d2b60a9fcac50fbb4ea0d6e845a3b1
+ languageName: node
+ linkType: hard
+
+"idb-keyval@npm:^6.2.1":
+ version: 6.2.1
+ resolution: "idb-keyval@npm:6.2.1"
+ checksum: 10c0/9f0c83703a365e00bd0b4ed6380ce509a06dedfc6ec39b2ba5740085069fd2f2ff5c14ba19356488e3612a2f9c49985971982d836460a982a5d0b4019eeba48a
+ languageName: node
+ linkType: hard
+
+"ieee754@npm:^1.2.1":
+ version: 1.2.1
+ resolution: "ieee754@npm:1.2.1"
+ checksum: 10c0/b0782ef5e0935b9f12883a2e2aa37baa75da6e66ce6515c168697b42160807d9330de9a32ec1ed73149aea02e0d822e572bca6f1e22bdcbd2149e13b050b17bb
+ languageName: node
+ linkType: hard
+
+"ignore@npm:^5.2.0":
+ version: 5.3.1
+ resolution: "ignore@npm:5.3.1"
+ checksum: 10c0/703f7f45ffb2a27fb2c5a8db0c32e7dee66b33a225d28e8db4e1be6474795f606686a6e3bcc50e1aa12f2042db4c9d4a7d60af3250511de74620fbed052ea4cd
+ languageName: node
+ linkType: hard
+
+"immer@npm:^10.1.1":
+ version: 10.1.1
+ resolution: "immer@npm:10.1.1"
+ checksum: 10c0/b749e10d137ccae91788f41bd57e9387f32ea6d6ea8fd7eb47b23fd7766681575efc7f86ceef7fe24c3bc9d61e38ff5d2f49c2663b2b0c056e280a4510923653
+ languageName: node
+ linkType: hard
+
+"import-fresh@npm:^3.0.0, import-fresh@npm:^3.2.1":
+ version: 3.3.0
+ resolution: "import-fresh@npm:3.3.0"
+ dependencies:
+ parent-module: "npm:^1.0.0"
+ resolve-from: "npm:^4.0.0"
+ checksum: 10c0/7f882953aa6b740d1f0e384d0547158bc86efbf2eea0f1483b8900a6f65c5a5123c2cf09b0d542cc419d0b98a759ecaeb394237e97ea427f2da221dc3cd80cc3
+ languageName: node
+ linkType: hard
+
+"imurmurhash@npm:^0.1.4":
+ version: 0.1.4
+ resolution: "imurmurhash@npm:0.1.4"
+ checksum: 10c0/8b51313850dd33605c6c9d3fd9638b714f4c4c40250cff658209f30d40da60f78992fb2df5dabee4acf589a6a82bbc79ad5486550754bd9ec4e3fc0d4a57d6a6
+ languageName: node
+ linkType: hard
+
+"indent-string@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "indent-string@npm:4.0.0"
+ checksum: 10c0/1e1904ddb0cb3d6cce7cd09e27a90184908b7a5d5c21b92e232c93579d314f0b83c246ffb035493d0504b1e9147ba2c9b21df0030f48673fba0496ecd698161f
+ languageName: node
+ linkType: hard
+
+"inflight@npm:^1.0.4":
+ version: 1.0.6
+ resolution: "inflight@npm:1.0.6"
+ dependencies:
+ once: "npm:^1.3.0"
+ wrappy: "npm:1"
+ checksum: 10c0/7faca22584600a9dc5b9fca2cd5feb7135ac8c935449837b315676b4c90aa4f391ec4f42240178244b5a34e8bede1948627fda392ca3191522fc46b34e985ab2
+ languageName: node
+ linkType: hard
+
+"inherits@npm:2, inherits@npm:^2.0.1, inherits@npm:^2.0.3, inherits@npm:^2.0.4, inherits@npm:~2.0.3":
+ version: 2.0.4
+ resolution: "inherits@npm:2.0.4"
+ checksum: 10c0/4e531f648b29039fb7426fb94075e6545faa1eb9fe83c29f0b6d9e7263aceb4289d2d4557db0d428188eeb449cc7c5e77b0a0b2c4e248ff2a65933a0dee49ef2
+ languageName: node
+ linkType: hard
+
+"inline-style-parser@npm:0.2.3":
+ version: 0.2.3
+ resolution: "inline-style-parser@npm:0.2.3"
+ checksum: 10c0/21b46d39a39c8aeaa738346650469388e8a412dd276ab75aa3d85b1883311e89c86a1fdbb8c2f1958f4c979bae74067f6ba0385455b125faf4fa77e1dbb94799
+ languageName: node
+ linkType: hard
+
+"inquirerer@npm:^1.9.0":
+ version: 1.9.0
+ resolution: "inquirerer@npm:1.9.0"
+ dependencies:
+ chalk: "npm:^4.1.0"
+ deepmerge: "npm:^4.3.1"
+ js-yaml: "npm:^4.1.0"
+ minimist: "npm:^1.2.8"
+ checksum: 10c0/c405e4ce4eb73ef5ad495dd9ae66ebd9686a127d5de0a55440eda3472ce9e93d5233bba9f6feb326d240348a9ff009c6eafb5ef29404880b850b91bbcd18ef6b
+ languageName: node
+ linkType: hard
+
+"interchain-query@npm:1.10.1":
+ version: 1.10.1
+ resolution: "interchain-query@npm:1.10.1"
+ dependencies:
+ "@cosmjs/amino": "npm:0.29.4"
+ "@cosmjs/proto-signing": "npm:0.29.4"
+ "@cosmjs/stargate": "npm:0.29.4"
+ "@cosmjs/tendermint-rpc": "npm:^0.29.4"
+ protobufjs: "npm:^6.11.2"
+ peerDependencies:
+ "@tanstack/react-query": ^4.29.12
+ checksum: 10c0/ee8f57ad17d9b4255a0ab1c924bd5bd4ecc16f8c1aaf7e0ea6e0373c134fb9108ff27a5c8c43b3b7082ea7fcd6612c57249305e97aea597a1cf3a5c75cc7e33e
+ languageName: node
+ linkType: hard
+
+"internal-slot@npm:^1.0.7":
+ version: 1.0.7
+ resolution: "internal-slot@npm:1.0.7"
+ dependencies:
+ es-errors: "npm:^1.3.0"
+ hasown: "npm:^2.0.0"
+ side-channel: "npm:^1.0.4"
+ checksum: 10c0/f8b294a4e6ea3855fc59551bbf35f2b832cf01fd5e6e2a97f5c201a071cc09b49048f856e484b67a6c721da5e55736c5b6ddafaf19e2dbeb4a3ff1821680de6c
+ languageName: node
+ linkType: hard
+
+"interpret@npm:^1.0.0":
+ version: 1.4.0
+ resolution: "interpret@npm:1.4.0"
+ checksum: 10c0/08c5ad30032edeec638485bc3f6db7d0094d9b3e85e0f950866600af3c52e9fd69715416d29564731c479d9f4d43ff3e4d302a178196bdc0e6837ec147640450
+ languageName: node
+ linkType: hard
+
+"intl-messageformat@npm:^10.1.0":
+ version: 10.5.11
+ resolution: "intl-messageformat@npm:10.5.11"
+ dependencies:
+ "@formatjs/ecma402-abstract": "npm:1.18.2"
+ "@formatjs/fast-memoize": "npm:2.2.0"
+ "@formatjs/icu-messageformat-parser": "npm:2.7.6"
+ tslib: "npm:^2.4.0"
+ checksum: 10c0/423f1c879ce2d0e7b9e0b4c1787a81ead7fe4d1734e0366a20fef56b06c09146e7ca3618e2e78b4f8b8f2b59cafe6237ceed21530fe0c16cfb47d915fc80222d
+ languageName: node
+ linkType: hard
+
+"ip-address@npm:^9.0.5":
+ version: 9.0.5
+ resolution: "ip-address@npm:9.0.5"
+ dependencies:
+ jsbn: "npm:1.1.0"
+ sprintf-js: "npm:^1.1.3"
+ checksum: 10c0/331cd07fafcb3b24100613e4b53e1a2b4feab11e671e655d46dc09ee233da5011284d09ca40c4ecbdfe1d0004f462958675c224a804259f2f78d2465a87824bc
+ languageName: node
+ linkType: hard
+
+"iron-webcrypto@npm:^1.0.0":
+ version: 1.1.0
+ resolution: "iron-webcrypto@npm:1.1.0"
+ checksum: 10c0/58c783a3f18128e37918f83c8cd2703b2494ccec9316a0de5194b0b52282d9eac12a5a0a8c18da6b55940c3f9957a5ae10b786616692a1e5a12caaa019dde8de
+ languageName: node
+ linkType: hard
+
+"is-alphabetical@npm:^2.0.0":
+ version: 2.0.1
+ resolution: "is-alphabetical@npm:2.0.1"
+ checksum: 10c0/932367456f17237533fd1fc9fe179df77957271020b83ea31da50e5cc472d35ef6b5fb8147453274ffd251134472ce24eb6f8d8398d96dee98237cdb81a6c9a7
+ languageName: node
+ linkType: hard
+
+"is-alphanumerical@npm:^2.0.0":
+ version: 2.0.1
+ resolution: "is-alphanumerical@npm:2.0.1"
+ dependencies:
+ is-alphabetical: "npm:^2.0.0"
+ is-decimal: "npm:^2.0.0"
+ checksum: 10c0/4b35c42b18e40d41378293f82a3ecd9de77049b476f748db5697c297f686e1e05b072a6aaae2d16f54d2a57f85b00cbbe755c75f6d583d1c77d6657bd0feb5a2
+ languageName: node
+ linkType: hard
+
+"is-arguments@npm:^1.0.4":
+ version: 1.1.1
+ resolution: "is-arguments@npm:1.1.1"
+ dependencies:
+ call-bind: "npm:^1.0.2"
+ has-tostringtag: "npm:^1.0.0"
+ checksum: 10c0/5ff1f341ee4475350adfc14b2328b38962564b7c2076be2f5bac7bd9b61779efba99b9f844a7b82ba7654adccf8e8eb19d1bb0cc6d1c1a085e498f6793d4328f
+ languageName: node
+ linkType: hard
+
+"is-array-buffer@npm:^3.0.4":
+ version: 3.0.4
+ resolution: "is-array-buffer@npm:3.0.4"
+ dependencies:
+ call-bind: "npm:^1.0.2"
+ get-intrinsic: "npm:^1.2.1"
+ checksum: 10c0/42a49d006cc6130bc5424eae113e948c146f31f9d24460fc0958f855d9d810e6fd2e4519bf19aab75179af9c298ea6092459d8cafdec523cd19e529b26eab860
+ languageName: node
+ linkType: hard
+
+"is-async-function@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "is-async-function@npm:2.0.0"
+ dependencies:
+ has-tostringtag: "npm:^1.0.0"
+ checksum: 10c0/787bc931576aad525d751fc5ce211960fe91e49ac84a5c22d6ae0bc9541945fbc3f686dc590c3175722ce4f6d7b798a93f6f8ff4847fdb2199aea6f4baf5d668
+ languageName: node
+ linkType: hard
+
+"is-bigint@npm:^1.0.1":
+ version: 1.0.4
+ resolution: "is-bigint@npm:1.0.4"
+ dependencies:
+ has-bigints: "npm:^1.0.1"
+ checksum: 10c0/eb9c88e418a0d195ca545aff2b715c9903d9b0a5033bc5922fec600eb0c3d7b1ee7f882dbf2e0d5a6e694e42391be3683e4368737bd3c4a77f8ac293e7773696
+ languageName: node
+ linkType: hard
+
+"is-binary-path@npm:~2.1.0":
+ version: 2.1.0
+ resolution: "is-binary-path@npm:2.1.0"
+ dependencies:
+ binary-extensions: "npm:^2.0.0"
+ checksum: 10c0/a16eaee59ae2b315ba36fad5c5dcaf8e49c3e27318f8ab8fa3cdb8772bf559c8d1ba750a589c2ccb096113bb64497084361a25960899cb6172a6925ab6123d38
+ languageName: node
+ linkType: hard
+
+"is-boolean-object@npm:^1.1.0":
+ version: 1.1.2
+ resolution: "is-boolean-object@npm:1.1.2"
+ dependencies:
+ call-bind: "npm:^1.0.2"
+ has-tostringtag: "npm:^1.0.0"
+ checksum: 10c0/6090587f8a8a8534c0f816da868bc94f32810f08807aa72fa7e79f7e11c466d281486ffe7a788178809c2aa71fe3e700b167fe80dd96dad68026bfff8ebf39f7
+ languageName: node
+ linkType: hard
+
+"is-callable@npm:^1.1.3, is-callable@npm:^1.1.4, is-callable@npm:^1.2.7":
+ version: 1.2.7
+ resolution: "is-callable@npm:1.2.7"
+ checksum: 10c0/ceebaeb9d92e8adee604076971dd6000d38d6afc40bb843ea8e45c5579b57671c3f3b50d7f04869618242c6cee08d1b67806a8cb8edaaaf7c0748b3720d6066f
+ languageName: node
+ linkType: hard
+
+"is-core-module@npm:^2.11.0, is-core-module@npm:^2.13.0, is-core-module@npm:^2.13.1":
+ version: 2.13.1
+ resolution: "is-core-module@npm:2.13.1"
+ dependencies:
+ hasown: "npm:^2.0.0"
+ checksum: 10c0/2cba9903aaa52718f11c4896dabc189bab980870aae86a62dc0d5cedb546896770ee946fb14c84b7adf0735f5eaea4277243f1b95f5cefa90054f92fbcac2518
+ languageName: node
+ linkType: hard
+
+"is-data-view@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "is-data-view@npm:1.0.1"
+ dependencies:
+ is-typed-array: "npm:^1.1.13"
+ checksum: 10c0/a3e6ec84efe303da859107aed9b970e018e2bee7ffcb48e2f8096921a493608134240e672a2072577e5f23a729846241d9634806e8a0e51d9129c56d5f65442d
+ languageName: node
+ linkType: hard
+
+"is-date-object@npm:^1.0.1, is-date-object@npm:^1.0.5":
+ version: 1.0.5
+ resolution: "is-date-object@npm:1.0.5"
+ dependencies:
+ has-tostringtag: "npm:^1.0.0"
+ checksum: 10c0/eed21e5dcc619c48ccef804dfc83a739dbb2abee6ca202838ee1bd5f760fe8d8a93444f0d49012ad19bb7c006186e2884a1b92f6e1c056da7fd23d0a9ad5992e
+ languageName: node
+ linkType: hard
+
+"is-decimal@npm:^2.0.0":
+ version: 2.0.1
+ resolution: "is-decimal@npm:2.0.1"
+ checksum: 10c0/8085dd66f7d82f9de818fba48b9e9c0429cb4291824e6c5f2622e96b9680b54a07a624cfc663b24148b8e853c62a1c987cfe8b0b5a13f5156991afaf6736e334
+ languageName: node
+ linkType: hard
+
+"is-docker@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "is-docker@npm:3.0.0"
+ bin:
+ is-docker: cli.js
+ checksum: 10c0/d2c4f8e6d3e34df75a5defd44991b6068afad4835bb783b902fa12d13ebdb8f41b2a199dcb0b5ed2cb78bfee9e4c0bbdb69c2d9646f4106464674d3e697a5856
+ languageName: node
+ linkType: hard
+
+"is-extglob@npm:^2.1.1":
+ version: 2.1.1
+ resolution: "is-extglob@npm:2.1.1"
+ checksum: 10c0/5487da35691fbc339700bbb2730430b07777a3c21b9ebaecb3072512dfd7b4ba78ac2381a87e8d78d20ea08affb3f1971b4af629173a6bf435ff8a4c47747912
+ languageName: node
+ linkType: hard
+
+"is-finalizationregistry@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "is-finalizationregistry@npm:1.0.2"
+ dependencies:
+ call-bind: "npm:^1.0.2"
+ checksum: 10c0/81caecc984d27b1a35c68741156fc651fb1fa5e3e6710d21410abc527eb226d400c0943a167922b2e920f6b3e58b0dede9aa795882b038b85f50b3a4b877db86
+ languageName: node
+ linkType: hard
+
+"is-fullwidth-code-point@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "is-fullwidth-code-point@npm:3.0.0"
+ checksum: 10c0/bb11d825e049f38e04c06373a8d72782eee0205bda9d908cc550ccb3c59b99d750ff9537982e01733c1c94a58e35400661f57042158ff5e8f3e90cf936daf0fc
+ languageName: node
+ linkType: hard
+
+"is-generator-function@npm:^1.0.10, is-generator-function@npm:^1.0.7":
+ version: 1.0.10
+ resolution: "is-generator-function@npm:1.0.10"
+ dependencies:
+ has-tostringtag: "npm:^1.0.0"
+ checksum: 10c0/df03514df01a6098945b5a0cfa1abff715807c8e72f57c49a0686ad54b3b74d394e2d8714e6f709a71eb00c9630d48e73ca1796c1ccc84ac95092c1fecc0d98b
+ languageName: node
+ linkType: hard
+
+"is-glob@npm:^4.0.0, is-glob@npm:^4.0.1, is-glob@npm:^4.0.3, is-glob@npm:~4.0.1":
+ version: 4.0.3
+ resolution: "is-glob@npm:4.0.3"
+ dependencies:
+ is-extglob: "npm:^2.1.1"
+ checksum: 10c0/17fb4014e22be3bbecea9b2e3a76e9e34ff645466be702f1693e8f1ee1adac84710d0be0bd9f967d6354036fd51ab7c2741d954d6e91dae6bb69714de92c197a
+ languageName: node
+ linkType: hard
+
+"is-hexadecimal@npm:^2.0.0":
+ version: 2.0.1
+ resolution: "is-hexadecimal@npm:2.0.1"
+ checksum: 10c0/3eb60fe2f1e2bbc760b927dcad4d51eaa0c60138cf7fc671803f66353ad90c301605b502c7ea4c6bb0548e1c7e79dfd37b73b632652e3b76030bba603a7e9626
+ languageName: node
+ linkType: hard
+
+"is-inside-container@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "is-inside-container@npm:1.0.0"
+ dependencies:
+ is-docker: "npm:^3.0.0"
+ bin:
+ is-inside-container: cli.js
+ checksum: 10c0/a8efb0e84f6197e6ff5c64c52890fa9acb49b7b74fed4da7c95383965da6f0fa592b4dbd5e38a79f87fc108196937acdbcd758fcefc9b140e479b39ce1fcd1cd
+ languageName: node
+ linkType: hard
+
+"is-lambda@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "is-lambda@npm:1.0.1"
+ checksum: 10c0/85fee098ae62ba6f1e24cf22678805473c7afd0fb3978a3aa260e354cb7bcb3a5806cf0a98403188465efedec41ab4348e8e4e79305d409601323855b3839d4d
+ languageName: node
+ linkType: hard
+
+"is-map@npm:^2.0.3":
+ version: 2.0.3
+ resolution: "is-map@npm:2.0.3"
+ checksum: 10c0/2c4d431b74e00fdda7162cd8e4b763d6f6f217edf97d4f8538b94b8702b150610e2c64961340015fe8df5b1fcee33ccd2e9b62619c4a8a3a155f8de6d6d355fc
+ languageName: node
+ linkType: hard
+
+"is-nan@npm:^1.3.2":
+ version: 1.3.2
+ resolution: "is-nan@npm:1.3.2"
+ dependencies:
+ call-bind: "npm:^1.0.0"
+ define-properties: "npm:^1.1.3"
+ checksum: 10c0/8bfb286f85763f9c2e28ea32e9127702fe980ffd15fa5d63ade3be7786559e6e21355d3625dd364c769c033c5aedf0a2ed3d4025d336abf1b9241e3d9eddc5b0
+ languageName: node
+ linkType: hard
+
+"is-negative-zero@npm:^2.0.3":
+ version: 2.0.3
+ resolution: "is-negative-zero@npm:2.0.3"
+ checksum: 10c0/bcdcf6b8b9714063ffcfa9929c575ac69bfdabb8f4574ff557dfc086df2836cf07e3906f5bbc4f2a5c12f8f3ba56af640c843cdfc74da8caed86c7c7d66fd08e
+ languageName: node
+ linkType: hard
+
+"is-number-object@npm:^1.0.4":
+ version: 1.0.7
+ resolution: "is-number-object@npm:1.0.7"
+ dependencies:
+ has-tostringtag: "npm:^1.0.0"
+ checksum: 10c0/aad266da1e530f1804a2b7bd2e874b4869f71c98590b3964f9d06cc9869b18f8d1f4778f838ecd2a11011bce20aeecb53cb269ba916209b79c24580416b74b1b
+ languageName: node
+ linkType: hard
+
+"is-number@npm:^7.0.0":
+ version: 7.0.0
+ resolution: "is-number@npm:7.0.0"
+ checksum: 10c0/b4686d0d3053146095ccd45346461bc8e53b80aeb7671cc52a4de02dbbf7dc0d1d2a986e2fe4ae206984b4d34ef37e8b795ebc4f4295c978373e6575e295d811
+ languageName: node
+ linkType: hard
+
+"is-path-inside@npm:^3.0.3":
+ version: 3.0.3
+ resolution: "is-path-inside@npm:3.0.3"
+ checksum: 10c0/cf7d4ac35fb96bab6a1d2c3598fe5ebb29aafb52c0aaa482b5a3ed9d8ba3edc11631e3ec2637660c44b3ce0e61a08d54946e8af30dec0b60a7c27296c68ffd05
+ languageName: node
+ linkType: hard
+
+"is-plain-obj@npm:^4.0.0":
+ version: 4.1.0
+ resolution: "is-plain-obj@npm:4.1.0"
+ checksum: 10c0/32130d651d71d9564dc88ba7e6fda0e91a1010a3694648e9f4f47bb6080438140696d3e3e15c741411d712e47ac9edc1a8a9de1fe76f3487b0d90be06ac9975e
+ languageName: node
+ linkType: hard
+
+"is-regex@npm:^1.1.4":
+ version: 1.1.4
+ resolution: "is-regex@npm:1.1.4"
+ dependencies:
+ call-bind: "npm:^1.0.2"
+ has-tostringtag: "npm:^1.0.0"
+ checksum: 10c0/bb72aae604a69eafd4a82a93002058c416ace8cde95873589a97fc5dac96a6c6c78a9977d487b7b95426a8f5073969124dd228f043f9f604f041f32fcc465fc1
+ languageName: node
+ linkType: hard
+
+"is-set@npm:^2.0.3":
+ version: 2.0.3
+ resolution: "is-set@npm:2.0.3"
+ checksum: 10c0/f73732e13f099b2dc879c2a12341cfc22ccaca8dd504e6edae26484bd5707a35d503fba5b4daad530a9b088ced1ae6c9d8200fd92e09b428fe14ea79ce8080b7
+ languageName: node
+ linkType: hard
+
+"is-shared-array-buffer@npm:^1.0.2, is-shared-array-buffer@npm:^1.0.3":
+ version: 1.0.3
+ resolution: "is-shared-array-buffer@npm:1.0.3"
+ dependencies:
+ call-bind: "npm:^1.0.7"
+ checksum: 10c0/adc11ab0acbc934a7b9e5e9d6c588d4ec6682f6fea8cda5180721704fa32927582ede5b123349e32517fdadd07958973d24716c80e7ab198970c47acc09e59c7
+ languageName: node
+ linkType: hard
+
+"is-stream@npm:^2.0.0":
+ version: 2.0.1
+ resolution: "is-stream@npm:2.0.1"
+ checksum: 10c0/7c284241313fc6efc329b8d7f08e16c0efeb6baab1b4cd0ba579eb78e5af1aa5da11e68559896a2067cd6c526bd29241dda4eb1225e627d5aa1a89a76d4635a5
+ languageName: node
+ linkType: hard
+
+"is-stream@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "is-stream@npm:3.0.0"
+ checksum: 10c0/eb2f7127af02ee9aa2a0237b730e47ac2de0d4e76a4a905a50a11557f2339df5765eaea4ceb8029f1efa978586abe776908720bfcb1900c20c6ec5145f6f29d8
+ languageName: node
+ linkType: hard
+
+"is-string@npm:^1.0.5, is-string@npm:^1.0.7":
+ version: 1.0.7
+ resolution: "is-string@npm:1.0.7"
+ dependencies:
+ has-tostringtag: "npm:^1.0.0"
+ checksum: 10c0/905f805cbc6eedfa678aaa103ab7f626aac9ebbdc8737abb5243acaa61d9820f8edc5819106b8fcd1839e33db21de9f0116ae20de380c8382d16dc2a601921f6
+ languageName: node
+ linkType: hard
+
+"is-symbol@npm:^1.0.2, is-symbol@npm:^1.0.3":
+ version: 1.0.4
+ resolution: "is-symbol@npm:1.0.4"
+ dependencies:
+ has-symbols: "npm:^1.0.2"
+ checksum: 10c0/9381dd015f7c8906154dbcbf93fad769de16b4b961edc94f88d26eb8c555935caa23af88bda0c93a18e65560f6d7cca0fd5a3f8a8e1df6f1abbb9bead4502ef7
+ languageName: node
+ linkType: hard
+
+"is-typed-array@npm:^1.1.13, is-typed-array@npm:^1.1.3":
+ version: 1.1.13
+ resolution: "is-typed-array@npm:1.1.13"
+ dependencies:
+ which-typed-array: "npm:^1.1.14"
+ checksum: 10c0/fa5cb97d4a80e52c2cc8ed3778e39f175a1a2ae4ddf3adae3187d69586a1fd57cfa0b095db31f66aa90331e9e3da79184cea9c6abdcd1abc722dc3c3edd51cca
+ languageName: node
+ linkType: hard
+
+"is-weakmap@npm:^2.0.2":
+ version: 2.0.2
+ resolution: "is-weakmap@npm:2.0.2"
+ checksum: 10c0/443c35bb86d5e6cc5929cd9c75a4024bb0fff9586ed50b092f94e700b89c43a33b186b76dbc6d54f3d3d09ece689ab38dcdc1af6a482cbe79c0f2da0a17f1299
+ languageName: node
+ linkType: hard
+
+"is-weakref@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "is-weakref@npm:1.0.2"
+ dependencies:
+ call-bind: "npm:^1.0.2"
+ checksum: 10c0/1545c5d172cb690c392f2136c23eec07d8d78a7f57d0e41f10078aa4f5daf5d7f57b6513a67514ab4f073275ad00c9822fc8935e00229d0a2089e1c02685d4b1
+ languageName: node
+ linkType: hard
+
+"is-weakset@npm:^2.0.3":
+ version: 2.0.3
+ resolution: "is-weakset@npm:2.0.3"
+ dependencies:
+ call-bind: "npm:^1.0.7"
+ get-intrinsic: "npm:^1.2.4"
+ checksum: 10c0/8ad6141b6a400e7ce7c7442a13928c676d07b1f315ab77d9912920bf5f4170622f43126f111615788f26c3b1871158a6797c862233124507db0bcc33a9537d1a
+ languageName: node
+ linkType: hard
+
+"is-what@npm:^4.1.8":
+ version: 4.1.16
+ resolution: "is-what@npm:4.1.16"
+ checksum: 10c0/611f1947776826dcf85b57cfb7bd3b3ea6f4b94a9c2f551d4a53f653cf0cb9d1e6518846648256d46ee6c91d114b6d09d2ac8a07306f7430c5900f87466aae5b
+ languageName: node
+ linkType: hard
+
+"is-wsl@npm:^3.1.0":
+ version: 3.1.0
+ resolution: "is-wsl@npm:3.1.0"
+ dependencies:
+ is-inside-container: "npm:^1.0.0"
+ checksum: 10c0/d3317c11995690a32c362100225e22ba793678fe8732660c6de511ae71a0ff05b06980cf21f98a6bf40d7be0e9e9506f859abe00a1118287d63e53d0a3d06947
+ languageName: node
+ linkType: hard
+
+"is64bit@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "is64bit@npm:2.0.0"
+ dependencies:
+ system-architecture: "npm:^0.1.0"
+ checksum: 10c0/9f3741d4b7560e2a30b9ce0c79bb30c7bdcc5df77c897bd59bb68f0fd882ae698015e8da81d48331def66c778d430c1ae3cb8c1fcc34e96c576b66198395faa7
+ languageName: node
+ linkType: hard
+
+"isarray@npm:^2.0.5":
+ version: 2.0.5
+ resolution: "isarray@npm:2.0.5"
+ checksum: 10c0/4199f14a7a13da2177c66c31080008b7124331956f47bca57dd0b6ea9f11687aa25e565a2c7a2b519bc86988d10398e3049a1f5df13c9f6b7664154690ae79fd
+ languageName: node
+ linkType: hard
+
+"isarray@npm:~1.0.0":
+ version: 1.0.0
+ resolution: "isarray@npm:1.0.0"
+ checksum: 10c0/18b5be6669be53425f0b84098732670ed4e727e3af33bc7f948aac01782110eb9a18b3b329c5323bcdd3acdaae547ee077d3951317e7f133bff7105264b3003d
+ languageName: node
+ linkType: hard
+
+"isexe@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "isexe@npm:2.0.0"
+ checksum: 10c0/228cfa503fadc2c31596ab06ed6aa82c9976eec2bfd83397e7eaf06d0ccf42cd1dfd6743bf9aeb01aebd4156d009994c5f76ea898d2832c1fe342da923ca457d
+ languageName: node
+ linkType: hard
+
+"isexe@npm:^3.1.1":
+ version: 3.1.1
+ resolution: "isexe@npm:3.1.1"
+ checksum: 10c0/9ec257654093443eb0a528a9c8cbba9c0ca7616ccb40abd6dde7202734d96bb86e4ac0d764f0f8cd965856aacbff2f4ce23e730dc19dfb41e3b0d865ca6fdcc7
+ languageName: node
+ linkType: hard
+
+"isomorphic-unfetch@npm:3.1.0":
+ version: 3.1.0
+ resolution: "isomorphic-unfetch@npm:3.1.0"
+ dependencies:
+ node-fetch: "npm:^2.6.1"
+ unfetch: "npm:^4.2.0"
+ checksum: 10c0/d3b61fca06304db692b7f76bdfd3a00f410e42cfa7403c3b250546bf71589d18cf2f355922f57198e4cc4a9872d3647b20397a5c3edf1a347c90d57c83cf2a89
+ languageName: node
+ linkType: hard
+
+"isomorphic-ws@npm:^4.0.1":
+ version: 4.0.1
+ resolution: "isomorphic-ws@npm:4.0.1"
+ peerDependencies:
+ ws: "*"
+ checksum: 10c0/7cb90dc2f0eb409825558982fb15d7c1d757a88595efbab879592f9d2b63820d6bbfb5571ab8abe36c715946e165a413a99f6aafd9f40ab1f514d73487bc9996
+ languageName: node
+ linkType: hard
+
+"iterator.prototype@npm:^1.1.2":
+ version: 1.1.2
+ resolution: "iterator.prototype@npm:1.1.2"
+ dependencies:
+ define-properties: "npm:^1.2.1"
+ get-intrinsic: "npm:^1.2.1"
+ has-symbols: "npm:^1.0.3"
+ reflect.getprototypeof: "npm:^1.0.4"
+ set-function-name: "npm:^2.0.1"
+ checksum: 10c0/a32151326095e916f306990d909f6bbf23e3221999a18ba686419535dcd1749b10ded505e89334b77dc4c7a58a8508978f0eb16c2c8573e6d412eb7eb894ea79
+ languageName: node
+ linkType: hard
+
+"jackspeak@npm:^3.1.2":
+ version: 3.2.3
+ resolution: "jackspeak@npm:3.2.3"
+ dependencies:
+ "@isaacs/cliui": "npm:^8.0.2"
+ "@pkgjs/parseargs": "npm:^0.11.0"
+ dependenciesMeta:
+ "@pkgjs/parseargs":
+ optional: true
+ checksum: 10c0/eed7a5056ac8cdafcadeb1fedbfbe96aef4e7fea7cf6f536f48696df7ef4d423c323ba03320860b886ecf1e59d0478bb3d0f8ed7d464932c7e3c0712095425f1
+ languageName: node
+ linkType: hard
+
+"javascript-stringify@npm:^2.0.1":
+ version: 2.1.0
+ resolution: "javascript-stringify@npm:2.1.0"
+ checksum: 10c0/374e74ebff29b94de78da39daa6e530999c58a145aeb293dc21180c4584459b14d9e5721d9bc6ed4eba319c437ef0145c157c946b70ecddcff6668682a002bcc
+ languageName: node
+ linkType: hard
+
+"jiti@npm:^1.21.0":
+ version: 1.21.0
+ resolution: "jiti@npm:1.21.0"
+ bin:
+ jiti: bin/jiti.js
+ checksum: 10c0/7f361219fe6c7a5e440d5f1dba4ab763a5538d2df8708cdc22561cf25ea3e44b837687931fca7cdd8cdd9f567300e90be989dd1321650045012d8f9ed6aab07f
+ languageName: node
+ linkType: hard
+
+"js-sdsl@npm:^4.1.4":
+ version: 4.4.2
+ resolution: "js-sdsl@npm:4.4.2"
+ checksum: 10c0/50707728fc31642164f4d83c8087f3750aaa99c450b008b19e236a1f190c9e48f9fc799615c341f9ca2c0803b15ab6f48d92a9cc3e6ffd20065cba7d7e742b92
+ languageName: node
+ linkType: hard
+
+"js-sha3@npm:0.8.0":
+ version: 0.8.0
+ resolution: "js-sha3@npm:0.8.0"
+ checksum: 10c0/43a21dc7967c871bd2c46cb1c2ae97441a97169f324e509f382d43330d8f75cf2c96dba7c806ab08a425765a9c847efdd4bffbac2d99c3a4f3de6c0218f40533
+ languageName: node
+ linkType: hard
+
+"js-tokens@npm:^3.0.0 || ^4.0.0":
+ version: 4.0.0
+ resolution: "js-tokens@npm:4.0.0"
+ checksum: 10c0/e248708d377aa058eacf2037b07ded847790e6de892bbad3dac0abba2e759cb9f121b00099a65195616badcb6eca8d14d975cb3e89eb1cfda644756402c8aeed
+ languageName: node
+ linkType: hard
+
+"js-yaml@npm:^4.1.0":
+ version: 4.1.0
+ resolution: "js-yaml@npm:4.1.0"
+ dependencies:
+ argparse: "npm:^2.0.1"
+ bin:
+ js-yaml: bin/js-yaml.js
+ checksum: 10c0/184a24b4eaacfce40ad9074c64fd42ac83cf74d8c8cd137718d456ced75051229e5061b8633c3366b8aada17945a7a356b337828c19da92b51ae62126575018f
+ languageName: node
+ linkType: hard
+
+"jsbn@npm:1.1.0":
+ version: 1.1.0
+ resolution: "jsbn@npm:1.1.0"
+ checksum: 10c0/4f907fb78d7b712e11dea8c165fe0921f81a657d3443dde75359ed52eb2b5d33ce6773d97985a089f09a65edd80b11cb75c767b57ba47391fee4c969f7215c96
+ languageName: node
+ linkType: hard
+
+"jscrypto@npm:^1.0.1":
+ version: 1.0.3
+ resolution: "jscrypto@npm:1.0.3"
+ bin:
+ jscrypto: bin/cli.js
+ checksum: 10c0/9af6d4db4284d27a43b1228d2d510582fc650f53f6732a16a27d624c9fe28e87e68a7fde5ea2ca12c5d5748ba828715785dea75682f16781ee1e061f1faa505d
+ languageName: node
+ linkType: hard
+
+"json-buffer@npm:3.0.1":
+ version: 3.0.1
+ resolution: "json-buffer@npm:3.0.1"
+ checksum: 10c0/0d1c91569d9588e7eef2b49b59851f297f3ab93c7b35c7c221e288099322be6b562767d11e4821da500f3219542b9afd2e54c5dc573107c1126ed1080f8e96d7
+ languageName: node
+ linkType: hard
+
+"json-rpc-engine@npm:^6.1.0":
+ version: 6.1.0
+ resolution: "json-rpc-engine@npm:6.1.0"
+ dependencies:
+ "@metamask/safe-event-emitter": "npm:^2.0.0"
+ eth-rpc-errors: "npm:^4.0.2"
+ checksum: 10c0/29c480f88152b1987ab0f58f9242ee163d5a7e95cd0d8ae876c08b21657022b82f6008f5eecd048842fb7f6fc3b4e364fde99ca620458772b6abd1d2c1e020d5
+ languageName: node
+ linkType: hard
+
+"json-rpc-middleware-stream@npm:^4.2.1":
+ version: 4.2.3
+ resolution: "json-rpc-middleware-stream@npm:4.2.3"
+ dependencies:
+ "@metamask/safe-event-emitter": "npm:^3.0.0"
+ json-rpc-engine: "npm:^6.1.0"
+ readable-stream: "npm:^2.3.3"
+ checksum: 10c0/d21b86e79b5711c99f4211a4f129c9c24817ea372945cae8ea1425285680e71ff8d0638d4d8738fe480a56baa7f8cd7f9a8330b43b81a0719e522bd5d80567c7
+ languageName: node
+ linkType: hard
+
+"json-schema-traverse@npm:^0.4.1":
+ version: 0.4.1
+ resolution: "json-schema-traverse@npm:0.4.1"
+ checksum: 10c0/108fa90d4cc6f08243aedc6da16c408daf81793bf903e9fd5ab21983cda433d5d2da49e40711da016289465ec2e62e0324dcdfbc06275a607fe3233fde4942ce
+ languageName: node
+ linkType: hard
+
+"json-stable-stringify-without-jsonify@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "json-stable-stringify-without-jsonify@npm:1.0.1"
+ checksum: 10c0/cb168b61fd4de83e58d09aaa6425ef71001bae30d260e2c57e7d09a5fd82223e2f22a042dedaab8db23b7d9ae46854b08bb1f91675a8be11c5cffebef5fb66a5
+ languageName: node
+ linkType: hard
+
+"json-stringify-safe@npm:^5.0.1":
+ version: 5.0.1
+ resolution: "json-stringify-safe@npm:5.0.1"
+ checksum: 10c0/7dbf35cd0411d1d648dceb6d59ce5857ec939e52e4afc37601aa3da611f0987d5cee5b38d58329ceddf3ed48bd7215229c8d52059ab01f2444a338bf24ed0f37
+ languageName: node
+ linkType: hard
+
+"json5@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "json5@npm:1.0.2"
+ dependencies:
+ minimist: "npm:^1.2.0"
+ bin:
+ json5: lib/cli.js
+ checksum: 10c0/9ee316bf21f000b00752e6c2a3b79ecf5324515a5c60ee88983a1910a45426b643a4f3461657586e8aeca87aaf96f0a519b0516d2ae527a6c3e7eed80f68717f
+ languageName: node
+ linkType: hard
+
+"json5@npm:^2.1.2":
+ version: 2.2.3
+ resolution: "json5@npm:2.2.3"
+ bin:
+ json5: lib/cli.js
+ checksum: 10c0/5a04eed94810fa55c5ea138b2f7a5c12b97c3750bc63d11e511dcecbfef758003861522a070c2272764ee0f4e3e323862f386945aeb5b85b87ee43f084ba586c
+ languageName: node
+ linkType: hard
+
+"jsonc-parser@npm:^3.2.0":
+ version: 3.2.1
+ resolution: "jsonc-parser@npm:3.2.1"
+ checksum: 10c0/ada66dec143d7f9cb0e2d0d29c69e9ce40d20f3a4cb96b0c6efb745025ac7f9ba647d7ac0990d0adfc37a2d2ae084a12009a9c833dbdbeadf648879a99b9df89
+ languageName: node
+ linkType: hard
+
+"jsx-ast-utils@npm:^2.4.1 || ^3.0.0, jsx-ast-utils@npm:^3.3.5":
+ version: 3.3.5
+ resolution: "jsx-ast-utils@npm:3.3.5"
+ dependencies:
+ array-includes: "npm:^3.1.6"
+ array.prototype.flat: "npm:^1.3.1"
+ object.assign: "npm:^4.1.4"
+ object.values: "npm:^1.1.6"
+ checksum: 10c0/a32679e9cb55469cb6d8bbc863f7d631b2c98b7fc7bf172629261751a6e7bc8da6ae374ddb74d5fbd8b06cf0eb4572287b259813d92b36e384024ed35e4c13e1
+ languageName: node
+ linkType: hard
+
+"keccak256@npm:^1.0.6":
+ version: 1.0.6
+ resolution: "keccak256@npm:1.0.6"
+ dependencies:
+ bn.js: "npm:^5.2.0"
+ buffer: "npm:^6.0.3"
+ keccak: "npm:^3.0.2"
+ checksum: 10c0/2a3f1e281ffd65bcbbae2ee8d62e27f0336efe6f16b7ed9932ad642ed398da62ccbc3d38dcdf43bd2fad9885f02df501dc77a900c358644df296396ed194056f
+ languageName: node
+ linkType: hard
+
+"keccak@npm:^3.0.2":
+ version: 3.0.4
+ resolution: "keccak@npm:3.0.4"
+ dependencies:
+ node-addon-api: "npm:^2.0.0"
+ node-gyp: "npm:latest"
+ node-gyp-build: "npm:^4.2.0"
+ readable-stream: "npm:^3.6.0"
+ checksum: 10c0/153525c1c1f770beadb8f8897dec2f1d2dcbee11d063fe5f61957a5b236bfd3d2a111ae2727e443aa6a848df5edb98b9ef237c78d56df49087b0ca8a232ca9cd
+ languageName: node
+ linkType: hard
+
+"keypress@npm:0.1.x":
+ version: 0.1.0
+ resolution: "keypress@npm:0.1.0"
+ checksum: 10c0/0d6c1921fc92a8b0c1f8dd4845f7b764579a9ac69aa489b9eba60c4fb83f2f7983749534b37f1052b5244a3956d027d8b170aea5c4f24c8dda67b74fa9049a11
+ languageName: node
+ linkType: hard
+
+"keyv@npm:^4.5.3":
+ version: 4.5.4
+ resolution: "keyv@npm:4.5.4"
+ dependencies:
+ json-buffer: "npm:3.0.1"
+ checksum: 10c0/aa52f3c5e18e16bb6324876bb8b59dd02acf782a4b789c7b2ae21107fab95fab3890ed448d4f8dba80ce05391eeac4bfabb4f02a20221342982f806fa2cf271e
+ languageName: node
+ linkType: hard
+
+"keyvaluestorage-interface@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "keyvaluestorage-interface@npm:1.0.0"
+ checksum: 10c0/0e028ebeda79a4e48c7e36708dbe7ced233c7a1f1bc925e506f150dd2ce43178bee8d20361c445bd915569709d9dc9ea80063b4d3c3cf5d615ab43aa31d3ec3d
+ languageName: node
+ linkType: hard
+
+"language-subtag-registry@npm:^0.3.20":
+ version: 0.3.23
+ resolution: "language-subtag-registry@npm:0.3.23"
+ checksum: 10c0/e9b05190421d2cd36dd6c95c28673019c927947cb6d94f40ba7e77a838629ee9675c94accf897fbebb07923187deb843b8fbb8935762df6edafe6c28dcb0b86c
+ languageName: node
+ linkType: hard
+
+"language-tags@npm:^1.0.9":
+ version: 1.0.9
+ resolution: "language-tags@npm:1.0.9"
+ dependencies:
+ language-subtag-registry: "npm:^0.3.20"
+ checksum: 10c0/9ab911213c4bd8bd583c850201c17794e52cb0660d1ab6e32558aadc8324abebf6844e46f92b80a5d600d0fbba7eface2c207bfaf270a1c7fd539e4c3a880bff
+ languageName: node
+ linkType: hard
+
+"levn@npm:^0.4.1":
+ version: 0.4.1
+ resolution: "levn@npm:0.4.1"
+ dependencies:
+ prelude-ls: "npm:^1.2.1"
+ type-check: "npm:~0.4.0"
+ checksum: 10c0/effb03cad7c89dfa5bd4f6989364bfc79994c2042ec5966cb9b95990e2edee5cd8969ddf42616a0373ac49fac1403437deaf6e9050fbbaa3546093a59b9ac94e
+ languageName: node
+ linkType: hard
+
+"libsodium-sumo@npm:^0.7.13":
+ version: 0.7.13
+ resolution: "libsodium-sumo@npm:0.7.13"
+ checksum: 10c0/8159205cc36cc4bdf46ee097e5f998d5cac7d11612be7406a8396ca3ee31560871ac17daa69e47ff0e8407eeae9f49313912ea95dbc8715875301b004c28ef5b
+ languageName: node
+ linkType: hard
+
+"libsodium-wrappers-sumo@npm:^0.7.11":
+ version: 0.7.13
+ resolution: "libsodium-wrappers-sumo@npm:0.7.13"
+ dependencies:
+ libsodium-sumo: "npm:^0.7.13"
+ checksum: 10c0/51a151d0f73418632dcf9cf0184b14d8eb6e16b9a3f01a652c7401c6d1bf8ead4f5ce40a4f00bd4754c5719a7a5fb71d6125691896aeb7a9c1abcfe4b73afc02
+ languageName: node
+ linkType: hard
+
+"libsodium-wrappers@npm:^0.7.6":
+ version: 0.7.13
+ resolution: "libsodium-wrappers@npm:0.7.13"
+ dependencies:
+ libsodium: "npm:^0.7.13"
+ checksum: 10c0/3de2c09a41991832333b379f4eefadd3113abb216c5be8d141eb053bbe904a4d529c01a4bbb8f46c1e2a987c3de1fb9adbb0cf7980155822e06504a38dc16cbb
+ languageName: node
+ linkType: hard
+
+"libsodium@npm:^0.7.13":
+ version: 0.7.13
+ resolution: "libsodium@npm:0.7.13"
+ checksum: 10c0/91a65df81e123d8374b1dcfc1214970203139b4ac75c8032cc2ca390c6173f456d15dbdbf8b79115337086fc2f5a3faa8f96625d909a788125b6ead5894cd5f5
+ languageName: node
+ linkType: hard
+
+"listhen@npm:^1.7.2":
+ version: 1.7.2
+ resolution: "listhen@npm:1.7.2"
+ dependencies:
+ "@parcel/watcher": "npm:^2.4.1"
+ "@parcel/watcher-wasm": "npm:^2.4.1"
+ citty: "npm:^0.1.6"
+ clipboardy: "npm:^4.0.0"
+ consola: "npm:^3.2.3"
+ crossws: "npm:^0.2.0"
+ defu: "npm:^6.1.4"
+ get-port-please: "npm:^3.1.2"
+ h3: "npm:^1.10.2"
+ http-shutdown: "npm:^1.2.2"
+ jiti: "npm:^1.21.0"
+ mlly: "npm:^1.6.1"
+ node-forge: "npm:^1.3.1"
+ pathe: "npm:^1.1.2"
+ std-env: "npm:^3.7.0"
+ ufo: "npm:^1.4.0"
+ untun: "npm:^0.1.3"
+ uqr: "npm:^0.1.2"
+ bin:
+ listen: bin/listhen.mjs
+ listhen: bin/listhen.mjs
+ checksum: 10c0/cd4d0651686b88c61a5bd5d5afc03feb99e352eb7862260112010655cf7997fb3356e61317f09555e2b7412175ae05265fc9e97458aa014586bf9fa4ab22bd5a
+ languageName: node
+ linkType: hard
+
+"loader-utils@npm:^2.0.0":
+ version: 2.0.4
+ resolution: "loader-utils@npm:2.0.4"
+ dependencies:
+ big.js: "npm:^5.2.2"
+ emojis-list: "npm:^3.0.0"
+ json5: "npm:^2.1.2"
+ checksum: 10c0/d5654a77f9d339ec2a03d88221a5a695f337bf71eb8dea031b3223420bb818964ba8ed0069145c19b095f6c8b8fd386e602a3fc7ca987042bd8bb1dcc90d7100
+ languageName: node
+ linkType: hard
+
+"locate-path@npm:^6.0.0":
+ version: 6.0.0
+ resolution: "locate-path@npm:6.0.0"
+ dependencies:
+ p-locate: "npm:^5.0.0"
+ checksum: 10c0/d3972ab70dfe58ce620e64265f90162d247e87159b6126b01314dd67be43d50e96a50b517bce2d9452a79409c7614054c277b5232377de50416564a77ac7aad3
+ languageName: node
+ linkType: hard
+
+"lodash.get@npm:^4.4.2":
+ version: 4.4.2
+ resolution: "lodash.get@npm:4.4.2"
+ checksum: 10c0/48f40d471a1654397ed41685495acb31498d5ed696185ac8973daef424a749ca0c7871bf7b665d5c14f5cc479394479e0307e781f61d5573831769593411be6e
+ languageName: node
+ linkType: hard
+
+"lodash.isequal@npm:4.5.0, lodash.isequal@npm:^4.5.0":
+ version: 4.5.0
+ resolution: "lodash.isequal@npm:4.5.0"
+ checksum: 10c0/dfdb2356db19631a4b445d5f37868a095e2402292d59539a987f134a8778c62a2810c2452d11ae9e6dcac71fc9de40a6fedcb20e2952a15b431ad8b29e50e28f
+ languageName: node
+ linkType: hard
+
+"lodash.merge@npm:^4.6.2":
+ version: 4.6.2
+ resolution: "lodash.merge@npm:4.6.2"
+ checksum: 10c0/402fa16a1edd7538de5b5903a90228aa48eb5533986ba7fa26606a49db2572bf414ff73a2c9f5d5fd36b31c46a5d5c7e1527749c07cbcf965ccff5fbdf32c506
+ languageName: node
+ linkType: hard
+
+"lodash@npm:^4.17.21":
+ version: 4.17.21
+ resolution: "lodash@npm:4.17.21"
+ checksum: 10c0/d8cbea072bb08655bb4c989da418994b073a608dffa608b09ac04b43a791b12aeae7cd7ad919aa4c925f33b48490b5cfe6c1f71d827956071dae2e7bb3a6b74c
+ languageName: node
+ linkType: hard
+
+"long@npm:^3 || ^4 || ^5, long@npm:^5.2.3":
+ version: 5.2.3
+ resolution: "long@npm:5.2.3"
+ checksum: 10c0/6a0da658f5ef683b90330b1af76f06790c623e148222da9d75b60e266bbf88f803232dd21464575681638894a84091616e7f89557aa087fd14116c0f4e0e43d9
+ languageName: node
+ linkType: hard
+
+"long@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "long@npm:4.0.0"
+ checksum: 10c0/50a6417d15b06104dbe4e3d4a667c39b137f130a9108ea8752b352a4cfae047531a3ac351c181792f3f8768fe17cca6b0f406674a541a86fb638aaac560d83ed
+ languageName: node
+ linkType: hard
+
+"longest-streak@npm:^3.0.0":
+ version: 3.1.0
+ resolution: "longest-streak@npm:3.1.0"
+ checksum: 10c0/7c2f02d0454b52834d1bcedef79c557bd295ee71fdabb02d041ff3aa9da48a90b5df7c0409156dedbc4df9b65da18742652aaea4759d6ece01f08971af6a7eaa
+ languageName: node
+ linkType: hard
+
+"loose-envify@npm:^1.1.0, loose-envify@npm:^1.4.0":
+ version: 1.4.0
+ resolution: "loose-envify@npm:1.4.0"
+ dependencies:
+ js-tokens: "npm:^3.0.0 || ^4.0.0"
+ bin:
+ loose-envify: cli.js
+ checksum: 10c0/655d110220983c1a4b9c0c679a2e8016d4b67f6e9c7b5435ff5979ecdb20d0813f4dec0a08674fcbdd4846a3f07edbb50a36811fd37930b94aaa0d9daceb017e
+ languageName: node
+ linkType: hard
+
+"lru-cache@npm:^10.0.1":
+ version: 10.2.2
+ resolution: "lru-cache@npm:10.2.2"
+ checksum: 10c0/402d31094335851220d0b00985084288136136992979d0e015f0f1697e15d1c86052d7d53ae86b614e5b058425606efffc6969a31a091085d7a2b80a8a1e26d6
+ languageName: node
+ linkType: hard
+
+"lru-cache@npm:^10.2.0":
+ version: 10.2.0
+ resolution: "lru-cache@npm:10.2.0"
+ checksum: 10c0/c9847612aa2daaef102d30542a8d6d9b2c2bb36581c1bf0dc3ebf5e5f3352c772a749e604afae2e46873b930a9e9523743faac4e5b937c576ab29196774712ee
+ languageName: node
+ linkType: hard
+
+"lru-cache@npm:^6.0.0":
+ version: 6.0.0
+ resolution: "lru-cache@npm:6.0.0"
+ dependencies:
+ yallist: "npm:^4.0.0"
+ checksum: 10c0/cb53e582785c48187d7a188d3379c181b5ca2a9c78d2bce3e7dee36f32761d1c42983da3fe12b55cb74e1779fa94cdc2e5367c028a9b35317184ede0c07a30a9
+ languageName: node
+ linkType: hard
+
+"make-fetch-happen@npm:^13.0.0":
+ version: 13.0.1
+ resolution: "make-fetch-happen@npm:13.0.1"
+ dependencies:
+ "@npmcli/agent": "npm:^2.0.0"
+ cacache: "npm:^18.0.0"
+ http-cache-semantics: "npm:^4.1.1"
+ is-lambda: "npm:^1.0.1"
+ minipass: "npm:^7.0.2"
+ minipass-fetch: "npm:^3.0.0"
+ minipass-flush: "npm:^1.0.5"
+ minipass-pipeline: "npm:^1.2.4"
+ negotiator: "npm:^0.6.3"
+ proc-log: "npm:^4.2.0"
+ promise-retry: "npm:^2.0.1"
+ ssri: "npm:^10.0.0"
+ checksum: 10c0/df5f4dbb6d98153b751bccf4dc4cc500de85a96a9331db9805596c46aa9f99d9555983954e6c1266d9f981ae37a9e4647f42b9a4bb5466f867f4012e582c9e7e
+ languageName: node
+ linkType: hard
+
+"md5.js@npm:^1.3.4":
+ version: 1.3.5
+ resolution: "md5.js@npm:1.3.5"
+ dependencies:
+ hash-base: "npm:^3.0.0"
+ inherits: "npm:^2.0.1"
+ safe-buffer: "npm:^5.1.2"
+ checksum: 10c0/b7bd75077f419c8e013fc4d4dada48be71882e37d69a44af65a2f2804b91e253441eb43a0614423a1c91bb830b8140b0dc906bc797245e2e275759584f4efcc5
+ languageName: node
+ linkType: hard
+
+"mdast-util-from-markdown@npm:^2.0.0":
+ version: 2.0.1
+ resolution: "mdast-util-from-markdown@npm:2.0.1"
+ dependencies:
+ "@types/mdast": "npm:^4.0.0"
+ "@types/unist": "npm:^3.0.0"
+ decode-named-character-reference: "npm:^1.0.0"
+ devlop: "npm:^1.0.0"
+ mdast-util-to-string: "npm:^4.0.0"
+ micromark: "npm:^4.0.0"
+ micromark-util-decode-numeric-character-reference: "npm:^2.0.0"
+ micromark-util-decode-string: "npm:^2.0.0"
+ micromark-util-normalize-identifier: "npm:^2.0.0"
+ micromark-util-symbol: "npm:^2.0.0"
+ micromark-util-types: "npm:^2.0.0"
+ unist-util-stringify-position: "npm:^4.0.0"
+ checksum: 10c0/496596bc6419200ff6258531a0ebcaee576a5c169695f5aa296a79a85f2a221bb9247d565827c709a7c2acfb56ae3c3754bf483d86206617bd299a9658c8121c
+ languageName: node
+ linkType: hard
+
+"mdast-util-mdx-expression@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "mdast-util-mdx-expression@npm:2.0.0"
+ dependencies:
+ "@types/estree-jsx": "npm:^1.0.0"
+ "@types/hast": "npm:^3.0.0"
+ "@types/mdast": "npm:^4.0.0"
+ devlop: "npm:^1.0.0"
+ mdast-util-from-markdown: "npm:^2.0.0"
+ mdast-util-to-markdown: "npm:^2.0.0"
+ checksum: 10c0/512848cbc44b9dc7cffc1bb3f95f7e67f0d6562870e56a67d25647f475d411e136b915ba417c8069fb36eac1839d0209fb05fb323d377f35626a82fcb0879363
+ languageName: node
+ linkType: hard
+
+"mdast-util-mdx-jsx@npm:^3.0.0":
+ version: 3.1.2
+ resolution: "mdast-util-mdx-jsx@npm:3.1.2"
+ dependencies:
+ "@types/estree-jsx": "npm:^1.0.0"
+ "@types/hast": "npm:^3.0.0"
+ "@types/mdast": "npm:^4.0.0"
+ "@types/unist": "npm:^3.0.0"
+ ccount: "npm:^2.0.0"
+ devlop: "npm:^1.1.0"
+ mdast-util-from-markdown: "npm:^2.0.0"
+ mdast-util-to-markdown: "npm:^2.0.0"
+ parse-entities: "npm:^4.0.0"
+ stringify-entities: "npm:^4.0.0"
+ unist-util-remove-position: "npm:^5.0.0"
+ unist-util-stringify-position: "npm:^4.0.0"
+ vfile-message: "npm:^4.0.0"
+ checksum: 10c0/855b60c3db9bde2fe142bd366597f7bd5892fc288428ba054e26ffcffc07bfe5648c0792d614ba6e08b1eab9784ffc3c1267cf29dfc6db92b419d68b5bcd487d
+ languageName: node
+ linkType: hard
+
+"mdast-util-mdxjs-esm@npm:^2.0.0":
+ version: 2.0.1
+ resolution: "mdast-util-mdxjs-esm@npm:2.0.1"
+ dependencies:
+ "@types/estree-jsx": "npm:^1.0.0"
+ "@types/hast": "npm:^3.0.0"
+ "@types/mdast": "npm:^4.0.0"
+ devlop: "npm:^1.0.0"
+ mdast-util-from-markdown: "npm:^2.0.0"
+ mdast-util-to-markdown: "npm:^2.0.0"
+ checksum: 10c0/5bda92fc154141705af2b804a534d891f28dac6273186edf1a4c5e3f045d5b01dbcac7400d27aaf91b7e76e8dce007c7b2fdf136c11ea78206ad00bdf9db46bc
+ languageName: node
+ linkType: hard
+
+"mdast-util-phrasing@npm:^4.0.0":
+ version: 4.1.0
+ resolution: "mdast-util-phrasing@npm:4.1.0"
+ dependencies:
+ "@types/mdast": "npm:^4.0.0"
+ unist-util-is: "npm:^6.0.0"
+ checksum: 10c0/bf6c31d51349aa3d74603d5e5a312f59f3f65662ed16c58017169a5fb0f84ca98578f626c5ee9e4aa3e0a81c996db8717096705521bddb4a0185f98c12c9b42f
+ languageName: node
+ linkType: hard
+
+"mdast-util-to-hast@npm:^13.0.0":
+ version: 13.2.0
+ resolution: "mdast-util-to-hast@npm:13.2.0"
+ dependencies:
+ "@types/hast": "npm:^3.0.0"
+ "@types/mdast": "npm:^4.0.0"
+ "@ungap/structured-clone": "npm:^1.0.0"
+ devlop: "npm:^1.0.0"
+ micromark-util-sanitize-uri: "npm:^2.0.0"
+ trim-lines: "npm:^3.0.0"
+ unist-util-position: "npm:^5.0.0"
+ unist-util-visit: "npm:^5.0.0"
+ vfile: "npm:^6.0.0"
+ checksum: 10c0/9ee58def9287df8350cbb6f83ced90f9c088d72d4153780ad37854f87144cadc6f27b20347073b285173b1649b0723ddf0b9c78158608a804dcacb6bda6e1816
+ languageName: node
+ linkType: hard
+
+"mdast-util-to-markdown@npm:^2.0.0":
+ version: 2.1.0
+ resolution: "mdast-util-to-markdown@npm:2.1.0"
+ dependencies:
+ "@types/mdast": "npm:^4.0.0"
+ "@types/unist": "npm:^3.0.0"
+ longest-streak: "npm:^3.0.0"
+ mdast-util-phrasing: "npm:^4.0.0"
+ mdast-util-to-string: "npm:^4.0.0"
+ micromark-util-decode-string: "npm:^2.0.0"
+ unist-util-visit: "npm:^5.0.0"
+ zwitch: "npm:^2.0.0"
+ checksum: 10c0/8bd37a9627a438ef6418d6642661904d0cc03c5c732b8b018a8e238ef5cc82fe8aef1940b19c6f563245e58b9659f35e527209bd3fe145f3c723ba14d18fc3e6
+ languageName: node
+ linkType: hard
+
+"mdast-util-to-string@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "mdast-util-to-string@npm:4.0.0"
+ dependencies:
+ "@types/mdast": "npm:^4.0.0"
+ checksum: 10c0/2d3c1af29bf3fe9c20f552ee9685af308002488f3b04b12fa66652c9718f66f41a32f8362aa2d770c3ff464c034860b41715902ada2306bb0a055146cef064d7
+ languageName: node
+ linkType: hard
+
+"media-query-parser@npm:^2.0.2":
+ version: 2.0.2
+ resolution: "media-query-parser@npm:2.0.2"
+ dependencies:
+ "@babel/runtime": "npm:^7.12.5"
+ checksum: 10c0/91a987e9f6620f5c7d0fcf22bd0a106bbaccdef96aba62c461656ee656e141dd2b60f2f1d99411799183c2ea993bd177ca92c26c08bf321fbc0c846ab391d79c
+ languageName: node
+ linkType: hard
+
+"merge-stream@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "merge-stream@npm:2.0.0"
+ checksum: 10c0/867fdbb30a6d58b011449b8885601ec1690c3e41c759ecd5a9d609094f7aed0096c37823ff4a7190ef0b8f22cc86beb7049196ff68c016e3b3c671d0dac91ce5
+ languageName: node
+ linkType: hard
+
+"merge2@npm:^1.3.0, merge2@npm:^1.4.1":
+ version: 1.4.1
+ resolution: "merge2@npm:1.4.1"
+ checksum: 10c0/254a8a4605b58f450308fc474c82ac9a094848081bf4c06778200207820e5193726dc563a0d2c16468810516a5c97d9d3ea0ca6585d23c58ccfff2403e8dbbeb
+ languageName: node
+ linkType: hard
+
+"micromark-core-commonmark@npm:^2.0.0":
+ version: 2.0.1
+ resolution: "micromark-core-commonmark@npm:2.0.1"
+ dependencies:
+ decode-named-character-reference: "npm:^1.0.0"
+ devlop: "npm:^1.0.0"
+ micromark-factory-destination: "npm:^2.0.0"
+ micromark-factory-label: "npm:^2.0.0"
+ micromark-factory-space: "npm:^2.0.0"
+ micromark-factory-title: "npm:^2.0.0"
+ micromark-factory-whitespace: "npm:^2.0.0"
+ micromark-util-character: "npm:^2.0.0"
+ micromark-util-chunked: "npm:^2.0.0"
+ micromark-util-classify-character: "npm:^2.0.0"
+ micromark-util-html-tag-name: "npm:^2.0.0"
+ micromark-util-normalize-identifier: "npm:^2.0.0"
+ micromark-util-resolve-all: "npm:^2.0.0"
+ micromark-util-subtokenize: "npm:^2.0.0"
+ micromark-util-symbol: "npm:^2.0.0"
+ micromark-util-types: "npm:^2.0.0"
+ checksum: 10c0/a0b280b1b6132f600518e72cb29a4dd1b2175b85f5ed5b25d2c5695e42b876b045971370daacbcfc6b4ce8cf7acbf78dd3a0284528fb422b450144f4b3bebe19
+ languageName: node
+ linkType: hard
+
+"micromark-factory-destination@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "micromark-factory-destination@npm:2.0.0"
+ dependencies:
+ micromark-util-character: "npm:^2.0.0"
+ micromark-util-symbol: "npm:^2.0.0"
+ micromark-util-types: "npm:^2.0.0"
+ checksum: 10c0/b73492f687d41a6a379159c2f3acbf813042346bcea523d9041d0cc6124e6715f0779dbb2a0b3422719e9764c3b09f9707880aa159557e3cb4aeb03b9d274915
+ languageName: node
+ linkType: hard
+
+"micromark-factory-label@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "micromark-factory-label@npm:2.0.0"
+ dependencies:
+ devlop: "npm:^1.0.0"
+ micromark-util-character: "npm:^2.0.0"
+ micromark-util-symbol: "npm:^2.0.0"
+ micromark-util-types: "npm:^2.0.0"
+ checksum: 10c0/8ffad00487a7891941b1d1f51d53a33c7a659dcf48617edb7a4008dad7aff67ec316baa16d55ca98ae3d75ce1d81628dbf72fedc7c6f108f740dec0d5d21c8ee
+ languageName: node
+ linkType: hard
+
+"micromark-factory-space@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "micromark-factory-space@npm:2.0.0"
+ dependencies:
+ micromark-util-character: "npm:^2.0.0"
+ micromark-util-types: "npm:^2.0.0"
+ checksum: 10c0/103ca954dade963d4ff1d2f27d397833fe855ddc72590205022832ef68b775acdea67949000cee221708e376530b1de78c745267b0bf8366740840783eb37122
+ languageName: node
+ linkType: hard
+
+"micromark-factory-title@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "micromark-factory-title@npm:2.0.0"
+ dependencies:
+ micromark-factory-space: "npm:^2.0.0"
+ micromark-util-character: "npm:^2.0.0"
+ micromark-util-symbol: "npm:^2.0.0"
+ micromark-util-types: "npm:^2.0.0"
+ checksum: 10c0/2b2188e7a011b1b001faf8c860286d246d5c3485ef8819270c60a5808f4c7613e49d4e481dbdff62600ef7acdba0f5100be2d125cbd2a15e236c26b3668a8ebd
+ languageName: node
+ linkType: hard
+
+"micromark-factory-whitespace@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "micromark-factory-whitespace@npm:2.0.0"
+ dependencies:
+ micromark-factory-space: "npm:^2.0.0"
+ micromark-util-character: "npm:^2.0.0"
+ micromark-util-symbol: "npm:^2.0.0"
+ micromark-util-types: "npm:^2.0.0"
+ checksum: 10c0/4e91baab0cc71873095134bd0e225d01d9786cde352701402d71b72d317973954754e8f9f1849901f165530e6421202209f4d97c460a27bb0808ec5a3fc3148c
+ languageName: node
+ linkType: hard
+
+"micromark-util-character@npm:^2.0.0":
+ version: 2.1.0
+ resolution: "micromark-util-character@npm:2.1.0"
+ dependencies:
+ micromark-util-symbol: "npm:^2.0.0"
+ micromark-util-types: "npm:^2.0.0"
+ checksum: 10c0/fc37a76aaa5a5138191ba2bef1ac50c36b3bcb476522e98b1a42304ab4ec76f5b036a746ddf795d3de3e7004b2c09f21dd1bad42d161f39b8cfc0acd067e6373
+ languageName: node
+ linkType: hard
+
+"micromark-util-chunked@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "micromark-util-chunked@npm:2.0.0"
+ dependencies:
+ micromark-util-symbol: "npm:^2.0.0"
+ checksum: 10c0/043b5f2abc8c13a1e2e4c378ead191d1a47ed9e0cd6d0fa5a0a430b2df9e17ada9d5de5a20688a000bbc5932507e746144acec60a9589d9a79fa60918e029203
+ languageName: node
+ linkType: hard
+
+"micromark-util-classify-character@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "micromark-util-classify-character@npm:2.0.0"
+ dependencies:
+ micromark-util-character: "npm:^2.0.0"
+ micromark-util-symbol: "npm:^2.0.0"
+ micromark-util-types: "npm:^2.0.0"
+ checksum: 10c0/2bf5fa5050faa9b69f6c7e51dbaaf02329ab70fabad8229984381b356afbbf69db90f4617bec36d814a7d285fb7cad8e3c4e38d1daf4387dc9e240aa7f9a292a
+ languageName: node
+ linkType: hard
+
+"micromark-util-combine-extensions@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "micromark-util-combine-extensions@npm:2.0.0"
+ dependencies:
+ micromark-util-chunked: "npm:^2.0.0"
+ micromark-util-types: "npm:^2.0.0"
+ checksum: 10c0/cd4c8d1a85255527facb419ff3b3cc3d7b7f27005c5ef5fa7ef2c4d0e57a9129534fc292a188ec2d467c2c458642d369c5f894bc8a9e142aed6696cc7989d3ea
+ languageName: node
+ linkType: hard
+
+"micromark-util-decode-numeric-character-reference@npm:^2.0.0":
+ version: 2.0.1
+ resolution: "micromark-util-decode-numeric-character-reference@npm:2.0.1"
+ dependencies:
+ micromark-util-symbol: "npm:^2.0.0"
+ checksum: 10c0/3f6d684ee8f317c67806e19b3e761956256cb936a2e0533aad6d49ac5604c6536b2041769c6febdd387ab7175b7b7e551851bf2c1f78da943e7a3671ca7635ac
+ languageName: node
+ linkType: hard
+
+"micromark-util-decode-string@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "micromark-util-decode-string@npm:2.0.0"
+ dependencies:
+ decode-named-character-reference: "npm:^1.0.0"
+ micromark-util-character: "npm:^2.0.0"
+ micromark-util-decode-numeric-character-reference: "npm:^2.0.0"
+ micromark-util-symbol: "npm:^2.0.0"
+ checksum: 10c0/f5413bebb21bdb686cfa1bcfa7e9c93093a523d1b42443ead303b062d2d680a94e5e8424549f57b8ba9d786a758e5a26a97f56068991bbdbca5d1885b3aa7227
+ languageName: node
+ linkType: hard
+
+"micromark-util-encode@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "micromark-util-encode@npm:2.0.0"
+ checksum: 10c0/ebdaafff23100bbf4c74e63b4b1612a9ddf94cd7211d6a076bc6fb0bc32c1b48d6fb615aa0953e607c62c97d849f97f1042260d3eb135259d63d372f401bbbb2
+ languageName: node
+ linkType: hard
+
+"micromark-util-html-tag-name@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "micromark-util-html-tag-name@npm:2.0.0"
+ checksum: 10c0/988aa26367449bd345b627ae32cf605076daabe2dc1db71b578a8a511a47123e14af466bcd6dcbdacec60142f07bc2723ec5f7a0eed0f5319ce83b5e04825429
+ languageName: node
+ linkType: hard
+
+"micromark-util-normalize-identifier@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "micromark-util-normalize-identifier@npm:2.0.0"
+ dependencies:
+ micromark-util-symbol: "npm:^2.0.0"
+ checksum: 10c0/93bf8789b8449538f22cf82ac9b196363a5f3b2f26efd98aef87c4c1b1f8c05be3ef6391ff38316ff9b03c1a6fd077342567598019ddd12b9bd923dacc556333
+ languageName: node
+ linkType: hard
+
+"micromark-util-resolve-all@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "micromark-util-resolve-all@npm:2.0.0"
+ dependencies:
+ micromark-util-types: "npm:^2.0.0"
+ checksum: 10c0/3b912e88453dcefe728a9080c8934a75ac4732056d6576ceecbcaf97f42c5d6fa2df66db8abdc8427eb167c5ffddefe26713728cfe500bc0e314ed260d6e2746
+ languageName: node
+ linkType: hard
+
+"micromark-util-sanitize-uri@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "micromark-util-sanitize-uri@npm:2.0.0"
+ dependencies:
+ micromark-util-character: "npm:^2.0.0"
+ micromark-util-encode: "npm:^2.0.0"
+ micromark-util-symbol: "npm:^2.0.0"
+ checksum: 10c0/74763ca1c927dd520d3ab8fd9856a19740acf76fc091f0a1f5d4e99c8cd5f1b81c5a0be3efb564941a071fb6d85fd951103f2760eb6cff77b5ab3abe08341309
+ languageName: node
+ linkType: hard
+
+"micromark-util-subtokenize@npm:^2.0.0":
+ version: 2.0.1
+ resolution: "micromark-util-subtokenize@npm:2.0.1"
+ dependencies:
+ devlop: "npm:^1.0.0"
+ micromark-util-chunked: "npm:^2.0.0"
+ micromark-util-symbol: "npm:^2.0.0"
+ micromark-util-types: "npm:^2.0.0"
+ checksum: 10c0/000cefde827db129f4ed92b8fbdeb4866c5f9c93068c0115485564b0426abcb9058080aa257df9035e12ca7fa92259d66623ea750b9eb3bcdd8325d3fb6fc237
+ languageName: node
+ linkType: hard
+
+"micromark-util-symbol@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "micromark-util-symbol@npm:2.0.0"
+ checksum: 10c0/4e76186c185ce4cefb9cea8584213d9ffacd77099d1da30c0beb09fa21f46f66f6de4c84c781d7e34ff763fe3a06b530e132fa9004882afab9e825238d0aa8b3
+ languageName: node
+ linkType: hard
+
+"micromark-util-types@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "micromark-util-types@npm:2.0.0"
+ checksum: 10c0/d74e913b9b61268e0d6939f4209e3abe9dada640d1ee782419b04fd153711112cfaaa3c4d5f37225c9aee1e23c3bb91a1f5223e1e33ba92d33e83956a53e61de
+ languageName: node
+ linkType: hard
+
+"micromark@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "micromark@npm:4.0.0"
+ dependencies:
+ "@types/debug": "npm:^4.0.0"
+ debug: "npm:^4.0.0"
+ decode-named-character-reference: "npm:^1.0.0"
+ devlop: "npm:^1.0.0"
+ micromark-core-commonmark: "npm:^2.0.0"
+ micromark-factory-space: "npm:^2.0.0"
+ micromark-util-character: "npm:^2.0.0"
+ micromark-util-chunked: "npm:^2.0.0"
+ micromark-util-combine-extensions: "npm:^2.0.0"
+ micromark-util-decode-numeric-character-reference: "npm:^2.0.0"
+ micromark-util-encode: "npm:^2.0.0"
+ micromark-util-normalize-identifier: "npm:^2.0.0"
+ micromark-util-resolve-all: "npm:^2.0.0"
+ micromark-util-sanitize-uri: "npm:^2.0.0"
+ micromark-util-subtokenize: "npm:^2.0.0"
+ micromark-util-symbol: "npm:^2.0.0"
+ micromark-util-types: "npm:^2.0.0"
+ checksum: 10c0/7e91c8d19ff27bc52964100853f1b3b32bb5b2ece57470a34ba1b2f09f4e2a183d90106c4ae585c9f2046969ee088576fed79b2f7061cba60d16652ccc2c64fd
+ languageName: node
+ linkType: hard
+
+"micromatch@npm:^4.0.4":
+ version: 4.0.7
+ resolution: "micromatch@npm:4.0.7"
+ dependencies:
+ braces: "npm:^3.0.3"
+ picomatch: "npm:^2.3.1"
+ checksum: 10c0/58fa99bc5265edec206e9163a1d2cec5fabc46a5b473c45f4a700adce88c2520456ae35f2b301e4410fb3afb27e9521fb2813f6fc96be0a48a89430e0916a772
+ languageName: node
+ linkType: hard
+
+"micromatch@npm:^4.0.5":
+ version: 4.0.5
+ resolution: "micromatch@npm:4.0.5"
+ dependencies:
+ braces: "npm:^3.0.2"
+ picomatch: "npm:^2.3.1"
+ checksum: 10c0/3d6505b20f9fa804af5d8c596cb1c5e475b9b0cd05f652c5b56141cf941bd72adaeb7a436fda344235cef93a7f29b7472efc779fcdb83b478eab0867b95cdeff
+ languageName: node
+ linkType: hard
+
+"miller-rabin@npm:^4.0.0":
+ version: 4.0.1
+ resolution: "miller-rabin@npm:4.0.1"
+ dependencies:
+ bn.js: "npm:^4.0.0"
+ brorand: "npm:^1.0.1"
+ bin:
+ miller-rabin: bin/miller-rabin
+ checksum: 10c0/26b2b96f6e49dbcff7faebb78708ed2f5f9ae27ac8cbbf1d7c08f83cf39bed3d418c0c11034dce997da70d135cc0ff6f3a4c15dc452f8e114c11986388a64346
+ languageName: node
+ linkType: hard
+
+"mime-db@npm:1.52.0":
+ version: 1.52.0
+ resolution: "mime-db@npm:1.52.0"
+ checksum: 10c0/0557a01deebf45ac5f5777fe7740b2a5c309c6d62d40ceab4e23da9f821899ce7a900b7ac8157d4548ddbb7beffe9abc621250e6d182b0397ec7f10c7b91a5aa
+ languageName: node
+ linkType: hard
+
+"mime-types@npm:^2.1.12":
+ version: 2.1.35
+ resolution: "mime-types@npm:2.1.35"
+ dependencies:
+ mime-db: "npm:1.52.0"
+ checksum: 10c0/82fb07ec56d8ff1fc999a84f2f217aa46cb6ed1033fefaabd5785b9a974ed225c90dc72fff460259e66b95b73648596dbcc50d51ed69cdf464af2d237d3149b2
+ languageName: node
+ linkType: hard
+
+"mime@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "mime@npm:3.0.0"
+ bin:
+ mime: cli.js
+ checksum: 10c0/402e792a8df1b2cc41cb77f0dcc46472b7944b7ec29cb5bbcd398624b6b97096728f1239766d3fdeb20551dd8d94738344c195a6ea10c4f906eb0356323b0531
+ languageName: node
+ linkType: hard
+
+"mimic-fn@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "mimic-fn@npm:4.0.0"
+ checksum: 10c0/de9cc32be9996fd941e512248338e43407f63f6d497abe8441fa33447d922e927de54d4cc3c1a3c6d652857acd770389d5a3823f311a744132760ce2be15ccbf
+ languageName: node
+ linkType: hard
+
+"minimalistic-assert@npm:^1.0.0, minimalistic-assert@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "minimalistic-assert@npm:1.0.1"
+ checksum: 10c0/96730e5601cd31457f81a296f521eb56036e6f69133c0b18c13fe941109d53ad23a4204d946a0d638d7f3099482a0cec8c9bb6d642604612ce43ee536be3dddd
+ languageName: node
+ linkType: hard
+
+"minimalistic-crypto-utils@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "minimalistic-crypto-utils@npm:1.0.1"
+ checksum: 10c0/790ecec8c5c73973a4fbf2c663d911033e8494d5fb0960a4500634766ab05d6107d20af896ca2132e7031741f19888154d44b2408ada0852446705441383e9f8
+ languageName: node
+ linkType: hard
+
+"minimatch@npm:^3.0.4, minimatch@npm:^3.0.5, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2":
+ version: 3.1.2
+ resolution: "minimatch@npm:3.1.2"
+ dependencies:
+ brace-expansion: "npm:^1.1.7"
+ checksum: 10c0/0262810a8fc2e72cca45d6fd86bd349eee435eb95ac6aa45c9ea2180e7ee875ef44c32b55b5973ceabe95ea12682f6e3725cbb63d7a2d1da3ae1163c8b210311
+ languageName: node
+ linkType: hard
+
+"minimatch@npm:^9.0.4":
+ version: 9.0.4
+ resolution: "minimatch@npm:9.0.4"
+ dependencies:
+ brace-expansion: "npm:^2.0.1"
+ checksum: 10c0/2c16f21f50e64922864e560ff97c587d15fd491f65d92a677a344e970fe62aafdbeafe648965fa96d33c061b4d0eabfe0213466203dd793367e7f28658cf6414
+ languageName: node
+ linkType: hard
+
+"minimist@npm:^1.2.0, minimist@npm:^1.2.6, minimist@npm:^1.2.8":
+ version: 1.2.8
+ resolution: "minimist@npm:1.2.8"
+ checksum: 10c0/19d3fcdca050087b84c2029841a093691a91259a47def2f18222f41e7645a0b7c44ef4b40e88a1e58a40c84d2ef0ee6047c55594d298146d0eb3f6b737c20ce6
+ languageName: node
+ linkType: hard
+
+"minipass-collect@npm:^2.0.1":
+ version: 2.0.1
+ resolution: "minipass-collect@npm:2.0.1"
+ dependencies:
+ minipass: "npm:^7.0.3"
+ checksum: 10c0/5167e73f62bb74cc5019594709c77e6a742051a647fe9499abf03c71dca75515b7959d67a764bdc4f8b361cf897fbf25e2d9869ee039203ed45240f48b9aa06e
+ languageName: node
+ linkType: hard
+
+"minipass-fetch@npm:^3.0.0":
+ version: 3.0.5
+ resolution: "minipass-fetch@npm:3.0.5"
+ dependencies:
+ encoding: "npm:^0.1.13"
+ minipass: "npm:^7.0.3"
+ minipass-sized: "npm:^1.0.3"
+ minizlib: "npm:^2.1.2"
+ dependenciesMeta:
+ encoding:
+ optional: true
+ checksum: 10c0/9d702d57f556274286fdd97e406fc38a2f5c8d15e158b498d7393b1105974b21249289ec571fa2b51e038a4872bfc82710111cf75fae98c662f3d6f95e72152b
+ languageName: node
+ linkType: hard
+
+"minipass-flush@npm:^1.0.5":
+ version: 1.0.5
+ resolution: "minipass-flush@npm:1.0.5"
+ dependencies:
+ minipass: "npm:^3.0.0"
+ checksum: 10c0/2a51b63feb799d2bb34669205eee7c0eaf9dce01883261a5b77410c9408aa447e478efd191b4de6fc1101e796ff5892f8443ef20d9544385819093dbb32d36bd
+ languageName: node
+ linkType: hard
+
+"minipass-pipeline@npm:^1.2.4":
+ version: 1.2.4
+ resolution: "minipass-pipeline@npm:1.2.4"
+ dependencies:
+ minipass: "npm:^3.0.0"
+ checksum: 10c0/cbda57cea20b140b797505dc2cac71581a70b3247b84480c1fed5ca5ba46c25ecc25f68bfc9e6dcb1a6e9017dab5c7ada5eab73ad4f0a49d84e35093e0c643f2
+ languageName: node
+ linkType: hard
+
+"minipass-sized@npm:^1.0.3":
+ version: 1.0.3
+ resolution: "minipass-sized@npm:1.0.3"
+ dependencies:
+ minipass: "npm:^3.0.0"
+ checksum: 10c0/298f124753efdc745cfe0f2bdfdd81ba25b9f4e753ca4a2066eb17c821f25d48acea607dfc997633ee5bf7b6dfffb4eee4f2051eb168663f0b99fad2fa4829cb
+ languageName: node
+ linkType: hard
+
+"minipass@npm:^3.0.0":
+ version: 3.3.6
+ resolution: "minipass@npm:3.3.6"
+ dependencies:
+ yallist: "npm:^4.0.0"
+ checksum: 10c0/a114746943afa1dbbca8249e706d1d38b85ed1298b530f5808ce51f8e9e941962e2a5ad2e00eae7dd21d8a4aae6586a66d4216d1a259385e9d0358f0c1eba16c
+ languageName: node
+ linkType: hard
+
+"minipass@npm:^5.0.0":
+ version: 5.0.0
+ resolution: "minipass@npm:5.0.0"
+ checksum: 10c0/a91d8043f691796a8ac88df039da19933ef0f633e3d7f0d35dcd5373af49131cf2399bfc355f41515dc495e3990369c3858cd319e5c2722b4753c90bf3152462
+ languageName: node
+ linkType: hard
+
+"minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.2, minipass@npm:^7.0.3, minipass@npm:^7.1.2":
+ version: 7.1.2
+ resolution: "minipass@npm:7.1.2"
+ checksum: 10c0/b0fd20bb9fb56e5fa9a8bfac539e8915ae07430a619e4b86ff71f5fc757ef3924b23b2c4230393af1eda647ed3d75739e4e0acb250a6b1eb277cf7f8fe449557
+ languageName: node
+ linkType: hard
+
+"minizlib@npm:^2.1.1, minizlib@npm:^2.1.2":
+ version: 2.1.2
+ resolution: "minizlib@npm:2.1.2"
+ dependencies:
+ minipass: "npm:^3.0.0"
+ yallist: "npm:^4.0.0"
+ checksum: 10c0/64fae024e1a7d0346a1102bb670085b17b7f95bf6cfdf5b128772ec8faf9ea211464ea4add406a3a6384a7d87a0cd1a96263692134323477b4fb43659a6cab78
+ languageName: node
+ linkType: hard
+
+"mkdirp@npm:3.0.1":
+ version: 3.0.1
+ resolution: "mkdirp@npm:3.0.1"
+ bin:
+ mkdirp: dist/cjs/src/bin.js
+ checksum: 10c0/9f2b975e9246351f5e3a40dcfac99fcd0baa31fbfab615fe059fb11e51f10e4803c63de1f384c54d656e4db31d000e4767e9ef076a22e12a641357602e31d57d
+ languageName: node
+ linkType: hard
+
+"mkdirp@npm:^1.0.3":
+ version: 1.0.4
+ resolution: "mkdirp@npm:1.0.4"
+ bin:
+ mkdirp: bin/cmd.js
+ checksum: 10c0/46ea0f3ffa8bc6a5bc0c7081ffc3907777f0ed6516888d40a518c5111f8366d97d2678911ad1a6882bf592fa9de6c784fea32e1687bb94e1f4944170af48a5cf
+ languageName: node
+ linkType: hard
+
+"mlly@npm:^1.2.0, mlly@npm:^1.6.1":
+ version: 1.6.1
+ resolution: "mlly@npm:1.6.1"
+ dependencies:
+ acorn: "npm:^8.11.3"
+ pathe: "npm:^1.1.2"
+ pkg-types: "npm:^1.0.3"
+ ufo: "npm:^1.3.2"
+ checksum: 10c0/a7bf26b3d4f83b0f5a5232caa3af44be08b464f562f31c11d885d1bc2d43b7d717137d47b0c06fdc69e1b33ffc09f902b6d2b18de02c577849d40914e8785092
+ languageName: node
+ linkType: hard
+
+"mobx@npm:^6.1.7":
+ version: 6.12.3
+ resolution: "mobx@npm:6.12.3"
+ checksum: 10c0/33e1d27d33adea0ceb4de32eb66b4384e81a249be5e01baa6bf556f458fd62a83d23bfa0cf8ba9e87c28f0d810ae301ee0e7322fd48a3bf47db33ffb08d5826c
+ languageName: node
+ linkType: hard
+
+"modern-ahocorasick@npm:^1.0.0":
+ version: 1.0.1
+ resolution: "modern-ahocorasick@npm:1.0.1"
+ checksum: 10c0/90ef4516ba8eef136d0cd4949faacdadee02217b8e25deda2881054ca8fcc32b985ef159b6e794c40e11c51040303c8e2975b20b23b86ec8a2a63516bbf93add
+ languageName: node
+ linkType: hard
+
+"mri@npm:^1.2.0":
+ version: 1.2.0
+ resolution: "mri@npm:1.2.0"
+ checksum: 10c0/a3d32379c2554cf7351db6237ddc18dc9e54e4214953f3da105b97dc3babe0deb3ffe99cf409b38ea47cc29f9430561ba6b53b24ab8f9ce97a4b50409e4a50e7
+ languageName: node
+ linkType: hard
+
+"ms@npm:2.1.2":
+ version: 2.1.2
+ resolution: "ms@npm:2.1.2"
+ checksum: 10c0/a437714e2f90dbf881b5191d35a6db792efbca5badf112f87b9e1c712aace4b4b9b742dd6537f3edf90fd6f684de897cec230abde57e87883766712ddda297cc
+ languageName: node
+ linkType: hard
+
+"ms@npm:^2.1.1":
+ version: 2.1.3
+ resolution: "ms@npm:2.1.3"
+ checksum: 10c0/d924b57e7312b3b63ad21fc5b3dc0af5e78d61a1fc7cfb5457edaf26326bf62be5307cc87ffb6862ef1c2b33b0233cdb5d4f01c4c958cc0d660948b65a287a48
+ languageName: node
+ linkType: hard
+
+"multiformats@npm:^9.4.2":
+ version: 9.9.0
+ resolution: "multiformats@npm:9.9.0"
+ checksum: 10c0/1fdb34fd2fb085142665e8bd402570659b50a5fae5994027e1df3add9e1ce1283ed1e0c2584a5c63ac0a58e871b8ee9665c4a99ca36ce71032617449d48aa975
+ languageName: node
+ linkType: hard
+
+"nan@npm:^2.13.2":
+ version: 2.19.0
+ resolution: "nan@npm:2.19.0"
+ dependencies:
+ node-gyp: "npm:latest"
+ checksum: 10c0/b8d05d75f92ee9d94affa50d0aa41b6c698254c848529452d7ab67c2e0d160a83f563bfe2cbd53e077944eceb48c757f83c93634c7c9ff404c9ec1ed4e5ced1a
+ languageName: node
+ linkType: hard
+
+"nanoid@npm:^3.3.6":
+ version: 3.3.7
+ resolution: "nanoid@npm:3.3.7"
+ bin:
+ nanoid: bin/nanoid.cjs
+ checksum: 10c0/e3fb661aa083454f40500473bb69eedb85dc160e763150b9a2c567c7e9ff560ce028a9f833123b618a6ea742e311138b591910e795614a629029e86e180660f3
+ languageName: node
+ linkType: hard
+
+"napi-wasm@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "napi-wasm@npm:1.1.0"
+ checksum: 10c0/074df6b5b72698f07b39ca3c448a3fcbaf8e6e78521f0cb3aefd8c2f059d69eae0e3bfe367b4aa3df1976c25e351e4e52a359f22fb2c379eb6781bfa042f582b
+ languageName: node
+ linkType: hard
+
+"natural-compare@npm:^1.4.0":
+ version: 1.4.0
+ resolution: "natural-compare@npm:1.4.0"
+ checksum: 10c0/f5f9a7974bfb28a91afafa254b197f0f22c684d4a1731763dda960d2c8e375b36c7d690e0d9dc8fba774c537af14a7e979129bca23d88d052fbeb9466955e447
+ languageName: node
+ linkType: hard
+
+"negotiator@npm:^0.6.3":
+ version: 0.6.3
+ resolution: "negotiator@npm:0.6.3"
+ checksum: 10c0/3ec9fd413e7bf071c937ae60d572bc67155262068ed522cf4b3be5edbe6ddf67d095ec03a3a14ebf8fc8e95f8e1d61be4869db0dbb0de696f6b837358bd43fc2
+ languageName: node
+ linkType: hard
+
+"next@npm:^13":
+ version: 13.5.6
+ resolution: "next@npm:13.5.6"
+ dependencies:
+ "@next/env": "npm:13.5.6"
+ "@next/swc-darwin-arm64": "npm:13.5.6"
+ "@next/swc-darwin-x64": "npm:13.5.6"
+ "@next/swc-linux-arm64-gnu": "npm:13.5.6"
+ "@next/swc-linux-arm64-musl": "npm:13.5.6"
+ "@next/swc-linux-x64-gnu": "npm:13.5.6"
+ "@next/swc-linux-x64-musl": "npm:13.5.6"
+ "@next/swc-win32-arm64-msvc": "npm:13.5.6"
+ "@next/swc-win32-ia32-msvc": "npm:13.5.6"
+ "@next/swc-win32-x64-msvc": "npm:13.5.6"
+ "@swc/helpers": "npm:0.5.2"
+ busboy: "npm:1.6.0"
+ caniuse-lite: "npm:^1.0.30001406"
+ postcss: "npm:8.4.31"
+ styled-jsx: "npm:5.1.1"
+ watchpack: "npm:2.4.0"
+ peerDependencies:
+ "@opentelemetry/api": ^1.1.0
+ react: ^18.2.0
+ react-dom: ^18.2.0
+ sass: ^1.3.0
+ dependenciesMeta:
+ "@next/swc-darwin-arm64":
+ optional: true
+ "@next/swc-darwin-x64":
+ optional: true
+ "@next/swc-linux-arm64-gnu":
+ optional: true
+ "@next/swc-linux-arm64-musl":
+ optional: true
+ "@next/swc-linux-x64-gnu":
+ optional: true
+ "@next/swc-linux-x64-musl":
+ optional: true
+ "@next/swc-win32-arm64-msvc":
+ optional: true
+ "@next/swc-win32-ia32-msvc":
+ optional: true
+ "@next/swc-win32-x64-msvc":
+ optional: true
+ peerDependenciesMeta:
+ "@opentelemetry/api":
+ optional: true
+ sass:
+ optional: true
+ bin:
+ next: dist/bin/next
+ checksum: 10c0/ef141d7708a432aff8bf080d285c466a83b0c1d008d1c66bbd49652a598f9ac15ef2e69a045f21ba44a5543b595cb945468b5f33e25deae2cc48b4d32be5bcec
+ languageName: node
+ linkType: hard
+
+"nock@npm:13.5.4":
+ version: 13.5.4
+ resolution: "nock@npm:13.5.4"
+ dependencies:
+ debug: "npm:^4.1.0"
+ json-stringify-safe: "npm:^5.0.1"
+ propagate: "npm:^2.0.0"
+ checksum: 10c0/9ca47d9d7e4b1f4adf871d7ca12722f8ef1dc7d2b9610b2568f5d9264eae9f424baa24fd9d91da9920b360d641b4243e89de198bd22c061813254a99cc6252af
+ languageName: node
+ linkType: hard
+
+"node-addon-api@npm:^2.0.0":
+ version: 2.0.2
+ resolution: "node-addon-api@npm:2.0.2"
+ dependencies:
+ node-gyp: "npm:latest"
+ checksum: 10c0/ade6c097ba829fa4aee1ca340117bb7f8f29fdae7b777e343a9d5cbd548481d1f0894b7b907d23ce615c70d932e8f96154caed95c3fa935cfe8cf87546510f64
+ languageName: node
+ linkType: hard
+
+"node-addon-api@npm:^7.0.0":
+ version: 7.1.0
+ resolution: "node-addon-api@npm:7.1.0"
+ dependencies:
+ node-gyp: "npm:latest"
+ checksum: 10c0/2e096ab079e3c46d33b0e252386e9c239c352f7cc6d75363d9a3c00bdff34c1a5da170da861917512843f213c32d024ced9dc9552b968029786480d18727ec66
+ languageName: node
+ linkType: hard
+
+"node-fetch-native@npm:^1.6.1, node-fetch-native@npm:^1.6.2, node-fetch-native@npm:^1.6.3":
+ version: 1.6.4
+ resolution: "node-fetch-native@npm:1.6.4"
+ checksum: 10c0/78334dc6def5d1d95cfe87b33ac76c4833592c5eb84779ad2b0c23c689f9dd5d1cfc827035ada72d6b8b218f717798968c5a99aeff0a1a8bf06657e80592f9c3
+ languageName: node
+ linkType: hard
+
+"node-fetch@npm:^2.6.1, node-fetch@npm:^2.6.12, node-fetch@npm:^2.6.9":
+ version: 2.7.0
+ resolution: "node-fetch@npm:2.7.0"
+ dependencies:
+ whatwg-url: "npm:^5.0.0"
+ peerDependencies:
+ encoding: ^0.1.0
+ peerDependenciesMeta:
+ encoding:
+ optional: true
+ checksum: 10c0/b55786b6028208e6fbe594ccccc213cab67a72899c9234eb59dba51062a299ea853210fcf526998eaa2867b0963ad72338824450905679ff0fa304b8c5093ae8
+ languageName: node
+ linkType: hard
+
+"node-forge@npm:^1.3.1":
+ version: 1.3.1
+ resolution: "node-forge@npm:1.3.1"
+ checksum: 10c0/e882819b251a4321f9fc1d67c85d1501d3004b4ee889af822fd07f64de3d1a8e272ff00b689570af0465d65d6bf5074df9c76e900e0aff23e60b847f2a46fbe8
+ languageName: node
+ linkType: hard
+
+"node-gyp-build@npm:^4.2.0, node-gyp-build@npm:^4.3.0":
+ version: 4.8.0
+ resolution: "node-gyp-build@npm:4.8.0"
+ bin:
+ node-gyp-build: bin.js
+ node-gyp-build-optional: optional.js
+ node-gyp-build-test: build-test.js
+ checksum: 10c0/85324be16f81f0235cbbc42e3eceaeb1b5ab94c8d8f5236755e1435b4908338c65a4e75f66ee343cbcb44ddf9b52a428755bec16dcd983295be4458d95c8e1ad
+ languageName: node
+ linkType: hard
+
+"node-gyp@npm:latest":
+ version: 10.1.0
+ resolution: "node-gyp@npm:10.1.0"
+ dependencies:
+ env-paths: "npm:^2.2.0"
+ exponential-backoff: "npm:^3.1.1"
+ glob: "npm:^10.3.10"
+ graceful-fs: "npm:^4.2.6"
+ make-fetch-happen: "npm:^13.0.0"
+ nopt: "npm:^7.0.0"
+ proc-log: "npm:^3.0.0"
+ semver: "npm:^7.3.5"
+ tar: "npm:^6.1.2"
+ which: "npm:^4.0.0"
+ bin:
+ node-gyp: bin/node-gyp.js
+ checksum: 10c0/9cc821111ca244a01fb7f054db7523ab0a0cd837f665267eb962eb87695d71fb1e681f9e21464cc2fd7c05530dc4c81b810bca1a88f7d7186909b74477491a3c
+ languageName: node
+ linkType: hard
+
+"node-gzip@npm:^1.1.2":
+ version: 1.1.2
+ resolution: "node-gzip@npm:1.1.2"
+ checksum: 10c0/c7aec81659bf69065bcfecb596293aaa3bd115ba328a2188a257f3640799f5ae8157ce82d93c17500494c695ff16e718308353ac628a9353679b2353f9e93402
+ languageName: node
+ linkType: hard
+
+"nopt@npm:^7.0.0":
+ version: 7.2.1
+ resolution: "nopt@npm:7.2.1"
+ dependencies:
+ abbrev: "npm:^2.0.0"
+ bin:
+ nopt: bin/nopt.js
+ checksum: 10c0/a069c7c736767121242037a22a788863accfa932ab285a1eb569eb8cd534b09d17206f68c37f096ae785647435e0c5a5a0a67b42ec743e481a455e5ae6a6df81
+ languageName: node
+ linkType: hard
+
+"normalize-path@npm:^3.0.0, normalize-path@npm:~3.0.0":
+ version: 3.0.0
+ resolution: "normalize-path@npm:3.0.0"
+ checksum: 10c0/e008c8142bcc335b5e38cf0d63cfd39d6cf2d97480af9abdbe9a439221fd4d749763bab492a8ee708ce7a194bb00c9da6d0a115018672310850489137b3da046
+ languageName: node
+ linkType: hard
+
+"npm-run-path@npm:^5.1.0":
+ version: 5.3.0
+ resolution: "npm-run-path@npm:5.3.0"
+ dependencies:
+ path-key: "npm:^4.0.0"
+ checksum: 10c0/124df74820c40c2eb9a8612a254ea1d557ddfab1581c3e751f825e3e366d9f00b0d76a3c94ecd8398e7f3eee193018622677e95816e8491f0797b21e30b2deba
+ languageName: node
+ linkType: hard
+
+"object-assign@npm:^4.1.1":
+ version: 4.1.1
+ resolution: "object-assign@npm:4.1.1"
+ checksum: 10c0/1f4df9945120325d041ccf7b86f31e8bcc14e73d29171e37a7903050e96b81323784ec59f93f102ec635bcf6fa8034ba3ea0a8c7e69fa202b87ae3b6cec5a414
+ languageName: node
+ linkType: hard
+
+"object-inspect@npm:^1.13.1":
+ version: 1.13.1
+ resolution: "object-inspect@npm:1.13.1"
+ checksum: 10c0/fad603f408e345c82e946abdf4bfd774260a5ed3e5997a0b057c44153ac32c7271ff19e3a5ae39c858da683ba045ccac2f65245c12763ce4e8594f818f4a648d
+ languageName: node
+ linkType: hard
+
+"object-is@npm:^1.1.5":
+ version: 1.1.6
+ resolution: "object-is@npm:1.1.6"
+ dependencies:
+ call-bind: "npm:^1.0.7"
+ define-properties: "npm:^1.2.1"
+ checksum: 10c0/506af444c4dce7f8e31f34fc549e2fb8152d6b9c4a30c6e62852badd7f520b579c679af433e7a072f9d78eb7808d230dc12e1cf58da9154dfbf8813099ea0fe0
+ languageName: node
+ linkType: hard
+
+"object-keys@npm:^1.1.1":
+ version: 1.1.1
+ resolution: "object-keys@npm:1.1.1"
+ checksum: 10c0/b11f7ccdbc6d406d1f186cdadb9d54738e347b2692a14439ca5ac70c225fa6db46db809711b78589866d47b25fc3e8dee0b4c722ac751e11180f9380e3d8601d
+ languageName: node
+ linkType: hard
+
+"object.assign@npm:^4.1.4, object.assign@npm:^4.1.5":
+ version: 4.1.5
+ resolution: "object.assign@npm:4.1.5"
+ dependencies:
+ call-bind: "npm:^1.0.5"
+ define-properties: "npm:^1.2.1"
+ has-symbols: "npm:^1.0.3"
+ object-keys: "npm:^1.1.1"
+ checksum: 10c0/60108e1fa2706f22554a4648299b0955236c62b3685c52abf4988d14fffb0e7731e00aa8c6448397e3eb63d087dcc124a9f21e1980f36d0b2667f3c18bacd469
+ languageName: node
+ linkType: hard
+
+"object.entries@npm:^1.1.7, object.entries@npm:^1.1.8":
+ version: 1.1.8
+ resolution: "object.entries@npm:1.1.8"
+ dependencies:
+ call-bind: "npm:^1.0.7"
+ define-properties: "npm:^1.2.1"
+ es-object-atoms: "npm:^1.0.0"
+ checksum: 10c0/db9ea979d2956a3bc26c262da4a4d212d36f374652cc4c13efdd069c1a519c16571c137e2893d1c46e1cb0e15c88fd6419eaf410c945f329f09835487d7e65d3
+ languageName: node
+ linkType: hard
+
+"object.fromentries@npm:^2.0.7, object.fromentries@npm:^2.0.8":
+ version: 2.0.8
+ resolution: "object.fromentries@npm:2.0.8"
+ dependencies:
+ call-bind: "npm:^1.0.7"
+ define-properties: "npm:^1.2.1"
+ es-abstract: "npm:^1.23.2"
+ es-object-atoms: "npm:^1.0.0"
+ checksum: 10c0/cd4327e6c3369cfa805deb4cbbe919bfb7d3aeebf0bcaba291bb568ea7169f8f8cdbcabe2f00b40db0c20cd20f08e11b5f3a5a36fb7dd3fe04850c50db3bf83b
+ languageName: node
+ linkType: hard
+
+"object.groupby@npm:^1.0.1":
+ version: 1.0.3
+ resolution: "object.groupby@npm:1.0.3"
+ dependencies:
+ call-bind: "npm:^1.0.7"
+ define-properties: "npm:^1.2.1"
+ es-abstract: "npm:^1.23.2"
+ checksum: 10c0/60d0455c85c736fbfeda0217d1a77525956f76f7b2495edeca9e9bbf8168a45783199e77b894d30638837c654d0cc410e0e02cbfcf445bc8de71c3da1ede6a9c
+ languageName: node
+ linkType: hard
+
+"object.hasown@npm:^1.1.4":
+ version: 1.1.4
+ resolution: "object.hasown@npm:1.1.4"
+ dependencies:
+ define-properties: "npm:^1.2.1"
+ es-abstract: "npm:^1.23.2"
+ es-object-atoms: "npm:^1.0.0"
+ checksum: 10c0/f23187b08d874ef1aea060118c8259eb7f99f93c15a50771d710569534119062b90e087b92952b2d0fb1bb8914d61fb0b43c57fb06f622aaad538fe6868ab987
+ languageName: node
+ linkType: hard
+
+"object.values@npm:^1.1.6, object.values@npm:^1.1.7, object.values@npm:^1.2.0":
+ version: 1.2.0
+ resolution: "object.values@npm:1.2.0"
+ dependencies:
+ call-bind: "npm:^1.0.7"
+ define-properties: "npm:^1.2.1"
+ es-object-atoms: "npm:^1.0.0"
+ checksum: 10c0/15809dc40fd6c5529501324fec5ff08570b7d70fb5ebbe8e2b3901afec35cf2b3dc484d1210c6c642cd3e7e0a5e18dd1d6850115337fef46bdae14ab0cb18ac3
+ languageName: node
+ linkType: hard
+
+"ofetch@npm:^1.3.3":
+ version: 1.3.4
+ resolution: "ofetch@npm:1.3.4"
+ dependencies:
+ destr: "npm:^2.0.3"
+ node-fetch-native: "npm:^1.6.3"
+ ufo: "npm:^1.5.3"
+ checksum: 10c0/39855005c3f8aa11c11d3a3b0c4366b67d316da58633f4cf5d4a5af0a61495fd68699f355e70deda70355ead25f27b41c3bde2fdd1d24ce3f85ac79608dd8677
+ languageName: node
+ linkType: hard
+
+"ohash@npm:^1.1.3":
+ version: 1.1.3
+ resolution: "ohash@npm:1.1.3"
+ checksum: 10c0/928f5bdbd8cd73f90cf544c0533dbda8e0a42d9b8c7454ab89e64e4d11bc85f85242830b4e107426ce13dc4dd3013286f8f5e0c84abd8942a014b907d9692540
+ languageName: node
+ linkType: hard
+
+"on-exit-leak-free@npm:^0.2.0":
+ version: 0.2.0
+ resolution: "on-exit-leak-free@npm:0.2.0"
+ checksum: 10c0/d4e1f0bea59f39aa435baaee7d76955527e245538cffc1d7bb0c165ae85e37f67690aa9272247ced17bad76052afdb45faf5ea304a2248e070202d4554c4e30c
+ languageName: node
+ linkType: hard
+
+"once@npm:^1.3.0, once@npm:^1.3.1, once@npm:^1.4.0":
+ version: 1.4.0
+ resolution: "once@npm:1.4.0"
+ dependencies:
+ wrappy: "npm:1"
+ checksum: 10c0/5d48aca287dfefabd756621c5dfce5c91a549a93e9fdb7b8246bc4c4790aa2ec17b34a260530474635147aeb631a2dcc8b32c613df0675f96041cbb8244517d0
+ languageName: node
+ linkType: hard
+
+"onetime@npm:^6.0.0":
+ version: 6.0.0
+ resolution: "onetime@npm:6.0.0"
+ dependencies:
+ mimic-fn: "npm:^4.0.0"
+ checksum: 10c0/4eef7c6abfef697dd4479345a4100c382d73c149d2d56170a54a07418c50816937ad09500e1ed1e79d235989d073a9bade8557122aee24f0576ecde0f392bb6c
+ languageName: node
+ linkType: hard
+
+"optionator@npm:^0.9.1":
+ version: 0.9.4
+ resolution: "optionator@npm:0.9.4"
+ dependencies:
+ deep-is: "npm:^0.1.3"
+ fast-levenshtein: "npm:^2.0.6"
+ levn: "npm:^0.4.1"
+ prelude-ls: "npm:^1.2.1"
+ type-check: "npm:^0.4.0"
+ word-wrap: "npm:^1.2.5"
+ checksum: 10c0/4afb687a059ee65b61df74dfe87d8d6815cd6883cb8b3d5883a910df72d0f5d029821f37025e4bccf4048873dbdb09acc6d303d27b8f76b1a80dd5a7d5334675
+ languageName: node
+ linkType: hard
+
+"osmo-query@npm:16.5.1":
+ version: 16.5.1
+ resolution: "osmo-query@npm:16.5.1"
+ dependencies:
+ "@cosmjs/amino": "npm:0.29.3"
+ "@cosmjs/proto-signing": "npm:0.29.3"
+ "@cosmjs/stargate": "npm:0.29.3"
+ "@cosmjs/tendermint-rpc": "npm:^0.29.3"
+ "@cosmology/lcd": "npm:^0.12.0"
+ checksum: 10c0/036877b1f2aefda492f1ff2c84163955de439c07bb87380cf05e3d8b244d77f12a505d93e655389172d89bd09214d5b812d8123bd1203fe649e7d934f87c2d34
+ languageName: node
+ linkType: hard
+
+"p-limit@npm:^3.0.2":
+ version: 3.1.0
+ resolution: "p-limit@npm:3.1.0"
+ dependencies:
+ yocto-queue: "npm:^0.1.0"
+ checksum: 10c0/9db675949dbdc9c3763c89e748d0ef8bdad0afbb24d49ceaf4c46c02c77d30db4e0652ed36d0a0a7a95154335fab810d95c86153105bb73b3a90448e2bb14e1a
+ languageName: node
+ linkType: hard
+
+"p-locate@npm:^5.0.0":
+ version: 5.0.0
+ resolution: "p-locate@npm:5.0.0"
+ dependencies:
+ p-limit: "npm:^3.0.2"
+ checksum: 10c0/2290d627ab7903b8b70d11d384fee714b797f6040d9278932754a6860845c4d3190603a0772a663c8cb5a7b21d1b16acb3a6487ebcafa9773094edc3dfe6009a
+ languageName: node
+ linkType: hard
+
+"p-map@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "p-map@npm:4.0.0"
+ dependencies:
+ aggregate-error: "npm:^3.0.0"
+ checksum: 10c0/592c05bd6262c466ce269ff172bb8de7c6975afca9b50c975135b974e9bdaafbfe80e61aaaf5be6d1200ba08b30ead04b88cfa7e25ff1e3b93ab28c9f62a2c75
+ languageName: node
+ linkType: hard
+
+"pako@npm:^2.0.2":
+ version: 2.1.0
+ resolution: "pako@npm:2.1.0"
+ checksum: 10c0/8e8646581410654b50eb22a5dfd71159cae98145bd5086c9a7a816ec0370b5f72b4648d08674624b3870a521e6a3daffd6c2f7bc00fdefc7063c9d8232ff5116
+ languageName: node
+ linkType: hard
+
+"parent-module@npm:^1.0.0":
+ version: 1.0.1
+ resolution: "parent-module@npm:1.0.1"
+ dependencies:
+ callsites: "npm:^3.0.0"
+ checksum: 10c0/c63d6e80000d4babd11978e0d3fee386ca7752a02b035fd2435960ffaa7219dc42146f07069fb65e6e8bf1caef89daf9af7535a39bddf354d78bf50d8294f556
+ languageName: node
+ linkType: hard
+
+"parse-asn1@npm:^5.0.0, parse-asn1@npm:^5.1.7":
+ version: 5.1.7
+ resolution: "parse-asn1@npm:5.1.7"
+ dependencies:
+ asn1.js: "npm:^4.10.1"
+ browserify-aes: "npm:^1.2.0"
+ evp_bytestokey: "npm:^1.0.3"
+ hash-base: "npm:~3.0"
+ pbkdf2: "npm:^3.1.2"
+ safe-buffer: "npm:^5.2.1"
+ checksum: 10c0/05eb5937405c904eb5a7f3633bab1acc11f4ae3478a07ef5c6d81ce88c3c0e505ff51f9c7b935ebc1265c868343793698fc91025755a895d0276f620f95e8a82
+ languageName: node
+ linkType: hard
+
+"parse-entities@npm:^4.0.0":
+ version: 4.0.1
+ resolution: "parse-entities@npm:4.0.1"
+ dependencies:
+ "@types/unist": "npm:^2.0.0"
+ character-entities: "npm:^2.0.0"
+ character-entities-legacy: "npm:^3.0.0"
+ character-reference-invalid: "npm:^2.0.0"
+ decode-named-character-reference: "npm:^1.0.0"
+ is-alphanumerical: "npm:^2.0.0"
+ is-decimal: "npm:^2.0.0"
+ is-hexadecimal: "npm:^2.0.0"
+ checksum: 10c0/9dfa3b0dc43a913c2558c4bd625b1abcc2d6c6b38aa5724b141ed988471977248f7ad234eed57e1bc70b694dd15b0d710a04f66c2f7c096e35abd91962b7d926
+ languageName: node
+ linkType: hard
+
+"path-exists@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "path-exists@npm:4.0.0"
+ checksum: 10c0/8c0bd3f5238188197dc78dced15207a4716c51cc4e3624c44fc97acf69558f5ebb9a2afff486fe1b4ee148e0c133e96c5e11a9aa5c48a3006e3467da070e5e1b
+ languageName: node
+ linkType: hard
+
+"path-is-absolute@npm:^1.0.0":
+ version: 1.0.1
+ resolution: "path-is-absolute@npm:1.0.1"
+ checksum: 10c0/127da03c82172a2a50099cddbf02510c1791fc2cc5f7713ddb613a56838db1e8168b121a920079d052e0936c23005562059756d653b7c544c53185efe53be078
+ languageName: node
+ linkType: hard
+
+"path-key@npm:^3.1.0":
+ version: 3.1.1
+ resolution: "path-key@npm:3.1.1"
+ checksum: 10c0/748c43efd5a569c039d7a00a03b58eecd1d75f3999f5a28303d75f521288df4823bc057d8784eb72358b2895a05f29a070bc9f1f17d28226cc4e62494cc58c4c
+ languageName: node
+ linkType: hard
+
+"path-key@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "path-key@npm:4.0.0"
+ checksum: 10c0/794efeef32863a65ac312f3c0b0a99f921f3e827ff63afa5cb09a377e202c262b671f7b3832a4e64731003fa94af0263713962d317b9887bd1e0c48a342efba3
+ languageName: node
+ linkType: hard
+
+"path-parse@npm:^1.0.7":
+ version: 1.0.7
+ resolution: "path-parse@npm:1.0.7"
+ checksum: 10c0/11ce261f9d294cc7a58d6a574b7f1b935842355ec66fba3c3fd79e0f036462eaf07d0aa95bb74ff432f9afef97ce1926c720988c6a7451d8a584930ae7de86e1
+ languageName: node
+ linkType: hard
+
+"path-scurry@npm:^1.11.1":
+ version: 1.11.1
+ resolution: "path-scurry@npm:1.11.1"
+ dependencies:
+ lru-cache: "npm:^10.2.0"
+ minipass: "npm:^5.0.0 || ^6.0.2 || ^7.0.0"
+ checksum: 10c0/32a13711a2a505616ae1cc1b5076801e453e7aae6ac40ab55b388bb91b9d0547a52f5aaceff710ea400205f18691120d4431e520afbe4266b836fadede15872d
+ languageName: node
+ linkType: hard
+
+"path-type@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "path-type@npm:4.0.0"
+ checksum: 10c0/666f6973f332f27581371efaf303fd6c272cc43c2057b37aa99e3643158c7e4b2626549555d88626e99ea9e046f82f32e41bbde5f1508547e9a11b149b52387c
+ languageName: node
+ linkType: hard
+
+"pathe@npm:^1.1.0, pathe@npm:^1.1.1, pathe@npm:^1.1.2":
+ version: 1.1.2
+ resolution: "pathe@npm:1.1.2"
+ checksum: 10c0/64ee0a4e587fb0f208d9777a6c56e4f9050039268faaaaecd50e959ef01bf847b7872785c36483fa5cdcdbdfdb31fef2ff222684d4fc21c330ab60395c681897
+ languageName: node
+ linkType: hard
+
+"pbkdf2@npm:^3.0.3, pbkdf2@npm:^3.1.2":
+ version: 3.1.2
+ resolution: "pbkdf2@npm:3.1.2"
+ dependencies:
+ create-hash: "npm:^1.1.2"
+ create-hmac: "npm:^1.1.4"
+ ripemd160: "npm:^2.0.1"
+ safe-buffer: "npm:^5.0.1"
+ sha.js: "npm:^2.4.8"
+ checksum: 10c0/5a30374e87d33fa080a92734d778cf172542cc7e41b96198c4c88763997b62d7850de3fbda5c3111ddf79805ee7c1da7046881c90ac4920b5e324204518b05fd
+ languageName: node
+ linkType: hard
+
+"picocolors@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "picocolors@npm:1.0.0"
+ checksum: 10c0/20a5b249e331c14479d94ec6817a182fd7a5680debae82705747b2db7ec50009a5f6648d0621c561b0572703f84dbef0858abcbd5856d3c5511426afcb1961f7
+ languageName: node
+ linkType: hard
+
+"picomatch@npm:^2.0.4, picomatch@npm:^2.2.1, picomatch@npm:^2.3.1":
+ version: 2.3.1
+ resolution: "picomatch@npm:2.3.1"
+ checksum: 10c0/26c02b8d06f03206fc2ab8d16f19960f2ff9e81a658f831ecb656d8f17d9edc799e8364b1f4a7873e89d9702dff96204be0fa26fe4181f6843f040f819dac4be
+ languageName: node
+ linkType: hard
+
+"pino-abstract-transport@npm:v0.5.0":
+ version: 0.5.0
+ resolution: "pino-abstract-transport@npm:0.5.0"
+ dependencies:
+ duplexify: "npm:^4.1.2"
+ split2: "npm:^4.0.0"
+ checksum: 10c0/0d0e30399028ec156642b4cdfe1a040b9022befdc38e8f85935d1837c3da6050691888038433f88190d1a1eff5d90abe17ff7e6edffc09baa2f96e51b6808183
+ languageName: node
+ linkType: hard
+
+"pino-std-serializers@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "pino-std-serializers@npm:4.0.0"
+ checksum: 10c0/9e8ccac9ce04a27ccc7aa26481d431b9e037d866b101b89d895c60b925baffb82685e84d5c29b05d8e3d7c146d766a9b08949cb24ab1ec526a16134c9962d649
+ languageName: node
+ linkType: hard
+
+"pino@npm:7.11.0":
+ version: 7.11.0
+ resolution: "pino@npm:7.11.0"
+ dependencies:
+ atomic-sleep: "npm:^1.0.0"
+ fast-redact: "npm:^3.0.0"
+ on-exit-leak-free: "npm:^0.2.0"
+ pino-abstract-transport: "npm:v0.5.0"
+ pino-std-serializers: "npm:^4.0.0"
+ process-warning: "npm:^1.0.0"
+ quick-format-unescaped: "npm:^4.0.3"
+ real-require: "npm:^0.1.0"
+ safe-stable-stringify: "npm:^2.1.0"
+ sonic-boom: "npm:^2.2.1"
+ thread-stream: "npm:^0.15.1"
+ bin:
+ pino: bin.js
+ checksum: 10c0/4cc1ed9d25a4bc5d61c836a861279fa0039159b8f2f37ec337e50b0a61f3980dab5d2b1393daec26f68a19c423262649f0818654c9ad102c35310544a202c62c
+ languageName: node
+ linkType: hard
+
+"pkg-types@npm:^1.0.3":
+ version: 1.0.3
+ resolution: "pkg-types@npm:1.0.3"
+ dependencies:
+ jsonc-parser: "npm:^3.2.0"
+ mlly: "npm:^1.2.0"
+ pathe: "npm:^1.1.0"
+ checksum: 10c0/7f692ff2005f51b8721381caf9bdbc7f5461506ba19c34f8631660a215c8de5e6dca268f23a319dd180b8f7c47a0dc6efea14b376c485ff99e98d810b8f786c4
+ languageName: node
+ linkType: hard
+
+"possible-typed-array-names@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "possible-typed-array-names@npm:1.0.0"
+ checksum: 10c0/d9aa22d31f4f7680e20269db76791b41c3a32c01a373e25f8a4813b4d45f7456bfc2b6d68f752dc4aab0e0bb0721cb3d76fb678c9101cb7a16316664bc2c73fd
+ languageName: node
+ linkType: hard
+
+"postcss@npm:8.4.31":
+ version: 8.4.31
+ resolution: "postcss@npm:8.4.31"
+ dependencies:
+ nanoid: "npm:^3.3.6"
+ picocolors: "npm:^1.0.0"
+ source-map-js: "npm:^1.0.2"
+ checksum: 10c0/748b82e6e5fc34034dcf2ae88ea3d11fd09f69b6c50ecdd3b4a875cfc7cdca435c958b211e2cb52355422ab6fccb7d8f2f2923161d7a1b281029e4a913d59acf
+ languageName: node
+ linkType: hard
+
+"prelude-ls@npm:^1.2.1":
+ version: 1.2.1
+ resolution: "prelude-ls@npm:1.2.1"
+ checksum: 10c0/b00d617431e7886c520a6f498a2e14c75ec58f6d93ba48c3b639cf241b54232d90daa05d83a9e9b9fef6baa63cb7e1e4602c2372fea5bc169668401eb127d0cd
+ languageName: node
+ linkType: hard
+
+"proc-log@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "proc-log@npm:3.0.0"
+ checksum: 10c0/f66430e4ff947dbb996058f6fd22de2c66612ae1a89b097744e17fb18a4e8e7a86db99eda52ccf15e53f00b63f4ec0b0911581ff2aac0355b625c8eac509b0dc
+ languageName: node
+ linkType: hard
+
+"proc-log@npm:^4.2.0":
+ version: 4.2.0
+ resolution: "proc-log@npm:4.2.0"
+ checksum: 10c0/17db4757c2a5c44c1e545170e6c70a26f7de58feb985091fb1763f5081cab3d01b181fb2dd240c9f4a4255a1d9227d163d5771b7e69c9e49a561692db865efb9
+ languageName: node
+ linkType: hard
+
+"process-nextick-args@npm:~2.0.0":
+ version: 2.0.1
+ resolution: "process-nextick-args@npm:2.0.1"
+ checksum: 10c0/bec089239487833d46b59d80327a1605e1c5287eaad770a291add7f45fda1bb5e28b38e0e061add0a1d0ee0984788ce74fa394d345eed1c420cacf392c554367
+ languageName: node
+ linkType: hard
+
+"process-warning@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "process-warning@npm:1.0.0"
+ checksum: 10c0/43ec4229d64eb5c58340c8aacade49eb5f6fd513eae54140abf365929ca20987f0a35c5868125e2b583cad4de8cd257beb5667d9cc539d9190a7a4c3014adf22
+ languageName: node
+ linkType: hard
+
+"promise-retry@npm:^2.0.1":
+ version: 2.0.1
+ resolution: "promise-retry@npm:2.0.1"
+ dependencies:
+ err-code: "npm:^2.0.2"
+ retry: "npm:^0.12.0"
+ checksum: 10c0/9c7045a1a2928094b5b9b15336dcd2a7b1c052f674550df63cc3f36cd44028e5080448175b6f6ca32b642de81150f5e7b1a98b728f15cb069f2dd60ac2616b96
+ languageName: node
+ linkType: hard
+
+"prop-types@npm:^15.8.1":
+ version: 15.8.1
+ resolution: "prop-types@npm:15.8.1"
+ dependencies:
+ loose-envify: "npm:^1.4.0"
+ object-assign: "npm:^4.1.1"
+ react-is: "npm:^16.13.1"
+ checksum: 10c0/59ece7ca2fb9838031d73a48d4becb9a7cc1ed10e610517c7d8f19a1e02fa47f7c27d557d8a5702bec3cfeccddc853579832b43f449e54635803f277b1c78077
+ languageName: node
+ linkType: hard
+
+"propagate@npm:^2.0.0":
+ version: 2.0.1
+ resolution: "propagate@npm:2.0.1"
+ checksum: 10c0/01e1023b60ae4050d1a2783f976d7db702022dbdb70dba797cceedad8cfc01b3939c41e77032f8c32aa9d93192fe937ebba1345e8604e5ce61fd3b62ee3003b8
+ languageName: node
+ linkType: hard
+
+"property-information@npm:^6.0.0":
+ version: 6.5.0
+ resolution: "property-information@npm:6.5.0"
+ checksum: 10c0/981e0f9cc2e5acdb414a6fd48a99dd0fd3a4079e7a91ab41cf97a8534cf43e0e0bc1ffada6602a1b3d047a33db8b5fc2ef46d863507eda712d5ceedac443f0ef
+ languageName: node
+ linkType: hard
+
+"protobufjs@npm:^6.11.2, protobufjs@npm:^6.8.8, protobufjs@npm:~6.11.2, protobufjs@npm:~6.11.3":
+ version: 6.11.4
+ resolution: "protobufjs@npm:6.11.4"
+ dependencies:
+ "@protobufjs/aspromise": "npm:^1.1.2"
+ "@protobufjs/base64": "npm:^1.1.2"
+ "@protobufjs/codegen": "npm:^2.0.4"
+ "@protobufjs/eventemitter": "npm:^1.1.0"
+ "@protobufjs/fetch": "npm:^1.1.0"
+ "@protobufjs/float": "npm:^1.0.2"
+ "@protobufjs/inquire": "npm:^1.1.0"
+ "@protobufjs/path": "npm:^1.1.2"
+ "@protobufjs/pool": "npm:^1.1.0"
+ "@protobufjs/utf8": "npm:^1.1.0"
+ "@types/long": "npm:^4.0.1"
+ "@types/node": "npm:>=13.7.0"
+ long: "npm:^4.0.0"
+ bin:
+ pbjs: bin/pbjs
+ pbts: bin/pbts
+ checksum: 10c0/c244d7b9b6d3258193da5c0d1e558dfb47f208ae345e209f90ec45c9dca911b90fa17e937892a9a39a4136ab9886981aae9efdf6039f7baff4f7225f5eeb9812
+ languageName: node
+ linkType: hard
+
+"proxy-from-env@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "proxy-from-env@npm:1.1.0"
+ checksum: 10c0/fe7dd8b1bdbbbea18d1459107729c3e4a2243ca870d26d34c2c1bcd3e4425b7bcc5112362df2d93cc7fb9746f6142b5e272fd1cc5c86ddf8580175186f6ad42b
+ languageName: node
+ linkType: hard
+
+"public-encrypt@npm:^4.0.0":
+ version: 4.0.3
+ resolution: "public-encrypt@npm:4.0.3"
+ dependencies:
+ bn.js: "npm:^4.1.0"
+ browserify-rsa: "npm:^4.0.0"
+ create-hash: "npm:^1.1.0"
+ parse-asn1: "npm:^5.0.0"
+ randombytes: "npm:^2.0.1"
+ safe-buffer: "npm:^5.1.2"
+ checksum: 10c0/6c2cc19fbb554449e47f2175065d6b32f828f9b3badbee4c76585ac28ae8641aafb9bb107afc430c33c5edd6b05dbe318df4f7d6d7712b1093407b11c4280700
+ languageName: node
+ linkType: hard
+
+"pump@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "pump@npm:3.0.0"
+ dependencies:
+ end-of-stream: "npm:^1.1.0"
+ once: "npm:^1.3.1"
+ checksum: 10c0/bbdeda4f747cdf47db97428f3a135728669e56a0ae5f354a9ac5b74556556f5446a46f720a8f14ca2ece5be9b4d5d23c346db02b555f46739934cc6c093a5478
+ languageName: node
+ linkType: hard
+
+"punycode@npm:^2.1.0":
+ version: 2.3.1
+ resolution: "punycode@npm:2.3.1"
+ checksum: 10c0/14f76a8206bc3464f794fb2e3d3cc665ae416c01893ad7a02b23766eb07159144ee612ad67af5e84fa4479ccfe67678c4feb126b0485651b302babf66f04f9e9
+ languageName: node
+ linkType: hard
+
+"query-string@npm:7.1.3":
+ version: 7.1.3
+ resolution: "query-string@npm:7.1.3"
+ dependencies:
+ decode-uri-component: "npm:^0.2.2"
+ filter-obj: "npm:^1.1.0"
+ split-on-first: "npm:^1.0.0"
+ strict-uri-encode: "npm:^2.0.0"
+ checksum: 10c0/a896c08e9e0d4f8ffd89a572d11f668c8d0f7df9c27c6f49b92ab31366d3ba0e9c331b9a620ee747893436cd1f2f821a6327e2bc9776bde2402ac6c270b801b2
+ languageName: node
+ linkType: hard
+
+"queue-microtask@npm:^1.2.2":
+ version: 1.2.3
+ resolution: "queue-microtask@npm:1.2.3"
+ checksum: 10c0/900a93d3cdae3acd7d16f642c29a642aea32c2026446151f0778c62ac089d4b8e6c986811076e1ae180a694cedf077d453a11b58ff0a865629a4f82ab558e102
+ languageName: node
+ linkType: hard
+
+"quick-format-unescaped@npm:^4.0.3":
+ version: 4.0.4
+ resolution: "quick-format-unescaped@npm:4.0.4"
+ checksum: 10c0/fe5acc6f775b172ca5b4373df26f7e4fd347975578199e7d74b2ae4077f0af05baa27d231de1e80e8f72d88275ccc6028568a7a8c9ee5e7368ace0e18eff93a4
+ languageName: node
+ linkType: hard
+
+"radix3@npm:^1.1.0":
+ version: 1.1.2
+ resolution: "radix3@npm:1.1.2"
+ checksum: 10c0/d4a295547f71af079868d2c2ed3814a9296ee026c5488212d58c106e6b4797c6eaec1259b46c9728913622f2240c9a944bfc8e2b3b5f6e4a5045338b1609f1e4
+ languageName: node
+ linkType: hard
+
+"rainbow-sprinkles@npm:^0.17.2":
+ version: 0.17.2
+ resolution: "rainbow-sprinkles@npm:0.17.2"
+ peerDependencies:
+ "@vanilla-extract/css": ^1
+ "@vanilla-extract/dynamic": ^2
+ checksum: 10c0/c7ab7955592860afaab023f75b20c82d5f6242c766a8b2c42cd5794082ef51b25411c6c2f22f46525791ef8104c95dc13d72772904d37382564aed3a229684ef
+ languageName: node
+ linkType: hard
+
+"randombytes@npm:^2.0.0, randombytes@npm:^2.0.1, randombytes@npm:^2.0.5":
+ version: 2.1.0
+ resolution: "randombytes@npm:2.1.0"
+ dependencies:
+ safe-buffer: "npm:^5.1.0"
+ checksum: 10c0/50395efda7a8c94f5dffab564f9ff89736064d32addf0cc7e8bf5e4166f09f8ded7a0849ca6c2d2a59478f7d90f78f20d8048bca3cdf8be09d8e8a10790388f3
+ languageName: node
+ linkType: hard
+
+"randomfill@npm:^1.0.3":
+ version: 1.0.4
+ resolution: "randomfill@npm:1.0.4"
+ dependencies:
+ randombytes: "npm:^2.0.5"
+ safe-buffer: "npm:^5.1.0"
+ checksum: 10c0/11aeed35515872e8f8a2edec306734e6b74c39c46653607f03c68385ab8030e2adcc4215f76b5e4598e028c4750d820afd5c65202527d831d2a5f207fe2bc87c
+ languageName: node
+ linkType: hard
+
+"react-ace@npm:11.0.1":
+ version: 11.0.1
+ resolution: "react-ace@npm:11.0.1"
+ dependencies:
+ ace-builds: "npm:^1.32.8"
+ diff-match-patch: "npm:^1.0.5"
+ lodash.get: "npm:^4.4.2"
+ lodash.isequal: "npm:^4.5.0"
+ prop-types: "npm:^15.8.1"
+ peerDependencies:
+ react: ^0.13.0 || ^0.14.0 || ^15.0.1 || ^16.0.0 || ^17.0.0 || ^18.0.0
+ react-dom: ^0.13.0 || ^0.14.0 || ^15.0.1 || ^16.0.0 || ^17.0.0 || ^18.0.0
+ checksum: 10c0/fa8acd2dc977d5edf6d99e238429c696c3cb4f35fb9f78b296cff875a399b12c6672618f34495be00c6d96ca877c3e30f37c5235b9b3878f65d19aa0ed5dab69
+ languageName: node
+ linkType: hard
+
+"react-aria@npm:^3.33.1":
+ version: 3.34.1
+ resolution: "react-aria@npm:3.34.1"
+ dependencies:
+ "@internationalized/string": "npm:^3.2.3"
+ "@react-aria/breadcrumbs": "npm:^3.5.15"
+ "@react-aria/button": "npm:^3.9.7"
+ "@react-aria/calendar": "npm:^3.5.10"
+ "@react-aria/checkbox": "npm:^3.14.5"
+ "@react-aria/combobox": "npm:^3.10.1"
+ "@react-aria/datepicker": "npm:^3.11.1"
+ "@react-aria/dialog": "npm:^3.5.16"
+ "@react-aria/dnd": "npm:^3.7.1"
+ "@react-aria/focus": "npm:^3.18.1"
+ "@react-aria/gridlist": "npm:^3.9.1"
+ "@react-aria/i18n": "npm:^3.12.1"
+ "@react-aria/interactions": "npm:^3.22.1"
+ "@react-aria/label": "npm:^3.7.10"
+ "@react-aria/link": "npm:^3.7.3"
+ "@react-aria/listbox": "npm:^3.13.1"
+ "@react-aria/menu": "npm:^3.15.1"
+ "@react-aria/meter": "npm:^3.4.15"
+ "@react-aria/numberfield": "npm:^3.11.5"
+ "@react-aria/overlays": "npm:^3.23.1"
+ "@react-aria/progress": "npm:^3.4.15"
+ "@react-aria/radio": "npm:^3.10.6"
+ "@react-aria/searchfield": "npm:^3.7.7"
+ "@react-aria/select": "npm:^3.14.7"
+ "@react-aria/selection": "npm:^3.19.1"
+ "@react-aria/separator": "npm:^3.4.1"
+ "@react-aria/slider": "npm:^3.7.10"
+ "@react-aria/ssr": "npm:^3.9.5"
+ "@react-aria/switch": "npm:^3.6.6"
+ "@react-aria/table": "npm:^3.15.1"
+ "@react-aria/tabs": "npm:^3.9.3"
+ "@react-aria/tag": "npm:^3.4.3"
+ "@react-aria/textfield": "npm:^3.14.7"
+ "@react-aria/tooltip": "npm:^3.7.6"
+ "@react-aria/utils": "npm:^3.25.1"
+ "@react-aria/visually-hidden": "npm:^3.8.14"
+ "@react-types/shared": "npm:^3.24.1"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/69883cf03802eada811926929d6e45e1485a546043aafbf0a84886ad2cb3c295bef25311b1796794f2e0f410500636ca4197ba33f1842f1d608adda7cbba4a25
+ languageName: node
+ linkType: hard
+
+"react-dom@npm:18.2.0":
+ version: 18.2.0
+ resolution: "react-dom@npm:18.2.0"
+ dependencies:
+ loose-envify: "npm:^1.1.0"
+ scheduler: "npm:^0.23.0"
+ peerDependencies:
+ react: ^18.2.0
+ checksum: 10c0/66dfc5f93e13d0674e78ef41f92ed21dfb80f9c4ac4ac25a4b51046d41d4d2186abc915b897f69d3d0ebbffe6184e7c5876f2af26bfa956f179225d921be713a
+ languageName: node
+ linkType: hard
+
+"react-dropzone@npm:^14.2.3":
+ version: 14.2.3
+ resolution: "react-dropzone@npm:14.2.3"
+ dependencies:
+ attr-accept: "npm:^2.2.2"
+ file-selector: "npm:^0.6.0"
+ prop-types: "npm:^15.8.1"
+ peerDependencies:
+ react: ">= 16.8 || 18.0.0"
+ checksum: 10c0/6433517c53309aca1bb4f4a535aeee297345ca1e11b123676f46c7682ffab34a3428cbda106448fc92b5c9a5e0fa5d225bc188adebcd4d302366bf6b1f9c3fc1
+ languageName: node
+ linkType: hard
+
+"react-icons@npm:4.4.0":
+ version: 4.4.0
+ resolution: "react-icons@npm:4.4.0"
+ peerDependencies:
+ react: "*"
+ checksum: 10c0/8daeae11e4b989eebcb97b9fdf3a743607b76b637d2eece309f6274f3a85b9c720313956cfabe220628324abf50b9b01823f65ac9cf71b8a816e440d2fca5293
+ languageName: node
+ linkType: hard
+
+"react-icons@npm:5.2.1":
+ version: 5.2.1
+ resolution: "react-icons@npm:5.2.1"
+ peerDependencies:
+ react: "*"
+ checksum: 10c0/9d52b975afaf27dab07dcaefd50497ba43cc57076fc26ccac5142965e01c7fd0c503a62ea31c3bb710e0b2959a4620c2fed12c3c86960ad8ceb63de7f0085f3a
+ languageName: node
+ linkType: hard
+
+"react-is@npm:^16.13.1":
+ version: 16.13.1
+ resolution: "react-is@npm:16.13.1"
+ checksum: 10c0/33977da7a5f1a287936a0c85639fec6ca74f4f15ef1e59a6bc20338fc73dc69555381e211f7a3529b8150a1f71e4225525b41b60b52965bda53ce7d47377ada1
+ languageName: node
+ linkType: hard
+
+"react-markdown@npm:9.0.1":
+ version: 9.0.1
+ resolution: "react-markdown@npm:9.0.1"
+ dependencies:
+ "@types/hast": "npm:^3.0.0"
+ devlop: "npm:^1.0.0"
+ hast-util-to-jsx-runtime: "npm:^2.0.0"
+ html-url-attributes: "npm:^3.0.0"
+ mdast-util-to-hast: "npm:^13.0.0"
+ remark-parse: "npm:^11.0.0"
+ remark-rehype: "npm:^11.0.0"
+ unified: "npm:^11.0.0"
+ unist-util-visit: "npm:^5.0.0"
+ vfile: "npm:^6.0.0"
+ peerDependencies:
+ "@types/react": ">=18"
+ react: ">=18"
+ checksum: 10c0/3a3895dbd56647bc864b8da46dd575e71a9e609eb1e43fea8e8e6209d86e208eddd5b07bf8d7b5306a194b405440760a8d134aebd5a4ce5dc7dee4299e84db96
+ languageName: node
+ linkType: hard
+
+"react-stately@npm:^3.31.1":
+ version: 3.32.1
+ resolution: "react-stately@npm:3.32.1"
+ dependencies:
+ "@react-stately/calendar": "npm:^3.5.3"
+ "@react-stately/checkbox": "npm:^3.6.7"
+ "@react-stately/collections": "npm:^3.10.9"
+ "@react-stately/combobox": "npm:^3.9.1"
+ "@react-stately/data": "npm:^3.11.6"
+ "@react-stately/datepicker": "npm:^3.10.1"
+ "@react-stately/dnd": "npm:^3.4.1"
+ "@react-stately/form": "npm:^3.0.5"
+ "@react-stately/list": "npm:^3.10.7"
+ "@react-stately/menu": "npm:^3.8.1"
+ "@react-stately/numberfield": "npm:^3.9.5"
+ "@react-stately/overlays": "npm:^3.6.9"
+ "@react-stately/radio": "npm:^3.10.6"
+ "@react-stately/searchfield": "npm:^3.5.5"
+ "@react-stately/select": "npm:^3.6.6"
+ "@react-stately/selection": "npm:^3.16.1"
+ "@react-stately/slider": "npm:^3.5.6"
+ "@react-stately/table": "npm:^3.12.1"
+ "@react-stately/tabs": "npm:^3.6.8"
+ "@react-stately/toggle": "npm:^3.7.6"
+ "@react-stately/tooltip": "npm:^3.4.11"
+ "@react-stately/tree": "npm:^3.8.3"
+ "@react-types/shared": "npm:^3.24.1"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/26343451f2f66e1f53e5080d8ad771be8a179cc327c19bafcb006fd0a085deeac4d278d2a1141d15fd041590be02278314b9d1ff609f6ab731813570aab27693
+ languageName: node
+ linkType: hard
+
+"react@npm:18.2.0":
+ version: 18.2.0
+ resolution: "react@npm:18.2.0"
+ dependencies:
+ loose-envify: "npm:^1.1.0"
+ checksum: 10c0/b562d9b569b0cb315e44b48099f7712283d93df36b19a39a67c254c6686479d3980b7f013dc931f4a5a3ae7645eae6386b4aa5eea933baa54ecd0f9acb0902b8
+ languageName: node
+ linkType: hard
+
+"readable-stream@npm:^2.3.3, readable-stream@npm:^2.3.8":
+ version: 2.3.8
+ resolution: "readable-stream@npm:2.3.8"
+ dependencies:
+ core-util-is: "npm:~1.0.0"
+ inherits: "npm:~2.0.3"
+ isarray: "npm:~1.0.0"
+ process-nextick-args: "npm:~2.0.0"
+ safe-buffer: "npm:~5.1.1"
+ string_decoder: "npm:~1.1.1"
+ util-deprecate: "npm:~1.0.1"
+ checksum: 10c0/7efdb01f3853bc35ac62ea25493567bf588773213f5f4a79f9c365e1ad13bab845ac0dae7bc946270dc40c3929483228415e92a3fc600cc7e4548992f41ee3fa
+ languageName: node
+ linkType: hard
+
+"readable-stream@npm:^3.1.1, readable-stream@npm:^3.6.0":
+ version: 3.6.2
+ resolution: "readable-stream@npm:3.6.2"
+ dependencies:
+ inherits: "npm:^2.0.3"
+ string_decoder: "npm:^1.1.1"
+ util-deprecate: "npm:^1.0.1"
+ checksum: 10c0/e37be5c79c376fdd088a45fa31ea2e423e5d48854be7a22a58869b4e84d25047b193f6acb54f1012331e1bcd667ffb569c01b99d36b0bd59658fb33f513511b7
+ languageName: node
+ linkType: hard
+
+"readdirp@npm:~3.6.0":
+ version: 3.6.0
+ resolution: "readdirp@npm:3.6.0"
+ dependencies:
+ picomatch: "npm:^2.2.1"
+ checksum: 10c0/6fa848cf63d1b82ab4e985f4cf72bd55b7dcfd8e0a376905804e48c3634b7e749170940ba77b32804d5fe93b3cc521aa95a8d7e7d725f830da6d93f3669ce66b
+ languageName: node
+ linkType: hard
+
+"readonly-date@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "readonly-date@npm:1.0.0"
+ checksum: 10c0/7ab32bf19f6bfec102584a524fa79a289e6ede0bf20c80fd90ab309962e45b71d19dd0e3915dff6e81edf226f08fda65e890539b4aca74668921790b10471356
+ languageName: node
+ linkType: hard
+
+"real-require@npm:^0.1.0":
+ version: 0.1.0
+ resolution: "real-require@npm:0.1.0"
+ checksum: 10c0/c0f8ae531d1f51fe6343d47a2a1e5756e19b65a81b4a9642b9ebb4874e0d8b5f3799bc600bf4592838242477edc6f57778593f21b71d90f8ad0d8a317bbfae1c
+ languageName: node
+ linkType: hard
+
+"rechoir@npm:^0.6.2":
+ version: 0.6.2
+ resolution: "rechoir@npm:0.6.2"
+ dependencies:
+ resolve: "npm:^1.1.6"
+ checksum: 10c0/22c4bb32f4934a9468468b608417194f7e3ceba9a508512125b16082c64f161915a28467562368eeb15dc16058eb5b7c13a20b9eb29ff9927d1ebb3b5aa83e84
+ languageName: node
+ linkType: hard
+
+"reflect.getprototypeof@npm:^1.0.4":
+ version: 1.0.6
+ resolution: "reflect.getprototypeof@npm:1.0.6"
+ dependencies:
+ call-bind: "npm:^1.0.7"
+ define-properties: "npm:^1.2.1"
+ es-abstract: "npm:^1.23.1"
+ es-errors: "npm:^1.3.0"
+ get-intrinsic: "npm:^1.2.4"
+ globalthis: "npm:^1.0.3"
+ which-builtin-type: "npm:^1.1.3"
+ checksum: 10c0/baf4ef8ee6ff341600f4720b251cf5a6cb552d6a6ab0fdc036988c451bf16f920e5feb0d46bd4f530a5cce568f1f7aca2d77447ca798920749cfc52783c39b55
+ languageName: node
+ linkType: hard
+
+"regenerator-runtime@npm:^0.14.0":
+ version: 0.14.1
+ resolution: "regenerator-runtime@npm:0.14.1"
+ checksum: 10c0/1b16eb2c4bceb1665c89de70dcb64126a22bc8eb958feef3cd68fe11ac6d2a4899b5cd1b80b0774c7c03591dc57d16631a7f69d2daa2ec98100e2f29f7ec4cc4
+ languageName: node
+ linkType: hard
+
+"regexp.prototype.flags@npm:^1.5.2":
+ version: 1.5.2
+ resolution: "regexp.prototype.flags@npm:1.5.2"
+ dependencies:
+ call-bind: "npm:^1.0.6"
+ define-properties: "npm:^1.2.1"
+ es-errors: "npm:^1.3.0"
+ set-function-name: "npm:^2.0.1"
+ checksum: 10c0/0f3fc4f580d9c349f8b560b012725eb9c002f36daa0041b3fbf6f4238cb05932191a4d7d5db3b5e2caa336d5150ad0402ed2be81f711f9308fe7e1a9bf9bd552
+ languageName: node
+ linkType: hard
+
+"regexpp@npm:^3.2.0":
+ version: 3.2.0
+ resolution: "regexpp@npm:3.2.0"
+ checksum: 10c0/d1da82385c8754a1681416b90b9cca0e21b4a2babef159099b88f640637d789c69011d0bc94705dacab85b81133e929d027d85210e8b8b03f8035164dbc14710
+ languageName: node
+ linkType: hard
+
+"remark-parse@npm:^11.0.0":
+ version: 11.0.0
+ resolution: "remark-parse@npm:11.0.0"
+ dependencies:
+ "@types/mdast": "npm:^4.0.0"
+ mdast-util-from-markdown: "npm:^2.0.0"
+ micromark-util-types: "npm:^2.0.0"
+ unified: "npm:^11.0.0"
+ checksum: 10c0/6eed15ddb8680eca93e04fcb2d1b8db65a743dcc0023f5007265dda558b09db595a087f622062ccad2630953cd5cddc1055ce491d25a81f3317c858348a8dd38
+ languageName: node
+ linkType: hard
+
+"remark-rehype@npm:^11.0.0":
+ version: 11.1.0
+ resolution: "remark-rehype@npm:11.1.0"
+ dependencies:
+ "@types/hast": "npm:^3.0.0"
+ "@types/mdast": "npm:^4.0.0"
+ mdast-util-to-hast: "npm:^13.0.0"
+ unified: "npm:^11.0.0"
+ vfile: "npm:^6.0.0"
+ checksum: 10c0/7a9534847ea70e78cf09227a4302af7e491f625fd092351a1b1ee27a2de0a369ac4acf069682e8a8ec0a55847b3e83f0be76b2028aa90e98e69e21420b9794c3
+ languageName: node
+ linkType: hard
+
+"remove-accents@npm:0.5.0":
+ version: 0.5.0
+ resolution: "remove-accents@npm:0.5.0"
+ checksum: 10c0/a75321aa1b53d9abe82637115a492770bfe42bb38ed258be748bf6795871202bc8b4badff22013494a7029f5a241057ad8d3f72adf67884dbe15a9e37e87adc4
+ languageName: node
+ linkType: hard
+
+"resolve-from@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "resolve-from@npm:4.0.0"
+ checksum: 10c0/8408eec31a3112ef96e3746c37be7d64020cda07c03a920f5024e77290a218ea758b26ca9529fd7b1ad283947f34b2291c1c0f6aa0ed34acfdda9c6014c8d190
+ languageName: node
+ linkType: hard
+
+"resolve-pkg-maps@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "resolve-pkg-maps@npm:1.0.0"
+ checksum: 10c0/fb8f7bbe2ca281a73b7ef423a1cbc786fb244bd7a95cbe5c3fba25b27d327150beca8ba02f622baea65919a57e061eb5005204daa5f93ed590d9b77463a567ab
+ languageName: node
+ linkType: hard
+
+"resolve@npm:^1.1.6, resolve@npm:^1.22.4":
+ version: 1.22.8
+ resolution: "resolve@npm:1.22.8"
+ dependencies:
+ is-core-module: "npm:^2.13.0"
+ path-parse: "npm:^1.0.7"
+ supports-preserve-symlinks-flag: "npm:^1.0.0"
+ bin:
+ resolve: bin/resolve
+ checksum: 10c0/07e179f4375e1fd072cfb72ad66d78547f86e6196c4014b31cb0b8bb1db5f7ca871f922d08da0fbc05b94e9fd42206f819648fa3b5b873ebbc8e1dc68fec433a
+ languageName: node
+ linkType: hard
+
+"resolve@npm:^2.0.0-next.5":
+ version: 2.0.0-next.5
+ resolution: "resolve@npm:2.0.0-next.5"
+ dependencies:
+ is-core-module: "npm:^2.13.0"
+ path-parse: "npm:^1.0.7"
+ supports-preserve-symlinks-flag: "npm:^1.0.0"
+ bin:
+ resolve: bin/resolve
+ checksum: 10c0/a6c33555e3482ea2ec4c6e3d3bf0d78128abf69dca99ae468e64f1e30acaa318fd267fb66c8836b04d558d3e2d6ed875fe388067e7d8e0de647d3c21af21c43a
+ languageName: node
+ linkType: hard
+
+"resolve@patch:resolve@npm%3A^1.1.6#optional!builtin, resolve@patch:resolve@npm%3A^1.22.4#optional!builtin":
+ version: 1.22.8
+ resolution: "resolve@patch:resolve@npm%3A1.22.8#optional!builtin::version=1.22.8&hash=c3c19d"
+ dependencies:
+ is-core-module: "npm:^2.13.0"
+ path-parse: "npm:^1.0.7"
+ supports-preserve-symlinks-flag: "npm:^1.0.0"
+ bin:
+ resolve: bin/resolve
+ checksum: 10c0/0446f024439cd2e50c6c8fa8ba77eaa8370b4180f401a96abf3d1ebc770ac51c1955e12764cde449fde3fff480a61f84388e3505ecdbab778f4bef5f8212c729
+ languageName: node
+ linkType: hard
+
+"resolve@patch:resolve@npm%3A^2.0.0-next.5#optional!builtin":
+ version: 2.0.0-next.5
+ resolution: "resolve@patch:resolve@npm%3A2.0.0-next.5#optional!builtin::version=2.0.0-next.5&hash=c3c19d"
+ dependencies:
+ is-core-module: "npm:^2.13.0"
+ path-parse: "npm:^1.0.7"
+ supports-preserve-symlinks-flag: "npm:^1.0.0"
+ bin:
+ resolve: bin/resolve
+ checksum: 10c0/78ad6edb8309a2bfb720c2c1898f7907a37f858866ce11a5974643af1203a6a6e05b2fa9c53d8064a673a447b83d42569260c306d43628bff5bb101969708355
+ languageName: node
+ linkType: hard
+
+"retry@npm:^0.12.0":
+ version: 0.12.0
+ resolution: "retry@npm:0.12.0"
+ checksum: 10c0/59933e8501727ba13ad73ef4a04d5280b3717fd650408460c987392efe9d7be2040778ed8ebe933c5cbd63da3dcc37919c141ef8af0a54a6e4fca5a2af177bfe
+ languageName: node
+ linkType: hard
+
+"reusify@npm:^1.0.4":
+ version: 1.0.4
+ resolution: "reusify@npm:1.0.4"
+ checksum: 10c0/c19ef26e4e188f408922c46f7ff480d38e8dfc55d448310dfb518736b23ed2c4f547fb64a6ed5bdba92cd7e7ddc889d36ff78f794816d5e71498d645ef476107
+ languageName: node
+ linkType: hard
+
+"rimraf@npm:^3.0.2":
+ version: 3.0.2
+ resolution: "rimraf@npm:3.0.2"
+ dependencies:
+ glob: "npm:^7.1.3"
+ bin:
+ rimraf: bin.js
+ checksum: 10c0/9cb7757acb489bd83757ba1a274ab545eafd75598a9d817e0c3f8b164238dd90eba50d6b848bd4dcc5f3040912e882dc7ba71653e35af660d77b25c381d402e8
+ languageName: node
+ linkType: hard
+
+"ripemd160@npm:^2.0.0, ripemd160@npm:^2.0.1":
+ version: 2.0.2
+ resolution: "ripemd160@npm:2.0.2"
+ dependencies:
+ hash-base: "npm:^3.0.0"
+ inherits: "npm:^2.0.1"
+ checksum: 10c0/f6f0df78817e78287c766687aed4d5accbebc308a8e7e673fb085b9977473c1f139f0c5335d353f172a915bb288098430755d2ad3c4f30612f4dd0c901cd2c3a
+ languageName: node
+ linkType: hard
+
+"run-parallel@npm:^1.1.9":
+ version: 1.2.0
+ resolution: "run-parallel@npm:1.2.0"
+ dependencies:
+ queue-microtask: "npm:^1.2.2"
+ checksum: 10c0/200b5ab25b5b8b7113f9901bfe3afc347e19bb7475b267d55ad0eb86a62a46d77510cb0f232507c9e5d497ebda569a08a9867d0d14f57a82ad5564d991588b39
+ languageName: node
+ linkType: hard
+
+"rxjs@npm:^7.8.1":
+ version: 7.8.1
+ resolution: "rxjs@npm:7.8.1"
+ dependencies:
+ tslib: "npm:^2.1.0"
+ checksum: 10c0/3c49c1ecd66170b175c9cacf5cef67f8914dcbc7cd0162855538d365c83fea631167cacb644b3ce533b2ea0e9a4d0b12175186985f89d75abe73dbd8f7f06f68
+ languageName: node
+ linkType: hard
+
+"safe-array-concat@npm:^1.1.2":
+ version: 1.1.2
+ resolution: "safe-array-concat@npm:1.1.2"
+ dependencies:
+ call-bind: "npm:^1.0.7"
+ get-intrinsic: "npm:^1.2.4"
+ has-symbols: "npm:^1.0.3"
+ isarray: "npm:^2.0.5"
+ checksum: 10c0/12f9fdb01c8585e199a347eacc3bae7b5164ae805cdc8c6707199dbad5b9e30001a50a43c4ee24dc9ea32dbb7279397850e9208a7e217f4d8b1cf5d90129dec9
+ languageName: node
+ linkType: hard
+
+"safe-buffer@npm:^5.0.1, safe-buffer@npm:^5.1.0, safe-buffer@npm:^5.1.1, safe-buffer@npm:^5.1.2, safe-buffer@npm:^5.2.0, safe-buffer@npm:^5.2.1, safe-buffer@npm:~5.2.0":
+ version: 5.2.1
+ resolution: "safe-buffer@npm:5.2.1"
+ checksum: 10c0/6501914237c0a86e9675d4e51d89ca3c21ffd6a31642efeba25ad65720bce6921c9e7e974e5be91a786b25aa058b5303285d3c15dbabf983a919f5f630d349f3
+ languageName: node
+ linkType: hard
+
+"safe-buffer@npm:~5.1.0, safe-buffer@npm:~5.1.1":
+ version: 5.1.2
+ resolution: "safe-buffer@npm:5.1.2"
+ checksum: 10c0/780ba6b5d99cc9a40f7b951d47152297d0e260f0df01472a1b99d4889679a4b94a13d644f7dbc4f022572f09ae9005fa2fbb93bbbd83643316f365a3e9a45b21
+ languageName: node
+ linkType: hard
+
+"safe-regex-test@npm:^1.0.3":
+ version: 1.0.3
+ resolution: "safe-regex-test@npm:1.0.3"
+ dependencies:
+ call-bind: "npm:^1.0.6"
+ es-errors: "npm:^1.3.0"
+ is-regex: "npm:^1.1.4"
+ checksum: 10c0/900bf7c98dc58f08d8523b7012b468e4eb757afa624f198902c0643d7008ba777b0bdc35810ba0b758671ce887617295fb742b3f3968991b178ceca54cb07603
+ languageName: node
+ linkType: hard
+
+"safe-stable-stringify@npm:^2.1.0":
+ version: 2.4.3
+ resolution: "safe-stable-stringify@npm:2.4.3"
+ checksum: 10c0/81dede06b8f2ae794efd868b1e281e3c9000e57b39801c6c162267eb9efda17bd7a9eafa7379e1f1cacd528d4ced7c80d7460ad26f62ada7c9e01dec61b2e768
+ languageName: node
+ linkType: hard
+
+"safer-buffer@npm:>= 2.1.2 < 3.0.0":
+ version: 2.1.2
+ resolution: "safer-buffer@npm:2.1.2"
+ checksum: 10c0/7e3c8b2e88a1841c9671094bbaeebd94448111dd90a81a1f606f3f67708a6ec57763b3b47f06da09fc6054193e0e6709e77325415dc8422b04497a8070fa02d4
+ languageName: node
+ linkType: hard
+
+"scheduler@npm:^0.23.0":
+ version: 0.23.0
+ resolution: "scheduler@npm:0.23.0"
+ dependencies:
+ loose-envify: "npm:^1.1.0"
+ checksum: 10c0/b777f7ca0115e6d93e126ac490dbd82642d14983b3079f58f35519d992fa46260be7d6e6cede433a92db70306310c6f5f06e144f0e40c484199e09c1f7be53dd
+ languageName: node
+ linkType: hard
+
+"scrypt-js@npm:3.0.1":
+ version: 3.0.1
+ resolution: "scrypt-js@npm:3.0.1"
+ checksum: 10c0/e2941e1c8b5c84c7f3732b0153fee624f5329fc4e772a06270ee337d4d2df4174b8abb5e6ad53804a29f53890ecbc78f3775a319323568c0313040c0e55f5b10
+ languageName: node
+ linkType: hard
+
+"secp256k1@npm:^4.0.2":
+ version: 4.0.3
+ resolution: "secp256k1@npm:4.0.3"
+ dependencies:
+ elliptic: "npm:^6.5.4"
+ node-addon-api: "npm:^2.0.0"
+ node-gyp: "npm:latest"
+ node-gyp-build: "npm:^4.2.0"
+ checksum: 10c0/de0a0e525a6f8eb2daf199b338f0797dbfe5392874285a145bb005a72cabacb9d42c0197d0de129a1a0f6094d2cc4504d1f87acb6a8bbfb7770d4293f252c401
+ languageName: node
+ linkType: hard
+
+"semver@npm:^6.3.1":
+ version: 6.3.1
+ resolution: "semver@npm:6.3.1"
+ bin:
+ semver: bin/semver.js
+ checksum: 10c0/e3d79b609071caa78bcb6ce2ad81c7966a46a7431d9d58b8800cfa9cb6a63699b3899a0e4bcce36167a284578212d9ae6942b6929ba4aa5015c079a67751d42d
+ languageName: node
+ linkType: hard
+
+"semver@npm:^7.3.5, semver@npm:^7.5.0":
+ version: 7.6.0
+ resolution: "semver@npm:7.6.0"
+ dependencies:
+ lru-cache: "npm:^6.0.0"
+ bin:
+ semver: bin/semver.js
+ checksum: 10c0/fbfe717094ace0aa8d6332d7ef5ce727259815bd8d8815700853f4faf23aacbd7192522f0dc5af6df52ef4fa85a355ebd2f5d39f554bd028200d6cf481ab9b53
+ languageName: node
+ linkType: hard
+
+"semver@npm:^7.3.7":
+ version: 7.6.2
+ resolution: "semver@npm:7.6.2"
+ bin:
+ semver: bin/semver.js
+ checksum: 10c0/97d3441e97ace8be4b1976433d1c32658f6afaff09f143e52c593bae7eef33de19e3e369c88bd985ce1042c6f441c80c6803078d1de2a9988080b66684cbb30c
+ languageName: node
+ linkType: hard
+
+"set-function-length@npm:^1.2.1":
+ version: 1.2.2
+ resolution: "set-function-length@npm:1.2.2"
+ dependencies:
+ define-data-property: "npm:^1.1.4"
+ es-errors: "npm:^1.3.0"
+ function-bind: "npm:^1.1.2"
+ get-intrinsic: "npm:^1.2.4"
+ gopd: "npm:^1.0.1"
+ has-property-descriptors: "npm:^1.0.2"
+ checksum: 10c0/82850e62f412a258b71e123d4ed3873fa9377c216809551192bb6769329340176f109c2eeae8c22a8d386c76739855f78e8716515c818bcaef384b51110f0f3c
+ languageName: node
+ linkType: hard
+
+"set-function-name@npm:^2.0.1, set-function-name@npm:^2.0.2":
+ version: 2.0.2
+ resolution: "set-function-name@npm:2.0.2"
+ dependencies:
+ define-data-property: "npm:^1.1.4"
+ es-errors: "npm:^1.3.0"
+ functions-have-names: "npm:^1.2.3"
+ has-property-descriptors: "npm:^1.0.2"
+ checksum: 10c0/fce59f90696c450a8523e754abb305e2b8c73586452619c2bad5f7bf38c7b6b4651895c9db895679c5bef9554339cf3ef1c329b66ece3eda7255785fbe299316
+ languageName: node
+ linkType: hard
+
+"sha.js@npm:^2.4.0, sha.js@npm:^2.4.11, sha.js@npm:^2.4.8":
+ version: 2.4.11
+ resolution: "sha.js@npm:2.4.11"
+ dependencies:
+ inherits: "npm:^2.0.1"
+ safe-buffer: "npm:^5.0.1"
+ bin:
+ sha.js: ./bin.js
+ checksum: 10c0/b7a371bca8821c9cc98a0aeff67444a03d48d745cb103f17228b96793f455f0eb0a691941b89ea1e60f6359207e36081d9be193252b0f128e0daf9cfea2815a5
+ languageName: node
+ linkType: hard
+
+"shebang-command@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "shebang-command@npm:2.0.0"
+ dependencies:
+ shebang-regex: "npm:^3.0.0"
+ checksum: 10c0/a41692e7d89a553ef21d324a5cceb5f686d1f3c040759c50aab69688634688c5c327f26f3ecf7001ebfd78c01f3c7c0a11a7c8bfd0a8bc9f6240d4f40b224e4e
+ languageName: node
+ linkType: hard
+
+"shebang-regex@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "shebang-regex@npm:3.0.0"
+ checksum: 10c0/1dbed0726dd0e1152a92696c76c7f06084eb32a90f0528d11acd764043aacf76994b2fb30aa1291a21bd019d6699164d048286309a278855ee7bec06cf6fb690
+ languageName: node
+ linkType: hard
+
+"shelljs@npm:^0.8.5":
+ version: 0.8.5
+ resolution: "shelljs@npm:0.8.5"
+ dependencies:
+ glob: "npm:^7.0.0"
+ interpret: "npm:^1.0.0"
+ rechoir: "npm:^0.6.2"
+ bin:
+ shjs: bin/shjs
+ checksum: 10c0/feb25289a12e4bcd04c40ddfab51aff98a3729f5c2602d5b1a1b95f6819ec7804ac8147ebd8d9a85dfab69d501bcf92d7acef03247320f51c1552cec8d8e2382
+ languageName: node
+ linkType: hard
+
+"side-channel@npm:^1.0.4, side-channel@npm:^1.0.6":
+ version: 1.0.6
+ resolution: "side-channel@npm:1.0.6"
+ dependencies:
+ call-bind: "npm:^1.0.7"
+ es-errors: "npm:^1.3.0"
+ get-intrinsic: "npm:^1.2.4"
+ object-inspect: "npm:^1.13.1"
+ checksum: 10c0/d2afd163dc733cc0a39aa6f7e39bf0c436293510dbccbff446733daeaf295857dbccf94297092ec8c53e2503acac30f0b78830876f0485991d62a90e9cad305f
+ languageName: node
+ linkType: hard
+
+"signal-exit@npm:^4.0.1, signal-exit@npm:^4.1.0":
+ version: 4.1.0
+ resolution: "signal-exit@npm:4.1.0"
+ checksum: 10c0/41602dce540e46d599edba9d9860193398d135f7ff72cab629db5171516cfae628d21e7bfccde1bbfdf11c48726bc2a6d1a8fb8701125852fbfda7cf19c6aa83
+ languageName: node
+ linkType: hard
+
+"slash@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "slash@npm:3.0.0"
+ checksum: 10c0/e18488c6a42bdfd4ac5be85b2ced3ccd0224773baae6ad42cfbb9ec74fc07f9fa8396bd35ee638084ead7a2a0818eb5e7151111544d4731ce843019dab4be47b
+ languageName: node
+ linkType: hard
+
+"smart-buffer@npm:^4.2.0":
+ version: 4.2.0
+ resolution: "smart-buffer@npm:4.2.0"
+ checksum: 10c0/a16775323e1404dd43fabafe7460be13a471e021637bc7889468eb45ce6a6b207261f454e4e530a19500cc962c4cc5348583520843b363f4193cee5c00e1e539
+ languageName: node
+ linkType: hard
+
+"socks-proxy-agent@npm:^8.0.3":
+ version: 8.0.3
+ resolution: "socks-proxy-agent@npm:8.0.3"
+ dependencies:
+ agent-base: "npm:^7.1.1"
+ debug: "npm:^4.3.4"
+ socks: "npm:^2.7.1"
+ checksum: 10c0/4950529affd8ccd6951575e21c1b7be8531b24d924aa4df3ee32df506af34b618c4e50d261f4cc603f1bfd8d426915b7d629966c8ce45b05fb5ad8c8b9a6459d
+ languageName: node
+ linkType: hard
+
+"socks@npm:^2.7.1":
+ version: 2.8.3
+ resolution: "socks@npm:2.8.3"
+ dependencies:
+ ip-address: "npm:^9.0.5"
+ smart-buffer: "npm:^4.2.0"
+ checksum: 10c0/d54a52bf9325165770b674a67241143a3d8b4e4c8884560c4e0e078aace2a728dffc7f70150660f51b85797c4e1a3b82f9b7aa25e0a0ceae1a243365da5c51a7
+ languageName: node
+ linkType: hard
+
+"sonic-boom@npm:^2.2.1":
+ version: 2.8.0
+ resolution: "sonic-boom@npm:2.8.0"
+ dependencies:
+ atomic-sleep: "npm:^1.0.0"
+ checksum: 10c0/6b40f2e91a999819b1dc24018a5d1c8b74e66e5d019eabad17d5b43fc309b32255b7c405ed6ec885693c8f2b969099ce96aeefde027180928bc58c034234a86d
+ languageName: node
+ linkType: hard
+
+"source-map-js@npm:^1.0.2":
+ version: 1.2.0
+ resolution: "source-map-js@npm:1.2.0"
+ checksum: 10c0/7e5f896ac10a3a50fe2898e5009c58ff0dc102dcb056ed27a354623a0ece8954d4b2649e1a1b2b52ef2e161d26f8859c7710350930751640e71e374fe2d321a4
+ languageName: node
+ linkType: hard
+
+"space-separated-tokens@npm:^2.0.0":
+ version: 2.0.2
+ resolution: "space-separated-tokens@npm:2.0.2"
+ checksum: 10c0/6173e1d903dca41dcab6a2deed8b4caf61bd13b6d7af8374713500570aa929ff9414ae09a0519f4f8772df993300305a395d4871f35bc4ca72b6db57e1f30af8
+ languageName: node
+ linkType: hard
+
+"split-on-first@npm:^1.0.0":
+ version: 1.1.0
+ resolution: "split-on-first@npm:1.1.0"
+ checksum: 10c0/56df8344f5a5de8521898a5c090023df1d8b8c75be6228f56c52491e0fc1617a5236f2ac3a066adb67a73231eac216ccea7b5b4a2423a543c277cb2f48d24c29
+ languageName: node
+ linkType: hard
+
+"split2@npm:^4.0.0":
+ version: 4.2.0
+ resolution: "split2@npm:4.2.0"
+ checksum: 10c0/b292beb8ce9215f8c642bb68be6249c5a4c7f332fc8ecadae7be5cbdf1ea95addc95f0459ef2e7ad9d45fd1064698a097e4eb211c83e772b49bc0ee423e91534
+ languageName: node
+ linkType: hard
+
+"sprintf-js@npm:^1.1.3":
+ version: 1.1.3
+ resolution: "sprintf-js@npm:1.1.3"
+ checksum: 10c0/09270dc4f30d479e666aee820eacd9e464215cdff53848b443964202bf4051490538e5dd1b42e1a65cf7296916ca17640aebf63dae9812749c7542ee5f288dec
+ languageName: node
+ linkType: hard
+
+"ssri@npm:^10.0.0":
+ version: 10.0.6
+ resolution: "ssri@npm:10.0.6"
+ dependencies:
+ minipass: "npm:^7.0.3"
+ checksum: 10c0/e5a1e23a4057a86a97971465418f22ea89bd439ac36ade88812dd920e4e61873e8abd6a9b72a03a67ef50faa00a2daf1ab745c5a15b46d03e0544a0296354227
+ languageName: node
+ linkType: hard
+
+"starshipjs@npm:^2.4.0":
+ version: 2.4.0
+ resolution: "starshipjs@npm:2.4.0"
+ dependencies:
+ "@chain-registry/client": "npm:1.18.1"
+ bip39: "npm:^3.1.0"
+ js-yaml: "npm:^4.1.0"
+ node-fetch: "npm:^2.6.9"
+ checksum: 10c0/e62cc540bc9e8700d3bdb61ac1261b71417f0e687c98a0e3733317d363e425c7188a205d9af70f5218e87f99195fbfb5b759b4f3f9d87823989ef6b4d90442d6
+ languageName: node
+ linkType: hard
+
+"std-env@npm:^3.7.0":
+ version: 3.7.0
+ resolution: "std-env@npm:3.7.0"
+ checksum: 10c0/60edf2d130a4feb7002974af3d5a5f3343558d1ccf8d9b9934d225c638606884db4a20d2fe6440a09605bca282af6b042ae8070a10490c0800d69e82e478f41e
+ languageName: node
+ linkType: hard
+
+"stream-shift@npm:^1.0.2":
+ version: 1.0.3
+ resolution: "stream-shift@npm:1.0.3"
+ checksum: 10c0/939cd1051ca750d240a0625b106a2b988c45fb5a3be0cebe9a9858cb01bc1955e8c7b9fac17a9462976bea4a7b704e317c5c2200c70f0ca715a3363b9aa4fd3b
+ languageName: node
+ linkType: hard
+
+"streamsearch@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "streamsearch@npm:1.1.0"
+ checksum: 10c0/fbd9aecc2621364384d157f7e59426f4bfd385e8b424b5aaa79c83a6f5a1c8fd2e4e3289e95de1eb3511cb96bb333d6281a9919fafce760e4edb35b2cd2facab
+ languageName: node
+ linkType: hard
+
+"strict-uri-encode@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "strict-uri-encode@npm:2.0.0"
+ checksum: 10c0/010cbc78da0e2cf833b0f5dc769e21ae74cdc5d5f5bd555f14a4a4876c8ad2c85ab8b5bdf9a722dc71a11dcd3184085e1c3c0bd50ec6bb85fffc0f28cf82597d
+ languageName: node
+ linkType: hard
+
+"string-width-cjs@npm:string-width@^4.2.0, string-width@npm:^4.1.0":
+ version: 4.2.3
+ resolution: "string-width@npm:4.2.3"
+ dependencies:
+ emoji-regex: "npm:^8.0.0"
+ is-fullwidth-code-point: "npm:^3.0.0"
+ strip-ansi: "npm:^6.0.1"
+ checksum: 10c0/1e525e92e5eae0afd7454086eed9c818ee84374bb80328fc41217ae72ff5f065ef1c9d7f72da41de40c75fa8bb3dee63d92373fd492c84260a552c636392a47b
+ languageName: node
+ linkType: hard
+
+"string-width@npm:^5.0.1, string-width@npm:^5.1.2":
+ version: 5.1.2
+ resolution: "string-width@npm:5.1.2"
+ dependencies:
+ eastasianwidth: "npm:^0.2.0"
+ emoji-regex: "npm:^9.2.2"
+ strip-ansi: "npm:^7.0.1"
+ checksum: 10c0/ab9c4264443d35b8b923cbdd513a089a60de339216d3b0ed3be3ba57d6880e1a192b70ae17225f764d7adbf5994e9bb8df253a944736c15a0240eff553c678ca
+ languageName: node
+ linkType: hard
+
+"string.prototype.matchall@npm:^4.0.11":
+ version: 4.0.11
+ resolution: "string.prototype.matchall@npm:4.0.11"
+ dependencies:
+ call-bind: "npm:^1.0.7"
+ define-properties: "npm:^1.2.1"
+ es-abstract: "npm:^1.23.2"
+ es-errors: "npm:^1.3.0"
+ es-object-atoms: "npm:^1.0.0"
+ get-intrinsic: "npm:^1.2.4"
+ gopd: "npm:^1.0.1"
+ has-symbols: "npm:^1.0.3"
+ internal-slot: "npm:^1.0.7"
+ regexp.prototype.flags: "npm:^1.5.2"
+ set-function-name: "npm:^2.0.2"
+ side-channel: "npm:^1.0.6"
+ checksum: 10c0/915a2562ac9ab5e01b7be6fd8baa0b2b233a0a9aa975fcb2ec13cc26f08fb9a3e85d5abdaa533c99c6fc4c5b65b914eba3d80c4aff9792a4c9fed403f28f7d9d
+ languageName: node
+ linkType: hard
+
+"string.prototype.trim@npm:^1.2.9":
+ version: 1.2.9
+ resolution: "string.prototype.trim@npm:1.2.9"
+ dependencies:
+ call-bind: "npm:^1.0.7"
+ define-properties: "npm:^1.2.1"
+ es-abstract: "npm:^1.23.0"
+ es-object-atoms: "npm:^1.0.0"
+ checksum: 10c0/dcef1a0fb61d255778155006b372dff8cc6c4394bc39869117e4241f41a2c52899c0d263ffc7738a1f9e61488c490b05c0427faa15151efad721e1a9fb2663c2
+ languageName: node
+ linkType: hard
+
+"string.prototype.trimend@npm:^1.0.8":
+ version: 1.0.8
+ resolution: "string.prototype.trimend@npm:1.0.8"
+ dependencies:
+ call-bind: "npm:^1.0.7"
+ define-properties: "npm:^1.2.1"
+ es-object-atoms: "npm:^1.0.0"
+ checksum: 10c0/0a0b54c17c070551b38e756ae271865ac6cc5f60dabf2e7e343cceae7d9b02e1a1120a824e090e79da1b041a74464e8477e2da43e2775c85392be30a6f60963c
+ languageName: node
+ linkType: hard
+
+"string.prototype.trimstart@npm:^1.0.8":
+ version: 1.0.8
+ resolution: "string.prototype.trimstart@npm:1.0.8"
+ dependencies:
+ call-bind: "npm:^1.0.7"
+ define-properties: "npm:^1.2.1"
+ es-object-atoms: "npm:^1.0.0"
+ checksum: 10c0/d53af1899959e53c83b64a5fd120be93e067da740e7e75acb433849aa640782fb6c7d4cd5b84c954c84413745a3764df135a8afeb22908b86a835290788d8366
+ languageName: node
+ linkType: hard
+
+"string_decoder@npm:^1.1.1":
+ version: 1.3.0
+ resolution: "string_decoder@npm:1.3.0"
+ dependencies:
+ safe-buffer: "npm:~5.2.0"
+ checksum: 10c0/810614ddb030e271cd591935dcd5956b2410dd079d64ff92a1844d6b7588bf992b3e1b69b0f4d34a3e06e0bd73046ac646b5264c1987b20d0601f81ef35d731d
+ languageName: node
+ linkType: hard
+
+"string_decoder@npm:~1.1.1":
+ version: 1.1.1
+ resolution: "string_decoder@npm:1.1.1"
+ dependencies:
+ safe-buffer: "npm:~5.1.0"
+ checksum: 10c0/b4f89f3a92fd101b5653ca3c99550e07bdf9e13b35037e9e2a1c7b47cec4e55e06ff3fc468e314a0b5e80bfbaf65c1ca5a84978764884ae9413bec1fc6ca924e
+ languageName: node
+ linkType: hard
+
+"stringify-entities@npm:^4.0.0":
+ version: 4.0.4
+ resolution: "stringify-entities@npm:4.0.4"
+ dependencies:
+ character-entities-html4: "npm:^2.0.0"
+ character-entities-legacy: "npm:^3.0.0"
+ checksum: 10c0/537c7e656354192406bdd08157d759cd615724e9d0873602d2c9b2f6a5c0a8d0b1d73a0a08677848105c5eebac6db037b57c0b3a4ec86331117fa7319ed50448
+ languageName: node
+ linkType: hard
+
+"strip-ansi-cjs@npm:strip-ansi@^6.0.1, strip-ansi@npm:^6.0.0, strip-ansi@npm:^6.0.1":
+ version: 6.0.1
+ resolution: "strip-ansi@npm:6.0.1"
+ dependencies:
+ ansi-regex: "npm:^5.0.1"
+ checksum: 10c0/1ae5f212a126fe5b167707f716942490e3933085a5ff6c008ab97ab2f272c8025d3aa218b7bd6ab25729ca20cc81cddb252102f8751e13482a5199e873680952
+ languageName: node
+ linkType: hard
+
+"strip-ansi@npm:^7.0.1":
+ version: 7.1.0
+ resolution: "strip-ansi@npm:7.1.0"
+ dependencies:
+ ansi-regex: "npm:^6.0.1"
+ checksum: 10c0/a198c3762e8832505328cbf9e8c8381de14a4fa50a4f9b2160138158ea88c0f5549fb50cb13c651c3088f47e63a108b34622ec18c0499b6c8c3a5ddf6b305ac4
+ languageName: node
+ linkType: hard
+
+"strip-bom@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "strip-bom@npm:3.0.0"
+ checksum: 10c0/51201f50e021ef16672593d7434ca239441b7b760e905d9f33df6e4f3954ff54ec0e0a06f100d028af0982d6f25c35cd5cda2ce34eaebccd0250b8befb90d8f1
+ languageName: node
+ linkType: hard
+
+"strip-final-newline@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "strip-final-newline@npm:3.0.0"
+ checksum: 10c0/a771a17901427bac6293fd416db7577e2bc1c34a19d38351e9d5478c3c415f523f391003b42ed475f27e33a78233035df183525395f731d3bfb8cdcbd4da08ce
+ languageName: node
+ linkType: hard
+
+"strip-json-comments@npm:^3.1.0, strip-json-comments@npm:^3.1.1":
+ version: 3.1.1
+ resolution: "strip-json-comments@npm:3.1.1"
+ checksum: 10c0/9681a6257b925a7fa0f285851c0e613cc934a50661fa7bb41ca9cbbff89686bb4a0ee366e6ecedc4daafd01e83eee0720111ab294366fe7c185e935475ebcecd
+ languageName: node
+ linkType: hard
+
+"style-to-object@npm:^1.0.0":
+ version: 1.0.6
+ resolution: "style-to-object@npm:1.0.6"
+ dependencies:
+ inline-style-parser: "npm:0.2.3"
+ checksum: 10c0/be5e8e3f0e35c0338de4112b9d861db576a52ebbd97f2501f1fb2c900d05c8fc42c5114407fa3a7f8b39301146cd8ca03a661bf52212394125a9629d5b771aba
+ languageName: node
+ linkType: hard
+
+"styled-jsx@npm:5.1.1":
+ version: 5.1.1
+ resolution: "styled-jsx@npm:5.1.1"
+ dependencies:
+ client-only: "npm:0.0.1"
+ peerDependencies:
+ react: ">= 16.8.0 || 17.x.x || ^18.0.0-0"
+ peerDependenciesMeta:
+ "@babel/core":
+ optional: true
+ babel-plugin-macros:
+ optional: true
+ checksum: 10c0/42655cdadfa5388f8a48bb282d6b450df7d7b8cf066ac37038bd0499d3c9f084815ebd9ff9dfa12a218fd4441338851db79603498d7557207009c1cf4d609835
+ languageName: node
+ linkType: hard
+
+"superjson@npm:^1.10.0":
+ version: 1.13.3
+ resolution: "superjson@npm:1.13.3"
+ dependencies:
+ copy-anything: "npm:^3.0.2"
+ checksum: 10c0/389a0a0c86884dd0558361af5d6d7f37102b71dda9595a665fe8b39d1ba0e57c859e39a9bd79b6f1fde6f4dcceac49a1c205f248d292744b2a340ee52846efdb
+ languageName: node
+ linkType: hard
+
+"supports-color@npm:^7.1.0":
+ version: 7.2.0
+ resolution: "supports-color@npm:7.2.0"
+ dependencies:
+ has-flag: "npm:^4.0.0"
+ checksum: 10c0/afb4c88521b8b136b5f5f95160c98dee7243dc79d5432db7efc27efb219385bbc7d9427398e43dd6cc730a0f87d5085ce1652af7efbe391327bc0a7d0f7fc124
+ languageName: node
+ linkType: hard
+
+"supports-preserve-symlinks-flag@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "supports-preserve-symlinks-flag@npm:1.0.0"
+ checksum: 10c0/6c4032340701a9950865f7ae8ef38578d8d7053f5e10518076e6554a9381fa91bd9c6850193695c141f32b21f979c985db07265a758867bac95de05f7d8aeb39
+ languageName: node
+ linkType: hard
+
+"symbol-observable@npm:^2.0.3":
+ version: 2.0.3
+ resolution: "symbol-observable@npm:2.0.3"
+ checksum: 10c0/03fb8766b75bfa65a3c7d68ae1e51a13a5ff71b40d6d53b17a0c9c77b1685c20a3bfbf45547ab36214a079665c3f551e250798f6b2f83a2a40762d864ed87f78
+ languageName: node
+ linkType: hard
+
+"system-architecture@npm:^0.1.0":
+ version: 0.1.0
+ resolution: "system-architecture@npm:0.1.0"
+ checksum: 10c0/1969974ea5d31a9ac7c38f2657cfe8255b36f9e1d5ba3c58cb84c24fbeedf562778b8511f18a0abe6d70ae90148cfcaf145ecf26e37c0a53a3829076f3238cbb
+ languageName: node
+ linkType: hard
+
+"tabbable@npm:^6.0.0":
+ version: 6.2.0
+ resolution: "tabbable@npm:6.2.0"
+ checksum: 10c0/ced8b38f05f2de62cd46836d77c2646c42b8c9713f5bd265daf0e78ff5ac73d3ba48a7ca45f348bafeef29b23da7187c72250742d37627883ef89cbd7fa76898
+ languageName: node
+ linkType: hard
+
+"tapable@npm:^2.2.0":
+ version: 2.2.1
+ resolution: "tapable@npm:2.2.1"
+ checksum: 10c0/bc40e6efe1e554d075469cedaba69a30eeb373552aaf41caeaaa45bf56ffacc2674261b106245bd566b35d8f3329b52d838e851ee0a852120acae26e622925c9
+ languageName: node
+ linkType: hard
+
+"tar@npm:^6.1.11, tar@npm:^6.1.2":
+ version: 6.2.1
+ resolution: "tar@npm:6.2.1"
+ dependencies:
+ chownr: "npm:^2.0.0"
+ fs-minipass: "npm:^2.0.0"
+ minipass: "npm:^5.0.0"
+ minizlib: "npm:^2.1.1"
+ mkdirp: "npm:^1.0.3"
+ yallist: "npm:^4.0.0"
+ checksum: 10c0/a5eca3eb50bc11552d453488344e6507156b9193efd7635e98e867fab275d527af53d8866e2370cd09dfe74378a18111622ace35af6a608e5223a7d27fe99537
+ languageName: node
+ linkType: hard
+
+"text-table@npm:^0.2.0":
+ version: 0.2.0
+ resolution: "text-table@npm:0.2.0"
+ checksum: 10c0/02805740c12851ea5982686810702e2f14369a5f4c5c40a836821e3eefc65ffeec3131ba324692a37608294b0fd8c1e55a2dd571ffed4909822787668ddbee5c
+ languageName: node
+ linkType: hard
+
+"thread-stream@npm:^0.15.1":
+ version: 0.15.2
+ resolution: "thread-stream@npm:0.15.2"
+ dependencies:
+ real-require: "npm:^0.1.0"
+ checksum: 10c0/f92f1b5a9f3f35a72c374e3fecbde6f14d69d5325ad9ce88930af6ed9c7c1ec814367716b712205fa4f06242ae5dd97321ae2c00b43586590ed4fa861f3c29ae
+ languageName: node
+ linkType: hard
+
+"tiny-secp256k1@npm:^1.1.3":
+ version: 1.1.6
+ resolution: "tiny-secp256k1@npm:1.1.6"
+ dependencies:
+ bindings: "npm:^1.3.0"
+ bn.js: "npm:^4.11.8"
+ create-hmac: "npm:^1.1.7"
+ elliptic: "npm:^6.4.0"
+ nan: "npm:^2.13.2"
+ node-gyp: "npm:latest"
+ checksum: 10c0/b47ceada38f6fa65190906e8a98b58d1584b0640383f04db8196a7098c726e926cfba6271a53e97d98d4c67e2b364618d7b3d7e402f63e44f0e07a4aca82ac8b
+ languageName: node
+ linkType: hard
+
+"tmp@npm:^0.2.1":
+ version: 0.2.3
+ resolution: "tmp@npm:0.2.3"
+ checksum: 10c0/3e809d9c2f46817475b452725c2aaa5d11985cf18d32a7a970ff25b568438e2c076c2e8609224feef3b7923fa9749b74428e3e634f6b8e520c534eef2fd24125
+ languageName: node
+ linkType: hard
+
+"to-regex-range@npm:^5.0.1":
+ version: 5.0.1
+ resolution: "to-regex-range@npm:5.0.1"
+ dependencies:
+ is-number: "npm:^7.0.0"
+ checksum: 10c0/487988b0a19c654ff3e1961b87f471702e708fa8a8dd02a298ef16da7206692e8552a0250e8b3e8759270f62e9d8314616f6da274734d3b558b1fc7b7724e892
+ languageName: node
+ linkType: hard
+
+"toggle-selection@npm:^1.0.6":
+ version: 1.0.6
+ resolution: "toggle-selection@npm:1.0.6"
+ checksum: 10c0/f2cf1f2c70f374fd87b0cdc8007453ba9e981c4305a8bf4eac10a30e62ecdfd28bca7d18f8f15b15a506bf8a7bfb20dbe3539f0fcf2a2c8396c1a78d53e1f179
+ languageName: node
+ linkType: hard
+
+"tr46@npm:~0.0.3":
+ version: 0.0.3
+ resolution: "tr46@npm:0.0.3"
+ checksum: 10c0/047cb209a6b60c742f05c9d3ace8fa510bff609995c129a37ace03476a9b12db4dbf975e74600830ef0796e18882b2381fb5fb1f6b4f96b832c374de3ab91a11
+ languageName: node
+ linkType: hard
+
+"trim-lines@npm:^3.0.0":
+ version: 3.0.1
+ resolution: "trim-lines@npm:3.0.1"
+ checksum: 10c0/3a1611fa9e52aa56a94c69951a9ea15b8aaad760eaa26c56a65330dc8adf99cb282fc07cc9d94968b7d4d88003beba220a7278bbe2063328eb23fb56f9509e94
+ languageName: node
+ linkType: hard
+
+"trough@npm:^2.0.0":
+ version: 2.2.0
+ resolution: "trough@npm:2.2.0"
+ checksum: 10c0/58b671fc970e7867a48514168894396dd94e6d9d6456aca427cc299c004fe67f35ed7172a36449086b2edde10e78a71a284ec0076809add6834fb8f857ccb9b0
+ languageName: node
+ linkType: hard
+
+"tsconfig-paths@npm:^3.15.0":
+ version: 3.15.0
+ resolution: "tsconfig-paths@npm:3.15.0"
+ dependencies:
+ "@types/json5": "npm:^0.0.29"
+ json5: "npm:^1.0.2"
+ minimist: "npm:^1.2.6"
+ strip-bom: "npm:^3.0.0"
+ checksum: 10c0/5b4f301a2b7a3766a986baf8fc0e177eb80bdba6e396792ff92dc23b5bca8bb279fc96517dcaaef63a3b49bebc6c4c833653ec58155780bc906bdbcf7dda0ef5
+ languageName: node
+ linkType: hard
+
+"tslib@npm:1.14.1, tslib@npm:^1.8.1":
+ version: 1.14.1
+ resolution: "tslib@npm:1.14.1"
+ checksum: 10c0/69ae09c49eea644bc5ebe1bca4fa4cc2c82b7b3e02f43b84bd891504edf66dbc6b2ec0eef31a957042de2269139e4acff911e6d186a258fb14069cd7f6febce2
+ languageName: node
+ linkType: hard
+
+"tslib@npm:^2.1.0, tslib@npm:^2.4.0":
+ version: 2.6.2
+ resolution: "tslib@npm:2.6.2"
+ checksum: 10c0/e03a8a4271152c8b26604ed45535954c0a45296e32445b4b87f8a5abdb2421f40b59b4ca437c4346af0f28179780d604094eb64546bee2019d903d01c6c19bdb
+ languageName: node
+ linkType: hard
+
+"tsutils@npm:^3.21.0":
+ version: 3.21.0
+ resolution: "tsutils@npm:3.21.0"
+ dependencies:
+ tslib: "npm:^1.8.1"
+ peerDependencies:
+ typescript: ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta"
+ checksum: 10c0/02f19e458ec78ead8fffbf711f834ad8ecd2cc6ade4ec0320790713dccc0a412b99e7fd907c4cda2a1dc602c75db6f12e0108e87a5afad4b2f9e90a24cabd5a2
+ languageName: node
+ linkType: hard
+
+"type-check@npm:^0.4.0, type-check@npm:~0.4.0":
+ version: 0.4.0
+ resolution: "type-check@npm:0.4.0"
+ dependencies:
+ prelude-ls: "npm:^1.2.1"
+ checksum: 10c0/7b3fd0ed43891e2080bf0c5c504b418fbb3e5c7b9708d3d015037ba2e6323a28152ec163bcb65212741fa5d2022e3075ac3c76440dbd344c9035f818e8ecee58
+ languageName: node
+ linkType: hard
+
+"type-fest@npm:^0.20.2":
+ version: 0.20.2
+ resolution: "type-fest@npm:0.20.2"
+ checksum: 10c0/dea9df45ea1f0aaa4e2d3bed3f9a0bfe9e5b2592bddb92eb1bf06e50bcf98dbb78189668cd8bc31a0511d3fc25539b4cd5c704497e53e93e2d40ca764b10bfc3
+ languageName: node
+ linkType: hard
+
+"typed-array-buffer@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "typed-array-buffer@npm:1.0.2"
+ dependencies:
+ call-bind: "npm:^1.0.7"
+ es-errors: "npm:^1.3.0"
+ is-typed-array: "npm:^1.1.13"
+ checksum: 10c0/9e043eb38e1b4df4ddf9dde1aa64919ae8bb909571c1cc4490ba777d55d23a0c74c7d73afcdd29ec98616d91bb3ae0f705fad4421ea147e1daf9528200b562da
+ languageName: node
+ linkType: hard
+
+"typed-array-byte-length@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "typed-array-byte-length@npm:1.0.1"
+ dependencies:
+ call-bind: "npm:^1.0.7"
+ for-each: "npm:^0.3.3"
+ gopd: "npm:^1.0.1"
+ has-proto: "npm:^1.0.3"
+ is-typed-array: "npm:^1.1.13"
+ checksum: 10c0/fcebeffb2436c9f355e91bd19e2368273b88c11d1acc0948a2a306792f1ab672bce4cfe524ab9f51a0505c9d7cd1c98eff4235c4f6bfef6a198f6cfc4ff3d4f3
+ languageName: node
+ linkType: hard
+
+"typed-array-byte-offset@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "typed-array-byte-offset@npm:1.0.2"
+ dependencies:
+ available-typed-arrays: "npm:^1.0.7"
+ call-bind: "npm:^1.0.7"
+ for-each: "npm:^0.3.3"
+ gopd: "npm:^1.0.1"
+ has-proto: "npm:^1.0.3"
+ is-typed-array: "npm:^1.1.13"
+ checksum: 10c0/d2628bc739732072e39269389a758025f75339de2ed40c4f91357023c5512d237f255b633e3106c461ced41907c1bf9a533c7e8578066b0163690ca8bc61b22f
+ languageName: node
+ linkType: hard
+
+"typed-array-length@npm:^1.0.6":
+ version: 1.0.6
+ resolution: "typed-array-length@npm:1.0.6"
+ dependencies:
+ call-bind: "npm:^1.0.7"
+ for-each: "npm:^0.3.3"
+ gopd: "npm:^1.0.1"
+ has-proto: "npm:^1.0.3"
+ is-typed-array: "npm:^1.1.13"
+ possible-typed-array-names: "npm:^1.0.0"
+ checksum: 10c0/74253d7dc488eb28b6b2711cf31f5a9dcefc9c41b0681fd1c178ed0a1681b4468581a3626d39cd4df7aee3d3927ab62be06aa9ca74e5baf81827f61641445b77
+ languageName: node
+ linkType: hard
+
+"typeforce@npm:^1.11.5":
+ version: 1.18.0
+ resolution: "typeforce@npm:1.18.0"
+ checksum: 10c0/011f57effd9ae6d3dd8bb249e09b4ecadb2c2a3f803b27f977ac8b7782834855930bff971ba549bcd5a8cedc8136d8a977c0b7e050cc67deded948181b7ba3e8
+ languageName: node
+ linkType: hard
+
+"typescript@npm:4.9.3":
+ version: 4.9.3
+ resolution: "typescript@npm:4.9.3"
+ bin:
+ tsc: bin/tsc
+ tsserver: bin/tsserver
+ checksum: 10c0/bddcb0794f2b8aa52094b9de9d70848fdf46ccecac68403e1c407dc9f1a4e4e28979887acd648e1917b1144e5d8fbfb4c824309d8806d393b4194aa39c71fe5e
+ languageName: node
+ linkType: hard
+
+"typescript@patch:typescript@npm%3A4.9.3#optional!builtin":
+ version: 4.9.3
+ resolution: "typescript@patch:typescript@npm%3A4.9.3#optional!builtin::version=4.9.3&hash=a66ed4"
+ bin:
+ tsc: bin/tsc
+ tsserver: bin/tsserver
+ checksum: 10c0/e5a7c3c6b75cf3eb2b6619fdc84f7ee434659413ace558da8b2c7270b21266be689ece5cf8e6bba529cdd3ea36d3c8ddac9c6d63e5f5c5224c1eac8785c92620
+ languageName: node
+ linkType: hard
+
+"ufo@npm:^1.3.2, ufo@npm:^1.4.0, ufo@npm:^1.5.3":
+ version: 1.5.3
+ resolution: "ufo@npm:1.5.3"
+ checksum: 10c0/1df10702582aa74f4deac4486ecdfd660e74be057355f1afb6adfa14243476cf3d3acff734ccc3d0b74e9bfdefe91d578f3edbbb0a5b2430fe93cd672370e024
+ languageName: node
+ linkType: hard
+
+"uint8arrays@npm:^3.0.0, uint8arrays@npm:^3.1.0":
+ version: 3.1.1
+ resolution: "uint8arrays@npm:3.1.1"
+ dependencies:
+ multiformats: "npm:^9.4.2"
+ checksum: 10c0/9946668e04f29b46bbb73cca3d190f63a2fbfe5452f8e6551ef4257d9d597b72da48fa895c15ef2ef772808a5335b3305f69da5f13a09f8c2924896b409565ff
+ languageName: node
+ linkType: hard
+
+"unbox-primitive@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "unbox-primitive@npm:1.0.2"
+ dependencies:
+ call-bind: "npm:^1.0.2"
+ has-bigints: "npm:^1.0.2"
+ has-symbols: "npm:^1.0.3"
+ which-boxed-primitive: "npm:^1.0.2"
+ checksum: 10c0/81ca2e81134167cc8f75fa79fbcc8a94379d6c61de67090986a2273850989dd3bae8440c163121b77434b68263e34787a675cbdcb34bb2f764c6b9c843a11b66
+ languageName: node
+ linkType: hard
+
+"uncrypto@npm:^0.1.3":
+ version: 0.1.3
+ resolution: "uncrypto@npm:0.1.3"
+ checksum: 10c0/74a29afefd76d5b77bedc983559ceb33f5bbc8dada84ff33755d1e3355da55a4e03a10e7ce717918c436b4dfafde1782e799ebaf2aadd775612b49f7b5b2998e
+ languageName: node
+ linkType: hard
+
+"undici-types@npm:~5.26.4":
+ version: 5.26.5
+ resolution: "undici-types@npm:5.26.5"
+ checksum: 10c0/bb673d7876c2d411b6eb6c560e0c571eef4a01c1c19925175d16e3a30c4c428181fb8d7ae802a261f283e4166a0ac435e2f505743aa9e45d893f9a3df017b501
+ languageName: node
+ linkType: hard
+
+"undici-types@npm:~6.11.1":
+ version: 6.11.1
+ resolution: "undici-types@npm:6.11.1"
+ checksum: 10c0/d8f5739a8e6c779d72336c82deb49c56d5ac9f9f6e0eb2e8dd4d3f6929ae9db7cde370d2e46516fe6cad04ea53e790c5e16c4c75eed7cd0f9bd31b0763bb2fa3
+ languageName: node
+ linkType: hard
+
+"unenv@npm:^1.9.0":
+ version: 1.9.0
+ resolution: "unenv@npm:1.9.0"
+ dependencies:
+ consola: "npm:^3.2.3"
+ defu: "npm:^6.1.3"
+ mime: "npm:^3.0.0"
+ node-fetch-native: "npm:^1.6.1"
+ pathe: "npm:^1.1.1"
+ checksum: 10c0/d00012badc83731c07f08d5129c702c49c0212375eb3732b27aae89ace3c67162dbaea4496965676f18fc06b0ec445d91385e283f5fd3e4540dda8b0b5424f81
+ languageName: node
+ linkType: hard
+
+"unfetch@npm:^4.2.0":
+ version: 4.2.0
+ resolution: "unfetch@npm:4.2.0"
+ checksum: 10c0/a5c0a896a6f09f278b868075aea65652ad185db30e827cb7df45826fe5ab850124bf9c44c4dafca4bf0c55a0844b17031e8243467fcc38dd7a7d435007151f1b
+ languageName: node
+ linkType: hard
+
+"unified@npm:^11.0.0":
+ version: 11.0.4
+ resolution: "unified@npm:11.0.4"
+ dependencies:
+ "@types/unist": "npm:^3.0.0"
+ bail: "npm:^2.0.0"
+ devlop: "npm:^1.0.0"
+ extend: "npm:^3.0.0"
+ is-plain-obj: "npm:^4.0.0"
+ trough: "npm:^2.0.0"
+ vfile: "npm:^6.0.0"
+ checksum: 10c0/b550cdc994d54c84e2e098eb02cfa53535cbc140c148aa3296f235cb43082b499d239110f342fa65eb37ad919472a93cc62f062a83541485a69498084cc87ba1
+ languageName: node
+ linkType: hard
+
+"unique-filename@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "unique-filename@npm:3.0.0"
+ dependencies:
+ unique-slug: "npm:^4.0.0"
+ checksum: 10c0/6363e40b2fa758eb5ec5e21b3c7fb83e5da8dcfbd866cc0c199d5534c42f03b9ea9ab069769cc388e1d7ab93b4eeef28ef506ab5f18d910ef29617715101884f
+ languageName: node
+ linkType: hard
+
+"unique-slug@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "unique-slug@npm:4.0.0"
+ dependencies:
+ imurmurhash: "npm:^0.1.4"
+ checksum: 10c0/cb811d9d54eb5821b81b18205750be84cb015c20a4a44280794e915f5a0a70223ce39066781a354e872df3572e8155c228f43ff0cce94c7cbf4da2cc7cbdd635
+ languageName: node
+ linkType: hard
+
+"unist-util-is@npm:^6.0.0":
+ version: 6.0.0
+ resolution: "unist-util-is@npm:6.0.0"
+ dependencies:
+ "@types/unist": "npm:^3.0.0"
+ checksum: 10c0/9419352181eaa1da35eca9490634a6df70d2217815bb5938a04af3a662c12c5607a2f1014197ec9c426fbef18834f6371bfdb6f033040fa8aa3e965300d70e7e
+ languageName: node
+ linkType: hard
+
+"unist-util-position@npm:^5.0.0":
+ version: 5.0.0
+ resolution: "unist-util-position@npm:5.0.0"
+ dependencies:
+ "@types/unist": "npm:^3.0.0"
+ checksum: 10c0/dde3b31e314c98f12b4dc6402f9722b2bf35e96a4f2d463233dd90d7cde2d4928074a7a11eff0a5eb1f4e200f27fc1557e0a64a7e8e4da6558542f251b1b7400
+ languageName: node
+ linkType: hard
+
+"unist-util-remove-position@npm:^5.0.0":
+ version: 5.0.0
+ resolution: "unist-util-remove-position@npm:5.0.0"
+ dependencies:
+ "@types/unist": "npm:^3.0.0"
+ unist-util-visit: "npm:^5.0.0"
+ checksum: 10c0/e8c76da4399446b3da2d1c84a97c607b37d03d1d92561e14838cbe4fdcb485bfc06c06cfadbb808ccb72105a80643976d0660d1fe222ca372203075be9d71105
+ languageName: node
+ linkType: hard
+
+"unist-util-stringify-position@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "unist-util-stringify-position@npm:4.0.0"
+ dependencies:
+ "@types/unist": "npm:^3.0.0"
+ checksum: 10c0/dfe1dbe79ba31f589108cb35e523f14029b6675d741a79dea7e5f3d098785045d556d5650ec6a8338af11e9e78d2a30df12b1ee86529cded1098da3f17ee999e
+ languageName: node
+ linkType: hard
+
+"unist-util-visit-parents@npm:^6.0.0":
+ version: 6.0.1
+ resolution: "unist-util-visit-parents@npm:6.0.1"
+ dependencies:
+ "@types/unist": "npm:^3.0.0"
+ unist-util-is: "npm:^6.0.0"
+ checksum: 10c0/51b1a5b0aa23c97d3e03e7288f0cdf136974df2217d0999d3de573c05001ef04cccd246f51d2ebdfb9e8b0ed2704451ad90ba85ae3f3177cf9772cef67f56206
+ languageName: node
+ linkType: hard
+
+"unist-util-visit@npm:^5.0.0":
+ version: 5.0.0
+ resolution: "unist-util-visit@npm:5.0.0"
+ dependencies:
+ "@types/unist": "npm:^3.0.0"
+ unist-util-is: "npm:^6.0.0"
+ unist-util-visit-parents: "npm:^6.0.0"
+ checksum: 10c0/51434a1d80252c1540cce6271a90fd1a106dbe624997c09ed8879279667fb0b2d3a685e02e92bf66598dcbe6cdffa7a5f5fb363af8fdf90dda6c855449ae39a5
+ languageName: node
+ linkType: hard
+
+"unstorage@npm:^1.9.0":
+ version: 1.10.2
+ resolution: "unstorage@npm:1.10.2"
+ dependencies:
+ anymatch: "npm:^3.1.3"
+ chokidar: "npm:^3.6.0"
+ destr: "npm:^2.0.3"
+ h3: "npm:^1.11.1"
+ listhen: "npm:^1.7.2"
+ lru-cache: "npm:^10.2.0"
+ mri: "npm:^1.2.0"
+ node-fetch-native: "npm:^1.6.2"
+ ofetch: "npm:^1.3.3"
+ ufo: "npm:^1.4.0"
+ peerDependencies:
+ "@azure/app-configuration": ^1.5.0
+ "@azure/cosmos": ^4.0.0
+ "@azure/data-tables": ^13.2.2
+ "@azure/identity": ^4.0.1
+ "@azure/keyvault-secrets": ^4.8.0
+ "@azure/storage-blob": ^12.17.0
+ "@capacitor/preferences": ^5.0.7
+ "@netlify/blobs": ^6.5.0 || ^7.0.0
+ "@planetscale/database": ^1.16.0
+ "@upstash/redis": ^1.28.4
+ "@vercel/kv": ^1.0.1
+ idb-keyval: ^6.2.1
+ ioredis: ^5.3.2
+ peerDependenciesMeta:
+ "@azure/app-configuration":
+ optional: true
+ "@azure/cosmos":
+ optional: true
+ "@azure/data-tables":
+ optional: true
+ "@azure/identity":
+ optional: true
+ "@azure/keyvault-secrets":
+ optional: true
+ "@azure/storage-blob":
+ optional: true
+ "@capacitor/preferences":
+ optional: true
+ "@netlify/blobs":
+ optional: true
+ "@planetscale/database":
+ optional: true
+ "@upstash/redis":
+ optional: true
+ "@vercel/kv":
+ optional: true
+ idb-keyval:
+ optional: true
+ ioredis:
+ optional: true
+ checksum: 10c0/89d61e6b2165ddc78005b8a4a340576877b56b70ec0b318f7cf2e74ee7ab19006036267ba28587100fa7256c573db3bd720700daf6586bbdcad4ed60b64c4284
+ languageName: node
+ linkType: hard
+
+"untun@npm:^0.1.3":
+ version: 0.1.3
+ resolution: "untun@npm:0.1.3"
+ dependencies:
+ citty: "npm:^0.1.5"
+ consola: "npm:^3.2.3"
+ pathe: "npm:^1.1.1"
+ bin:
+ untun: bin/untun.mjs
+ checksum: 10c0/2b44a4cc84a5c21994f43b9f55348e5a8d9dd5fd0ad8fb5cd091b6f6b53d506b1cdb90e89cc238d61b46d488f7a89ab0d1a5c735bfc835581c7b22a236381295
+ languageName: node
+ linkType: hard
+
+"uqr@npm:^0.1.2":
+ version: 0.1.2
+ resolution: "uqr@npm:0.1.2"
+ checksum: 10c0/40cd81b4c13f1764d52ec28da2d58e60816e6fae54d4eb75b32fbf3137937f438eff16c766139fb0faec5d248a5314591f5a0dbd694e569d419eed6f3bd80242
+ languageName: node
+ linkType: hard
+
+"uri-js@npm:^4.2.2":
+ version: 4.4.1
+ resolution: "uri-js@npm:4.4.1"
+ dependencies:
+ punycode: "npm:^2.1.0"
+ checksum: 10c0/4ef57b45aa820d7ac6496e9208559986c665e49447cb072744c13b66925a362d96dd5a46c4530a6b8e203e5db5fe849369444440cb22ecfc26c679359e5dfa3c
+ languageName: node
+ linkType: hard
+
+"use-sync-external-store@npm:1.2.0":
+ version: 1.2.0
+ resolution: "use-sync-external-store@npm:1.2.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
+ checksum: 10c0/ac4814e5592524f242921157e791b022efe36e451fe0d4fd4d204322d5433a4fc300d63b0ade5185f8e0735ded044c70bcf6d2352db0f74d097a238cebd2da02
+ languageName: node
+ linkType: hard
+
+"use-sync-external-store@npm:1.2.2, use-sync-external-store@npm:^1.2.0":
+ version: 1.2.2
+ resolution: "use-sync-external-store@npm:1.2.2"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
+ checksum: 10c0/23b1597c10adf15b26ade9e8c318d8cc0abc9ec0ab5fc7ca7338da92e89c2536abd150a5891bf076836c352fdfa104fc7231fb48f806fd9960e0cbe03601abaf
+ languageName: node
+ linkType: hard
+
+"utf-8-validate@npm:^5.0.5":
+ version: 5.0.10
+ resolution: "utf-8-validate@npm:5.0.10"
+ dependencies:
+ node-gyp: "npm:latest"
+ node-gyp-build: "npm:^4.3.0"
+ checksum: 10c0/23cd6adc29e6901aa37ff97ce4b81be9238d0023c5e217515b34792f3c3edb01470c3bd6b264096dd73d0b01a1690b57468de3a24167dd83004ff71c51cc025f
+ languageName: node
+ linkType: hard
+
+"util-deprecate@npm:^1.0.1, util-deprecate@npm:~1.0.1":
+ version: 1.0.2
+ resolution: "util-deprecate@npm:1.0.2"
+ checksum: 10c0/41a5bdd214df2f6c3ecf8622745e4a366c4adced864bc3c833739791aeeeb1838119af7daed4ba36428114b5c67dcda034a79c882e97e43c03e66a4dd7389942
+ languageName: node
+ linkType: hard
+
+"util@npm:^0.12.5":
+ version: 0.12.5
+ resolution: "util@npm:0.12.5"
+ dependencies:
+ inherits: "npm:^2.0.3"
+ is-arguments: "npm:^1.0.4"
+ is-generator-function: "npm:^1.0.7"
+ is-typed-array: "npm:^1.1.3"
+ which-typed-array: "npm:^1.1.2"
+ checksum: 10c0/c27054de2cea2229a66c09522d0fa1415fb12d861d08523a8846bf2e4cbf0079d4c3f725f09dcb87493549bcbf05f5798dce1688b53c6c17201a45759e7253f3
+ languageName: node
+ linkType: hard
+
+"utility-types@npm:^3.10.0":
+ version: 3.11.0
+ resolution: "utility-types@npm:3.11.0"
+ checksum: 10c0/2f1580137b0c3e6cf5405f37aaa8f5249961a76d26f1ca8efc0ff49a2fc0e0b2db56de8e521a174d075758e0c7eb3e590edec0832eb44478b958f09914920f19
+ languageName: node
+ linkType: hard
+
+"uuid@npm:^9.0.1":
+ version: 9.0.1
+ resolution: "uuid@npm:9.0.1"
+ bin:
+ uuid: dist/bin/uuid
+ checksum: 10c0/1607dd32ac7fc22f2d8f77051e6a64845c9bce5cd3dd8aa0070c074ec73e666a1f63c7b4e0f4bf2bc8b9d59dc85a15e17807446d9d2b17c8485fbc2147b27f9b
+ languageName: node
+ linkType: hard
+
+"vfile-message@npm:^4.0.0":
+ version: 4.0.2
+ resolution: "vfile-message@npm:4.0.2"
+ dependencies:
+ "@types/unist": "npm:^3.0.0"
+ unist-util-stringify-position: "npm:^4.0.0"
+ checksum: 10c0/07671d239a075f888b78f318bc1d54de02799db4e9dce322474e67c35d75ac4a5ac0aaf37b18801d91c9f8152974ea39678aa72d7198758b07f3ba04fb7d7514
+ languageName: node
+ linkType: hard
+
+"vfile@npm:^6.0.0":
+ version: 6.0.1
+ resolution: "vfile@npm:6.0.1"
+ dependencies:
+ "@types/unist": "npm:^3.0.0"
+ unist-util-stringify-position: "npm:^4.0.0"
+ vfile-message: "npm:^4.0.0"
+ checksum: 10c0/443bda43e5ad3b73c5976e987dba2b2d761439867ba7d5d7c5f4b01d3c1cb1b976f5f0e6b2399a00dc9b4eaec611bd9984ce9ce8a75a72e60aed518b10a902d2
+ languageName: node
+ linkType: hard
+
+"watchpack@npm:2.4.0":
+ version: 2.4.0
+ resolution: "watchpack@npm:2.4.0"
+ dependencies:
+ glob-to-regexp: "npm:^0.4.1"
+ graceful-fs: "npm:^4.1.2"
+ checksum: 10c0/c5e35f9fb9338d31d2141d9835643c0f49b5f9c521440bb648181059e5940d93dd8ed856aa8a33fbcdd4e121dad63c7e8c15c063cf485429cd9d427be197fe62
+ languageName: node
+ linkType: hard
+
+"webextension-polyfill@npm:>=0.10.0 <1.0, webextension-polyfill@npm:^0.10.0":
+ version: 0.10.0
+ resolution: "webextension-polyfill@npm:0.10.0"
+ checksum: 10c0/6a45278f1fed8fbd5355f9b19a7b0b3fadc91fa3a6eef69125a1706bb3efa2181235eefbfb3f538443bb396cfcb97512361551888ce8465c08914431cb2d5b6d
+ languageName: node
+ linkType: hard
+
+"webidl-conversions@npm:^3.0.0":
+ version: 3.0.1
+ resolution: "webidl-conversions@npm:3.0.1"
+ checksum: 10c0/5612d5f3e54760a797052eb4927f0ddc01383550f542ccd33d5238cfd65aeed392a45ad38364970d0a0f4fea32e1f4d231b3d8dac4a3bdd385e5cf802ae097db
+ languageName: node
+ linkType: hard
+
+"whatwg-url@npm:^5.0.0":
+ version: 5.0.0
+ resolution: "whatwg-url@npm:5.0.0"
+ dependencies:
+ tr46: "npm:~0.0.3"
+ webidl-conversions: "npm:^3.0.0"
+ checksum: 10c0/1588bed84d10b72d5eec1d0faa0722ba1962f1821e7539c535558fb5398d223b0c50d8acab950b8c488b4ba69043fd833cc2697056b167d8ad46fac3995a55d5
+ languageName: node
+ linkType: hard
+
+"which-boxed-primitive@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "which-boxed-primitive@npm:1.0.2"
+ dependencies:
+ is-bigint: "npm:^1.0.1"
+ is-boolean-object: "npm:^1.1.0"
+ is-number-object: "npm:^1.0.4"
+ is-string: "npm:^1.0.5"
+ is-symbol: "npm:^1.0.3"
+ checksum: 10c0/0a62a03c00c91dd4fb1035b2f0733c341d805753b027eebd3a304b9cb70e8ce33e25317add2fe9b5fea6f53a175c0633ae701ff812e604410ddd049777cd435e
+ languageName: node
+ linkType: hard
+
+"which-builtin-type@npm:^1.1.3":
+ version: 1.1.3
+ resolution: "which-builtin-type@npm:1.1.3"
+ dependencies:
+ function.prototype.name: "npm:^1.1.5"
+ has-tostringtag: "npm:^1.0.0"
+ is-async-function: "npm:^2.0.0"
+ is-date-object: "npm:^1.0.5"
+ is-finalizationregistry: "npm:^1.0.2"
+ is-generator-function: "npm:^1.0.10"
+ is-regex: "npm:^1.1.4"
+ is-weakref: "npm:^1.0.2"
+ isarray: "npm:^2.0.5"
+ which-boxed-primitive: "npm:^1.0.2"
+ which-collection: "npm:^1.0.1"
+ which-typed-array: "npm:^1.1.9"
+ checksum: 10c0/2b7b234df3443b52f4fbd2b65b731804de8d30bcc4210ec84107ef377a81923cea7f2763b7fb78b394175cea59118bf3c41b9ffd2d643cb1d748ef93b33b6bd4
+ languageName: node
+ linkType: hard
+
+"which-collection@npm:^1.0.1":
+ version: 1.0.2
+ resolution: "which-collection@npm:1.0.2"
+ dependencies:
+ is-map: "npm:^2.0.3"
+ is-set: "npm:^2.0.3"
+ is-weakmap: "npm:^2.0.2"
+ is-weakset: "npm:^2.0.3"
+ checksum: 10c0/3345fde20964525a04cdf7c4a96821f85f0cc198f1b2ecb4576e08096746d129eb133571998fe121c77782ac8f21cbd67745a3d35ce100d26d4e684c142ea1f2
+ languageName: node
+ linkType: hard
+
+"which-typed-array@npm:^1.1.14, which-typed-array@npm:^1.1.15, which-typed-array@npm:^1.1.2, which-typed-array@npm:^1.1.9":
+ version: 1.1.15
+ resolution: "which-typed-array@npm:1.1.15"
+ dependencies:
+ available-typed-arrays: "npm:^1.0.7"
+ call-bind: "npm:^1.0.7"
+ for-each: "npm:^0.3.3"
+ gopd: "npm:^1.0.1"
+ has-tostringtag: "npm:^1.0.2"
+ checksum: 10c0/4465d5348c044032032251be54d8988270e69c6b7154f8fcb2a47ff706fe36f7624b3a24246b8d9089435a8f4ec48c1c1025c5d6b499456b9e5eff4f48212983
+ languageName: node
+ linkType: hard
+
+"which@npm:^2.0.1":
+ version: 2.0.2
+ resolution: "which@npm:2.0.2"
+ dependencies:
+ isexe: "npm:^2.0.0"
+ bin:
+ node-which: ./bin/node-which
+ checksum: 10c0/66522872a768b60c2a65a57e8ad184e5372f5b6a9ca6d5f033d4b0dc98aff63995655a7503b9c0a2598936f532120e81dd8cc155e2e92ed662a2b9377cc4374f
+ languageName: node
+ linkType: hard
+
+"which@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "which@npm:4.0.0"
+ dependencies:
+ isexe: "npm:^3.1.1"
+ bin:
+ node-which: bin/which.js
+ checksum: 10c0/449fa5c44ed120ccecfe18c433296a4978a7583bf2391c50abce13f76878d2476defde04d0f79db8165bdf432853c1f8389d0485ca6e8ebce3bbcded513d5e6a
+ languageName: node
+ linkType: hard
+
+"wif@npm:^2.0.6":
+ version: 2.0.6
+ resolution: "wif@npm:2.0.6"
+ dependencies:
+ bs58check: "npm:<3.0.0"
+ checksum: 10c0/9ff55fdde73226bbae6a08b68298b6d14bbc22fa4cefac11edaacb2317c217700f715b95dc4432917f73511ec983f1bc032d22c467703b136f4e6ca7dfa9f10b
+ languageName: node
+ linkType: hard
+
+"word-wrap@npm:^1.2.5":
+ version: 1.2.5
+ resolution: "word-wrap@npm:1.2.5"
+ checksum: 10c0/e0e4a1ca27599c92a6ca4c32260e8a92e8a44f4ef6ef93f803f8ed823f486e0889fc0b93be4db59c8d51b3064951d25e43d434e95dc8c960cc3a63d65d00ba20
+ languageName: node
+ linkType: hard
+
+"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0":
+ version: 7.0.0
+ resolution: "wrap-ansi@npm:7.0.0"
+ dependencies:
+ ansi-styles: "npm:^4.0.0"
+ string-width: "npm:^4.1.0"
+ strip-ansi: "npm:^6.0.0"
+ checksum: 10c0/d15fc12c11e4cbc4044a552129ebc75ee3f57aa9c1958373a4db0292d72282f54373b536103987a4a7594db1ef6a4f10acf92978f79b98c49306a4b58c77d4da
+ languageName: node
+ linkType: hard
+
+"wrap-ansi@npm:^8.1.0":
+ version: 8.1.0
+ resolution: "wrap-ansi@npm:8.1.0"
+ dependencies:
+ ansi-styles: "npm:^6.1.0"
+ string-width: "npm:^5.0.1"
+ strip-ansi: "npm:^7.0.1"
+ checksum: 10c0/138ff58a41d2f877eae87e3282c0630fc2789012fc1af4d6bd626eeb9a2f9a65ca92005e6e69a75c7b85a68479fe7443c7dbe1eb8fbaa681a4491364b7c55c60
+ languageName: node
+ linkType: hard
+
+"wrappy@npm:1":
+ version: 1.0.2
+ resolution: "wrappy@npm:1.0.2"
+ checksum: 10c0/56fece1a4018c6a6c8e28fbc88c87e0fbf4ea8fd64fc6c63b18f4acc4bd13e0ad2515189786dd2c30d3eec9663d70f4ecf699330002f8ccb547e4a18231fc9f0
+ languageName: node
+ linkType: hard
+
+"ws@npm:7.4.6":
+ version: 7.4.6
+ resolution: "ws@npm:7.4.6"
+ peerDependencies:
+ bufferutil: ^4.0.1
+ utf-8-validate: ^5.0.2
+ peerDependenciesMeta:
+ bufferutil:
+ optional: true
+ utf-8-validate:
+ optional: true
+ checksum: 10c0/4b44b59bbc0549c852fb2f0cdb48e40e122a1b6078aeed3d65557cbeb7d37dda7a4f0027afba2e6a7a695de17701226d02b23bd15c97b0837808c16345c62f8e
+ languageName: node
+ linkType: hard
+
+"ws@npm:^7, ws@npm:^7.5.1, ws@npm:^7.5.9":
+ version: 7.5.9
+ resolution: "ws@npm:7.5.9"
+ peerDependencies:
+ bufferutil: ^4.0.1
+ utf-8-validate: ^5.0.2
+ peerDependenciesMeta:
+ bufferutil:
+ optional: true
+ utf-8-validate:
+ optional: true
+ checksum: 10c0/aec4ef4eb65821a7dde7b44790f8699cfafb7978c9b080f6d7a98a7f8fc0ce674c027073a78574c94786ba7112cc90fa2cc94fc224ceba4d4b1030cff9662494
+ languageName: node
+ linkType: hard
+
+"xstream@npm:^11.14.0":
+ version: 11.14.0
+ resolution: "xstream@npm:11.14.0"
+ dependencies:
+ globalthis: "npm:^1.0.1"
+ symbol-observable: "npm:^2.0.3"
+ checksum: 10c0/7a28baedc64385dc17597d04c7130ec3135db298e66d6dcf33821eb1953d5ad1b83c5fa08f1ce4d36e75fd219f2e9ef81ee0721aa8d4ccf619acc1760ba37f71
+ languageName: node
+ linkType: hard
+
+"yallist@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "yallist@npm:4.0.0"
+ checksum: 10c0/2286b5e8dbfe22204ab66e2ef5cc9bbb1e55dfc873bbe0d568aa943eb255d131890dfd5bf243637273d31119b870f49c18fcde2c6ffbb7a7a092b870dc90625a
+ languageName: node
+ linkType: hard
+
+"yaml-loader@npm:^0.8.1":
+ version: 0.8.1
+ resolution: "yaml-loader@npm:0.8.1"
+ dependencies:
+ javascript-stringify: "npm:^2.0.1"
+ loader-utils: "npm:^2.0.0"
+ yaml: "npm:^2.0.0"
+ checksum: 10c0/4bb4789c8ace38067ff68a67fba27626c0793f4d001a485d2334bff7c4fed73ee1696bee287949a834c3387655df2e27e3d7c52ad7d3c20cd5c5ecbff320ff57
+ languageName: node
+ linkType: hard
+
+"yaml@npm:^2.0.0":
+ version: 2.4.5
+ resolution: "yaml@npm:2.4.5"
+ bin:
+ yaml: bin.mjs
+ checksum: 10c0/e1ee78b381e5c710f715cc4082fd10fc82f7f5c92bd6f075771d20559e175616f56abf1c411f545ea0e9e16e4f84a83a50b42764af5f16ec006328ba9476bb31
+ languageName: node
+ linkType: hard
+
+"yocto-queue@npm:^0.1.0":
+ version: 0.1.0
+ resolution: "yocto-queue@npm:0.1.0"
+ checksum: 10c0/dceb44c28578b31641e13695d200d34ec4ab3966a5729814d5445b194933c096b7ced71494ce53a0e8820685d1d010df8b2422e5bf2cdea7e469d97ffbea306f
+ languageName: node
+ linkType: hard
+
+"zustand@npm:4.5.2":
+ version: 4.5.2
+ resolution: "zustand@npm:4.5.2"
+ dependencies:
+ use-sync-external-store: "npm:1.2.0"
+ peerDependencies:
+ "@types/react": ">=16.8"
+ immer: ">=9.0.6"
+ react: ">=16.8"
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ immer:
+ optional: true
+ react:
+ optional: true
+ checksum: 10c0/aee26f11facebb39b016e89539f72a72c2c00151208907fc909c3cedd455728240e09e01d98ebd3b63a2a3518a5917eac5de6c853743ca55a1655296d750bb48
+ languageName: node
+ linkType: hard
+
+"zustand@npm:^4.5.4":
+ version: 4.5.5
+ resolution: "zustand@npm:4.5.5"
+ dependencies:
+ use-sync-external-store: "npm:1.2.2"
+ peerDependencies:
+ "@types/react": ">=16.8"
+ immer: ">=9.0.6"
+ react: ">=16.8"
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ immer:
+ optional: true
+ react:
+ optional: true
+ checksum: 10c0/d04469d76b29c7e4070da269886de4efdadedd3d3824dc2a06ac4ff62e3b5877f925e927afe7382de651829872b99adec48082f1bd69fe486149be666345e626
+ languageName: node
+ linkType: hard
+
+"zwitch@npm:^2.0.0":
+ version: 2.0.4
+ resolution: "zwitch@npm:2.0.4"
+ checksum: 10c0/3c7830cdd3378667e058ffdb4cf2bb78ac5711214e2725900873accb23f3dfe5f9e7e5a06dcdc5f29605da976fc45c26d9a13ca334d6eea2245a15e77b8fc06e
+ languageName: node
+ linkType: hard