diff --git a/.changeset/chatty-plants-notice.md b/.changeset/chatty-plants-notice.md
new file mode 100644
index 000000000..7d867f599
--- /dev/null
+++ b/.changeset/chatty-plants-notice.md
@@ -0,0 +1,5 @@
+---
+'@blockchain-lab-um/dapp': minor
+---
+
+Add better popover for filtering VCs on dashboard
diff --git a/.changeset/chilled-bugs-remember.md b/.changeset/chilled-bugs-remember.md
new file mode 100644
index 000000000..ed88b7f2f
--- /dev/null
+++ b/.changeset/chilled-bugs-remember.md
@@ -0,0 +1,5 @@
+---
+'@blockchain-lab-um/masca': patch
+---
+
+Replaced @metamask/snaps-types, snaps-utils and snaps-ui with @metamask/snaps-sdk
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 0f0f14863..23741fc58 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -16,8 +16,8 @@ jobs:
secrets:
NX_CLOUD_ACCESS_TOKEN: ${{ secrets.NX_CLOUD_ACCESS_TOKEN }}
with:
- pnpm-version: 8.9.2
- node-version: 18.18.2
+ pnpm-version: 8.11.0
+ node-version: 20.10.0
number-of-agents: 4
main-branch-name: 'develop'
init-commands: |
@@ -34,5 +34,5 @@ jobs:
NX_CLOUD_ACCESS_TOKEN: ${{ secrets.NX_CLOUD_ACCESS_TOKEN }}
with:
number-of-agents: 4
- pnpm-version: 8.9.2
- node-version: 18.18.2
+ pnpm-version: 8.11.0
+ node-version: 20.10.0
diff --git a/.github/workflows/cron.yml b/.github/workflows/cron.yml
index 2fb8cf46c..45db4e6be 100644
--- a/.github/workflows/cron.yml
+++ b/.github/workflows/cron.yml
@@ -12,8 +12,8 @@ jobs:
secrets:
NX_CLOUD_ACCESS_TOKEN: ${{ secrets.NX_CLOUD_ACCESS_TOKEN }}
with:
- pnpm-version: 8.9.2
- node-version: 18.18.2
+ pnpm-version: 8.11.0
+ node-version: 20.10.0
number-of-agents: 2
main-branch-name: 'develop'
parallel-commands-on-agents: |
@@ -26,5 +26,5 @@ jobs:
NX_CLOUD_ACCESS_TOKEN: ${{ secrets.NX_CLOUD_ACCESS_TOKEN }}
with:
number-of-agents: 2
- pnpm-version: 8.9.2
- node-version: 18.18.2
+ pnpm-version: 8.11.0
+ node-version: 20.10.0
diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml
index 5ddc0f887..b9ee1c47f 100644
--- a/.github/workflows/publish.yml
+++ b/.github/workflows/publish.yml
@@ -27,12 +27,12 @@ jobs:
- name: Install pnpm
uses: pnpm/action-setup@v2
with:
- version: 8.9.2
+ version: 8.11.0
- name: Install node
uses: actions/setup-node@v3
with:
- node-version: 18.18.2
+ node-version: 20.10.0
registry-url: https://registry.npmjs.org/
cache: 'pnpm'
diff --git a/.github/workflows/release-beta.yml b/.github/workflows/release-beta.yml
index 4851b4ad8..36b7409dc 100644
--- a/.github/workflows/release-beta.yml
+++ b/.github/workflows/release-beta.yml
@@ -30,12 +30,12 @@ jobs:
- name: Install pnpm
uses: pnpm/action-setup@v2
with:
- version: 8.9.2
+ version: 8.11.0
- name: Install node
uses: actions/setup-node@v3
with:
- node-version: 18.18.2
+ node-version: 20.10.0
registry-url: https://registry.npmjs.org/
cache: 'pnpm'
diff --git a/.github/workflows/sonarcloud.yml b/.github/workflows/sonarcloud.yml
index 300c7bc86..66d4d1642 100644
--- a/.github/workflows/sonarcloud.yml
+++ b/.github/workflows/sonarcloud.yml
@@ -23,10 +23,10 @@ jobs:
- name: Install pnpm
uses: pnpm/action-setup@v2
with:
- version: 8.9.2
+ version: 8.11.0
- uses: actions/setup-node@v3
with:
- node-version: 18.18.2
+ node-version: 20.10.0
cache: pnpm
- name: Install dependencies
run: pnpm install --frozen-lockfile
@@ -58,10 +58,10 @@ jobs:
- name: Install pnpm
uses: pnpm/action-setup@v2
with:
- version: 8.9.2
+ version: 8.11.0
- uses: actions/setup-node@v3
with:
- node-version: 18.18.2
+ node-version: 20.10.0
cache: pnpm
- name: Install dependencies
run: pnpm install --frozen-lockfile
@@ -147,10 +147,10 @@ jobs:
- name: Install pnpm
uses: pnpm/action-setup@v2
with:
- version: 8.9.2
+ version: 8.11.0
- uses: actions/setup-node@v3
with:
- node-version: 18.18.2
+ node-version: 20.10.0
cache: pnpm
- name: Install dependencies
run: pnpm install --frozen-lockfile
diff --git a/.github/workflows/version.yml b/.github/workflows/version.yml
index efa314f76..69ba9a71d 100644
--- a/.github/workflows/version.yml
+++ b/.github/workflows/version.yml
@@ -44,12 +44,12 @@ jobs:
- name: Install pnpm
uses: pnpm/action-setup@v2
with:
- version: 8.9.2
+ version: 8.11.0
- name: Install node
uses: actions/setup-node@v3
with:
- node-version: 18.18.2
+ node-version: 20.10.0
registry-url: https://registry.npmjs.org/
cache: 'pnpm'
diff --git a/.nvmrc b/.nvmrc
index bb52a169c..790e1105f 100644
--- a/.nvmrc
+++ b/.nvmrc
@@ -1 +1 @@
-v18.18.2
+v20.10.0
diff --git a/Dockerfile b/Dockerfile
index 1c7dca00f..f2c0ae020 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,9 +1,9 @@
-FROM node:18.18.2-alpine3.16
+FROM node:20.10.0-alpine3.18
WORKDIR /app
# Install pnpm
-RUN npm i -g pnpm@8.9.2
+RUN npm i -g pnpm@8.11.0
# Copy patches
COPY ./patches ./patches
@@ -37,8 +37,6 @@ COPY . .
# that depend on some of the files copied above
RUN pnpm install --frozen-lockfile
-# Copy nx-cloud.env
-COPY ./nx-cloud.env ./
ENV NODE_ENV=production
# For Dapp to build as Standalone
diff --git a/package.json b/package.json
index d49fe3e10..afb5ca049 100644
--- a/package.json
+++ b/package.json
@@ -80,13 +80,13 @@
"ts-node": "^10.9.1",
"typescript": "^5.2.2"
},
- "packageManager": "pnpm@8.9.2",
+ "packageManager": "pnpm@8.11.0",
"engines": {
- "node": ">=18.18.2"
+ "node": ">=20.10.0"
},
"volta": {
- "node": "18.18.2",
- "pnpm": "8.9.2"
+ "node": "20.10.0",
+ "pnpm": "8.11.0"
},
"pnpm": {
"patchedDependencies": {
@@ -96,8 +96,7 @@
"cross-fetch@4.0.0": "patches/cross-fetch@4.0.0.patch",
"@ceramicnetwork/common@2.30.0": "patches/@ceramicnetwork__common@2.30.0.patch",
"@changesets/assemble-release-plan@5.2.4": "patches/@changesets__assemble-release-plan@5.2.4.patch",
- "@metamask/snaps-types@3.0.1": "patches/@metamask__snaps-types@3.0.1.patch",
- "@metamask/snaps-utils@3.2.0": "patches/@metamask__snaps-utils@3.2.0.patch"
+ "@metamask/snaps-sdk@1.2.0": "patches/@metamask__snaps-sdk@1.2.0.patch"
},
"allowNonAppliedPatches": true
}
diff --git a/packages/dapp/Dockerfile b/packages/dapp/Dockerfile
index d284c114b..67861578e 100644
--- a/packages/dapp/Dockerfile
+++ b/packages/dapp/Dockerfile
@@ -1,6 +1,6 @@
FROM blockchain-lab-um/masca:latest as builder
-FROM node:18.18.2-alpine3.16
+FROM node:20.10.0-alpine3.18
# Create app directory
RUN mkdir -p /app
diff --git a/packages/dapp/src/components/Controlbar/Controlbar.tsx b/packages/dapp/src/components/Controlbar/Controlbar.tsx
index 62f397a2d..88beef232 100644
--- a/packages/dapp/src/components/Controlbar/Controlbar.tsx
+++ b/packages/dapp/src/components/Controlbar/Controlbar.tsx
@@ -12,11 +12,11 @@ import clsx from 'clsx';
import { useTranslations } from 'next-intl';
import ImportModal from '@/components/ImportModal';
-import DataStoreCombobox from '@/components/VCTable/DataStoreCombobox';
import GlobalFilter from '@/components/VCTable/GlobalFilter';
import ViewTabs from '@/components/VCTable/ViewTabs';
import { stringifyCredentialSubject } from '@/utils/format';
import { useGeneralStore, useMascaStore, useToastStore } from '@/stores';
+import FilterPopover from '../VCTable/FilterPopover';
// import PlaygroundModal from '../PlaygroundModal';
@@ -162,7 +162,7 @@ const Controlbar = () => {
{vcs.length > 0 && (
-
+
)}
diff --git a/packages/dapp/src/components/VCTable/FilterPopover/CheckBox.tsx b/packages/dapp/src/components/VCTable/FilterPopover/CheckBox.tsx
new file mode 100644
index 000000000..68289c89c
--- /dev/null
+++ b/packages/dapp/src/components/VCTable/FilterPopover/CheckBox.tsx
@@ -0,0 +1,25 @@
+import React from 'react';
+
+interface CheckBoxProps {
+ selected: boolean;
+ setSelected: (selected: boolean) => void;
+ children: React.ReactNode;
+}
+
+export const CheckBox = ({
+ selected,
+ setSelected,
+ children,
+}: CheckBoxProps) => (
+
+ {
+ setSelected(!selected);
+ }}
+ />
+ {children}
+
+);
diff --git a/packages/dapp/src/components/VCTable/FilterPopover/CredentialTypes.tsx b/packages/dapp/src/components/VCTable/FilterPopover/CredentialTypes.tsx
new file mode 100644
index 000000000..20afcb19d
--- /dev/null
+++ b/packages/dapp/src/components/VCTable/FilterPopover/CredentialTypes.tsx
@@ -0,0 +1,111 @@
+import React, { useState } from 'react';
+import { ChevronRightIcon } from '@heroicons/react/24/solid';
+import clsx from 'clsx';
+import { useTranslations } from 'next-intl';
+
+import { useTableStore } from '@/stores';
+import { CheckBox } from './CheckBox';
+
+export const CredentialTypes = () => {
+ const t = useTranslations('FilterPopover');
+
+ const [open, setOpen] = useState(false);
+ const { credentialTypes, setCredentialTypes } = useTableStore((state) => ({
+ credentialTypes: state.credentialTypes,
+ setCredentialTypes: state.setCredentialTypes,
+ }));
+ const [filter, setFilter] = useState('');
+
+ return (
+
+
+
+ {open &&
+ (credentialTypes.filter((type) => type.selected).length > 0 ? (
+
+ ) : (
+
+ ))}
+
+ {open && (
+
+
{
+ setFilter(e.target.value);
+ }}
+ value={filter}
+ />
+
+ {credentialTypes.map((type) => {
+ if (!type.type.toLowerCase().includes(filter.toLowerCase())) {
+ return null;
+ }
+
+ return (
+
+ {
+ const newCredentialTypes = credentialTypes.map((tp) => {
+ if (tp.type === type.type) {
+ return {
+ ...type,
+ selected,
+ };
+ }
+ return tp;
+ });
+ setCredentialTypes(newCredentialTypes);
+ }}
+ >
+ {type.type}
+
+
+ );
+ })}
+
+
+ )}
+
+ );
+};
diff --git a/packages/dapp/src/components/VCTable/FilterPopover/DataStores.tsx b/packages/dapp/src/components/VCTable/FilterPopover/DataStores.tsx
new file mode 100644
index 000000000..975535442
--- /dev/null
+++ b/packages/dapp/src/components/VCTable/FilterPopover/DataStores.tsx
@@ -0,0 +1,65 @@
+import React, { useState } from 'react';
+import { ChevronRightIcon } from '@heroicons/react/24/solid';
+import clsx from 'clsx';
+import { useTranslations } from 'next-intl';
+
+import { useTableStore } from '@/stores';
+import { CheckBox } from './CheckBox';
+
+const DataStoreNames = {
+ snap: 'Snap',
+ ceramic: 'Ceramic',
+};
+
+export const DataStores = () => {
+ const t = useTranslations('FilterPopover');
+ const [open, setOpen] = useState(false);
+ const { dataStores, setDataStores } = useTableStore((state) => ({
+ dataStores: state.dataStores,
+ setDataStores: state.setDataStores,
+ }));
+
+ return (
+
+
+ {open && (
+
+ {dataStores.map((dataStore) => (
+ {
+ const newDataStores = dataStores.map((ds) => {
+ if (ds.dataStore === dataStore.dataStore) {
+ return {
+ ...dataStore,
+ selected,
+ };
+ }
+ return ds;
+ });
+ setDataStores(newDataStores);
+ }}
+ >
+ {DataStoreNames[dataStore.dataStore]}
+
+ ))}
+
+ )}
+
+ );
+};
diff --git a/packages/dapp/src/components/VCTable/FilterPopover/Ecosystems.tsx b/packages/dapp/src/components/VCTable/FilterPopover/Ecosystems.tsx
new file mode 100644
index 000000000..b990c76b1
--- /dev/null
+++ b/packages/dapp/src/components/VCTable/FilterPopover/Ecosystems.tsx
@@ -0,0 +1,66 @@
+import React, { useState } from 'react';
+import { ChevronRightIcon } from '@heroicons/react/24/solid';
+import clsx from 'clsx';
+import { useTranslations } from 'next-intl';
+
+import { useTableStore } from '@/stores';
+import { CheckBox } from './CheckBox';
+
+const EcosystemSNames = {
+ ebsi: 'EBSI',
+ polygonid: 'Polygon',
+ other: 'Other',
+};
+
+export const Ecosystems = () => {
+ const t = useTranslations('FilterPopover');
+ const [open, setOpen] = useState(false);
+ const { ecosystems, setEcosystems } = useTableStore((state) => ({
+ ecosystems: state.ecosystems,
+ setEcosystems: state.setEcosystems,
+ }));
+
+ return (
+
+
+ {open && (
+
+ {ecosystems.map((ecosystem) => (
+ {
+ const newDataStores = ecosystems.map((ds) => {
+ if (ds.ecosystem === ecosystem.ecosystem) {
+ return {
+ ...ecosystem,
+ selected,
+ };
+ }
+ return ds;
+ });
+ setEcosystems(newDataStores);
+ }}
+ >
+ {EcosystemSNames[ecosystem.ecosystem]}
+
+ ))}
+
+ )}
+
+ );
+};
diff --git a/packages/dapp/src/components/VCTable/FilterPopover/index.tsx b/packages/dapp/src/components/VCTable/FilterPopover/index.tsx
new file mode 100644
index 000000000..4db9cecb5
--- /dev/null
+++ b/packages/dapp/src/components/VCTable/FilterPopover/index.tsx
@@ -0,0 +1,172 @@
+'use client';
+
+import { Fragment, useEffect } from 'react';
+import {
+ AvailableCredentialStores,
+ QueryCredentialsRequestResult,
+} from '@blockchain-lab-um/masca-connector';
+import { Popover, Transition } from '@headlessui/react';
+import { ChevronDownIcon } from '@heroicons/react/20/solid';
+import clsx from 'clsx';
+import { useTranslations } from 'next-intl';
+
+import { useTableStore } from '@/stores';
+import { CredentialTypes } from './CredentialTypes';
+import { DataStores } from './DataStores';
+import { Ecosystems } from './Ecosystems';
+
+interface FilterPopoverProps {
+ vcs: QueryCredentialsRequestResult[];
+}
+
+function FilterPopover({ vcs }: FilterPopoverProps) {
+ const t = useTranslations('FilterPopover');
+
+ const {
+ dataStores,
+ ecosystems,
+ credentialTypes,
+ columnFilters,
+ setColumnFilters,
+ setCredentialTypes,
+ } = useTableStore((state) => ({
+ dataStores: state.dataStores,
+ credentialTypes: state.credentialTypes,
+ columnFilters: state.columnFilters,
+ setDataStores: state.setDataStores,
+ ecosystems: state.ecosystems,
+ setEcosystems: state.setEcosystems,
+ setCredentialTypes: state.setCredentialTypes,
+ setColumnFilters: state.setColumnFilters,
+ }));
+
+ const updateColumnFiltersDataStore = () => {
+ const dsFilter = {
+ id: 'data_store',
+ value: [] as AvailableCredentialStores[],
+ };
+ dsFilter.value = dataStores
+ .filter((ds) => ds.selected)
+ .map((ds) => ds.dataStore);
+
+ const newColumnFilters = columnFilters.filter(
+ (cf) => cf.id !== 'data_store'
+ );
+ newColumnFilters.push(dsFilter);
+ setColumnFilters(newColumnFilters);
+ };
+
+ const updateColumnFiltersCredentialTypes = () => {
+ const typeFilter = {
+ id: 'type',
+ value: [] as string[],
+ };
+ typeFilter.value = credentialTypes
+ .filter((type) => type.selected)
+ .map((type) => type.type);
+
+ const newColumnFilters = columnFilters.filter((cf) => cf.id !== 'type');
+ newColumnFilters.push(typeFilter);
+ setColumnFilters(newColumnFilters);
+ };
+
+ const getAvailableCredentialTypes = () => {
+ const allCredentialTypes: string[] = [];
+ vcs.forEach((vc) => {
+ if (!vc.data.type) return;
+ if (typeof vc.data.type === 'string') {
+ allCredentialTypes.push(vc.data.type);
+ return;
+ }
+ vc.data.type.forEach((type: string) => {
+ if (type !== 'VerifiableCredential') allCredentialTypes.push(type);
+ });
+ });
+ const availableCredentialTypes = [...new Set(allCredentialTypes)];
+
+ setCredentialTypes(
+ availableCredentialTypes.map((type) => ({
+ type,
+ selected: true,
+ }))
+ );
+ };
+
+ const updateColumnFiltersEcosystems = () => {
+ const esFilter = {
+ id: 'issuer',
+ value: [] as string[],
+ };
+ esFilter.value = ecosystems
+ .filter((es) => es.selected)
+ .map((es) => es.ecosystem);
+
+ const newColumnFilters = columnFilters.filter((cf) => cf.id !== 'issuer');
+ newColumnFilters.push(esFilter);
+ setColumnFilters(newColumnFilters);
+ };
+
+ useEffect(() => {
+ updateColumnFiltersDataStore();
+ }, [dataStores]);
+
+ useEffect(() => {
+ getAvailableCredentialTypes();
+ }, [vcs]);
+
+ useEffect(() => {
+ updateColumnFiltersEcosystems();
+ }, [ecosystems]);
+
+ useEffect(() => {
+ updateColumnFiltersCredentialTypes();
+ }, [credentialTypes]);
+
+ return (
+
+ {({ open, close }) => (
+ <>
+
+
+
+
+
+
+ {t('filter')}
+
+
+
+
+
+
+
+
+
+ >
+ )}
+
+ );
+}
+
+export default FilterPopover;
diff --git a/packages/dapp/src/components/VCTable/index.tsx b/packages/dapp/src/components/VCTable/index.tsx
index be991e989..ff15ac3f9 100644
--- a/packages/dapp/src/components/VCTable/index.tsx
+++ b/packages/dapp/src/components/VCTable/index.tsx
@@ -46,7 +46,13 @@ import { stringifyCredentialSubject } from '@/utils/format';
import { convertTypes } from '@/utils/string';
import { useMascaStore, useTableStore, useToastStore } from '@/stores';
import TablePagination from './TablePagination';
-import { includesDataStore, recursiveIncludes, selectRows } from './tableUtils';
+import {
+ includesDataStore,
+ includesEcosystem,
+ includesType,
+ recursiveIncludes,
+ selectRows,
+} from './tableUtils';
import VCCard from './VCCard';
const Table = () => {
@@ -89,6 +95,7 @@ const Table = () => {
{info.getValue().toString()}
),
header: () =>
{t('table.type')},
+ filterFn: includesType,
}
),
columnHelper.accessor((row) => Date.parse(row.data.issuanceDate), {
@@ -145,6 +152,7 @@ const Table = () => {
),
header: () =>
{t('table.issuer')},
+ filterFn: includesEcosystem,
}
),
columnHelper.accessor((row) => row.data.expirationDate, {
@@ -272,7 +280,12 @@ const Table = () => {
const table = useReactTable({
data: vcs,
columns,
- filterFns: { includesDataStore, recursiveIncludes },
+ filterFns: {
+ includesDataStore,
+ recursiveIncludes,
+ includesType,
+ includesEcosystem,
+ },
globalFilterFn: recursiveIncludes,
state: {
sorting,
diff --git a/packages/dapp/src/components/VCTable/tableUtils.ts b/packages/dapp/src/components/VCTable/tableUtils.ts
index 8df0a4f00..96ac27cb8 100644
--- a/packages/dapp/src/components/VCTable/tableUtils.ts
+++ b/packages/dapp/src/components/VCTable/tableUtils.ts
@@ -20,6 +20,55 @@ export const includesDataStore: FilterFn
= (
return matching;
};
+export const includesType: FilterFn = (
+ row,
+ _: string,
+ value: string[]
+) => {
+ const item = row.original.data.type;
+ let matching = false;
+
+ for (const val of value) {
+ if (
+ (typeof item === 'string' && item === val) ||
+ (Array.isArray(item) && item.indexOf(val) >= 0)
+ ) {
+ matching = true;
+ break;
+ }
+ }
+
+ return matching;
+};
+
+export const includesEcosystem: FilterFn = (
+ row,
+ _: string,
+ value: string[]
+) => {
+ let item = row.original.data.issuer;
+ if (!item) return false;
+ if (typeof item !== 'string') {
+ item = item.id;
+ }
+ let matching = false;
+
+ for (const val of value) {
+ if (typeof item !== 'string') break;
+ if (
+ (val === 'other' &&
+ item.split(':')[1] !== 'ebsi' &&
+ item.split(':')[1] !== 'polygonid') ||
+ item.split(':')[1] === val
+ ) {
+ matching = true;
+ break;
+ }
+ }
+
+ return matching;
+};
+
const extractValues = (obj: any): string[] => {
if (typeof obj === 'string') return [obj.toLowerCase()];
if (typeof obj === 'number') return [obj.toString()];
diff --git a/packages/dapp/src/messages/en.json b/packages/dapp/src/messages/en.json
index 7385e5b4c..c3fec0bd0 100644
--- a/packages/dapp/src/messages/en.json
+++ b/packages/dapp/src/messages/en.json
@@ -252,6 +252,14 @@
"subject": "SUBJECT",
"view-json": "View"
},
+ "FilterPopover": {
+ "clear": "clear",
+ "filter": "Filter",
+ "title": "Filter Credentials",
+ "ecosystem": "Ecosystem",
+ "datastore": "Data Store",
+ "type": "Type"
+ },
"FriendlydAppTable": {
"add-failed": "Failed to add Friendly dapp",
"add-masca": "Add Masca.io to Friendly dapps",
diff --git a/packages/dapp/src/stores/tableStore.ts b/packages/dapp/src/stores/tableStore.ts
index a8f9e729d..b1546e681 100644
--- a/packages/dapp/src/stores/tableStore.ts
+++ b/packages/dapp/src/stores/tableStore.ts
@@ -1,18 +1,42 @@
-import { type QueryCredentialsRequestResult } from '@blockchain-lab-um/masca-connector';
+import {
+ AvailableCredentialStores,
+ type QueryCredentialsRequestResult,
+} from '@blockchain-lab-um/masca-connector';
import { ColumnFiltersState } from '@tanstack/react-table';
import { shallow } from 'zustand/shallow';
import { createWithEqualityFn } from 'zustand/traditional';
+interface DataStore {
+ dataStore: AvailableCredentialStores;
+ selected: boolean;
+}
+
+interface CredentialType {
+ type: string;
+ selected: boolean;
+}
+
+interface Ecosystem {
+ ecosystem: 'ebsi' | 'polygonid' | 'other';
+ selected: boolean;
+}
+
interface TableStore {
globalFilter: string;
columnFilters: ColumnFiltersState;
selectedVCs: QueryCredentialsRequestResult[];
cardView: boolean;
+ dataStores: DataStore[];
+ ecosystems: Ecosystem[];
+ credentialTypes: CredentialType[];
setGlobalFilter: (globalFilter: string) => void;
setColumnFilters: (columnFilters: ColumnFiltersState) => void;
setSelectedVCs: (selectedVCs: QueryCredentialsRequestResult[]) => void;
setCardView: (view: boolean) => void;
+ setDataStores: (dataStores: DataStore[]) => void;
+ setCredentialTypes: (credentialTypes: CredentialType[]) => void;
+ setEcosystems: (ecosystems: Ecosystem[]) => void;
}
export const tableStoreInitialState = {
@@ -20,6 +44,16 @@ export const tableStoreInitialState = {
columnFilters: [{ id: 'data_store', value: ['snap'] }],
selectedVCs: [],
cardView: true,
+ dataStores: [
+ { dataStore: 'snap', selected: true } as DataStore,
+ { dataStore: 'ceramic', selected: true } as DataStore,
+ ],
+ ecosystems: [
+ { ecosystem: 'ebsi', selected: true } as Ecosystem,
+ { ecosystem: 'polygonid', selected: true } as Ecosystem,
+ { ecosystem: 'other', selected: true } as Ecosystem,
+ ],
+ credentialTypes: [],
};
export const useTableStore = createWithEqualityFn()(
@@ -32,6 +66,11 @@ export const useTableStore = createWithEqualityFn()(
setCardView: (cardView: boolean) => set({ cardView }),
setSelectedVCs: (selectedVCs: QueryCredentialsRequestResult[]) =>
set({ selectedVCs }),
+ setDataStores: (dataStores: DataStore[]) => set({ dataStores }),
+ setCredentialTypes: (credentialTypes: CredentialType[]) =>
+ set({ credentialTypes }),
+
+ setEcosystems: (ecosystems: Ecosystem[]) => set({ ecosystems }),
}),
shallow
);
diff --git a/packages/dapp/tailwind.config.js b/packages/dapp/tailwind.config.js
index b2c709921..3fc4ea40a 100644
--- a/packages/dapp/tailwind.config.js
+++ b/packages/dapp/tailwind.config.js
@@ -158,7 +158,7 @@ const config = {
},
},
},
- plugins: [require('tailwind-scrollbar'), nextui()],
+ plugins: [nextui(), require('tailwind-scrollbar')({ nocompatible: true })],
};
export default config;
diff --git a/packages/snap/package.json b/packages/snap/package.json
index 935bd1e72..7ae3aae06 100644
--- a/packages/snap/package.json
+++ b/packages/snap/package.json
@@ -70,10 +70,9 @@
"@iden3/js-jwz": "1.0.1",
"@iden3/js-merkletree": "1.0.0",
"@metamask/key-tree": "^9.0.0",
- "@metamask/providers": "13.1.0",
- "@metamask/snaps-types": "3.0.1",
- "@metamask/snaps-ui": "3.1.0",
- "@metamask/utils": "^8.2.0",
+ "@metamask/providers": "14.0.2",
+ "@metamask/snaps-sdk": "1.2.0",
+ "@metamask/utils": "^8.2.1",
"@types/lodash.clonedeep": "^4.5.7",
"@veramo/core": "5.5.3",
"@veramo/credential-eip712": "5.5.3",
@@ -103,8 +102,7 @@
},
"devDependencies": {
"@ceramicnetwork/streamid": "2.17.0",
- "@metamask/snaps-cli": "3.0.1",
- "@metamask/snaps-utils": "3.2.0",
+ "@metamask/snaps-cli": "3.0.3",
"@types/elliptic": "^6.4.16",
"@types/jsonpath": "^0.2.2",
"@types/lodash.clonedeep": "^4.5.8",
diff --git a/packages/snap/snap.manifest.json b/packages/snap/snap.manifest.json
index 78b760c14..1b07bb9ad 100644
--- a/packages/snap/snap.manifest.json
+++ b/packages/snap/snap.manifest.json
@@ -26,7 +26,7 @@
"./files/circuits/credentialAtomicQuerySigV2/circuit_final.zkey",
"./files/circuits/credentialAtomicQuerySigV2/verification_key.json"
],
- "shasum": "wspaS/8UJT4A8/gqD9bzbMdem7dTVVHoBw27ZPgd0NA="
+ "shasum": "fb99U1A+m3KT+osaZo2Jrk8adHkz+AVHKK6pY7L6nHQ="
},
"initialPermissions": {
"endowment:ethereum-provider": {},
diff --git a/packages/snap/src/Ethereum.service.ts b/packages/snap/src/Ethereum.service.ts
index 1da64a8fc..8a635d8a9 100644
--- a/packages/snap/src/Ethereum.service.ts
+++ b/packages/snap/src/Ethereum.service.ts
@@ -3,7 +3,7 @@ import {
didMethodChainIdMapping,
MethodsRequiringNetwork,
} from '@blockchain-lab-um/masca-types';
-import { divider, heading, panel, text } from '@metamask/snaps-ui';
+import { divider, heading, panel, text } from '@metamask/snaps-sdk';
import UIService from './UI.service';
diff --git a/packages/snap/src/UI.service.ts b/packages/snap/src/UI.service.ts
index c6d7590e8..0b7aa05ba 100644
--- a/packages/snap/src/UI.service.ts
+++ b/packages/snap/src/UI.service.ts
@@ -12,7 +12,7 @@ import {
heading,
panel,
text,
-} from '@metamask/snaps-ui';
+} from '@metamask/snaps-sdk';
import { W3CVerifiableCredential } from '@veramo/core';
import StorageService from './storage/Storage.service';
diff --git a/packages/snap/src/index.ts b/packages/snap/src/index.ts
index 45ecc8789..65ef3a645 100644
--- a/packages/snap/src/index.ts
+++ b/packages/snap/src/index.ts
@@ -2,7 +2,7 @@ import './polyfills/intl';
import { isValidSetCurrentAccountRequest } from '@blockchain-lab-um/masca-types';
import { ResultObject, type Result } from '@blockchain-lab-um/utils';
-import type { OnRpcRequestHandler } from '@metamask/snaps-types';
+import type { OnRpcRequestHandler } from '@metamask/snaps-sdk';
import GeneralService from './General.service';
import SnapService from './Snap.service';
@@ -14,7 +14,7 @@ import WalletService from './Wallet.service';
export const onRpcRequest: OnRpcRequestHandler = async ({
request,
origin,
-}): Promise> => {
+}): Promise> => {
try {
await StorageService.init();
diff --git a/packages/snap/tests/cron/handleAuthorizationFlow.spec.ts b/packages/snap/tests/cron/handleAuthorizationFlow.spec.ts
index f0c1bf054..0c0be64c4 100644
--- a/packages/snap/tests/cron/handleAuthorizationFlow.spec.ts
+++ b/packages/snap/tests/cron/handleAuthorizationFlow.spec.ts
@@ -1,6 +1,6 @@
import { isError, Result } from '@blockchain-lab-um/utils';
import { MetaMaskInpageProvider } from '@metamask/providers';
-import type { SnapsGlobalObject } from '@metamask/snaps-types';
+import { SnapsProvider } from '@metamask/snaps-sdk';
import { beforeAll, describe, expect, it } from 'vitest';
import { onRpcRequest } from '../../src';
@@ -10,7 +10,7 @@ import { getDefaultSnapState } from '../data/defaultSnapState';
import { createMockSnap, SnapMock } from '../helpers/snapMock';
describe('handlePolygonFlow', () => {
- let snapMock: SnapsGlobalObject & SnapMock;
+ let snapMock: SnapsProvider & SnapMock;
beforeAll(async () => {
snapMock = createMockSnap();
diff --git a/packages/snap/tests/e2e/addFriendlyDapp.spec.ts b/packages/snap/tests/e2e/addFriendlyDapp.spec.ts
index 46943c479..03ab066bf 100644
--- a/packages/snap/tests/e2e/addFriendlyDapp.spec.ts
+++ b/packages/snap/tests/e2e/addFriendlyDapp.spec.ts
@@ -1,7 +1,7 @@
import { CURRENT_STATE_VERSION } from '@blockchain-lab-um/masca-types';
import { isError, Result } from '@blockchain-lab-um/utils';
import { MetaMaskInpageProvider } from '@metamask/providers';
-import type { SnapsGlobalObject } from '@metamask/snaps-types';
+import { SnapsProvider } from '@metamask/snaps-sdk';
import { beforeAll, describe, expect, it, vi } from 'vitest';
import { onRpcRequest } from '../../src';
@@ -11,7 +11,7 @@ import { getDefaultSnapState } from '../data/defaultSnapState';
import { createMockSnap, SnapMock } from '../helpers/snapMock';
describe('addFriendlyDapp', () => {
- let snapMock: SnapsGlobalObject & SnapMock;
+ let snapMock: SnapsProvider & SnapMock;
beforeAll(async () => {
snapMock = createMockSnap();
diff --git a/packages/snap/tests/e2e/createVerifiableCredential.spec.ts b/packages/snap/tests/e2e/createVerifiableCredential.spec.ts
index 98321e2f8..3ecfc30ed 100644
--- a/packages/snap/tests/e2e/createVerifiableCredential.spec.ts
+++ b/packages/snap/tests/e2e/createVerifiableCredential.spec.ts
@@ -5,7 +5,7 @@ import {
} from '@blockchain-lab-um/masca-types';
import { isError, Result } from '@blockchain-lab-um/utils';
import { MetaMaskInpageProvider } from '@metamask/providers';
-import type { SnapsGlobalObject } from '@metamask/snaps-types';
+import { SnapsProvider } from '@metamask/snaps-sdk';
import type { VerifiableCredential } from '@veramo/core';
import { beforeAll, describe, expect, it } from 'vitest';
@@ -35,7 +35,7 @@ const stores: AvailableCredentialStores[][] = [
describe('createVerifiableCredential', () => {
describe.each(methods)('Using method %s', (method) => {
- let snapMock: SnapsGlobalObject & SnapMock;
+ let snapMock: SnapsProvider & SnapMock;
let issuer: string;
let agent: Agent;
diff --git a/packages/snap/tests/e2e/createVerifiablePresentation.spec.ts b/packages/snap/tests/e2e/createVerifiablePresentation.spec.ts
index f01584739..2741dbaa7 100644
--- a/packages/snap/tests/e2e/createVerifiablePresentation.spec.ts
+++ b/packages/snap/tests/e2e/createVerifiablePresentation.spec.ts
@@ -1,7 +1,7 @@
import { AvailableMethods, ProofOptions } from '@blockchain-lab-um/masca-types';
import { isError, Result } from '@blockchain-lab-um/utils';
import { MetaMaskInpageProvider } from '@metamask/providers';
-import type { Json, SnapsGlobalObject } from '@metamask/snaps-types';
+import { SnapsProvider, type Json } from '@metamask/snaps-sdk';
import { VerifiablePresentation } from '@veramo/core';
import { beforeAll, describe, expect, it } from 'vitest';
@@ -45,7 +45,7 @@ const vcs = [
describe('createVerifiablePresentation', () => {
describe.each(methods)('Using method %s', (method) => {
- let snapMock: SnapsGlobalObject & SnapMock;
+ let snapMock: SnapsProvider & SnapMock;
let issuer: string;
let agent: Agent;
diff --git a/packages/snap/tests/e2e/deleteVerifiableCredentials.spec.ts b/packages/snap/tests/e2e/deleteVerifiableCredentials.spec.ts
index f033b81da..01af9dde3 100644
--- a/packages/snap/tests/e2e/deleteVerifiableCredentials.spec.ts
+++ b/packages/snap/tests/e2e/deleteVerifiableCredentials.spec.ts
@@ -2,7 +2,7 @@ import { isError, isSuccess, Result } from '@blockchain-lab-um/utils';
import { IDataManagerSaveResult } from '@blockchain-lab-um/veramo-datamanager';
import { DIDDataStore } from '@glazed/did-datastore';
import { MetaMaskInpageProvider } from '@metamask/providers';
-import type { SnapsGlobalObject } from '@metamask/snaps-types';
+import { SnapsProvider } from '@metamask/snaps-sdk';
import type { VerifiableCredential } from '@veramo/core';
import { beforeAll, beforeEach, describe, expect, it, vi } from 'vitest';
@@ -18,7 +18,7 @@ import { createMockSnap, SnapMock } from '../helpers/snapMock';
describe('deleteCredential', () => {
let ceramicData: StoredCredentials;
- let snapMock: SnapsGlobalObject & SnapMock;
+ let snapMock: SnapsProvider & SnapMock;
let agent: Agent;
let generatedVC: VerifiableCredential;
diff --git a/packages/snap/tests/e2e/exportStateBackup.spec.ts b/packages/snap/tests/e2e/exportStateBackup.spec.ts
index cdd570c5f..9639d5e35 100644
--- a/packages/snap/tests/e2e/exportStateBackup.spec.ts
+++ b/packages/snap/tests/e2e/exportStateBackup.spec.ts
@@ -1,7 +1,7 @@
import { isError, Result } from '@blockchain-lab-um/utils';
import { IDataManagerSaveResult } from '@blockchain-lab-um/veramo-datamanager';
import { MetaMaskInpageProvider } from '@metamask/providers';
-import type { SnapsGlobalObject } from '@metamask/snaps-types';
+import { SnapsProvider } from '@metamask/snaps-sdk';
import type { IIdentifier, VerifiableCredential } from '@veramo/core';
import { beforeAll, describe, expect, it } from 'vitest';
@@ -16,7 +16,7 @@ import { createTestVCs } from '../helpers/generateTestVCs';
import { createMockSnap, SnapMock } from '../helpers/snapMock';
describe('exportStateBackup', () => {
- let snapMock: SnapsGlobalObject & SnapMock;
+ let snapMock: SnapsProvider & SnapMock;
let identifier: IIdentifier;
let agent: Agent;
let generatedVC: VerifiableCredential;
diff --git a/packages/snap/tests/e2e/getAccountSettings.spec.ts b/packages/snap/tests/e2e/getAccountSettings.spec.ts
index c2a797fda..bc553e887 100644
--- a/packages/snap/tests/e2e/getAccountSettings.spec.ts
+++ b/packages/snap/tests/e2e/getAccountSettings.spec.ts
@@ -1,7 +1,7 @@
import { CURRENT_STATE_VERSION } from '@blockchain-lab-um/masca-types';
import { isError, Result } from '@blockchain-lab-um/utils';
import { MetaMaskInpageProvider } from '@metamask/providers';
-import type { SnapsGlobalObject } from '@metamask/snaps-types';
+import { SnapsProvider } from '@metamask/snaps-sdk';
import { beforeAll, describe, expect, it } from 'vitest';
import { onRpcRequest } from '../../src';
@@ -10,7 +10,7 @@ import { getDefaultSnapState } from '../data/defaultSnapState';
import { createMockSnap, SnapMock } from '../helpers/snapMock';
describe('getAccountSettings', () => {
- let snapMock: SnapsGlobalObject & SnapMock;
+ let snapMock: SnapsProvider & SnapMock;
beforeAll(async () => {
snapMock = createMockSnap();
diff --git a/packages/snap/tests/e2e/getAvailableMethods.spec.ts b/packages/snap/tests/e2e/getAvailableMethods.spec.ts
index eb473cb01..cdb32db53 100644
--- a/packages/snap/tests/e2e/getAvailableMethods.spec.ts
+++ b/packages/snap/tests/e2e/getAvailableMethods.spec.ts
@@ -1,7 +1,7 @@
import { availableMethods } from '@blockchain-lab-um/masca-types';
import { isError, Result } from '@blockchain-lab-um/utils';
import { MetaMaskInpageProvider } from '@metamask/providers';
-import type { SnapsGlobalObject } from '@metamask/snaps-types';
+import { SnapsProvider } from '@metamask/snaps-sdk';
import { beforeAll, describe, expect, it } from 'vitest';
import { onRpcRequest } from '../../src';
@@ -10,7 +10,7 @@ import { getDefaultSnapState } from '../data/defaultSnapState';
import { createMockSnap, SnapMock } from '../helpers/snapMock';
describe('getAvailableMethods', () => {
- let snapMock: SnapsGlobalObject & SnapMock;
+ let snapMock: SnapsProvider & SnapMock;
beforeAll(async () => {
snapMock = createMockSnap();
diff --git a/packages/snap/tests/e2e/getAvailableVCStores.spec.ts b/packages/snap/tests/e2e/getAvailableVCStores.spec.ts
index 990176aef..715393616 100644
--- a/packages/snap/tests/e2e/getAvailableVCStores.spec.ts
+++ b/packages/snap/tests/e2e/getAvailableVCStores.spec.ts
@@ -1,7 +1,7 @@
import { availableCredentialStores } from '@blockchain-lab-um/masca-types';
import { isError, Result } from '@blockchain-lab-um/utils';
import { MetaMaskInpageProvider } from '@metamask/providers';
-import type { SnapsGlobalObject } from '@metamask/snaps-types';
+import { SnapsProvider } from '@metamask/snaps-sdk';
import { beforeAll, describe, expect, it } from 'vitest';
import { onRpcRequest } from '../../src';
@@ -10,7 +10,7 @@ import { getDefaultSnapState } from '../data/defaultSnapState';
import { createMockSnap, SnapMock } from '../helpers/snapMock';
describe('getAvailableCredentialStores', () => {
- let snapMock: SnapsGlobalObject & SnapMock;
+ let snapMock: SnapsProvider & SnapMock;
beforeAll(async () => {
snapMock = createMockSnap();
diff --git a/packages/snap/tests/e2e/getDID.spec.ts b/packages/snap/tests/e2e/getDID.spec.ts
index 848150102..5146c9a6d 100644
--- a/packages/snap/tests/e2e/getDID.spec.ts
+++ b/packages/snap/tests/e2e/getDID.spec.ts
@@ -1,6 +1,6 @@
import { isError, Result } from '@blockchain-lab-um/utils';
import { MetaMaskInpageProvider } from '@metamask/providers';
-import type { SnapsGlobalObject } from '@metamask/snaps-types';
+import { SnapsProvider } from '@metamask/snaps-sdk';
import { beforeAll, describe, expect, it } from 'vitest';
import { onRpcRequest } from '../../src';
@@ -34,7 +34,7 @@ const methods = [
];
describe('getDID', () => {
- let snapMock: SnapsGlobalObject & SnapMock;
+ let snapMock: SnapsProvider & SnapMock;
beforeAll(async () => {
snapMock = createMockSnap();
diff --git a/packages/snap/tests/e2e/getSelectedMethod.spec.ts b/packages/snap/tests/e2e/getSelectedMethod.spec.ts
index 6cac6628f..f94633408 100644
--- a/packages/snap/tests/e2e/getSelectedMethod.spec.ts
+++ b/packages/snap/tests/e2e/getSelectedMethod.spec.ts
@@ -1,6 +1,6 @@
import { isError, Result } from '@blockchain-lab-um/utils';
import { MetaMaskInpageProvider } from '@metamask/providers';
-import type { SnapsGlobalObject } from '@metamask/snaps-types';
+import { SnapsProvider } from '@metamask/snaps-sdk';
import { beforeAll, describe, expect, it } from 'vitest';
import { onRpcRequest } from '../../src';
@@ -9,7 +9,7 @@ import { getDefaultSnapState } from '../data/defaultSnapState';
import { createMockSnap, SnapMock } from '../helpers/snapMock';
describe('getSelectedMethod', () => {
- let snapMock: SnapsGlobalObject & SnapMock;
+ let snapMock: SnapsProvider & SnapMock;
beforeAll(async () => {
snapMock = createMockSnap();
diff --git a/packages/snap/tests/e2e/getSnapSettings.spec.ts b/packages/snap/tests/e2e/getSnapSettings.spec.ts
index 1005ad2c8..65da71984 100644
--- a/packages/snap/tests/e2e/getSnapSettings.spec.ts
+++ b/packages/snap/tests/e2e/getSnapSettings.spec.ts
@@ -1,7 +1,7 @@
import { CURRENT_STATE_VERSION } from '@blockchain-lab-um/masca-types';
import { isError, Result } from '@blockchain-lab-um/utils';
import { MetaMaskInpageProvider } from '@metamask/providers';
-import type { SnapsGlobalObject } from '@metamask/snaps-types';
+import { SnapsProvider } from '@metamask/snaps-sdk';
import { beforeAll, describe, expect, it } from 'vitest';
import { onRpcRequest } from '../../src';
@@ -10,7 +10,7 @@ import { getDefaultSnapState } from '../data/defaultSnapState';
import { createMockSnap, SnapMock } from '../helpers/snapMock';
describe('getSnapSettings', () => {
- let snapMock: SnapsGlobalObject & SnapMock;
+ let snapMock: SnapsProvider & SnapMock;
beforeAll(async () => {
snapMock = createMockSnap();
diff --git a/packages/snap/tests/e2e/getVCStore.spec.ts b/packages/snap/tests/e2e/getVCStore.spec.ts
index 98ddb6ea1..0a91f7e2a 100644
--- a/packages/snap/tests/e2e/getVCStore.spec.ts
+++ b/packages/snap/tests/e2e/getVCStore.spec.ts
@@ -1,6 +1,6 @@
import { isError, Result } from '@blockchain-lab-um/utils';
import { MetaMaskInpageProvider } from '@metamask/providers';
-import type { SnapsGlobalObject } from '@metamask/snaps-types';
+import { SnapsProvider } from '@metamask/snaps-sdk';
import { beforeAll, describe, expect, it } from 'vitest';
import { onRpcRequest } from '../../src';
@@ -9,7 +9,7 @@ import { getDefaultSnapState } from '../data/defaultSnapState';
import { createMockSnap, SnapMock } from '../helpers/snapMock';
describe('getVCStore', () => {
- let snapMock: SnapsGlobalObject & SnapMock;
+ let snapMock: SnapsProvider & SnapMock;
beforeAll(async () => {
snapMock = createMockSnap();
diff --git a/packages/snap/tests/e2e/importStateBackup.spec.ts b/packages/snap/tests/e2e/importStateBackup.spec.ts
index d851febc7..d2821dec2 100644
--- a/packages/snap/tests/e2e/importStateBackup.spec.ts
+++ b/packages/snap/tests/e2e/importStateBackup.spec.ts
@@ -2,7 +2,7 @@ import { type MascaState } from '@blockchain-lab-um/masca-types';
import { isError, Result } from '@blockchain-lab-um/utils';
import { IDataManagerSaveResult } from '@blockchain-lab-um/veramo-datamanager';
import { MetaMaskInpageProvider } from '@metamask/providers';
-import type { SnapsGlobalObject } from '@metamask/snaps-types';
+import { SnapsProvider } from '@metamask/snaps-sdk';
import type { IIdentifier, VerifiableCredential } from '@veramo/core';
import cloneDeep from 'lodash.clonedeep';
import { beforeAll, describe, expect, it } from 'vitest';
@@ -17,7 +17,7 @@ import { createTestVCs } from '../helpers/generateTestVCs';
import { createMockSnap, SnapMock } from '../helpers/snapMock';
describe('importStateBackup', () => {
- let snapMock: SnapsGlobalObject & SnapMock;
+ let snapMock: SnapsProvider & SnapMock;
let identifier: IIdentifier;
let agent: Agent;
let generatedVC: VerifiableCredential;
diff --git a/packages/snap/tests/e2e/queryVerifiableCredentials.spec.ts b/packages/snap/tests/e2e/queryVerifiableCredentials.spec.ts
index 813b153af..5b4967c83 100644
--- a/packages/snap/tests/e2e/queryVerifiableCredentials.spec.ts
+++ b/packages/snap/tests/e2e/queryVerifiableCredentials.spec.ts
@@ -2,7 +2,7 @@ import { isError, Result } from '@blockchain-lab-um/utils';
import { IDataManagerSaveResult } from '@blockchain-lab-um/veramo-datamanager';
import { DIDDataStore } from '@glazed/did-datastore';
import { MetaMaskInpageProvider } from '@metamask/providers';
-import type { SnapsGlobalObject } from '@metamask/snaps-types';
+import { SnapsProvider } from '@metamask/snaps-sdk';
import { VerifiableCredential } from '@veramo/core';
import { beforeAll, beforeEach, describe, expect, it, vi } from 'vitest';
@@ -18,7 +18,7 @@ import { createMockSnap, SnapMock } from '../helpers/snapMock';
describe('queryVerifiableCredentials', () => {
let ceramicData: StoredCredentials;
- let snapMock: SnapsGlobalObject & SnapMock;
+ let snapMock: SnapsProvider & SnapMock;
let agent: Agent;
let generatedVC: VerifiableCredential;
diff --git a/packages/snap/tests/e2e/removeFriendlyDapp.spec.ts b/packages/snap/tests/e2e/removeFriendlyDapp.spec.ts
index 07521aaef..d2b85e718 100644
--- a/packages/snap/tests/e2e/removeFriendlyDapp.spec.ts
+++ b/packages/snap/tests/e2e/removeFriendlyDapp.spec.ts
@@ -2,7 +2,7 @@ import { CURRENT_STATE_VERSION } from '@blockchain-lab-um/masca-types';
import { isError, Result } from '@blockchain-lab-um/utils';
import { IDataManagerSaveResult } from '@blockchain-lab-um/veramo-datamanager';
import { MetaMaskInpageProvider } from '@metamask/providers';
-import type { SnapsGlobalObject } from '@metamask/snaps-types';
+import { SnapsProvider } from '@metamask/snaps-sdk';
import { VerifiableCredential } from '@veramo/core';
import { beforeAll, describe, expect, it, vi } from 'vitest';
@@ -17,7 +17,7 @@ import { createTestVCs } from '../helpers/generateTestVCs';
import { createMockSnap, SnapMock } from '../helpers/snapMock';
describe('removeFriendlyDapp', () => {
- let snapMock: SnapsGlobalObject & SnapMock;
+ let snapMock: SnapsProvider & SnapMock;
let generatedVC: VerifiableCredential;
beforeAll(async () => {
diff --git a/packages/snap/tests/e2e/resolveDID.spec.ts b/packages/snap/tests/e2e/resolveDID.spec.ts
index 289e4b8d4..7b5dda153 100644
--- a/packages/snap/tests/e2e/resolveDID.spec.ts
+++ b/packages/snap/tests/e2e/resolveDID.spec.ts
@@ -1,6 +1,6 @@
import { isError, Result } from '@blockchain-lab-um/utils';
import { MetaMaskInpageProvider } from '@metamask/providers';
-import { SnapsGlobalObject } from '@metamask/snaps-types';
+import { SnapsProvider } from '@metamask/snaps-sdk';
import { DIDResolutionResult } from 'did-resolver';
import { beforeAll, describe, expect, it } from 'vitest';
@@ -19,7 +19,7 @@ import {
import { createMockSnap, SnapMock } from '../helpers/snapMock';
describe('resolveDID', () => {
- let snapMock: SnapsGlobalObject & SnapMock;
+ let snapMock: SnapsProvider & SnapMock;
const methods = [EBSI, ENS, ION, CHEQD, WEB, ETHR, KEY] as const;
diff --git a/packages/snap/tests/e2e/saveVerifiableCredential.spec.ts b/packages/snap/tests/e2e/saveVerifiableCredential.spec.ts
index dcdf902a6..f143e6ffd 100644
--- a/packages/snap/tests/e2e/saveVerifiableCredential.spec.ts
+++ b/packages/snap/tests/e2e/saveVerifiableCredential.spec.ts
@@ -6,7 +6,7 @@ import { isError, isSuccess, Result } from '@blockchain-lab-um/utils';
import { IDataManagerSaveResult } from '@blockchain-lab-um/veramo-datamanager';
import { DIDDataStore } from '@glazed/did-datastore';
import { MetaMaskInpageProvider } from '@metamask/providers';
-import type { SnapsGlobalObject } from '@metamask/snaps-types';
+import { SnapsProvider } from '@metamask/snaps-sdk';
import type { IIdentifier, VerifiableCredential } from '@veramo/core';
import { beforeAll, beforeEach, describe, expect, it, vi } from 'vitest';
@@ -22,7 +22,7 @@ import { createMockSnap, SnapMock } from '../helpers/snapMock';
describe('saveVerifiableCredential', () => {
let ceramicData: StoredCredentials;
- let snapMock: SnapsGlobalObject & SnapMock;
+ let snapMock: SnapsProvider & SnapMock;
let identifier: IIdentifier;
let agent: Agent;
let generatedVC: VerifiableCredential;
diff --git a/packages/snap/tests/e2e/setCeramicSession.spec.ts b/packages/snap/tests/e2e/setCeramicSession.spec.ts
index 5c0f61d32..db60d8a9b 100644
--- a/packages/snap/tests/e2e/setCeramicSession.spec.ts
+++ b/packages/snap/tests/e2e/setCeramicSession.spec.ts
@@ -1,6 +1,6 @@
import { isError, Result } from '@blockchain-lab-um/utils';
import { MetaMaskInpageProvider } from '@metamask/providers';
-import type { SnapsGlobalObject } from '@metamask/snaps-types';
+import { SnapsProvider } from '@metamask/snaps-sdk';
import { beforeAll, describe, expect, it } from 'vitest';
import { onRpcRequest } from '../../src';
@@ -9,7 +9,7 @@ import { getDefaultSnapState } from '../data/defaultSnapState';
import { createMockSnap, SnapMock } from '../helpers/snapMock';
describe('setCeramicSession', () => {
- let snapMock: SnapsGlobalObject & SnapMock;
+ let snapMock: SnapsProvider & SnapMock;
beforeAll(async () => {
snapMock = createMockSnap();
diff --git a/packages/snap/tests/e2e/setCurrentAccount.spec.ts b/packages/snap/tests/e2e/setCurrentAccount.spec.ts
index 9da2b0563..e5bbf74c6 100644
--- a/packages/snap/tests/e2e/setCurrentAccount.spec.ts
+++ b/packages/snap/tests/e2e/setCurrentAccount.spec.ts
@@ -1,7 +1,7 @@
import { CURRENT_STATE_VERSION } from '@blockchain-lab-um/masca-types';
import { isError, isSuccess, Result } from '@blockchain-lab-um/utils';
import { MetaMaskInpageProvider } from '@metamask/providers';
-import type { SnapsGlobalObject } from '@metamask/snaps-types';
+import { SnapsProvider } from '@metamask/snaps-sdk';
import { VerifiableCredential } from '@veramo/core';
import { beforeAll, describe, expect, it } from 'vitest';
@@ -12,7 +12,7 @@ import { getDefaultSnapState } from '../data/defaultSnapState';
import { createMockSnap, SnapMock } from '../helpers/snapMock';
describe('setCurrentAccount', () => {
- let snapMock: SnapsGlobalObject & SnapMock;
+ let snapMock: SnapsProvider & SnapMock;
beforeAll(async () => {
snapMock = createMockSnap();
diff --git a/packages/snap/tests/e2e/setVCStore.spec.ts b/packages/snap/tests/e2e/setVCStore.spec.ts
index f8dd82ff5..6b56cfd90 100644
--- a/packages/snap/tests/e2e/setVCStore.spec.ts
+++ b/packages/snap/tests/e2e/setVCStore.spec.ts
@@ -1,6 +1,6 @@
import { isError, isSuccess, Result } from '@blockchain-lab-um/utils';
import { MetaMaskInpageProvider } from '@metamask/providers';
-import type { SnapsGlobalObject } from '@metamask/snaps-types';
+import { SnapsProvider } from '@metamask/snaps-sdk';
import { beforeAll, describe, expect, it } from 'vitest';
import { onRpcRequest } from '../../src';
@@ -9,7 +9,7 @@ import { getDefaultSnapState } from '../data/defaultSnapState';
import { createMockSnap, SnapMock } from '../helpers/snapMock';
describe('setVCStore', () => {
- let snapMock: SnapsGlobalObject & SnapMock;
+ let snapMock: SnapsProvider & SnapMock;
beforeAll(async () => {
snapMock = createMockSnap();
diff --git a/packages/snap/tests/e2e/signData.spec.ts b/packages/snap/tests/e2e/signData.spec.ts
index 705f6966d..b642bbadd 100644
--- a/packages/snap/tests/e2e/signData.spec.ts
+++ b/packages/snap/tests/e2e/signData.spec.ts
@@ -5,7 +5,7 @@ import {
} from '@blockchain-lab-um/masca-types';
import { isError, isSuccess, Result } from '@blockchain-lab-um/utils';
import { MetaMaskInpageProvider } from '@metamask/providers';
-import type { SnapsGlobalObject } from '@metamask/snaps-types';
+import { SnapsProvider } from '@metamask/snaps-sdk';
import { bytesToBase64url } from '@veramo/utils';
import elliptic from 'elliptic';
import { HDNodeWallet, Mnemonic } from 'ethers';
@@ -209,7 +209,7 @@ const JWZ_TEST_CASES = [
];
describe('signData', () => {
- let snapMock: SnapsGlobalObject & SnapMock;
+ let snapMock: SnapsProvider & SnapMock;
let currentMethod: string;
beforeAll(async () => {
diff --git a/packages/snap/tests/e2e/switchDIDMethod.spec.ts b/packages/snap/tests/e2e/switchDIDMethod.spec.ts
index f51a2d80e..c96c0c029 100644
--- a/packages/snap/tests/e2e/switchDIDMethod.spec.ts
+++ b/packages/snap/tests/e2e/switchDIDMethod.spec.ts
@@ -1,6 +1,6 @@
import { isError, Result } from '@blockchain-lab-um/utils';
import { MetaMaskInpageProvider } from '@metamask/providers';
-import type { SnapsGlobalObject } from '@metamask/snaps-types';
+import { SnapsProvider } from '@metamask/snaps-sdk';
import { beforeAll, describe, expect, it } from 'vitest';
import { onRpcRequest } from '../../src';
@@ -34,7 +34,7 @@ const methods = [
];
describe('switchDIDMethod', () => {
- let snapMock: SnapsGlobalObject & SnapMock;
+ let snapMock: SnapsProvider & SnapMock;
beforeAll(async () => {
snapMock = createMockSnap();
diff --git a/packages/snap/tests/e2e/togglePopups.spec.ts b/packages/snap/tests/e2e/togglePopups.spec.ts
index c242a5507..cdae60d88 100644
--- a/packages/snap/tests/e2e/togglePopups.spec.ts
+++ b/packages/snap/tests/e2e/togglePopups.spec.ts
@@ -1,6 +1,6 @@
import { isError, Result } from '@blockchain-lab-um/utils';
import { MetaMaskInpageProvider } from '@metamask/providers';
-import type { SnapsGlobalObject } from '@metamask/snaps-types';
+import { SnapsProvider } from '@metamask/snaps-sdk';
import { beforeAll, describe, expect, it } from 'vitest';
import { onRpcRequest } from '../../src';
@@ -12,7 +12,7 @@ describe('togglePopups', () => {
it('pass', () => {
expect(true).toBe(true);
});
- let snapMock: SnapsGlobalObject & SnapMock;
+ let snapMock: SnapsProvider & SnapMock;
beforeAll(async () => {
snapMock = createMockSnap();
diff --git a/packages/snap/tests/e2e/validateStoredCeramicSession.spec.ts b/packages/snap/tests/e2e/validateStoredCeramicSession.spec.ts
index c9cc51897..6ef37bcb7 100644
--- a/packages/snap/tests/e2e/validateStoredCeramicSession.spec.ts
+++ b/packages/snap/tests/e2e/validateStoredCeramicSession.spec.ts
@@ -1,7 +1,7 @@
import { CURRENT_STATE_VERSION } from '@blockchain-lab-um/masca-types';
import { isError, Result } from '@blockchain-lab-um/utils';
import { MetaMaskInpageProvider } from '@metamask/providers';
-import type { SnapsGlobalObject } from '@metamask/snaps-types';
+import { SnapsProvider } from '@metamask/snaps-sdk';
import { beforeAll, describe, expect, it } from 'vitest';
import { onRpcRequest } from '../../src';
@@ -10,7 +10,7 @@ import { getDefaultSnapState } from '../data/defaultSnapState';
import { createMockSnap, SnapMock } from '../helpers/snapMock';
describe('validateStoredCeramicSession', () => {
- let snapMock: SnapsGlobalObject & SnapMock;
+ let snapMock: SnapsProvider & SnapMock;
beforeAll(async () => {
snapMock = createMockSnap();
diff --git a/packages/snap/tests/e2e/verifyData.spec.ts b/packages/snap/tests/e2e/verifyData.spec.ts
index f66453dc6..09705a378 100644
--- a/packages/snap/tests/e2e/verifyData.spec.ts
+++ b/packages/snap/tests/e2e/verifyData.spec.ts
@@ -1,6 +1,6 @@
import { isError, Result } from '@blockchain-lab-um/utils';
import { MetaMaskInpageProvider } from '@metamask/providers';
-import type { SnapsGlobalObject } from '@metamask/snaps-types';
+import { SnapsProvider } from '@metamask/snaps-sdk';
import { VerifiableCredential, VerifiablePresentation } from '@veramo/core';
import { beforeAll, beforeEach, describe, expect, it } from 'vitest';
@@ -14,7 +14,7 @@ import { createTestVCs } from '../helpers/generateTestVCs';
import { createMockSnap, SnapMock } from '../helpers/snapMock';
describe('verifyData', () => {
- let snapMock: SnapsGlobalObject & SnapMock;
+ let snapMock: SnapsProvider & SnapMock;
let agent: Agent;
let generatedVC: VerifiableCredential;
diff --git a/packages/snap/tests/helpers/snapMock.ts b/packages/snap/tests/helpers/snapMock.ts
index 35d52a565..c07e1fd85 100644
--- a/packages/snap/tests/helpers/snapMock.ts
+++ b/packages/snap/tests/helpers/snapMock.ts
@@ -3,7 +3,7 @@ import type { MascaState } from '@blockchain-lab-um/masca-types';
import { BIP44CoinTypeNode } from '@metamask/key-tree';
import type { RequestArguments } from '@metamask/providers/dist/BaseProvider';
import type { Maybe } from '@metamask/providers/dist/utils';
-import type { SnapsGlobalObject } from '@metamask/snaps-types';
+import { SnapsProvider } from '@metamask/snaps-sdk';
import { AlchemyProvider, Filter, TransactionRequest } from 'ethers';
import { vi } from 'vitest';
@@ -130,6 +130,6 @@ export class SnapMock implements ISnapMock {
}
}
-export function createMockSnap(): SnapsGlobalObject & SnapMock {
- return new SnapMock() as SnapsGlobalObject & SnapMock;
+export function createMockSnap(): SnapsProvider & SnapMock {
+ return new SnapMock() as SnapsProvider & SnapMock;
}
diff --git a/packages/snap/tests/unit/Storage.service.spec.ts b/packages/snap/tests/unit/Storage.service.spec.ts
index a0ef0d77e..3354d0a90 100644
--- a/packages/snap/tests/unit/Storage.service.spec.ts
+++ b/packages/snap/tests/unit/Storage.service.spec.ts
@@ -1,6 +1,6 @@
import { CURRENT_STATE_VERSION } from '@blockchain-lab-um/masca-types';
import { MetaMaskInpageProvider } from '@metamask/providers';
-import { SnapsGlobalObject } from '@metamask/snaps-types';
+import { SnapsProvider } from '@metamask/snaps-sdk';
import { beforeEach, describe, expect, it } from 'vitest';
import StorageService from '../../src/storage/Storage.service';
@@ -8,7 +8,7 @@ import { getInitialSnapState } from '../../src/utils/config';
import { createMockSnap, SnapMock } from '../helpers/snapMock';
describe('Storage Service', () => {
- let snapMock: SnapsGlobalObject & SnapMock;
+ let snapMock: SnapsProvider & SnapMock;
beforeEach(async () => {
snapMock = createMockSnap();
snapMock.rpcMocks.snap_manageState({
diff --git a/packages/snap/tests/unit/Veramo.service.spec.ts b/packages/snap/tests/unit/Veramo.service.spec.ts
index 8719dbe63..462db7837 100644
--- a/packages/snap/tests/unit/Veramo.service.spec.ts
+++ b/packages/snap/tests/unit/Veramo.service.spec.ts
@@ -2,7 +2,7 @@ import { CURRENT_STATE_VERSION, Filter } from '@blockchain-lab-um/masca-types';
import { StreamID } from '@ceramicnetwork/streamid';
import { DIDDataStore } from '@glazed/did-datastore';
import { MetaMaskInpageProvider } from '@metamask/providers';
-import type { SnapsGlobalObject } from '@metamask/snaps-types';
+import { SnapsProvider } from '@metamask/snaps-sdk';
import { IIdentifier } from '@veramo/core';
import { beforeAll, beforeEach, describe, expect, it, vi } from 'vitest';
@@ -39,7 +39,7 @@ import { createMockSnap, SnapMock } from '../helpers/snapMock';
const credentials = [EXAMPLE_VC, EXAMPLE_VC2, EXAMPLE_VC_EIP712];
describe('Veramo Service', () => {
- let snapMock: SnapsGlobalObject & SnapMock;
+ let snapMock: SnapsProvider & SnapMock;
let ceramicData: StoredCredentials;
beforeEach(async () => {
diff --git a/packages/snap/tests/unit/Wallet.service.spec.ts b/packages/snap/tests/unit/Wallet.service.spec.ts
index d5703ce62..7d2ac82ca 100644
--- a/packages/snap/tests/unit/Wallet.service.spec.ts
+++ b/packages/snap/tests/unit/Wallet.service.spec.ts
@@ -3,7 +3,7 @@ import {
InternalSigMethods,
} from '@blockchain-lab-um/masca-types';
import { MetaMaskInpageProvider } from '@metamask/providers';
-import type { SnapsGlobalObject } from '@metamask/snaps-types';
+import { SnapsProvider } from '@metamask/snaps-sdk';
import { beforeAll, beforeEach, describe, expect, it } from 'vitest';
import StorageService from '../../src/storage/Storage.service';
@@ -31,7 +31,7 @@ const methods = [
];
describe('Wallet Service', () => {
- let snapMock: SnapsGlobalObject & SnapMock;
+ let snapMock: SnapsProvider & SnapMock;
let ethereumMock: MetaMaskInpageProvider;
beforeAll(async () => {
diff --git a/packages/snap/tests/unit/ceramic.spec.ts b/packages/snap/tests/unit/ceramic.spec.ts
index 7f3baf749..19241362b 100644
--- a/packages/snap/tests/unit/ceramic.spec.ts
+++ b/packages/snap/tests/unit/ceramic.spec.ts
@@ -1,6 +1,6 @@
// TODO Revisit after composeDB is implemented
import { MetaMaskInpageProvider } from '@metamask/providers';
-import type { SnapsGlobalObject } from '@metamask/snaps-types';
+import { SnapsProvider } from '@metamask/snaps-sdk';
import type { W3CVerifiableCredential } from '@veramo/core';
import { beforeAll, beforeEach, describe, expect, it } from 'vitest';
@@ -12,7 +12,7 @@ import { EXAMPLE_VC } from '../data/verifiable-credentials';
import { createMockSnap, SnapMock } from '../helpers/snapMock';
describe('Utils [ceramic]', () => {
- let snapMock: SnapsGlobalObject & SnapMock;
+ let snapMock: SnapsProvider & SnapMock;
beforeAll(async () => {
snapMock = createMockSnap();
diff --git a/patches/@metamask__snaps-sdk@1.2.0.patch b/patches/@metamask__snaps-sdk@1.2.0.patch
new file mode 100644
index 000000000..21a053bc3
--- /dev/null
+++ b/patches/@metamask__snaps-sdk@1.2.0.patch
@@ -0,0 +1,16 @@
+diff --git a/CHANGELOG.md b/CHANGELOG.md
+deleted file mode 100644
+index 649aa62a91fdb0429db1d9553a3e80824576c53a..0000000000000000000000000000000000000000
+diff --git a/dist/types/types/global.d.ts b/dist/types/types/global.d.ts
+index c3bd544a4c06ee552f753a913f6d39ca6f8575c1..a5e4d5f4650e52f6ce9d2ca97a3ca65475b27c08 100644
+--- a/dist/types/types/global.d.ts
++++ b/dist/types/types/global.d.ts
+@@ -3,6 +3,6 @@ import type { SnapsEthereumProvider, SnapsProvider } from './provider';
+ * Constants that are available globally in the Snap.
+ */
+ declare global {
+- const ethereum: SnapsEthereumProvider;
+- const snap: SnapsProvider;
++ var ethereum: SnapsEthereumProvider;
++ var snap: SnapsProvider;
+ }
diff --git a/patches/@metamask__snaps-types@3.0.1.patch b/patches/@metamask__snaps-types@3.0.1.patch
deleted file mode 100644
index f303262b4..000000000
--- a/patches/@metamask__snaps-types@3.0.1.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-diff --git a/CHANGELOG.md b/CHANGELOG.md
-deleted file mode 100644
-index 135baace0452dc27edd1e87ca295f63ec69550fb..0000000000000000000000000000000000000000
-diff --git a/dist/types/global.d.ts b/dist/types/global.d.ts
-index b877eefc00379298bbc165b0481794edbe7509a2..c11eb088e84a9143edd35284ed3ee9441930d4f6 100644
---- a/dist/types/global.d.ts
-+++ b/dist/types/global.d.ts
-@@ -1,6 +1,6 @@
- import type { MetaMaskInpageProvider } from '@metamask/providers';
- import type { SnapsGlobalObject } from '@metamask/snaps-rpc-methods';
- declare global {
-- const ethereum: MetaMaskInpageProvider;
-- const snap: SnapsGlobalObject;
-+ var ethereum: MetaMaskInpageProvider;
-+ var snap: SnapsGlobalObject;
- }
\ No newline at end of file
diff --git a/patches/@metamask__snaps-utils@3.2.0.patch b/patches/@metamask__snaps-utils@3.2.0.patch
deleted file mode 100644
index 65d00b133..000000000
--- a/patches/@metamask__snaps-utils@3.2.0.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-diff --git a/CHANGELOG.md b/CHANGELOG.md
-deleted file mode 100644
-index 245389ef8b6e6415b3709b7bbd1e72c382e9f696..0000000000000000000000000000000000000000
-diff --git a/package.json b/package.json
-index f88ffbc8fe81579b9f109c58dbc76b5c30f13d59..ed53a4257a9ec5c4440e12cbc0399d4a7f942b3b 100644
---- a/package.json
-+++ b/package.json
-@@ -13,7 +13,8 @@
- "require": "./dist/cjs/index.browser.js"
- },
- "import": "./dist/esm/index.js",
-- "require": "./dist/cjs/index.js"
-+ "require": "./dist/cjs/index.js",
-+ "types": "./dist/types/index.d.ts"
- },
- "./test-utils": {
- "import": "./dist/esm/test-utils/index.js",
\ No newline at end of file
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 37ccce26e..1837dfc49 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -14,12 +14,9 @@ patchedDependencies:
'@digitalbazaar/http-client@1.2.0':
hash: yl3b524jp4dtc7mdahww7krgi4
path: patches/@digitalbazaar__http-client@1.2.0.patch
- '@metamask/snaps-types@3.0.1':
- hash: pr6uckfzqih4pp3tajlwuc43z4
- path: patches/@metamask__snaps-types@3.0.1.patch
- '@metamask/snaps-utils@3.2.0':
- hash: dkdvix6fi6ugs3inwvdei3czme
- path: patches/@metamask__snaps-utils@3.2.0.patch
+ '@metamask/snaps-sdk@1.2.0':
+ hash: opksiuvz2n6at3zcjhfdijadqq
+ path: patches/@metamask__snaps-sdk@1.2.0.patch
cross-fetch@3.1.8:
hash: o7exbxzvysudd5km3yp6v3mgsi
path: patches/cross-fetch@3.1.8.patch
@@ -741,17 +738,14 @@ importers:
specifier: ^9.0.0
version: 9.0.0
'@metamask/providers':
- specifier: 13.1.0
- version: 13.1.0
- '@metamask/snaps-types':
- specifier: 3.0.1
- version: 3.0.1(patch_hash=pr6uckfzqih4pp3tajlwuc43z4)(@metamask/approval-controller@4.1.0)
- '@metamask/snaps-ui':
- specifier: 3.1.0
- version: 3.1.0
+ specifier: 14.0.2
+ version: 14.0.2
+ '@metamask/snaps-sdk':
+ specifier: 1.2.0
+ version: 1.2.0(patch_hash=opksiuvz2n6at3zcjhfdijadqq)
'@metamask/utils':
- specifier: ^8.2.0
- version: 8.2.0
+ specifier: ^8.2.1
+ version: 8.2.1
'@types/lodash.clonedeep':
specifier: ^4.5.7
version: 4.5.8
@@ -835,11 +829,8 @@ importers:
specifier: 2.17.0
version: 2.17.0
'@metamask/snaps-cli':
- specifier: 3.0.1
- version: 3.0.1(@metamask/approval-controller@4.1.0)(esbuild@0.19.5)
- '@metamask/snaps-utils':
- specifier: 3.2.0
- version: 3.2.0(patch_hash=dkdvix6fi6ugs3inwvdei3czme)(@metamask/approval-controller@4.1.0)
+ specifier: 3.0.3
+ version: 3.0.3(@metamask/approval-controller@4.1.0)(esbuild@0.19.5)
'@types/elliptic':
specifier: ^6.4.16
version: 6.4.16
@@ -1145,6 +1136,7 @@ packages:
/@babel/compat-data@7.22.20:
resolution: {integrity: sha512-BQYjKbpXjoXwFW5jGqiizJQQT/aC7pFm9Ok1OWssonuguICi264lbgMzRp2ZMmRSlfkX6DsWDDcsrctK8Rwfiw==}
engines: {node: '>=6.9.0'}
+ dev: true
/@babel/compat-data@7.23.2:
resolution: {integrity: sha512-0S9TQMmDHlqAZ2ITT95irXKfxN9bncq8ZCoJhun3nHL/lLUxd2NKBJYoNGWH7S0hz6fRQwWlAWn/ILM0C70KZQ==}
@@ -1167,7 +1159,7 @@ packages:
gensync: 1.0.0-beta.2
json5: 2.2.3
lodash: 4.17.21
- resolve: 1.22.4
+ resolve: 1.22.8
semver: 5.7.2
source-map: 0.5.7
transitivePeerDependencies:
@@ -1220,7 +1212,7 @@ packages:
resolution: {integrity: sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/compat-data': 7.22.20
+ '@babel/compat-data': 7.23.2
'@babel/helper-validator-option': 7.22.15
browserslist: 4.22.1
lru-cache: 5.1.1
@@ -1628,7 +1620,7 @@ packages:
'@babel/core': 7.12.9
'@babel/helper-plugin-utils': 7.22.5
'@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.12.9)
- '@babel/plugin-transform-parameters': 7.22.5(@babel/core@7.12.9)
+ '@babel/plugin-transform-parameters': 7.22.15(@babel/core@7.12.9)
/@babel/plugin-proposal-object-rest-spread@7.20.7(@babel/core@7.23.2):
resolution: {integrity: sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==}
@@ -2375,22 +2367,22 @@ packages:
'@babel/helper-skip-transparent-expression-wrappers': 7.22.5
'@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.2)
- /@babel/plugin-transform-parameters@7.22.15(@babel/core@7.23.2):
+ /@babel/plugin-transform-parameters@7.22.15(@babel/core@7.12.9):
resolution: {integrity: sha512-hjk7qKIqhyzhhUvRT683TYQOFa/4cQKwQy7ALvTpODswN40MljzNDa0YldevS6tGbxwaEKVn502JmY0dP7qEtQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.23.2
+ '@babel/core': 7.12.9
'@babel/helper-plugin-utils': 7.22.5
- /@babel/plugin-transform-parameters@7.22.5(@babel/core@7.12.9):
- resolution: {integrity: sha512-AVkFUBurORBREOmHRKo06FjHYgjrabpdqRSwq6+C7R5iTCZOsM4QbcB27St0a4U6fffyAOqh3s/qEfybAhfivg==}
+ /@babel/plugin-transform-parameters@7.22.15(@babel/core@7.23.2):
+ resolution: {integrity: sha512-hjk7qKIqhyzhhUvRT683TYQOFa/4cQKwQy7ALvTpODswN40MljzNDa0YldevS6tGbxwaEKVn502JmY0dP7qEtQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.12.9
+ '@babel/core': 7.23.2
'@babel/helper-plugin-utils': 7.22.5
/@babel/plugin-transform-parameters@7.22.5(@babel/core@7.23.2):
@@ -4918,6 +4910,7 @@ packages:
/@endo/env-options@0.1.4:
resolution: {integrity: sha512-Ol8ct0aW8VK1ZaqntnUJfrYT59P6Xn36XPbHzkqQhsYkpudKDn5ILYEwGmSO/Ff+XJjv/pReNI0lhOyyrDa9mg==}
+ dev: true
/@esbuild/android-arm64@0.18.20:
resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==}
@@ -6666,27 +6659,29 @@ packages:
dependencies:
'@metamask/base-controller': 3.2.3
'@metamask/rpc-errors': 6.1.0
- '@metamask/utils': 8.2.0
+ '@metamask/utils': 8.2.1
immer: 9.0.21
nanoid: 3.3.6
transitivePeerDependencies:
- supports-color
+ dev: true
/@metamask/base-controller@3.2.3:
resolution: {integrity: sha512-k66oZe7BOEx0D5N5X8feE/32QlrUTmiEHHAZU/yCac2+VHllJOCEQV/cTeaAtgepnEf8O7SskvYZN+eIjgS99w==}
engines: {node: '>=16.0.0'}
dependencies:
- '@metamask/utils': 8.2.0
+ '@metamask/utils': 8.2.1
immer: 9.0.21
transitivePeerDependencies:
- supports-color
+ dev: true
/@metamask/controller-utils@5.0.2:
resolution: {integrity: sha512-bHgyPL+Ah6OBOkjWykA1NpTZdpRhoJjCrvuFf8mFxBJLvXE9m/rw9DYp2Rw9WXonMWK17NxwQv/7bKzsGZnjVQ==}
engines: {node: '>=16.0.0'}
dependencies:
'@metamask/eth-query': 3.0.1
- '@metamask/utils': 8.2.0
+ '@metamask/utils': 8.2.1
'@spruceid/siwe-parser': 1.1.3
eth-ens-namehash: 2.0.8
ethereumjs-util: 7.1.5
@@ -6694,6 +6689,7 @@ packages:
fast-deep-equal: 3.1.3
transitivePeerDependencies:
- supports-color
+ dev: true
/@metamask/detect-provider@2.0.0:
resolution: {integrity: sha512-sFpN+TX13E9fdBDh9lvQeZdJn4qYoRb/6QF2oZZK/Pn559IhCFacPMU1rMuqyXoFQF3JSJfii2l98B87QDPeCQ==}
@@ -6706,6 +6702,7 @@ packages:
dependencies:
json-rpc-random-id: 1.0.1
xtend: 4.0.2
+ dev: true
/@metamask/eth-sig-util@6.0.1:
resolution: {integrity: sha512-Lt2DC4w4Sbtbd4DCsE+vfjdWcnFHSxfSfiJpt66hfLtAbetHsvbZcwKoa46TEA3G/V48ZuS4NWvJmtaA4F8UWA==}
@@ -6729,10 +6726,21 @@ packages:
dependencies:
'@metamask/rpc-errors': 6.1.0
'@metamask/safe-event-emitter': 3.0.0
- '@metamask/utils': 8.2.0
+ '@metamask/utils': 8.2.1
transitivePeerDependencies:
- supports-color
+ /@metamask/json-rpc-engine@7.3.0:
+ resolution: {integrity: sha512-93cOdqnpt0P9uU/aC65GZulaDh6qNFEm8IFXHbI4lisK7oebU2SLarJUBZPebjko7hzwmfV1M1h7FQAlyRkVLg==}
+ engines: {node: '>=16.0.0'}
+ dependencies:
+ '@metamask/rpc-errors': 6.1.0
+ '@metamask/safe-event-emitter': 3.0.0
+ '@metamask/utils': 8.2.1
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
/@metamask/key-tree@9.0.0:
resolution: {integrity: sha512-Fma7twGR7PK0QLby0ZCI2q4VDiSlZM0iIUYvmExDtiS6TIGQBu4br0rMWgfgMBz+arFFw8FriQxRrNBv4hb8SA==}
engines: {node: '>=16.0.0'}
@@ -6755,24 +6763,32 @@ packages:
readable-stream: 2.3.8
dev: false
- /@metamask/permission-controller@5.0.0(@metamask/approval-controller@4.1.0):
- resolution: {integrity: sha512-l9+oPn09qoAFdwrI2nlbgLmXI9HDXLR4ef+kLXhIYff4ISTqxxD160vueH8Ip6woBgQ8Qa0q3sdERAN7nd4FfA==}
+ /@metamask/object-multiplex@2.0.0:
+ resolution: {integrity: sha512-+ItrieVZie3j2LfYE0QkdW3dsEMfMEp419IGx1zyeLqjRZ14iQUPRO0H6CGgfAAoC0x6k2PfCAGRwJUA9BMrqA==}
+ engines: {node: ^16.20 || ^18.16 || >=20}
+ dependencies:
+ once: 1.4.0
+ readable-stream: 3.6.2
+
+ /@metamask/permission-controller@5.0.1(@metamask/approval-controller@4.1.0):
+ resolution: {integrity: sha512-dm/8U4yHtq0cwW/vrVpKT9fFyHdGC6BBwW+e1EUwm+OUhOHtwcB08XuAx5XNVfzE/ymbuBYJyE2SgbvOxvd4PQ==}
engines: {node: '>=16.0.0'}
peerDependencies:
- '@metamask/approval-controller': ^4.0.0
+ '@metamask/approval-controller': ^4.1.0
dependencies:
'@metamask/approval-controller': 4.1.0
'@metamask/base-controller': 3.2.3
'@metamask/controller-utils': 5.0.2
- '@metamask/json-rpc-engine': 7.2.0
+ '@metamask/json-rpc-engine': 7.3.0
'@metamask/rpc-errors': 6.1.0
- '@metamask/utils': 8.2.0
+ '@metamask/utils': 8.2.1
'@types/deep-freeze-strict': 1.1.0
deep-freeze-strict: 1.1.1
immer: 9.0.21
nanoid: 3.3.6
transitivePeerDependencies:
- supports-color
+ dev: true
/@metamask/providers@13.1.0:
resolution: {integrity: sha512-/2Ti81CwZ/9LLpAm9Law+7z1PYbR3EiNXNKCbkppOfxxR1MbC2ps8/GFTjk7UHEMhAVG4k9ziGW8mMsutNVxmA==}
@@ -6793,11 +6809,30 @@ packages:
- supports-color
dev: false
+ /@metamask/providers@14.0.2:
+ resolution: {integrity: sha512-6KuCLQVzE/8IA1r8LkTo0FbG4fgm7ryjzleda0lMsz5XMxinNGuXAoh7Y08bX5OHVpDEjkHREPhuLw4dFK9wIQ==}
+ engines: {node: '>=16.0.0'}
+ dependencies:
+ '@metamask/json-rpc-engine': 7.2.0
+ '@metamask/object-multiplex': 2.0.0
+ '@metamask/rpc-errors': 6.1.0
+ '@metamask/safe-event-emitter': 3.0.0
+ '@metamask/utils': 8.2.1
+ detect-browser: 5.3.0
+ extension-port-stream: 3.0.0
+ fast-deep-equal: 3.1.3
+ is-stream: 2.0.1
+ json-rpc-middleware-stream: 5.0.1
+ readable-stream: 3.6.2
+ webextension-polyfill: 0.10.0
+ transitivePeerDependencies:
+ - supports-color
+
/@metamask/rpc-errors@6.1.0:
resolution: {integrity: sha512-JQElKxai26FpDyRKO/yH732wI+BV90i1u6pOuDOpdADSbppB2g1pPh3AGST1zkZqEE9eIKIUw8UdBQ4rp3VTSg==}
engines: {node: '>=16.0.0'}
dependencies:
- '@metamask/utils': 8.2.0
+ '@metamask/utils': 8.2.1
fast-safe-stringify: 2.1.1
transitivePeerDependencies:
- supports-color
@@ -6812,8 +6847,8 @@ packages:
'@noble/hashes': 1.1.5
'@scure/base': 1.1.3
- /@metamask/snaps-cli@3.0.1(@metamask/approval-controller@4.1.0)(esbuild@0.19.5):
- resolution: {integrity: sha512-8Rt7ln7qVLx3xADHVLSv1399a6YeWW5jthSmrlj/dKTLu8M9A84R0I4spEcw8tZW42SAoCSppQCA8HBn4Y4CVw==}
+ /@metamask/snaps-cli@3.0.3(@metamask/approval-controller@4.1.0)(esbuild@0.19.5):
+ resolution: {integrity: sha512-8BG9OG0NhnYt4B/N0WgP3dpH6H6b8YlXemuVFqORs21aEQUaXAmIk3LV+jdfRzsu6tp9i4TG7XWP8NRoJAdmNw==}
engines: {node: ^18.16 || >=20}
hasBin: true
dependencies:
@@ -6825,9 +6860,10 @@ packages:
'@babel/plugin-transform-runtime': 7.23.2(@babel/core@7.23.2)
'@babel/preset-env': 7.23.2(@babel/core@7.23.2)
'@babel/preset-typescript': 7.23.2(@babel/core@7.23.2)
- '@metamask/snaps-utils': 3.2.0(patch_hash=dkdvix6fi6ugs3inwvdei3czme)(@metamask/approval-controller@4.1.0)
- '@metamask/snaps-webpack-plugin': 3.0.1(@metamask/approval-controller@4.1.0)
- '@metamask/utils': 8.2.0
+ '@metamask/snaps-sdk': 1.2.0(patch_hash=opksiuvz2n6at3zcjhfdijadqq)
+ '@metamask/snaps-utils': 5.0.0(@metamask/approval-controller@4.1.0)
+ '@metamask/snaps-webpack-plugin': 3.1.1(@metamask/approval-controller@4.1.0)
+ '@metamask/utils': 8.2.1
'@swc/core': 1.3.78
assert: 2.0.0
babelify: 10.0.0(@babel/core@7.23.2)
@@ -6878,66 +6914,40 @@ packages:
resolution: {integrity: sha512-gypNopoqgTaiOgRdJoqKAZyQSbsIHENRQmTBikZGcKAWhyBv81mA2IcVT8Qr9FgtFVrKG/0Wj+LbWQCC7HrHCw==}
engines: {node: '>=14.0.0'}
dependencies:
- '@metamask/utils': 8.2.0
+ '@metamask/utils': 8.2.1
'@noble/secp256k1': 1.7.1
superstruct: 1.0.3
transitivePeerDependencies:
- supports-color
+ dev: true
- /@metamask/snaps-rpc-methods@3.2.1(@metamask/approval-controller@4.1.0):
- resolution: {integrity: sha512-vSlCXA0NYNeYi5zNfgPwsOeDKZ7NjB1SUUYZtFODRxs81cYwXzaqTc7EGlsXVuCL6hFePsPKcoZIVWC7+4Qyfg==}
+ /@metamask/snaps-sdk@1.2.0(patch_hash=opksiuvz2n6at3zcjhfdijadqq):
+ resolution: {integrity: sha512-fAN/t2X9ernX7zA6QPMgsZhDbNitSVThU5jkmZz8hbLdqrix6vzFS2UybynXTiZlUteXGdpVykZpw5w9YnfYUg==}
engines: {node: ^18.16 || >=20}
dependencies:
'@metamask/key-tree': 9.0.0
- '@metamask/permission-controller': 5.0.0(@metamask/approval-controller@4.1.0)
+ '@metamask/providers': 14.0.2
'@metamask/rpc-errors': 6.1.0
- '@metamask/snaps-ui': 3.1.0
- '@metamask/snaps-utils': 3.2.0(patch_hash=dkdvix6fi6ugs3inwvdei3czme)(@metamask/approval-controller@4.1.0)
- '@metamask/utils': 8.2.0
- '@noble/hashes': 1.3.2
- superstruct: 1.0.3
- transitivePeerDependencies:
- - '@metamask/approval-controller'
- - supports-color
- dev: false
-
- /@metamask/snaps-types@3.0.1(patch_hash=pr6uckfzqih4pp3tajlwuc43z4)(@metamask/approval-controller@4.1.0):
- resolution: {integrity: sha512-p8BGDDTX0yh8vVYSoZK1l4ivmdPZyqAoJggCxu9LF9dupoXEAKrdyK+4bfIuRJYkHlIz7oZD+RIGbbvP592NYw==}
- engines: {node: ^18.16 || >=20}
- dependencies:
- '@metamask/providers': 13.1.0
- '@metamask/snaps-rpc-methods': 3.2.1(@metamask/approval-controller@4.1.0)
- '@metamask/snaps-utils': 3.2.0(patch_hash=dkdvix6fi6ugs3inwvdei3czme)(@metamask/approval-controller@4.1.0)
- '@metamask/utils': 8.2.0
- transitivePeerDependencies:
- - '@metamask/approval-controller'
- - supports-color
- dev: false
- patched: true
-
- /@metamask/snaps-ui@3.1.0:
- resolution: {integrity: sha512-31+GstgOMIuXRc8L5xhTEl4o4ZmdSmssepKmbs3NZED4tCjce9d99ZvN/iHReqSGWulkAX26SJsoonT3+EnMiQ==}
- engines: {node: ^18.16 || >=20}
- dependencies:
- '@metamask/utils': 8.2.0
+ '@metamask/utils': 8.2.1
is-svg: 4.4.0
superstruct: 1.0.3
transitivePeerDependencies:
- supports-color
+ patched: true
- /@metamask/snaps-utils@3.2.0(patch_hash=dkdvix6fi6ugs3inwvdei3czme)(@metamask/approval-controller@4.1.0):
- resolution: {integrity: sha512-nEOJgvj4RoUUeTumwVX0dLfFk06uCJy2hPHymKcupxu1eyKqjfSWNyfp49H9zNK/TqeHi4pKcOC/Zzx8WE8RMA==}
+ /@metamask/snaps-utils@5.0.0(@metamask/approval-controller@4.1.0):
+ resolution: {integrity: sha512-29sErNno5CzTrmgsG9SnHxFHbGPhyt2jh5wW6rIfLe4QVJfY/MhL1kR0hVqCIDHluCSl37PDGW1b8qfznRbOfA==}
engines: {node: ^18.16 || >=20}
dependencies:
'@babel/core': 7.23.2
'@babel/types': 7.23.0
'@metamask/base-controller': 3.2.3
'@metamask/key-tree': 9.0.0
- '@metamask/permission-controller': 5.0.0(@metamask/approval-controller@4.1.0)
+ '@metamask/permission-controller': 5.0.1(@metamask/approval-controller@4.1.0)
'@metamask/rpc-errors': 6.1.0
'@metamask/snaps-registry': 2.1.0
- '@metamask/snaps-ui': 3.1.0
- '@metamask/utils': 8.2.0
+ '@metamask/snaps-sdk': 1.2.0(patch_hash=opksiuvz2n6at3zcjhfdijadqq)
+ '@metamask/utils': 8.2.1
'@noble/hashes': 1.3.2
'@scure/base': 1.1.3
chalk: 4.1.2
@@ -6953,14 +6963,15 @@ packages:
transitivePeerDependencies:
- '@metamask/approval-controller'
- supports-color
- patched: true
+ dev: true
- /@metamask/snaps-webpack-plugin@3.0.1(@metamask/approval-controller@4.1.0):
- resolution: {integrity: sha512-08YCVyvDsr6J49TrjJNctMqrxtDwFfPVOQoN2e2xyoKelNVqqnz2SkSNUCrWq/1CNFYC6wAWHzUcsQNK9ZRv2Q==}
+ /@metamask/snaps-webpack-plugin@3.1.1(@metamask/approval-controller@4.1.0):
+ resolution: {integrity: sha512-nCRjZ+ZkrsgoYh5+rqZJ81Gw9aunrzGy9shFTDcZAeRT2K6slCSV1L5J0/qwVOJnpN5th0JjTwMFN0T0TH6wrQ==}
engines: {node: ^18.16 || >=20}
dependencies:
- '@metamask/snaps-utils': 3.2.0(patch_hash=dkdvix6fi6ugs3inwvdei3czme)(@metamask/approval-controller@4.1.0)
- '@metamask/utils': 8.2.0
+ '@metamask/snaps-sdk': 1.2.0(patch_hash=opksiuvz2n6at3zcjhfdijadqq)
+ '@metamask/snaps-utils': 5.0.0(@metamask/approval-controller@4.1.0)
+ '@metamask/utils': 8.2.1
webpack-sources: 3.2.3
transitivePeerDependencies:
- '@metamask/approval-controller'
@@ -7019,6 +7030,22 @@ packages:
superstruct: 1.0.3
transitivePeerDependencies:
- supports-color
+ dev: false
+
+ /@metamask/utils@8.2.1:
+ resolution: {integrity: sha512-dlnpow8r0YHDDL1xKCEwUoTGOAo9icdv+gaJG0EbgDnkD/BDqW2eH1XMtm9i7rPaiHWo/aLtcrh9WBhkCq/viw==}
+ engines: {node: '>=16.0.0'}
+ dependencies:
+ '@ethereumjs/tx': 4.2.0
+ '@noble/hashes': 1.3.2
+ '@scure/base': 1.1.3
+ '@types/debug': 4.1.10
+ debug: 4.3.4
+ pony-cause: 2.1.10
+ semver: 7.5.4
+ superstruct: 1.0.3
+ transitivePeerDependencies:
+ - supports-color
/@next/env@13.4.13:
resolution: {integrity: sha512-fwz2QgVg08v7ZL7KmbQBLF2PubR/6zQdKBgmHEl3BCyWTEDsAQEijjw2gbFhI1tcKfLdOOJUXntz5vZ4S0Polg==}
@@ -10363,6 +10390,7 @@ packages:
resolution: {integrity: sha512-oQ8PcwDqjGWJvLmvAF2yzd6iniiWxK0Qtz+Dw+gLD/W5zOQJiKIUXwslHOm8VB8OOOKW9vfR3dnPBhHaZDvRsw==}
dependencies:
apg-js: 4.2.0
+ dev: true
/@spruceid/siwe-parser@2.0.2:
resolution: {integrity: sha512-9WuA0ios2537cWYu39MMeH0O2KdrMKgKlOBUTWRTXQjCYu5B+mHCA0JkCbFaJ/0EjxoVIcYCXIW/DoPEpw+PqA==}
@@ -11344,6 +11372,7 @@ packages:
/@types/deep-freeze-strict@1.1.0:
resolution: {integrity: sha512-fILflsS66kGQ4iIBzYoxuQCWK1wQdy/ooguTofUk0KSxA+G5ZzH8WdU8mf6IU+5cMBW+j9u+eh+7kv63R3O9Tw==}
+ dev: true
/@types/elliptic@6.4.16:
resolution: {integrity: sha512-MSN6m9BR51W1/umzcsX0K9dAmJ59ECKxOjZ3XsjvsZAt+q0mTmKlzEdwtU+u4i+Om231d8TuY3xK6FAGIs5MbA==}
@@ -12749,6 +12778,7 @@ packages:
/apg-js@4.2.0:
resolution: {integrity: sha512-4WI3AYN9DmJWK3+3r/DtVMI+RO45R0u/b7tJWb5EM2c8nIzojx8Oq5LpMalou3sQnmS9qzw7cKmHBrAjdlseWw==}
+ dev: true
/app-root-path@3.1.0:
resolution: {integrity: sha512-biN3PwB2gUtjaYy/isrU3aNWI5w+fAfvHkSvCKeQGxhmYpwKFUxudR3Yya+KqVRHBmEDYh+/lTozYCFbmzX4nA==}
@@ -13553,6 +13583,7 @@ packages:
/bn.js@4.11.6:
resolution: {integrity: sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA==}
+ dev: true
/bn.js@4.12.0:
resolution: {integrity: sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==}
@@ -13916,6 +13947,7 @@ packages:
resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==}
dependencies:
semver: 7.5.4
+ dev: true
/bundle-name@3.0.0:
resolution: {integrity: sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==}
@@ -14892,6 +14924,7 @@ packages:
engines: {node: '>=12.0.0'}
dependencies:
luxon: 3.4.3
+ dev: true
/cross-env@7.0.3:
resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==}
@@ -15371,6 +15404,7 @@ packages:
/deep-freeze-strict@1.1.1:
resolution: {integrity: sha512-QemROZMM2IvhAcCFvahdX2Vbm4S/txeq5rFYU9fh4mQP79WTMW5c/HkQ2ICl1zuzcDZdPZ6zarDxQeQMsVYoNA==}
+ dev: true
/deep-is@0.1.4:
resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
@@ -15528,7 +15562,6 @@ packages:
/detect-browser@5.3.0:
resolution: {integrity: sha512-53rsFbGdwMwlF7qvCt0ypLM5V5/Mbl0szB7GPN8y9NCcbknYOeVVXdrXEq+90IwAfrrzt6Hd+u2E2ntakICU8w==}
- dev: false
/detect-indent@6.1.0:
resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==}
@@ -16695,6 +16728,7 @@ packages:
dependencies:
idna-uts46-hx: 2.3.1
js-sha3: 0.5.7
+ dev: true
/ethereum-cryptography@0.1.3:
resolution: {integrity: sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==}
@@ -16809,6 +16843,7 @@ packages:
dependencies:
bn.js: 4.11.6
number-to-bn: 1.7.0
+ dev: true
/ethjs-util@0.1.6:
resolution: {integrity: sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==}
@@ -17168,6 +17203,13 @@ packages:
webextension-polyfill: 0.10.0
dev: false
+ /extension-port-stream@3.0.0:
+ resolution: {integrity: sha512-an2S5quJMiy5bnZKEf6AkfH/7r8CzHvhchU40gxN+OM6HPhe7Z9T1FUychcf2M9PpPOO0Hf7BAEfJkw2TDIBDw==}
+ engines: {node: '>=12.0.0'}
+ dependencies:
+ readable-stream: 4.4.2
+ webextension-polyfill: 0.10.0
+
/external-editor@3.1.0:
resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==}
engines: {node: '>=4'}
@@ -18632,6 +18674,7 @@ packages:
engines: {node: '>=4.0.0'}
dependencies:
punycode: 2.1.0
+ dev: true
/ieee754@1.2.1:
resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==}
@@ -19067,8 +19110,8 @@ packages:
resolution: {integrity: sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==}
engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.2
- define-properties: 1.2.0
+ call-bind: 1.0.5
+ define-properties: 1.2.1
dev: true
/is-negative-zero@2.0.2:
@@ -19841,6 +19884,7 @@ packages:
/js-sha3@0.5.7:
resolution: {integrity: sha512-GII20kjaPX0zJ8wzkTbNDYMY7msuZcTWk8S5UOh6806Jq/wz1J8/bnr8uGU0DAUmYDjj2Mr4X1cW8v/GLYnR+g==}
+ dev: true
/js-sha3@0.8.0:
resolution: {integrity: sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==}
@@ -19948,8 +19992,20 @@ packages:
readable-stream: 2.3.8
dev: false
+ /json-rpc-middleware-stream@5.0.1:
+ resolution: {integrity: sha512-PMrzifccjdilqU0xftUkusJq0J9O73q66YdVduEmu6vkiTh3V1akliYJGWBAbhg+vhFPC8btUSANa5FNo7a6bg==}
+ engines: {node: ^16.20 || ^18.16 || >=20}
+ dependencies:
+ '@metamask/json-rpc-engine': 7.2.0
+ '@metamask/safe-event-emitter': 3.0.0
+ '@metamask/utils': 8.2.1
+ readable-stream: 3.6.2
+ transitivePeerDependencies:
+ - supports-color
+
/json-rpc-random-id@1.0.1:
resolution: {integrity: sha512-RJ9YYNCkhVDBuP4zN5BBtYAzEl03yq/jIIsyif0JY9qyJuQQZNeDK7anAPKKlyEtLSj2s8h6hNh2F8zO5q7ScA==}
+ dev: true
/json-schema-deref-sync@0.13.0:
resolution: {integrity: sha512-YBOEogm5w9Op337yb6pAT6ZXDqlxAsQCanM3grid8lMWNxRJO/zWEJi3ZzqDL8boWfwhTFym5EFrNgWwpqcBRg==}
@@ -21931,6 +21987,7 @@ packages:
dependencies:
bn.js: 4.11.6
strip-hex-prefix: 1.0.0
+ dev: true
/nx-cloud@16.5.2:
resolution: {integrity: sha512-1t1Ii9gojl8r/8hFGaZ/ZyYR0Cb0hzvXLCsaFuvg+EJEFdvua3P4cfNya/0bdRrm+7Eb/ITUOskbvYq4TSlyGg==}
@@ -22036,8 +22093,8 @@ packages:
resolution: {integrity: sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==}
engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.2
- define-properties: 1.2.0
+ call-bind: 1.0.5
+ define-properties: 1.2.1
dev: true
/object-keys@1.1.1:
@@ -23380,6 +23437,7 @@ packages:
/punycode@2.1.0:
resolution: {integrity: sha512-Yxz2kRwT90aPiWEMHVYnEf4+rhwF1tBmmZ4KepCP+Wkium9JxtWnUm1nqGwpiAHr/tnTSeHqr3wb++jgSkXjhA==}
engines: {node: '>=6'}
+ dev: true
/punycode@2.3.0:
resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==}
@@ -23958,7 +24016,6 @@ packages:
events: 3.3.0
process: 0.11.10
string_decoder: 1.3.0
- dev: false
/readdirp@3.6.0:
resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
@@ -24322,6 +24379,7 @@ packages:
/rfdc@1.3.0:
resolution: {integrity: sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==}
+ dev: true
/rimraf@2.4.5:
resolution: {integrity: sha512-J5xnxTyqaiw06JjMftq7L9ouA448dw/E7dKghkP9WpKNuwmARNNg+Gk8/u5ryb9N/Yo2+z3MCwuqFK/+qPOPfQ==}
@@ -24739,6 +24797,7 @@ packages:
resolution: {integrity: sha512-kOH1AhJc6gWDXKURKeU1w7iFUdImAegAljVvBg5EUBgNqjH4bxcEsGVUadVEPtA2PVRMyQp1fiSMDwEZkQNj1g==}
dependencies:
'@endo/env-options': 0.1.4
+ dev: true
/set-blocking@2.0.0:
resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==}
@@ -27125,7 +27184,7 @@ packages:
is-arguments: 1.1.1
is-generator-function: 1.0.10
is-typed-array: 1.1.12
- which-typed-array: 1.1.11
+ which-typed-array: 1.1.13
/utila@0.4.0:
resolution: {integrity: sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==}
@@ -27193,6 +27252,7 @@ packages:
engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
dependencies:
builtins: 5.0.1
+ dev: true
/validator@13.11.0:
resolution: {integrity: sha512-Ii+sehpSfZy+At5nPdnyMhx78fEoPDkR2XW/zimHEL3MyGJQOCQ7WeP20jPYRz7ZCpcKLB21NxuXHF3bxjStBQ==}
@@ -27456,7 +27516,6 @@ packages:
/webextension-polyfill@0.10.0:
resolution: {integrity: sha512-c5s35LgVa5tFaHhrZDnr3FpQpjj1BB+RXhLTYUxGqBVN460HkbM8TBtEqdXWbpTKfzwCcjAZVF7zXCYSKtcp9g==}
- dev: false
/webidl-conversions@3.0.1:
resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==}