diff --git a/.github/workflows/core.yaml b/.github/workflows/core.yaml
index de42c2dc6..8dbe76ae6 100644
--- a/.github/workflows/core.yaml
+++ b/.github/workflows/core.yaml
@@ -7,6 +7,15 @@ on:
paths:
- "core/**"
pull_request:
+ workflow_dispatch:
+ inputs:
+ environment:
+ description: "Testnet to deploy contracts to"
+ required: true
+ type: choice
+ options:
+ - "sepolia"
+ default: "sepolia"
defaults:
run:
@@ -23,7 +32,7 @@ jobs:
- uses: actions/checkout@v4
- name: Set up pnpm
- uses: pnpm/action-setup@v2
+ uses: pnpm/action-setup@v3
- name: Set up Node
uses: actions/setup-node@v4
@@ -35,7 +44,7 @@ jobs:
run: pnpm install --prefer-offline --frozen-lockfile
- name: Download Build Artifacts
- uses: actions/download-artifact@v3
+ uses: actions/download-artifact@v4
with:
name: core-build
path: core/
@@ -50,7 +59,7 @@ jobs:
- uses: actions/checkout@v4
- name: Set up pnpm
- uses: pnpm/action-setup@v2
+ uses: pnpm/action-setup@v3
- name: Set up Node
uses: actions/setup-node@v4
@@ -71,7 +80,7 @@ jobs:
run: pip3 install slither-analyzer==$SLITHER_VERSION
- name: Download Build Artifacts
- uses: actions/download-artifact@v3
+ uses: actions/download-artifact@v4
with:
name: core-build
path: core/
@@ -86,7 +95,7 @@ jobs:
- uses: actions/checkout@v4
- name: Set up pnpm
- uses: pnpm/action-setup@v2
+ uses: pnpm/action-setup@v3
- name: Set up Node
uses: actions/setup-node@v4
@@ -98,7 +107,7 @@ jobs:
run: pnpm install --prefer-offline --frozen-lockfile
- name: Download Build Artifacts
- uses: actions/download-artifact@v3
+ uses: actions/download-artifact@v4
with:
name: core-build
path: core/
@@ -113,7 +122,7 @@ jobs:
- uses: actions/checkout@v4
- name: Set up pnpm
- uses: pnpm/action-setup@v2
+ uses: pnpm/action-setup@v3
- name: Set up Node
uses: actions/setup-node@v4
@@ -125,10 +134,57 @@ jobs:
run: pnpm install --prefer-offline --frozen-lockfile
- name: Download Build Artifacts
- uses: actions/download-artifact@v3
+ uses: actions/download-artifact@v4
with:
name: core-build
path: core/
- name: Deploy
run: pnpm run deploy --no-compile
+
+ core-deploy-testnet:
+ needs: [core-deploy-dry-run]
+ if: github.event_name == 'workflow_dispatch'
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+
+ - name: Setup PNPM
+ uses: pnpm/action-setup@v3
+
+ - name: Setup Node
+ uses: actions/setup-node@v4
+ with:
+ node-version-file: "core/.nvmrc"
+ cache: "pnpm"
+
+ - name: Install dependencies
+ run: pnpm install --prefer-offline --frozen-lockfile
+
+ - name: Download build artifacts
+ uses: actions/download-artifact@v4
+ with:
+ name: core-build
+ path: core/
+
+ - name: Remove existing deployment artifacts for the selected network
+ run: rm -rf deployments/${{ github.event.inputs.environment }}
+
+ - name: Deploy contracts
+ env:
+ ACCOUNTS_PRIVATE_KEYS: ${{ secrets.TESTNET_ETH_CONTRACT_OWNER_PRIVATE_KEY }}
+ CHAIN_API_URL: ${{ secrets.SEPOLIA_CHAIN_API_URL }}
+ ETHERSCAN_API_KEY: ${{ secrets.ETHERSCAN_API_KEY }}
+ run: |
+ pnpm run deploy --network ${{ github.event.inputs.environment }}
+
+ - name: Upload deployed contracts as workflow artifact
+ # The step will be executed even if the previous step fails (can be
+ # useful for partially failed deployments).
+ if: always()
+ uses: actions/upload-artifact@v4
+ with:
+ name: deployed-contracts-${{ github.event.inputs.environment }}
+ path: |
+ core/deployments/${{ github.event.inputs.environment }}
+ if-no-files-found: error
diff --git a/.github/workflows/dapp.yaml b/.github/workflows/dapp.yaml
index 4d845443c..c0afd2ac5 100644
--- a/.github/workflows/dapp.yaml
+++ b/.github/workflows/dapp.yaml
@@ -23,7 +23,7 @@ jobs:
- uses: actions/checkout@v4
- name: Set up pnpm
- uses: pnpm/action-setup@v2
+ uses: pnpm/action-setup@v3
- name: Set up Node
uses: actions/setup-node@v4
@@ -32,7 +32,7 @@ jobs:
cache: "pnpm"
- name: Download SDK Build Artifacts
- uses: actions/download-artifact@v3
+ uses: actions/download-artifact@v4
with:
name: sdk-build
path: sdk/dist
@@ -50,7 +50,7 @@ jobs:
- uses: actions/checkout@v4
- name: Set up pnpm
- uses: pnpm/action-setup@v2
+ uses: pnpm/action-setup@v3
- name: Set up Node
uses: actions/setup-node@v4
@@ -59,7 +59,7 @@ jobs:
cache: "pnpm"
- name: Download SDK Build Artifacts
- uses: actions/download-artifact@v3
+ uses: actions/download-artifact@v4
with:
name: sdk-build
path: sdk/dist
diff --git a/.github/workflows/reusable-core-build.yaml b/.github/workflows/reusable-core-build.yaml
index cb77ec17c..68269918b 100644
--- a/.github/workflows/reusable-core-build.yaml
+++ b/.github/workflows/reusable-core-build.yaml
@@ -12,7 +12,7 @@ jobs:
- uses: actions/checkout@v4
- name: Set up pnpm
- uses: pnpm/action-setup@v2
+ uses: pnpm/action-setup@v3
- name: Set up Node
uses: actions/setup-node@v4
@@ -27,7 +27,7 @@ jobs:
run: pnpm run build
- name: Upload Build Artifacts
- uses: actions/upload-artifact@v3
+ uses: actions/upload-artifact@v4
with:
name: core-build
path: |
diff --git a/.github/workflows/reusable-sdk-build.yaml b/.github/workflows/reusable-sdk-build.yaml
index 88f7bf702..fe0a3d5ab 100644
--- a/.github/workflows/reusable-sdk-build.yaml
+++ b/.github/workflows/reusable-sdk-build.yaml
@@ -16,7 +16,7 @@ jobs:
- uses: actions/checkout@v4
- name: Set up pnpm
- uses: pnpm/action-setup@v2
+ uses: pnpm/action-setup@v3
- name: Set up Node
uses: actions/setup-node@v4
@@ -25,7 +25,7 @@ jobs:
cache: "pnpm"
- name: Download Core Build Artifacts
- uses: actions/download-artifact@v3
+ uses: actions/download-artifact@v4
with:
name: core-build
path: core/
@@ -37,7 +37,7 @@ jobs:
run: pnpm run build
- name: Upload Build Artifacts
- uses: actions/upload-artifact@v3
+ uses: actions/upload-artifact@v4
with:
name: sdk-build
path: sdk/dist/
diff --git a/.github/workflows/sdk.yaml b/.github/workflows/sdk.yaml
index fbfd8c817..5898da5ee 100644
--- a/.github/workflows/sdk.yaml
+++ b/.github/workflows/sdk.yaml
@@ -23,7 +23,7 @@ jobs:
- uses: actions/checkout@v4
- name: Set up pnpm
- uses: pnpm/action-setup@v2
+ uses: pnpm/action-setup@v3
- name: Set up Node
uses: actions/setup-node@v4
@@ -32,7 +32,7 @@ jobs:
cache: "pnpm"
- name: Download Core Build Artifacts
- uses: actions/download-artifact@v3
+ uses: actions/download-artifact@v4
with:
name: core-build
path: core/
@@ -50,7 +50,7 @@ jobs:
- uses: actions/checkout@v4
- name: Set up pnpm
- uses: pnpm/action-setup@v2
+ uses: pnpm/action-setup@v3
- name: Set up Node
uses: actions/setup-node@v4
@@ -59,7 +59,7 @@ jobs:
cache: "pnpm"
- name: Download Core Build Artifacts
- uses: actions/download-artifact@v3
+ uses: actions/download-artifact@v4
with:
name: core-build
path: core/
diff --git a/.github/workflows/website.yaml b/.github/workflows/website.yaml
index c9064b398..317e6bd41 100644
--- a/.github/workflows/website.yaml
+++ b/.github/workflows/website.yaml
@@ -19,7 +19,7 @@ jobs:
- uses: actions/checkout@v4
- name: Set up pnpm
- uses: pnpm/action-setup@v2
+ uses: pnpm/action-setup@v3
- name: Set up Node
uses: actions/setup-node@v4
@@ -36,7 +36,7 @@ jobs:
- uses: actions/checkout@v4
- name: Set up pnpm
- uses: pnpm/action-setup@v2
+ uses: pnpm/action-setup@v3
- name: Set up Node
uses: actions/setup-node@v4
diff --git a/dapp/.eslintrc b/dapp/.eslintrc
index 950c59770..3fd1b6e42 100644
--- a/dapp/.eslintrc
+++ b/dapp/.eslintrc
@@ -18,6 +18,16 @@
"react/require-default-props": [0],
"no-console": ["error", { "allow": ["error"] }],
},
+ "overrides": [
+ {
+ "files": [
+ "src/store/**/*Slice.ts"
+ ],
+ "rules": {
+ "no-param-reassign": ["error", {"ignorePropertyModificationsFor": ["state"] }]
+ }
+ }
+ ],
"settings": {
"import/resolver": {
"alias": {
diff --git a/dapp/package.json b/dapp/package.json
index 429603c06..c8cdf2427 100644
--- a/dapp/package.json
+++ b/dapp/package.json
@@ -21,6 +21,7 @@
"@emotion/styled": "^11.11.0",
"@ledgerhq/wallet-api-client": "^1.5.0",
"@ledgerhq/wallet-api-client-react": "^1.3.0",
+ "@reduxjs/toolkit": "^2.2.0",
"@sentry/react": "^7.98.0",
"@sentry/types": "^7.102.0",
"@tanstack/react-table": "^8.11.3",
@@ -32,6 +33,7 @@
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-number-format": "^5.3.1",
+ "react-redux": "^9.1.0",
"react-router-dom": "^6.22.0",
"react-slick": "^0.30.2",
"recharts": "^2.12.0"
diff --git a/dapp/public/_redirects b/dapp/public/_redirects
new file mode 100644
index 000000000..7797f7c6a
--- /dev/null
+++ b/dapp/public/_redirects
@@ -0,0 +1 @@
+/* /index.html 200
diff --git a/dapp/src/DApp.tsx b/dapp/src/DApp.tsx
index bece62291..71db1bc16 100644
--- a/dapp/src/DApp.tsx
+++ b/dapp/src/DApp.tsx
@@ -1,7 +1,9 @@
import React from "react"
import { Box, ChakraProvider } from "@chakra-ui/react"
+import { Provider as ReduxProvider } from "react-redux"
import { RouterProvider } from "react-router-dom"
-import { useInitializeAcreSdk } from "./hooks"
+import { useInitApp } from "./hooks"
+import { store } from "./store"
import theme from "./theme"
import {
DocsDrawerContextProvider,
@@ -15,13 +17,9 @@ import Sidebar from "./components/Sidebar"
import DocsDrawer from "./components/DocsDrawer"
import GlobalStyles from "./components/GlobalStyles"
import { router } from "./router"
-import { useSentry } from "./hooks/sentry"
function DApp() {
- // TODO: Let's uncomment when dark mode is ready
- // useDetectThemeMode()
- useSentry()
- useInitializeAcreSdk()
+ useInitApp()
return (
<>
@@ -42,10 +40,12 @@ function DAppProviders() {
-
-
-
-
+
+
+
+
+
+
diff --git a/dapp/src/components/Header/ConnectWallet.tsx b/dapp/src/components/Header/ConnectWallet.tsx
index 038a069ff..7879363bf 100644
--- a/dapp/src/components/Header/ConnectWallet.tsx
+++ b/dapp/src/components/Header/ConnectWallet.tsx
@@ -9,7 +9,7 @@ import {
import { CurrencyBalance } from "#/components/shared/CurrencyBalance"
import { TextMd } from "#/components/shared/Typography"
import { Bitcoin, EthereumIcon } from "#/assets/icons"
-import { truncateAddress, asyncWrapper } from "#/utils"
+import { truncateAddress, logPromiseFailure } from "#/utils"
export type ConnectButtonsProps = {
leftIcon: typeof Icon
@@ -25,7 +25,7 @@ function ConnectButton({
const colorScheme = !account ? "error" : undefined
const handleClick = () => {
- asyncWrapper(requestAccount())
+ logPromiseFailure(requestAccount())
}
return (
diff --git a/dapp/src/components/TransactionModal/ActiveStakingStep/DepositBTCModal.tsx b/dapp/src/components/TransactionModal/ActiveStakingStep/DepositBTCModal.tsx
index 935bc3ed5..1701afbe5 100644
--- a/dapp/src/components/TransactionModal/ActiveStakingStep/DepositBTCModal.tsx
+++ b/dapp/src/components/TransactionModal/ActiveStakingStep/DepositBTCModal.tsx
@@ -10,7 +10,7 @@ import {
} from "#/hooks"
import Alert from "#/components/shared/Alert"
import { TextMd } from "#/components/shared/Typography"
-import { asyncWrapper } from "#/utils"
+import { logPromiseFailure } from "#/utils"
import { PROCESS_STATUSES } from "#/types"
import StakingStepsModalContent from "./StakingStepsModalContent"
@@ -42,7 +42,7 @@ export default function DepositBTCModal() {
// to make sure for the moment that it doesn't return an error about funds not found
// TODO: Remove the delay when SDK is updated
setTimeout(() => {
- asyncWrapper(handleStake())
+ logPromiseFailure(handleStake())
}, 10000)
}, [setStatus, handleStake])
@@ -62,7 +62,7 @@ export default function DepositBTCModal() {
// TODO: Display the correct message for the user
if (response.verificationStatus !== "valid") return
- asyncWrapper(sendBitcoinTransaction(tokenAmount?.amount, btcAddress))
+ logPromiseFailure(sendBitcoinTransaction(tokenAmount?.amount, btcAddress))
}, [
btcAddress,
depositReceipt,
@@ -73,7 +73,7 @@ export default function DepositBTCModal() {
])
const handledDepositBTCWrapper = useCallback(() => {
- asyncWrapper(handledDepositBTC())
+ logPromiseFailure(handledDepositBTC())
}, [handledDepositBTC])
return (
diff --git a/dapp/src/components/TransactionModal/ActiveStakingStep/SignMessageModal.tsx b/dapp/src/components/TransactionModal/ActiveStakingStep/SignMessageModal.tsx
index ac6fb44a9..84803da08 100644
--- a/dapp/src/components/TransactionModal/ActiveStakingStep/SignMessageModal.tsx
+++ b/dapp/src/components/TransactionModal/ActiveStakingStep/SignMessageModal.tsx
@@ -4,7 +4,7 @@ import {
useModalFlowContext,
useStakeFlowContext,
} from "#/hooks"
-import { asyncWrapper } from "#/utils"
+import { logPromiseFailure } from "#/utils"
import AlertReceiveSTBTC from "#/components/shared/AlertReceiveSTBTC"
import { PROCESS_STATUSES } from "#/types"
import StakingStepsModalContent from "./StakingStepsModalContent"
@@ -15,7 +15,7 @@ export default function SignMessageModal() {
const handleSignMessage = useExecuteFunction(signMessage, goNext)
const handleSignMessageWrapper = useCallback(() => {
- asyncWrapper(handleSignMessage())
+ logPromiseFailure(handleSignMessage())
}, [handleSignMessage])
useEffect(() => {
diff --git a/dapp/src/components/TransactionModal/ActiveUnstakingStep/SignMessageModal.tsx b/dapp/src/components/TransactionModal/ActiveUnstakingStep/SignMessageModal.tsx
index dcf681c60..0f9bd1003 100644
--- a/dapp/src/components/TransactionModal/ActiveUnstakingStep/SignMessageModal.tsx
+++ b/dapp/src/components/TransactionModal/ActiveUnstakingStep/SignMessageModal.tsx
@@ -4,7 +4,7 @@ import { PROCESS_STATUSES } from "#/types"
import { Button, ModalBody, ModalFooter, ModalHeader } from "@chakra-ui/react"
import { TextMd } from "#/components/shared/Typography"
import AlertReceiveSTBTC from "#/components/shared/AlertReceiveSTBTC"
-import { asyncWrapper } from "#/utils"
+import { logPromiseFailure } from "#/utils"
export default function SignMessageModal() {
const { setStatus } = useModalFlowContext()
@@ -34,7 +34,7 @@ export default function SignMessageModal() {
// TODO: Remove when SDK is ready
setTimeout(() => {
- asyncWrapper(handleSignMessage())
+ logPromiseFailure(handleSignMessage())
}, 5000)
}, [setStatus, handleSignMessage])
diff --git a/dapp/src/components/TransactionModal/ModalContentWrapper/ActionFormModal.tsx b/dapp/src/components/TransactionModal/ModalContentWrapper/ActionFormModal.tsx
index 8a727d892..f900f85e2 100644
--- a/dapp/src/components/TransactionModal/ModalContentWrapper/ActionFormModal.tsx
+++ b/dapp/src/components/TransactionModal/ModalContentWrapper/ActionFormModal.tsx
@@ -16,7 +16,7 @@ import {
} from "#/hooks"
import { ACTION_FLOW_TYPES, ActionFlowType } from "#/types"
import { TokenAmountFormValues } from "#/components/shared/TokenAmountForm/TokenAmountFormBase"
-import { asyncWrapper } from "#/utils"
+import { logPromiseFailure } from "#/utils"
import StakeFormModal from "../ActiveStakingStep/StakeFormModal"
import UnstakeFormModal from "../ActiveUnstakingStep/UnstakeFormModal"
@@ -59,7 +59,8 @@ function ActionFormModal({ defaultType }: { defaultType: ActionFlowType }) {
)
const handleSubmitFormWrapper = useCallback(
- (values: TokenAmountFormValues) => asyncWrapper(handleSubmitForm(values)),
+ (values: TokenAmountFormValues) =>
+ logPromiseFailure(handleSubmitForm(values)),
[handleSubmitForm],
)
diff --git a/dapp/src/components/TransactionModal/ModalContentWrapper/MissingAccountModal.tsx b/dapp/src/components/TransactionModal/ModalContentWrapper/MissingAccountModal.tsx
index 21391e063..826dc325f 100644
--- a/dapp/src/components/TransactionModal/ModalContentWrapper/MissingAccountModal.tsx
+++ b/dapp/src/components/TransactionModal/ModalContentWrapper/MissingAccountModal.tsx
@@ -10,7 +10,7 @@ import {
} from "@chakra-ui/react"
import { TextMd } from "#/components/shared/Typography"
import Alert from "#/components/shared/Alert"
-import { asyncWrapper, getCurrencyByType } from "#/utils"
+import { logPromiseFailure, getCurrencyByType } from "#/utils"
import { CurrencyType, RequestAccountParams } from "#/types"
type MissingAccountModalProps = {
@@ -27,7 +27,7 @@ export default function MissingAccountModal({
const { name, symbol } = getCurrencyByType(currency)
const handleClick = () => {
- asyncWrapper(requestAccount())
+ logPromiseFailure(requestAccount())
}
return (
diff --git a/dapp/src/components/shared/CurrencyBalanceWithConversion/index.tsx b/dapp/src/components/shared/CurrencyBalanceWithConversion/index.tsx
index b54cff5cb..5d19dd126 100644
--- a/dapp/src/components/shared/CurrencyBalanceWithConversion/index.tsx
+++ b/dapp/src/components/shared/CurrencyBalanceWithConversion/index.tsx
@@ -1,8 +1,7 @@
-import React, { useMemo } from "react"
+import React from "react"
+import { useCurrencyConversion } from "#/hooks"
import { CurrencyBalance, CurrencyBalanceProps } from "../CurrencyBalance"
-const MOCK_CONVERSION_AMOUNT = 100
-
export function CurrencyBalanceWithConversion({
from,
to,
@@ -10,12 +9,7 @@ export function CurrencyBalanceWithConversion({
from: CurrencyBalanceProps
to: CurrencyBalanceProps
}) {
- // TODO: Make the correct conversion
- const conversionAmount = useMemo(() => {
- if (!from.amount || BigInt(from.amount) < 0n) return undefined
-
- return MOCK_CONVERSION_AMOUNT
- }, [from.amount])
+ const conversionAmount = useCurrencyConversion({ from, to })
return (
<>
diff --git a/dapp/src/components/shared/Form/FormTokenBalanceInput.tsx b/dapp/src/components/shared/Form/FormTokenBalanceInput.tsx
index 5eefb5933..00fe36074 100644
--- a/dapp/src/components/shared/Form/FormTokenBalanceInput.tsx
+++ b/dapp/src/components/shared/Form/FormTokenBalanceInput.tsx
@@ -1,6 +1,6 @@
import React from "react"
import { useField } from "formik"
-import { asyncWrapper } from "#/utils"
+import { logPromiseFailure } from "#/utils"
import TokenBalanceInput, { TokenBalanceInputProps } from "../TokenBalanceInput"
export type FormTokenBalanceInputProps = {
@@ -13,7 +13,7 @@ export function FormTokenBalanceInput({
const [field, meta, helpers] = useField(name)
const setAmount = (value?: bigint) => {
- asyncWrapper(helpers.setValue(value))
+ logPromiseFailure(helpers.setValue(value))
}
return (
diff --git a/dapp/src/contexts/StakeFlowContext.tsx b/dapp/src/contexts/StakeFlowContext.tsx
index 5fd80cbe5..8afe6870b 100644
--- a/dapp/src/contexts/StakeFlowContext.tsx
+++ b/dapp/src/contexts/StakeFlowContext.tsx
@@ -27,6 +27,7 @@ export function StakeFlowProvider({ children }: { children: React.ReactNode }) {
initStake: acreInitStake,
signMessage,
btcAddress,
+ depositReceipt,
stake,
} = useStakeFlow()
@@ -51,9 +52,10 @@ export function StakeFlowProvider({ children }: { children: React.ReactNode }) {
initStake,
signMessage,
btcAddress,
+ depositReceipt,
stake,
}),
- [initStake, signMessage, btcAddress, stake],
+ [initStake, signMessage, btcAddress, depositReceipt, stake],
)
return (
diff --git a/dapp/src/hooks/index.ts b/dapp/src/hooks/index.ts
index 56014a221..292568f86 100644
--- a/dapp/src/hooks/index.ts
+++ b/dapp/src/hooks/index.ts
@@ -1,3 +1,4 @@
+export * from "./store"
export * from "./useDetectThemeMode"
export * from "./useRequestBitcoinAccount"
export * from "./useRequestEthereumAccount"
@@ -12,4 +13,7 @@ export * from "./useInitializeAcreSdk"
export * from "./useTransactionHistoryTable"
export * from "./useExecuteFunction"
export * from "./useStakeFlowContext"
+export * from "./useInitApp"
+export * from "./useCurrencyConversion"
export * from "./useDepositTelemetry"
+export * from "./useFetchBTCPriceUSD"
diff --git a/dapp/src/hooks/store/index.ts b/dapp/src/hooks/store/index.ts
new file mode 100644
index 000000000..20f33eb3c
--- /dev/null
+++ b/dapp/src/hooks/store/index.ts
@@ -0,0 +1,2 @@
+export * from "./useAppDispatch"
+export * from "./useAppSelector"
diff --git a/dapp/src/hooks/store/useAppDispatch.ts b/dapp/src/hooks/store/useAppDispatch.ts
new file mode 100644
index 000000000..ef697bd15
--- /dev/null
+++ b/dapp/src/hooks/store/useAppDispatch.ts
@@ -0,0 +1,4 @@
+import { useDispatch } from "react-redux"
+import { AppDispatch } from "#/store"
+
+export const useAppDispatch = useDispatch.withTypes()
diff --git a/dapp/src/hooks/store/useAppSelector.ts b/dapp/src/hooks/store/useAppSelector.ts
new file mode 100644
index 000000000..9cbdbbe9f
--- /dev/null
+++ b/dapp/src/hooks/store/useAppSelector.ts
@@ -0,0 +1,4 @@
+import { useSelector } from "react-redux"
+import { RootState } from "#/store"
+
+export const useAppSelector = useSelector.withTypes()
diff --git a/dapp/src/hooks/useCurrencyConversion.ts b/dapp/src/hooks/useCurrencyConversion.ts
new file mode 100644
index 000000000..f3279c86e
--- /dev/null
+++ b/dapp/src/hooks/useCurrencyConversion.ts
@@ -0,0 +1,39 @@
+import { CURRENCIES_BY_TYPE } from "#/constants"
+import { selectBtcUsdPrice } from "#/store/btc"
+import { bigIntToUserAmount } from "#/utils"
+import { CurrencyType } from "#/types"
+import { useMemo } from "react"
+import { useAppSelector } from "./store"
+
+type CurrencyConversionType = {
+ currency: CurrencyType
+ amount?: number | string
+}
+
+// TODO: should be updated to handle another currencies
+const isBtcUsdConversion = (
+ from: CurrencyConversionType,
+ to: CurrencyConversionType,
+): boolean => from.currency === "bitcoin" && to.currency === "usd"
+
+export function useCurrencyConversion({
+ from,
+ to,
+}: {
+ from: CurrencyConversionType
+ to: CurrencyConversionType
+}) {
+ const price = useAppSelector(
+ isBtcUsdConversion(from, to) ? selectBtcUsdPrice : () => undefined,
+ )
+ const conversionAmount = useMemo(() => {
+ if (!from.amount || !price) return undefined
+
+ const { amount, currency } = from
+ const { decimals, desiredDecimals } = CURRENCIES_BY_TYPE[currency]
+
+ return bigIntToUserAmount(BigInt(amount), decimals, desiredDecimals) * price
+ }, [from, price])
+
+ return conversionAmount
+}
diff --git a/dapp/src/hooks/useFetchBTCPriceUSD.ts b/dapp/src/hooks/useFetchBTCPriceUSD.ts
new file mode 100644
index 000000000..0bce617ca
--- /dev/null
+++ b/dapp/src/hooks/useFetchBTCPriceUSD.ts
@@ -0,0 +1,12 @@
+import { useEffect } from "react"
+import { fetchBTCPriceUSD } from "#/store/btc"
+import { logPromiseFailure } from "#/utils"
+import { useAppDispatch } from "./store"
+
+export function useFetchBTCPriceUSD() {
+ const dispatch = useAppDispatch()
+
+ useEffect(() => {
+ logPromiseFailure(dispatch(fetchBTCPriceUSD()))
+ }, [dispatch])
+}
diff --git a/dapp/src/hooks/useInitApp.ts b/dapp/src/hooks/useInitApp.ts
new file mode 100644
index 000000000..bfa07283e
--- /dev/null
+++ b/dapp/src/hooks/useInitApp.ts
@@ -0,0 +1,11 @@
+import { useSentry } from "./sentry"
+import { useInitializeAcreSdk } from "./useInitializeAcreSdk"
+import { useFetchBTCPriceUSD } from "./useFetchBTCPriceUSD"
+
+export function useInitApp() {
+ // TODO: Let's uncomment when dark mode is ready
+ // useDetectThemeMode()
+ useSentry()
+ useInitializeAcreSdk()
+ useFetchBTCPriceUSD()
+}
diff --git a/dapp/src/hooks/useInitializeAcreSdk.ts b/dapp/src/hooks/useInitializeAcreSdk.ts
index eb1afce46..ab05a9aac 100644
--- a/dapp/src/hooks/useInitializeAcreSdk.ts
+++ b/dapp/src/hooks/useInitializeAcreSdk.ts
@@ -1,6 +1,6 @@
import { useEffect } from "react"
import { ETHEREUM_NETWORK } from "#/constants"
-import { asyncWrapper } from "#/utils"
+import { logPromiseFailure } from "#/utils"
import { useAcreContext } from "#/acre-react/hooks"
import { useWalletContext } from "./useWalletContext"
@@ -14,6 +14,6 @@ export function useInitializeAcreSdk() {
const initSDK = async (ethAddress: string) => {
await init(ethAddress, ETHEREUM_NETWORK)
}
- asyncWrapper(initSDK(ethAccount.address))
+ logPromiseFailure(initSDK(ethAccount.address))
}, [ethAccount?.address, init])
}
diff --git a/dapp/src/store/btc/btcSelector.ts b/dapp/src/store/btc/btcSelector.ts
new file mode 100644
index 000000000..c8ae200ab
--- /dev/null
+++ b/dapp/src/store/btc/btcSelector.ts
@@ -0,0 +1,3 @@
+import { RootState } from ".."
+
+export const selectBtcUsdPrice = (state: RootState) => state.btc.usdPrice
diff --git a/dapp/src/store/btc/btcSlice.ts b/dapp/src/store/btc/btcSlice.ts
new file mode 100644
index 000000000..84468710d
--- /dev/null
+++ b/dapp/src/store/btc/btcSlice.ts
@@ -0,0 +1,34 @@
+import { PayloadAction, createSlice } from "@reduxjs/toolkit"
+import { fetchBTCPriceUSD } from "./btcThunk"
+
+type BtcState = {
+ isLoadingPriceUSD: boolean
+ usdPrice: number
+}
+
+const initialState: BtcState = {
+ isLoadingPriceUSD: false,
+ usdPrice: 0,
+}
+
+// Store Bitcoin data such as balance, balance in usd and other related data to Bitcoin chain.
+export const btcSlice = createSlice({
+ name: "btc",
+ initialState,
+ reducers: {},
+ extraReducers: (builder) => {
+ builder.addCase(fetchBTCPriceUSD.pending, (state) => {
+ state.isLoadingPriceUSD = true
+ })
+ builder.addCase(fetchBTCPriceUSD.rejected, (state) => {
+ state.isLoadingPriceUSD = false
+ })
+ builder.addCase(
+ fetchBTCPriceUSD.fulfilled,
+ (state, action: PayloadAction) => {
+ state.isLoadingPriceUSD = false
+ state.usdPrice = action.payload
+ },
+ )
+ },
+})
diff --git a/dapp/src/store/btc/btcThunk.ts b/dapp/src/store/btc/btcThunk.ts
new file mode 100644
index 000000000..749c21fb8
--- /dev/null
+++ b/dapp/src/store/btc/btcThunk.ts
@@ -0,0 +1,15 @@
+import { createAsyncThunk } from "@reduxjs/toolkit"
+import { fetchCryptoCurrencyPriceUSD } from "#/utils/exchangeApi"
+
+export const fetchBTCPriceUSD = createAsyncThunk(
+ "btc/fetchBTCPriceUSD",
+ async () => {
+ try {
+ const priceUSD = await fetchCryptoCurrencyPriceUSD("bitcoin")
+ return priceUSD
+ } catch (error) {
+ console.error(error)
+ return 0
+ }
+ },
+)
diff --git a/dapp/src/store/btc/index.ts b/dapp/src/store/btc/index.ts
new file mode 100644
index 000000000..d0853dfb6
--- /dev/null
+++ b/dapp/src/store/btc/index.ts
@@ -0,0 +1,3 @@
+export * from "./btcSelector"
+export * from "./btcSlice"
+export * from "./btcThunk"
diff --git a/dapp/src/store/index.ts b/dapp/src/store/index.ts
new file mode 100644
index 000000000..fc68092ae
--- /dev/null
+++ b/dapp/src/store/index.ts
@@ -0,0 +1,12 @@
+import { configureStore } from "@reduxjs/toolkit"
+import { middleware } from "./middleware"
+import { reducer } from "./reducer"
+
+export const store = configureStore({
+ reducer,
+ middleware: (getDefaultMiddleware) => getDefaultMiddleware(middleware),
+ devTools: !import.meta.env.PROD,
+})
+
+export type RootState = ReturnType
+export type AppDispatch = typeof store.dispatch
diff --git a/dapp/src/store/middleware.ts b/dapp/src/store/middleware.ts
new file mode 100644
index 000000000..451fd90f1
--- /dev/null
+++ b/dapp/src/store/middleware.ts
@@ -0,0 +1 @@
+export const middleware = {}
diff --git a/dapp/src/store/reducer.ts b/dapp/src/store/reducer.ts
new file mode 100644
index 000000000..a49f551e8
--- /dev/null
+++ b/dapp/src/store/reducer.ts
@@ -0,0 +1,6 @@
+import { combineReducers } from "@reduxjs/toolkit"
+import { btcSlice } from "./btc/btcSlice"
+
+export const reducer = combineReducers({
+ btc: btcSlice.reducer,
+})
diff --git a/dapp/src/types/coingecko.ts b/dapp/src/types/coingecko.ts
new file mode 100644
index 000000000..5d43c6fdc
--- /dev/null
+++ b/dapp/src/types/coingecko.ts
@@ -0,0 +1,2 @@
+export type CoingeckoIdType = "bitcoin"
+export type CoingeckoCurrencyType = "usd"
diff --git a/dapp/src/types/index.ts b/dapp/src/types/index.ts
index 6167106d2..12a5dc7b3 100644
--- a/dapp/src/types/index.ts
+++ b/dapp/src/types/index.ts
@@ -9,3 +9,4 @@ export * from "./action-flow"
export * from "./location"
export * from "./charts"
export * from "./activity"
+export * from "./coingecko"
diff --git a/dapp/src/utils/async.ts b/dapp/src/utils/async.ts
deleted file mode 100644
index df3657065..000000000
--- a/dapp/src/utils/async.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-// eslint-disable-next-line @typescript-eslint/no-explicit-any
-export function asyncWrapper(func: Promise) {
- return () => {
- func.catch((error) => {
- throw error
- })
- }
-}
diff --git a/dapp/src/utils/exchangeApi.ts b/dapp/src/utils/exchangeApi.ts
new file mode 100644
index 000000000..2f83c4ebf
--- /dev/null
+++ b/dapp/src/utils/exchangeApi.ts
@@ -0,0 +1,20 @@
+import axios from "axios"
+import { CoingeckoIdType, CoingeckoCurrencyType } from "#/types"
+
+const coingeckoApiURL = "https://api.coingecko.com/api/v3"
+
+type CoingeckoSimplePriceResponse = {
+ data: {
+ [id in CoingeckoIdType]: Record
+ }
+}
+
+export const fetchCryptoCurrencyPriceUSD = async (
+ coingeckoId: CoingeckoIdType,
+): Promise => {
+ const response: CoingeckoSimplePriceResponse = await axios.get(
+ `${coingeckoApiURL}/simple/price?ids=${coingeckoId}&vs_currencies=usd`,
+ )
+
+ return response.data[coingeckoId].usd
+}
diff --git a/dapp/src/utils/index.ts b/dapp/src/utils/index.ts
index 865b6211e..cb7034c47 100644
--- a/dapp/src/utils/index.ts
+++ b/dapp/src/utils/index.ts
@@ -5,5 +5,6 @@ export * from "./currency"
export * from "./chain"
export * from "./text"
export * from "./time"
-export * from "./async"
+export * from "./promise"
+export * from "./exchangeApi"
export * from "./verifyDepositAddress"
diff --git a/dapp/src/utils/promise.ts b/dapp/src/utils/promise.ts
new file mode 100644
index 000000000..22f13c622
--- /dev/null
+++ b/dapp/src/utils/promise.ts
@@ -0,0 +1,12 @@
+/**
+ * If the promise fails, log the underlying error but maintain the failed
+ * promise.
+ *
+ * Does nothing to successful promises.
+ */
+export function logPromiseFailure(promise: Promise) {
+ promise.catch((error) => {
+ console.error(error)
+ throw error
+ })
+}
diff --git a/netlify.toml b/netlify.toml
new file mode 100644
index 000000000..c21afb386
--- /dev/null
+++ b/netlify.toml
@@ -0,0 +1,2 @@
+[build]
+ ignore = "git diff --quiet $CACHED_COMMIT_REF $COMMIT_REF ':(exclude).github/' ':(exclude).vscode/' ':(exclude)core/' ':(exclude).git-blame-ignore-revs' ':(exclude).gitignore' ':(exclude).npmrc' ':(exclude).nvmrc' ':(exclude).pre-commit-config.yaml' ':(exclude).prettierignore' ':(exclude).prettierrc.js' ':(exclude).syncpackrc' ':(exclude)LICENSE' ':(exclude)README.md'"
\ No newline at end of file
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index df065c1f5..32f507858 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -10,7 +10,7 @@ importers:
devDependencies:
'@thesis/prettier-config':
specifier: github:thesis/prettier-config
- version: github.com/thesis/prettier-config/daeaac564056a7885e4366ce12bfde6fd823fc90(prettier@3.1.0)
+ version: github.com/thesis/prettier-config/daeaac564056a7885e4366ce12bfde6fd823fc90(prettier@3.1.0)(prettier@3.1.0)(prettier@3.1.0)
prettier:
specifier: ^3.1.0
version: 3.1.0
@@ -56,7 +56,7 @@ importers:
version: 2.4.1(@nomicfoundation/hardhat-ethers@3.0.5)(@nomicfoundation/hardhat-verify@2.0.1)(ethers@6.8.1)(hardhat@2.19.1)
'@thesis-co/eslint-config':
specifier: github:thesis/eslint-config#7b9bc8c
- version: github.com/thesis/eslint-config/7b9bc8c(eslint@8.54.0)(prettier@3.1.0)(typescript@5.3.2)
+ version: github.com/thesis/eslint-config/7b9bc8c(eslint@8.54.0)(prettier@3.1.0)(typescript@5.3.2)(eslint@8.54.0)(prettier@3.1.0)(typescript@5.3.2)(eslint@8.54.0)(prettier@3.1.0)(typescript@5.3.2)
'@typechain/ethers-v6':
specifier: ^0.5.1
version: 0.5.1(ethers@6.8.1)(typechain@8.3.2)(typescript@5.3.2)
@@ -104,7 +104,7 @@ importers:
version: 4.0.0
solhint-config-thesis:
specifier: github:thesis/solhint-config
- version: github.com/thesis/solhint-config/266de12d96d58f01171e20858b855ec80520de8d(solhint@4.0.0)
+ version: github.com/thesis/solhint-config/266de12d96d58f01171e20858b855ec80520de8d(solhint@4.0.0)(solhint@4.0.0)(solhint@4.0.0)
solidity-coverage:
specifier: ^0.8.5
version: 0.8.5(hardhat@2.19.1)
@@ -141,6 +141,9 @@ importers:
'@ledgerhq/wallet-api-client-react':
specifier: ^1.3.0
version: 1.3.0(react@18.2.0)
+ '@reduxjs/toolkit':
+ specifier: ^2.2.0
+ version: 2.2.1(react-redux@9.1.0)(react@18.2.0)
'@sentry/react':
specifier: ^7.98.0
version: 7.98.0(react@18.2.0)
@@ -155,7 +158,7 @@ importers:
version: 0.23.13
axios:
specifier: ^1.6.7
- version: 1.6.7
+ version: 1.6.7(debug@4.3.4)
ethers:
specifier: ^6.10.0
version: 6.10.0
@@ -174,6 +177,9 @@ importers:
react-number-format:
specifier: ^5.3.1
version: 5.3.1(react-dom@18.2.0)(react@18.2.0)
+ react-redux:
+ specifier: ^9.1.0
+ version: 9.1.0(@types/react@18.2.38)(react@18.2.0)(redux@5.0.1)
react-router-dom:
specifier: ^6.22.0
version: 6.22.0(react-dom@18.2.0)(react@18.2.0)
@@ -186,7 +192,7 @@ importers:
devDependencies:
'@thesis-co/eslint-config':
specifier: github:thesis/eslint-config#7b9bc8c
- version: github.com/thesis/eslint-config/7b9bc8c(eslint@8.54.0)(prettier@3.1.0)(typescript@5.3.2)
+ version: github.com/thesis/eslint-config/7b9bc8c(eslint@8.54.0)(prettier@3.1.0)(typescript@5.3.2)(eslint@8.54.0)(prettier@3.1.0)(typescript@5.3.2)(eslint@8.54.0)(prettier@3.1.0)(typescript@5.3.2)
'@types/react':
specifier: ^18.2.38
version: 18.2.38
@@ -241,7 +247,7 @@ importers:
version: 7.23.7(@babel/core@7.23.3)
'@thesis-co/eslint-config':
specifier: github:thesis/eslint-config#7b9bc8c
- version: github.com/thesis/eslint-config/7b9bc8c(eslint@8.54.0)(prettier@3.1.0)(typescript@5.3.2)
+ version: github.com/thesis/eslint-config/7b9bc8c(eslint@8.54.0)(prettier@3.1.0)(typescript@5.3.2)(eslint@8.54.0)(prettier@3.1.0)(typescript@5.3.2)(eslint@8.54.0)(prettier@3.1.0)(typescript@5.3.2)
'@types/jest':
specifier: ^29.5.11
version: 29.5.11
@@ -290,7 +296,7 @@ importers:
devDependencies:
'@thesis-co/eslint-config':
specifier: github:thesis/eslint-config#7b9bc8c
- version: github.com/thesis/eslint-config/7b9bc8c(eslint@8.54.0)(prettier@3.1.0)(typescript@5.3.2)
+ version: github.com/thesis/eslint-config/7b9bc8c(eslint@8.54.0)(prettier@3.1.0)(typescript@5.3.2)(eslint@8.54.0)(prettier@3.1.0)(typescript@5.3.2)(eslint@8.54.0)(prettier@3.1.0)(typescript@5.3.2)
'@types/node':
specifier: ^20.9.4
version: 20.9.4
@@ -340,7 +346,6 @@ packages:
/@ardatan/relay-compiler@12.0.0(graphql@16.8.1):
resolution: {integrity: sha512-9anThAaj1dQr6IGmzBMcfzOQKTa5artjuPmw8NYK/fiGEMjADbSguBY2FMDykt+QhilR3wc9VA/3yVju7JHg7Q==}
- hasBin: true
peerDependencies:
graphql: '*'
dependencies:
@@ -431,7 +436,7 @@ packages:
'@babel/traverse': 7.23.4
'@babel/types': 7.23.4
convert-source-map: 2.0.0
- debug: 4.3.4
+ debug: 4.3.4(supports-color@8.1.1)
gensync: 1.0.0-beta.2
json5: 2.2.3
semver: 6.3.1
@@ -685,7 +690,6 @@ packages:
/@babel/parser@7.23.4:
resolution: {integrity: sha512-vf3Xna6UEprW+7t6EtOmFpHNAuxw3xqPZghy+brsnusscJRW5BMUzzHZc5ICjULee81WeUV2jjakG09MDglJXQ==}
engines: {node: '>=6.0.0'}
- hasBin: true
dependencies:
'@babel/types': 7.23.4
@@ -722,7 +726,6 @@ packages:
/@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.23.3):
resolution: {integrity: sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==}
engines: {node: '>=6.9.0'}
- deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead.
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
@@ -733,7 +736,6 @@ packages:
/@babel/plugin-proposal-nullish-coalescing-operator@7.18.6(@babel/core@7.23.3):
resolution: {integrity: sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==}
engines: {node: '>=6.9.0'}
- deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead.
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
@@ -744,7 +746,6 @@ packages:
/@babel/plugin-proposal-numeric-separator@7.18.6(@babel/core@7.23.3):
resolution: {integrity: sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==}
engines: {node: '>=6.9.0'}
- deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-numeric-separator instead.
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
@@ -755,7 +756,6 @@ packages:
/@babel/plugin-proposal-object-rest-spread@7.20.7(@babel/core@7.23.3):
resolution: {integrity: sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==}
engines: {node: '>=6.9.0'}
- deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-object-rest-spread instead.
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
@@ -769,7 +769,6 @@ packages:
/@babel/plugin-proposal-optional-chaining@7.21.0(@babel/core@7.23.3):
resolution: {integrity: sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==}
engines: {node: '>=6.9.0'}
- deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead.
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
@@ -1730,7 +1729,7 @@ packages:
'@babel/helper-split-export-declaration': 7.22.6
'@babel/parser': 7.23.4
'@babel/types': 7.23.4
- debug: 4.3.4
+ debug: 4.3.4(supports-color@8.1.1)
globals: 11.12.0
transitivePeerDependencies:
- supports-color
@@ -1756,7 +1755,6 @@ packages:
/@builder.io/partytown@0.7.6:
resolution: {integrity: sha512-snXIGNiZpqjno3XYQN2lbBB+05hsQR/LSttbtIW1c0gmZ7Kh/DIo0YrxlDxCDulAMFPFM8J+4voLwvYepSj3sw==}
- hasBin: true
/@celo/base@1.5.2:
resolution: {integrity: sha512-KGf6Dl9E6D01vAfkgkjL2sG+zqAjspAogILIpWstljWdG5ifyA75jihrnDEHaMCoQS0KxHvTdP1XYS/GS6BEyQ==}
@@ -1782,7 +1780,6 @@ packages:
/@celo/contractkit@0.3.8:
resolution: {integrity: sha512-lEXciI3tYnDKNdyazW6etR/ZFm0wrNlX1OxNgzv5D8HCPJcFSUF3Bi4fYtL/Ocx2oHNpK4k3eDZ6aj+ZbkRC+Q==}
engines: {node: '>=8.13.0'}
- deprecated: Versions less than 5.1 are deprecated and will no longer be able to submit transactions to celo in a future hardfork
dependencies:
'@celo/utils': 0.1.11
'@ledgerhq/hw-app-eth': 5.53.0
@@ -1810,7 +1807,6 @@ packages:
/@celo/contractkit@1.5.2:
resolution: {integrity: sha512-b0r5TlfYDEscxze1Ai2jyJayiVElA9jvEehMD6aOSNtVhfP8oirjFIIffRe0Wzw1MSDGkw+q1c4m0Yw5sEOlvA==}
engines: {node: '>=8.13.0'}
- deprecated: Versions less than 5.1 are deprecated and will no longer be able to submit transactions to celo in a future hardfork
dependencies:
'@celo/base': 1.5.2
'@celo/connect': 1.5.2(web3@1.3.6)
@@ -3455,7 +3451,7 @@ packages:
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dependencies:
ajv: 6.12.6
- debug: 4.3.4
+ debug: 4.3.4(supports-color@8.1.1)
espree: 9.6.1
globals: 13.23.0
ignore: 5.3.0
@@ -3473,7 +3469,6 @@ packages:
/@ethereumjs/rlp@4.0.1:
resolution: {integrity: sha512-tqsQiBQDQdmPWE1xkkBq4rlSW5QZpLOUJ5RJh2/9fug+q9tnUhuZoVLk7s0scUIKTOzEtR72DFBXI4WiZcMpvw==}
engines: {node: '>=14'}
- hasBin: true
dev: true
/@ethereumjs/util@8.1.0:
@@ -4044,7 +4039,7 @@ packages:
engines: {node: '>=10.10.0'}
dependencies:
'@humanwhocodes/object-schema': 2.0.1
- debug: 4.3.4
+ debug: 4.3.4(supports-color@8.1.1)
minimatch: 3.1.2
transitivePeerDependencies:
- supports-color
@@ -4917,7 +4912,6 @@ packages:
/@nomicfoundation/ethereumjs-rlp@5.0.2:
resolution: {integrity: sha512-QwmemBc+MMsHJ1P1QvPl8R8p2aPvvVcKBbvHnQOKBpBztEo0omN0eaob6FeZS/e3y9NSe+mfu3nNFBHszqkjTA==}
engines: {node: '>=14'}
- hasBin: true
dev: true
/@nomicfoundation/ethereumjs-statemanager@2.0.2:
@@ -5298,7 +5292,6 @@ packages:
/@openzeppelin/hardhat-upgrades@2.4.1(@nomicfoundation/hardhat-ethers@3.0.5)(@nomicfoundation/hardhat-verify@2.0.1)(ethers@6.8.1)(hardhat@2.19.1):
resolution: {integrity: sha512-IF1nQ0Jbi9bUqGWAAaX6zP5CY5tgTM3jF+ipXXatPYLooFzyGbkk7wHHWzi/+9Rx64Ar7XQVtGlwVdAohMuRcw==}
- hasBin: true
peerDependencies:
'@nomicfoundation/hardhat-ethers': ^3.0.0
'@nomicfoundation/hardhat-verify': ^1.1.0
@@ -5331,7 +5324,6 @@ packages:
/@openzeppelin/upgrades-core@1.31.1:
resolution: {integrity: sha512-BdkTZwvBxgZ9BYYfhOhuivmqZLOZ/bm6mK5eEDZ36I3Fy64a9BDL/NusaDV5XAoGn4La/j9dZSbTtgP/6d8jAQ==}
- hasBin: true
dependencies:
cbor: 9.0.1
chalk: 4.1.2
@@ -5347,7 +5339,6 @@ packages:
/@openzeppelin/upgrades@2.8.0:
resolution: {integrity: sha512-LzjTQPeljPsgHDPdZyH9cMCbIHZILgd2cpNcYEkdsC2IylBYRHShlbEDXJV9snnqg9JWfzPiKIqyj3XVliwtqQ==}
- deprecated: The OpenZeppelin SDK is no longer being developed. For smart contract upgrades check out the OpenZeppelin Upgrades Plugins. https://zpl.in/upgrades-plugins
dependencies:
'@types/cbor': 2.0.0
axios: 0.18.1
@@ -5862,6 +5853,25 @@ packages:
resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==}
dev: false
+ /@reduxjs/toolkit@2.2.1(react-redux@9.1.0)(react@18.2.0):
+ resolution: {integrity: sha512-8CREoqJovQW/5I4yvvijm/emUiCCmcs4Ev4XPWd4mizSO+dD3g5G6w34QK5AGeNrSH7qM8Fl66j4vuV7dpOdkw==}
+ peerDependencies:
+ react: ^16.9.0 || ^17.0.0 || ^18
+ react-redux: ^7.2.1 || ^8.1.3 || ^9.0.0
+ peerDependenciesMeta:
+ react:
+ optional: true
+ react-redux:
+ optional: true
+ dependencies:
+ immer: 10.0.3
+ react: 18.2.0
+ react-redux: 9.1.0(@types/react@18.2.38)(react@18.2.0)(redux@5.0.1)
+ redux: 5.0.1
+ redux-thunk: 3.1.0(redux@5.0.1)
+ reselect: 5.1.0
+ dev: false
+
/@remix-run/router@1.15.0:
resolution: {integrity: sha512-HOil5aFtme37dVQTB6M34G95kPM3MMuqSmIRVCC52eKV+Y/tGSqw9P3rWhlAx6A+mz+MoX+XxsGsNJbaI5qCgQ==}
engines: {node: '>=14.0.0'}
@@ -6512,7 +6522,6 @@ packages:
/@types/bignumber.js@5.0.0:
resolution: {integrity: sha512-0DH7aPGCClywOFaxxjE6UwpN2kQYe9LwuDQMv+zYA97j5GkOMo8e66LYT+a8JYU7jfmUFRZLa9KycxHDsKXJCA==}
- deprecated: This is a stub types definition for bignumber.js (https://github.com/MikeMcl/bignumber.js/). bignumber.js provides its own type definitions, so you don't need @types/bignumber.js installed!
dependencies:
bignumber.js: 9.1.2
dev: false
@@ -6892,6 +6901,10 @@ packages:
/@types/tmp@0.0.33:
resolution: {integrity: sha512-gVC1InwyVrO326wbBZw+AO3u2vRXz/iRWq9jYhpG4W8LXyIgDv3ZmcLQ5Q4Gs+gFMyqx+viFoFT+l3p61QFCmQ==}
+ /@types/use-sync-external-store@0.0.3:
+ resolution: {integrity: sha512-EwmlvuaxPNej9+T4v5AuBPJa2x2UOJVdjCtDHgcDqitUeOtjnJKJ+apYjVcAoBEMjKW1VVFGZLUb5+qqa09XFA==}
+ dev: false
+
/@types/utf8@2.1.6:
resolution: {integrity: sha512-pRs2gYF5yoKYrgSaira0DJqVg2tFuF+Qjp838xS7K+mJyY2jJzjsrl6y17GbIa4uMRogMbxs+ghNCvKg6XyNrA==}
dev: false
@@ -6953,7 +6966,7 @@ packages:
'@typescript-eslint/type-utils': 6.12.0(eslint@8.54.0)(typescript@5.3.2)
'@typescript-eslint/utils': 6.12.0(eslint@8.54.0)(typescript@5.3.2)
'@typescript-eslint/visitor-keys': 6.12.0
- debug: 4.3.4
+ debug: 4.3.4(supports-color@8.1.1)
eslint: 8.54.0
graphemer: 1.4.0
ignore: 5.3.0
@@ -6998,7 +7011,7 @@ packages:
'@typescript-eslint/types': 6.12.0
'@typescript-eslint/typescript-estree': 6.12.0(typescript@5.3.2)
'@typescript-eslint/visitor-keys': 6.12.0
- debug: 4.3.4
+ debug: 4.3.4(supports-color@8.1.1)
eslint: 8.54.0
typescript: 5.3.2
transitivePeerDependencies:
@@ -7049,7 +7062,7 @@ packages:
dependencies:
'@typescript-eslint/typescript-estree': 6.12.0(typescript@5.3.2)
'@typescript-eslint/utils': 6.12.0(eslint@8.54.0)(typescript@5.3.2)
- debug: 4.3.4
+ debug: 4.3.4(supports-color@8.1.1)
eslint: 8.54.0
ts-api-utils: 1.0.3(typescript@5.3.2)
typescript: 5.3.2
@@ -7096,7 +7109,7 @@ packages:
dependencies:
'@typescript-eslint/types': 6.12.0
'@typescript-eslint/visitor-keys': 6.12.0
- debug: 4.3.4
+ debug: 4.3.4(supports-color@8.1.1)
globby: 11.1.0
is-glob: 4.0.3
semver: 7.5.4
@@ -7183,7 +7196,6 @@ packages:
/@web3-js/scrypt-shim@0.1.0:
resolution: {integrity: sha512-ZtZeWCc/s0nMcdx/+rZwY1EcuRdemOK9ag21ty9UsHkFxsNb/AaoucUz0iPuyGe0Ku+PFuRmWZG7Z7462p9xPw==}
- deprecated: This package is deprecated, for a pure JS implementation please use scrypt-js
requiresBuild: true
dependencies:
scryptsy: 2.1.0
@@ -7193,7 +7205,6 @@ packages:
/@web3-js/websocket@1.0.30:
resolution: {integrity: sha512-fDwrD47MiDrzcJdSeTLF75aCcxVVt8B1N74rA+vh2XCAvFy4tEWJjtnUtj2QG7/zlQ6g9cQ88bZFBxwd9/FmtA==}
engines: {node: '>=0.10.0'}
- deprecated: The branch for this fork was merged upstream, please update your package to websocket@1.0.31
requiresBuild: true
dependencies:
debug: 2.6.9
@@ -7377,17 +7388,14 @@ packages:
/acorn@6.4.2:
resolution: {integrity: sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==}
engines: {node: '>=0.4.0'}
- hasBin: true
/acorn@7.4.1:
resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==}
engines: {node: '>=0.4.0'}
- hasBin: true
/acorn@8.11.2:
resolution: {integrity: sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==}
engines: {node: '>=0.4.0'}
- hasBin: true
/address@1.2.2:
resolution: {integrity: sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==}
@@ -7494,7 +7502,6 @@ packages:
/ansi-html-community@0.0.8:
resolution: {integrity: sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==}
engines: {'0': node >= 0.8.0}
- hasBin: true
/ansi-regex@2.1.1:
resolution: {integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==}
@@ -7771,7 +7778,6 @@ packages:
/autoprefixer@10.4.16(postcss@8.4.31):
resolution: {integrity: sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==}
engines: {node: ^10 || ^12 || >=14}
- hasBin: true
peerDependencies:
postcss: ^8.1.0
dependencies:
@@ -7801,7 +7807,6 @@ packages:
/axios@0.18.1:
resolution: {integrity: sha512-0BfJq4NSfQXd+SkFdrvFbG7addhYSBA2mQwISr46pD6E5iqkWg02RAs8vyTT/j0RTnoYmeXauBuSv1qKwR179g==}
- deprecated: Critical security vulnerability fixed in v0.21.1. For more information, see https://github.com/axios/axios/pull/3410
dependencies:
follow-redirects: 1.5.10
is-buffer: 2.0.5
@@ -7816,16 +7821,6 @@ packages:
transitivePeerDependencies:
- debug
- /axios@1.6.7:
- resolution: {integrity: sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA==}
- dependencies:
- follow-redirects: 1.15.5
- form-data: 4.0.0
- proxy-from-env: 1.1.0
- transitivePeerDependencies:
- - debug
- dev: false
-
/axios@1.6.7(debug@4.3.4):
resolution: {integrity: sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA==}
dependencies:
@@ -7834,7 +7829,6 @@ packages:
proxy-from-env: 1.1.0
transitivePeerDependencies:
- debug
- dev: true
/axobject-query@3.2.1:
resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==}
@@ -7843,7 +7837,6 @@ packages:
/b4a@1.6.4:
resolution: {integrity: sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw==}
- requiresBuild: true
/babel-eslint@10.1.0(eslint@8.54.0):
resolution: {integrity: sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg==}
@@ -8242,7 +8235,6 @@ packages:
/bl@4.1.0:
resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==}
- requiresBuild: true
dependencies:
buffer: 5.7.1
inherits: 2.0.4
@@ -8402,7 +8394,6 @@ packages:
/browserslist@4.22.1:
resolution: {integrity: sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==}
engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
- hasBin: true
dependencies:
caniuse-lite: 1.0.30001564
electron-to-chromium: 1.4.592
@@ -8412,7 +8403,6 @@ packages:
/browserslist@4.22.2:
resolution: {integrity: sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==}
engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
- hasBin: true
dependencies:
caniuse-lite: 1.0.30001574
electron-to-chromium: 1.4.622
@@ -8499,7 +8489,6 @@ packages:
/buffer@5.7.1:
resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==}
- requiresBuild: true
dependencies:
base64-js: 1.5.1
ieee754: 1.2.1
@@ -8668,7 +8657,6 @@ packages:
/cbor@4.3.0:
resolution: {integrity: sha512-CvzaxQlaJVa88sdtTWvLJ++MbdtPHtZOBBNjm7h3YKUHILMs9nQyD4AC6hvFZy7GBVB3I6bRibJcxeHydyT2IQ==}
engines: {node: '>=6.0.0'}
- hasBin: true
dependencies:
bignumber.js: 9.1.2
commander: 3.0.2
@@ -8803,7 +8791,6 @@ packages:
/chownr@1.1.4:
resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==}
- requiresBuild: true
/chrome-trace-event@1.0.3:
resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==}
@@ -8820,7 +8807,6 @@ packages:
/cids@0.7.5:
resolution: {integrity: sha512-zT7mPeghoWAu+ppn8+BS1tQ5qGmbMfB4AregnQjA/qHY3GC1m1ptI9GkWNlgeu38r7CuRdXB47uY2XgAYt6QVA==}
engines: {node: '>=4.0.0', npm: '>=3.0.0'}
- deprecated: This module has been superseded by the multiformats module
dependencies:
buffer: 5.7.1
class-is: 1.1.0
@@ -8997,7 +8983,6 @@ packages:
/color-string@1.9.1:
resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==}
- requiresBuild: true
dependencies:
color-name: 1.1.4
simple-swizzle: 0.2.2
@@ -9009,7 +8994,6 @@ packages:
/color@4.2.3:
resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==}
engines: {node: '>=12.5.0'}
- requiresBuild: true
dependencies:
color-convert: 2.0.1
color-string: 1.9.1
@@ -9281,7 +9265,6 @@ packages:
/crc-32@1.2.2:
resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==}
engines: {node: '>=0.8'}
- hasBin: true
dev: true
/create-ecdh@4.0.4:
@@ -9292,7 +9275,6 @@ packages:
/create-gatsby@3.12.3:
resolution: {integrity: sha512-N0K/Z/MD5LMRJcBy669WpSgrn+31zBV72Lv0RHolX0fXa77Yx58HsEiLWz83j/dtciGMQfEOEHFRetUqZhOggA==}
- hasBin: true
dependencies:
'@babel/runtime': 7.23.4
@@ -9318,7 +9300,6 @@ packages:
/create-jest@29.7.0(@types/node@20.9.4)(ts-node@10.9.1):
resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
- hasBin: true
dependencies:
'@jest/types': 29.6.3
chalk: 4.1.2
@@ -9477,7 +9458,6 @@ packages:
/cssesc@3.0.0:
resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
engines: {node: '>=4'}
- hasBin: true
/cssnano-preset-default@5.2.14(postcss@8.4.31):
resolution: {integrity: sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==}
@@ -9689,17 +9669,6 @@ packages:
dependencies:
ms: 2.1.3
- /debug@4.3.4:
- resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
- engines: {node: '>=6.0'}
- peerDependencies:
- supports-color: '*'
- peerDependenciesMeta:
- supports-color:
- optional: true
- dependencies:
- ms: 2.1.2
-
/debug@4.3.4(supports-color@8.1.1):
resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
engines: {node: '>=6.0'}
@@ -9916,12 +9885,10 @@ packages:
/detect-libc@1.0.3:
resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==}
engines: {node: '>=0.10'}
- hasBin: true
/detect-libc@2.0.2:
resolution: {integrity: sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==}
engines: {node: '>=8'}
- requiresBuild: true
/detect-newline@3.1.0:
resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==}
@@ -9935,7 +9902,6 @@ packages:
/detect-port-alt@1.1.6:
resolution: {integrity: sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==}
engines: {node: '>= 4.2.1'}
- hasBin: true
dependencies:
address: 1.2.2
debug: 2.6.9
@@ -9944,7 +9910,6 @@ packages:
/detect-port@1.5.1:
resolution: {integrity: sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ==}
- hasBin: true
dependencies:
address: 1.2.2
debug: 4.3.4(supports-color@8.1.1)
@@ -10178,7 +10143,6 @@ packages:
/end-of-stream@1.4.4:
resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==}
- requiresBuild: true
dependencies:
once: 1.4.0
@@ -10247,7 +10211,6 @@ packages:
/envinfo@7.11.0:
resolution: {integrity: sha512-G9/6xF1FPbIw0TtalAMaVPpiq2aDEuKLXM314jPVAO9r2fo2a4BLqMNkmRS7O/xPPZ+COAhGIz3ETvHEV3eUcg==}
engines: {node: '>=4'}
- hasBin: true
/eol@0.9.1:
resolution: {integrity: sha512-Ds/TEoZjwggRoz/Q2O7SE3i4Jm66mqTDfmdHdq/7DKVk3bro9Q8h6WdXKdPqFLMoqxrDK5SVRzHVPOS6uuGtrg==}
@@ -10388,7 +10351,6 @@ packages:
/esbuild@0.19.7:
resolution: {integrity: sha512-6brbTZVqxhqgbpqBR5MzErImcpA0SQdoKOkcWK/U30HtQxnokIpG3TX2r0IJqbFUzqLjhU/zC1S5ndgakObVCQ==}
engines: {node: '>=12'}
- hasBin: true
requiresBuild: true
optionalDependencies:
'@esbuild/android-arm': 0.19.7
@@ -10437,7 +10399,6 @@ packages:
/escodegen@1.8.1:
resolution: {integrity: sha512-yhi5S+mNTOuRvyW4gWlg5W1byMaQGWWSYHXsuFZ7GBo7tpyOwi2EdzMP/QWxh9hwkD2m+wDVHJsxhRIj+v/b/A==}
engines: {node: '>=0.12.0'}
- hasBin: true
dependencies:
esprima: 2.7.3
estraverse: 1.9.3
@@ -10499,7 +10460,6 @@ packages:
/eslint-config-prettier@9.0.0(eslint@8.54.0):
resolution: {integrity: sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw==}
- hasBin: true
peerDependencies:
eslint: '>=7.0.0'
dependencies:
@@ -10800,7 +10760,6 @@ packages:
/eslint@7.32.0:
resolution: {integrity: sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==}
engines: {node: ^10.12.0 || >=12.0.0}
- hasBin: true
dependencies:
'@babel/code-frame': 7.12.11
'@eslint/eslintrc': 0.4.3
@@ -10848,7 +10807,6 @@ packages:
/eslint@8.54.0:
resolution: {integrity: sha512-NY0DfAkM8BIZDVl6PgSa1ttZbx3xHgJzSNJKYcQglem6CppHyMhRIQkBVSSMaSRnLhig3jsDbEzOjwCVt4AmmA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
- hasBin: true
dependencies:
'@eslint-community/eslint-utils': 4.4.0(eslint@8.54.0)
'@eslint-community/regexpp': 4.10.0
@@ -10861,7 +10819,7 @@ packages:
ajv: 6.12.6
chalk: 4.1.2
cross-spawn: 7.0.3
- debug: 4.3.4
+ debug: 4.3.4(supports-color@8.1.1)
doctrine: 3.0.0
escape-string-regexp: 4.0.0
eslint-scope: 7.2.2
@@ -10910,13 +10868,11 @@ packages:
/esprima@2.7.3:
resolution: {integrity: sha512-OarPfz0lFCiW4/AV2Oy1Rp9qu0iusTKqykwTspGCZtPxmF81JR4MmIebvF1F9+UOKth2ZubLQ4XGGaU+hSn99A==}
engines: {node: '>=0.10.0'}
- hasBin: true
dev: true
/esprima@4.0.1:
resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==}
engines: {node: '>=4'}
- hasBin: true
/esquery@1.5.0:
resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==}
@@ -11071,12 +11027,10 @@ packages:
/ethereumjs-common@1.5.2:
resolution: {integrity: sha512-hTfZjwGX52GS2jcVO6E2sx4YuFnf0Fhp5ylo4pEPhEffNln7vS59Hr5sLnp3/QCazFLluuBZ+FZ6J5HTp0EqCA==}
- deprecated: 'New package name format for new versions: @ethereumjs/common. Please update.'
dev: false
/ethereumjs-tx@2.1.2:
resolution: {integrity: sha512-zZEK1onCeiORb0wyCXUvg94Ve5It/K6GD1K+26KfFKodiBiS6d9lfCXlUKGBBdQ+bv7Day+JK0tj1K+BeNFRAw==}
- deprecated: 'New package name format for new versions: @ethereumjs/tx. Please update.'
dependencies:
ethereumjs-common: 1.5.2
ethereumjs-util: 6.2.1
@@ -11304,7 +11258,6 @@ packages:
/expand-template@2.0.3:
resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==}
engines: {node: '>=6'}
- requiresBuild: true
/expect@29.7.0:
resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==}
@@ -11412,7 +11365,6 @@ packages:
/fast-fifo@1.3.2:
resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==}
- requiresBuild: true
/fast-glob@3.3.2:
resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==}
@@ -11605,7 +11557,6 @@ packages:
/flat@5.0.2:
resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==}
- hasBin: true
/flatted@3.2.9:
resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==}
@@ -11634,16 +11585,6 @@ packages:
dependencies:
debug: 4.3.4(supports-color@8.1.1)
- /follow-redirects@1.15.5:
- resolution: {integrity: sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==}
- engines: {node: '>=4.0'}
- peerDependencies:
- debug: '*'
- peerDependenciesMeta:
- debug:
- optional: true
- dev: false
-
/follow-redirects@1.15.5(debug@4.3.4):
resolution: {integrity: sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==}
engines: {node: '>=4.0'}
@@ -11654,7 +11595,6 @@ packages:
optional: true
dependencies:
debug: 4.3.4(supports-color@8.1.1)
- dev: true
/follow-redirects@1.5.10:
resolution: {integrity: sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==}
@@ -11796,7 +11736,6 @@ packages:
/fs-constants@1.0.0:
resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==}
- requiresBuild: true
/fs-exists-cached@1.0.0:
resolution: {integrity: sha512-kSxoARUDn4F2RPXX48UXnaFKwVU7Ivd/6qpzZL29MCDmr9sTvybv4gFCp+qaI4fM9m0z9fgz/yJvi56GAz+BZg==}
@@ -11912,7 +11851,6 @@ packages:
/gatsby-cli@5.12.4:
resolution: {integrity: sha512-GD+otyd5LlgSbYK4ODrKyAise/k32G7Qy7H/k+gJ2P8DCG9sU+j//2zNwF7mY8C5dl0SpROqFTL+I0Y1DK4tmQ==}
engines: {node: '>=18.0.0'}
- hasBin: true
requiresBuild: true
dependencies:
'@babel/code-frame': 7.23.4
@@ -12203,7 +12141,6 @@ packages:
/gatsby@5.12.11(babel-eslint@10.1.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.2):
resolution: {integrity: sha512-4XuN4bo6W6JnIYkvaCeV+5fKTzxv78aAgOTEW4doupP8/bD0bgLwuIHFwnvhEMHQiGdALoKukLkqhkgAShUK0w==}
engines: {node: '>=18.0.0'}
- hasBin: true
requiresBuild: true
peerDependencies:
react: ^18.0.0 || ^0.0.0
@@ -12481,7 +12418,6 @@ packages:
/ghost-testrpc@0.0.2:
resolution: {integrity: sha512-i08dAEgJ2g8z5buJIrCTduwPIhih3DP+hOCTyyryikfV8T0bNvHnGXO67i0DD1H4GBDETTclPy9njZbfluQYrQ==}
- hasBin: true
dependencies:
chalk: 2.4.2
node-emoji: 1.11.0
@@ -12495,7 +12431,6 @@ packages:
/github-from-package@0.0.0:
resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==}
- requiresBuild: true
/glob-parent@5.1.2:
resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
@@ -12780,7 +12715,6 @@ packages:
/handlebars@4.7.8:
resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==}
engines: {node: '>=0.4.7'}
- hasBin: true
dependencies:
minimist: 1.2.8
neo-async: 2.6.2
@@ -12798,7 +12732,6 @@ packages:
/har-validator@5.1.5:
resolution: {integrity: sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==}
engines: {node: '>=6'}
- deprecated: this library is no longer supported
dependencies:
ajv: 6.12.6
har-schema: 2.0.0
@@ -12866,7 +12799,6 @@ packages:
/hardhat@2.19.1(ts-node@10.9.1)(typescript@5.3.2):
resolution: {integrity: sha512-bsWa63g1GB78ZyMN08WLhFElLPA+J+pShuKD1BFO2+88g3l+BL3R07vj9deIi9dMbssxgE714Gof1dBEDGqnCw==}
- hasBin: true
peerDependencies:
ts-node: '*'
typescript: '*'
@@ -13016,7 +12948,6 @@ packages:
/he@1.2.0:
resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==}
- hasBin: true
/header-case@2.0.4:
resolution: {integrity: sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==}
@@ -13184,6 +13115,10 @@ packages:
resolution: {integrity: sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==}
engines: {node: '>= 4'}
+ /immer@10.0.3:
+ resolution: {integrity: sha512-pwupu3eWfouuaowscykeckFmVTpqbzW+rXFCX8rQLkZzM9ftBmU/++Ra+o+L27mz03zJTlyV4UUr+fdKNffo4A==}
+ dev: false
+
/immer@9.0.21:
resolution: {integrity: sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==}
@@ -13209,7 +13144,6 @@ packages:
/import-local@3.1.0:
resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==}
engines: {node: '>=8'}
- hasBin: true
dependencies:
pkg-dir: 4.2.0
resolve-cwd: 3.0.0
@@ -13333,7 +13267,6 @@ packages:
/is-arrayish@0.3.2:
resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==}
- requiresBuild: true
/is-async-function@2.0.0:
resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==}
@@ -13369,7 +13302,6 @@ packages:
/is-ci@2.0.0:
resolution: {integrity: sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==}
- hasBin: true
dependencies:
ci-info: 2.0.0
@@ -13387,12 +13319,10 @@ packages:
/is-docker@2.2.1:
resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==}
engines: {node: '>=8'}
- hasBin: true
/is-docker@3.0.0:
resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
- hasBin: true
dev: true
/is-extglob@1.0.0:
@@ -13450,7 +13380,6 @@ packages:
/is-inside-container@1.0.0:
resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==}
engines: {node: '>=14.16'}
- hasBin: true
dependencies:
is-docker: 3.0.0
dev: true
@@ -13808,7 +13737,6 @@ packages:
/jest-cli@29.7.0(@types/node@20.9.4)(ts-node@10.9.1):
resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
- hasBin: true
peerDependencies:
node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
peerDependenciesMeta:
@@ -14176,7 +14104,6 @@ packages:
/jest@29.7.0(@types/node@20.9.4)(ts-node@10.9.1):
resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
- hasBin: true
peerDependencies:
node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
peerDependenciesMeta:
@@ -14231,14 +14158,12 @@ packages:
/js-yaml@3.14.1:
resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==}
- hasBin: true
dependencies:
argparse: 1.0.10
esprima: 4.0.1
/js-yaml@4.1.0:
resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
- hasBin: true
dependencies:
argparse: 2.0.1
@@ -14248,12 +14173,10 @@ packages:
/jsesc@0.5.0:
resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==}
- hasBin: true
/jsesc@2.5.2:
resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==}
engines: {node: '>=4'}
- hasBin: true
/json-buffer@3.0.0:
resolution: {integrity: sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==}
@@ -14299,14 +14222,12 @@ packages:
/json5@1.0.2:
resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==}
- hasBin: true
dependencies:
minimist: 1.2.8
/json5@2.2.3:
resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
engines: {node: '>=6'}
- hasBin: true
/jsonfile@2.4.0:
resolution: {integrity: sha512-PKllAqbgLgxHaj8TElYymKCAgrASebJrWpTnEkOaTowt23VKXXN0sUeriJ+eh7y6ufb/CC5ap11pz71/cM0hUw==}
@@ -14616,7 +14537,6 @@ packages:
/loose-envify@1.4.0:
resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
- hasBin: true
dependencies:
js-tokens: 4.0.0
@@ -14821,7 +14741,6 @@ packages:
/miller-rabin@4.0.1:
resolution: {integrity: sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==}
- hasBin: true
dependencies:
bn.js: 4.12.0
brorand: 1.1.0
@@ -14839,12 +14758,10 @@ packages:
/mime@1.6.0:
resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==}
engines: {node: '>=4'}
- hasBin: true
/mime@3.0.0:
resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==}
engines: {node: '>=10.0.0'}
- hasBin: true
/mimic-fn@2.1.0:
resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==}
@@ -14947,12 +14864,10 @@ packages:
/mkdirp-classic@0.5.3:
resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==}
- requiresBuild: true
/mkdirp-promise@5.0.1:
resolution: {integrity: sha512-Hepn5kb1lJPtVW84RFT40YG1OddBNTOVUZR2bzQUHc+Z03en8/3uX0+060JDhcEzyO08HmipsN9DcnFMxhIL9w==}
engines: {node: '>=4'}
- deprecated: This package is broken and no longer maintained. 'mkdirp' itself supports promises now, please switch to that.
dependencies:
mkdirp: 1.0.4
dev: false
@@ -14967,14 +14882,12 @@ packages:
/mkdirp@0.5.6:
resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==}
- hasBin: true
dependencies:
minimist: 1.2.8
/mkdirp@1.0.4:
resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==}
engines: {node: '>=10'}
- hasBin: true
/mnemonist@0.38.5:
resolution: {integrity: sha512-bZTFT5rrPKtPJxj8KSV0WkPyNxl72vQepqqVUAW2ARUpUSF2qXMB6jZj7hW5/k7C1rtpzqbD/IIbJwLXUjCHeg==}
@@ -14985,7 +14898,6 @@ packages:
/mocha@10.2.0:
resolution: {integrity: sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==}
engines: {node: '>= 14.0.0'}
- hasBin: true
dependencies:
ansi-colors: 4.1.1
browser-stdout: 1.3.1
@@ -15067,7 +14979,6 @@ packages:
/msgpackr-extract@3.0.2:
resolution: {integrity: sha512-SdzXp4kD/Qf8agZ9+iTu6eql0m3kWm1A2y1hkpTeVNENutaB0BwHlSvAIaMxwntmRUAUjon2V4L8Z/njd0Ct8A==}
- hasBin: true
requiresBuild: true
dependencies:
node-gyp-build-optional-packages: 5.0.7
@@ -15099,7 +15010,6 @@ packages:
/multibase@0.6.1:
resolution: {integrity: sha512-pFfAwyTjbbQgNc3G7D48JkJxWtoJoBMaR4xQUOuB8RnCgRqaYmWNFeJTTvrJ2w51bjLq2zTby6Rqj9TQ9elSUw==}
- deprecated: This module has been superseded by the multiformats module
dependencies:
base-x: 3.0.9
buffer: 5.7.1
@@ -15107,7 +15017,6 @@ packages:
/multibase@0.7.0:
resolution: {integrity: sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg==}
- deprecated: This module has been superseded by the multiformats module
dependencies:
base-x: 3.0.9
buffer: 5.7.1
@@ -15115,14 +15024,12 @@ packages:
/multicodec@0.5.7:
resolution: {integrity: sha512-PscoRxm3f+88fAtELwUnZxGDkduE2HD9Q6GHUOywQLjOGT/HAdhjLDYNZ1e7VR0s0TP0EwZ16LNUTFpoBGivOA==}
- deprecated: This module has been superseded by the multiformats module
dependencies:
varint: 5.0.2
dev: false
/multicodec@1.0.4:
resolution: {integrity: sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg==}
- deprecated: This module has been superseded by the multiformats module
dependencies:
buffer: 5.7.1
varint: 5.0.2
@@ -15158,17 +15065,14 @@ packages:
/nanoid@3.3.3:
resolution: {integrity: sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==}
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
- hasBin: true
dev: true
/nanoid@3.3.7:
resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==}
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
- hasBin: true
/napi-build-utils@1.0.2:
resolution: {integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==}
- requiresBuild: true
/napi-macros@2.2.2:
resolution: {integrity: sha512-hmEVtAGYzVQpCKdbQea4skABsdXW4RUh5t5mJ2zzqowJS2OyXZTU1KhDVFhx+NlWZ4ap9mqR9TcDO3LTTttd+g==}
@@ -15202,7 +15106,6 @@ packages:
/node-abi@3.51.0:
resolution: {integrity: sha512-SQkEP4hmNWjlniS5zdnfIXTk1x7Ome85RDzHlTbBtzE97Gfwz/Ipw4v/Ryk20DWIy3yCNVLVlGKApCnmvYoJbA==}
engines: {node: '>=10'}
- requiresBuild: true
dependencies:
semver: 7.5.4
@@ -15214,7 +15117,6 @@ packages:
/node-addon-api@6.1.0:
resolution: {integrity: sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==}
- requiresBuild: true
/node-addon-api@7.0.0:
resolution: {integrity: sha512-vgbBJTS4m5/KkE16t5Ly0WW9hz46swAstv0hYYwMtbG7AznRhNyfLRe8HZAiWIpcHzoO7HxhLuBQj9rJ/Ho0ZA==}
@@ -15250,17 +15152,14 @@ packages:
/node-gyp-build-optional-packages@5.0.3:
resolution: {integrity: sha512-k75jcVzk5wnnc/FMxsf4udAoTEUv2jY3ycfdSd3yWu6Cnd1oee6/CfZJApyscA4FJOmdoixWwiwOyf16RzD5JA==}
- hasBin: true
/node-gyp-build-optional-packages@5.0.7:
resolution: {integrity: sha512-YlCCc6Wffkx0kHkmam79GKvDQ6x+QZkMjFGrIMxgFNILFvGSbCp2fCBC55pGTT9gVaz8Na5CLmxt/urtzRv36w==}
- hasBin: true
requiresBuild: true
optional: true
/node-gyp-build@4.7.0:
resolution: {integrity: sha512-PbZERfeFdrHQOOXiAKOY0VPbykZy90ndPKk0d+CFDegTKmWp1VgOTz2xACVbr1BjCWxrQp68CXtvNsveFhqDJg==}
- hasBin: true
/node-html-parser@5.4.2:
resolution: {integrity: sha512-RaBPP3+51hPne/OolXxcz89iYvQvKOydaqoePpOgXcrOKZhjVIzmpKZz+Hd/RBO2/zN2q6CNJhQzucVz+u3Jyw==}
@@ -15326,7 +15225,6 @@ packages:
/nopt@3.0.6:
resolution: {integrity: sha512-4GUt3kSEYmk4ITxzB/b9vaIDfUVWN/Ml1Fwl11IlnIG2iaJ9O6WXZ9SrYM9NLI8OCBieN2Y8SWC2oJV0RQ7qYg==}
- hasBin: true
dependencies:
abbrev: 1.0.9
dev: true
@@ -16307,8 +16205,6 @@ packages:
/prebuild-install@7.1.1:
resolution: {integrity: sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==}
engines: {node: '>=10'}
- hasBin: true
- requiresBuild: true
dependencies:
detect-libc: 2.0.2
expand-template: 2.0.3
@@ -16364,13 +16260,11 @@ packages:
/prettier@2.8.8:
resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==}
engines: {node: '>=10.13.0'}
- hasBin: true
dev: true
/prettier@3.1.0:
resolution: {integrity: sha512-TQLvXjq5IAibjh8EpBIkNKxO749UEWABoiIZehEPiY4GNpVdhaFKqSTu+QrlU6D2dPAfubRmtJTi4K4YkQ5eXw==}
engines: {node: '>=14'}
- hasBin: true
dev: true
/pretty-error@2.1.2:
@@ -16538,7 +16432,6 @@ packages:
/queue-tick@1.0.1:
resolution: {integrity: sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==}
- requiresBuild: true
/quick-lru@5.1.1:
resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==}
@@ -16589,7 +16482,6 @@ packages:
/rc@1.2.8:
resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==}
- hasBin: true
dependencies:
deep-extend: 0.6.0
ini: 1.3.8
@@ -16715,6 +16607,28 @@ packages:
react-dom: 18.2.0(react@18.2.0)
dev: false
+ /react-redux@9.1.0(@types/react@18.2.38)(react@18.2.0)(redux@5.0.1):
+ resolution: {integrity: sha512-6qoDzIO+gbrza8h3hjMA9aq4nwVFCKFtY2iLxCtVT38Swyy2C/dJCGBXHeHLtx6qlg/8qzc2MrhOeduf5K32wQ==}
+ peerDependencies:
+ '@types/react': ^18.2.25
+ react: ^18.0
+ react-native: '>=0.69'
+ redux: ^5.0.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ react-native:
+ optional: true
+ redux:
+ optional: true
+ dependencies:
+ '@types/react': 18.2.38
+ '@types/use-sync-external-store': 0.0.3
+ react: 18.2.0
+ redux: 5.0.1
+ use-sync-external-store: 1.2.0(react@18.2.0)
+ dev: false
+
/react-refresh@0.14.0:
resolution: {integrity: sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==}
engines: {node: '>=0.10.0'}
@@ -16958,11 +16872,23 @@ packages:
dependencies:
redux: 4.2.1
+ /redux-thunk@3.1.0(redux@5.0.1):
+ resolution: {integrity: sha512-NW2r5T6ksUKXCabzhL9z+h206HQw/NJkcLm1GPImRQ8IzfXwRGqjVhKJGauHirT0DAuyy6hjdnMZaRoAcy0Klw==}
+ peerDependencies:
+ redux: ^5.0.0
+ dependencies:
+ redux: 5.0.1
+ dev: false
+
/redux@4.2.1:
resolution: {integrity: sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==}
dependencies:
'@babel/runtime': 7.23.4
+ /redux@5.0.1:
+ resolution: {integrity: sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==}
+ dev: false
+
/reflect.getprototypeof@1.0.4:
resolution: {integrity: sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw==}
engines: {node: '>= 0.4'}
@@ -17031,7 +16957,6 @@ packages:
/regjsparser@0.9.1:
resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==}
- hasBin: true
dependencies:
jsesc: 0.5.0
@@ -17073,7 +16998,6 @@ packages:
/request@2.88.2:
resolution: {integrity: sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==}
engines: {node: '>= 6'}
- deprecated: request has been deprecated, see https://github.com/request/request/issues/3142
dependencies:
aws-sign2: 0.7.0
aws4: 1.12.0
@@ -17111,6 +17035,10 @@ packages:
/require-package-name@2.0.1:
resolution: {integrity: sha512-uuoJ1hU/k6M0779t3VMVIYpb2VMJk05cehCaABFhXaibcbvfgR8wKiozLjVFSzJPmQMRqIcO0HMyTFqfV09V6Q==}
+ /reselect@5.1.0:
+ resolution: {integrity: sha512-aw7jcGLDpSgNDyWBQLv2cedml85qd95/iszJjN988zX1t7AVRJi19d9kto5+W7oCfQ94gyo40dVbT6g2k4/kXg==}
+ dev: false
+
/resize-observer-polyfill@1.5.1:
resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==}
dev: false
@@ -17154,7 +17082,6 @@ packages:
/resolve@1.22.8:
resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==}
- hasBin: true
dependencies:
is-core-module: 2.13.1
path-parse: 1.0.7
@@ -17162,7 +17089,6 @@ packages:
/resolve@2.0.0-next.5:
resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==}
- hasBin: true
dependencies:
is-core-module: 2.13.1
path-parse: 1.0.7
@@ -17207,13 +17133,11 @@ packages:
/rimraf@2.7.1:
resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==}
- hasBin: true
dependencies:
glob: 7.2.3
/rimraf@3.0.2:
resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
- hasBin: true
dependencies:
glob: 7.2.3
@@ -17225,14 +17149,12 @@ packages:
/rlp@2.2.7:
resolution: {integrity: sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ==}
- hasBin: true
dependencies:
bn.js: 5.2.1
/rollup@4.5.1:
resolution: {integrity: sha512-0EQribZoPKpb5z1NW/QYm3XSR//Xr8BeEXU49Lc/mQmpmVVG5jPUVrpc2iptup/0WMrY9mzas0fxH+TjYvG2CA==}
engines: {node: '>=18.0.0', npm: '>=8.0.0'}
- hasBin: true
optionalDependencies:
'@rollup/rollup-android-arm-eabi': 4.5.1
'@rollup/rollup-android-arm64': 4.5.1
@@ -17314,7 +17236,6 @@ packages:
/sc-istanbul@0.4.6:
resolution: {integrity: sha512-qJFF/8tW/zJsbyfh/iT/ZM5QNHE3CXxtLJbZsL+CzdJLBsPD7SedJZoUA4d8iAcN2IoMp/Dx80shOOd2x96X/g==}
- hasBin: true
dependencies:
abbrev: 1.0.9
async: 1.5.2
@@ -17387,23 +17308,19 @@ packages:
/seek-bzip@1.0.6:
resolution: {integrity: sha512-e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ==}
- hasBin: true
dependencies:
commander: 2.20.3
dev: false
/semver@5.7.2:
resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==}
- hasBin: true
/semver@6.3.1:
resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
- hasBin: true
/semver@7.5.4:
resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==}
engines: {node: '>=10'}
- hasBin: true
dependencies:
lru-cache: 6.0.0
@@ -17506,7 +17423,6 @@ packages:
/sha.js@2.4.11:
resolution: {integrity: sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==}
- hasBin: true
dependencies:
inherits: 2.0.4
safe-buffer: 5.2.1
@@ -17567,7 +17483,6 @@ packages:
/shelljs@0.8.5:
resolution: {integrity: sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==}
engines: {node: '>=4'}
- hasBin: true
dependencies:
glob: 7.2.3
interpret: 1.4.0
@@ -17589,7 +17504,6 @@ packages:
/simple-concat@1.0.1:
resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==}
- requiresBuild: true
/simple-get@2.8.2:
resolution: {integrity: sha512-Ijd/rV5o+mSBBs4F/x9oDPtTx9Zb6X9brmnXvMW4J7IR15ngi9q5xxqWBKU744jTZiaXtxaPL7uHG6vtN8kUkw==}
@@ -17601,7 +17515,6 @@ packages:
/simple-get@4.0.1:
resolution: {integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==}
- requiresBuild: true
dependencies:
decompress-response: 6.0.0
once: 1.4.0
@@ -17609,7 +17522,6 @@ packages:
/simple-swizzle@0.2.2:
resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==}
- requiresBuild: true
dependencies:
is-arrayish: 0.3.2
@@ -17687,7 +17599,6 @@ packages:
/solc@0.7.3(debug@4.3.4):
resolution: {integrity: sha512-GAsWNAjGzIDg7VxzP6mPjdurby3IkGCjQcM8GFYZT6RyaoUZKmMU6Y7YwG+tFGhv7dwZ8rmR4iwFDrrD99JwqA==}
engines: {node: '>=8.0.0'}
- hasBin: true
dependencies:
command-exists: 1.2.9
commander: 3.0.2
@@ -17704,7 +17615,6 @@ packages:
/solhint@4.0.0:
resolution: {integrity: sha512-bFViMcFvhqVd/HK3Roo7xZXX5nbujS7Bxeg5vnZc9QvH0yCWCrQ38Yrn1pbAY9tlKROc6wFr+rK1mxYgYrjZgA==}
- hasBin: true
dependencies:
'@solidity-parser/parser': 0.16.2
ajv: 6.12.6
@@ -17740,7 +17650,6 @@ packages:
/solidity-coverage@0.8.5(hardhat@2.19.1):
resolution: {integrity: sha512-6C6N6OV2O8FQA0FWA95FdzVH+L16HU94iFgg5wAFZ29UpLFkgNI/DRR2HotG1bC0F4gAc/OMs2BJI44Q/DYlKQ==}
- hasBin: true
peerDependencies:
hardhat: ^2.11.0
dependencies:
@@ -17844,7 +17753,6 @@ packages:
/sshpk@1.18.0:
resolution: {integrity: sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==}
engines: {node: '>=0.10.0'}
- hasBin: true
dependencies:
asn1: 0.2.6
assert-plus: 1.0.0
@@ -17859,7 +17767,6 @@ packages:
/stable@0.1.8:
resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==}
- deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility'
/stack-trace@0.0.10:
resolution: {integrity: sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==}
@@ -17907,7 +17814,6 @@ packages:
/streamx@2.15.5:
resolution: {integrity: sha512-9thPGMkKC2GctCzyCUjME3yR03x2xNo0GPKGkRw2UMYN+gqWa9uqpyNWhmsNCutU5zHmkUum0LsCRQTXUgUCAg==}
- requiresBuild: true
dependencies:
fast-fifo: 1.3.2
queue-tick: 1.0.1
@@ -17942,7 +17848,6 @@ packages:
/string-similarity@1.2.2:
resolution: {integrity: sha512-IoHUjcw3Srl8nsPlW04U3qwWPk3oG2ffLM0tN853d/E/JlIvcmZmDY2Kz5HzKp4lEi2T7QD7Zuvjq/1rDw+XcQ==}
- deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
dependencies:
lodash.every: 4.6.0
lodash.flattendeep: 4.4.0
@@ -18080,7 +17985,6 @@ packages:
/strip-json-comments@2.0.1:
resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==}
engines: {node: '>=0.10.0'}
- requiresBuild: true
/strip-json-comments@3.1.1:
resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
@@ -18164,7 +18068,6 @@ packages:
/svgo@2.8.0:
resolution: {integrity: sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==}
engines: {node: '>=10.13.0'}
- hasBin: true
dependencies:
'@trysound/sax': 0.2.0
commander: 7.2.0
@@ -18246,7 +18149,6 @@ packages:
/syncpack@11.2.1:
resolution: {integrity: sha512-WoUtm+ZLmWUvy0cLJy8ds/smVRH3ivI6iANcGTPrsvareCc4SmRVMvr+TwjZyFm0FDGmEfMVsAX7z16+yxL6bQ==}
engines: {node: '>=16'}
- hasBin: true
dependencies:
'@effect/data': 0.17.1
'@effect/io': 0.38.0(@effect/data@0.17.1)
@@ -18297,7 +18199,6 @@ packages:
/tar-fs@2.1.1:
resolution: {integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==}
- requiresBuild: true
dependencies:
chownr: 1.1.4
mkdirp-classic: 0.5.3
@@ -18306,7 +18207,6 @@ packages:
/tar-fs@3.0.4:
resolution: {integrity: sha512-5AFQU8b9qLfZCX9zp2duONhPmZv0hGYiBPJsyUdqMjzq/mqVpy/rEUSeHk1+YitmxugaptgBh5oDGU3VsAJq4w==}
- requiresBuild: true
dependencies:
mkdirp-classic: 0.5.3
pump: 3.0.0
@@ -18328,7 +18228,6 @@ packages:
/tar-stream@2.2.0:
resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==}
engines: {node: '>=6'}
- requiresBuild: true
dependencies:
bl: 4.1.0
end-of-stream: 1.4.4
@@ -18338,7 +18237,6 @@ packages:
/tar-stream@3.1.6:
resolution: {integrity: sha512-B/UyjYwPpMBv+PaFSWAmtYjwdrlEaZQEhMIBFNC5oEG8lpiW8XjcSdmEaClj28ArfKScKHs2nshz3k2le6crsg==}
- requiresBuild: true
dependencies:
b4a: 1.6.4
fast-fifo: 1.3.2
@@ -18383,7 +18281,6 @@ packages:
/terser@5.24.0:
resolution: {integrity: sha512-ZpGR4Hy3+wBEzVEnHvstMvqpD/nABNelQn/z2r0fjVWGQsN3bpOLzQlqDxmb4CDZnXq5lpjnQ+mHQLAOpfM5iw==}
engines: {node: '>=10'}
- hasBin: true
dependencies:
'@jridgewell/source-map': 0.3.5
acorn: 8.11.2
@@ -18541,7 +18438,6 @@ packages:
/truffle-flattener@1.6.0:
resolution: {integrity: sha512-scS5Bsi4CZyvlrmD4iQcLHTiG2RQFUXVheTgWeH6PuafmI+Lk5U87Es98loM3w3ImqC9/fPHq+3QIXbcPuoJ1Q==}
- hasBin: true
dependencies:
'@resolver-engine/imports-fs': 0.2.2
'@solidity-parser/parser': 0.14.5
@@ -18562,7 +18458,6 @@ packages:
/ts-command-line-args@2.5.1:
resolution: {integrity: sha512-H69ZwTw3rFHb5WYpQya40YAX2/w7Ut75uUECbgBIsLmM+BNuYnxsltfyyLMxy6sEeKxgijLTnQtLd0nKd6+IYw==}
- hasBin: true
dependencies:
chalk: 4.1.2
command-line-args: 5.2.1
@@ -18581,7 +18476,6 @@ packages:
/ts-jest@29.1.1(@babel/core@7.23.3)(jest@29.7.0)(typescript@5.3.2):
resolution: {integrity: sha512-D6xjnnbP17cC85nliwGiL+tpoKN0StpgE0TeOjXQTU6MVCfsB4v7aW05CgQ/1OywGb0x/oy9hHFnN+sczTiRaA==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
- hasBin: true
peerDependencies:
'@babel/core': '>=7.0.0-beta.0 <8'
'@jest/types': ^29.0.0
@@ -18614,7 +18508,6 @@ packages:
/ts-node@10.9.1(@types/node@20.9.4)(typescript@5.3.2):
resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==}
- hasBin: true
peerDependencies:
'@swc/core': '>=1.2.50'
'@swc/wasm': '>=1.2.50'
@@ -18709,7 +18602,6 @@ packages:
/tunnel-agent@0.6.0:
resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==}
- requiresBuild: true
dependencies:
safe-buffer: 5.2.1
@@ -18777,7 +18669,6 @@ packages:
/typechain@8.3.2(typescript@5.3.2):
resolution: {integrity: sha512-x/sQYr5w9K7yv3es7jo4KTX05CLxOf7TRWwoHlrjRh8H82G64g+k7VuWPJlgMo6qrjfCulOdfBjiaDtmhFYD/Q==}
- hasBin: true
peerDependencies:
typescript: '>=4.3.0'
dependencies:
@@ -18851,7 +18742,6 @@ packages:
/typescript@5.3.2:
resolution: {integrity: sha512-6l+RyNy7oAHDfxC4FzSJcz9vnjTKxrLpDG5M2Vu4SHRVNg6xzqZp6LYSR9zjqQTu8DU/f5xwxUdADOkbrIX2gQ==}
engines: {node: '>=14.17'}
- hasBin: true
/typical@4.0.0:
resolution: {integrity: sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==}
@@ -18869,7 +18759,6 @@ packages:
/uglify-js@3.17.4:
resolution: {integrity: sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==}
engines: {node: '>=0.8.0'}
- hasBin: true
requiresBuild: true
dev: true
optional: true
@@ -18973,7 +18862,6 @@ packages:
/update-browserslist-db@1.0.13(browserslist@4.22.1):
resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==}
- hasBin: true
peerDependencies:
browserslist: '>= 4.21.0'
dependencies:
@@ -18983,7 +18871,6 @@ packages:
/update-browserslist-db@1.0.13(browserslist@4.22.2):
resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==}
- hasBin: true
peerDependencies:
browserslist: '>= 4.21.0'
dependencies:
@@ -19083,6 +18970,14 @@ packages:
tslib: 2.6.2
dev: false
+ /use-sync-external-store@1.2.0(react@18.2.0):
+ resolution: {integrity: sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==}
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
+ dependencies:
+ react: 18.2.0
+ dev: false
+
/utf-8-validate@5.0.10:
resolution: {integrity: sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==}
engines: {node: '>=6.14.2'}
@@ -19119,28 +19014,21 @@ packages:
/uuid@2.0.1:
resolution: {integrity: sha512-nWg9+Oa3qD2CQzHIP4qKUqwNfzKn8P0LtFhotaCTFchsV7ZfDhAybeip/HZVeMIpZi9JgY1E3nUlwaCmZT1sEg==}
- deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.
dev: false
/uuid@3.3.2:
resolution: {integrity: sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==}
- deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.
- hasBin: true
dev: false
/uuid@3.4.0:
resolution: {integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==}
- deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.
- hasBin: true
dev: false
/uuid@8.3.2:
resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==}
- hasBin: true
/uuid@9.0.1:
resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==}
- hasBin: true
dev: false
/v8-compile-cache-lib@3.0.1:
@@ -19227,7 +19115,6 @@ packages:
/vite@5.0.2:
resolution: {integrity: sha512-6CCq1CAJCNM1ya2ZZA7+jS2KgnhbzvxakmlIjN24cF/PXhRMzpM/z8QgsVJA/Dm5fWUWnVEsmtBoMhmerPxT0g==}
engines: {node: ^18.0.0 || >=20.0.0}
- hasBin: true
peerDependencies:
'@types/node': ^18.0.0 || >=20.0.0
less: '*'
@@ -20149,7 +20036,6 @@ packages:
/webpack@5.89.0:
resolution: {integrity: sha512-qyfIC10pOr70V+jkmud8tMfajraGCZMBWJtrmuBymQKCrLTRejBI8STDp1MCyZu/QTdZSeacCQYpYNQVOzX5kw==}
engines: {node: '>=10.13.0'}
- hasBin: true
peerDependencies:
webpack-cli: '*'
peerDependenciesMeta:
@@ -20258,14 +20144,12 @@ packages:
/which@1.3.1:
resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==}
- hasBin: true
dependencies:
isexe: 2.0.0
/which@2.0.2:
resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
engines: {node: '>= 8'}
- hasBin: true
dependencies:
isexe: 2.0.0
@@ -20707,9 +20591,9 @@ packages:
- supports-color
dev: false
- github.com/thesis/eslint-config/7b9bc8c(eslint@8.54.0)(prettier@3.1.0)(typescript@5.3.2):
+ github.com/thesis/eslint-config/7b9bc8c(eslint@8.54.0)(prettier@3.1.0)(typescript@5.3.2)(eslint@8.54.0)(prettier@3.1.0)(typescript@5.3.2)(eslint@8.54.0)(prettier@3.1.0)(typescript@5.3.2):
resolution: {tarball: https://codeload.github.com/thesis/eslint-config/tar.gz/7b9bc8c}
- id: github.com/thesis/eslint-config/7b9bc8c
+ id: github.com/thesis/eslint-config/7b9bc8c(eslint@8.54.0)(prettier@3.1.0)(typescript@5.3.2)(eslint@8.54.0)(prettier@3.1.0)(typescript@5.3.2)
name: '@thesis-co/eslint-config'
version: 0.8.0-pre
engines: {node: '>=14.0.0'}
@@ -20750,9 +20634,20 @@ packages:
prettier: 3.1.0
dev: true
- github.com/thesis/solhint-config/266de12d96d58f01171e20858b855ec80520de8d(solhint@4.0.0):
+ github.com/thesis/prettier-config/daeaac564056a7885e4366ce12bfde6fd823fc90(prettier@3.1.0)(prettier@3.1.0)(prettier@3.1.0):
+ resolution: {tarball: https://codeload.github.com/thesis/prettier-config/tar.gz/daeaac564056a7885e4366ce12bfde6fd823fc90}
+ id: github.com/thesis/prettier-config/daeaac564056a7885e4366ce12bfde6fd823fc90(prettier@3.1.0)(prettier@3.1.0)
+ name: '@thesis/prettier-config'
+ version: 0.0.2
+ peerDependencies:
+ prettier: '>=2.3.0 <4'
+ dependencies:
+ prettier: 3.1.0
+ dev: true
+
+ github.com/thesis/solhint-config/266de12d96d58f01171e20858b855ec80520de8d(solhint@4.0.0)(solhint@4.0.0)(solhint@4.0.0):
resolution: {tarball: https://codeload.github.com/thesis/solhint-config/tar.gz/266de12d96d58f01171e20858b855ec80520de8d}
- id: github.com/thesis/solhint-config/266de12d96d58f01171e20858b855ec80520de8d
+ id: github.com/thesis/solhint-config/266de12d96d58f01171e20858b855ec80520de8d(solhint@4.0.0)(solhint@4.0.0)
name: solhint-config-thesis
version: 0.1.0
engines: {node: '>=0.10.0'}