diff --git a/.env.example b/.env.example index 1dcf8fd25..7734d3e31 100755 --- a/.env.example +++ b/.env.example @@ -90,9 +90,8 @@ ORCID_API_DOMAIN=https://api.sandbox.orcid.org ORCID_CLIENT_ID= ORCID_CLIENT_SECRET= -REPO_SERVER_URL=http://host.docker.internal:5484 +REPO_SERVER_URL=http://host.docker.internal:5445 REPO_SERVICE_SECRET_KEY=secretrepo - # Ceramic publish feature toggle, set to 1 for active TOGGLE_CERAMIC= # If above is set, clone `@desci-labs/desci-codex` and put the path to it here diff --git a/.github/workflows/build-and-test.yaml b/.github/workflows/build-and-test.yaml index b29626fa5..5da51f4b3 100644 --- a/.github/workflows/build-and-test.yaml +++ b/.github/workflows/build-and-test.yaml @@ -58,6 +58,7 @@ jobs: - name: Run tests run: | cd desci-server && export DOCKER_BUILDKIT=1 && yarn && yarn test + echo "exit code $?" if [ $? -ne 0 ]; then exit 1 - fi + fi \ No newline at end of file diff --git a/Makefile b/Makefile index 9de709eb6..81c6f4a86 100644 --- a/Makefile +++ b/Makefile @@ -3,7 +3,6 @@ build: .env desci-contracts/.env $(MAKE) -C desci-models build $(MAKE) -C desci-contracts build $(MAKE) -C desci-server install - $(MAKE) -C desci-repo install .PHONY: sterile sterile: clean-rec @@ -24,7 +23,6 @@ clean-rec: $(MAKE) -C desci-contracts clean $(MAKE) -C desci-models clean $(MAKE) -C desci-server clean - $(MAKE) -C desci-repo clean .PHONY: .env .env: nodes-media/.env desci-repo/.env diff --git a/README.md b/README.md index 06781b23a..ee3c683f2 100644 --- a/README.md +++ b/README.md @@ -75,11 +75,6 @@ This is a Typescript types library that describes a spec for Research Objects. I This is a NodeJS backend that manages draft Nodes. It maintains a user auth, verifies wallet credentials, offers 2FA to users, and is the main system that orchestrates between microservices. It maintains version history for each update to Nodes. It interfaces with a Graph index to implement the [DPID](https://dpid.org) Resolution Scheme.

-## **nodes-lib** - -A library for programmatically interacting with Nodes, basically allowing automation of actions possible in the webapp. See separate documentation in the [README](./nodes-lib/README.md) -

- ## **desci-art-viewer** Nobody knows why this is still here, but it implements a React+Three.js 3d torus that plays [Conway's Game of Life](https://en.wikipedia.org/wiki/Conway%27s_Game_of_Life) on the surface of the torus. We were totally inspired by [this gif on Wikipedia](https://en.wikipedia.org/wiki/Conway%27s_Game_of_Life#/media/File:Trefoil_knot_conways_game_of_life.gif) and it only seems to work on Mac/Linux right now, YMMV. diff --git a/bootstrapCeramic.sh b/bootstrapCeramic.sh index 0c753eb12..1e37365e2 100755 --- a/bootstrapCeramic.sh +++ b/bootstrapCeramic.sh @@ -15,7 +15,7 @@ CTX="[bootstrapCeramic.sh]" set -euo pipefail trap catch ERR catch() { - echo "$CTX script failed (are CODEX_REPO_PATH and TOGGLE_CERAMIC set in .env?)" + echo "$CTX script failed" exit 1 } @@ -43,13 +43,6 @@ fi # Setup desci-codex and deploy composites pushd "$CODEX_REPO_PATH" - -# Check that the node admin secret is set up, otherwise the model ID's wont be correct -if [ ! -f "packages/composedb/admin_seed.txt" ]; then - echo "$CTX Composites need to be deployed with the ceramic node admin seed for the local node, as the model IDs aren't deterministic otherwise" - exit 1 -fi - if [[ ! -d "node_modules" ]]; then echo "$CTX installing deps desci-codex..." npm ci diff --git a/desci-models/package.json b/desci-models/package.json index 6836ec056..be668473e 100644 --- a/desci-models/package.json +++ b/desci-models/package.json @@ -1,6 +1,6 @@ { "name": "@desci-labs/desci-models", - "version": "0.2.3-rc1", + "version": "0.2.1", "description": "Data models for DeSci Nodes", "main": "dist/index.js", "types": "dist/index.d.ts", @@ -16,7 +16,7 @@ "test": "mocha -r ts-node/register --inspect tests/**/*.test.ts", "coverage": "nyc -r lcov -e .ts -x \"*.test.ts\" npm run test", "build": "tsc", - "doPublish": "npm publish --access public", + "publish": "npm publish --access public", "generate": "ts-interface-builder src/ResearchObject.ts src/RoCrate.ts --ignore-generics" }, "author": "", diff --git a/desci-models/src/ResearchObject.ts b/desci-models/src/ResearchObject.ts index 267883851..8a97c3ada 100644 --- a/desci-models/src/ResearchObject.ts +++ b/desci-models/src/ResearchObject.ts @@ -16,34 +16,19 @@ export interface IpldUrl { } export interface ResearchObjectV1 extends ResearchObject { - /** Version of the research object schema*/ version: 'desci-nodes-0.1.0' | 'desci-nodes-0.2.0' | 1; - /** Human-readable title of the publication */ title?: string; - /** Human-readable desciption */ description?: string; - /** The license that applies unless overriden with a component */ defaultLicense?: string; - /** CID of a cover image to the publication */ coverImage?: string | IpldUrl; - /** Metadata additions to DAG entires, or stand-alone entries like external links */ components: ResearchObjectV1Component[]; - /** @deprecated */ validations?: ResearchObjectV1Validation[]; - /* @deprecated **/ attributes?: ResearchObjectV1Attributes[]; - /** History for the object. Not part of the manifest, but can be populated - * by an pplication */ history?: ResearchObjectV1History[]; - /** @deprecated */ tags?: ResearchObjectV1Tags[]; - /** Organizations affiliated with the publication */ organizations?: ResearchObjectV1Organization[]; - /** Assigned dPID of the object, allowing finding the PID from the manifest */ dpid?: ResearchObjectV1Dpid; - /** Research fields relevant for the publication */ researchFields?: string[]; - /** Contributors to this publication */ authors?: ResearchObjectV1Author[]; } @@ -61,68 +46,35 @@ export interface ResearchObjectV1Tags { name: string; } -/** - * Path-invariant metadata about a part of the research object. - * Can be used to tag a directory as code or data, mark a pdf file as - * as the main manuscript, add an external URL to the drive, et cetera. - * - * Mainly used through extension. See PdfComponent and DataComponent for - * example. -*/ export interface ResearchObjectV1Component { - /** Random UUID to identify the component, because paths and CIDs are - * neither unique nor stable. - */ id: string; - /** Human-readable description of the component. */ name: string; - /** Type of payload, which indicates to an app what to do with it. */ type: ResearchObjectComponentType | ResearchObjectComponentTypeMap; - /** @deprecated visual representation for the component */ icon?: any; - /** Description of the component content, see interface extenders. */ payload: any; - /** @deprecated Preferred component to initially load in an app. */ primary?: boolean; - /** Mark component as particularly interesting. */ starred?: boolean; } -/** - * Contributor listing for a research object. -*/ export interface ResearchObjectV1Author { - /** Name of the contributor */ name: string; - /** Orcid handle of the contributor */ orcid?: string; - /** Google Scholar profile of the contributor */ googleScholar?: string; - /** Type of role in the publication */ role: ResearchObjectV1AuthorRole; - /** Organizations the contributor is affiliated with */ organizations?: ResearchObjectV1Organization[]; - /** GitHub profile of the contributor */ github?: string; } export interface ResearchObjectV1History { title: string; - /** does not refer to ResearchObject author for credit purpose, refers to - * the on-chain identity of the account who made the publication, this - * should not be stored in manifest and used in client only - */ - author?: any; + author?: any; // does not refer to ResearchObject author for credit purpose, refers to the on-chain identity of the account who made the publication, this should not be stored in manifest and used in client only content: string; date?: number; // utc seconds transaction?: ResearchObjectTransaction; } -/** Record of publication in the dPID registry contracts */ export interface ResearchObjectTransaction { - /** Transaction hash in hex format */ id: string; - /** Hex-encoded manifest CID as stored in the contract */ cid: string; chainId?: string; } @@ -173,8 +125,7 @@ export enum ResearchObjectComponentType { PDF = 'pdf', CODE = 'code', VIDEO = 'video', - /** @deprecated remove at will */ - TERMINAL = 'terminal', + TERMINAL = 'terminal', // not used, TODO: remove DATA = 'data', LINK = 'link', // external link } @@ -221,24 +172,15 @@ export type ResearchObjectComponentSubtypes = | ResearchObjectComponentLinkSubtype; export interface CommonComponentPayload { - /** Generic title of component */ title?: string; - /** @deprecated Keyword metadata for component */ keywords?: string[]; - /** Description of component */ description?: string; - /** License of component, if other than research object default */ licenseType?: string; - /** Path of component in the drive, starting with `root` */ - path: string; + path?: string; } export interface PdfComponentPayload { - /** @deprecated CID of document, as stored in the drive */ - url?: string; - /** CID of document, as stored in the drive */ - cid: string; - /** Annotations on the document */ + url: string; annotations?: PdfAnnotation[]; } @@ -264,19 +206,6 @@ export interface DataComponentPayload { subMetadata: Record; } -export interface CodeComponentPayload { - /** The main programming language of the code in the component */ - language?: string; - /** @deprecated */ - code?: string; - /** @deprecated CID of the component target */ - url?: string; - /** CID of the component target */ - cid: string; - /** Source URL, if externally imported code bundle */ - externalUrl?: string; -} - export interface DataBucketComponent extends ResearchObjectV1Component { type: ResearchObjectComponentType.DATA_BUCKET; id: 'root'; @@ -308,12 +237,13 @@ export interface DataComponent extends ResearchObjectV1Component { export interface CodeComponent extends ResearchObjectV1Component { type: ResearchObjectComponentType.CODE; subtype?: ResearchObjectComponentCodeSubtype; - payload: CodeComponentPayload & CommonComponentPayload; + payload: { + language?: string; + code?: string; + url?: string; + externalUrl?: string; + } & CommonComponentPayload; } - -/** - * @deprecated remove at will -*/ export interface TerminalComponent extends ResearchObjectV1Component { type: ResearchObjectComponentType.TERMINAL; payload: { @@ -377,43 +307,3 @@ export enum ResearchObjectV1AuthorRole { */ export type ResearchObjectComponentTypeMap = Record; export type FileExtension = string; - -/** A semi-complete selection of license choices */ -export type License = - | 'CC-BY-4.0' - | 'CC-BY' - | 'CC-BY-SA-4.0' - | 'CC-BY-SA' - | 'CC-BY-ND-4.0' - | 'CC-BY-ND' - | 'CC-BY-NC-4.0' - | 'CC-BY-NC' - | 'CC-BY-NC-SA-4.0' - | 'CC-BY-NC-SA' - | 'CC-BY-NC-ND-4.0' - | 'CC-BY-NC-ND' - | 'CC0-1.0' - | 'CC BY' - | 'CC BY-SA' - | 'CC BY-ND' - | 'CC BY-NC' - | 'CC BY-NC-SA' - | 'CC BY-NC-ND' - | 'CC0' - | 'GPL-3.0' - | 'MIT License' - | 'Apache License 2.0' - | 'Apache 2.0' - | 'Mozilla Public License 2.0' - | 'MPL 2.0' - | 'MIT' - | 'BSD-3-Clause' - | 'BSD-2-Clause' - | 'Apache-2.0' - | 'LGPL-3.0' - | 'LGPL-2.1' - | 'MPL-2.0' - | 'CDDL-1.0' - | 'EPL-2.0' - | 'AGPL-3.0' - | 'Unlicense'; diff --git a/desci-models/src/automerge.ts b/desci-models/src/automerge.ts deleted file mode 100644 index 618f92b79..000000000 --- a/desci-models/src/automerge.ts +++ /dev/null @@ -1,57 +0,0 @@ -/** - * This file contains automerge actions for modifying the manifest file. - * This can be used by applications who wish to build a responsive, - * multi-client application for editing the manifest. - * - * @package -*/ - -import { - ResearchObjectComponentTypeMap, - ResearchObjectV1Author, - ResearchObjectV1Component, - ResearchObjectV1Dpid -} from "./ResearchObject"; - -export type ManifestActions = - | { type: 'Add Components'; components: ResearchObjectV1Component[] } - | { type: 'Delete Components'; paths: string[] } - | { type: 'Rename Component'; path: string; fileName: string } - | { type: 'Rename Component Path'; oldPath: string; newPath: string } - | { - type: 'Update Component'; - component: ResearchObjectV1Component; - componentIndex: number; - } - | { - type: 'Assign Component Type'; - component: ResearchObjectV1Component; - componentTypeMap: ResearchObjectComponentTypeMap; - } - | { type: 'Set Drive Clock'; time: string } - // frontend changes to support - | { type: 'Update Title'; title: string } - | { type: 'Update Description'; description: string } - | { type: 'Update License'; defaultLicense: string } - | { type: 'Update ResearchFields'; researchFields: string[] } - | { type: 'Add Component'; component: ResearchObjectV1Component } - | { type: 'Delete Component'; path: string } - | { type: 'Add Contributor'; author: ResearchObjectV1Author } - | { type: 'Remove Contributor'; contributorIndex: number } - | { type: 'Pin Component'; path: string } - | { type: 'UnPin Component'; path: string } - | { - type: 'Update Component'; - component: ResearchObjectV1Component; - componentIndex: number; - } - | { - type: 'Publish Dpid'; - dpid: ResearchObjectV1Dpid; - } - | { type: 'Remove Dpid' } - | - { - type: "Update CoverImage"; - cid: string | undefined; - }; diff --git a/desci-models/src/fields.ts b/desci-models/src/fields.ts deleted file mode 100644 index e2254297d..000000000 --- a/desci-models/src/fields.ts +++ /dev/null @@ -1,437 +0,0 @@ -export type ResearchField = - | "Food Security" - | "Hydrogeology" - | "Linguistics" - | "Cartography" - | "Forest Management" - | "Plant Nutrition" - | "Civil Engineering" - | "Farming Systems Research" - | "Plant Cultivation" - | "Agriculture" - | "Agronomy" - | "Econometrics" - | "Economics" - | "Geochemistry" - | "Animal Physiology" - | "Plant Physiology" - | "Ergonomics" - | "Animal Nutrition" - | "Agricultural Law" - | "Economic Policy" - | "Fisheries Science" - | "Geodesy" - | "Geophysics" - | "Logistics Engineering" - | "Environmental Science" - | "Horticulture" - | "Hydraulic Engineering" - | "Hydrology" - | "Urban Planning" - | "Animal Breeding" - | "Life Science" - | "Limnology" - | "Mechanical Engineering" - | "Mineralogy" - | "Acoustics" - | "Plant Genetics" - | "Aquaculture" - | "Photogrammetry" - | "Physical Geography" - | "Plant Breeding" - | "Plant Ecology" - | "Public Finance" - | "Remote Sensing" - | "Rural and Agricultural Sociology" - | "Atmospheric Science" - | "Social Anthropology" - | "Social Policy" - | "Soil Science" - | "Water Management" - | "Animal Husbandry" - | "Agricultural Economics" - | "Agricultural Engineering" - | "Knowledge and Information Systems" - | "Agroecology" - | "Phylogeny" - | "Functional Genomics" - | "Ontology and Terminology" - | "Phylogenomics" - | "Pharmacogenomics" - | "Medicinal Chemistry" - | "Informatics" - | "Taxonomy" - | "Botany" - | "Virology" - | "Comparative Genomics" - | "Cheminformatics" - | "Systems Biology" - | "Molecular biology" - | "Biodiversity" - | "Quantitative Genetics" - | "Population Genetics" - | "Embryology" - | "Anatomy" - | "Data Management" - | "Metabolomics" - | "Epigenomics" - | "Metagenomics" - | "Data Security" - | "Biochemistry" - | "Phylogenetics" - | "Biotechnology" - | "Phenomics" - | "Evolutionary Biology" - | "Physiology" - | "Neurobiology" - | "Computational Biology" - | "Transcriptomics" - | "Mathematics" - | "Computer Science" - | "Physics" - | "Molecular Genetics" - | "Drug Discovery" - | "Translational Medicine" - | "Biomaterials" - | "Chemical Biology" - | "Analytical Chemistry" - | "Synthetic Chemistry" - | "Drug Development" - | "Biotherapeutics" - | "Marine Biology" - | "Molecular Medicine" - | "Nutritional Science" - | "Omics" - | "Systems Medicine" - | "Veterinary Medicine" - | "Geriatric Medicine" - | "Pain Medicine" - | "Anaesthesiology" - | "Critical Care Medicine" - | "Dentistry" - | "Otolaryngology" - | "Gender Medicine" - | "Traumatology" - | "Medical Toxicology" - | "Pediatrics" - | "Traditional Medicine" - | "Applied Mathematics" - | "Pure Mathematics" - | "Data Governance" - | "Freshwater Science" - | "Human Genetics" - | "Tropical Medicine" - | "Medical Biotechnology" - | "Personalized Medicine" - | "Microbial Ecology" - | "Metatranscriptomics" - | "Respiratory Medicine" - | "Vascular Surgery" - | "Proteogenomics" - | "Data Quality" - | "Preclinical Studies" - | "Biomedical Science" - | "Clinical Studies" - | "Health Services Research" - | "Psychotherapy" - | "Glycomics" - | "Anthropology" - | "Architecture" - | "Artificial Intelligence" - | "Biology" - | "Biophysics" - | "Chemical Engineering" - | "Chemistry" - | "Clinical Chemistry" - | "Organic Chemistry" - | "Physical Chemistry" - | "Medical Informatics" - | "Culture" - | "Demographics" - | "Dermatology" - | "Developmental Biology" - | "Ecology" - | "Electrophysiology" - | "Engineering Science" - | "Entomology" - | "Epidemiology" - | "Forensic Medicine" - | "Gastroenterology" - | "Genetics" - | "Geography" - | "Gynecology" - | "Hematology" - | "Immunogenetics" - | "Microbiology" - | "Nephrology" - | "Neurology" - | "Neurophysiology" - | "Nuclear Medicine" - | "Obstetrics" - | "Occupational Medicine" - | "Ophthalmology" - | "Pharmacology" - | "Psychiatry" - | "Psychology" - | "Clinical Psychology" - | "Educational Psychology" - | "Psychosomatic Medicine" - | "Public Health" - | "Radiobiology" - | "Radiology" - | "Rheumatology" - | "Social Science" - | "Software Engineering" - | "Statistics" - | "Surgery" - | "Oral Surgery" - | "Thermodynamics" - | "Toxicology" - | "Urology" - | "Zoology" - | "Digital Image Processing" - | "Policy" - | "Oncology" - | "Microbial Genetics" - | "Bioinformatics" - | "Cell Biology" - | "Immunology" - | "Bioengineering" - | "Developmental Neurobiology" - | "Molecular Dynamics" - | "Structural Biology" - | "Pathology" - | "Human Biology" - | "Computational Chemistry" - | "Nanotechnology" - | "Animal Genetics" - | "Enzymology" - | "Clinical Immunology" - | "Database Management" - | "Developmental Psychology" - | "Microbial Physiology" - | "Medical Microbiology" - | "Polymer Chemistry" - | "Health Science" - | "Electrical Engineering" - | "Mechanics" - | "Proteomics" - | "Structural Genomics" - | "Toxicogenomics" - | "Synthesis Chemistry" - | "Drug Metabolism" - | "Philosophy" - | "History" - | "Genomics" - | "Cardiology" - | "Regenerative Medicine" - | "Neuroscience" - | "Data Visualization" - | "Cognitive Neuroscience" - | "Cultural Anthropology" - | "Archaeology" - | "Art" - | "Automation" - | "Criminal Law" - | "Criminology" - | "Geology" - | "Humanities" - | "Jurisprudence" - | "Medicine" - | "Metallurgy" - | "Oceanography" - | "Musculoskeletal Medicine" - | "Paleontology" - | "Parasitology" - | "Pharmacy" - | "Natural Science" - | "Population Dynamics" - | "Primary Health Care" - | "Medical Psychology" - | "Social Medicine" - | "Global Health" - | "Nonlinear Dynamics" - | "Ecosystem Science" - | "Radiation Oncology" - | "Natural History" - | "Theology" - | "Ancient History" - | "Medieval History" - | "Infectious Disease Medicine" - | "Meteorology" - | "Earth Science" - | "Data Mining" - | "Drug Repositioning" - | "Synthetic Biology" - | "Reproductive Health" - | "Transfusion Medicine" - | "Plant Anatomy" - | "Humanities and Social Science" - | "Ancient Cultures" - | "Prehistory" - | "Classical Philology" - | "Egyptology" - | "Early Modern History" - | "Modern History" - | "History of Science" - | "Fine Arts" - | "Art History" - | "Musicology" - | "Media Studies" - | "Applied Linguistics" - | "Historical Linguistics" - | "Literary Studies" - | "Medieval German Literature" - | "German Literature" - | "European Literature" - | "Comparative Literature" - | "Asian Studies" - | "African Studies" - | "Islamic Studies" - | "Religious Studies" - | "Protestant Theology" - | "Roman Catholic Theology" - | "History of Philosophy" - | "Theoretical Philosophy" - | "Practical Philosophy" - | "Social and Behavioural Science" - | "Education Science" - | "Research on Teaching Learning and Training" - | "Professional Socialization" - | "Biological Psychology" - | "Social Psychology" - | "Differential Psychology" - | "Sociological Theory" - | "Empirical Social Research" - | "Communication Science" - | "Political Science" - | "Economic Theory" - | "Business Administration" - | "Economic and Social History" - | "Philosophy of Law" - | "Private Law" - | "Public Law" - | "Inter-organismic Interactions of Plants" - | "Phytochemistry" - | "Plant Cell Biology" - | "Behavioural Biology" - | "Molecular Microbiology" - | "Applied Microbiology" - | "Molecular Infection Biology" - | "Medical Biometry" - | "Pathobiochemistry" - | "Cardiothoracic Surgery" - | "Medical Physics" - | "Molecular Neuroscience" - | "Cellular Neuroscience" - | "Systemic Neuroscience" - | "Comparative Neurobiology" - | "Molecular Neurology" - | "Biological Psychiatry" - | "Phytomedicine" - | "Clinical Veterinary Medicine" - | "Molecular Chemistry" - | "Inorganic Molecular Chemistry" - | "Organic Molecular Chemistry" - | "Solid-State Chemistry" - | "Molecular Physical Chemistry" - | "Theoretical Chemistry" - | "Biomimetic Chemistry" - | "Food Chemistry" - | "Polymer Research" - | "Polymer Physics" - | "Condensed Matter Physics" - | "Experimental Condensed Matter Physics" - | "Theoretical Condensed Matter Physics" - | "Atomic Molecular Optical and Plasma Physics" - | "Particles Nuclei and Fields" - | "Soft Matter Physics" - | "Astrophysics and Astronomy" - | "Geoinformatics" - | "Human Geography" - | "Water Research" - | "Industrial Engineering" - | "Production Technology" - | "Metal-Cutting Manufacturing Engineering" - | "Primary Shaping Technology" - | "Plastics Engineering" - | "Thermal Engineering" - | "Process Engineering" - | "Technical Chemistry" - | "Mechanical Process Engineering" - | "Biological Process Engineering" - | "Thermal Technology" - | "Energy Engineering" - | "Fluid Mechanics" - | "Materials Engineering" - | "Thermomechanical Processing" - | "Sintering" - | "Composite Materials" - | "Mechanical Behaviour of Construction Materials" - | "Coating and Surface Technology" - | "Materials Science" - | "Functional Materials Research" - | "Microstructural Mechanical Properties of Materials" - | "Materials Structuring and Functionalisation" - | "Systems Engineering" - | "Robotics" - | "Measurement Systems" - | "Microsystems" - | "Human-Machine Systems Engineering" - | "Component Engineering" - | "Telecommunication Engineering" - | "Power Engineering" - | "Theoretical Computer Science" - | "Computer Architecture" - | "Construction Engineering" - | "Construction History" - | "Transportation Planning" - | "Building Engineering Physics" - | "Structural Engineering" - | "Applied Mechanics" - | "Geotechnics" - | "Maritime Engineering" - | "Aerospace Engineering" - | "Building Informatics" - | "Landscape Planning" - | "Sustainable Building Technology" - | "Building Design" - | "Materials Informatics" - | "Neurogenetics" - | "Computational Neuroscience" - | "Mathematical Psychology" - | "Industrial and Organisational Psychology" - | "Surface Science" - | "Area Studies" - | "American Studies" - | "Oceania Studies" - | "Arabian Studies" - | "Jewish Studies" - | "Diabetology" - | "Theatre Studies" - | "Data Integration" - | "Food Process Engineering" - | "Statistical Physics" - | "Angiology" - | "Legal History" - | "American Literature" - | "Cultural Studies" - | "Ancient Near Eastern Studies" - | "Orthopedic Surgery" - | "Community Care" - | "Epigenetics" - | "Medicines Research and Development" - | "Safety Science" - | "Endocrinology" - | "Medical Virology" - | "Subject Agnostic" - | "Scientific Instrument Design" - | "Metataxonomics" - | "Metaproteomics" - | "Selenography" - | "Cosmology" - | "Electromagnetism" - | "Gemology" - | "Bathymetry" - | "Hydrography"; - diff --git a/desci-models/src/index.ts b/desci-models/src/index.ts index 1a66f4338..acd3254ef 100644 --- a/desci-models/src/index.ts +++ b/desci-models/src/index.ts @@ -3,5 +3,3 @@ export * from './constants'; export * from './transformers/index'; export * from './trees/treeTools'; export * from './trees/treeTypes'; -export * from './automerge'; -export * from './fields'; diff --git a/desci-models/src/trees/treeTools.ts b/desci-models/src/trees/treeTools.ts index 58664c322..f90439138 100644 --- a/desci-models/src/trees/treeTools.ts +++ b/desci-models/src/trees/treeTools.ts @@ -149,7 +149,7 @@ export function convertIpfsTreeToDriveObjectTree( if (branch.external) branch.accessStatus = AccessStatus.EXTERNAL; - branch.metadata = inheritMetadata(branch.path, pathToCompMap) as DriveMetadata; + branch.metadata = inheritMetadata(branch.path, pathToCompMap); branch.starred = component?.starred || false; // branch.lastModified = formatDbDate(branch.lastModified) || tempDate; // LEAVE THIS TO FRONTEND if (branch.contains && branch.contains.length && branch.type === FileType.DIR) { @@ -292,8 +292,8 @@ export function inheritMetadata(path: DrivePath, pathToCompMap: Record { @@ -390,7 +390,7 @@ export function createVirtualDrive({ contains: contains, lastModified: lastModified || tempDate, accessStatus: accessStatus || AccessStatus.PRIVATE, - metadata: metadata || {} as DriveMetadata, + metadata: metadata || {}, cid: cid || '', type: type || FileType.DIR, parent: parent || null, diff --git a/desci-repo/package.json b/desci-repo/package.json index 88d744f7e..117760697 100644 --- a/desci-repo/package.json +++ b/desci-repo/package.json @@ -1,6 +1,6 @@ { "name": "@desci-labs/desci-repo", - "version": "0.0.2", + "version": "0.0.1", "description": "", "type": "module", "engines": { @@ -68,7 +68,7 @@ "typescript": "5.1.6" }, "dependencies": { - "@desci-labs/desci-models": "^0.2.3-rc1", + "@desci-labs/desci-models": "^0.2.1", "@sentry/node": "^7.84.0", "@sentry/tracing": "^7.84.0", "axios": "^1.6.2", diff --git a/desci-repo/scripts/be-node-dev.sh b/desci-repo/scripts/be-node-dev.sh new file mode 100755 index 000000000..7b36a9a34 --- /dev/null +++ b/desci-repo/scripts/be-node-dev.sh @@ -0,0 +1,14 @@ +#!/bin/sh +echo "Install bash and execute 'wait-for-it.sh' script" +apt-get add --update bash + +./desci-repo/scripts/wait-for-it.sh $PG_HOST:5432 --timeout=5 --strict -- echo "postgres up and running" + +# npm run migration:run +# npm run seed:run +chmod -R 777 /app/node_modules/.prisma +chmod -R 777 /app/node_modules/prisma +# chmod -R 777 /root/ && chown node:node /root/.cache/prisma/master/2920a97877e12e055c1333079b8d19cee7f33826/debian-openssl-1.1.x/libquery-engine # for prisma studio +# cd desci-repo +yarn +yarn dev diff --git a/desci-repo/src/controllers/nodes/documents.ts b/desci-repo/src/controllers/nodes/documents.ts index 3a70577eb..0037cd44a 100644 --- a/desci-repo/src/controllers/nodes/documents.ts +++ b/desci-repo/src/controllers/nodes/documents.ts @@ -4,13 +4,12 @@ import { logger } from '../../logger.js'; import { AutomergeUrl, DocumentId } from '@automerge/automerge-repo'; import { RequestWithNode } from '../../middleware/guard.js'; import { backendRepo } from '../../repo.js'; -import { getAutomergeUrl, getDocumentUpdater } from '../../services/manifestRepo.js'; +import { ManifestActions, getAutomergeUrl, getDocumentUpdater } from '../../services/manifestRepo.js'; import { findNodeByUuid, query } from '../../db/index.js'; import { Doc } from '@automerge/automerge'; import { ZodError } from 'zod'; import { actionsSchema } from '../../validators/schema.js'; import { ensureUuidEndsWithDot } from './utils.js'; -import { ManifestActions } from '@desci-labs/desci-models'; export const createNodeDocument = async function (req: Request, res: Response) { logger.info('START [CreateNodeDocument]', req.body, req.params); diff --git a/desci-repo/src/services/manifestRepo.ts b/desci-repo/src/services/manifestRepo.ts index 7f8ae945a..c65cc4255 100644 --- a/desci-repo/src/services/manifestRepo.ts +++ b/desci-repo/src/services/manifestRepo.ts @@ -7,10 +7,10 @@ import { PdfComponent, ResearchObjectComponentType, ResearchObjectComponentTypeMap, + ResearchObjectV1Author, ResearchObjectV1Component, ResearchObjectV1Dpid, isResearchObjectComponentTypeMap, - ManifestActions, } from '@desci-labs/desci-models'; import isEqual from 'deep-equal'; @@ -31,6 +31,42 @@ export function assertNever(value: never) { throw Error('Not Possible'); } +export type ManifestActions = + | { type: 'Add Components'; components: ResearchObjectV1Component[] } + | { type: 'Delete Components'; paths: string[] } + | { type: 'Rename Component'; path: string; fileName: string } + | { type: 'Rename Component Path'; oldPath: string; newPath: string } + | { + type: 'Update Component'; + component: ResearchObjectV1Component; + componentIndex: number; + } + | { + type: 'Assign Component Type'; + component: ResearchObjectV1Component; + componentTypeMap: ResearchObjectComponentTypeMap; + } + | { type: 'Set Drive Clock'; time: string } + // frontend changes to support + | { type: 'Update Title'; title: string } + | { type: 'Update Description'; description: string } + | { type: 'Update License'; defaultLicense: string } + | { type: 'Update ResearchFields'; researchFields: string[] } + | { type: 'Add Component'; component: ResearchObjectV1Component } + | { type: 'Delete Component'; path: string } + | { type: 'Add Contributor'; author: ResearchObjectV1Author } + | { type: 'Remove Contributor'; contributorIndex: number } + | { type: 'Pin Component'; path: string } + | { type: 'UnPin Component'; path: string } + | { + type: 'Update Component'; + component: ResearchObjectV1Component; + componentIndex: number; + } + | { + type: 'Publish Dpid'; + dpid: ResearchObjectV1Dpid; + }; export const getDocumentUpdater = (documentId: DocumentId) => { const automergeUrl = getAutomergeUrl(documentId); @@ -217,14 +253,6 @@ export const getDocumentUpdater = (documentId: DocumentId) => { { time: Date.now(), message: action.type }, ); break; - case "Remove Dpid": - handle.change( - (document) => { - removeDpid(document); - }, - { time: Date.now(), message: action.type } - ); - break; case 'Pin Component': let componentIndex = latestDocument?.manifest.components.findIndex((c) => c.payload?.path === action.path); if (componentIndex && componentIndex != -1) { @@ -264,18 +292,6 @@ export const getDocumentUpdater = (documentId: DocumentId) => { { time: Date.now(), message: action.type }, ); break; - case 'Update CoverImage': - handle.change( - (document) => { - if (!action.cid) { - delete document.manifest.coverImage; - } else { - document.manifest.coverImage = action.cid; - } - }, - { time: Date.now(), message: action.type }, - ); - break; default: assertNever(action); } @@ -293,10 +309,8 @@ const updateComponentTypeMap = ( doc: Doc, path: string, compTypeMap: ResearchObjectComponentTypeMap, -): void => { - const currentComponent = doc.manifest.components.find( - (c) => c.payload?.path === path - ); +) => { + const currentComponent = doc.manifest.components.find((c) => c.payload?.path === path); if (!currentComponent) return; const existingType = currentComponent.type; @@ -316,53 +330,30 @@ const updateComponentTypeMap = ( }); }; -const addManifestComponent = ( - doc: Doc, - component: ResearchObjectV1Component -): void => { +const addManifestComponent = (doc: Doc, component: ResearchObjectV1Component) => { doc.manifest.components.push(component); }; -const deleteComponent = ( - doc: Doc, - path: string -): void => { - const deleteIdx = doc.manifest.components.findIndex( - (component) => component?.payload?.path === path - ); +const deleteComponent = (doc: Doc, path: string) => { + const deleteIdx = doc.manifest.components.findIndex((component) => component?.payload?.path === path); if (deleteIdx !== -1) doc.manifest.components.splice(deleteIdx, 1); }; -const togglePin = ( - doc: Doc, - componentIndex: number, pin: boolean -): void => { +const togglePin = (doc: Doc, componentIndex: number, pin: boolean) => { const currentComponent = doc.manifest.components[componentIndex]; currentComponent.starred = pin; }; -const addDpid = ( - doc: Doc, - dpid: ResearchObjectV1Dpid -): void => { +const addDpid = (doc: Doc, dpid: ResearchObjectV1Dpid) => { if (doc.manifest.dpid) return; doc.manifest.dpid = dpid; }; -/** In an unavilable optimistic dPID was written to the manifest, it must - * be removed again. -*/ -const removeDpid = ( - doc: Doc -): void => { - delete doc.manifest.dpid; -}; - const updateManifestComponent = ( doc: Doc, component: ResearchObjectV1Component, componentIndex: number, -): void => { +) => { if (componentIndex === -1 || componentIndex === undefined) return; const currentComponent = doc.manifest.components[componentIndex]; @@ -415,9 +406,7 @@ const updateManifestComponent = ( } }; -type TypeInitialisers = {} | '' | 0 | []; - -const getTypeDefault = (value: unknown): TypeInitialisers => { +const getTypeDefault = (value: unknown) => { if (Array.isArray(value)) return []; if (typeof value === 'string') return ''; if (typeof value === 'number') return 0; diff --git a/desci-repo/src/validators/schema.ts b/desci-repo/src/validators/schema.ts index e80528833..3cf4d9b09 100644 --- a/desci-repo/src/validators/schema.ts +++ b/desci-repo/src/validators/schema.ts @@ -5,7 +5,6 @@ import { ResearchObjectV1Component, ResearchObjectV1Dpid, ResearchObjectV1Organization, - ManifestActions, } from '@desci-labs/desci-models'; const researchObject = z @@ -60,23 +59,18 @@ const componentSchema: z.ZodType = z }) .passthrough(); -type Action = ManifestActions["type"]; - export const actionsSchema = z.array( z.discriminatedUnion('type', [ - z.object({ type: z.literal('Publish Dpid'), dpid: dpid }), - z.object({ type: z.literal('Remove Dpid')}), - z.object({ type: z.literal('Update Title'), title: z.string() }), - z.object({ type: z.literal('Update Description'), description: z.string() }), - z.object({ type: z.literal('Update License'), defaultLicense: z.string() }), - z.object({ type: z.literal('Update ResearchFields'), researchFields: z.array(z.string()) }), - z.object({ type: z.literal('Add Component'), component: componentSchema }), - z.object({ type: z.literal('Delete Component'), path: z.string() }), - z.object({ type: z.literal('Update Component'), component: componentSchema }), - z.object({ type: z.literal('Add Contributor'), author: contributor }), - z.object({ type: z.literal('Remove Contributor'), contributorIndex: z.number() }), - z.object({ type: z.literal('Pin Component'), componentIndex: z.number() }), - z.object({ type: z.literal('UnPin Component'), componentIndex: z.number() }), - z.object({ type: z.literal('Update CoverImage'), cid: z.string().optional() }), + z.object({ type: z.literal('Publish dPID'), dpid: dpid }), + z.object({ type: z.literal('Update Title'), title: z.string() }), + z.object({ type: z.literal('Update Description'), description: z.string() }), + z.object({ type: z.literal('Update License'), defaultLicense: z.string() }), + z.object({ type: z.literal('Update ResearchFields'), researchFields: z.array(z.string()) }), + z.object({ type: z.literal('Add Component'), component: componentSchema }), + z.object({ type: z.literal('Delete Component'), path: z.string() }), + z.object({ type: z.literal('Add Contributor'), author: contributor }), + z.object({ type: z.literal('Remove Contributor'), contributorIndex: z.number() }), + z.object({ type: z.literal('Pin Component'), componentIndex: z.number() }), + z.object({ type: z.literal('UnPin Component'), componentIndex: z.number() }), ]), ); diff --git a/desci-repo/src/validators/test/schema.spec.ts b/desci-repo/src/validators/test/schema.spec.ts index 58ea7a8a8..c8fc08ca5 100644 --- a/desci-repo/src/validators/test/schema.spec.ts +++ b/desci-repo/src/validators/test/schema.spec.ts @@ -42,31 +42,24 @@ describe('ManifestActions Schema', () => { describe('Publish Dpid', () => { it('should validate dPID action', () => { - const validated = actionsSchema.safeParse([{ type: 'Publish Dpid', dpid: { prefix: 'beta', id: '1' } }]); + const validated = actionsSchema.safeParse([{ type: 'Publish dPID', dpid: { prefix: 'beta', id: '1' } }]); console.log(validated); expect(validated.success).to.be.true; }); it('should reject invalid dPID action data', () => { - const validated = actionsSchema.safeParse([{ type: 'Publish Dpid', dpid: { prefix: 'beta', ids: '1' } }]); + const validated = actionsSchema.safeParse([{ type: 'Publish dPID', dpid: { prefix: 'beta', ids: '1' } }]); console.log(validated); expect(validated.success).to.be.false; }); it('should reject invalid dPID action', () => { - const validated = actionsSchema.safeParse([{ type: 'Publish Dpid', invalidKey: '' }]); + const validated = actionsSchema.safeParse([{ type: 'Publish dPID', invalidKey: '' }]); console.log(validated); expect(validated.success).to.be.false; }); }); - describe('Remove Dpid', () => { - it('should validate dPID action', () => { - const validated = actionsSchema.safeParse([{ type: 'Remove Dpid' }]); - expect(validated.success).to.be.true; - }); - }); - describe('Validate Description', () => { it('should validate description action', () => { const validated = actionsSchema.safeParse([{ type: 'Update Description', description: 'No title' }]); @@ -133,11 +126,7 @@ describe('ManifestActions Schema', () => { starred: false, type: ResearchObjectComponentType.CODE, subtype: ResearchObjectComponentCodeSubtype.SOFTWARE_PACKAGE, - payload: { - path: 'root/external links/', - cid: 'bafybeicrsddlvfbbo5s3upvjbtb5flc73iupxfy2kf3rv43kkbvegbqbwq', - language: 'typescript' - }, + payload: { path: 'root/external links/', url: 'https://google.com', language: 'typescript' }, }; it('should validate Add Component action', async () => { @@ -185,11 +174,7 @@ describe('ManifestActions Schema', () => { starred: false, type: ResearchObjectComponentType.CODE, subtype: ResearchObjectComponentCodeSubtype.SOFTWARE_PACKAGE, - payload: { - path: 'root/external links/', - cid: 'bafybeicrsddlvfbbo5s3upvjbtb5flc73iupxfy2kf3rv43kkbvegbqbwq', - language: 'typescript' - }, + payload: { path: 'root/external links/', url: 'https://google.com', language: 'typescript' }, }; const validated = await actionsSchema.safeParseAsync([{ type: 'Add Component', component: invalidComponent }]); diff --git a/desci-repo/yarn.lock b/desci-repo/yarn.lock index cd6974ac8..1131e392f 100644 --- a/desci-repo/yarn.lock +++ b/desci-repo/yarn.lock @@ -131,10 +131,10 @@ dependencies: "@jridgewell/trace-mapping" "0.3.9" -"@desci-labs/desci-models@^0.2.3-rc1": - version "0.2.3-rc1" - resolved "https://registry.yarnpkg.com/@desci-labs/desci-models/-/desci-models-0.2.3-rc1.tgz#9583455b59966d9e50bae1c2e2c6701e529e3990" - integrity sha512-FW74CkgfZTNhky0Q6Sk3lCoBZ+Yl5D4KVTTLBv/NG+e8qH9jyT6DVbiXvaThQWZQNulFXJg2UFZm73AVInu3wA== +"@desci-labs/desci-models@^0.2.1": + version "0.2.1" + resolved "https://registry.yarnpkg.com/@desci-labs/desci-models/-/desci-models-0.2.1.tgz#b13ecbd4ba8ef69e1b6083d678f3257482f4bc70" + integrity sha512-rJL7NxgeGp4hhegiqAFLExnTyUJM1Bmuemjv/oon4DEyF2feI49OsPIaxY+SQaEQawFfE8wxwJHW76iIOZduog== dependencies: jsonld "^8.1.1" schema-dts "^1.1.2" diff --git a/desci-server/package.json b/desci-server/package.json index 29fd95b4e..1738b90d4 100755 --- a/desci-server/package.json +++ b/desci-server/package.json @@ -1,6 +1,6 @@ { "name": "@desci-labs/desci-server", - "version": "0.3.4", + "version": "0.3.3", "description": "Manage DeSci Nodes state: users, nodes orchestration, decentralized storage, blockchain resolvers", "engines": { "node": ">=16.14" @@ -36,7 +36,7 @@ "prettier": "prettier --config .prettierrc --write './**/*.{ts,js,css,scss,json,md}'", "test:destructive": "NODE_OPTIONS=\"--experimental-specifier-resolution=node --loader=ts-node/esm\" mocha --colors --require ts-node/register 'test/integration/**/*.test.ts' --timeout 20000 --exit", "test:destructive:debug": "yarn test:destructive --inspect=0.0.0.0:9227", - "test": "yarn docker:test; docker-compose --file ../docker-compose.test.yml --compatibility down", + "test": "yarn docker:test && docker-compose --file ../docker-compose.test.yml --compatibility down", "coverage:destructive": "nyc --all --parser-plugins='[\"importAssertions\"]' -r lcov -e .ts -x \"*.test.ts\" npm run test:destructive", "coverage:destructive:debug": "nyc --all --parser-plugins='[\"importAssertions\"]' -r lcov -e .ts -x \"*.test.ts\" npm run test:destructive:debug", "commit": "git-cz", diff --git a/desci-server/src/controllers/data/update.ts b/desci-server/src/controllers/data/update.ts index 235943183..0718beb0b 100644 --- a/desci-server/src/controllers/data/update.ts +++ b/desci-server/src/controllers/data/update.ts @@ -6,6 +6,7 @@ import { logger as parentLogger } from '../../logger.js'; import { RequestWithNode } from '../../middleware/authorisation.js'; import { processExternalUrlDataToIpfs } from '../../services/data/externalUrlProcessing.js'; import { processNewFolder, processS3DataToIpfs } from '../../services/data/processing.js'; +import { IpfsPinnedResult } from '../../services/ipfs.js'; import { arrayXor, ensureUuidEndsWithDot } from '../../utils.js'; export interface UpdateResponse { status?: number; @@ -58,6 +59,7 @@ export const update = async (req: RequestWithNode, res: Response 0) return res.status(400).json({ error: 'EXTERNAL CID PASSED IN, use externalCid update route instead' }); @@ -78,6 +80,8 @@ export const update = async (req: RequestWithNode, res: Response, - res: Response -) => { +export const updateExternalCid = async (req: Request, res: Response) => { const owner = (req as any).user as User; - const { - uuid, - contextPath, - externalCids, - componentType, - componentSubtype - } = req.body; + const { uuid, contextPath, componentType, componentSubtype } = req.body; + const { externalCids } = req.body; const logger = parentLogger.child({ // id: req.id, module: 'DATA::UpdateExternalCidController', userId: owner.id, - uuid, - contextPath, - componentType, + uuid: uuid, + contextPath: contextPath, + componentType: componentType, componentSubtype, externalCids, }); logger.trace(`[UPDATE DATASET] Updating in context: ${contextPath}`); - if (uuid === undefined || contextPath === undefined || !Array.isArray(externalCids)) + if (uuid === undefined || contextPath === undefined || externalCids === undefined) return res.status(400).json({ error: 'uuid, manifest, contextPath required, externalCids required' }); //validate requester owns the node @@ -61,7 +35,6 @@ export const updateExternalCid = async ( uuid: ensureUuidEndsWithDot(uuid), }, }); - if (!node) { logger.warn(`unauthed node user: ${owner}, node uuid provided: ${uuid}`); return res.status(400).json({ error: 'failed' }); @@ -72,10 +45,10 @@ export const updateExternalCid = async ( node, externalCids, contextPath, - componentType, - componentSubtype + // componentType, + // componentSubtype, }); - + debugger; if (ok) { const { manifest: updatedManifest, diff --git a/desci-server/src/controllers/data/utils.ts b/desci-server/src/controllers/data/utils.ts index b35c411ad..fe90da8f7 100644 --- a/desci-server/src/controllers/data/utils.ts +++ b/desci-server/src/controllers/data/utils.ts @@ -1,4 +1,4 @@ -import { DRIVE_NODE_ROOT_PATH, DataComponent, ResearchObjectComponentType, ResearchObjectV1 } from '@desci-labs/desci-models'; +import { DataComponent, ResearchObjectComponentType, ResearchObjectV1 } from '@desci-labs/desci-models'; import { Node } from '@prisma/client'; import axios from 'axios'; import { v4 as uuid } from 'uuid'; @@ -30,7 +30,6 @@ function addDataToManifest({ manifest, dataFields, rootCid }: UpdatingManifestPa cid: rootCid, subMetadata: {}, description: dataFields.description || undefined, - path: DRIVE_NODE_ROOT_PATH + `/${dataFields.title}` }, }; manifest.components.push(newDataComponent); diff --git a/desci-server/src/controllers/nodes/documents.ts b/desci-server/src/controllers/nodes/documents.ts index be54cefde..b743be505 100644 --- a/desci-server/src/controllers/nodes/documents.ts +++ b/desci-server/src/controllers/nodes/documents.ts @@ -1,10 +1,10 @@ import { DocumentId } from '@automerge/automerge-repo'; import { Response } from 'express'; -import { ManifestActions } from "@desci-labs/desci-models"; + import { prisma } from '../../client.js'; import { logger } from '../../logger.js'; import { RequestWithNode } from '../../middleware/authorisation.js'; -import { NodeUuid } from '../../services/manifestRepo.js'; +import { ManifestActions, NodeUuid } from '../../services/manifestRepo.js'; import repoService from '../../services/repoService.js'; import { getLatestManifest } from '../data/utils.js'; diff --git a/desci-server/src/controllers/nodes/draftCreate.ts b/desci-server/src/controllers/nodes/draftCreate.ts index ec6691bcb..6ccdf1883 100755 --- a/desci-server/src/controllers/nodes/draftCreate.ts +++ b/desci-server/src/controllers/nodes/draftCreate.ts @@ -267,7 +267,6 @@ export const draftAddComponent = async (req: Request, res: Response, next: NextF subtype: componentSubtype, payload: { url: componentUrl, - path: DRIVE_NODE_ROOT_PATH + `/${name}` }, }; manifestParsed.components.push(linkComponent); diff --git a/desci-server/src/services/data/externalCidProcessing.ts b/desci-server/src/services/data/externalCidProcessing.ts index 8d88a049f..17e6b4818 100644 --- a/desci-server/src/services/data/externalCidProcessing.ts +++ b/desci-server/src/services/data/externalCidProcessing.ts @@ -28,14 +28,14 @@ import { createManifestPersistFailError, createUnhandledError, } from './processingErrors.js'; -import { ExternalCid } from '../../controllers/data/updateExternalCid.js'; const logger = parentLogger.child({ module: 'Services::ExternalCidProcessing', }); interface ProcessExternalCidDataToIpfsParams { - externalCids: ExternalCid[]; + // files: any[]; + externalCids: any; user: User; node: Node; /** @@ -47,8 +47,8 @@ interface ProcessExternalCidDataToIpfsParams { } /** - * Processes external CIDs, to pin the file or leafless UnixFS DAG. -*/ + * Processes external-url file uploads, currently .pdf URLs and github code repo's + */ export async function processExternalCidDataToIpfs({ externalCids, user, @@ -58,25 +58,26 @@ export async function processExternalCidDataToIpfs({ componentSubtype, }: ProcessExternalCidDataToIpfsParams) { try { + // debugger; /** * Prepare the CIDs for addition, see if they're resolvable and get their sizes and types */ const cidTypesSizes: Record = {}; - try { - externalCids = externalCids.map( - (extCid) => ({ ...extCid, cid: convertToCidV1(extCid.cid) }) - ); - for (const extCid of externalCids) { - const { isDirectory, size } = await getExternalCidSizeAndType(extCid.cid); - if (size !== undefined && isDirectory !== undefined) { - cidTypesSizes[extCid.cid] = { size, isDirectory }; - } else { - throw new Error(`Failed to get size and type of external CID: ${extCid}`); + if (externalCids && externalCids.length) { + try { + externalCids = externalCids.map((extCid) => ({ ...extCid, cid: convertToCidV1(extCid.cid) })); + for (const extCid of externalCids) { + const { isDirectory, size } = await getExternalCidSizeAndType(extCid.cid); + if (size !== undefined && isDirectory !== undefined) { + cidTypesSizes[extCid.cid] = { size, isDirectory }; + } else { + throw new Error(`Failed to get size and type of external CID: ${extCid}`); + } } + } catch (e: any) { + logger.warn(`[UPDATE DAG] External CID Method: ${e}`); + throw createIpfsUnresolvableError(`Failed to resolve external CID`); } - } catch (e: any) { - logger.warn(`[UPDATE DAG] External CID Method: ${e}`); - throw createIpfsUnresolvableError(`Failed to resolve external CID`); } /** @@ -236,7 +237,7 @@ export async function processExternalCidDataToIpfs({ } catch (error) { // DB status to failed // Socket emit to client - logger.error({ error }, 'Error processing external CID to IPFS'); + logger.error({ error }, 'Error processing S3 data to IPFS'); const controlledErr = 'type' in error ? error : createUnhandledError(error); return { ok: false, value: controlledErr }; } diff --git a/desci-server/src/services/data/externalUrlProcessing.ts b/desci-server/src/services/data/externalUrlProcessing.ts index c76219cfd..9d4621c22 100644 --- a/desci-server/src/services/data/externalUrlProcessing.ts +++ b/desci-server/src/services/data/externalUrlProcessing.ts @@ -182,7 +182,7 @@ export async function processExternalUrlDataToIpfs({ const flatUploadedTree = recursiveFlattenTree(uploadedTree); const parsedContextPath = isCodeRepo ? contextPath + '/' + externalUrl.path : contextPath; - const draftNodeTreeEntries: Prisma.DraftNodeTreeCreateManyInput[] = ipfsDagToDraftNodeTreeEntries({ + const draftNodeTreeEntries: Prisma.DraftNodeTreeCreateManyInput[] = await ipfsDagToDraftNodeTreeEntries({ ipfsTree: flatUploadedTree, node, user, @@ -196,7 +196,7 @@ export async function processExternalUrlDataToIpfs({ logger.info(`Successfully added ${addedEntries.count} entries to DraftNodeTree`); // debugger; - const { filteredFiles } = filterFirstNestings(pinResult); + const { filesToAddToDag, filteredFiles } = filterFirstNestings(pinResult); /** * Repull latest node, to avoid stale manifest that may of been modified since last pull diff --git a/desci-server/src/services/data/processing.ts b/desci-server/src/services/data/processing.ts index 0b1eba75d..d1f8dcddb 100644 --- a/desci-server/src/services/data/processing.ts +++ b/desci-server/src/services/data/processing.ts @@ -9,6 +9,7 @@ import { ResearchObjectV1, extractExtension, isNodeRoot, + isResearchObjectComponentTypeMap, neutralizePath, recursiveFlattenTree, } from '@desci-labs/desci-models'; @@ -32,7 +33,7 @@ import { } from '../../services/ipfs.js'; import { fetchFileStreamFromS3, isS3Configured } from '../../services/s3.js'; import { ResearchObjectDocument } from '../../types/documents.js'; -import { prepareDataRefsForDraftTrees } from '../../utils/dataRefTools.js'; +import { prepareDataRefs, prepareDataRefsForDraftTrees } from '../../utils/dataRefTools.js'; import { DRAFT_CID, DRAFT_DIR_CID, ipfsDagToDraftNodeTreeEntries } from '../../utils/draftTreeUtils.js'; import { ExtensionDataTypeMap, @@ -41,6 +42,7 @@ import { generateManifestPathsToDbTypeMap, getTreeAndFill, inheritComponentType, + urlOrCid, } from '../../utils/driveUtils.js'; import { EXTENSION_MAP } from '../../utils/extensions.js'; import { cleanupManifestUrl } from '../../utils/manifest.js'; @@ -84,6 +86,8 @@ export async function processS3DataToIpfs({ user, node, contextPath, + componentType, + componentSubtype, }: ProcessS3DataToIpfsParams): Promise> { let pinResult: IpfsPinnedResult[] = []; let manifestPathsToTypesPrune: Record = {}; @@ -106,7 +110,7 @@ export async function processS3DataToIpfs({ const root = pinResult[pinResult.length - 1]; const rootTree = (await getDirectoryTree(root.cid, {})) as RecursiveLsResult[]; // debugger; - const draftNodeTreeEntries: Prisma.DraftNodeTreeCreateManyInput[] = ipfsDagToDraftNodeTreeEntries({ + const draftNodeTreeEntries: Prisma.DraftNodeTreeCreateManyInput[] = await ipfsDagToDraftNodeTreeEntries({ ipfsTree: rootTree, node, user, @@ -693,7 +697,7 @@ export async function assignTypeMapInManifest( name: compName, type: compTypeMap, payload: { - cid: contextPathNewCid, + ...urlOrCid(contextPathNewCid, ResearchObjectComponentType.DATA), path: contextPath, }, }; diff --git a/desci-server/src/services/ipfs.ts b/desci-server/src/services/ipfs.ts index d8a56b5b0..c25478bf3 100644 --- a/desci-server/src/services/ipfs.ts +++ b/desci-server/src/services/ipfs.ts @@ -130,29 +130,26 @@ export const downloadFilesAndMakeManifest = async ({ title, defaultLicense, pdf, }, }; - const pdfComponents = pdfHashes.map((d: UrlWithCid) => { - const cid = makePublic([d])[0].val; + const pdfComponents = (await pdfHashes).map((d: UrlWithCid) => { const objectComponent: PdfComponent = { id: d.cid, name: 'Research Report', type: ResearchObjectComponentType.PDF, payload: { - cid, + url: makePublic([d])[0].val, annotations: [], - path: DRIVE_NODE_ROOT_PATH + '/Research Report', }, }; return objectComponent; }); - const codeComponents = codeHashes.map((d: UrlWithCid) => { + const codeComponents = (await codeHashes).map((d: UrlWithCid) => { const objectComponent: CodeComponent = { id: d.cid, name: 'Code', type: ResearchObjectComponentType.CODE, payload: { language: 'bash', - cid: makePublic([d])[0].val, - path: DRIVE_NODE_ROOT_PATH + '/Code', + code: makePublic([d])[0].val, }, }; return objectComponent; @@ -230,30 +227,28 @@ export const downloadFile = async (url: string, key: string): Promise => { if (url.indexOf('github.com') > -1) { const file = await processUrls('code', getUrlsFromParam([url]))[0]; + const component: CodeComponent = { id: file.cid, name: 'Code', type: ResearchObjectComponentType.CODE, payload: { - cid: makePublic([file])[0].val, + url: makePublic([file])[0].val, externalUrl: await getGithubExternalUrl(url), - path: DRIVE_NODE_ROOT_PATH + '/Code', }, }; return { component, file }; } const file = await processUrls('pdf', getUrlsFromParam([url]))[0]; - const cid = makePublic([file])[0].val; + const component: PdfComponent = { id: file.cid, name: 'Research Report', type: ResearchObjectComponentType.PDF, payload: { - url: cid, - cid, + url: makePublic([file])[0].val, annotations: [], - path: DRIVE_NODE_ROOT_PATH + '/Research Report', }, }; diff --git a/desci-server/src/services/manifestRepo.ts b/desci-server/src/services/manifestRepo.ts index 4afc6ab50..56108ea61 100644 --- a/desci-server/src/services/manifestRepo.ts +++ b/desci-server/src/services/manifestRepo.ts @@ -1,6 +1,18 @@ +import { Doc, getHeads } from '@automerge/automerge'; import { AutomergeUrl, DocumentId } from '@automerge/automerge-repo'; +import { + ResearchObjectComponentTypeMap, + ResearchObjectV1Author, + ResearchObjectV1Component, + ResearchObjectV1Dpid, + isResearchObjectComponentTypeMap, +} from '@desci-labs/desci-models'; import { Node } from '@prisma/client'; + import { logger } from '../logger.js'; +import { backendRepo } from '../repo.js'; +import { ResearchObjectDocument } from '../types/documents.js'; + import { getManifestFromNode } from './data/processing.js'; import repoService from './repoService.js'; @@ -23,4 +35,80 @@ export const getLatestManifestFromNode = async (node: Node) => { export function assertNever(value: never) { console.error('Unknown value', value); throw Error('Not Possible'); +} + +export type ManifestActions = + | { type: 'Add Components'; components: ResearchObjectV1Component[] } + | { type: 'Delete Components'; paths: string[] } + | { type: 'Rename Component'; path: string; fileName: string } + | { type: 'Rename Component Path'; oldPath: string; newPath: string } + | { + type: 'Update Component'; + component: ResearchObjectV1Component; + componentIndex: number; + } + | { + type: 'Assign Component Type'; + component: ResearchObjectV1Component; + componentTypeMap: ResearchObjectComponentTypeMap; + } + | { type: 'Set Drive Clock'; time: string } + // frontend changes to support + | { type: 'Update Title'; title: string } + | { type: 'Update Description'; description: string } + | { type: 'Update License'; defaultLicense: string } + | { type: 'Update ResearchFields'; researchFields: string[] } + | { type: 'Add Component'; component: ResearchObjectV1Component } + | { type: 'Delete Component'; path: string } + | { type: 'Add Contributor'; author: ResearchObjectV1Author } + | { type: 'Remove Contributor'; contributorIndex: number } + | { type: 'Pin Component'; path: string } + | { type: 'UnPin Component'; path: string } + | { + type: 'Update Component'; + component: ResearchObjectV1Component; + componentIndex: number; + } + | { + type: 'Publish Dpid'; + dpid: ResearchObjectV1Dpid; + }; + +const updateManifestComponent = ( + doc: Doc, + component: ResearchObjectV1Component, + componentIndex: number, +) => { + if (componentIndex === -1 || componentIndex === undefined) return; + + const currentComponent = doc.manifest.components[componentIndex]; + currentComponent.type = component?.type || currentComponent.type; + + if (!currentComponent.starred) currentComponent.starred = false; + currentComponent.starred = component?.starred || currentComponent.starred; +}; + +const updateComponentTypeMap = ( + doc: Doc, + path: string, + compTypeMap: ResearchObjectComponentTypeMap, +) => { + const currentComponent = doc.manifest.components.find((c) => c.payload?.path === path); + if (!currentComponent) return; + + const existingType = currentComponent.type; + if (!isResearchObjectComponentTypeMap(existingType)) { + currentComponent.type = {}; + } + + const componentType = currentComponent.type; + const update = { + ...(isResearchObjectComponentTypeMap(existingType) && { ...existingType }), + ...compTypeMap, + }; + + Object.entries(update).forEach(([key, value]) => { + if (!componentType[key]) componentType[key] = ''; + componentType[key] = value; + }); }; diff --git a/desci-server/src/services/nodeManager.ts b/desci-server/src/services/nodeManager.ts index 4a83f629f..76d0097e7 100644 --- a/desci-server/src/services/nodeManager.ts +++ b/desci-server/src/services/nodeManager.ts @@ -9,7 +9,7 @@ import { uploadDataToEstuary } from '../services/estuary.js'; import { getIndexedResearchObjects } from '../theGraph.js'; import { generateDataReferences } from '../utils/dataRefTools.js'; import { cleanupManifestUrl } from '../utils/manifest.js'; -import { hexToCid, randomUUID64, asyncMap, ensureUuidEndsWithDot } from '../utils.js'; +import { hexToCid, randomUUID64, asyncMap } from '../utils.js'; import { addBufferToIpfs, downloadFilesAndMakeManifest, getSizeForCid, resolveIpfsData } from './ipfs.js'; @@ -56,7 +56,7 @@ export const createNodeDraftBlank = async ( export const setCeramicStream = async (uuid: string, ceramicStream: string) => { logger.debug({ fn: 'setCeramicStream', uuid, ceramicStream }, 'node::setCeramicStream'); - uuid = ensureUuidEndsWithDot(uuid); + uuid = uuid.endsWith('.') ? uuid : uuid + '.'; return await prisma.node.update({ data: { ceramicStream, diff --git a/desci-server/src/services/repoService.ts b/desci-server/src/services/repoService.ts index 1affe3e1d..0cec60b0f 100644 --- a/desci-server/src/services/repoService.ts +++ b/desci-server/src/services/repoService.ts @@ -1,11 +1,11 @@ import { DocumentId } from '@automerge/automerge-repo'; -import { ResearchObjectV1, ManifestActions } from '@desci-labs/desci-models'; +import { ResearchObjectV1 } from '@desci-labs/desci-models'; import axios, { AxiosInstance } from 'axios'; import { logger as parentLogger } from '../logger.js'; import { ResearchObjectDocument } from '../types/documents.js'; -import { NodeUuid } from './manifestRepo.js'; +import { ManifestActions, NodeUuid } from './manifestRepo.js'; const logger = parentLogger.child({ module: 'Repo Service' }); diff --git a/desci-server/src/utils/draftTreeUtils.ts b/desci-server/src/utils/draftTreeUtils.ts index b1483113a..79a36acff 100644 --- a/desci-server/src/utils/draftTreeUtils.ts +++ b/desci-server/src/utils/draftTreeUtils.ts @@ -47,6 +47,7 @@ interface IpfsDagToDraftNodeTreeEntriesParams { export function ipfsDagToDraftNodeTreeEntries({ ipfsTree, node, + user, timestampMap, contextPath, }: IpfsDagToDraftNodeTreeEntriesParams): Prisma.DraftNodeTreeCreateManyInput[] { diff --git a/desci-server/src/utils/driveUtils.ts b/desci-server/src/utils/driveUtils.ts index b42152929..de0c2148a 100644 --- a/desci-server/src/utils/driveUtils.ts +++ b/desci-server/src/utils/driveUtils.ts @@ -14,7 +14,6 @@ import { fillIpfsTree, isNodeRoot, isResearchObjectComponentTypeMap, - ManifestActions, } from '@desci-labs/desci-models'; import { DataReference, DataType, Node } from '@prisma/client'; @@ -23,7 +22,7 @@ import { DataReferenceSrc } from '../controllers/data/retrieve.js'; import { logger } from '../logger.js'; import { getOrCache } from '../redisClient.js'; import { getDirectoryTree, type RecursiveLsResult } from '../services/ipfs.js'; -import { NodeUuid } from '../services/manifestRepo.js'; +import { ManifestActions, NodeUuid } from '../services/manifestRepo.js'; import repoService from '../services/repoService.js'; import { getIndexedResearchObjects } from '../theGraph.js'; import { ensureUuidEndsWithDot } from '../utils.js'; @@ -352,6 +351,24 @@ export function inheritComponentType(path, pathToDbTypeMap: Record /dev/null; then + if [ -z "$NVM_DIR" ]; then echo "[dockerDev] NVM_DIR not set, please install NVM" echo "[dockerDev] curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash" exit 1 @@ -41,7 +41,6 @@ init_node() { assert_command_available "docker" assert_command_available "docker-compose" assert_command_available "lsof" -assert_command_available "make" init_node npm i -g hardhat diff --git a/nodes-lib/.env.example b/nodes-lib/.env.example deleted file mode 100644 index d6aa61c07..000000000 --- a/nodes-lib/.env.example +++ /dev/null @@ -1,54 +0,0 @@ -## Configure RPC nodes (open an issue/ping us to access DeSci Labs' nodes) -ETHEREUM_RPC_URL=http://localhost:8545 - -# Use this for Goerli testnet -# ETHEREUM_RPC_URL=https://eth-goerli.g.alchemy.com/v2/demo - -# Use this for Sepolia testnet -# ETHEREUM_RPC_URL=https://eth-sepolia.g.alchemy.com/v2/demo - -########################################################################## - -## Contract addresses -# Use these against local devcluster -DPID_CONTRACT_ADDRESS=0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0 -RO_CONTRACT_ADDRESS=0x5FC8d32690cc91D4c39d9d3abcBD16989F875707 - -# Use these against the görli testnet -# DPID_CONTRACT_ADDRESS=0xd92C9cC823926145b89263cd3A4CeD6161a8bDD5 -# RO_CONTRACT_ADDRESS=0x47104e854aFCd127D38C4912D08b56b8Ab725007 - -# Use these against the sepolia testnet -# DPID_CONTRACT_ADDRESS= -# RO_CONTRACT_ADDRESS= - -######################################################################### - -## Ceramic node -CERAMIC_NODE_URL=http://localhost:7007 - -# Use this for DeSci Labs' node -# CERAMIC_NODE_URL=https://ceramic-dev.desci.com - -######################################################################### - -## Connection to Nodes backend API -# Use this for local devcluster -NODES_API_URL=http://localhost:5420 - -# Use this against nodes-dev -# NODES_API_URL=https://nodes-api-dev.desci.com - -#!!!!!!!!!! -# REQUIRED: Set your API key (login to nodes-web-v2 locally/on dev, generate API key from profile page) -#!!!!!!!!!! -NODES_API_KEY= - -######################################################################## - -## Private key for publish (Ceramic & Ethereum chain) -# Use with local devcluster (pre-funded by ganache) -PUBLISH_PKEY=0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80 - -# Set your own private key -# PUBLISH_PKEY= diff --git a/nodes-lib/.gitignore b/nodes-lib/.gitignore deleted file mode 100644 index bc5c2b24a..000000000 --- a/nodes-lib/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -node_modules -demo.ts -dist -.env diff --git a/nodes-lib/LICENSE b/nodes-lib/LICENSE deleted file mode 100644 index 8b144126a..000000000 --- a/nodes-lib/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2024 DeSci Labs AG - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/nodes-lib/README.md b/nodes-lib/README.md deleted file mode 100644 index bedf7f779..000000000 --- a/nodes-lib/README.md +++ /dev/null @@ -1,135 +0,0 @@ -# Nodes integration library -This package allows programmatic interaction with the backend of [DeSci Nodes](https://nodes.desci.com), simplifying creation of research publications by abstracting away a lot of low level detail. In particular, constructing correctly formatted manifest files and handling pinning. - - -## Core concepts -Some terms are regularly referred to in the code documentation. When programmatically creating nodes, it's important to understand what these things are for the end results to make sense. The corresponding types for these data structures are available in [desci-models](https://github.com/desci-labs/nodes/blob/develop/desci-models/src/ResearchObject.ts). - -### The manifest -The data structure of a research object is a JSON file which holds all information for the object, -either directly through constant fields, or indirectly through IPLD or web links. - -Here is an example manifest file, we'll go through it piece by piece. -```json -manifest: { - "version": "desci-nodes-0.2.0", - "components": [ - { - "id": "root", - "name": "root", - "type": "data-bucket", - "payload": { - "cid": "bafybeicrsddlvfbbo5s3upvjbtb5flc73iupxfy2kf3rv43kkbvegbqbwq", - "path": "root" - } - }, - { - "id": "05d6cfe7-d3f8-4590-97ee-bec0a4806c3c", - "name": "manuscript.pdf", - "type": "pdf", - "subtype": "manuscript", - "payload": { - "cid": "bafybeiamslevhsvjlnfejg7p2rzk6bncioaapwb3oauu7zqwmfpwko5ho4", - "path": "root/manuscript.pdf", - "externalUrl": "https://mydomain.com/papers/manuscript.pdf" - }, - "starred": true - }, - { - "id": "0b6afb37-0e95-49d4-80e3-1a3724979594", - "name": "my search engine", - "type": "link", - "payload": { - "url": "http://google.com", - "path": "root" - }, - "starred": false - } - ], - "authors": [], - "title": "My Node", - "defaultLicense": "CC BY", - "researchFields": [] -} -``` - -### Components -In the manifest above, we see a `components` array. The first entry is a special one, the type `data-bucket` indicates that it holds the CID to the drive. The drive is an [UnixFS](https://github.com/ipfs/specs/blob/main/UNIXFS.md) tree that holds all of the actual data included in the research object. - -Other components exist to attach metadata to individual files or folders inside the drive. This allows metadata to be added without changing the CID of the files and drive, and allows you to add metadata to external CID's and URL's. - -The components are equipped with a UUID to allow moving files and updating files without the metadata mapping to break. - -We can see two examples of other components. One is a file entry for a manuscript, which was added from an external URL, but is identified uniquely inside the node by the `path` and `cid` entires in the `payload`. - -The other component (`my search engine`) is an external link, which is the one type of component which doesn't refer to an entry in the drive. - -### Other fields -The other top-level fields contain a human-readable title, simple metadata about authorship, relevant research fields, and license information. - -## Usage -### Configuration -Copy `.env.example` from this repo to `.env`, and configure the values depending on which environment is being targeted. If installing `nodes-lib` through NPM, set these variables in your host project environment instead. Ensure NODES_API_KEY is set. - -Some variables have different values depending on environment, re-set them as necessary. Devcluster refers to the docker-compose cluster defined in the root of this repository, which can be started with `./dockerDev.sh`. See further instructions in the [repo root docs](../README.md). - -### Drafts -A node that's being modified is always in a "draft" state, meaning that the changes are not public. They only become public when the node is published, after which it's possible to view without being authenticated. When new changes are made from this point, they are not publicly available until publish is done again. - -Manifests cannot be submitted "whole", as the state of draft manifests are maintained internally as [automerge CRDT documents](https://automerge.org/). Hence, one needs to send change chunks so that the lib submitted changes can be interspersed with simultaneous webapp edits. This means that your calls will more or less instantly be reflected in the webapp. - -### Authentication -Most functions ineracting with the Nodes backend require authentication, as they work on your private draft node. You can create an API key under your profile at [nodes.desci.com](https://nodes.desci.com). Set this as `AUTH_TOKEN` in your environment. - -Publishing to the dPID registry and/or Codex requires a private key. Publishing is done in-library and is not sent to the Nodes backend. Set the environment variable `NODES_LIB_PUBLISH_PKEY` and it will be used in interaction with the dPID registry on-chain, and as your DID in the Codex/Ceramic case. - -### Summarized API -This section outlines the major functionality the library provides. It's not a complete rundown of all capabilities, but should be enough to get some inutition for the workflow. - -#### Node operations -- `createDraftNode`: initializes a new, empty, private node. -- `prepublishDraftNode`: instructs the backend to re-compute the DAG, which is emulated to speed up operations in the drive. This is called automatically in `publishNode`, so in general it doesn't need to be invoked explicitly. -- `listNodes`: list existing nodes for the authenticated user. -- `retrieveDraftFileTree`: get the drive file tree. -- `deleteDraftNode`: remove a draft node. - -#### Manifest operations -Pretty self explanatory; these update the top-level metadata fields in the manifest: -- `updateTitle` -- `updateDescription` -- `updateLicense` -- `updateResearchFields` -- `addContributor` -- `removeContributor` - -#### File operations -These functions adds, removes, and organizes files in the drive. Everything operates on absolute drive paths; there are no relative-path operations. -- `uploadFiles`: upload one or more local files to the node drive. -- `createNewFolder`: creates an empty folder in the drive, which can be used as a target for uploading/moving files. -- `moveData`: move a file or directory to a new path in the drive. Note that this covers rename operations. -- `deleteData`: delete a path (and its potential subtree) from the drive. - -#### External import -These imports automatically create components for attaching metadata, in addition to creating the files in the drive. -- `uploadPdfFromUrl`: let the backend get a PDF from URL and add it to the drive. -- `uploadGithubRepoFromUrl`: let the backend download a snapshot of the repo and add it to the drive. -- `addExternalUnixFsTree`: upload the structure of an external UnixFS tree to the drive, without the actual files. They can then be resolved through regular IPFS means, but the file structure can be browsed in the node. - -#### Publishing -Until a publish operation has been run, the entire content of a node is private. -- `publishNode`: publishes said node to the dPID registry on the Görli testnet, and Codex on Ceramic. -- `getDpidHistory`: fetch the dPID registry history, as the backend is aware of it. -- `getManifestDocument`: get the state of the node manifest. -- `addLinkComponent`: create a link to an external resource. -- `addPdfComponent`: create a component for adding metadata to a PDF document in the drive. -- `addCodeComponent`: create a component for adding metadata to code in the drive. -- `deleteComponent`: remove a component from the manifest. -- `addRawComponent`: create a new component in the node. -- `changeManifest`: make an arbitrary change to the manifest. - -## Application ideas -Some random ideas of cool stuff you can build with this library: -- A CLI tool for uploading large datasets to nodes -- A tool which parses your ORCiD or Google Scholar profile and creates a node for each publication -- An automatic Node manager which regularly pushes new data to a node and publishes it -- Custom importer, allowing creating nodes from other input formats diff --git a/nodes-lib/package-lock.json b/nodes-lib/package-lock.json deleted file mode 100644 index 84c7718ad..000000000 --- a/nodes-lib/package-lock.json +++ /dev/null @@ -1,8383 +0,0 @@ -{ - "name": "@desci-labs/nodes-lib", - "version": "0.0.1", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "@desci-labs/nodes-lib", - "version": "0.0.1", - "license": "MIT", - "dependencies": { - "@desci-labs/desci-codex-lib": "^1.0.5", - "@desci-labs/desci-models": "^0.2.3-rc1", - "axios": "^1.6.5", - "dotenv": "^16.4.4", - "ethers": "^5.7.2", - "form-data": "^4.0.0", - "mime-types": "^2.1.35", - "multiformats": "^13.0.1", - "url-safe-base64": "^1.3.0" - }, - "devDependencies": { - "@desci-labs/desci-contracts": "^0.2.0-rc1", - "@types/mime-types": "^2.1.4", - "@types/node": "^20.11.5", - "typescript": "^5.3.3", - "vitest": "^1.2.1", - "vitest-github-actions-reporter": "^0.11.1" - } - }, - "../desci-contracts": { - "name": "@desci-labs/desci-contracts", - "version": "0.2.0", - "extraneous": true, - "license": "BSD-4-Clause", - "dependencies": { - "@openzeppelin/contracts": "^4.8.1", - "cids": "^1.1.9", - "dotenv": "^10.0.0", - "openzeppelin-solidity": "https://github.com/OpenZeppelin/openzeppelin-contracts#dc739dcbe34fb0c7b15c4e197c6ba3fe9b0c8946" - }, - "devDependencies": { - "@graphprotocol/graph-cli": "^0.59.0", - "@graphprotocol/graph-ts": "^0.32.0", - "@nomiclabs/hardhat-ethers": "^2.0.0", - "@nomiclabs/hardhat-waffle": "^2.0.1", - "@openzeppelin/contracts-upgradeable": "^4.7.3", - "@openzeppelin/hardhat-upgrades": "^1.20.0", - "@typechain/ethers-v5": "^9.0.0", - "@typechain/hardhat": "^4.0.0", - "@types/chai": "^4.2.21", - "@types/mocha": "^9.0.0", - "@types/node": "^16.4.10", - "as-base64": "^0.2.0", - "chai": "^4.3.4", - "ethereum-waffle": "^3.4.0", - "ethers": "^5.4.4", - "ganache": "^7.8.0", - "hardhat": "^2.19.2", - "hardhat-deploy": "^0.8.11", - "hardhat-deploy-ethers": "^0.3.0-beta.10", - "hardhat-gas-reporter": "^1.0.4", - "mocha": "^9.0.3", - "ts-generator": "^0.1.1", - "ts-morph": "^11.0.3", - "ts-node": "^10.1.0", - "typechain": "^7.0.0", - "typescript": "^4.3.5" - } - }, - "node_modules/@actions/core": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.10.1.tgz", - "integrity": "sha512-3lBR9EDAY+iYIpTnTIXmWcNbX3T2kCkAEQGIQx4NVQ0575nk2k3GRZDTPQG+vVtS2izSLmINlxXf0uLtnrTP+g==", - "dev": true, - "dependencies": { - "@actions/http-client": "^2.0.1", - "uuid": "^8.3.2" - } - }, - "node_modules/@actions/core/node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true, - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/@actions/http-client": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-2.2.0.tgz", - "integrity": "sha512-q+epW0trjVUUHboliPb4UF9g2msf+w61b32tAkFEwL/IwP0DQWgbCMM0Hbe3e3WXSKz5VcUXbzJQgy8Hkra/Lg==", - "dev": true, - "dependencies": { - "tunnel": "^0.0.6", - "undici": "^5.25.4" - } - }, - "node_modules/@adraffy/ens-normalize": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.10.0.tgz", - "integrity": "sha512-nA9XHtlAkYfJxY7bce8DcN7eKxWWCWkU+1GR9d+U6MbNpfwQp8TI7vqOsBsMcHoT4mBu2kypKoSKnghEzOOq5Q==" - }, - "node_modules/@ceramicnetwork/codecs": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@ceramicnetwork/codecs/-/codecs-2.4.1.tgz", - "integrity": "sha512-QhdUHp7PJm+qL05f6ovlUe7K85urBt3V7JKQrmq33jCYt4YlVT2bTyUdsrgcyA+IJZnXP1KEWuSdcpE1V3Qe/A==", - "dependencies": { - "@ceramicnetwork/streamid": "^3.4.1", - "cartonne": "^3.0.1", - "codeco": "^1.1.0", - "dag-jose": "^4.0.0", - "multiformats": "^13.0.0", - "uint8arrays": "^5.0.1" - } - }, - "node_modules/@ceramicnetwork/codecs/node_modules/uint8arrays": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.0.1.tgz", - "integrity": "sha512-ND5RpJAnPgHmZT7hWD/2T4BwRp04j8NLKvMKC/7bhiEwEjUMkQ4kvBKiH6hOqbljd6qJ2xS8reL3vl1e33grOQ==", - "dependencies": { - "multiformats": "^13.0.0" - } - }, - "node_modules/@ceramicnetwork/common": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/@ceramicnetwork/common/-/common-3.4.1.tgz", - "integrity": "sha512-SVtPG6tkaDF77iM2mweXV+JSgZa3tKvuku0TIrA+pZswa1EHtnRHssSilaj4q91JNaTy2Gsk86oK6MuQp9+LKg==", - "dependencies": { - "@ceramicnetwork/codecs": "^2.4.1", - "@ceramicnetwork/streamid": "^3.4.1", - "@didtools/cacao": "^3.0.0", - "@didtools/pkh-ethereum": "^0.2.0", - "@didtools/pkh-solana": "^0.2.0", - "@didtools/pkh-stacks": "^0.2.0", - "@didtools/pkh-tezos": "^0.3.0", - "@stablelib/random": "^1.0.1", - "caip": "~1.1.0", - "flat": "^5.0.2", - "it-first": "^3.0.4", - "jet-logger": "1.2.2", - "lodash.clonedeep": "^4.5.0", - "logfmt": "^1.3.2", - "multiformats": "^13.0.0", - "rxjs": "^7.8.1", - "uint8arrays": "^5.0.1" - } - }, - "node_modules/@ceramicnetwork/common/node_modules/uint8arrays": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.0.1.tgz", - "integrity": "sha512-ND5RpJAnPgHmZT7hWD/2T4BwRp04j8NLKvMKC/7bhiEwEjUMkQ4kvBKiH6hOqbljd6qJ2xS8reL3vl1e33grOQ==", - "dependencies": { - "multiformats": "^13.0.0" - } - }, - "node_modules/@ceramicnetwork/http-client": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/@ceramicnetwork/http-client/-/http-client-3.4.1.tgz", - "integrity": "sha512-ihnX2Gkc77IqnokF3vU1IDoWYGbU7fnXpgrTqU7MkjiT5GrpERjhu1Z64Hs3IIklyEfau5zqa7X1zQuvce7QMg==", - "dependencies": { - "@ceramicnetwork/common": "^3.4.1", - "@ceramicnetwork/stream-caip10-link": "^3.4.1", - "@ceramicnetwork/stream-model": "^2.4.1", - "@ceramicnetwork/stream-model-instance": "^2.4.1", - "@ceramicnetwork/stream-tile": "^3.4.1", - "@ceramicnetwork/streamid": "^3.4.1", - "@scarf/scarf": "^1.1.1", - "query-string": "^7.1.0", - "rxjs": "^7.8.1" - } - }, - "node_modules/@ceramicnetwork/stream-caip10-link": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/@ceramicnetwork/stream-caip10-link/-/stream-caip10-link-3.4.1.tgz", - "integrity": "sha512-M6e3nP7Wq4XOF1BNskK7MOdCB69Cyoc+WbJIicO28lMPouK4FzsOZn2F7z2807JhYJaapWYft4Ab0EXaZKqqGA==", - "dependencies": { - "@ceramicnetwork/common": "^3.4.1", - "@ceramicnetwork/streamid": "^3.4.1", - "caip": "~1.1.0", - "did-resolver": "^4.0.1", - "lodash.clonedeep": "^4.5.0" - } - }, - "node_modules/@ceramicnetwork/stream-model": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@ceramicnetwork/stream-model/-/stream-model-2.4.1.tgz", - "integrity": "sha512-H2oy9h2372B0ATyZLzR9cJKQbalfC58D4e5TXWl/EsVB3C2jslZPDyDODdqtQV44SM3QHp6sfAXf3/ds2S9mhQ==", - "dependencies": { - "@ceramicnetwork/codecs": "^2.4.1", - "@ceramicnetwork/common": "^3.4.1", - "@ceramicnetwork/streamid": "^3.4.1", - "@ipld/dag-cbor": "^7.0.0", - "@stablelib/random": "^1.0.1", - "ajv": "^8.8.2", - "ajv-formats": "^2.1.1", - "codeco": "^1.1.0", - "fast-json-patch": "^3.1.0", - "json-schema-typed": "^8.0.1", - "multiformats": "^13.0.0", - "uint8arrays": "^5.0.1" - } - }, - "node_modules/@ceramicnetwork/stream-model-instance": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@ceramicnetwork/stream-model-instance/-/stream-model-instance-2.4.1.tgz", - "integrity": "sha512-vp+oY27BFM64pXN2l4riwK3/3rN1DCEZe/iBrWWJ79SC99S9jFsSnx2TB0RLkBF+n87IsWi+t1WA+FR1KNIe/Q==", - "dependencies": { - "@ceramicnetwork/common": "^3.4.1", - "@ceramicnetwork/streamid": "^3.4.1", - "@ipld/dag-cbor": "^7.0.0", - "@stablelib/random": "^1.0.1", - "fast-json-patch": "^3.1.0", - "object-sizeof": "^2.6.1", - "uint8arrays": "^5.0.1" - } - }, - "node_modules/@ceramicnetwork/stream-model-instance/node_modules/uint8arrays": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.0.1.tgz", - "integrity": "sha512-ND5RpJAnPgHmZT7hWD/2T4BwRp04j8NLKvMKC/7bhiEwEjUMkQ4kvBKiH6hOqbljd6qJ2xS8reL3vl1e33grOQ==", - "dependencies": { - "multiformats": "^13.0.0" - } - }, - "node_modules/@ceramicnetwork/stream-model/node_modules/uint8arrays": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.0.1.tgz", - "integrity": "sha512-ND5RpJAnPgHmZT7hWD/2T4BwRp04j8NLKvMKC/7bhiEwEjUMkQ4kvBKiH6hOqbljd6qJ2xS8reL3vl1e33grOQ==", - "dependencies": { - "multiformats": "^13.0.0" - } - }, - "node_modules/@ceramicnetwork/stream-tile": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/@ceramicnetwork/stream-tile/-/stream-tile-3.4.1.tgz", - "integrity": "sha512-oTgG1sRPNS/eG+Df9O2CXOjWRzgs+mwYtF6/qY2jayWp+1t5BDdSKBefa427lekJEXn+IS5w2FesOAY5/3ddPQ==", - "dependencies": { - "@ceramicnetwork/common": "^3.4.1", - "@ceramicnetwork/streamid": "^3.4.1", - "@ipld/dag-cbor": "^7.0.0", - "@stablelib/random": "^1.0.1", - "dids": "^5.0.0", - "fast-json-patch": "^3.1.0", - "lodash.clonedeep": "^4.5.0", - "uint8arrays": "^5.0.1" - } - }, - "node_modules/@ceramicnetwork/stream-tile/node_modules/@didtools/pkh-ethereum": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@didtools/pkh-ethereum/-/pkh-ethereum-0.5.0.tgz", - "integrity": "sha512-2S+TS/I2jVTNnkgyslxQvSjCzzLsCabjXD2UWjJnVkAoxeJgPE9GvY1JhTDgvVLfxLPnYwTIP/O1WR9wJcDkFg==", - "dependencies": { - "@didtools/cacao": "^3.0.0", - "@noble/curves": "^1.2.0", - "@noble/hashes": "^1.3.2", - "@stablelib/random": "^1.0.2", - "caip": "^1.1.0" - }, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/@ceramicnetwork/stream-tile/node_modules/cborg": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/cborg/-/cborg-4.0.8.tgz", - "integrity": "sha512-/6QDK0Hw//cV4YNWZZjdIUMFNw0DZmb56jdVGJPwXP7874gSN0AMYqM07mVKpAm+6Nn7U8lvYFzPgBGatC+5xw==", - "bin": { - "cborg": "lib/bin.js" - } - }, - "node_modules/@ceramicnetwork/stream-tile/node_modules/dag-jose-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/dag-jose-utils/-/dag-jose-utils-4.0.0.tgz", - "integrity": "sha512-bmmXtVdEKp/zYH8El4GGkMREJioUztz8fzOErfy5dTbyKIVOF61C5sfsZLYCB/wiT/I9+SPNrQeo/Cx6Ik3wJQ==", - "dependencies": { - "@ipld/dag-cbor": "^9.0.7", - "multiformats": "^13.0.0" - } - }, - "node_modules/@ceramicnetwork/stream-tile/node_modules/dag-jose-utils/node_modules/@ipld/dag-cbor": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/@ipld/dag-cbor/-/dag-cbor-9.1.0.tgz", - "integrity": "sha512-7pMKjBaapEh+1Nk/1umPPhQGT6znb5E71lke2ekxlcuVZLLrPPdDSy0UAMwWgj3a28cjir/ZJ6CQH2DEs3DUOQ==", - "dependencies": { - "cborg": "^4.0.0", - "multiformats": "^13.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@ceramicnetwork/stream-tile/node_modules/dids": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/dids/-/dids-5.0.2.tgz", - "integrity": "sha512-sxTgrvJtatqdm7dukGbquk23BVvbiaxf3nTKywWaY9AUqwC2IYEo6FG0En2cMl3J1fqMMQXrGg9luh2xDmYOmw==", - "dependencies": { - "@didtools/cacao": "^3.0.1", - "@didtools/codecs": "^3.0.0", - "@didtools/pkh-ethereum": "^0.5.0", - "@stablelib/random": "^1.0.2", - "codeco": "^1.2.0", - "dag-jose-utils": "^4.0.0", - "did-jwt": "^7.4.7", - "did-resolver": "^4.1.0", - "multiformats": "^13.0.0", - "rpc-utils": "^0.6.2", - "uint8arrays": "^5.0.1" - }, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/@ceramicnetwork/stream-tile/node_modules/uint8arrays": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.0.1.tgz", - "integrity": "sha512-ND5RpJAnPgHmZT7hWD/2T4BwRp04j8NLKvMKC/7bhiEwEjUMkQ4kvBKiH6hOqbljd6qJ2xS8reL3vl1e33grOQ==", - "dependencies": { - "multiformats": "^13.0.0" - } - }, - "node_modules/@ceramicnetwork/streamid": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/@ceramicnetwork/streamid/-/streamid-3.4.1.tgz", - "integrity": "sha512-m6uZjcdMdwzyO6TIVTJF4IJYjuceflmYDrlRxDcXrZySBNNKnL40tSHbzpcTfOy5YcIsTqJFxqUZQrFrC0mlDA==", - "dependencies": { - "@ipld/dag-cbor": "^7.0.0", - "@stablelib/sha256": "^1.0.1", - "cborg": "^1.10.2", - "mapmoize": "^1.2.1", - "multiformats": "^13.0.0", - "uint8arrays": "^5.0.1", - "varint": "^6.0.0" - } - }, - "node_modules/@ceramicnetwork/streamid/node_modules/uint8arrays": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.0.1.tgz", - "integrity": "sha512-ND5RpJAnPgHmZT7hWD/2T4BwRp04j8NLKvMKC/7bhiEwEjUMkQ4kvBKiH6hOqbljd6qJ2xS8reL3vl1e33grOQ==", - "dependencies": { - "multiformats": "^13.0.0" - } - }, - "node_modules/@composedb/client": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@composedb/client/-/client-0.6.0.tgz", - "integrity": "sha512-vqA7gMxdUq9UATM4bgvFx5Wk2BFYoc/rmCceM9KqCaY3yHohtOPxlty1L6/Fl1Md98hmgQkY45lvHiD4ajA1Kg==", - "dependencies": { - "@ceramicnetwork/http-client": "^3.0.5", - "@ceramicnetwork/stream-model": "^2.0.5", - "@ceramicnetwork/stream-model-instance": "^2.0.5", - "@composedb/constants": "^0.6.0", - "@composedb/graphql-scalars": "^0.6.0", - "@composedb/runtime": "^0.6.0", - "@graphql-tools/batch-execute": "^9.0.2", - "@graphql-tools/stitch": "^9.0.3", - "@graphql-tools/utils": "^10.0.11", - "dataloader": "^2.2.2", - "graphql": "^16.8.1", - "graphql-relay": "^0.10.0" - }, - "engines": { - "node": ">=20" - } - }, - "node_modules/@composedb/constants": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@composedb/constants/-/constants-0.6.0.tgz", - "integrity": "sha512-18rysTgKUTgapwaDEJOI063WSWlwbvowEnRZkFrZpciHPHjgfdry9XTht4ygYkGzx9TE+zGsVmgJfF0LlbTFMg==", - "engines": { - "node": ">=20" - } - }, - "node_modules/@composedb/graphql-scalars": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@composedb/graphql-scalars/-/graphql-scalars-0.6.0.tgz", - "integrity": "sha512-9GssARG72pXb2SEYK6Zozz92tl37WnI9fCgKiTKBIjisoUGpUnTv2sRNRJV8X9j4CgawvCm4Yb/SH+CtUXuZew==", - "dependencies": { - "@ceramicnetwork/streamid": "^3.0.5", - "@composedb/types": "^0.6.0", - "caip": "^1.1.0", - "graphql": "^16.8.1", - "graphql-scalars": "^1.22.4", - "multiformats": "^12.1.3" - }, - "engines": { - "node": ">=20" - } - }, - "node_modules/@composedb/graphql-scalars/node_modules/multiformats": { - "version": "12.1.3", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.3.tgz", - "integrity": "sha512-eajQ/ZH7qXZQR2AgtfpmSMizQzmyYVmCql7pdhldPuYQi4atACekbJaQplk6dWyIi10jCaFnd6pqvcEFXjbaJw==", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@composedb/runtime": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@composedb/runtime/-/runtime-0.6.0.tgz", - "integrity": "sha512-HZRFa7KVqEPAQY9umPzpdRoblHIn/QVk/55T5TPLv6VTEDmUmw0W3Nv+vNH7kvq++SdIuikbRPSW7eci9wUTCw==", - "dependencies": { - "@ceramicnetwork/http-client": "^3.0.5", - "@ceramicnetwork/stream-model": "^2.0.5", - "@ceramicnetwork/stream-model-instance": "^2.0.5", - "@ceramicnetwork/streamid": "^3.0.5", - "@composedb/graphql-scalars": "^0.6.0", - "dataloader": "^2.2.2", - "graphql": "^16.8.1", - "graphql-relay": "^0.10.0" - }, - "engines": { - "node": ">=20" - } - }, - "node_modules/@composedb/types": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@composedb/types/-/types-0.6.0.tgz", - "integrity": "sha512-Bpt85C/bIByqFx87OC14DBGfXCV7tj9IsZ5AQ0fv53bGATs+otEj+tnz5UxDRcSSuT9iLOLa8XLLKiEKkwmecQ==", - "dependencies": { - "@ceramicnetwork/common": "^3.0.5", - "@ceramicnetwork/stream-model": "^2.0.5", - "@ceramicnetwork/stream-model-instance": "^2.0.5", - "dids": "^4.0.4", - "json-schema-typed": "^8.0.1" - }, - "engines": { - "node": ">=20" - } - }, - "node_modules/@desci-labs/desci-codex-composedb": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@desci-labs/desci-codex-composedb/-/desci-codex-composedb-1.0.1.tgz", - "integrity": "sha512-8SGGvm+NKYiNctOQ9+086/zSUdYgsvecg4PnQ3HZ+lJGd4GSOGwI9cfnDPl+Bu7yTXEimCRZvaQ4q/b4CPCxTg==", - "dependencies": { - "@composedb/types": "^0.6.0" - } - }, - "node_modules/@desci-labs/desci-codex-lib": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@desci-labs/desci-codex-lib/-/desci-codex-lib-1.0.6.tgz", - "integrity": "sha512-+sVL2DEiAr57UbDybWU6crd54uUZEvTsIvyBP3iAaci373+o2CpT9SUOLd6L3lcxAoc3TLXxXOrVvNmRs8U89w==", - "dependencies": { - "@composedb/client": "^0.6.0", - "@desci-labs/desci-codex-composedb": "^1.0.1", - "dids": "^4.0.4", - "gql-query-builder": "^3.8.0", - "graphql": "^16.8.0", - "key-did-provider-ed25519": "^3.0.2", - "key-did-resolver": "^3.0.0", - "uint8arrays": "^4.0.6" - } - }, - "node_modules/@desci-labs/desci-contracts": { - "version": "0.2.0-rc1", - "resolved": "https://registry.npmjs.org/@desci-labs/desci-contracts/-/desci-contracts-0.2.0-rc1.tgz", - "integrity": "sha512-tYUjJOcq2w6Ff3jmXJ+X0DI0Tu+W/LJrrJL9lXQ1BjHQClbX3xpTy7UCK4PuNSSpnjT/psIaoc8ck+n0Nfo1hw==", - "dev": true, - "dependencies": { - "@openzeppelin/contracts": "^4.8.1", - "cids": "^1.1.9", - "dotenv": "^10.0.0", - "openzeppelin-solidity": "git+https://github.com/OpenZeppelin/openzeppelin-contracts.git#dc739dcbe34fb0c7b15c4e197c6ba3fe9b0c8946" - } - }, - "node_modules/@desci-labs/desci-contracts/node_modules/dotenv": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", - "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/@desci-labs/desci-models": { - "version": "0.2.3-rc1", - "resolved": "https://registry.npmjs.org/@desci-labs/desci-models/-/desci-models-0.2.3-rc1.tgz", - "integrity": "sha512-FW74CkgfZTNhky0Q6Sk3lCoBZ+Yl5D4KVTTLBv/NG+e8qH9jyT6DVbiXvaThQWZQNulFXJg2UFZm73AVInu3wA==", - "dependencies": { - "jsonld": "^8.1.1", - "schema-dts": "^1.1.2" - } - }, - "node_modules/@didtools/cacao": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@didtools/cacao/-/cacao-3.0.1.tgz", - "integrity": "sha512-vV1JirxqVsBf2dqdvoS/msNN8fabvMfseZB0kf1FG8TbosrHd81+hgDOlQMZit7zJbTk5g3CGkZg3b7iYKkynw==", - "dependencies": { - "@didtools/codecs": "^3.0.0", - "@didtools/siwx": "2.0.0", - "@ipld/dag-cbor": "^9.0.7", - "caip": "^1.1.0", - "multiformats": "^13.0.0", - "uint8arrays": "^5.0.1", - "viem": "^1.21.4" - }, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/@didtools/cacao/node_modules/@ipld/dag-cbor": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/@ipld/dag-cbor/-/dag-cbor-9.1.0.tgz", - "integrity": "sha512-7pMKjBaapEh+1Nk/1umPPhQGT6znb5E71lke2ekxlcuVZLLrPPdDSy0UAMwWgj3a28cjir/ZJ6CQH2DEs3DUOQ==", - "dependencies": { - "cborg": "^4.0.0", - "multiformats": "^13.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@didtools/cacao/node_modules/cborg": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/cborg/-/cborg-4.0.8.tgz", - "integrity": "sha512-/6QDK0Hw//cV4YNWZZjdIUMFNw0DZmb56jdVGJPwXP7874gSN0AMYqM07mVKpAm+6Nn7U8lvYFzPgBGatC+5xw==", - "bin": { - "cborg": "lib/bin.js" - } - }, - "node_modules/@didtools/cacao/node_modules/uint8arrays": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.0.1.tgz", - "integrity": "sha512-ND5RpJAnPgHmZT7hWD/2T4BwRp04j8NLKvMKC/7bhiEwEjUMkQ4kvBKiH6hOqbljd6qJ2xS8reL3vl1e33grOQ==", - "dependencies": { - "multiformats": "^13.0.0" - } - }, - "node_modules/@didtools/codecs": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@didtools/codecs/-/codecs-3.0.0.tgz", - "integrity": "sha512-TemoVySZrs1XflMtOkwVTATtZEs42Mh2yk9SoYvBXES6Mz30PBJCm8v7U/2y1N5lrjb2cAPWs48Ryc7paetSxQ==", - "dependencies": { - "codeco": "^1.2.0", - "multiformats": "^13.0.0", - "uint8arrays": "^5.0.1" - }, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/@didtools/codecs/node_modules/uint8arrays": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.0.1.tgz", - "integrity": "sha512-ND5RpJAnPgHmZT7hWD/2T4BwRp04j8NLKvMKC/7bhiEwEjUMkQ4kvBKiH6hOqbljd6qJ2xS8reL3vl1e33grOQ==", - "dependencies": { - "multiformats": "^13.0.0" - } - }, - "node_modules/@didtools/pkh-ethereum": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@didtools/pkh-ethereum/-/pkh-ethereum-0.2.1.tgz", - "integrity": "sha512-apQefbOqqy8HQMDNVG0ITxHLr9I5iZrjADX+mPB+ie1ue8MO8pOHMifLQ3j0R6RjS2einCd+hEZ4Ib4AKs3Xlw==", - "dependencies": { - "@didtools/cacao": "^2.0.0", - "@ethersproject/wallet": "^5.7.0", - "@stablelib/random": "^1.0.2", - "caip": "^1.1.0" - }, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/@didtools/pkh-ethereum/node_modules/@didtools/cacao": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@didtools/cacao/-/cacao-2.1.0.tgz", - "integrity": "sha512-35gopj+mOmAlA3nHoHiYMvNMXJtbJDJnVpIlCf/Wf/+/x+uG9aIQefXfF35D6JuaTCZ0apabjpT2umL5h3EXcw==", - "dependencies": { - "@didtools/codecs": "^1.0.1", - "@didtools/siwx": "1.0.0", - "@ipld/dag-cbor": "^9.0.1", - "caip": "^1.1.0", - "multiformats": "^11.0.2", - "uint8arrays": "^4.0.3" - }, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/@didtools/pkh-ethereum/node_modules/@didtools/cacao/node_modules/multiformats": { - "version": "11.0.2", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-11.0.2.tgz", - "integrity": "sha512-b5mYMkOkARIuVZCpvijFj9a6m5wMVLC7cf/jIPd5D/ARDOfLC5+IFkbgDXQgcU2goIsTD/O9NY4DI/Mt4OGvlg==", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@didtools/pkh-ethereum/node_modules/@didtools/codecs": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@didtools/codecs/-/codecs-1.0.1.tgz", - "integrity": "sha512-6PYXOCX7mwVWUcudKQ3eW5LtI8v5esozazbf2q2F01PE+LoeEvTytvgU9FEspj4pATpq3hPx1eenX2uLirDJ8w==", - "dependencies": { - "codeco": "^1.1.0", - "multiformats": "^11.0.1", - "uint8arrays": "^4.0.3" - }, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/@didtools/pkh-ethereum/node_modules/@didtools/codecs/node_modules/multiformats": { - "version": "11.0.2", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-11.0.2.tgz", - "integrity": "sha512-b5mYMkOkARIuVZCpvijFj9a6m5wMVLC7cf/jIPd5D/ARDOfLC5+IFkbgDXQgcU2goIsTD/O9NY4DI/Mt4OGvlg==", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@didtools/pkh-ethereum/node_modules/@didtools/siwx": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@didtools/siwx/-/siwx-1.0.0.tgz", - "integrity": "sha512-b7sPDTNHdySoJ+Rp2p06x3rg1iTxI4yPTTA3PrPh40xcvFJ0K/YhdIb/Rzff13t92arcJ+VYGFhqtJorauV91g==", - "dependencies": { - "codeco": "^1.1.0" - }, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/@didtools/pkh-ethereum/node_modules/@ipld/dag-cbor": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/@ipld/dag-cbor/-/dag-cbor-9.1.0.tgz", - "integrity": "sha512-7pMKjBaapEh+1Nk/1umPPhQGT6znb5E71lke2ekxlcuVZLLrPPdDSy0UAMwWgj3a28cjir/ZJ6CQH2DEs3DUOQ==", - "dependencies": { - "cborg": "^4.0.0", - "multiformats": "^13.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@didtools/pkh-ethereum/node_modules/cborg": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/cborg/-/cborg-4.0.8.tgz", - "integrity": "sha512-/6QDK0Hw//cV4YNWZZjdIUMFNw0DZmb56jdVGJPwXP7874gSN0AMYqM07mVKpAm+6Nn7U8lvYFzPgBGatC+5xw==", - "bin": { - "cborg": "lib/bin.js" - } - }, - "node_modules/@didtools/pkh-solana": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@didtools/pkh-solana/-/pkh-solana-0.2.0.tgz", - "integrity": "sha512-wOfa+hbWo1ok8YnR8tq2mZKbcyEv9qrxtTR5jXOuhOqCkz30/qu9e2Wib/byx7Kx5/ik/2z1nd2YPL0vrA+TxQ==", - "dependencies": { - "@didtools/cacao": "^3.0.0", - "@noble/curves": "^1.2.0", - "@stablelib/random": "^1.0.2", - "caip": "^1.1.0", - "uint8arrays": "^5.0.1" - }, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/@didtools/pkh-solana/node_modules/uint8arrays": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.0.1.tgz", - "integrity": "sha512-ND5RpJAnPgHmZT7hWD/2T4BwRp04j8NLKvMKC/7bhiEwEjUMkQ4kvBKiH6hOqbljd6qJ2xS8reL3vl1e33grOQ==", - "dependencies": { - "multiformats": "^13.0.0" - } - }, - "node_modules/@didtools/pkh-stacks": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@didtools/pkh-stacks/-/pkh-stacks-0.2.0.tgz", - "integrity": "sha512-lXe8ZURCYCDQXrjaM7A4p1RCKrVsQ+NbO7bI70pRfjven82BPLDiqEJbhRGnWKbjQD1CQe9MJXLy3AuStKc7qw==", - "dependencies": { - "@didtools/cacao": "^3.0.0", - "@stablelib/random": "^1.0.2", - "@stacks/common": "^6.10.0", - "@stacks/encryption": "^6.10.0", - "@stacks/transactions": "^6.10.0", - "caip": "^1.1.0", - "jsontokens": "^4.0.1" - }, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/@didtools/pkh-tezos": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@didtools/pkh-tezos/-/pkh-tezos-0.3.0.tgz", - "integrity": "sha512-AB8drOnBkDSE9KolsiSShPwVOVbRXM2G5T//b+GgX9potVRTcRsD0z59x/6mU1e9g2kxpScOhjRrZsC0c+SQNw==", - "dependencies": { - "@didtools/cacao": "^3.0.0", - "@noble/curves": "^1.2.0", - "@noble/hashes": "^1.3.2", - "@stablelib/random": "^1.0.2", - "caip": "^1.1.0", - "uint8arrays": "^5.0.1" - }, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/@didtools/pkh-tezos/node_modules/uint8arrays": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.0.1.tgz", - "integrity": "sha512-ND5RpJAnPgHmZT7hWD/2T4BwRp04j8NLKvMKC/7bhiEwEjUMkQ4kvBKiH6hOqbljd6qJ2xS8reL3vl1e33grOQ==", - "dependencies": { - "multiformats": "^13.0.0" - } - }, - "node_modules/@didtools/siwx": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@didtools/siwx/-/siwx-2.0.0.tgz", - "integrity": "sha512-eqBtI5dZrptXTCyadnhvU0di/KvumoByT7F8KB/8BLU7M1lltfEmvf/c5AnsyrWO9338ygCs2u5mKz1p1Zdj5A==", - "dependencies": { - "codeco": "^1.2.0" - }, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/@digitalbazaar/http-client": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/@digitalbazaar/http-client/-/http-client-3.4.1.tgz", - "integrity": "sha512-Ahk1N+s7urkgj7WvvUND5f8GiWEPfUw0D41hdElaqLgu8wZScI8gdI0q+qWw5N1d35x7GCRH2uk9mi+Uzo9M3g==", - "dependencies": { - "ky": "^0.33.3", - "ky-universal": "^0.11.0", - "undici": "^5.21.2" - }, - "engines": { - "node": ">=14.0" - } - }, - "node_modules/@esbuild/aix-ppc64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz", - "integrity": "sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-arm": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.12.tgz", - "integrity": "sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz", - "integrity": "sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.12.tgz", - "integrity": "sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz", - "integrity": "sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz", - "integrity": "sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz", - "integrity": "sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz", - "integrity": "sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz", - "integrity": "sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz", - "integrity": "sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz", - "integrity": "sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz", - "integrity": "sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==", - "cpu": [ - "loong64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz", - "integrity": "sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==", - "cpu": [ - "mips64el" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz", - "integrity": "sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz", - "integrity": "sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz", - "integrity": "sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz", - "integrity": "sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz", - "integrity": "sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz", - "integrity": "sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz", - "integrity": "sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz", - "integrity": "sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz", - "integrity": "sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz", - "integrity": "sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@ethersproject/abi": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.7.0.tgz", - "integrity": "sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/address": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/hash": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/strings": "^5.7.0" - } - }, - "node_modules/@ethersproject/abstract-provider": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz", - "integrity": "sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/networks": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/transactions": "^5.7.0", - "@ethersproject/web": "^5.7.0" - } - }, - "node_modules/@ethersproject/abstract-signer": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz", - "integrity": "sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/abstract-provider": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0" - } - }, - "node_modules/@ethersproject/address": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.7.0.tgz", - "integrity": "sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/rlp": "^5.7.0" - } - }, - "node_modules/@ethersproject/base64": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.7.0.tgz", - "integrity": "sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.7.0" - } - }, - "node_modules/@ethersproject/basex": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.7.0.tgz", - "integrity": "sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/properties": "^5.7.0" - } - }, - "node_modules/@ethersproject/bignumber": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz", - "integrity": "sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "bn.js": "^5.2.1" - } - }, - "node_modules/@ethersproject/bytes": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz", - "integrity": "sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/logger": "^5.7.0" - } - }, - "node_modules/@ethersproject/constants": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz", - "integrity": "sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bignumber": "^5.7.0" - } - }, - "node_modules/@ethersproject/contracts": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.7.0.tgz", - "integrity": "sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/abi": "^5.7.0", - "@ethersproject/abstract-provider": "^5.7.0", - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/address": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/transactions": "^5.7.0" - } - }, - "node_modules/@ethersproject/hash": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.7.0.tgz", - "integrity": "sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/address": "^5.7.0", - "@ethersproject/base64": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/strings": "^5.7.0" - } - }, - "node_modules/@ethersproject/hdnode": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.7.0.tgz", - "integrity": "sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/basex": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/pbkdf2": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/sha2": "^5.7.0", - "@ethersproject/signing-key": "^5.7.0", - "@ethersproject/strings": "^5.7.0", - "@ethersproject/transactions": "^5.7.0", - "@ethersproject/wordlists": "^5.7.0" - } - }, - "node_modules/@ethersproject/json-wallets": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz", - "integrity": "sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/address": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/hdnode": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/pbkdf2": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/random": "^5.7.0", - "@ethersproject/strings": "^5.7.0", - "@ethersproject/transactions": "^5.7.0", - "aes-js": "3.0.0", - "scrypt-js": "3.0.1" - } - }, - "node_modules/@ethersproject/keccak256": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz", - "integrity": "sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "js-sha3": "0.8.0" - } - }, - "node_modules/@ethersproject/logger": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz", - "integrity": "sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ] - }, - "node_modules/@ethersproject/networks": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz", - "integrity": "sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/logger": "^5.7.0" - } - }, - "node_modules/@ethersproject/pbkdf2": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz", - "integrity": "sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/sha2": "^5.7.0" - } - }, - "node_modules/@ethersproject/properties": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz", - "integrity": "sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/logger": "^5.7.0" - } - }, - "node_modules/@ethersproject/providers": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.7.2.tgz", - "integrity": "sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/abstract-provider": "^5.7.0", - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/address": "^5.7.0", - "@ethersproject/base64": "^5.7.0", - "@ethersproject/basex": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/hash": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/networks": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/random": "^5.7.0", - "@ethersproject/rlp": "^5.7.0", - "@ethersproject/sha2": "^5.7.0", - "@ethersproject/strings": "^5.7.0", - "@ethersproject/transactions": "^5.7.0", - "@ethersproject/web": "^5.7.0", - "bech32": "1.1.4", - "ws": "7.4.6" - } - }, - "node_modules/@ethersproject/random": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.7.0.tgz", - "integrity": "sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0" - } - }, - "node_modules/@ethersproject/rlp": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.7.0.tgz", - "integrity": "sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0" - } - }, - "node_modules/@ethersproject/sha2": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.7.0.tgz", - "integrity": "sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "hash.js": "1.1.7" - } - }, - "node_modules/@ethersproject/signing-key": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.7.0.tgz", - "integrity": "sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "bn.js": "^5.2.1", - "elliptic": "6.5.4", - "hash.js": "1.1.7" - } - }, - "node_modules/@ethersproject/solidity": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.7.0.tgz", - "integrity": "sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/sha2": "^5.7.0", - "@ethersproject/strings": "^5.7.0" - } - }, - "node_modules/@ethersproject/strings": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz", - "integrity": "sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/logger": "^5.7.0" - } - }, - "node_modules/@ethersproject/transactions": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz", - "integrity": "sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/address": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/rlp": "^5.7.0", - "@ethersproject/signing-key": "^5.7.0" - } - }, - "node_modules/@ethersproject/units": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.7.0.tgz", - "integrity": "sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/logger": "^5.7.0" - } - }, - "node_modules/@ethersproject/wallet": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.7.0.tgz", - "integrity": "sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/abstract-provider": "^5.7.0", - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/address": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/hash": "^5.7.0", - "@ethersproject/hdnode": "^5.7.0", - "@ethersproject/json-wallets": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/random": "^5.7.0", - "@ethersproject/signing-key": "^5.7.0", - "@ethersproject/transactions": "^5.7.0", - "@ethersproject/wordlists": "^5.7.0" - } - }, - "node_modules/@ethersproject/web": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz", - "integrity": "sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/base64": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/strings": "^5.7.0" - } - }, - "node_modules/@ethersproject/wordlists": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.7.0.tgz", - "integrity": "sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/hash": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/strings": "^5.7.0" - } - }, - "node_modules/@fastify/busboy": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.0.tgz", - "integrity": "sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA==", - "engines": { - "node": ">=14" - } - }, - "node_modules/@graphql-tools/batch-delegate": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/batch-delegate/-/batch-delegate-9.0.0.tgz", - "integrity": "sha512-23NmxcHQeKcfhMQyrRPTZfW4/+bSpAyR/qAhRjx+/hikDIa1Uv2XVgV9jIitSgM0OEk/KGPB4VQv+LCOWvAYiw==", - "dependencies": { - "@graphql-tools/delegate": "^10.0.0", - "@graphql-tools/utils": "^10.0.0", - "dataloader": "2.2.2", - "tslib": "^2.4.0", - "value-or-promise": "^1.0.12" - }, - "engines": { - "node": ">=16.0.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@graphql-tools/batch-execute": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/@graphql-tools/batch-execute/-/batch-execute-9.0.2.tgz", - "integrity": "sha512-Y2uwdZI6ZnatopD/SYfZ1eGuQFI7OU2KGZ2/B/7G9ISmgMl5K+ZZWz/PfIEXeiHirIDhyk54s4uka5rj2xwKqQ==", - "dependencies": { - "@graphql-tools/utils": "^10.0.5", - "dataloader": "^2.2.2", - "tslib": "^2.4.0", - "value-or-promise": "^1.0.12" - }, - "engines": { - "node": ">=16.0.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@graphql-tools/delegate": { - "version": "10.0.3", - "resolved": "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-10.0.3.tgz", - "integrity": "sha512-Jor9oazZ07zuWkykD3OOhT/2XD74Zm6Ar0ENZMk75MDD51wB2UWUIMljtHxbJhV5A6UBC2v8x6iY0xdCGiIlyw==", - "dependencies": { - "@graphql-tools/batch-execute": "^9.0.1", - "@graphql-tools/executor": "^1.0.0", - "@graphql-tools/schema": "^10.0.0", - "@graphql-tools/utils": "^10.0.5", - "dataloader": "^2.2.2", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=16.0.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@graphql-tools/executor": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/executor/-/executor-1.2.0.tgz", - "integrity": "sha512-SKlIcMA71Dha5JnEWlw4XxcaJ+YupuXg0QCZgl2TOLFz4SkGCwU/geAsJvUJFwK2RbVLpQv/UMq67lOaBuwDtg==", - "dependencies": { - "@graphql-tools/utils": "^10.0.0", - "@graphql-typed-document-node/core": "3.2.0", - "@repeaterjs/repeater": "^3.0.4", - "tslib": "^2.4.0", - "value-or-promise": "^1.0.12" - }, - "engines": { - "node": ">=16.0.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@graphql-tools/merge": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-9.0.1.tgz", - "integrity": "sha512-hIEExWO9fjA6vzsVjJ3s0cCQ+Q/BEeMVJZtMXd7nbaVefVy0YDyYlEkeoYYNV3NVVvu1G9lr6DM1Qd0DGo9Caw==", - "dependencies": { - "@graphql-tools/utils": "^10.0.10", - "tslib": "^2.4.0" - }, - "engines": { - "node": ">=16.0.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@graphql-tools/schema": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-10.0.2.tgz", - "integrity": "sha512-TbPsIZnWyDCLhgPGnDjt4hosiNU2mF/rNtSk5BVaXWnZqvKJ6gzJV4fcHcvhRIwtscDMW2/YTnK6dLVnk8pc4w==", - "dependencies": { - "@graphql-tools/merge": "^9.0.1", - "@graphql-tools/utils": "^10.0.10", - "tslib": "^2.4.0", - "value-or-promise": "^1.0.12" - }, - "engines": { - "node": ">=16.0.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@graphql-tools/stitch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/@graphql-tools/stitch/-/stitch-9.0.3.tgz", - "integrity": "sha512-G03XahiHDu1pnaS8z2GNfsV/5BribMEUATT5dCHBAqj13Te5y1amZNQePrmw8DLtbf5qDbU6CO7kGHPxv0XO9A==", - "dependencies": { - "@graphql-tools/batch-delegate": "^9.0.0", - "@graphql-tools/delegate": "^10.0.1", - "@graphql-tools/executor": "^1.0.0", - "@graphql-tools/merge": "^9.0.0", - "@graphql-tools/schema": "^10.0.0", - "@graphql-tools/utils": "^10.0.0", - "@graphql-tools/wrap": "^10.0.0", - "tslib": "^2.4.0", - "value-or-promise": "^1.0.11" - }, - "engines": { - "node": ">=16.0.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@graphql-tools/utils": { - "version": "10.0.13", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-10.0.13.tgz", - "integrity": "sha512-fMILwGr5Dm2zefNItjQ6C2rauigklv69LIwppccICuGTnGaOp3DspLt/6Lxj72cbg5d9z60Sr+Egco3CJKLsNg==", - "dependencies": { - "@graphql-typed-document-node/core": "^3.1.1", - "cross-inspect": "1.0.0", - "dset": "^3.1.2", - "tslib": "^2.4.0" - }, - "engines": { - "node": ">=16.0.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@graphql-tools/wrap": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/wrap/-/wrap-10.0.1.tgz", - "integrity": "sha512-Cw6hVrKGM2OKBXeuAGltgy4tzuqQE0Nt7t/uAqnuokSXZhMHXJUb124Bnvxc2gPZn5chfJSDafDe4Cp8ZAVJgg==", - "dependencies": { - "@graphql-tools/delegate": "^10.0.3", - "@graphql-tools/schema": "^10.0.0", - "@graphql-tools/utils": "^10.0.0", - "tslib": "^2.4.0", - "value-or-promise": "^1.0.12" - }, - "engines": { - "node": ">=16.0.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@graphql-typed-document-node/core": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz", - "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==", - "peerDependencies": { - "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@ipld/dag-cbor": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/@ipld/dag-cbor/-/dag-cbor-7.0.3.tgz", - "integrity": "sha512-1VVh2huHsuohdXC1bGJNE8WR72slZ9XE2T3wbBBq31dm7ZBatmKLLxrB+XAqafxfRFjv08RZmj/W/ZqaM13AuA==", - "dependencies": { - "cborg": "^1.6.0", - "multiformats": "^9.5.4" - } - }, - "node_modules/@ipld/dag-cbor/node_modules/multiformats": { - "version": "9.9.0", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.9.0.tgz", - "integrity": "sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==" - }, - "node_modules/@jest/schemas": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", - "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", - "dev": true, - "dependencies": { - "@sinclair/typebox": "^0.27.8" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true - }, - "node_modules/@multiformats/base-x": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@multiformats/base-x/-/base-x-4.0.1.tgz", - "integrity": "sha512-eMk0b9ReBbV23xXU693TAIrLyeO5iTgBZGSJfpqriG8UkYvr/hC9u9pyMlAakDNHWmbhMZCDs6KQO0jzKD8OTw==" - }, - "node_modules/@noble/ciphers": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@noble/ciphers/-/ciphers-0.4.1.tgz", - "integrity": "sha512-QCOA9cgf3Rc33owG0AYBB9wszz+Ul2kramWN8tXG44Gyciud/tbkEqvxRF/IpqQaBpRBNi9f4jdNxqB2CQCIXg==", - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@noble/curves": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.3.0.tgz", - "integrity": "sha512-t01iSXPuN+Eqzb4eBX0S5oubSqXbK/xXa1Ne18Hj8f9pStxztHCE2gfboSp/dZRLSqfuLpRK2nDXDK+W9puocA==", - "dependencies": { - "@noble/hashes": "1.3.3" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@noble/hashes": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.3.tgz", - "integrity": "sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA==", - "engines": { - "node": ">= 16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@noble/secp256k1": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.1.tgz", - "integrity": "sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ] - }, - "node_modules/@openzeppelin/contracts": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-4.9.5.tgz", - "integrity": "sha512-ZK+W5mVhRppff9BE6YdR8CC52C8zAvsVAiWhEtQ5+oNxFE6h1WdeWo+FJSF8KKvtxxVYZ7MTP/5KoVpAU3aSWg==", - "dev": true - }, - "node_modules/@repeaterjs/repeater": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@repeaterjs/repeater/-/repeater-3.0.5.tgz", - "integrity": "sha512-l3YHBLAol6d/IKnB9LhpD0cEZWAoe3eFKUyTYWmFmCO2Q/WOckxLQAUyMZWwZV2M/m3+4vgRoaolFqaII82/TA==" - }, - "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.9.6.tgz", - "integrity": "sha512-MVNXSSYN6QXOulbHpLMKYi60ppyO13W9my1qogeiAqtjb2yR4LSmfU2+POvDkLzhjYLXz9Rf9+9a3zFHW1Lecg==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-android-arm64": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.9.6.tgz", - "integrity": "sha512-T14aNLpqJ5wzKNf5jEDpv5zgyIqcpn1MlwCrUXLrwoADr2RkWA0vOWP4XxbO9aiO3dvMCQICZdKeDrFl7UMClw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.9.6.tgz", - "integrity": "sha512-CqNNAyhRkTbo8VVZ5R85X73H3R5NX9ONnKbXuHisGWC0qRbTTxnF1U4V9NafzJbgGM0sHZpdO83pLPzq8uOZFw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.9.6.tgz", - "integrity": "sha512-zRDtdJuRvA1dc9Mp6BWYqAsU5oeLixdfUvkTHuiYOHwqYuQ4YgSmi6+/lPvSsqc/I0Omw3DdICx4Tfacdzmhog==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.9.6.tgz", - "integrity": "sha512-oNk8YXDDnNyG4qlNb6is1ojTOGL/tRhbbKeE/YuccItzerEZT68Z9gHrY3ROh7axDc974+zYAPxK5SH0j/G+QQ==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.9.6.tgz", - "integrity": "sha512-Z3O60yxPtuCYobrtzjo0wlmvDdx2qZfeAWTyfOjEDqd08kthDKexLpV97KfAeUXPosENKd8uyJMRDfFMxcYkDQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.9.6.tgz", - "integrity": "sha512-gpiG0qQJNdYEVad+1iAsGAbgAnZ8j07FapmnIAQgODKcOTjLEWM9sRb+MbQyVsYCnA0Im6M6QIq6ax7liws6eQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.9.6.tgz", - "integrity": "sha512-+uCOcvVmFUYvVDr27aiyun9WgZk0tXe7ThuzoUTAukZJOwS5MrGbmSlNOhx1j80GdpqbOty05XqSl5w4dQvcOA==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.9.6.tgz", - "integrity": "sha512-HUNqM32dGzfBKuaDUBqFB7tP6VMN74eLZ33Q9Y1TBqRDn+qDonkAUyKWwF9BR9unV7QUzffLnz9GrnKvMqC/fw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.9.6.tgz", - "integrity": "sha512-ch7M+9Tr5R4FK40FHQk8VnML0Szi2KRujUgHXd/HjuH9ifH72GUmw6lStZBo3c3GB82vHa0ZoUfjfcM7JiiMrQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.9.6.tgz", - "integrity": "sha512-VD6qnR99dhmTQ1mJhIzXsRcTBvTjbfbGGwKAHcu+52cVl15AC/kplkhxzW/uT0Xl62Y/meBKDZvoJSJN+vTeGA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.9.6.tgz", - "integrity": "sha512-J9AFDq/xiRI58eR2NIDfyVmTYGyIZmRcvcAoJ48oDld/NTR8wyiPUu2X/v1navJ+N/FGg68LEbX3Ejd6l8B7MQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.9.6.tgz", - "integrity": "sha512-jqzNLhNDvIZOrt69Ce4UjGRpXJBzhUBzawMwnaDAwyHriki3XollsewxWzOzz+4yOFDkuJHtTsZFwMxhYJWmLQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@scarf/scarf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@scarf/scarf/-/scarf-1.3.0.tgz", - "integrity": "sha512-lHKK8M5CTcpFj2hZDB3wIjb0KAbEOgDmiJGDv1WBRfQgRm/a8/XMEkG/N1iM01xgbUDsPQwi42D+dFo1XPAKew==", - "hasInstallScript": true - }, - "node_modules/@scure/base": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.5.tgz", - "integrity": "sha512-Brj9FiG2W1MRQSTB212YVPRrcbjkv48FoZi/u4l/zds/ieRrqsh7aUf6CLwkAq61oKXr/ZlTzlY66gLIj3TFTQ==", - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@scure/bip32": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.3.2.tgz", - "integrity": "sha512-N1ZhksgwD3OBlwTv3R6KFEcPojl/W4ElJOeCZdi+vuI5QmTFwLq3OFf2zd2ROpKvxFdgZ6hUpb0dx9bVNEwYCA==", - "dependencies": { - "@noble/curves": "~1.2.0", - "@noble/hashes": "~1.3.2", - "@scure/base": "~1.1.2" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@scure/bip32/node_modules/@noble/curves": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz", - "integrity": "sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==", - "dependencies": { - "@noble/hashes": "1.3.2" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@scure/bip32/node_modules/@noble/hashes": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", - "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==", - "engines": { - "node": ">= 16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@scure/bip39": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.1.0.tgz", - "integrity": "sha512-pwrPOS16VeTKg98dYXQyIjJEcWfz7/1YJIwxUEPFfQPtc86Ym/1sVgQ2RLoD43AazMk2l/unK4ITySSpW2+82w==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "dependencies": { - "@noble/hashes": "~1.1.1", - "@scure/base": "~1.1.0" - } - }, - "node_modules/@scure/bip39/node_modules/@noble/hashes": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.5.tgz", - "integrity": "sha512-LTMZiiLc+V4v1Yi16TD6aX2gmtKszNye0pQgbaLqkvhIqP7nVsSaJsWloGQjJfJ8offaoP5GtX3yY5swbcJxxQ==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ] - }, - "node_modules/@sinclair/typebox": { - "version": "0.27.8", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", - "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", - "dev": true - }, - "node_modules/@stablelib/binary": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/binary/-/binary-1.0.1.tgz", - "integrity": "sha512-ClJWvmL6UBM/wjkvv/7m5VP3GMr9t0osr4yVgLZsLCOz4hGN9gIAFEqnJ0TsSMAN+n840nf2cHZnA5/KFqHC7Q==", - "dependencies": { - "@stablelib/int": "^1.0.1" - } - }, - "node_modules/@stablelib/ed25519": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@stablelib/ed25519/-/ed25519-1.0.3.tgz", - "integrity": "sha512-puIMWaX9QlRsbhxfDc5i+mNPMY+0TmQEskunY1rZEBPi1acBCVQAhnsk/1Hk50DGPtVsZtAWQg4NHGlVaO9Hqg==", - "dependencies": { - "@stablelib/random": "^1.0.2", - "@stablelib/sha512": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "node_modules/@stablelib/hash": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/hash/-/hash-1.0.1.tgz", - "integrity": "sha512-eTPJc/stDkdtOcrNMZ6mcMK1e6yBbqRBaNW55XA1jU8w/7QdnCF0CmMmOD1m7VSkBR44PWrMHU2l6r8YEQHMgg==" - }, - "node_modules/@stablelib/int": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/int/-/int-1.0.1.tgz", - "integrity": "sha512-byr69X/sDtDiIjIV6m4roLVWnNNlRGzsvxw+agj8CIEazqWGOQp2dTYgQhtyVXV9wpO6WyXRQUzLV/JRNumT2w==" - }, - "node_modules/@stablelib/random": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@stablelib/random/-/random-1.0.2.tgz", - "integrity": "sha512-rIsE83Xpb7clHPVRlBj8qNe5L8ISQOzjghYQm/dZ7VaM2KHYwMW5adjQjrzTZCchFnNCNhkwtnOBa9HTMJCI8w==", - "dependencies": { - "@stablelib/binary": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "node_modules/@stablelib/sha256": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/sha256/-/sha256-1.0.1.tgz", - "integrity": "sha512-GIIH3e6KH+91FqGV42Kcj71Uefd/QEe7Dy42sBTeqppXV95ggCcxLTk39bEr+lZfJmp+ghsR07J++ORkRELsBQ==", - "dependencies": { - "@stablelib/binary": "^1.0.1", - "@stablelib/hash": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "node_modules/@stablelib/sha512": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/sha512/-/sha512-1.0.1.tgz", - "integrity": "sha512-13gl/iawHV9zvDKciLo1fQ8Bgn2Pvf7OV6amaRVKiq3pjQ3UmEpXxWiAfV8tYjUpeZroBxtyrwtdooQT/i3hzw==", - "dependencies": { - "@stablelib/binary": "^1.0.1", - "@stablelib/hash": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "node_modules/@stablelib/wipe": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/wipe/-/wipe-1.0.1.tgz", - "integrity": "sha512-WfqfX/eXGiAd3RJe4VU2snh/ZPwtSjLG4ynQ/vYzvghTh7dHFcI1wl+nrkWG6lGhukOxOsUHfv8dUXr58D0ayg==" - }, - "node_modules/@stacks/common": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/@stacks/common/-/common-6.10.0.tgz", - "integrity": "sha512-6x5Z7AKd9/kj3+DYE9xIDIkFLHihBH614i2wqrZIjN02WxVo063hWSjIlUxlx8P4gl6olVzlOy5LzhLJD9OP0A==", - "dependencies": { - "@types/bn.js": "^5.1.0", - "@types/node": "^18.0.4" - } - }, - "node_modules/@stacks/common/node_modules/@types/node": { - "version": "18.19.14", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.14.tgz", - "integrity": "sha512-EnQ4Us2rmOS64nHDWr0XqAD8DsO6f3XR6lf9UIIrZQpUzPVdN/oPuEzfDWNHSyXLvoGgjuEm/sPwFGSSs35Wtg==", - "dependencies": { - "undici-types": "~5.26.4" - } - }, - "node_modules/@stacks/encryption": { - "version": "6.11.3", - "resolved": "https://registry.npmjs.org/@stacks/encryption/-/encryption-6.11.3.tgz", - "integrity": "sha512-nUA/21L8NnCw1vPetczWz3fjBCleqRgYfNGJX98AIDs9sjRQkxUfUGYz+3PlbpYgHWHIeRZafitQhMRpVhsbkQ==", - "dependencies": { - "@noble/hashes": "1.1.5", - "@noble/secp256k1": "1.7.1", - "@scure/bip39": "1.1.0", - "@stacks/common": "^6.10.0", - "@types/node": "^18.0.4", - "base64-js": "^1.5.1", - "bs58": "^5.0.0", - "ripemd160-min": "^0.0.6", - "varuint-bitcoin": "^1.1.2" - } - }, - "node_modules/@stacks/encryption/node_modules/@noble/hashes": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.5.tgz", - "integrity": "sha512-LTMZiiLc+V4v1Yi16TD6aX2gmtKszNye0pQgbaLqkvhIqP7nVsSaJsWloGQjJfJ8offaoP5GtX3yY5swbcJxxQ==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ] - }, - "node_modules/@stacks/encryption/node_modules/@types/node": { - "version": "18.19.14", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.14.tgz", - "integrity": "sha512-EnQ4Us2rmOS64nHDWr0XqAD8DsO6f3XR6lf9UIIrZQpUzPVdN/oPuEzfDWNHSyXLvoGgjuEm/sPwFGSSs35Wtg==", - "dependencies": { - "undici-types": "~5.26.4" - } - }, - "node_modules/@stacks/network": { - "version": "6.11.3", - "resolved": "https://registry.npmjs.org/@stacks/network/-/network-6.11.3.tgz", - "integrity": "sha512-c4ClCU/QUwuu8NbHtDKPJNa0M5YxauLN3vYaR0+S4awbhVIKFQSxirm9Q9ckV1WBh7FtD6u2S0x+tDQGAODjNg==", - "dependencies": { - "@stacks/common": "^6.10.0", - "cross-fetch": "^3.1.5" - } - }, - "node_modules/@stacks/transactions": { - "version": "6.11.3", - "resolved": "https://registry.npmjs.org/@stacks/transactions/-/transactions-6.11.3.tgz", - "integrity": "sha512-Zb7ONYt8OJPTTdXQHobWqZ2mwTALpGt43PEsy2FpDgQzOodGk1lWDo1Jhzs3hhw/2ib5FE3iDMc6jptKe9miCg==", - "dependencies": { - "@noble/hashes": "1.1.5", - "@noble/secp256k1": "1.7.1", - "@stacks/common": "^6.10.0", - "@stacks/network": "^6.11.3", - "c32check": "^2.0.0", - "lodash.clonedeep": "^4.5.0" - } - }, - "node_modules/@stacks/transactions/node_modules/@noble/hashes": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.5.tgz", - "integrity": "sha512-LTMZiiLc+V4v1Yi16TD6aX2gmtKszNye0pQgbaLqkvhIqP7nVsSaJsWloGQjJfJ8offaoP5GtX3yY5swbcJxxQ==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ] - }, - "node_modules/@types/bn.js": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.5.tgz", - "integrity": "sha512-V46N0zwKRF5Q00AZ6hWtN0T8gGmDUaUzLWQvHFo5yThtVwK/VCenFY3wXVbOvNfajEpsTfQM4IN9k/d6gUVX3A==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/estree": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", - "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", - "dev": true - }, - "node_modules/@types/mime-types": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@types/mime-types/-/mime-types-2.1.4.tgz", - "integrity": "sha512-lfU4b34HOri+kAY5UheuFMWPDOI+OPceBSHZKp69gEyTL/mmJ4cnU6Y/rlme3UL3GyOn6Y42hyIEw0/q8sWx5w==", - "dev": true - }, - "node_modules/@types/node": { - "version": "20.11.5", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.5.tgz", - "integrity": "sha512-g557vgQjUUfN76MZAN/dt1z3dzcUsimuysco0KeluHgrPdJXkP/XdAURgyO2W9fZWHRtRBiVKzKn8vyOAwlG+w==", - "dependencies": { - "undici-types": "~5.26.4" - } - }, - "node_modules/@vitest/expect": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-1.2.1.tgz", - "integrity": "sha512-/bqGXcHfyKgFWYwIgFr1QYDaR9e64pRKxgBNWNXPefPFRhgm+K3+a/dS0cUGEreWngets3dlr8w8SBRw2fCfFQ==", - "dev": true, - "dependencies": { - "@vitest/spy": "1.2.1", - "@vitest/utils": "1.2.1", - "chai": "^4.3.10" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/@vitest/runner": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-1.2.1.tgz", - "integrity": "sha512-zc2dP5LQpzNzbpaBt7OeYAvmIsRS1KpZQw4G3WM/yqSV1cQKNKwLGmnm79GyZZjMhQGlRcSFMImLjZaUQvNVZQ==", - "dev": true, - "dependencies": { - "@vitest/utils": "1.2.1", - "p-limit": "^5.0.0", - "pathe": "^1.1.1" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/@vitest/snapshot": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-1.2.1.tgz", - "integrity": "sha512-Tmp/IcYEemKaqAYCS08sh0vORLJkMr0NRV76Gl8sHGxXT5151cITJCET20063wk0Yr/1koQ6dnmP6eEqezmd/Q==", - "dev": true, - "dependencies": { - "magic-string": "^0.30.5", - "pathe": "^1.1.1", - "pretty-format": "^29.7.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/@vitest/spy": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-1.2.1.tgz", - "integrity": "sha512-vG3a/b7INKH7L49Lbp0IWrG6sw9j4waWAucwnksPB1r1FTJgV7nkBByd9ufzu6VWya/QTvQW4V9FShZbZIB2UQ==", - "dev": true, - "dependencies": { - "tinyspy": "^2.2.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/@vitest/utils": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-1.2.1.tgz", - "integrity": "sha512-bsH6WVZYe/J2v3+81M5LDU8kW76xWObKIURpPrOXm2pjBniBu2MERI/XP60GpS4PHU3jyK50LUutOwrx4CyHUg==", - "dev": true, - "dependencies": { - "diff-sequences": "^29.6.3", - "estree-walker": "^3.0.3", - "loupe": "^2.3.7", - "pretty-format": "^29.7.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/abitype": { - "version": "0.9.8", - "resolved": "https://registry.npmjs.org/abitype/-/abitype-0.9.8.tgz", - "integrity": "sha512-puLifILdm+8sjyss4S+fsUN09obiT1g2YW6CtcQF+QDzxR0euzgEB29MZujC6zMk2a6SVmtttq1fc6+YFA7WYQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/wagmi-dev" - } - ], - "peerDependencies": { - "typescript": ">=5.0.4", - "zod": "^3 >=3.19.1" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - }, - "zod": { - "optional": true - } - } - }, - "node_modules/abort-controller": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", - "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", - "dependencies": { - "event-target-shim": "^5.0.0" - }, - "engines": { - "node": ">=6.5" - } - }, - "node_modules/acorn": { - "version": "8.11.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", - "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-walk": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz", - "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/aes-js": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", - "integrity": "sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==" - }, - "node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", - "dependencies": { - "ajv": "^8.0.0" - }, - "peerDependencies": { - "ajv": "^8.0.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, - "node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" - }, - "node_modules/axios": { - "version": "1.6.5", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.5.tgz", - "integrity": "sha512-Ii012v05KEVuUoFWmMW/UQv9aRIc3ZwkWDcM+h5Il8izZCtRVpDUfwpoFf7eOtajT3QiGR4yDUx7lPqHJULgbg==", - "dependencies": { - "follow-redirects": "^1.15.4", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - } - }, - "node_modules/base-x": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.0.tgz", - "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==" - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/bech32": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", - "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==" - }, - "node_modules/bigint-mod-arith": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/bigint-mod-arith/-/bigint-mod-arith-3.3.1.tgz", - "integrity": "sha512-pX/cYW3dCa87Jrzv6DAr8ivbbJRzEX5yGhdt8IutnX/PCIXfpx+mabWNK/M8qqh+zQ0J3thftUBHW0ByuUlG0w==", - "engines": { - "node": ">=10.4.0" - } - }, - "node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" - }, - "node_modules/brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==" - }, - "node_modules/bs58": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-5.0.0.tgz", - "integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==", - "dependencies": { - "base-x": "^4.0.0" - } - }, - "node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/c32check": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/c32check/-/c32check-2.0.0.tgz", - "integrity": "sha512-rpwfAcS/CMqo0oCqDf3r9eeLgScRE3l/xHDCXhM3UyrfvIn7PrLq63uHh7yYbv8NzaZn5MVsVhIRpQ+5GZ5HyA==", - "dependencies": { - "@noble/hashes": "^1.1.2", - "base-x": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cac": { - "version": "6.7.14", - "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", - "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/caip": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/caip/-/caip-1.1.0.tgz", - "integrity": "sha512-yOO3Fu4ygyKYAdznuoaqschMKIZzcdgyMpBNtrIfrUhnOeaOWG+dh0c13wcOS6B/46IGGbncoyzJlio79jU7rw==" - }, - "node_modules/canonicalize": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/canonicalize/-/canonicalize-1.0.8.tgz", - "integrity": "sha512-0CNTVCLZggSh7bc5VkX5WWPWO+cyZbNd07IHIsSXLia/eAq+r836hgk+8BKoEh7949Mda87VUOitx5OddVj64A==" - }, - "node_modules/cartonne": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/cartonne/-/cartonne-3.0.1.tgz", - "integrity": "sha512-Y8DH//DthEUbfvOMGYj/9K3F1RcWkiVu2dB9tGkiBnMqojAXTpu+TUs9FNNx202H0TQdJgbPsQl7Q6NuJ48dCw==", - "dependencies": { - "@ipld/dag-cbor": "^9.0.7", - "multiformats": "^13.0.0", - "multihashes-sync": "^2.0.0", - "varintes": "^2.0.5" - } - }, - "node_modules/cartonne/node_modules/@ipld/dag-cbor": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/@ipld/dag-cbor/-/dag-cbor-9.1.0.tgz", - "integrity": "sha512-7pMKjBaapEh+1Nk/1umPPhQGT6znb5E71lke2ekxlcuVZLLrPPdDSy0UAMwWgj3a28cjir/ZJ6CQH2DEs3DUOQ==", - "dependencies": { - "cborg": "^4.0.0", - "multiformats": "^13.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/cartonne/node_modules/cborg": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/cborg/-/cborg-4.0.8.tgz", - "integrity": "sha512-/6QDK0Hw//cV4YNWZZjdIUMFNw0DZmb56jdVGJPwXP7874gSN0AMYqM07mVKpAm+6Nn7U8lvYFzPgBGatC+5xw==", - "bin": { - "cborg": "lib/bin.js" - } - }, - "node_modules/cborg": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/cborg/-/cborg-1.10.2.tgz", - "integrity": "sha512-b3tFPA9pUr2zCUiCfRd2+wok2/LBSNUMKOuRRok+WlvvAgEt/PlbgPTsZUcwCOs53IJvLgTp0eotwtosE6njug==", - "bin": { - "cborg": "cli.js" - } - }, - "node_modules/chai": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.4.1.tgz", - "integrity": "sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==", - "dev": true, - "dependencies": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.3", - "deep-eql": "^4.1.3", - "get-func-name": "^2.0.2", - "loupe": "^2.3.6", - "pathval": "^1.1.1", - "type-detect": "^4.0.8" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/check-error": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", - "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", - "dev": true, - "dependencies": { - "get-func-name": "^2.0.2" - }, - "engines": { - "node": "*" - } - }, - "node_modules/cids": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/cids/-/cids-1.1.9.tgz", - "integrity": "sha512-l11hWRfugIcbGuTZwAM5PwpjPPjyb6UZOGwlHSnOBV5o07XhQ4gNpBN67FbODvpjyHtd+0Xs6KNvUcGBiDRsdg==", - "deprecated": "This module has been superseded by the multiformats module", - "dev": true, - "dependencies": { - "multibase": "^4.0.1", - "multicodec": "^3.0.1", - "multihashes": "^4.0.1", - "uint8arrays": "^3.0.0" - }, - "engines": { - "node": ">=4.0.0", - "npm": ">=3.0.0" - } - }, - "node_modules/cids/node_modules/multiformats": { - "version": "9.9.0", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.9.0.tgz", - "integrity": "sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==", - "dev": true - }, - "node_modules/cids/node_modules/uint8arrays": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.1.tgz", - "integrity": "sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg==", - "dev": true, - "dependencies": { - "multiformats": "^9.4.2" - } - }, - "node_modules/codeco": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/codeco/-/codeco-1.2.0.tgz", - "integrity": "sha512-SHTBW7QsiDtHGqEyhX10gZesmWlWV00gXteFyU2xLqyZmy658/+HlPyXG5EvY05+csQNWjBIfGg2mZrklR1RtQ==" - }, - "node_modules/colors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.3.0.tgz", - "integrity": "sha512-EDpX3a7wHMWFA7PUHWPHNWqOxIIRSJetuwl0AS5Oi/5FMV8kWm69RTlgm00GKjBO1xFHMtBbL49yRtMMdticBw==", - "engines": { - "node": ">=0.1.90" - } - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/cross-fetch": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.8.tgz", - "integrity": "sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==", - "dependencies": { - "node-fetch": "^2.6.12" - } - }, - "node_modules/cross-fetch/node_modules/node-fetch": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", - "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/cross-inspect": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/cross-inspect/-/cross-inspect-1.0.0.tgz", - "integrity": "sha512-4PFfn4b5ZN6FMNGSZlyb7wUhuN8wvj8t/VQHZdM4JsDcruGJ8L2kf9zao98QIrBPFCpdk27qst/AGTl7pL3ypQ==", - "dependencies": { - "tslib": "^2.4.0" - }, - "engines": { - "node": ">=16.0.0" - } - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/dag-jose": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/dag-jose/-/dag-jose-4.0.0.tgz", - "integrity": "sha512-tw595L3UYoOUT9dSJPbBEG/qpRpw24kRZxa5SLRnlnr+g5L7O8oEs1d3W5TiVA1oJZbthVsf0Vi3zFN66qcEBA==", - "dependencies": { - "@ipld/dag-cbor": "^9.0.0", - "multiformats": "^11.0.0" - } - }, - "node_modules/dag-jose-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/dag-jose-utils/-/dag-jose-utils-3.0.0.tgz", - "integrity": "sha512-gu+XutOTy3kD8fDcA1SMjZ2U0mUOb/hxoRVZaMCizXN7Ssbc5dKOzeXQ4GquV4BdQzs3w5Y7irOpn2plFPIJfg==", - "dependencies": { - "@ipld/dag-cbor": "^7.0.1", - "multiformats": "^11.0.1" - } - }, - "node_modules/dag-jose-utils/node_modules/multiformats": { - "version": "11.0.2", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-11.0.2.tgz", - "integrity": "sha512-b5mYMkOkARIuVZCpvijFj9a6m5wMVLC7cf/jIPd5D/ARDOfLC5+IFkbgDXQgcU2goIsTD/O9NY4DI/Mt4OGvlg==", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/dag-jose/node_modules/@ipld/dag-cbor": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/@ipld/dag-cbor/-/dag-cbor-9.1.0.tgz", - "integrity": "sha512-7pMKjBaapEh+1Nk/1umPPhQGT6znb5E71lke2ekxlcuVZLLrPPdDSy0UAMwWgj3a28cjir/ZJ6CQH2DEs3DUOQ==", - "dependencies": { - "cborg": "^4.0.0", - "multiformats": "^13.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/dag-jose/node_modules/@ipld/dag-cbor/node_modules/multiformats": { - "version": "13.0.1", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.0.1.tgz", - "integrity": "sha512-bt3R5iXe2O8xpp3wkmQhC73b/lC4S2ihU8Dndwcsysqbydqb8N+bpP116qMcClZ17g58iSIwtXUTcg2zT4sniA==" - }, - "node_modules/dag-jose/node_modules/cborg": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/cborg/-/cborg-4.0.8.tgz", - "integrity": "sha512-/6QDK0Hw//cV4YNWZZjdIUMFNw0DZmb56jdVGJPwXP7874gSN0AMYqM07mVKpAm+6Nn7U8lvYFzPgBGatC+5xw==", - "bin": { - "cborg": "lib/bin.js" - } - }, - "node_modules/dag-jose/node_modules/multiformats": { - "version": "11.0.2", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-11.0.2.tgz", - "integrity": "sha512-b5mYMkOkARIuVZCpvijFj9a6m5wMVLC7cf/jIPd5D/ARDOfLC5+IFkbgDXQgcU2goIsTD/O9NY4DI/Mt4OGvlg==", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/data-uri-to-buffer": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", - "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", - "engines": { - "node": ">= 12" - } - }, - "node_modules/dataloader": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/dataloader/-/dataloader-2.2.2.tgz", - "integrity": "sha512-8YnDaaf7N3k/q5HnTJVuzSyLETjoZjVmHc4AeKAzOvKHEFQKcn64OKBfzHYtE9zGjctNM7V9I0MfnUVLpi7M5g==" - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decode-uri-component": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", - "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/deep-eql": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", - "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", - "dev": true, - "dependencies": { - "type-detect": "^4.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/did-jwt": { - "version": "7.4.7", - "resolved": "https://registry.npmjs.org/did-jwt/-/did-jwt-7.4.7.tgz", - "integrity": "sha512-Apz7nIfIHSKWIMaEP5L/K8xkwByvjezjTG0xiqwKdnNj1x8M0+Yasury5Dm/KPltxi2PlGfRPf3IejRKZrT8mQ==", - "dependencies": { - "@noble/ciphers": "^0.4.0", - "@noble/curves": "^1.0.0", - "@noble/hashes": "^1.3.0", - "@scure/base": "^1.1.3", - "canonicalize": "^2.0.0", - "did-resolver": "^4.1.0", - "multibase": "^4.0.6", - "multiformats": "^9.6.2", - "uint8arrays": "3.1.1" - } - }, - "node_modules/did-jwt/node_modules/canonicalize": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/canonicalize/-/canonicalize-2.0.0.tgz", - "integrity": "sha512-ulDEYPv7asdKvqahuAY35c1selLdzDwHqugK92hfkzvlDCwXRRelDkR+Er33md/PtnpqHemgkuDPanZ4fiYZ8w==" - }, - "node_modules/did-jwt/node_modules/multiformats": { - "version": "9.9.0", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.9.0.tgz", - "integrity": "sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==" - }, - "node_modules/did-jwt/node_modules/uint8arrays": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.1.tgz", - "integrity": "sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg==", - "dependencies": { - "multiformats": "^9.4.2" - } - }, - "node_modules/did-resolver": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/did-resolver/-/did-resolver-4.1.0.tgz", - "integrity": "sha512-S6fWHvCXkZg2IhS4RcVHxwuyVejPR7c+a4Go0xbQ9ps5kILa8viiYQgrM4gfTyeTjJ0ekgJH9gk/BawTpmkbZA==" - }, - "node_modules/dids": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/dids/-/dids-4.0.4.tgz", - "integrity": "sha512-PKxQP0QFqgeMe0dbL7LCRdPJVhZU2ejj8RWCfJ6vro3a+o5o32cWNM1X6YXpdIWq6G5fTJw9KO2dHj2ZzYDc7w==", - "dependencies": { - "@didtools/cacao": "^2.1.0", - "@didtools/codecs": "^1.0.1", - "@didtools/pkh-ethereum": "^0.4.1", - "@stablelib/random": "^1.0.1", - "codeco": "^1.1.0", - "dag-jose-utils": "^3.0.0", - "did-jwt": "^7.2.0", - "did-resolver": "^4.1.0", - "multiformats": "^11.0.2", - "rpc-utils": "^0.6.1", - "uint8arrays": "^4.0.3" - }, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/dids/node_modules/@didtools/cacao": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@didtools/cacao/-/cacao-2.1.0.tgz", - "integrity": "sha512-35gopj+mOmAlA3nHoHiYMvNMXJtbJDJnVpIlCf/Wf/+/x+uG9aIQefXfF35D6JuaTCZ0apabjpT2umL5h3EXcw==", - "dependencies": { - "@didtools/codecs": "^1.0.1", - "@didtools/siwx": "1.0.0", - "@ipld/dag-cbor": "^9.0.1", - "caip": "^1.1.0", - "multiformats": "^11.0.2", - "uint8arrays": "^4.0.3" - }, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/dids/node_modules/@didtools/codecs": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@didtools/codecs/-/codecs-1.0.1.tgz", - "integrity": "sha512-6PYXOCX7mwVWUcudKQ3eW5LtI8v5esozazbf2q2F01PE+LoeEvTytvgU9FEspj4pATpq3hPx1eenX2uLirDJ8w==", - "dependencies": { - "codeco": "^1.1.0", - "multiformats": "^11.0.1", - "uint8arrays": "^4.0.3" - }, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/dids/node_modules/@didtools/pkh-ethereum": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@didtools/pkh-ethereum/-/pkh-ethereum-0.4.1.tgz", - "integrity": "sha512-oE5bbyTauJ/WddaWnDK7bWns2E2LG4Ut33ICEcEQdlMoXM0902/vnGm8+6QE/yuLOyAllgf7DnDKvERF5IY6uQ==", - "dependencies": { - "@didtools/cacao": "^2.1.0", - "@noble/curves": "^1.1.0", - "@noble/hashes": "^1.3.1", - "@stablelib/random": "^1.0.2", - "caip": "^1.1.0" - }, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/dids/node_modules/@didtools/siwx": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@didtools/siwx/-/siwx-1.0.0.tgz", - "integrity": "sha512-b7sPDTNHdySoJ+Rp2p06x3rg1iTxI4yPTTA3PrPh40xcvFJ0K/YhdIb/Rzff13t92arcJ+VYGFhqtJorauV91g==", - "dependencies": { - "codeco": "^1.1.0" - }, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/dids/node_modules/@ipld/dag-cbor": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/@ipld/dag-cbor/-/dag-cbor-9.1.0.tgz", - "integrity": "sha512-7pMKjBaapEh+1Nk/1umPPhQGT6znb5E71lke2ekxlcuVZLLrPPdDSy0UAMwWgj3a28cjir/ZJ6CQH2DEs3DUOQ==", - "dependencies": { - "cborg": "^4.0.0", - "multiformats": "^13.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/dids/node_modules/@ipld/dag-cbor/node_modules/multiformats": { - "version": "13.0.1", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.0.1.tgz", - "integrity": "sha512-bt3R5iXe2O8xpp3wkmQhC73b/lC4S2ihU8Dndwcsysqbydqb8N+bpP116qMcClZ17g58iSIwtXUTcg2zT4sniA==" - }, - "node_modules/dids/node_modules/cborg": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/cborg/-/cborg-4.0.8.tgz", - "integrity": "sha512-/6QDK0Hw//cV4YNWZZjdIUMFNw0DZmb56jdVGJPwXP7874gSN0AMYqM07mVKpAm+6Nn7U8lvYFzPgBGatC+5xw==", - "bin": { - "cborg": "lib/bin.js" - } - }, - "node_modules/dids/node_modules/multiformats": { - "version": "11.0.2", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-11.0.2.tgz", - "integrity": "sha512-b5mYMkOkARIuVZCpvijFj9a6m5wMVLC7cf/jIPd5D/ARDOfLC5+IFkbgDXQgcU2goIsTD/O9NY4DI/Mt4OGvlg==", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/diff-sequences": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", - "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", - "dev": true, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/dotenv": { - "version": "16.4.4", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.4.tgz", - "integrity": "sha512-XvPXc8XAQThSjAbY6cQ/9PcBXmFoWuw1sQ3b8HqUCR6ziGXjkTi//kB9SWa2UwqlgdAIuRqAa/9hVljzPehbYg==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://dotenvx.com" - } - }, - "node_modules/dset": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/dset/-/dset-3.1.3.tgz", - "integrity": "sha512-20TuZZHCEZ2O71q9/+8BwKwZ0QtD9D8ObhrihJPr+vLLYlSuAU3/zL4cSlgbfeoGHTjCSJBa7NGcrF9/Bx/WJQ==", - "engines": { - "node": ">=4" - } - }, - "node_modules/elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", - "dependencies": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/elliptic/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - }, - "node_modules/esbuild": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.12.tgz", - "integrity": "sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==", - "dev": true, - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.19.12", - "@esbuild/android-arm": "0.19.12", - "@esbuild/android-arm64": "0.19.12", - "@esbuild/android-x64": "0.19.12", - "@esbuild/darwin-arm64": "0.19.12", - "@esbuild/darwin-x64": "0.19.12", - "@esbuild/freebsd-arm64": "0.19.12", - "@esbuild/freebsd-x64": "0.19.12", - "@esbuild/linux-arm": "0.19.12", - "@esbuild/linux-arm64": "0.19.12", - "@esbuild/linux-ia32": "0.19.12", - "@esbuild/linux-loong64": "0.19.12", - "@esbuild/linux-mips64el": "0.19.12", - "@esbuild/linux-ppc64": "0.19.12", - "@esbuild/linux-riscv64": "0.19.12", - "@esbuild/linux-s390x": "0.19.12", - "@esbuild/linux-x64": "0.19.12", - "@esbuild/netbsd-x64": "0.19.12", - "@esbuild/openbsd-x64": "0.19.12", - "@esbuild/sunos-x64": "0.19.12", - "@esbuild/win32-arm64": "0.19.12", - "@esbuild/win32-ia32": "0.19.12", - "@esbuild/win32-x64": "0.19.12" - } - }, - "node_modules/estree-walker": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", - "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", - "dev": true, - "dependencies": { - "@types/estree": "^1.0.0" - } - }, - "node_modules/ethers": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz", - "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/abi": "5.7.0", - "@ethersproject/abstract-provider": "5.7.0", - "@ethersproject/abstract-signer": "5.7.0", - "@ethersproject/address": "5.7.0", - "@ethersproject/base64": "5.7.0", - "@ethersproject/basex": "5.7.0", - "@ethersproject/bignumber": "5.7.0", - "@ethersproject/bytes": "5.7.0", - "@ethersproject/constants": "5.7.0", - "@ethersproject/contracts": "5.7.0", - "@ethersproject/hash": "5.7.0", - "@ethersproject/hdnode": "5.7.0", - "@ethersproject/json-wallets": "5.7.0", - "@ethersproject/keccak256": "5.7.0", - "@ethersproject/logger": "5.7.0", - "@ethersproject/networks": "5.7.1", - "@ethersproject/pbkdf2": "5.7.0", - "@ethersproject/properties": "5.7.0", - "@ethersproject/providers": "5.7.2", - "@ethersproject/random": "5.7.0", - "@ethersproject/rlp": "5.7.0", - "@ethersproject/sha2": "5.7.0", - "@ethersproject/signing-key": "5.7.0", - "@ethersproject/solidity": "5.7.0", - "@ethersproject/strings": "5.7.0", - "@ethersproject/transactions": "5.7.0", - "@ethersproject/units": "5.7.0", - "@ethersproject/wallet": "5.7.0", - "@ethersproject/web": "5.7.1", - "@ethersproject/wordlists": "5.7.0" - } - }, - "node_modules/event-target-shim": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", - "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/execa": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", - "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^8.0.1", - "human-signals": "^5.0.0", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", - "signal-exit": "^4.1.0", - "strip-final-newline": "^3.0.0" - }, - "engines": { - "node": ">=16.17" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "node_modules/fast-json-patch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/fast-json-patch/-/fast-json-patch-3.1.1.tgz", - "integrity": "sha512-vf6IHUX2SBcA+5/+4883dsIjpBTqmfBjmYiWK1savxQmFk4JfBMLa7ynTYOs1Rolp/T1betJxHiGD3g1Mn8lUQ==" - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" - }, - "node_modules/fetch-blob": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", - "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/jimmywarting" - }, - { - "type": "paypal", - "url": "https://paypal.me/jimmywarting" - } - ], - "dependencies": { - "node-domexception": "^1.0.0", - "web-streams-polyfill": "^3.0.3" - }, - "engines": { - "node": "^12.20 || >= 14.13" - } - }, - "node_modules/filter-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz", - "integrity": "sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/flat": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", - "bin": { - "flat": "cli.js" - } - }, - "node_modules/follow-redirects": { - "version": "1.15.5", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz", - "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/formdata-polyfill": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", - "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", - "dependencies": { - "fetch-blob": "^3.1.2" - }, - "engines": { - "node": ">=12.20.0" - } - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/get-func-name": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", - "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/get-stream": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", - "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", - "dev": true, - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/gql-query-builder": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/gql-query-builder/-/gql-query-builder-3.8.0.tgz", - "integrity": "sha512-q0PncZTrLDeyiH4R7YH1ISM+XGB4NvQ8eTm/Wr/sHSuquFZvqvDpGyMhbgoCZDc8kNAK8GOdfh3nI2GCLREFvw==" - }, - "node_modules/graphql": { - "version": "16.8.1", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.8.1.tgz", - "integrity": "sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw==", - "engines": { - "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" - } - }, - "node_modules/graphql-relay": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/graphql-relay/-/graphql-relay-0.10.0.tgz", - "integrity": "sha512-44yBuw2/DLNEiMypbNZBt1yMDbBmyVPVesPywnteGGALiBmdyy1JP8jSg8ClLePg8ZZxk0O4BLhd1a6U/1jDOQ==", - "engines": { - "node": "^12.20.0 || ^14.15.0 || >= 15.9.0" - }, - "peerDependencies": { - "graphql": "^16.2.0" - } - }, - "node_modules/graphql-scalars": { - "version": "1.22.4", - "resolved": "https://registry.npmjs.org/graphql-scalars/-/graphql-scalars-1.22.4.tgz", - "integrity": "sha512-ILnv7jq5VKHLUyoaTFX7lgYrjCd6vTee9i8/B+D4zJKJT5TguOl0KkpPEbXHjmeor8AZYrVsrYUHdqRBMX1pjA==", - "dependencies": { - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" - } - }, - "node_modules/hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "node_modules/hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", - "dependencies": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/human-signals": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", - "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", - "dev": true, - "engines": { - "node": ">=16.17.0" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "node_modules/is-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "node_modules/isows": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/isows/-/isows-1.0.3.tgz", - "integrity": "sha512-2cKei4vlmg2cxEjm3wVSqn8pcoRF/LX/wpifuuNquFO4SQmPwarClT+SUCA2lt+l581tTeZIPIZuIDo2jWN1fg==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/wagmi-dev" - } - ], - "peerDependencies": { - "ws": "*" - } - }, - "node_modules/it-first": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/it-first/-/it-first-3.0.4.tgz", - "integrity": "sha512-FtQl84iTNxN5EItP/JgL28V2rzNMkCzTUlNoj41eVdfix2z1DBuLnBqZ0hzYhGGa1rMpbQf0M7CQSA2adlrLJg==" - }, - "node_modules/jet-logger": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/jet-logger/-/jet-logger-1.2.2.tgz", - "integrity": "sha512-Kbw4G3BC45+Umz5XBnsE50pHplruJTVKGRy5X1YfCu3Te7f8ggTL8Tm10YegAD2QP41MVQ3o/Y9MFAZzfythqw==", - "dependencies": { - "colors": "1.3.0" - } - }, - "node_modules/js-sha3": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", - "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" - }, - "node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - }, - "node_modules/json-schema-typed": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/json-schema-typed/-/json-schema-typed-8.0.1.tgz", - "integrity": "sha512-XQmWYj2Sm4kn4WeTYvmpKEbyPsL7nBsb647c7pMe6l02/yx2+Jfc4dT6UZkEXnIUb5LhD55r2HPsJ1milQ4rDg==" - }, - "node_modules/jsonc-parser": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz", - "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==", - "dev": true - }, - "node_modules/jsonld": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/jsonld/-/jsonld-8.3.2.tgz", - "integrity": "sha512-MwBbq95szLwt8eVQ1Bcfwmgju/Y5P2GdtlHE2ncyfuYjIdEhluUVyj1eudacf1mOkWIoS9GpDBTECqhmq7EOaA==", - "dependencies": { - "@digitalbazaar/http-client": "^3.4.1", - "canonicalize": "^1.0.1", - "lru-cache": "^6.0.0", - "rdf-canonize": "^3.4.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/jsontokens": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/jsontokens/-/jsontokens-4.0.1.tgz", - "integrity": "sha512-+MO415LEN6M+3FGsRz4wU20g7N2JA+2j9d9+pGaNJHviG4L8N0qzavGyENw6fJqsq9CcrHOIL6iWX5yeTZ86+Q==", - "dependencies": { - "@noble/hashes": "^1.1.2", - "@noble/secp256k1": "^1.6.3", - "base64-js": "^1.5.1" - } - }, - "node_modules/key-did-provider-ed25519": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/key-did-provider-ed25519/-/key-did-provider-ed25519-3.0.2.tgz", - "integrity": "sha512-4Yw0CeO1hKRaUsh9NIz4tn4Ysr09CdoJItyT0vHjd5iedJ+FvVt7pTbNr7IY0/+8mWvYslutAK5LFrwu5agpsA==", - "dependencies": { - "@noble/curves": "^1.1.0", - "did-jwt": "^7.2.0", - "dids": "^4.0.4", - "fast-json-stable-stringify": "^2.1.0", - "rpc-utils": "^0.6.2", - "uint8arrays": "^4.0.3" - }, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/key-did-resolver": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/key-did-resolver/-/key-did-resolver-3.0.0.tgz", - "integrity": "sha512-IyEq64AdS6lUwtn3YSvGpu7KAGA2x5+fjRCUIa8+ccSLmWrODV/ICM5aa6hHV/19EPWef8/e322r9sQJJ6/3qA==", - "dependencies": { - "@stablelib/ed25519": "^1.0.2", - "bigint-mod-arith": "^3.1.0", - "multiformats": "^11.0.1", - "nist-weierstrauss": "^1.6.1", - "uint8arrays": "^4.0.3", - "varint": "^6.0.0" - }, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/key-did-resolver/node_modules/multiformats": { - "version": "11.0.2", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-11.0.2.tgz", - "integrity": "sha512-b5mYMkOkARIuVZCpvijFj9a6m5wMVLC7cf/jIPd5D/ARDOfLC5+IFkbgDXQgcU2goIsTD/O9NY4DI/Mt4OGvlg==", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/ky": { - "version": "0.33.3", - "resolved": "https://registry.npmjs.org/ky/-/ky-0.33.3.tgz", - "integrity": "sha512-CasD9OCEQSFIam2U8efFK81Yeg8vNMTBUqtMOHlrcWQHqUX3HeCl9Dr31u4toV7emlH8Mymk5+9p0lL6mKb/Xw==", - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sindresorhus/ky?sponsor=1" - } - }, - "node_modules/ky-universal": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/ky-universal/-/ky-universal-0.11.0.tgz", - "integrity": "sha512-65KyweaWvk+uKKkCrfAf+xqN2/epw1IJDtlyCPxYffFCMR8u1sp2U65NtWpnozYfZxQ6IUzIlvUcw+hQ82U2Xw==", - "dependencies": { - "abort-controller": "^3.0.0", - "node-fetch": "^3.2.10" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sindresorhus/ky-universal?sponsor=1" - }, - "peerDependencies": { - "ky": ">=0.31.4", - "web-streams-polyfill": ">=3.2.1" - }, - "peerDependenciesMeta": { - "web-streams-polyfill": { - "optional": true - } - } - }, - "node_modules/local-pkg": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.5.0.tgz", - "integrity": "sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==", - "dev": true, - "dependencies": { - "mlly": "^1.4.2", - "pkg-types": "^1.0.3" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/antfu" - } - }, - "node_modules/lodash.clonedeep": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==" - }, - "node_modules/logfmt": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/logfmt/-/logfmt-1.4.0.tgz", - "integrity": "sha512-p1Ow0C2dDJYaQBhRHt+HVMP6ELuBm4jYSYNHPMfz0J5wJ9qA6/7oBOlBZBfT1InqguTYcvJzNea5FItDxTcbyw==", - "dependencies": { - "split": "0.2.x", - "through": "2.3.x" - }, - "bin": { - "logfmt": "bin/logfmt" - } - }, - "node_modules/loupe": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz", - "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", - "dev": true, - "dependencies": { - "get-func-name": "^2.0.1" - } - }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/magic-string": { - "version": "0.30.5", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.5.tgz", - "integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==", - "dev": true, - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.15" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/mapmoize": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/mapmoize/-/mapmoize-1.2.1.tgz", - "integrity": "sha512-LK8ArSM1wbfRPTnl+LpdxW1pwkfY6GxtM9p+STr6aDtM7ImR8jLuf4ekei43/AN0f7XDSrohzwwK57eGHSDAuA==", - "engines": { - "node": "^14.0.0 || ^16.0.0 || >=18.0.0" - } - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", - "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" - }, - "node_modules/minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==" - }, - "node_modules/mlly": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.5.0.tgz", - "integrity": "sha512-NPVQvAY1xr1QoVeG0cy8yUYC7FQcOx6evl/RjT1wL5FvzPnzOysoqB/jmx/DhssT2dYa8nxECLAaFI/+gVLhDQ==", - "dev": true, - "dependencies": { - "acorn": "^8.11.3", - "pathe": "^1.1.2", - "pkg-types": "^1.0.3", - "ufo": "^1.3.2" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/multibase": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-4.0.6.tgz", - "integrity": "sha512-x23pDe5+svdLz/k5JPGCVdfn7Q5mZVMBETiC+ORfO+sor9Sgs0smJzAjfTbM5tckeCqnaUuMYoz+k3RXMmJClQ==", - "deprecated": "This module has been superseded by the multiformats module", - "dependencies": { - "@multiformats/base-x": "^4.0.1" - }, - "engines": { - "node": ">=12.0.0", - "npm": ">=6.0.0" - } - }, - "node_modules/multicodec": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-3.2.1.tgz", - "integrity": "sha512-+expTPftro8VAW8kfvcuNNNBgb9gPeNYV9dn+z1kJRWF2vih+/S79f2RVeIwmrJBUJ6NT9IUPWnZDQvegEh5pw==", - "deprecated": "This module has been superseded by the multiformats module", - "dev": true, - "dependencies": { - "uint8arrays": "^3.0.0", - "varint": "^6.0.0" - } - }, - "node_modules/multicodec/node_modules/multiformats": { - "version": "9.9.0", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.9.0.tgz", - "integrity": "sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==", - "dev": true - }, - "node_modules/multicodec/node_modules/uint8arrays": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.1.tgz", - "integrity": "sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg==", - "dev": true, - "dependencies": { - "multiformats": "^9.4.2" - } - }, - "node_modules/multiformats": { - "version": "13.0.1", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.0.1.tgz", - "integrity": "sha512-bt3R5iXe2O8xpp3wkmQhC73b/lC4S2ihU8Dndwcsysqbydqb8N+bpP116qMcClZ17g58iSIwtXUTcg2zT4sniA==" - }, - "node_modules/multihashes": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-4.0.3.tgz", - "integrity": "sha512-0AhMH7Iu95XjDLxIeuCOOE4t9+vQZsACyKZ9Fxw2pcsRmlX4iCn1mby0hS0bb+nQOVpdQYWPpnyusw4da5RPhA==", - "dev": true, - "dependencies": { - "multibase": "^4.0.1", - "uint8arrays": "^3.0.0", - "varint": "^5.0.2" - }, - "engines": { - "node": ">=12.0.0", - "npm": ">=6.0.0" - } - }, - "node_modules/multihashes-sync": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/multihashes-sync/-/multihashes-sync-2.0.0.tgz", - "integrity": "sha512-hoBamCqXuVmeo4NAY52dbYuUIKHy3/FcqxyKZSbhqicR2SbUjgiY4FoDvE8BV40dPfAJTT6pQpqYeuKxqKwOLQ==", - "dependencies": { - "@noble/hashes": "^1.3.3", - "multiformats": "^13.0.0" - } - }, - "node_modules/multihashes/node_modules/multiformats": { - "version": "9.9.0", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.9.0.tgz", - "integrity": "sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==", - "dev": true - }, - "node_modules/multihashes/node_modules/uint8arrays": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.1.tgz", - "integrity": "sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg==", - "dev": true, - "dependencies": { - "multiformats": "^9.4.2" - } - }, - "node_modules/multihashes/node_modules/varint": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", - "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==", - "dev": true - }, - "node_modules/nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/nist-weierstrauss": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/nist-weierstrauss/-/nist-weierstrauss-1.6.1.tgz", - "integrity": "sha512-FpjCOnPV/s3ZVIkeldCVSml2K4lruabPbBgoEitpCK1JL0KTVoWb56CFTU6rZn5i6VqAjdwcOp0FDwJACPmeFA==", - "dependencies": { - "multiformats": "^9.6.5", - "uint8arrays": "^2.1.4" - } - }, - "node_modules/nist-weierstrauss/node_modules/multiformats": { - "version": "9.9.0", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.9.0.tgz", - "integrity": "sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==" - }, - "node_modules/nist-weierstrauss/node_modules/uint8arrays": { - "version": "2.1.10", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-2.1.10.tgz", - "integrity": "sha512-Q9/hhJa2836nQfEJSZTmr+pg9+cDJS9XEAp7N2Vg5MzL3bK/mkMVfjscRGYruP9jNda6MAdf4QD/y78gSzkp6A==", - "dependencies": { - "multiformats": "^9.4.2" - } - }, - "node_modules/node-domexception": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", - "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/jimmywarting" - }, - { - "type": "github", - "url": "https://paypal.me/jimmywarting" - } - ], - "engines": { - "node": ">=10.5.0" - } - }, - "node_modules/node-fetch": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", - "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", - "dependencies": { - "data-uri-to-buffer": "^4.0.0", - "fetch-blob": "^3.1.4", - "formdata-polyfill": "^4.0.10" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/node-fetch" - } - }, - "node_modules/npm-run-path": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.2.0.tgz", - "integrity": "sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg==", - "dev": true, - "dependencies": { - "path-key": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/npm-run-path/node_modules/path-key": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", - "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/object-sizeof": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/object-sizeof/-/object-sizeof-2.6.4.tgz", - "integrity": "sha512-YuJAf7Bi61KROcYmXm8RCeBrBw8UOaJDzTm1gp0eU7RjYi1xEte3/Nmg/VyPaHcJZ3sNojs1Y0xvSrgwkLmcFw==", - "dependencies": { - "buffer": "^6.0.3" - } - }, - "node_modules/onetime": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", - "dev": true, - "dependencies": { - "mimic-fn": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/openzeppelin-solidity": { - "version": "4.5.0", - "resolved": "git+ssh://git@github.com/OpenZeppelin/openzeppelin-contracts.git#dc739dcbe34fb0c7b15c4e197c6ba3fe9b0c8946", - "integrity": "sha512-TMWYTssbuYNC6p4dC5HrdJK/iy3L0ZHwuBRFKSUSpyCBn6JtYXWFAHRpKHo3pVaczNQlXbW8i29UzJ0lQOcE6Q==", - "dev": true, - "license": "MIT", - "bin": { - "openzeppelin-contracts-migrate-imports": "scripts/migrate-imports.js" - } - }, - "node_modules/p-limit": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-5.0.0.tgz", - "integrity": "sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^1.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/pathe": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", - "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", - "dev": true - }, - "node_modules/pathval": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", - "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "node_modules/pkg-types": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.0.3.tgz", - "integrity": "sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==", - "dev": true, - "dependencies": { - "jsonc-parser": "^3.2.0", - "mlly": "^1.2.0", - "pathe": "^1.1.0" - } - }, - "node_modules/postcss": { - "version": "8.4.33", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.33.tgz", - "integrity": "sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "nanoid": "^3.3.7", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", - "dev": true, - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" - }, - "node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "engines": { - "node": ">=6" - } - }, - "node_modules/query-string": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-7.1.3.tgz", - "integrity": "sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==", - "dependencies": { - "decode-uri-component": "^0.2.2", - "filter-obj": "^1.1.0", - "split-on-first": "^1.0.0", - "strict-uri-encode": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/rdf-canonize": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/rdf-canonize/-/rdf-canonize-3.4.0.tgz", - "integrity": "sha512-fUeWjrkOO0t1rg7B2fdyDTvngj+9RlUyL92vOdiB7c0FPguWVsniIMjEtHH+meLBO9rzkUlUzBVXgWrjI8P9LA==", - "dependencies": { - "setimmediate": "^1.0.5" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ripemd160-min": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/ripemd160-min/-/ripemd160-min-0.0.6.tgz", - "integrity": "sha512-+GcJgQivhs6S9qvLogusiTcS9kQUfgR75whKuy5jIhuiOfQuJ8fjqxV6EGD5duH1Y/FawFUMtMhyeq3Fbnib8A==", - "engines": { - "node": ">=8" - } - }, - "node_modules/rollup": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.9.6.tgz", - "integrity": "sha512-05lzkCS2uASX0CiLFybYfVkwNbKZG5NFQ6Go0VWyogFTXXbR039UVsegViTntkk4OglHBdF54ccApXRRuXRbsg==", - "dev": true, - "dependencies": { - "@types/estree": "1.0.5" - }, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=18.0.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.9.6", - "@rollup/rollup-android-arm64": "4.9.6", - "@rollup/rollup-darwin-arm64": "4.9.6", - "@rollup/rollup-darwin-x64": "4.9.6", - "@rollup/rollup-linux-arm-gnueabihf": "4.9.6", - "@rollup/rollup-linux-arm64-gnu": "4.9.6", - "@rollup/rollup-linux-arm64-musl": "4.9.6", - "@rollup/rollup-linux-riscv64-gnu": "4.9.6", - "@rollup/rollup-linux-x64-gnu": "4.9.6", - "@rollup/rollup-linux-x64-musl": "4.9.6", - "@rollup/rollup-win32-arm64-msvc": "4.9.6", - "@rollup/rollup-win32-ia32-msvc": "4.9.6", - "@rollup/rollup-win32-x64-msvc": "4.9.6", - "fsevents": "~2.3.2" - } - }, - "node_modules/rpc-utils": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rpc-utils/-/rpc-utils-0.6.2.tgz", - "integrity": "sha512-kzk1OflbBckfDBAo8JwsmtQSHzj+6hxRt5G+u8A8ZSmunBw1nhWvRkSq8j1+EvWBqBRLy1aiGLUW5644CZqQtA==", - "dependencies": { - "nanoid": "^3.3.1" - }, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/rxjs": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", - "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/schema-dts": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/schema-dts/-/schema-dts-1.1.2.tgz", - "integrity": "sha512-MpNwH0dZJHinVxk9bT8XUdjKTxMYrA5bLtrrGmFA6PTLwlOKnhi67XoRd6/ty+Djt6ZC0slR57qFhZDNMI6DhQ==", - "peerDependencies": { - "typescript": ">=4.1.0" - } - }, - "node_modules/scrypt-js": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", - "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==" - }, - "node_modules/setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/siginfo": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", - "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", - "dev": true - }, - "node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/split": { - "version": "0.2.10", - "resolved": "https://registry.npmjs.org/split/-/split-0.2.10.tgz", - "integrity": "sha512-e0pKq+UUH2Xq/sXbYpZBZc3BawsfDZ7dgv+JtRTUPNcvF5CMR4Y9cvJqkMY0MoxWzTHvZuz1beg6pNEKlszPiQ==", - "dependencies": { - "through": "2" - }, - "engines": { - "node": "*" - } - }, - "node_modules/split-on-first": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz", - "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==", - "engines": { - "node": ">=6" - } - }, - "node_modules/stackback": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", - "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", - "dev": true - }, - "node_modules/std-env": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.7.0.tgz", - "integrity": "sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==", - "dev": true - }, - "node_modules/strict-uri-encode": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz", - "integrity": "sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==", - "engines": { - "node": ">=4" - } - }, - "node_modules/strip-final-newline": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/strip-literal": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-1.3.0.tgz", - "integrity": "sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==", - "dev": true, - "dependencies": { - "acorn": "^8.10.0" - }, - "funding": { - "url": "https://github.com/sponsors/antfu" - } - }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" - }, - "node_modules/tinybench": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.6.0.tgz", - "integrity": "sha512-N8hW3PG/3aOoZAN5V/NSAEDz0ZixDSSt5b/a05iqtpgfLWMSVuCo7w0k2vVvEjdrIoeGqZzweX2WlyioNIHchA==", - "dev": true - }, - "node_modules/tinypool": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.8.2.tgz", - "integrity": "sha512-SUszKYe5wgsxnNOVlBYO6IC+8VGWdVGZWAqUxp3UErNBtptZvWbwyUOyzNL59zigz2rCA92QiL3wvG+JDSdJdQ==", - "dev": true, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/tinyspy": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-2.2.0.tgz", - "integrity": "sha512-d2eda04AN/cPOR89F7Xv5bK/jrQEhmcLFe6HFldoeO9AJtps+fqEnh486vnT/8y4bw38pSyxDcTCAq+Ks2aJTg==", - "dev": true, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, - "node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" - }, - "node_modules/tunnel": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", - "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", - "dev": true, - "engines": { - "node": ">=0.6.11 <=0.7.0 || >=0.7.3" - } - }, - "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/typescript": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", - "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/ufo": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.3.2.tgz", - "integrity": "sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA==", - "dev": true - }, - "node_modules/uint8arrays": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.10.tgz", - "integrity": "sha512-AnJNUGGDJAgFw/eWu/Xb9zrVKEGlwJJCaeInlf3BkecE/zcTobk5YXYIPNQJO1q5Hh1QZrQQHf0JvcHqz2hqoA==", - "dependencies": { - "multiformats": "^12.0.1" - } - }, - "node_modules/uint8arrays/node_modules/multiformats": { - "version": "12.1.3", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.3.tgz", - "integrity": "sha512-eajQ/ZH7qXZQR2AgtfpmSMizQzmyYVmCql7pdhldPuYQi4atACekbJaQplk6dWyIi10jCaFnd6pqvcEFXjbaJw==", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/undici": { - "version": "5.28.2", - "resolved": "https://registry.npmjs.org/undici/-/undici-5.28.2.tgz", - "integrity": "sha512-wh1pHJHnUeQV5Xa8/kyQhO7WFa8M34l026L5P/+2TYiakvGy5Rdc8jWZVyG7ieht/0WgJLEd3kcU5gKx+6GC8w==", - "dependencies": { - "@fastify/busboy": "^2.0.0" - }, - "engines": { - "node": ">=14.0" - } - }, - "node_modules/undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/url-safe-base64": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/url-safe-base64/-/url-safe-base64-1.3.0.tgz", - "integrity": "sha512-MasquJt1L8/W996LP1BSsDL6UbApCv0Xal0eeeXUIfNXPEj3zM82XETcQSdurbmCmbeJnqRlhszHnWQzMiAZeQ==" - }, - "node_modules/value-or-promise": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.12.tgz", - "integrity": "sha512-Z6Uz+TYwEqE7ZN50gwn+1LCVo9ZVrpxRPOhOLnncYkY1ZzOYtrX8Fwf/rFktZ8R5mJms6EZf5TqNOMeZmnPq9Q==", - "engines": { - "node": ">=12" - } - }, - "node_modules/varint": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz", - "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==" - }, - "node_modules/varintes": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/varintes/-/varintes-2.0.5.tgz", - "integrity": "sha512-iF3jlHLko9NrYjaUZvT3VwypP3V20KNNhT1tzqblyIyrVjNiW7HseGOhuP+apgZBp9X/8+5pxa7kNikhJeZlIw==" - }, - "node_modules/varuint-bitcoin": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/varuint-bitcoin/-/varuint-bitcoin-1.1.2.tgz", - "integrity": "sha512-4EVb+w4rx+YfVM32HQX42AbbT7/1f5zwAYhIujKXKk8NQK+JfRVl3pqT3hjNn/L+RstigmGGKVwHA/P0wgITZw==", - "dependencies": { - "safe-buffer": "^5.1.1" - } - }, - "node_modules/viem": { - "version": "1.21.4", - "resolved": "https://registry.npmjs.org/viem/-/viem-1.21.4.tgz", - "integrity": "sha512-BNVYdSaUjeS2zKQgPs+49e5JKocfo60Ib2yiXOWBT6LuVxY1I/6fFX3waEtpXvL1Xn4qu+BVitVtMh9lyThyhQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/wevm" - } - ], - "dependencies": { - "@adraffy/ens-normalize": "1.10.0", - "@noble/curves": "1.2.0", - "@noble/hashes": "1.3.2", - "@scure/bip32": "1.3.2", - "@scure/bip39": "1.2.1", - "abitype": "0.9.8", - "isows": "1.0.3", - "ws": "8.13.0" - }, - "peerDependencies": { - "typescript": ">=5.0.4" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/viem/node_modules/@noble/curves": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz", - "integrity": "sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==", - "dependencies": { - "@noble/hashes": "1.3.2" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/viem/node_modules/@noble/hashes": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", - "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==", - "engines": { - "node": ">= 16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/viem/node_modules/@scure/bip39": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.2.1.tgz", - "integrity": "sha512-Z3/Fsz1yr904dduJD0NpiyRHhRYHdcnyh73FZWiV+/qhWi83wNJ3NWolYqCEN+ZWsUz2TWwajJggcRE9r1zUYg==", - "dependencies": { - "@noble/hashes": "~1.3.0", - "@scure/base": "~1.1.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/viem/node_modules/ws": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", - "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/vite": { - "version": "5.0.12", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.0.12.tgz", - "integrity": "sha512-4hsnEkG3q0N4Tzf1+t6NdN9dg/L3BM+q8SWgbSPnJvrgH2kgdyzfVJwbR1ic69/4uMJJ/3dqDZZE5/WwqW8U1w==", - "dev": true, - "dependencies": { - "esbuild": "^0.19.3", - "postcss": "^8.4.32", - "rollup": "^4.2.0" - }, - "bin": { - "vite": "bin/vite.js" - }, - "engines": { - "node": "^18.0.0 || >=20.0.0" - }, - "funding": { - "url": "https://github.com/vitejs/vite?sponsor=1" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - }, - "peerDependencies": { - "@types/node": "^18.0.0 || >=20.0.0", - "less": "*", - "lightningcss": "^1.21.0", - "sass": "*", - "stylus": "*", - "sugarss": "*", - "terser": "^5.4.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "less": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "sass": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - } - } - }, - "node_modules/vite-node": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-1.2.1.tgz", - "integrity": "sha512-fNzHmQUSOY+y30naohBvSW7pPn/xn3Ib/uqm+5wAJQJiqQsU0NBR78XdRJb04l4bOFKjpTWld0XAfkKlrDbySg==", - "dev": true, - "dependencies": { - "cac": "^6.7.14", - "debug": "^4.3.4", - "pathe": "^1.1.1", - "picocolors": "^1.0.0", - "vite": "^5.0.0" - }, - "bin": { - "vite-node": "vite-node.mjs" - }, - "engines": { - "node": "^18.0.0 || >=20.0.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/vitest": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-1.2.1.tgz", - "integrity": "sha512-TRph8N8rnSDa5M2wKWJCMnztCZS9cDcgVTQ6tsTFTG/odHJ4l5yNVqvbeDJYJRZ6is3uxaEpFs8LL6QM+YFSdA==", - "dev": true, - "dependencies": { - "@vitest/expect": "1.2.1", - "@vitest/runner": "1.2.1", - "@vitest/snapshot": "1.2.1", - "@vitest/spy": "1.2.1", - "@vitest/utils": "1.2.1", - "acorn-walk": "^8.3.2", - "cac": "^6.7.14", - "chai": "^4.3.10", - "debug": "^4.3.4", - "execa": "^8.0.1", - "local-pkg": "^0.5.0", - "magic-string": "^0.30.5", - "pathe": "^1.1.1", - "picocolors": "^1.0.0", - "std-env": "^3.5.0", - "strip-literal": "^1.3.0", - "tinybench": "^2.5.1", - "tinypool": "^0.8.1", - "vite": "^5.0.0", - "vite-node": "1.2.1", - "why-is-node-running": "^2.2.2" - }, - "bin": { - "vitest": "vitest.mjs" - }, - "engines": { - "node": "^18.0.0 || >=20.0.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - }, - "peerDependencies": { - "@edge-runtime/vm": "*", - "@types/node": "^18.0.0 || >=20.0.0", - "@vitest/browser": "^1.0.0", - "@vitest/ui": "^1.0.0", - "happy-dom": "*", - "jsdom": "*" - }, - "peerDependenciesMeta": { - "@edge-runtime/vm": { - "optional": true - }, - "@types/node": { - "optional": true - }, - "@vitest/browser": { - "optional": true - }, - "@vitest/ui": { - "optional": true - }, - "happy-dom": { - "optional": true - }, - "jsdom": { - "optional": true - } - } - }, - "node_modules/vitest-github-actions-reporter": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/vitest-github-actions-reporter/-/vitest-github-actions-reporter-0.11.1.tgz", - "integrity": "sha512-ZHHB0wBgOPhMYCB17WKVlJZa+5SdudBZFoVoebwfq3ioIUTeLQGYHwh85vpdJAxRghLP8d0qI/6eCTueGyDVXA==", - "dev": true, - "dependencies": { - "@actions/core": "^1.10.0" - }, - "engines": { - "node": ">=14.16.0" - }, - "peerDependencies": { - "vitest": ">=0.28.5" - } - }, - "node_modules/web-streams-polyfill": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.2.tgz", - "integrity": "sha512-3pRGuxRF5gpuZc0W+EpwQRmCD7gRqcDOMt688KmdlDAgAyaB1XlN0zq2njfDNm44XVdIouE7pZ6GzbdyH47uIQ==", - "engines": { - "node": ">= 8" - } - }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/why-is-node-running": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.2.2.tgz", - "integrity": "sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==", - "dev": true, - "dependencies": { - "siginfo": "^2.0.0", - "stackback": "0.0.2" - }, - "bin": { - "why-is-node-running": "cli.js" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ws": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", - "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "node_modules/yocto-queue": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", - "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", - "dev": true, - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - } - }, - "dependencies": { - "@actions/core": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.10.1.tgz", - "integrity": "sha512-3lBR9EDAY+iYIpTnTIXmWcNbX3T2kCkAEQGIQx4NVQ0575nk2k3GRZDTPQG+vVtS2izSLmINlxXf0uLtnrTP+g==", - "dev": true, - "requires": { - "@actions/http-client": "^2.0.1", - "uuid": "^8.3.2" - }, - "dependencies": { - "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true - } - } - }, - "@actions/http-client": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-2.2.0.tgz", - "integrity": "sha512-q+epW0trjVUUHboliPb4UF9g2msf+w61b32tAkFEwL/IwP0DQWgbCMM0Hbe3e3WXSKz5VcUXbzJQgy8Hkra/Lg==", - "dev": true, - "requires": { - "tunnel": "^0.0.6", - "undici": "^5.25.4" - } - }, - "@adraffy/ens-normalize": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.10.0.tgz", - "integrity": "sha512-nA9XHtlAkYfJxY7bce8DcN7eKxWWCWkU+1GR9d+U6MbNpfwQp8TI7vqOsBsMcHoT4mBu2kypKoSKnghEzOOq5Q==" - }, - "@ceramicnetwork/codecs": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@ceramicnetwork/codecs/-/codecs-2.4.1.tgz", - "integrity": "sha512-QhdUHp7PJm+qL05f6ovlUe7K85urBt3V7JKQrmq33jCYt4YlVT2bTyUdsrgcyA+IJZnXP1KEWuSdcpE1V3Qe/A==", - "requires": { - "@ceramicnetwork/streamid": "^3.4.1", - "cartonne": "^3.0.1", - "codeco": "^1.1.0", - "dag-jose": "^4.0.0", - "multiformats": "^13.0.0", - "uint8arrays": "^5.0.1" - }, - "dependencies": { - "uint8arrays": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.0.1.tgz", - "integrity": "sha512-ND5RpJAnPgHmZT7hWD/2T4BwRp04j8NLKvMKC/7bhiEwEjUMkQ4kvBKiH6hOqbljd6qJ2xS8reL3vl1e33grOQ==", - "requires": { - "multiformats": "^13.0.0" - } - } - } - }, - "@ceramicnetwork/common": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/@ceramicnetwork/common/-/common-3.4.1.tgz", - "integrity": "sha512-SVtPG6tkaDF77iM2mweXV+JSgZa3tKvuku0TIrA+pZswa1EHtnRHssSilaj4q91JNaTy2Gsk86oK6MuQp9+LKg==", - "requires": { - "@ceramicnetwork/codecs": "^2.4.1", - "@ceramicnetwork/streamid": "^3.4.1", - "@didtools/cacao": "^3.0.0", - "@didtools/pkh-ethereum": "^0.2.0", - "@didtools/pkh-solana": "^0.2.0", - "@didtools/pkh-stacks": "^0.2.0", - "@didtools/pkh-tezos": "^0.3.0", - "@stablelib/random": "^1.0.1", - "caip": "~1.1.0", - "flat": "^5.0.2", - "it-first": "^3.0.4", - "jet-logger": "1.2.2", - "lodash.clonedeep": "^4.5.0", - "logfmt": "^1.3.2", - "multiformats": "^13.0.0", - "rxjs": "^7.8.1", - "uint8arrays": "^5.0.1" - }, - "dependencies": { - "uint8arrays": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.0.1.tgz", - "integrity": "sha512-ND5RpJAnPgHmZT7hWD/2T4BwRp04j8NLKvMKC/7bhiEwEjUMkQ4kvBKiH6hOqbljd6qJ2xS8reL3vl1e33grOQ==", - "requires": { - "multiformats": "^13.0.0" - } - } - } - }, - "@ceramicnetwork/http-client": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/@ceramicnetwork/http-client/-/http-client-3.4.1.tgz", - "integrity": "sha512-ihnX2Gkc77IqnokF3vU1IDoWYGbU7fnXpgrTqU7MkjiT5GrpERjhu1Z64Hs3IIklyEfau5zqa7X1zQuvce7QMg==", - "requires": { - "@ceramicnetwork/common": "^3.4.1", - "@ceramicnetwork/stream-caip10-link": "^3.4.1", - "@ceramicnetwork/stream-model": "^2.4.1", - "@ceramicnetwork/stream-model-instance": "^2.4.1", - "@ceramicnetwork/stream-tile": "^3.4.1", - "@ceramicnetwork/streamid": "^3.4.1", - "@scarf/scarf": "^1.1.1", - "query-string": "^7.1.0", - "rxjs": "^7.8.1" - } - }, - "@ceramicnetwork/stream-caip10-link": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/@ceramicnetwork/stream-caip10-link/-/stream-caip10-link-3.4.1.tgz", - "integrity": "sha512-M6e3nP7Wq4XOF1BNskK7MOdCB69Cyoc+WbJIicO28lMPouK4FzsOZn2F7z2807JhYJaapWYft4Ab0EXaZKqqGA==", - "requires": { - "@ceramicnetwork/common": "^3.4.1", - "@ceramicnetwork/streamid": "^3.4.1", - "caip": "~1.1.0", - "did-resolver": "^4.0.1", - "lodash.clonedeep": "^4.5.0" - } - }, - "@ceramicnetwork/stream-model": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@ceramicnetwork/stream-model/-/stream-model-2.4.1.tgz", - "integrity": "sha512-H2oy9h2372B0ATyZLzR9cJKQbalfC58D4e5TXWl/EsVB3C2jslZPDyDODdqtQV44SM3QHp6sfAXf3/ds2S9mhQ==", - "requires": { - "@ceramicnetwork/codecs": "^2.4.1", - "@ceramicnetwork/common": "^3.4.1", - "@ceramicnetwork/streamid": "^3.4.1", - "@ipld/dag-cbor": "^7.0.0", - "@stablelib/random": "^1.0.1", - "ajv": "^8.8.2", - "ajv-formats": "^2.1.1", - "codeco": "^1.1.0", - "fast-json-patch": "^3.1.0", - "json-schema-typed": "^8.0.1", - "multiformats": "^13.0.0", - "uint8arrays": "^5.0.1" - }, - "dependencies": { - "uint8arrays": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.0.1.tgz", - "integrity": "sha512-ND5RpJAnPgHmZT7hWD/2T4BwRp04j8NLKvMKC/7bhiEwEjUMkQ4kvBKiH6hOqbljd6qJ2xS8reL3vl1e33grOQ==", - "requires": { - "multiformats": "^13.0.0" - } - } - } - }, - "@ceramicnetwork/stream-model-instance": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@ceramicnetwork/stream-model-instance/-/stream-model-instance-2.4.1.tgz", - "integrity": "sha512-vp+oY27BFM64pXN2l4riwK3/3rN1DCEZe/iBrWWJ79SC99S9jFsSnx2TB0RLkBF+n87IsWi+t1WA+FR1KNIe/Q==", - "requires": { - "@ceramicnetwork/common": "^3.4.1", - "@ceramicnetwork/streamid": "^3.4.1", - "@ipld/dag-cbor": "^7.0.0", - "@stablelib/random": "^1.0.1", - "fast-json-patch": "^3.1.0", - "object-sizeof": "^2.6.1", - "uint8arrays": "^5.0.1" - }, - "dependencies": { - "uint8arrays": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.0.1.tgz", - "integrity": "sha512-ND5RpJAnPgHmZT7hWD/2T4BwRp04j8NLKvMKC/7bhiEwEjUMkQ4kvBKiH6hOqbljd6qJ2xS8reL3vl1e33grOQ==", - "requires": { - "multiformats": "^13.0.0" - } - } - } - }, - "@ceramicnetwork/stream-tile": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/@ceramicnetwork/stream-tile/-/stream-tile-3.4.1.tgz", - "integrity": "sha512-oTgG1sRPNS/eG+Df9O2CXOjWRzgs+mwYtF6/qY2jayWp+1t5BDdSKBefa427lekJEXn+IS5w2FesOAY5/3ddPQ==", - "requires": { - "@ceramicnetwork/common": "^3.4.1", - "@ceramicnetwork/streamid": "^3.4.1", - "@ipld/dag-cbor": "^7.0.0", - "@stablelib/random": "^1.0.1", - "dids": "^5.0.0", - "fast-json-patch": "^3.1.0", - "lodash.clonedeep": "^4.5.0", - "uint8arrays": "^5.0.1" - }, - "dependencies": { - "@didtools/pkh-ethereum": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@didtools/pkh-ethereum/-/pkh-ethereum-0.5.0.tgz", - "integrity": "sha512-2S+TS/I2jVTNnkgyslxQvSjCzzLsCabjXD2UWjJnVkAoxeJgPE9GvY1JhTDgvVLfxLPnYwTIP/O1WR9wJcDkFg==", - "requires": { - "@didtools/cacao": "^3.0.0", - "@noble/curves": "^1.2.0", - "@noble/hashes": "^1.3.2", - "@stablelib/random": "^1.0.2", - "caip": "^1.1.0" - } - }, - "cborg": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/cborg/-/cborg-4.0.8.tgz", - "integrity": "sha512-/6QDK0Hw//cV4YNWZZjdIUMFNw0DZmb56jdVGJPwXP7874gSN0AMYqM07mVKpAm+6Nn7U8lvYFzPgBGatC+5xw==" - }, - "dag-jose-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/dag-jose-utils/-/dag-jose-utils-4.0.0.tgz", - "integrity": "sha512-bmmXtVdEKp/zYH8El4GGkMREJioUztz8fzOErfy5dTbyKIVOF61C5sfsZLYCB/wiT/I9+SPNrQeo/Cx6Ik3wJQ==", - "requires": { - "@ipld/dag-cbor": "^9.0.7", - "multiformats": "^13.0.0" - }, - "dependencies": { - "@ipld/dag-cbor": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/@ipld/dag-cbor/-/dag-cbor-9.1.0.tgz", - "integrity": "sha512-7pMKjBaapEh+1Nk/1umPPhQGT6znb5E71lke2ekxlcuVZLLrPPdDSy0UAMwWgj3a28cjir/ZJ6CQH2DEs3DUOQ==", - "requires": { - "cborg": "^4.0.0", - "multiformats": "^13.0.0" - } - } - } - }, - "dids": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/dids/-/dids-5.0.2.tgz", - "integrity": "sha512-sxTgrvJtatqdm7dukGbquk23BVvbiaxf3nTKywWaY9AUqwC2IYEo6FG0En2cMl3J1fqMMQXrGg9luh2xDmYOmw==", - "requires": { - "@didtools/cacao": "^3.0.1", - "@didtools/codecs": "^3.0.0", - "@didtools/pkh-ethereum": "^0.5.0", - "@stablelib/random": "^1.0.2", - "codeco": "^1.2.0", - "dag-jose-utils": "^4.0.0", - "did-jwt": "^7.4.7", - "did-resolver": "^4.1.0", - "multiformats": "^13.0.0", - "rpc-utils": "^0.6.2", - "uint8arrays": "^5.0.1" - } - }, - "uint8arrays": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.0.1.tgz", - "integrity": "sha512-ND5RpJAnPgHmZT7hWD/2T4BwRp04j8NLKvMKC/7bhiEwEjUMkQ4kvBKiH6hOqbljd6qJ2xS8reL3vl1e33grOQ==", - "requires": { - "multiformats": "^13.0.0" - } - } - } - }, - "@ceramicnetwork/streamid": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/@ceramicnetwork/streamid/-/streamid-3.4.1.tgz", - "integrity": "sha512-m6uZjcdMdwzyO6TIVTJF4IJYjuceflmYDrlRxDcXrZySBNNKnL40tSHbzpcTfOy5YcIsTqJFxqUZQrFrC0mlDA==", - "requires": { - "@ipld/dag-cbor": "^7.0.0", - "@stablelib/sha256": "^1.0.1", - "cborg": "^1.10.2", - "mapmoize": "^1.2.1", - "multiformats": "^13.0.0", - "uint8arrays": "^5.0.1", - "varint": "^6.0.0" - }, - "dependencies": { - "uint8arrays": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.0.1.tgz", - "integrity": "sha512-ND5RpJAnPgHmZT7hWD/2T4BwRp04j8NLKvMKC/7bhiEwEjUMkQ4kvBKiH6hOqbljd6qJ2xS8reL3vl1e33grOQ==", - "requires": { - "multiformats": "^13.0.0" - } - } - } - }, - "@composedb/client": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@composedb/client/-/client-0.6.0.tgz", - "integrity": "sha512-vqA7gMxdUq9UATM4bgvFx5Wk2BFYoc/rmCceM9KqCaY3yHohtOPxlty1L6/Fl1Md98hmgQkY45lvHiD4ajA1Kg==", - "requires": { - "@ceramicnetwork/http-client": "^3.0.5", - "@ceramicnetwork/stream-model": "^2.0.5", - "@ceramicnetwork/stream-model-instance": "^2.0.5", - "@composedb/constants": "^0.6.0", - "@composedb/graphql-scalars": "^0.6.0", - "@composedb/runtime": "^0.6.0", - "@graphql-tools/batch-execute": "^9.0.2", - "@graphql-tools/stitch": "^9.0.3", - "@graphql-tools/utils": "^10.0.11", - "dataloader": "^2.2.2", - "graphql": "^16.8.1", - "graphql-relay": "^0.10.0" - } - }, - "@composedb/constants": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@composedb/constants/-/constants-0.6.0.tgz", - "integrity": "sha512-18rysTgKUTgapwaDEJOI063WSWlwbvowEnRZkFrZpciHPHjgfdry9XTht4ygYkGzx9TE+zGsVmgJfF0LlbTFMg==" - }, - "@composedb/graphql-scalars": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@composedb/graphql-scalars/-/graphql-scalars-0.6.0.tgz", - "integrity": "sha512-9GssARG72pXb2SEYK6Zozz92tl37WnI9fCgKiTKBIjisoUGpUnTv2sRNRJV8X9j4CgawvCm4Yb/SH+CtUXuZew==", - "requires": { - "@ceramicnetwork/streamid": "^3.0.5", - "@composedb/types": "^0.6.0", - "caip": "^1.1.0", - "graphql": "^16.8.1", - "graphql-scalars": "^1.22.4", - "multiformats": "^12.1.3" - }, - "dependencies": { - "multiformats": { - "version": "12.1.3", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.3.tgz", - "integrity": "sha512-eajQ/ZH7qXZQR2AgtfpmSMizQzmyYVmCql7pdhldPuYQi4atACekbJaQplk6dWyIi10jCaFnd6pqvcEFXjbaJw==" - } - } - }, - "@composedb/runtime": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@composedb/runtime/-/runtime-0.6.0.tgz", - "integrity": "sha512-HZRFa7KVqEPAQY9umPzpdRoblHIn/QVk/55T5TPLv6VTEDmUmw0W3Nv+vNH7kvq++SdIuikbRPSW7eci9wUTCw==", - "requires": { - "@ceramicnetwork/http-client": "^3.0.5", - "@ceramicnetwork/stream-model": "^2.0.5", - "@ceramicnetwork/stream-model-instance": "^2.0.5", - "@ceramicnetwork/streamid": "^3.0.5", - "@composedb/graphql-scalars": "^0.6.0", - "dataloader": "^2.2.2", - "graphql": "^16.8.1", - "graphql-relay": "^0.10.0" - } - }, - "@composedb/types": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@composedb/types/-/types-0.6.0.tgz", - "integrity": "sha512-Bpt85C/bIByqFx87OC14DBGfXCV7tj9IsZ5AQ0fv53bGATs+otEj+tnz5UxDRcSSuT9iLOLa8XLLKiEKkwmecQ==", - "requires": { - "@ceramicnetwork/common": "^3.0.5", - "@ceramicnetwork/stream-model": "^2.0.5", - "@ceramicnetwork/stream-model-instance": "^2.0.5", - "dids": "^4.0.4", - "json-schema-typed": "^8.0.1" - } - }, - "@desci-labs/desci-codex-composedb": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@desci-labs/desci-codex-composedb/-/desci-codex-composedb-1.0.1.tgz", - "integrity": "sha512-8SGGvm+NKYiNctOQ9+086/zSUdYgsvecg4PnQ3HZ+lJGd4GSOGwI9cfnDPl+Bu7yTXEimCRZvaQ4q/b4CPCxTg==", - "requires": { - "@composedb/types": "^0.6.0" - } - }, - "@desci-labs/desci-codex-lib": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@desci-labs/desci-codex-lib/-/desci-codex-lib-1.0.6.tgz", - "integrity": "sha512-+sVL2DEiAr57UbDybWU6crd54uUZEvTsIvyBP3iAaci373+o2CpT9SUOLd6L3lcxAoc3TLXxXOrVvNmRs8U89w==", - "requires": { - "@composedb/client": "^0.6.0", - "@desci-labs/desci-codex-composedb": "^1.0.1", - "dids": "^4.0.4", - "gql-query-builder": "^3.8.0", - "graphql": "^16.8.0", - "key-did-provider-ed25519": "^3.0.2", - "key-did-resolver": "^3.0.0", - "uint8arrays": "^4.0.6" - } - }, - "@desci-labs/desci-contracts": { - "version": "0.2.0-rc1", - "resolved": "https://registry.npmjs.org/@desci-labs/desci-contracts/-/desci-contracts-0.2.0-rc1.tgz", - "integrity": "sha512-tYUjJOcq2w6Ff3jmXJ+X0DI0Tu+W/LJrrJL9lXQ1BjHQClbX3xpTy7UCK4PuNSSpnjT/psIaoc8ck+n0Nfo1hw==", - "dev": true, - "requires": { - "@openzeppelin/contracts": "^4.8.1", - "cids": "^1.1.9", - "dotenv": "^10.0.0", - "openzeppelin-solidity": "git+https://github.com/OpenZeppelin/openzeppelin-contracts.git#dc739dcbe34fb0c7b15c4e197c6ba3fe9b0c8946" - }, - "dependencies": { - "dotenv": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", - "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", - "dev": true - } - } - }, - "@desci-labs/desci-models": { - "version": "0.2.3-rc1", - "resolved": "https://registry.npmjs.org/@desci-labs/desci-models/-/desci-models-0.2.3-rc1.tgz", - "integrity": "sha512-FW74CkgfZTNhky0Q6Sk3lCoBZ+Yl5D4KVTTLBv/NG+e8qH9jyT6DVbiXvaThQWZQNulFXJg2UFZm73AVInu3wA==", - "requires": { - "jsonld": "^8.1.1", - "schema-dts": "^1.1.2" - } - }, - "@didtools/cacao": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@didtools/cacao/-/cacao-3.0.1.tgz", - "integrity": "sha512-vV1JirxqVsBf2dqdvoS/msNN8fabvMfseZB0kf1FG8TbosrHd81+hgDOlQMZit7zJbTk5g3CGkZg3b7iYKkynw==", - "requires": { - "@didtools/codecs": "^3.0.0", - "@didtools/siwx": "2.0.0", - "@ipld/dag-cbor": "^9.0.7", - "caip": "^1.1.0", - "multiformats": "^13.0.0", - "uint8arrays": "^5.0.1", - "viem": "^1.21.4" - }, - "dependencies": { - "@ipld/dag-cbor": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/@ipld/dag-cbor/-/dag-cbor-9.1.0.tgz", - "integrity": "sha512-7pMKjBaapEh+1Nk/1umPPhQGT6znb5E71lke2ekxlcuVZLLrPPdDSy0UAMwWgj3a28cjir/ZJ6CQH2DEs3DUOQ==", - "requires": { - "cborg": "^4.0.0", - "multiformats": "^13.0.0" - } - }, - "cborg": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/cborg/-/cborg-4.0.8.tgz", - "integrity": "sha512-/6QDK0Hw//cV4YNWZZjdIUMFNw0DZmb56jdVGJPwXP7874gSN0AMYqM07mVKpAm+6Nn7U8lvYFzPgBGatC+5xw==" - }, - "uint8arrays": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.0.1.tgz", - "integrity": "sha512-ND5RpJAnPgHmZT7hWD/2T4BwRp04j8NLKvMKC/7bhiEwEjUMkQ4kvBKiH6hOqbljd6qJ2xS8reL3vl1e33grOQ==", - "requires": { - "multiformats": "^13.0.0" - } - } - } - }, - "@didtools/codecs": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@didtools/codecs/-/codecs-3.0.0.tgz", - "integrity": "sha512-TemoVySZrs1XflMtOkwVTATtZEs42Mh2yk9SoYvBXES6Mz30PBJCm8v7U/2y1N5lrjb2cAPWs48Ryc7paetSxQ==", - "requires": { - "codeco": "^1.2.0", - "multiformats": "^13.0.0", - "uint8arrays": "^5.0.1" - }, - "dependencies": { - "uint8arrays": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.0.1.tgz", - "integrity": "sha512-ND5RpJAnPgHmZT7hWD/2T4BwRp04j8NLKvMKC/7bhiEwEjUMkQ4kvBKiH6hOqbljd6qJ2xS8reL3vl1e33grOQ==", - "requires": { - "multiformats": "^13.0.0" - } - } - } - }, - "@didtools/pkh-ethereum": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@didtools/pkh-ethereum/-/pkh-ethereum-0.2.1.tgz", - "integrity": "sha512-apQefbOqqy8HQMDNVG0ITxHLr9I5iZrjADX+mPB+ie1ue8MO8pOHMifLQ3j0R6RjS2einCd+hEZ4Ib4AKs3Xlw==", - "requires": { - "@didtools/cacao": "^2.0.0", - "@ethersproject/wallet": "^5.7.0", - "@stablelib/random": "^1.0.2", - "caip": "^1.1.0" - }, - "dependencies": { - "@didtools/cacao": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@didtools/cacao/-/cacao-2.1.0.tgz", - "integrity": "sha512-35gopj+mOmAlA3nHoHiYMvNMXJtbJDJnVpIlCf/Wf/+/x+uG9aIQefXfF35D6JuaTCZ0apabjpT2umL5h3EXcw==", - "requires": { - "@didtools/codecs": "^1.0.1", - "@didtools/siwx": "1.0.0", - "@ipld/dag-cbor": "^9.0.1", - "caip": "^1.1.0", - "multiformats": "^11.0.2", - "uint8arrays": "^4.0.3" - }, - "dependencies": { - "multiformats": { - "version": "11.0.2", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-11.0.2.tgz", - "integrity": "sha512-b5mYMkOkARIuVZCpvijFj9a6m5wMVLC7cf/jIPd5D/ARDOfLC5+IFkbgDXQgcU2goIsTD/O9NY4DI/Mt4OGvlg==" - } - } - }, - "@didtools/codecs": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@didtools/codecs/-/codecs-1.0.1.tgz", - "integrity": "sha512-6PYXOCX7mwVWUcudKQ3eW5LtI8v5esozazbf2q2F01PE+LoeEvTytvgU9FEspj4pATpq3hPx1eenX2uLirDJ8w==", - "requires": { - "codeco": "^1.1.0", - "multiformats": "^11.0.1", - "uint8arrays": "^4.0.3" - }, - "dependencies": { - "multiformats": { - "version": "11.0.2", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-11.0.2.tgz", - "integrity": "sha512-b5mYMkOkARIuVZCpvijFj9a6m5wMVLC7cf/jIPd5D/ARDOfLC5+IFkbgDXQgcU2goIsTD/O9NY4DI/Mt4OGvlg==" - } - } - }, - "@didtools/siwx": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@didtools/siwx/-/siwx-1.0.0.tgz", - "integrity": "sha512-b7sPDTNHdySoJ+Rp2p06x3rg1iTxI4yPTTA3PrPh40xcvFJ0K/YhdIb/Rzff13t92arcJ+VYGFhqtJorauV91g==", - "requires": { - "codeco": "^1.1.0" - } - }, - "@ipld/dag-cbor": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/@ipld/dag-cbor/-/dag-cbor-9.1.0.tgz", - "integrity": "sha512-7pMKjBaapEh+1Nk/1umPPhQGT6znb5E71lke2ekxlcuVZLLrPPdDSy0UAMwWgj3a28cjir/ZJ6CQH2DEs3DUOQ==", - "requires": { - "cborg": "^4.0.0", - "multiformats": "^13.0.0" - } - }, - "cborg": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/cborg/-/cborg-4.0.8.tgz", - "integrity": "sha512-/6QDK0Hw//cV4YNWZZjdIUMFNw0DZmb56jdVGJPwXP7874gSN0AMYqM07mVKpAm+6Nn7U8lvYFzPgBGatC+5xw==" - } - } - }, - "@didtools/pkh-solana": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@didtools/pkh-solana/-/pkh-solana-0.2.0.tgz", - "integrity": "sha512-wOfa+hbWo1ok8YnR8tq2mZKbcyEv9qrxtTR5jXOuhOqCkz30/qu9e2Wib/byx7Kx5/ik/2z1nd2YPL0vrA+TxQ==", - "requires": { - "@didtools/cacao": "^3.0.0", - "@noble/curves": "^1.2.0", - "@stablelib/random": "^1.0.2", - "caip": "^1.1.0", - "uint8arrays": "^5.0.1" - }, - "dependencies": { - "uint8arrays": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.0.1.tgz", - "integrity": "sha512-ND5RpJAnPgHmZT7hWD/2T4BwRp04j8NLKvMKC/7bhiEwEjUMkQ4kvBKiH6hOqbljd6qJ2xS8reL3vl1e33grOQ==", - "requires": { - "multiformats": "^13.0.0" - } - } - } - }, - "@didtools/pkh-stacks": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@didtools/pkh-stacks/-/pkh-stacks-0.2.0.tgz", - "integrity": "sha512-lXe8ZURCYCDQXrjaM7A4p1RCKrVsQ+NbO7bI70pRfjven82BPLDiqEJbhRGnWKbjQD1CQe9MJXLy3AuStKc7qw==", - "requires": { - "@didtools/cacao": "^3.0.0", - "@stablelib/random": "^1.0.2", - "@stacks/common": "^6.10.0", - "@stacks/encryption": "^6.10.0", - "@stacks/transactions": "^6.10.0", - "caip": "^1.1.0", - "jsontokens": "^4.0.1" - } - }, - "@didtools/pkh-tezos": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@didtools/pkh-tezos/-/pkh-tezos-0.3.0.tgz", - "integrity": "sha512-AB8drOnBkDSE9KolsiSShPwVOVbRXM2G5T//b+GgX9potVRTcRsD0z59x/6mU1e9g2kxpScOhjRrZsC0c+SQNw==", - "requires": { - "@didtools/cacao": "^3.0.0", - "@noble/curves": "^1.2.0", - "@noble/hashes": "^1.3.2", - "@stablelib/random": "^1.0.2", - "caip": "^1.1.0", - "uint8arrays": "^5.0.1" - }, - "dependencies": { - "uint8arrays": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.0.1.tgz", - "integrity": "sha512-ND5RpJAnPgHmZT7hWD/2T4BwRp04j8NLKvMKC/7bhiEwEjUMkQ4kvBKiH6hOqbljd6qJ2xS8reL3vl1e33grOQ==", - "requires": { - "multiformats": "^13.0.0" - } - } - } - }, - "@didtools/siwx": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@didtools/siwx/-/siwx-2.0.0.tgz", - "integrity": "sha512-eqBtI5dZrptXTCyadnhvU0di/KvumoByT7F8KB/8BLU7M1lltfEmvf/c5AnsyrWO9338ygCs2u5mKz1p1Zdj5A==", - "requires": { - "codeco": "^1.2.0" - } - }, - "@digitalbazaar/http-client": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/@digitalbazaar/http-client/-/http-client-3.4.1.tgz", - "integrity": "sha512-Ahk1N+s7urkgj7WvvUND5f8GiWEPfUw0D41hdElaqLgu8wZScI8gdI0q+qWw5N1d35x7GCRH2uk9mi+Uzo9M3g==", - "requires": { - "ky": "^0.33.3", - "ky-universal": "^0.11.0", - "undici": "^5.21.2" - } - }, - "@esbuild/aix-ppc64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz", - "integrity": "sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==", - "dev": true, - "optional": true - }, - "@esbuild/android-arm": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.12.tgz", - "integrity": "sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==", - "dev": true, - "optional": true - }, - "@esbuild/android-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz", - "integrity": "sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==", - "dev": true, - "optional": true - }, - "@esbuild/android-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.12.tgz", - "integrity": "sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==", - "dev": true, - "optional": true - }, - "@esbuild/darwin-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz", - "integrity": "sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==", - "dev": true, - "optional": true - }, - "@esbuild/darwin-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz", - "integrity": "sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==", - "dev": true, - "optional": true - }, - "@esbuild/freebsd-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz", - "integrity": "sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==", - "dev": true, - "optional": true - }, - "@esbuild/freebsd-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz", - "integrity": "sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==", - "dev": true, - "optional": true - }, - "@esbuild/linux-arm": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz", - "integrity": "sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==", - "dev": true, - "optional": true - }, - "@esbuild/linux-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz", - "integrity": "sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==", - "dev": true, - "optional": true - }, - "@esbuild/linux-ia32": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz", - "integrity": "sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==", - "dev": true, - "optional": true - }, - "@esbuild/linux-loong64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz", - "integrity": "sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==", - "dev": true, - "optional": true - }, - "@esbuild/linux-mips64el": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz", - "integrity": "sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==", - "dev": true, - "optional": true - }, - "@esbuild/linux-ppc64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz", - "integrity": "sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==", - "dev": true, - "optional": true - }, - "@esbuild/linux-riscv64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz", - "integrity": "sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==", - "dev": true, - "optional": true - }, - "@esbuild/linux-s390x": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz", - "integrity": "sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==", - "dev": true, - "optional": true - }, - "@esbuild/linux-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz", - "integrity": "sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==", - "dev": true, - "optional": true - }, - "@esbuild/netbsd-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz", - "integrity": "sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==", - "dev": true, - "optional": true - }, - "@esbuild/openbsd-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz", - "integrity": "sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==", - "dev": true, - "optional": true - }, - "@esbuild/sunos-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz", - "integrity": "sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==", - "dev": true, - "optional": true - }, - "@esbuild/win32-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz", - "integrity": "sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==", - "dev": true, - "optional": true - }, - "@esbuild/win32-ia32": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz", - "integrity": "sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==", - "dev": true, - "optional": true - }, - "@esbuild/win32-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz", - "integrity": "sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==", - "dev": true, - "optional": true - }, - "@ethersproject/abi": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.7.0.tgz", - "integrity": "sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA==", - "requires": { - "@ethersproject/address": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/hash": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/strings": "^5.7.0" - } - }, - "@ethersproject/abstract-provider": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz", - "integrity": "sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==", - "requires": { - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/networks": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/transactions": "^5.7.0", - "@ethersproject/web": "^5.7.0" - } - }, - "@ethersproject/abstract-signer": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz", - "integrity": "sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==", - "requires": { - "@ethersproject/abstract-provider": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0" - } - }, - "@ethersproject/address": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.7.0.tgz", - "integrity": "sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==", - "requires": { - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/rlp": "^5.7.0" - } - }, - "@ethersproject/base64": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.7.0.tgz", - "integrity": "sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==", - "requires": { - "@ethersproject/bytes": "^5.7.0" - } - }, - "@ethersproject/basex": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.7.0.tgz", - "integrity": "sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw==", - "requires": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/properties": "^5.7.0" - } - }, - "@ethersproject/bignumber": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz", - "integrity": "sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==", - "requires": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "bn.js": "^5.2.1" - } - }, - "@ethersproject/bytes": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz", - "integrity": "sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==", - "requires": { - "@ethersproject/logger": "^5.7.0" - } - }, - "@ethersproject/constants": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz", - "integrity": "sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==", - "requires": { - "@ethersproject/bignumber": "^5.7.0" - } - }, - "@ethersproject/contracts": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.7.0.tgz", - "integrity": "sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg==", - "requires": { - "@ethersproject/abi": "^5.7.0", - "@ethersproject/abstract-provider": "^5.7.0", - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/address": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/transactions": "^5.7.0" - } - }, - "@ethersproject/hash": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.7.0.tgz", - "integrity": "sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==", - "requires": { - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/address": "^5.7.0", - "@ethersproject/base64": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/strings": "^5.7.0" - } - }, - "@ethersproject/hdnode": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.7.0.tgz", - "integrity": "sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg==", - "requires": { - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/basex": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/pbkdf2": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/sha2": "^5.7.0", - "@ethersproject/signing-key": "^5.7.0", - "@ethersproject/strings": "^5.7.0", - "@ethersproject/transactions": "^5.7.0", - "@ethersproject/wordlists": "^5.7.0" - } - }, - "@ethersproject/json-wallets": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz", - "integrity": "sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g==", - "requires": { - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/address": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/hdnode": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/pbkdf2": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/random": "^5.7.0", - "@ethersproject/strings": "^5.7.0", - "@ethersproject/transactions": "^5.7.0", - "aes-js": "3.0.0", - "scrypt-js": "3.0.1" - } - }, - "@ethersproject/keccak256": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz", - "integrity": "sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==", - "requires": { - "@ethersproject/bytes": "^5.7.0", - "js-sha3": "0.8.0" - } - }, - "@ethersproject/logger": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz", - "integrity": "sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==" - }, - "@ethersproject/networks": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz", - "integrity": "sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==", - "requires": { - "@ethersproject/logger": "^5.7.0" - } - }, - "@ethersproject/pbkdf2": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz", - "integrity": "sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw==", - "requires": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/sha2": "^5.7.0" - } - }, - "@ethersproject/properties": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz", - "integrity": "sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==", - "requires": { - "@ethersproject/logger": "^5.7.0" - } - }, - "@ethersproject/providers": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.7.2.tgz", - "integrity": "sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg==", - "requires": { - "@ethersproject/abstract-provider": "^5.7.0", - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/address": "^5.7.0", - "@ethersproject/base64": "^5.7.0", - "@ethersproject/basex": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/hash": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/networks": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/random": "^5.7.0", - "@ethersproject/rlp": "^5.7.0", - "@ethersproject/sha2": "^5.7.0", - "@ethersproject/strings": "^5.7.0", - "@ethersproject/transactions": "^5.7.0", - "@ethersproject/web": "^5.7.0", - "bech32": "1.1.4", - "ws": "7.4.6" - } - }, - "@ethersproject/random": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.7.0.tgz", - "integrity": "sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ==", - "requires": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0" - } - }, - "@ethersproject/rlp": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.7.0.tgz", - "integrity": "sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==", - "requires": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0" - } - }, - "@ethersproject/sha2": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.7.0.tgz", - "integrity": "sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw==", - "requires": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "hash.js": "1.1.7" - } - }, - "@ethersproject/signing-key": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.7.0.tgz", - "integrity": "sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==", - "requires": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "bn.js": "^5.2.1", - "elliptic": "6.5.4", - "hash.js": "1.1.7" - } - }, - "@ethersproject/solidity": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.7.0.tgz", - "integrity": "sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA==", - "requires": { - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/sha2": "^5.7.0", - "@ethersproject/strings": "^5.7.0" - } - }, - "@ethersproject/strings": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz", - "integrity": "sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==", - "requires": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/logger": "^5.7.0" - } - }, - "@ethersproject/transactions": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz", - "integrity": "sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==", - "requires": { - "@ethersproject/address": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/rlp": "^5.7.0", - "@ethersproject/signing-key": "^5.7.0" - } - }, - "@ethersproject/units": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.7.0.tgz", - "integrity": "sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg==", - "requires": { - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/logger": "^5.7.0" - } - }, - "@ethersproject/wallet": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.7.0.tgz", - "integrity": "sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA==", - "requires": { - "@ethersproject/abstract-provider": "^5.7.0", - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/address": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/hash": "^5.7.0", - "@ethersproject/hdnode": "^5.7.0", - "@ethersproject/json-wallets": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/random": "^5.7.0", - "@ethersproject/signing-key": "^5.7.0", - "@ethersproject/transactions": "^5.7.0", - "@ethersproject/wordlists": "^5.7.0" - } - }, - "@ethersproject/web": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz", - "integrity": "sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==", - "requires": { - "@ethersproject/base64": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/strings": "^5.7.0" - } - }, - "@ethersproject/wordlists": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.7.0.tgz", - "integrity": "sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA==", - "requires": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/hash": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/strings": "^5.7.0" - } - }, - "@fastify/busboy": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.0.tgz", - "integrity": "sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA==" - }, - "@graphql-tools/batch-delegate": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/batch-delegate/-/batch-delegate-9.0.0.tgz", - "integrity": "sha512-23NmxcHQeKcfhMQyrRPTZfW4/+bSpAyR/qAhRjx+/hikDIa1Uv2XVgV9jIitSgM0OEk/KGPB4VQv+LCOWvAYiw==", - "requires": { - "@graphql-tools/delegate": "^10.0.0", - "@graphql-tools/utils": "^10.0.0", - "dataloader": "2.2.2", - "tslib": "^2.4.0", - "value-or-promise": "^1.0.12" - } - }, - "@graphql-tools/batch-execute": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/@graphql-tools/batch-execute/-/batch-execute-9.0.2.tgz", - "integrity": "sha512-Y2uwdZI6ZnatopD/SYfZ1eGuQFI7OU2KGZ2/B/7G9ISmgMl5K+ZZWz/PfIEXeiHirIDhyk54s4uka5rj2xwKqQ==", - "requires": { - "@graphql-tools/utils": "^10.0.5", - "dataloader": "^2.2.2", - "tslib": "^2.4.0", - "value-or-promise": "^1.0.12" - } - }, - "@graphql-tools/delegate": { - "version": "10.0.3", - "resolved": "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-10.0.3.tgz", - "integrity": "sha512-Jor9oazZ07zuWkykD3OOhT/2XD74Zm6Ar0ENZMk75MDD51wB2UWUIMljtHxbJhV5A6UBC2v8x6iY0xdCGiIlyw==", - "requires": { - "@graphql-tools/batch-execute": "^9.0.1", - "@graphql-tools/executor": "^1.0.0", - "@graphql-tools/schema": "^10.0.0", - "@graphql-tools/utils": "^10.0.5", - "dataloader": "^2.2.2", - "tslib": "^2.5.0" - } - }, - "@graphql-tools/executor": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/executor/-/executor-1.2.0.tgz", - "integrity": "sha512-SKlIcMA71Dha5JnEWlw4XxcaJ+YupuXg0QCZgl2TOLFz4SkGCwU/geAsJvUJFwK2RbVLpQv/UMq67lOaBuwDtg==", - "requires": { - "@graphql-tools/utils": "^10.0.0", - "@graphql-typed-document-node/core": "3.2.0", - "@repeaterjs/repeater": "^3.0.4", - "tslib": "^2.4.0", - "value-or-promise": "^1.0.12" - } - }, - "@graphql-tools/merge": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-9.0.1.tgz", - "integrity": "sha512-hIEExWO9fjA6vzsVjJ3s0cCQ+Q/BEeMVJZtMXd7nbaVefVy0YDyYlEkeoYYNV3NVVvu1G9lr6DM1Qd0DGo9Caw==", - "requires": { - "@graphql-tools/utils": "^10.0.10", - "tslib": "^2.4.0" - } - }, - "@graphql-tools/schema": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-10.0.2.tgz", - "integrity": "sha512-TbPsIZnWyDCLhgPGnDjt4hosiNU2mF/rNtSk5BVaXWnZqvKJ6gzJV4fcHcvhRIwtscDMW2/YTnK6dLVnk8pc4w==", - "requires": { - "@graphql-tools/merge": "^9.0.1", - "@graphql-tools/utils": "^10.0.10", - "tslib": "^2.4.0", - "value-or-promise": "^1.0.12" - } - }, - "@graphql-tools/stitch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/@graphql-tools/stitch/-/stitch-9.0.3.tgz", - "integrity": "sha512-G03XahiHDu1pnaS8z2GNfsV/5BribMEUATT5dCHBAqj13Te5y1amZNQePrmw8DLtbf5qDbU6CO7kGHPxv0XO9A==", - "requires": { - "@graphql-tools/batch-delegate": "^9.0.0", - "@graphql-tools/delegate": "^10.0.1", - "@graphql-tools/executor": "^1.0.0", - "@graphql-tools/merge": "^9.0.0", - "@graphql-tools/schema": "^10.0.0", - "@graphql-tools/utils": "^10.0.0", - "@graphql-tools/wrap": "^10.0.0", - "tslib": "^2.4.0", - "value-or-promise": "^1.0.11" - } - }, - "@graphql-tools/utils": { - "version": "10.0.13", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-10.0.13.tgz", - "integrity": "sha512-fMILwGr5Dm2zefNItjQ6C2rauigklv69LIwppccICuGTnGaOp3DspLt/6Lxj72cbg5d9z60Sr+Egco3CJKLsNg==", - "requires": { - "@graphql-typed-document-node/core": "^3.1.1", - "cross-inspect": "1.0.0", - "dset": "^3.1.2", - "tslib": "^2.4.0" - } - }, - "@graphql-tools/wrap": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/wrap/-/wrap-10.0.1.tgz", - "integrity": "sha512-Cw6hVrKGM2OKBXeuAGltgy4tzuqQE0Nt7t/uAqnuokSXZhMHXJUb124Bnvxc2gPZn5chfJSDafDe4Cp8ZAVJgg==", - "requires": { - "@graphql-tools/delegate": "^10.0.3", - "@graphql-tools/schema": "^10.0.0", - "@graphql-tools/utils": "^10.0.0", - "tslib": "^2.4.0", - "value-or-promise": "^1.0.12" - } - }, - "@graphql-typed-document-node/core": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz", - "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==", - "requires": {} - }, - "@ipld/dag-cbor": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/@ipld/dag-cbor/-/dag-cbor-7.0.3.tgz", - "integrity": "sha512-1VVh2huHsuohdXC1bGJNE8WR72slZ9XE2T3wbBBq31dm7ZBatmKLLxrB+XAqafxfRFjv08RZmj/W/ZqaM13AuA==", - "requires": { - "cborg": "^1.6.0", - "multiformats": "^9.5.4" - }, - "dependencies": { - "multiformats": { - "version": "9.9.0", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.9.0.tgz", - "integrity": "sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==" - } - } - }, - "@jest/schemas": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", - "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", - "dev": true, - "requires": { - "@sinclair/typebox": "^0.27.8" - } - }, - "@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true - }, - "@multiformats/base-x": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@multiformats/base-x/-/base-x-4.0.1.tgz", - "integrity": "sha512-eMk0b9ReBbV23xXU693TAIrLyeO5iTgBZGSJfpqriG8UkYvr/hC9u9pyMlAakDNHWmbhMZCDs6KQO0jzKD8OTw==" - }, - "@noble/ciphers": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@noble/ciphers/-/ciphers-0.4.1.tgz", - "integrity": "sha512-QCOA9cgf3Rc33owG0AYBB9wszz+Ul2kramWN8tXG44Gyciud/tbkEqvxRF/IpqQaBpRBNi9f4jdNxqB2CQCIXg==" - }, - "@noble/curves": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.3.0.tgz", - "integrity": "sha512-t01iSXPuN+Eqzb4eBX0S5oubSqXbK/xXa1Ne18Hj8f9pStxztHCE2gfboSp/dZRLSqfuLpRK2nDXDK+W9puocA==", - "requires": { - "@noble/hashes": "1.3.3" - } - }, - "@noble/hashes": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.3.tgz", - "integrity": "sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA==" - }, - "@noble/secp256k1": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.1.tgz", - "integrity": "sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==" - }, - "@openzeppelin/contracts": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-4.9.5.tgz", - "integrity": "sha512-ZK+W5mVhRppff9BE6YdR8CC52C8zAvsVAiWhEtQ5+oNxFE6h1WdeWo+FJSF8KKvtxxVYZ7MTP/5KoVpAU3aSWg==", - "dev": true - }, - "@repeaterjs/repeater": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@repeaterjs/repeater/-/repeater-3.0.5.tgz", - "integrity": "sha512-l3YHBLAol6d/IKnB9LhpD0cEZWAoe3eFKUyTYWmFmCO2Q/WOckxLQAUyMZWwZV2M/m3+4vgRoaolFqaII82/TA==" - }, - "@rollup/rollup-android-arm-eabi": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.9.6.tgz", - "integrity": "sha512-MVNXSSYN6QXOulbHpLMKYi60ppyO13W9my1qogeiAqtjb2yR4LSmfU2+POvDkLzhjYLXz9Rf9+9a3zFHW1Lecg==", - "dev": true, - "optional": true - }, - "@rollup/rollup-android-arm64": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.9.6.tgz", - "integrity": "sha512-T14aNLpqJ5wzKNf5jEDpv5zgyIqcpn1MlwCrUXLrwoADr2RkWA0vOWP4XxbO9aiO3dvMCQICZdKeDrFl7UMClw==", - "dev": true, - "optional": true - }, - "@rollup/rollup-darwin-arm64": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.9.6.tgz", - "integrity": "sha512-CqNNAyhRkTbo8VVZ5R85X73H3R5NX9ONnKbXuHisGWC0qRbTTxnF1U4V9NafzJbgGM0sHZpdO83pLPzq8uOZFw==", - "dev": true, - "optional": true - }, - "@rollup/rollup-darwin-x64": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.9.6.tgz", - "integrity": "sha512-zRDtdJuRvA1dc9Mp6BWYqAsU5oeLixdfUvkTHuiYOHwqYuQ4YgSmi6+/lPvSsqc/I0Omw3DdICx4Tfacdzmhog==", - "dev": true, - "optional": true - }, - "@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.9.6.tgz", - "integrity": "sha512-oNk8YXDDnNyG4qlNb6is1ojTOGL/tRhbbKeE/YuccItzerEZT68Z9gHrY3ROh7axDc974+zYAPxK5SH0j/G+QQ==", - "dev": true, - "optional": true - }, - "@rollup/rollup-linux-arm64-gnu": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.9.6.tgz", - "integrity": "sha512-Z3O60yxPtuCYobrtzjo0wlmvDdx2qZfeAWTyfOjEDqd08kthDKexLpV97KfAeUXPosENKd8uyJMRDfFMxcYkDQ==", - "dev": true, - "optional": true - }, - "@rollup/rollup-linux-arm64-musl": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.9.6.tgz", - "integrity": "sha512-gpiG0qQJNdYEVad+1iAsGAbgAnZ8j07FapmnIAQgODKcOTjLEWM9sRb+MbQyVsYCnA0Im6M6QIq6ax7liws6eQ==", - "dev": true, - "optional": true - }, - "@rollup/rollup-linux-riscv64-gnu": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.9.6.tgz", - "integrity": "sha512-+uCOcvVmFUYvVDr27aiyun9WgZk0tXe7ThuzoUTAukZJOwS5MrGbmSlNOhx1j80GdpqbOty05XqSl5w4dQvcOA==", - "dev": true, - "optional": true - }, - "@rollup/rollup-linux-x64-gnu": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.9.6.tgz", - "integrity": "sha512-HUNqM32dGzfBKuaDUBqFB7tP6VMN74eLZ33Q9Y1TBqRDn+qDonkAUyKWwF9BR9unV7QUzffLnz9GrnKvMqC/fw==", - "dev": true, - "optional": true - }, - "@rollup/rollup-linux-x64-musl": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.9.6.tgz", - "integrity": "sha512-ch7M+9Tr5R4FK40FHQk8VnML0Szi2KRujUgHXd/HjuH9ifH72GUmw6lStZBo3c3GB82vHa0ZoUfjfcM7JiiMrQ==", - "dev": true, - "optional": true - }, - "@rollup/rollup-win32-arm64-msvc": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.9.6.tgz", - "integrity": "sha512-VD6qnR99dhmTQ1mJhIzXsRcTBvTjbfbGGwKAHcu+52cVl15AC/kplkhxzW/uT0Xl62Y/meBKDZvoJSJN+vTeGA==", - "dev": true, - "optional": true - }, - "@rollup/rollup-win32-ia32-msvc": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.9.6.tgz", - "integrity": "sha512-J9AFDq/xiRI58eR2NIDfyVmTYGyIZmRcvcAoJ48oDld/NTR8wyiPUu2X/v1navJ+N/FGg68LEbX3Ejd6l8B7MQ==", - "dev": true, - "optional": true - }, - "@rollup/rollup-win32-x64-msvc": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.9.6.tgz", - "integrity": "sha512-jqzNLhNDvIZOrt69Ce4UjGRpXJBzhUBzawMwnaDAwyHriki3XollsewxWzOzz+4yOFDkuJHtTsZFwMxhYJWmLQ==", - "dev": true, - "optional": true - }, - "@scarf/scarf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@scarf/scarf/-/scarf-1.3.0.tgz", - "integrity": "sha512-lHKK8M5CTcpFj2hZDB3wIjb0KAbEOgDmiJGDv1WBRfQgRm/a8/XMEkG/N1iM01xgbUDsPQwi42D+dFo1XPAKew==" - }, - "@scure/base": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.5.tgz", - "integrity": "sha512-Brj9FiG2W1MRQSTB212YVPRrcbjkv48FoZi/u4l/zds/ieRrqsh7aUf6CLwkAq61oKXr/ZlTzlY66gLIj3TFTQ==" - }, - "@scure/bip32": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.3.2.tgz", - "integrity": "sha512-N1ZhksgwD3OBlwTv3R6KFEcPojl/W4ElJOeCZdi+vuI5QmTFwLq3OFf2zd2ROpKvxFdgZ6hUpb0dx9bVNEwYCA==", - "requires": { - "@noble/curves": "~1.2.0", - "@noble/hashes": "~1.3.2", - "@scure/base": "~1.1.2" - }, - "dependencies": { - "@noble/curves": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz", - "integrity": "sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==", - "requires": { - "@noble/hashes": "1.3.2" - } - }, - "@noble/hashes": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", - "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==" - } - } - }, - "@scure/bip39": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.1.0.tgz", - "integrity": "sha512-pwrPOS16VeTKg98dYXQyIjJEcWfz7/1YJIwxUEPFfQPtc86Ym/1sVgQ2RLoD43AazMk2l/unK4ITySSpW2+82w==", - "requires": { - "@noble/hashes": "~1.1.1", - "@scure/base": "~1.1.0" - }, - "dependencies": { - "@noble/hashes": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.5.tgz", - "integrity": "sha512-LTMZiiLc+V4v1Yi16TD6aX2gmtKszNye0pQgbaLqkvhIqP7nVsSaJsWloGQjJfJ8offaoP5GtX3yY5swbcJxxQ==" - } - } - }, - "@sinclair/typebox": { - "version": "0.27.8", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", - "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", - "dev": true - }, - "@stablelib/binary": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/binary/-/binary-1.0.1.tgz", - "integrity": "sha512-ClJWvmL6UBM/wjkvv/7m5VP3GMr9t0osr4yVgLZsLCOz4hGN9gIAFEqnJ0TsSMAN+n840nf2cHZnA5/KFqHC7Q==", - "requires": { - "@stablelib/int": "^1.0.1" - } - }, - "@stablelib/ed25519": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@stablelib/ed25519/-/ed25519-1.0.3.tgz", - "integrity": "sha512-puIMWaX9QlRsbhxfDc5i+mNPMY+0TmQEskunY1rZEBPi1acBCVQAhnsk/1Hk50DGPtVsZtAWQg4NHGlVaO9Hqg==", - "requires": { - "@stablelib/random": "^1.0.2", - "@stablelib/sha512": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "@stablelib/hash": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/hash/-/hash-1.0.1.tgz", - "integrity": "sha512-eTPJc/stDkdtOcrNMZ6mcMK1e6yBbqRBaNW55XA1jU8w/7QdnCF0CmMmOD1m7VSkBR44PWrMHU2l6r8YEQHMgg==" - }, - "@stablelib/int": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/int/-/int-1.0.1.tgz", - "integrity": "sha512-byr69X/sDtDiIjIV6m4roLVWnNNlRGzsvxw+agj8CIEazqWGOQp2dTYgQhtyVXV9wpO6WyXRQUzLV/JRNumT2w==" - }, - "@stablelib/random": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@stablelib/random/-/random-1.0.2.tgz", - "integrity": "sha512-rIsE83Xpb7clHPVRlBj8qNe5L8ISQOzjghYQm/dZ7VaM2KHYwMW5adjQjrzTZCchFnNCNhkwtnOBa9HTMJCI8w==", - "requires": { - "@stablelib/binary": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "@stablelib/sha256": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/sha256/-/sha256-1.0.1.tgz", - "integrity": "sha512-GIIH3e6KH+91FqGV42Kcj71Uefd/QEe7Dy42sBTeqppXV95ggCcxLTk39bEr+lZfJmp+ghsR07J++ORkRELsBQ==", - "requires": { - "@stablelib/binary": "^1.0.1", - "@stablelib/hash": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "@stablelib/sha512": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/sha512/-/sha512-1.0.1.tgz", - "integrity": "sha512-13gl/iawHV9zvDKciLo1fQ8Bgn2Pvf7OV6amaRVKiq3pjQ3UmEpXxWiAfV8tYjUpeZroBxtyrwtdooQT/i3hzw==", - "requires": { - "@stablelib/binary": "^1.0.1", - "@stablelib/hash": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "@stablelib/wipe": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/wipe/-/wipe-1.0.1.tgz", - "integrity": "sha512-WfqfX/eXGiAd3RJe4VU2snh/ZPwtSjLG4ynQ/vYzvghTh7dHFcI1wl+nrkWG6lGhukOxOsUHfv8dUXr58D0ayg==" - }, - "@stacks/common": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/@stacks/common/-/common-6.10.0.tgz", - "integrity": "sha512-6x5Z7AKd9/kj3+DYE9xIDIkFLHihBH614i2wqrZIjN02WxVo063hWSjIlUxlx8P4gl6olVzlOy5LzhLJD9OP0A==", - "requires": { - "@types/bn.js": "^5.1.0", - "@types/node": "^18.0.4" - }, - "dependencies": { - "@types/node": { - "version": "18.19.14", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.14.tgz", - "integrity": "sha512-EnQ4Us2rmOS64nHDWr0XqAD8DsO6f3XR6lf9UIIrZQpUzPVdN/oPuEzfDWNHSyXLvoGgjuEm/sPwFGSSs35Wtg==", - "requires": { - "undici-types": "~5.26.4" - } - } - } - }, - "@stacks/encryption": { - "version": "6.11.3", - "resolved": "https://registry.npmjs.org/@stacks/encryption/-/encryption-6.11.3.tgz", - "integrity": "sha512-nUA/21L8NnCw1vPetczWz3fjBCleqRgYfNGJX98AIDs9sjRQkxUfUGYz+3PlbpYgHWHIeRZafitQhMRpVhsbkQ==", - "requires": { - "@noble/hashes": "1.1.5", - "@noble/secp256k1": "1.7.1", - "@scure/bip39": "1.1.0", - "@stacks/common": "^6.10.0", - "@types/node": "^18.0.4", - "base64-js": "^1.5.1", - "bs58": "^5.0.0", - "ripemd160-min": "^0.0.6", - "varuint-bitcoin": "^1.1.2" - }, - "dependencies": { - "@noble/hashes": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.5.tgz", - "integrity": "sha512-LTMZiiLc+V4v1Yi16TD6aX2gmtKszNye0pQgbaLqkvhIqP7nVsSaJsWloGQjJfJ8offaoP5GtX3yY5swbcJxxQ==" - }, - "@types/node": { - "version": "18.19.14", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.14.tgz", - "integrity": "sha512-EnQ4Us2rmOS64nHDWr0XqAD8DsO6f3XR6lf9UIIrZQpUzPVdN/oPuEzfDWNHSyXLvoGgjuEm/sPwFGSSs35Wtg==", - "requires": { - "undici-types": "~5.26.4" - } - } - } - }, - "@stacks/network": { - "version": "6.11.3", - "resolved": "https://registry.npmjs.org/@stacks/network/-/network-6.11.3.tgz", - "integrity": "sha512-c4ClCU/QUwuu8NbHtDKPJNa0M5YxauLN3vYaR0+S4awbhVIKFQSxirm9Q9ckV1WBh7FtD6u2S0x+tDQGAODjNg==", - "requires": { - "@stacks/common": "^6.10.0", - "cross-fetch": "^3.1.5" - } - }, - "@stacks/transactions": { - "version": "6.11.3", - "resolved": "https://registry.npmjs.org/@stacks/transactions/-/transactions-6.11.3.tgz", - "integrity": "sha512-Zb7ONYt8OJPTTdXQHobWqZ2mwTALpGt43PEsy2FpDgQzOodGk1lWDo1Jhzs3hhw/2ib5FE3iDMc6jptKe9miCg==", - "requires": { - "@noble/hashes": "1.1.5", - "@noble/secp256k1": "1.7.1", - "@stacks/common": "^6.10.0", - "@stacks/network": "^6.11.3", - "c32check": "^2.0.0", - "lodash.clonedeep": "^4.5.0" - }, - "dependencies": { - "@noble/hashes": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.5.tgz", - "integrity": "sha512-LTMZiiLc+V4v1Yi16TD6aX2gmtKszNye0pQgbaLqkvhIqP7nVsSaJsWloGQjJfJ8offaoP5GtX3yY5swbcJxxQ==" - } - } - }, - "@types/bn.js": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.5.tgz", - "integrity": "sha512-V46N0zwKRF5Q00AZ6hWtN0T8gGmDUaUzLWQvHFo5yThtVwK/VCenFY3wXVbOvNfajEpsTfQM4IN9k/d6gUVX3A==", - "requires": { - "@types/node": "*" - } - }, - "@types/estree": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", - "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", - "dev": true - }, - "@types/mime-types": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@types/mime-types/-/mime-types-2.1.4.tgz", - "integrity": "sha512-lfU4b34HOri+kAY5UheuFMWPDOI+OPceBSHZKp69gEyTL/mmJ4cnU6Y/rlme3UL3GyOn6Y42hyIEw0/q8sWx5w==", - "dev": true - }, - "@types/node": { - "version": "20.11.5", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.5.tgz", - "integrity": "sha512-g557vgQjUUfN76MZAN/dt1z3dzcUsimuysco0KeluHgrPdJXkP/XdAURgyO2W9fZWHRtRBiVKzKn8vyOAwlG+w==", - "requires": { - "undici-types": "~5.26.4" - } - }, - "@vitest/expect": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-1.2.1.tgz", - "integrity": "sha512-/bqGXcHfyKgFWYwIgFr1QYDaR9e64pRKxgBNWNXPefPFRhgm+K3+a/dS0cUGEreWngets3dlr8w8SBRw2fCfFQ==", - "dev": true, - "requires": { - "@vitest/spy": "1.2.1", - "@vitest/utils": "1.2.1", - "chai": "^4.3.10" - } - }, - "@vitest/runner": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-1.2.1.tgz", - "integrity": "sha512-zc2dP5LQpzNzbpaBt7OeYAvmIsRS1KpZQw4G3WM/yqSV1cQKNKwLGmnm79GyZZjMhQGlRcSFMImLjZaUQvNVZQ==", - "dev": true, - "requires": { - "@vitest/utils": "1.2.1", - "p-limit": "^5.0.0", - "pathe": "^1.1.1" - } - }, - "@vitest/snapshot": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-1.2.1.tgz", - "integrity": "sha512-Tmp/IcYEemKaqAYCS08sh0vORLJkMr0NRV76Gl8sHGxXT5151cITJCET20063wk0Yr/1koQ6dnmP6eEqezmd/Q==", - "dev": true, - "requires": { - "magic-string": "^0.30.5", - "pathe": "^1.1.1", - "pretty-format": "^29.7.0" - } - }, - "@vitest/spy": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-1.2.1.tgz", - "integrity": "sha512-vG3a/b7INKH7L49Lbp0IWrG6sw9j4waWAucwnksPB1r1FTJgV7nkBByd9ufzu6VWya/QTvQW4V9FShZbZIB2UQ==", - "dev": true, - "requires": { - "tinyspy": "^2.2.0" - } - }, - "@vitest/utils": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-1.2.1.tgz", - "integrity": "sha512-bsH6WVZYe/J2v3+81M5LDU8kW76xWObKIURpPrOXm2pjBniBu2MERI/XP60GpS4PHU3jyK50LUutOwrx4CyHUg==", - "dev": true, - "requires": { - "diff-sequences": "^29.6.3", - "estree-walker": "^3.0.3", - "loupe": "^2.3.7", - "pretty-format": "^29.7.0" - } - }, - "abitype": { - "version": "0.9.8", - "resolved": "https://registry.npmjs.org/abitype/-/abitype-0.9.8.tgz", - "integrity": "sha512-puLifILdm+8sjyss4S+fsUN09obiT1g2YW6CtcQF+QDzxR0euzgEB29MZujC6zMk2a6SVmtttq1fc6+YFA7WYQ==", - "requires": {} - }, - "abort-controller": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", - "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", - "requires": { - "event-target-shim": "^5.0.0" - } - }, - "acorn": { - "version": "8.11.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", - "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", - "dev": true - }, - "acorn-walk": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz", - "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==", - "dev": true - }, - "aes-js": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", - "integrity": "sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==" - }, - "ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", - "requires": { - "ajv": "^8.0.0" - } - }, - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - }, - "assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", - "dev": true - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" - }, - "axios": { - "version": "1.6.5", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.5.tgz", - "integrity": "sha512-Ii012v05KEVuUoFWmMW/UQv9aRIc3ZwkWDcM+h5Il8izZCtRVpDUfwpoFf7eOtajT3QiGR4yDUx7lPqHJULgbg==", - "requires": { - "follow-redirects": "^1.15.4", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - } - }, - "base-x": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.0.tgz", - "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==" - }, - "base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" - }, - "bech32": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", - "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==" - }, - "bigint-mod-arith": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/bigint-mod-arith/-/bigint-mod-arith-3.3.1.tgz", - "integrity": "sha512-pX/cYW3dCa87Jrzv6DAr8ivbbJRzEX5yGhdt8IutnX/PCIXfpx+mabWNK/M8qqh+zQ0J3thftUBHW0ByuUlG0w==" - }, - "bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" - }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==" - }, - "bs58": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-5.0.0.tgz", - "integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==", - "requires": { - "base-x": "^4.0.0" - } - }, - "buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "c32check": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/c32check/-/c32check-2.0.0.tgz", - "integrity": "sha512-rpwfAcS/CMqo0oCqDf3r9eeLgScRE3l/xHDCXhM3UyrfvIn7PrLq63uHh7yYbv8NzaZn5MVsVhIRpQ+5GZ5HyA==", - "requires": { - "@noble/hashes": "^1.1.2", - "base-x": "^4.0.0" - } - }, - "cac": { - "version": "6.7.14", - "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", - "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", - "dev": true - }, - "caip": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/caip/-/caip-1.1.0.tgz", - "integrity": "sha512-yOO3Fu4ygyKYAdznuoaqschMKIZzcdgyMpBNtrIfrUhnOeaOWG+dh0c13wcOS6B/46IGGbncoyzJlio79jU7rw==" - }, - "canonicalize": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/canonicalize/-/canonicalize-1.0.8.tgz", - "integrity": "sha512-0CNTVCLZggSh7bc5VkX5WWPWO+cyZbNd07IHIsSXLia/eAq+r836hgk+8BKoEh7949Mda87VUOitx5OddVj64A==" - }, - "cartonne": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/cartonne/-/cartonne-3.0.1.tgz", - "integrity": "sha512-Y8DH//DthEUbfvOMGYj/9K3F1RcWkiVu2dB9tGkiBnMqojAXTpu+TUs9FNNx202H0TQdJgbPsQl7Q6NuJ48dCw==", - "requires": { - "@ipld/dag-cbor": "^9.0.7", - "multiformats": "^13.0.0", - "multihashes-sync": "^2.0.0", - "varintes": "^2.0.5" - }, - "dependencies": { - "@ipld/dag-cbor": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/@ipld/dag-cbor/-/dag-cbor-9.1.0.tgz", - "integrity": "sha512-7pMKjBaapEh+1Nk/1umPPhQGT6znb5E71lke2ekxlcuVZLLrPPdDSy0UAMwWgj3a28cjir/ZJ6CQH2DEs3DUOQ==", - "requires": { - "cborg": "^4.0.0", - "multiformats": "^13.0.0" - } - }, - "cborg": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/cborg/-/cborg-4.0.8.tgz", - "integrity": "sha512-/6QDK0Hw//cV4YNWZZjdIUMFNw0DZmb56jdVGJPwXP7874gSN0AMYqM07mVKpAm+6Nn7U8lvYFzPgBGatC+5xw==" - } - } - }, - "cborg": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/cborg/-/cborg-1.10.2.tgz", - "integrity": "sha512-b3tFPA9pUr2zCUiCfRd2+wok2/LBSNUMKOuRRok+WlvvAgEt/PlbgPTsZUcwCOs53IJvLgTp0eotwtosE6njug==" - }, - "chai": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.4.1.tgz", - "integrity": "sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==", - "dev": true, - "requires": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.3", - "deep-eql": "^4.1.3", - "get-func-name": "^2.0.2", - "loupe": "^2.3.6", - "pathval": "^1.1.1", - "type-detect": "^4.0.8" - } - }, - "check-error": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", - "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", - "dev": true, - "requires": { - "get-func-name": "^2.0.2" - } - }, - "cids": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/cids/-/cids-1.1.9.tgz", - "integrity": "sha512-l11hWRfugIcbGuTZwAM5PwpjPPjyb6UZOGwlHSnOBV5o07XhQ4gNpBN67FbODvpjyHtd+0Xs6KNvUcGBiDRsdg==", - "dev": true, - "requires": { - "multibase": "^4.0.1", - "multicodec": "^3.0.1", - "multihashes": "^4.0.1", - "uint8arrays": "^3.0.0" - }, - "dependencies": { - "multiformats": { - "version": "9.9.0", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.9.0.tgz", - "integrity": "sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==", - "dev": true - }, - "uint8arrays": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.1.tgz", - "integrity": "sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg==", - "dev": true, - "requires": { - "multiformats": "^9.4.2" - } - } - } - }, - "codeco": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/codeco/-/codeco-1.2.0.tgz", - "integrity": "sha512-SHTBW7QsiDtHGqEyhX10gZesmWlWV00gXteFyU2xLqyZmy658/+HlPyXG5EvY05+csQNWjBIfGg2mZrklR1RtQ==" - }, - "colors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.3.0.tgz", - "integrity": "sha512-EDpX3a7wHMWFA7PUHWPHNWqOxIIRSJetuwl0AS5Oi/5FMV8kWm69RTlgm00GKjBO1xFHMtBbL49yRtMMdticBw==" - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "cross-fetch": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.8.tgz", - "integrity": "sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==", - "requires": { - "node-fetch": "^2.6.12" - }, - "dependencies": { - "node-fetch": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", - "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", - "requires": { - "whatwg-url": "^5.0.0" - } - } - } - }, - "cross-inspect": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/cross-inspect/-/cross-inspect-1.0.0.tgz", - "integrity": "sha512-4PFfn4b5ZN6FMNGSZlyb7wUhuN8wvj8t/VQHZdM4JsDcruGJ8L2kf9zao98QIrBPFCpdk27qst/AGTl7pL3ypQ==", - "requires": { - "tslib": "^2.4.0" - } - }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "dag-jose": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/dag-jose/-/dag-jose-4.0.0.tgz", - "integrity": "sha512-tw595L3UYoOUT9dSJPbBEG/qpRpw24kRZxa5SLRnlnr+g5L7O8oEs1d3W5TiVA1oJZbthVsf0Vi3zFN66qcEBA==", - "requires": { - "@ipld/dag-cbor": "^9.0.0", - "multiformats": "^11.0.0" - }, - "dependencies": { - "@ipld/dag-cbor": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/@ipld/dag-cbor/-/dag-cbor-9.1.0.tgz", - "integrity": "sha512-7pMKjBaapEh+1Nk/1umPPhQGT6znb5E71lke2ekxlcuVZLLrPPdDSy0UAMwWgj3a28cjir/ZJ6CQH2DEs3DUOQ==", - "requires": { - "cborg": "^4.0.0", - "multiformats": "^13.0.0" - }, - "dependencies": { - "multiformats": { - "version": "13.0.1", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.0.1.tgz", - "integrity": "sha512-bt3R5iXe2O8xpp3wkmQhC73b/lC4S2ihU8Dndwcsysqbydqb8N+bpP116qMcClZ17g58iSIwtXUTcg2zT4sniA==" - } - } - }, - "cborg": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/cborg/-/cborg-4.0.8.tgz", - "integrity": "sha512-/6QDK0Hw//cV4YNWZZjdIUMFNw0DZmb56jdVGJPwXP7874gSN0AMYqM07mVKpAm+6Nn7U8lvYFzPgBGatC+5xw==" - }, - "multiformats": { - "version": "11.0.2", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-11.0.2.tgz", - "integrity": "sha512-b5mYMkOkARIuVZCpvijFj9a6m5wMVLC7cf/jIPd5D/ARDOfLC5+IFkbgDXQgcU2goIsTD/O9NY4DI/Mt4OGvlg==" - } - } - }, - "dag-jose-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/dag-jose-utils/-/dag-jose-utils-3.0.0.tgz", - "integrity": "sha512-gu+XutOTy3kD8fDcA1SMjZ2U0mUOb/hxoRVZaMCizXN7Ssbc5dKOzeXQ4GquV4BdQzs3w5Y7irOpn2plFPIJfg==", - "requires": { - "@ipld/dag-cbor": "^7.0.1", - "multiformats": "^11.0.1" - }, - "dependencies": { - "multiformats": { - "version": "11.0.2", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-11.0.2.tgz", - "integrity": "sha512-b5mYMkOkARIuVZCpvijFj9a6m5wMVLC7cf/jIPd5D/ARDOfLC5+IFkbgDXQgcU2goIsTD/O9NY4DI/Mt4OGvlg==" - } - } - }, - "data-uri-to-buffer": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", - "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==" - }, - "dataloader": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/dataloader/-/dataloader-2.2.2.tgz", - "integrity": "sha512-8YnDaaf7N3k/q5HnTJVuzSyLETjoZjVmHc4AeKAzOvKHEFQKcn64OKBfzHYtE9zGjctNM7V9I0MfnUVLpi7M5g==" - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "decode-uri-component": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", - "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==" - }, - "deep-eql": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", - "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", - "dev": true, - "requires": { - "type-detect": "^4.0.0" - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" - }, - "did-jwt": { - "version": "7.4.7", - "resolved": "https://registry.npmjs.org/did-jwt/-/did-jwt-7.4.7.tgz", - "integrity": "sha512-Apz7nIfIHSKWIMaEP5L/K8xkwByvjezjTG0xiqwKdnNj1x8M0+Yasury5Dm/KPltxi2PlGfRPf3IejRKZrT8mQ==", - "requires": { - "@noble/ciphers": "^0.4.0", - "@noble/curves": "^1.0.0", - "@noble/hashes": "^1.3.0", - "@scure/base": "^1.1.3", - "canonicalize": "^2.0.0", - "did-resolver": "^4.1.0", - "multibase": "^4.0.6", - "multiformats": "^9.6.2", - "uint8arrays": "3.1.1" - }, - "dependencies": { - "canonicalize": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/canonicalize/-/canonicalize-2.0.0.tgz", - "integrity": "sha512-ulDEYPv7asdKvqahuAY35c1selLdzDwHqugK92hfkzvlDCwXRRelDkR+Er33md/PtnpqHemgkuDPanZ4fiYZ8w==" - }, - "multiformats": { - "version": "9.9.0", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.9.0.tgz", - "integrity": "sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==" - }, - "uint8arrays": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.1.tgz", - "integrity": "sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg==", - "requires": { - "multiformats": "^9.4.2" - } - } - } - }, - "did-resolver": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/did-resolver/-/did-resolver-4.1.0.tgz", - "integrity": "sha512-S6fWHvCXkZg2IhS4RcVHxwuyVejPR7c+a4Go0xbQ9ps5kILa8viiYQgrM4gfTyeTjJ0ekgJH9gk/BawTpmkbZA==" - }, - "dids": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/dids/-/dids-4.0.4.tgz", - "integrity": "sha512-PKxQP0QFqgeMe0dbL7LCRdPJVhZU2ejj8RWCfJ6vro3a+o5o32cWNM1X6YXpdIWq6G5fTJw9KO2dHj2ZzYDc7w==", - "requires": { - "@didtools/cacao": "^2.1.0", - "@didtools/codecs": "^1.0.1", - "@didtools/pkh-ethereum": "^0.4.1", - "@stablelib/random": "^1.0.1", - "codeco": "^1.1.0", - "dag-jose-utils": "^3.0.0", - "did-jwt": "^7.2.0", - "did-resolver": "^4.1.0", - "multiformats": "^11.0.2", - "rpc-utils": "^0.6.1", - "uint8arrays": "^4.0.3" - }, - "dependencies": { - "@didtools/cacao": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@didtools/cacao/-/cacao-2.1.0.tgz", - "integrity": "sha512-35gopj+mOmAlA3nHoHiYMvNMXJtbJDJnVpIlCf/Wf/+/x+uG9aIQefXfF35D6JuaTCZ0apabjpT2umL5h3EXcw==", - "requires": { - "@didtools/codecs": "^1.0.1", - "@didtools/siwx": "1.0.0", - "@ipld/dag-cbor": "^9.0.1", - "caip": "^1.1.0", - "multiformats": "^11.0.2", - "uint8arrays": "^4.0.3" - } - }, - "@didtools/codecs": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@didtools/codecs/-/codecs-1.0.1.tgz", - "integrity": "sha512-6PYXOCX7mwVWUcudKQ3eW5LtI8v5esozazbf2q2F01PE+LoeEvTytvgU9FEspj4pATpq3hPx1eenX2uLirDJ8w==", - "requires": { - "codeco": "^1.1.0", - "multiformats": "^11.0.1", - "uint8arrays": "^4.0.3" - } - }, - "@didtools/pkh-ethereum": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@didtools/pkh-ethereum/-/pkh-ethereum-0.4.1.tgz", - "integrity": "sha512-oE5bbyTauJ/WddaWnDK7bWns2E2LG4Ut33ICEcEQdlMoXM0902/vnGm8+6QE/yuLOyAllgf7DnDKvERF5IY6uQ==", - "requires": { - "@didtools/cacao": "^2.1.0", - "@noble/curves": "^1.1.0", - "@noble/hashes": "^1.3.1", - "@stablelib/random": "^1.0.2", - "caip": "^1.1.0" - } - }, - "@didtools/siwx": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@didtools/siwx/-/siwx-1.0.0.tgz", - "integrity": "sha512-b7sPDTNHdySoJ+Rp2p06x3rg1iTxI4yPTTA3PrPh40xcvFJ0K/YhdIb/Rzff13t92arcJ+VYGFhqtJorauV91g==", - "requires": { - "codeco": "^1.1.0" - } - }, - "@ipld/dag-cbor": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/@ipld/dag-cbor/-/dag-cbor-9.1.0.tgz", - "integrity": "sha512-7pMKjBaapEh+1Nk/1umPPhQGT6znb5E71lke2ekxlcuVZLLrPPdDSy0UAMwWgj3a28cjir/ZJ6CQH2DEs3DUOQ==", - "requires": { - "cborg": "^4.0.0", - "multiformats": "^13.0.0" - }, - "dependencies": { - "multiformats": { - "version": "13.0.1", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.0.1.tgz", - "integrity": "sha512-bt3R5iXe2O8xpp3wkmQhC73b/lC4S2ihU8Dndwcsysqbydqb8N+bpP116qMcClZ17g58iSIwtXUTcg2zT4sniA==" - } - } - }, - "cborg": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/cborg/-/cborg-4.0.8.tgz", - "integrity": "sha512-/6QDK0Hw//cV4YNWZZjdIUMFNw0DZmb56jdVGJPwXP7874gSN0AMYqM07mVKpAm+6Nn7U8lvYFzPgBGatC+5xw==" - }, - "multiformats": { - "version": "11.0.2", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-11.0.2.tgz", - "integrity": "sha512-b5mYMkOkARIuVZCpvijFj9a6m5wMVLC7cf/jIPd5D/ARDOfLC5+IFkbgDXQgcU2goIsTD/O9NY4DI/Mt4OGvlg==" - } - } - }, - "diff-sequences": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", - "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", - "dev": true - }, - "dotenv": { - "version": "16.4.4", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.4.tgz", - "integrity": "sha512-XvPXc8XAQThSjAbY6cQ/9PcBXmFoWuw1sQ3b8HqUCR6ziGXjkTi//kB9SWa2UwqlgdAIuRqAa/9hVljzPehbYg==" - }, - "dset": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/dset/-/dset-3.1.3.tgz", - "integrity": "sha512-20TuZZHCEZ2O71q9/+8BwKwZ0QtD9D8ObhrihJPr+vLLYlSuAU3/zL4cSlgbfeoGHTjCSJBa7NGcrF9/Bx/WJQ==" - }, - "elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", - "requires": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - } - } - }, - "esbuild": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.12.tgz", - "integrity": "sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==", - "dev": true, - "requires": { - "@esbuild/aix-ppc64": "0.19.12", - "@esbuild/android-arm": "0.19.12", - "@esbuild/android-arm64": "0.19.12", - "@esbuild/android-x64": "0.19.12", - "@esbuild/darwin-arm64": "0.19.12", - "@esbuild/darwin-x64": "0.19.12", - "@esbuild/freebsd-arm64": "0.19.12", - "@esbuild/freebsd-x64": "0.19.12", - "@esbuild/linux-arm": "0.19.12", - "@esbuild/linux-arm64": "0.19.12", - "@esbuild/linux-ia32": "0.19.12", - "@esbuild/linux-loong64": "0.19.12", - "@esbuild/linux-mips64el": "0.19.12", - "@esbuild/linux-ppc64": "0.19.12", - "@esbuild/linux-riscv64": "0.19.12", - "@esbuild/linux-s390x": "0.19.12", - "@esbuild/linux-x64": "0.19.12", - "@esbuild/netbsd-x64": "0.19.12", - "@esbuild/openbsd-x64": "0.19.12", - "@esbuild/sunos-x64": "0.19.12", - "@esbuild/win32-arm64": "0.19.12", - "@esbuild/win32-ia32": "0.19.12", - "@esbuild/win32-x64": "0.19.12" - } - }, - "estree-walker": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", - "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", - "dev": true, - "requires": { - "@types/estree": "^1.0.0" - } - }, - "ethers": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz", - "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==", - "requires": { - "@ethersproject/abi": "5.7.0", - "@ethersproject/abstract-provider": "5.7.0", - "@ethersproject/abstract-signer": "5.7.0", - "@ethersproject/address": "5.7.0", - "@ethersproject/base64": "5.7.0", - "@ethersproject/basex": "5.7.0", - "@ethersproject/bignumber": "5.7.0", - "@ethersproject/bytes": "5.7.0", - "@ethersproject/constants": "5.7.0", - "@ethersproject/contracts": "5.7.0", - "@ethersproject/hash": "5.7.0", - "@ethersproject/hdnode": "5.7.0", - "@ethersproject/json-wallets": "5.7.0", - "@ethersproject/keccak256": "5.7.0", - "@ethersproject/logger": "5.7.0", - "@ethersproject/networks": "5.7.1", - "@ethersproject/pbkdf2": "5.7.0", - "@ethersproject/properties": "5.7.0", - "@ethersproject/providers": "5.7.2", - "@ethersproject/random": "5.7.0", - "@ethersproject/rlp": "5.7.0", - "@ethersproject/sha2": "5.7.0", - "@ethersproject/signing-key": "5.7.0", - "@ethersproject/solidity": "5.7.0", - "@ethersproject/strings": "5.7.0", - "@ethersproject/transactions": "5.7.0", - "@ethersproject/units": "5.7.0", - "@ethersproject/wallet": "5.7.0", - "@ethersproject/web": "5.7.1", - "@ethersproject/wordlists": "5.7.0" - } - }, - "event-target-shim": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", - "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==" - }, - "execa": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", - "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.3", - "get-stream": "^8.0.1", - "human-signals": "^5.0.0", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", - "signal-exit": "^4.1.0", - "strip-final-newline": "^3.0.0" - } - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "fast-json-patch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/fast-json-patch/-/fast-json-patch-3.1.1.tgz", - "integrity": "sha512-vf6IHUX2SBcA+5/+4883dsIjpBTqmfBjmYiWK1savxQmFk4JfBMLa7ynTYOs1Rolp/T1betJxHiGD3g1Mn8lUQ==" - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" - }, - "fetch-blob": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", - "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", - "requires": { - "node-domexception": "^1.0.0", - "web-streams-polyfill": "^3.0.3" - } - }, - "filter-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz", - "integrity": "sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==" - }, - "flat": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==" - }, - "follow-redirects": { - "version": "1.15.5", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz", - "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==" - }, - "form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - }, - "formdata-polyfill": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", - "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", - "requires": { - "fetch-blob": "^3.1.2" - } - }, - "fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "optional": true - }, - "get-func-name": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", - "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", - "dev": true - }, - "get-stream": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", - "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", - "dev": true - }, - "gql-query-builder": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/gql-query-builder/-/gql-query-builder-3.8.0.tgz", - "integrity": "sha512-q0PncZTrLDeyiH4R7YH1ISM+XGB4NvQ8eTm/Wr/sHSuquFZvqvDpGyMhbgoCZDc8kNAK8GOdfh3nI2GCLREFvw==" - }, - "graphql": { - "version": "16.8.1", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.8.1.tgz", - "integrity": "sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw==" - }, - "graphql-relay": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/graphql-relay/-/graphql-relay-0.10.0.tgz", - "integrity": "sha512-44yBuw2/DLNEiMypbNZBt1yMDbBmyVPVesPywnteGGALiBmdyy1JP8jSg8ClLePg8ZZxk0O4BLhd1a6U/1jDOQ==", - "requires": {} - }, - "graphql-scalars": { - "version": "1.22.4", - "resolved": "https://registry.npmjs.org/graphql-scalars/-/graphql-scalars-1.22.4.tgz", - "integrity": "sha512-ILnv7jq5VKHLUyoaTFX7lgYrjCd6vTee9i8/B+D4zJKJT5TguOl0KkpPEbXHjmeor8AZYrVsrYUHdqRBMX1pjA==", - "requires": { - "tslib": "^2.5.0" - } - }, - "hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", - "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "human-signals": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", - "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", - "dev": true - }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "is-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "isows": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/isows/-/isows-1.0.3.tgz", - "integrity": "sha512-2cKei4vlmg2cxEjm3wVSqn8pcoRF/LX/wpifuuNquFO4SQmPwarClT+SUCA2lt+l581tTeZIPIZuIDo2jWN1fg==", - "requires": {} - }, - "it-first": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/it-first/-/it-first-3.0.4.tgz", - "integrity": "sha512-FtQl84iTNxN5EItP/JgL28V2rzNMkCzTUlNoj41eVdfix2z1DBuLnBqZ0hzYhGGa1rMpbQf0M7CQSA2adlrLJg==" - }, - "jet-logger": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/jet-logger/-/jet-logger-1.2.2.tgz", - "integrity": "sha512-Kbw4G3BC45+Umz5XBnsE50pHplruJTVKGRy5X1YfCu3Te7f8ggTL8Tm10YegAD2QP41MVQ3o/Y9MFAZzfythqw==", - "requires": { - "colors": "1.3.0" - } - }, - "js-sha3": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", - "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - }, - "json-schema-typed": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/json-schema-typed/-/json-schema-typed-8.0.1.tgz", - "integrity": "sha512-XQmWYj2Sm4kn4WeTYvmpKEbyPsL7nBsb647c7pMe6l02/yx2+Jfc4dT6UZkEXnIUb5LhD55r2HPsJ1milQ4rDg==" - }, - "jsonc-parser": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz", - "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==", - "dev": true - }, - "jsonld": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/jsonld/-/jsonld-8.3.2.tgz", - "integrity": "sha512-MwBbq95szLwt8eVQ1Bcfwmgju/Y5P2GdtlHE2ncyfuYjIdEhluUVyj1eudacf1mOkWIoS9GpDBTECqhmq7EOaA==", - "requires": { - "@digitalbazaar/http-client": "^3.4.1", - "canonicalize": "^1.0.1", - "lru-cache": "^6.0.0", - "rdf-canonize": "^3.4.0" - } - }, - "jsontokens": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/jsontokens/-/jsontokens-4.0.1.tgz", - "integrity": "sha512-+MO415LEN6M+3FGsRz4wU20g7N2JA+2j9d9+pGaNJHviG4L8N0qzavGyENw6fJqsq9CcrHOIL6iWX5yeTZ86+Q==", - "requires": { - "@noble/hashes": "^1.1.2", - "@noble/secp256k1": "^1.6.3", - "base64-js": "^1.5.1" - } - }, - "key-did-provider-ed25519": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/key-did-provider-ed25519/-/key-did-provider-ed25519-3.0.2.tgz", - "integrity": "sha512-4Yw0CeO1hKRaUsh9NIz4tn4Ysr09CdoJItyT0vHjd5iedJ+FvVt7pTbNr7IY0/+8mWvYslutAK5LFrwu5agpsA==", - "requires": { - "@noble/curves": "^1.1.0", - "did-jwt": "^7.2.0", - "dids": "^4.0.4", - "fast-json-stable-stringify": "^2.1.0", - "rpc-utils": "^0.6.2", - "uint8arrays": "^4.0.3" - } - }, - "key-did-resolver": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/key-did-resolver/-/key-did-resolver-3.0.0.tgz", - "integrity": "sha512-IyEq64AdS6lUwtn3YSvGpu7KAGA2x5+fjRCUIa8+ccSLmWrODV/ICM5aa6hHV/19EPWef8/e322r9sQJJ6/3qA==", - "requires": { - "@stablelib/ed25519": "^1.0.2", - "bigint-mod-arith": "^3.1.0", - "multiformats": "^11.0.1", - "nist-weierstrauss": "^1.6.1", - "uint8arrays": "^4.0.3", - "varint": "^6.0.0" - }, - "dependencies": { - "multiformats": { - "version": "11.0.2", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-11.0.2.tgz", - "integrity": "sha512-b5mYMkOkARIuVZCpvijFj9a6m5wMVLC7cf/jIPd5D/ARDOfLC5+IFkbgDXQgcU2goIsTD/O9NY4DI/Mt4OGvlg==" - } - } - }, - "ky": { - "version": "0.33.3", - "resolved": "https://registry.npmjs.org/ky/-/ky-0.33.3.tgz", - "integrity": "sha512-CasD9OCEQSFIam2U8efFK81Yeg8vNMTBUqtMOHlrcWQHqUX3HeCl9Dr31u4toV7emlH8Mymk5+9p0lL6mKb/Xw==" - }, - "ky-universal": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/ky-universal/-/ky-universal-0.11.0.tgz", - "integrity": "sha512-65KyweaWvk+uKKkCrfAf+xqN2/epw1IJDtlyCPxYffFCMR8u1sp2U65NtWpnozYfZxQ6IUzIlvUcw+hQ82U2Xw==", - "requires": { - "abort-controller": "^3.0.0", - "node-fetch": "^3.2.10" - } - }, - "local-pkg": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.5.0.tgz", - "integrity": "sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==", - "dev": true, - "requires": { - "mlly": "^1.4.2", - "pkg-types": "^1.0.3" - } - }, - "lodash.clonedeep": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==" - }, - "logfmt": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/logfmt/-/logfmt-1.4.0.tgz", - "integrity": "sha512-p1Ow0C2dDJYaQBhRHt+HVMP6ELuBm4jYSYNHPMfz0J5wJ9qA6/7oBOlBZBfT1InqguTYcvJzNea5FItDxTcbyw==", - "requires": { - "split": "0.2.x", - "through": "2.3.x" - } - }, - "loupe": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz", - "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", - "dev": true, - "requires": { - "get-func-name": "^2.0.1" - } - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "requires": { - "yallist": "^4.0.0" - } - }, - "magic-string": { - "version": "0.30.5", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.5.tgz", - "integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==", - "dev": true, - "requires": { - "@jridgewell/sourcemap-codec": "^1.4.15" - } - }, - "mapmoize": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/mapmoize/-/mapmoize-1.2.1.tgz", - "integrity": "sha512-LK8ArSM1wbfRPTnl+LpdxW1pwkfY6GxtM9p+STr6aDtM7ImR8jLuf4ekei43/AN0f7XDSrohzwwK57eGHSDAuA==" - }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" - }, - "mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "requires": { - "mime-db": "1.52.0" - } - }, - "mimic-fn": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", - "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", - "dev": true - }, - "minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" - }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==" - }, - "mlly": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.5.0.tgz", - "integrity": "sha512-NPVQvAY1xr1QoVeG0cy8yUYC7FQcOx6evl/RjT1wL5FvzPnzOysoqB/jmx/DhssT2dYa8nxECLAaFI/+gVLhDQ==", - "dev": true, - "requires": { - "acorn": "^8.11.3", - "pathe": "^1.1.2", - "pkg-types": "^1.0.3", - "ufo": "^1.3.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "multibase": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-4.0.6.tgz", - "integrity": "sha512-x23pDe5+svdLz/k5JPGCVdfn7Q5mZVMBETiC+ORfO+sor9Sgs0smJzAjfTbM5tckeCqnaUuMYoz+k3RXMmJClQ==", - "requires": { - "@multiformats/base-x": "^4.0.1" - } - }, - "multicodec": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-3.2.1.tgz", - "integrity": "sha512-+expTPftro8VAW8kfvcuNNNBgb9gPeNYV9dn+z1kJRWF2vih+/S79f2RVeIwmrJBUJ6NT9IUPWnZDQvegEh5pw==", - "dev": true, - "requires": { - "uint8arrays": "^3.0.0", - "varint": "^6.0.0" - }, - "dependencies": { - "multiformats": { - "version": "9.9.0", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.9.0.tgz", - "integrity": "sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==", - "dev": true - }, - "uint8arrays": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.1.tgz", - "integrity": "sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg==", - "dev": true, - "requires": { - "multiformats": "^9.4.2" - } - } - } - }, - "multiformats": { - "version": "13.0.1", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.0.1.tgz", - "integrity": "sha512-bt3R5iXe2O8xpp3wkmQhC73b/lC4S2ihU8Dndwcsysqbydqb8N+bpP116qMcClZ17g58iSIwtXUTcg2zT4sniA==" - }, - "multihashes": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-4.0.3.tgz", - "integrity": "sha512-0AhMH7Iu95XjDLxIeuCOOE4t9+vQZsACyKZ9Fxw2pcsRmlX4iCn1mby0hS0bb+nQOVpdQYWPpnyusw4da5RPhA==", - "dev": true, - "requires": { - "multibase": "^4.0.1", - "uint8arrays": "^3.0.0", - "varint": "^5.0.2" - }, - "dependencies": { - "multiformats": { - "version": "9.9.0", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.9.0.tgz", - "integrity": "sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==", - "dev": true - }, - "uint8arrays": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.1.tgz", - "integrity": "sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg==", - "dev": true, - "requires": { - "multiformats": "^9.4.2" - } - }, - "varint": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", - "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==", - "dev": true - } - } - }, - "multihashes-sync": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/multihashes-sync/-/multihashes-sync-2.0.0.tgz", - "integrity": "sha512-hoBamCqXuVmeo4NAY52dbYuUIKHy3/FcqxyKZSbhqicR2SbUjgiY4FoDvE8BV40dPfAJTT6pQpqYeuKxqKwOLQ==", - "requires": { - "@noble/hashes": "^1.3.3", - "multiformats": "^13.0.0" - } - }, - "nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==" - }, - "nist-weierstrauss": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/nist-weierstrauss/-/nist-weierstrauss-1.6.1.tgz", - "integrity": "sha512-FpjCOnPV/s3ZVIkeldCVSml2K4lruabPbBgoEitpCK1JL0KTVoWb56CFTU6rZn5i6VqAjdwcOp0FDwJACPmeFA==", - "requires": { - "multiformats": "^9.6.5", - "uint8arrays": "^2.1.4" - }, - "dependencies": { - "multiformats": { - "version": "9.9.0", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.9.0.tgz", - "integrity": "sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==" - }, - "uint8arrays": { - "version": "2.1.10", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-2.1.10.tgz", - "integrity": "sha512-Q9/hhJa2836nQfEJSZTmr+pg9+cDJS9XEAp7N2Vg5MzL3bK/mkMVfjscRGYruP9jNda6MAdf4QD/y78gSzkp6A==", - "requires": { - "multiformats": "^9.4.2" - } - } - } - }, - "node-domexception": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", - "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==" - }, - "node-fetch": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", - "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", - "requires": { - "data-uri-to-buffer": "^4.0.0", - "fetch-blob": "^3.1.4", - "formdata-polyfill": "^4.0.10" - } - }, - "npm-run-path": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.2.0.tgz", - "integrity": "sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg==", - "dev": true, - "requires": { - "path-key": "^4.0.0" - }, - "dependencies": { - "path-key": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", - "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", - "dev": true - } - } - }, - "object-sizeof": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/object-sizeof/-/object-sizeof-2.6.4.tgz", - "integrity": "sha512-YuJAf7Bi61KROcYmXm8RCeBrBw8UOaJDzTm1gp0eU7RjYi1xEte3/Nmg/VyPaHcJZ3sNojs1Y0xvSrgwkLmcFw==", - "requires": { - "buffer": "^6.0.3" - } - }, - "onetime": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", - "dev": true, - "requires": { - "mimic-fn": "^4.0.0" - } - }, - "openzeppelin-solidity": { - "version": "git+ssh://git@github.com/OpenZeppelin/openzeppelin-contracts.git#dc739dcbe34fb0c7b15c4e197c6ba3fe9b0c8946", - "integrity": "sha512-TMWYTssbuYNC6p4dC5HrdJK/iy3L0ZHwuBRFKSUSpyCBn6JtYXWFAHRpKHo3pVaczNQlXbW8i29UzJ0lQOcE6Q==", - "dev": true, - "from": "openzeppelin-solidity@git+https://github.com/OpenZeppelin/openzeppelin-contracts.git#dc739dcbe34fb0c7b15c4e197c6ba3fe9b0c8946" - }, - "p-limit": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-5.0.0.tgz", - "integrity": "sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==", - "dev": true, - "requires": { - "yocto-queue": "^1.0.0" - } - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - }, - "pathe": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", - "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", - "dev": true - }, - "pathval": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", - "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", - "dev": true - }, - "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "pkg-types": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.0.3.tgz", - "integrity": "sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==", - "dev": true, - "requires": { - "jsonc-parser": "^3.2.0", - "mlly": "^1.2.0", - "pathe": "^1.1.0" - } - }, - "postcss": { - "version": "8.4.33", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.33.tgz", - "integrity": "sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==", - "dev": true, - "requires": { - "nanoid": "^3.3.7", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - } - }, - "pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", - "dev": true, - "requires": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - } - }, - "proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" - }, - "punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==" - }, - "query-string": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-7.1.3.tgz", - "integrity": "sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==", - "requires": { - "decode-uri-component": "^0.2.2", - "filter-obj": "^1.1.0", - "split-on-first": "^1.0.0", - "strict-uri-encode": "^2.0.0" - } - }, - "rdf-canonize": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/rdf-canonize/-/rdf-canonize-3.4.0.tgz", - "integrity": "sha512-fUeWjrkOO0t1rg7B2fdyDTvngj+9RlUyL92vOdiB7c0FPguWVsniIMjEtHH+meLBO9rzkUlUzBVXgWrjI8P9LA==", - "requires": { - "setimmediate": "^1.0.5" - } - }, - "react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - }, - "require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==" - }, - "ripemd160-min": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/ripemd160-min/-/ripemd160-min-0.0.6.tgz", - "integrity": "sha512-+GcJgQivhs6S9qvLogusiTcS9kQUfgR75whKuy5jIhuiOfQuJ8fjqxV6EGD5duH1Y/FawFUMtMhyeq3Fbnib8A==" - }, - "rollup": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.9.6.tgz", - "integrity": "sha512-05lzkCS2uASX0CiLFybYfVkwNbKZG5NFQ6Go0VWyogFTXXbR039UVsegViTntkk4OglHBdF54ccApXRRuXRbsg==", - "dev": true, - "requires": { - "@rollup/rollup-android-arm-eabi": "4.9.6", - "@rollup/rollup-android-arm64": "4.9.6", - "@rollup/rollup-darwin-arm64": "4.9.6", - "@rollup/rollup-darwin-x64": "4.9.6", - "@rollup/rollup-linux-arm-gnueabihf": "4.9.6", - "@rollup/rollup-linux-arm64-gnu": "4.9.6", - "@rollup/rollup-linux-arm64-musl": "4.9.6", - "@rollup/rollup-linux-riscv64-gnu": "4.9.6", - "@rollup/rollup-linux-x64-gnu": "4.9.6", - "@rollup/rollup-linux-x64-musl": "4.9.6", - "@rollup/rollup-win32-arm64-msvc": "4.9.6", - "@rollup/rollup-win32-ia32-msvc": "4.9.6", - "@rollup/rollup-win32-x64-msvc": "4.9.6", - "@types/estree": "1.0.5", - "fsevents": "~2.3.2" - } - }, - "rpc-utils": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rpc-utils/-/rpc-utils-0.6.2.tgz", - "integrity": "sha512-kzk1OflbBckfDBAo8JwsmtQSHzj+6hxRt5G+u8A8ZSmunBw1nhWvRkSq8j1+EvWBqBRLy1aiGLUW5644CZqQtA==", - "requires": { - "nanoid": "^3.3.1" - } - }, - "rxjs": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", - "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", - "requires": { - "tslib": "^2.1.0" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" - }, - "schema-dts": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/schema-dts/-/schema-dts-1.1.2.tgz", - "integrity": "sha512-MpNwH0dZJHinVxk9bT8XUdjKTxMYrA5bLtrrGmFA6PTLwlOKnhi67XoRd6/ty+Djt6ZC0slR57qFhZDNMI6DhQ==", - "requires": {} - }, - "scrypt-js": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", - "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==" - }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true - }, - "siginfo": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", - "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", - "dev": true - }, - "signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true - }, - "source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", - "dev": true - }, - "split": { - "version": "0.2.10", - "resolved": "https://registry.npmjs.org/split/-/split-0.2.10.tgz", - "integrity": "sha512-e0pKq+UUH2Xq/sXbYpZBZc3BawsfDZ7dgv+JtRTUPNcvF5CMR4Y9cvJqkMY0MoxWzTHvZuz1beg6pNEKlszPiQ==", - "requires": { - "through": "2" - } - }, - "split-on-first": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz", - "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==" - }, - "stackback": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", - "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", - "dev": true - }, - "std-env": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.7.0.tgz", - "integrity": "sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==", - "dev": true - }, - "strict-uri-encode": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz", - "integrity": "sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==" - }, - "strip-final-newline": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", - "dev": true - }, - "strip-literal": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-1.3.0.tgz", - "integrity": "sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==", - "dev": true, - "requires": { - "acorn": "^8.10.0" - } - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" - }, - "tinybench": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.6.0.tgz", - "integrity": "sha512-N8hW3PG/3aOoZAN5V/NSAEDz0ZixDSSt5b/a05iqtpgfLWMSVuCo7w0k2vVvEjdrIoeGqZzweX2WlyioNIHchA==", - "dev": true - }, - "tinypool": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.8.2.tgz", - "integrity": "sha512-SUszKYe5wgsxnNOVlBYO6IC+8VGWdVGZWAqUxp3UErNBtptZvWbwyUOyzNL59zigz2rCA92QiL3wvG+JDSdJdQ==", - "dev": true - }, - "tinyspy": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-2.2.0.tgz", - "integrity": "sha512-d2eda04AN/cPOR89F7Xv5bK/jrQEhmcLFe6HFldoeO9AJtps+fqEnh486vnT/8y4bw38pSyxDcTCAq+Ks2aJTg==", - "dev": true - }, - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, - "tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" - }, - "tunnel": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", - "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", - "dev": true - }, - "type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true - }, - "typescript": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", - "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==" - }, - "ufo": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.3.2.tgz", - "integrity": "sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA==", - "dev": true - }, - "uint8arrays": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.10.tgz", - "integrity": "sha512-AnJNUGGDJAgFw/eWu/Xb9zrVKEGlwJJCaeInlf3BkecE/zcTobk5YXYIPNQJO1q5Hh1QZrQQHf0JvcHqz2hqoA==", - "requires": { - "multiformats": "^12.0.1" - }, - "dependencies": { - "multiformats": { - "version": "12.1.3", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.3.tgz", - "integrity": "sha512-eajQ/ZH7qXZQR2AgtfpmSMizQzmyYVmCql7pdhldPuYQi4atACekbJaQplk6dWyIi10jCaFnd6pqvcEFXjbaJw==" - } - } - }, - "undici": { - "version": "5.28.2", - "resolved": "https://registry.npmjs.org/undici/-/undici-5.28.2.tgz", - "integrity": "sha512-wh1pHJHnUeQV5Xa8/kyQhO7WFa8M34l026L5P/+2TYiakvGy5Rdc8jWZVyG7ieht/0WgJLEd3kcU5gKx+6GC8w==", - "requires": { - "@fastify/busboy": "^2.0.0" - } - }, - "undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" - }, - "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "requires": { - "punycode": "^2.1.0" - } - }, - "url-safe-base64": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/url-safe-base64/-/url-safe-base64-1.3.0.tgz", - "integrity": "sha512-MasquJt1L8/W996LP1BSsDL6UbApCv0Xal0eeeXUIfNXPEj3zM82XETcQSdurbmCmbeJnqRlhszHnWQzMiAZeQ==" - }, - "value-or-promise": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.12.tgz", - "integrity": "sha512-Z6Uz+TYwEqE7ZN50gwn+1LCVo9ZVrpxRPOhOLnncYkY1ZzOYtrX8Fwf/rFktZ8R5mJms6EZf5TqNOMeZmnPq9Q==" - }, - "varint": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz", - "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==" - }, - "varintes": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/varintes/-/varintes-2.0.5.tgz", - "integrity": "sha512-iF3jlHLko9NrYjaUZvT3VwypP3V20KNNhT1tzqblyIyrVjNiW7HseGOhuP+apgZBp9X/8+5pxa7kNikhJeZlIw==" - }, - "varuint-bitcoin": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/varuint-bitcoin/-/varuint-bitcoin-1.1.2.tgz", - "integrity": "sha512-4EVb+w4rx+YfVM32HQX42AbbT7/1f5zwAYhIujKXKk8NQK+JfRVl3pqT3hjNn/L+RstigmGGKVwHA/P0wgITZw==", - "requires": { - "safe-buffer": "^5.1.1" - } - }, - "viem": { - "version": "1.21.4", - "resolved": "https://registry.npmjs.org/viem/-/viem-1.21.4.tgz", - "integrity": "sha512-BNVYdSaUjeS2zKQgPs+49e5JKocfo60Ib2yiXOWBT6LuVxY1I/6fFX3waEtpXvL1Xn4qu+BVitVtMh9lyThyhQ==", - "requires": { - "@adraffy/ens-normalize": "1.10.0", - "@noble/curves": "1.2.0", - "@noble/hashes": "1.3.2", - "@scure/bip32": "1.3.2", - "@scure/bip39": "1.2.1", - "abitype": "0.9.8", - "isows": "1.0.3", - "ws": "8.13.0" - }, - "dependencies": { - "@noble/curves": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz", - "integrity": "sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==", - "requires": { - "@noble/hashes": "1.3.2" - } - }, - "@noble/hashes": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", - "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==" - }, - "@scure/bip39": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.2.1.tgz", - "integrity": "sha512-Z3/Fsz1yr904dduJD0NpiyRHhRYHdcnyh73FZWiV+/qhWi83wNJ3NWolYqCEN+ZWsUz2TWwajJggcRE9r1zUYg==", - "requires": { - "@noble/hashes": "~1.3.0", - "@scure/base": "~1.1.0" - } - }, - "ws": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", - "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", - "requires": {} - } - } - }, - "vite": { - "version": "5.0.12", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.0.12.tgz", - "integrity": "sha512-4hsnEkG3q0N4Tzf1+t6NdN9dg/L3BM+q8SWgbSPnJvrgH2kgdyzfVJwbR1ic69/4uMJJ/3dqDZZE5/WwqW8U1w==", - "dev": true, - "requires": { - "esbuild": "^0.19.3", - "fsevents": "~2.3.3", - "postcss": "^8.4.32", - "rollup": "^4.2.0" - } - }, - "vite-node": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-1.2.1.tgz", - "integrity": "sha512-fNzHmQUSOY+y30naohBvSW7pPn/xn3Ib/uqm+5wAJQJiqQsU0NBR78XdRJb04l4bOFKjpTWld0XAfkKlrDbySg==", - "dev": true, - "requires": { - "cac": "^6.7.14", - "debug": "^4.3.4", - "pathe": "^1.1.1", - "picocolors": "^1.0.0", - "vite": "^5.0.0" - } - }, - "vitest": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-1.2.1.tgz", - "integrity": "sha512-TRph8N8rnSDa5M2wKWJCMnztCZS9cDcgVTQ6tsTFTG/odHJ4l5yNVqvbeDJYJRZ6is3uxaEpFs8LL6QM+YFSdA==", - "dev": true, - "requires": { - "@vitest/expect": "1.2.1", - "@vitest/runner": "1.2.1", - "@vitest/snapshot": "1.2.1", - "@vitest/spy": "1.2.1", - "@vitest/utils": "1.2.1", - "acorn-walk": "^8.3.2", - "cac": "^6.7.14", - "chai": "^4.3.10", - "debug": "^4.3.4", - "execa": "^8.0.1", - "local-pkg": "^0.5.0", - "magic-string": "^0.30.5", - "pathe": "^1.1.1", - "picocolors": "^1.0.0", - "std-env": "^3.5.0", - "strip-literal": "^1.3.0", - "tinybench": "^2.5.1", - "tinypool": "^0.8.1", - "vite": "^5.0.0", - "vite-node": "1.2.1", - "why-is-node-running": "^2.2.2" - } - }, - "vitest-github-actions-reporter": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/vitest-github-actions-reporter/-/vitest-github-actions-reporter-0.11.1.tgz", - "integrity": "sha512-ZHHB0wBgOPhMYCB17WKVlJZa+5SdudBZFoVoebwfq3ioIUTeLQGYHwh85vpdJAxRghLP8d0qI/6eCTueGyDVXA==", - "dev": true, - "requires": { - "@actions/core": "^1.10.0" - } - }, - "web-streams-polyfill": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.2.tgz", - "integrity": "sha512-3pRGuxRF5gpuZc0W+EpwQRmCD7gRqcDOMt688KmdlDAgAyaB1XlN0zq2njfDNm44XVdIouE7pZ6GzbdyH47uIQ==" - }, - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" - }, - "whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "why-is-node-running": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.2.2.tgz", - "integrity": "sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==", - "dev": true, - "requires": { - "siginfo": "^2.0.0", - "stackback": "0.0.2" - } - }, - "ws": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", - "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", - "requires": {} - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "yocto-queue": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", - "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", - "dev": true - } - } -} diff --git a/nodes-lib/package.json b/nodes-lib/package.json deleted file mode 100644 index 2cafcf32f..000000000 --- a/nodes-lib/package.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "name": "@desci-labs/nodes-lib", - "version": "0.0.1", - "homepage": "https://github.com/desci-labs/nodes#readme", - "description": "Stand-alone client library for interacting with desci-server", - "repository": { - "type": "git", - "url": "git+https://github.com/desci-labs/nodes.git" - }, - "author": "Edvard Hübinette", - "license": "MIT", - "bugs": { - "url": "https://github.com/desci-labs/nodes/issues" - }, - "main": "dist/index.js", - "types": "dist/index.d.ts", - "type": "module", - "files": [ - "/dist", - "/.env.example" - ], - "scripts": { - "build": "rm -r dist; tsc --project tsconfig.build.json", - "doPublish": "npm run build && npm publish --access public --dry-run", - "test": "vitest --run --config vitest.config.ts", - "test:debug": "npm run test -- --inspect-brk --no-file-parallelism --test-timeout 99999999" - }, - "dependencies": { - "@desci-labs/desci-codex-lib": "^1.0.5", - "@desci-labs/desci-models": "^0.2.3-rc1", - "axios": "^1.6.5", - "dotenv": "^16.4.4", - "ethers": "^5.7.2", - "form-data": "^4.0.0", - "mime-types": "^2.1.35", - "multiformats": "^13.0.1", - "url-safe-base64": "^1.3.0" - }, - "devDependencies": { - "@desci-labs/desci-contracts": "^0.2.0-rc1", - "@types/mime-types": "^2.1.4", - "@types/node": "^20.11.5", - "typescript": "^5.3.3", - "vitest": "^1.2.1", - "vitest-github-actions-reporter": "^0.11.1" - } -} diff --git a/nodes-lib/src/abi/DpidRegistry.json b/nodes-lib/src/abi/DpidRegistry.json deleted file mode 100644 index 659f0a75e..000000000 --- a/nodes-lib/src/abi/DpidRegistry.json +++ /dev/null @@ -1,428 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "DpidRegistry", - "sourceName": "contracts/DpidRegistry.sol", - "abi": [ - { - "inputs": [], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint8", - "name": "version", - "type": "uint8" - } - ], - "name": "Initialized", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "prefix", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "entryId", - "type": "uint256" - } - ], - "name": "Register", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "prefix", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "address", - "name": "registrant", - "type": "address" - }, - { - "indexed": false, - "internalType": "address[]", - "name": "tokenGate", - "type": "address[]" - } - ], - "name": "RegisterOrganization", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "prefix", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "address", - "name": "registrant", - "type": "address" - }, - { - "indexed": false, - "internalType": "address[]", - "name": "tokenGate", - "type": "address[]" - } - ], - "name": "UpdateOrganization", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "prefix", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "entryId", - "type": "uint256" - } - ], - "name": "exists", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "prefix", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "entryId", - "type": "uint256" - } - ], - "name": "get", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getFee", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getOrgFee", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "prefix", - "type": "bytes32" - } - ], - "name": "getOrganization", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "initialize", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "name": "organizations", - "outputs": [ - { - "internalType": "bytes32", - "name": "prefix", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "registrant", - "type": "address" - }, - { - "internalType": "uint256", - "name": "count", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "prefix", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "entry", - "type": "uint256" - } - ], - "name": "put", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "prefix", - "type": "bytes32" - } - ], - "name": "registerOrg", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "prefix", - "type": "bytes32" - }, - { - "internalType": "address[]", - "name": "tokenGate", - "type": "address[]" - } - ], - "name": "registerOrgWithGate", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "gweiFee", - "type": "uint256" - } - ], - "name": "setFee", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "gweiFee", - "type": "uint256" - } - ], - "name": "setOrgFee", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "string", - "name": "source", - "type": "string" - } - ], - "name": "stringToBytes32", - "outputs": [ - { - "internalType": "bytes32", - "name": "result", - "type": "bytes32" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "prefix", - "type": "bytes32" - }, - { - "internalType": "address[]", - "name": "tokenGate", - "type": "address[]" - } - ], - "name": "updateOrg", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "prefix", - "type": "bytes32" - } - ], - "name": "validateCharacters", - "outputs": [ - { - "internalType": "bool", - "name": "valid", - "type": "bool" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "withdraw", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x60806040523480156200001157600080fd5b50620000226200002860201b60201c565b620001d3565b600060019054906101000a900460ff16156200007b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000729062000127565b60405180910390fd5b60ff801660008054906101000a900460ff1660ff161015620000ed5760ff6000806101000a81548160ff021916908360ff1602179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249860ff604051620000e4919062000149565b60405180910390a15b565b6000620000fe60278362000166565b91506200010b8262000184565b604082019050919050565b620001218162000177565b82525050565b600060208201905081810360008301526200014281620000ef565b9050919050565b600060208201905062000160600083018462000116565b92915050565b600082825260208201905092915050565b600060ff82169050919050565b7f496e697469616c697a61626c653a20636f6e747261637420697320696e69746960008201527f616c697a696e6700000000000000000000000000000000000000000000000000602082015250565b61230880620001e36000396000f3fe6080604052600436106101145760003560e01c80638129fc1c116100a0578063ced72f8711610064578063ced72f871461037f578063cef25dbc146103aa578063cfb51928146103c6578063da4a984214610403578063f2fde38b1461043357610114565b80638129fc1c146102aa57806381e104ca146102c15780638da5cb5b146102ec578063a40a990b14610317578063ba51b14e1461034057610114565b80634b22d5d0116100e75780634b22d5d0146101c75780634fb6020e146102045780635cb316351461022d57806369fe0e2d1461026a578063715018a61461029357610114565b80631785b6771461011957806318ae19c21461013557806322b3cd4e146101725780633ccfd60b146101b0575b600080fd5b610133600480360381019061012e9190611889565b61045c565b005b34801561014157600080fd5b5061015c60048036038101906101579190611906565b6104d8565b6040516101699190611e0a565b60405180910390f35b34801561017e57600080fd5b5061019960048036038101906101949190611889565b610568565b6040516101a7929190611e25565b60405180910390f35b3480156101bc57600080fd5b506101c561060e565b005b3480156101d357600080fd5b506101ee60048036038101906101e99190611889565b61066c565b6040516101fb9190611bfb565b60405180910390f35b34801561021057600080fd5b5061022b60048036038101906102269190611983565b610845565b005b34801561023957600080fd5b50610254600480360381019061024f9190611906565b610857565b6040516102619190611bfb565b60405180910390f35b34801561027657600080fd5b50610291600480360381019061028c9190611983565b6108d8565b005b34801561029f57600080fd5b506102a86108ea565b005b3480156102b657600080fd5b506102bf6108fe565b005b3480156102cd57600080fd5b506102d6610cfa565b6040516102e39190611e0a565b60405180910390f35b3480156102f857600080fd5b50610301610d04565b60405161030e9190611be0565b60405180910390f35b34801561032357600080fd5b5061033e600480360381019061033991906118b2565b610d2e565b005b34801561034c57600080fd5b5061036760048036038101906103629190611889565b610e52565b60405161037693929190611c6f565b60405180910390f35b34801561038b57600080fd5b50610394610e9c565b6040516103a19190611e0a565b60405180910390f35b6103c460048036038101906103bf91906118b2565b610ea6565b005b3480156103d257600080fd5b506103ed60048036038101906103e89190611942565b610f41565b6040516103fa9190611c16565b60405180910390f35b61041d60048036038101906104189190611906565b610f6b565b60405161042a9190611e0a565b60405180910390f35b34801561043f57600080fd5b5061045a60048036038101906104559190611860565b611227565b005b6104d581600067ffffffffffffffff8111156104a1577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156104cf5781602001602082028036833780820191505090505b50610ea6565b50565b600082606560008581526020019081526020016000206000015414610532576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161052990611d6a565b60405180910390fd5b60006065600085815260200190815260200160002090508060030160008481526020019081526020016000205491505092915050565b600080826065600085815260200190815260200160002060000154146105c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105ba90611d6a565b60405180910390fd5b600060656000858152602001908152602001600020905080600401548160010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169250925050915091565b6106166112ab565b6000610620610d04565b90508073ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610668573d6000803e3d6000fd5b5050565b600080600090506000806040518060600160405280602781526020016122ac60279139905060005b602060ff1681101561082357600060f81b8682602081106106de577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b1a60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916141561071257809250610823565b60005b825181101561080f57828181518110610757577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168783602081106107bd577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b1a60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614156107fc5784806107f490611fcb565b95505061080f565b808061080790611fcb565b915050610715565b50808061081b90611fcb565b915050610694565b50818310156108385760009350505050610840565b600193505050505b919050565b61084d6112ab565b8060678190555050565b6000826065600085815260200190815260200160002060000154146108b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a890611d6a565b60405180910390fd5b60006065600085815260200190815260200160002090508060040154831091505092915050565b6108e06112ab565b8060668190555050565b6108f26112ab565b6108fc6000611329565b565b60008060019054906101000a900460ff1615905080801561092f5750600160008054906101000a900460ff1660ff16105b8061095c575061093e306113ef565b15801561095b5750600160008054906101000a900460ff1660ff16145b5b61099b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099290611d8a565b60405180910390fd5b60016000806101000a81548160ff021916908360ff16021790555080156109d8576001600060016101000a81548160ff0219169083151502179055505b6601c6bf526340006066819055506706f05b59d3b2000060678190555060008067ffffffffffffffff811115610a37577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015610a655781602001602082028036833780820191505090505b509050610a73600082611412565b610a9d7f647069640000000000000000000000000000000000000000000000000000000082611412565b610ac77f646369746500000000000000000000000000000000000000000000000000000082611412565b610af17f646576000000000000000000000000000000000000000000000000000000000082611412565b610b1b7f737461676500000000000000000000000000000000000000000000000000000082611412565b610b457f626574610000000000000000000000000000000000000000000000000000000082611412565b610b6f7f646573636900000000000000000000000000000000000000000000000000000082611412565b610b997f6e6f64650000000000000000000000000000000000000000000000000000000082611412565b610bc37f6e6f64657300000000000000000000000000000000000000000000000000000082611412565b610bed7f646f69000000000000000000000000000000000000000000000000000000000082611412565b610c177f610000000000000000000000000000000000000000000000000000000000000082611412565b610c417f640000000000000000000000000000000000000000000000000000000000000082611412565b610c6b7f780000000000000000000000000000000000000000000000000000000000000082611412565b610c957f7a0000000000000000000000000000000000000000000000000000000000000082611412565b610c9d6115a5565b508015610cf75760008060016101000a81548160ff0219169083151502179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024986001604051610cee9190611ccf565b60405180910390a15b50565b6000606754905090565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b81610d376115fe565b73ffffffffffffffffffffffffffffffffffffffff166065600083815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd190611d4a565b60405180910390fd5b600060656000858152602001908152602001600020905082816002019080519060200190610e09929190611667565b507f2f78800ab5b47f6617eaf3124043ced0ee3ae49c0b4a77167ee4cd2fbc674f0484610e346115fe565b85604051610e4493929190611c31565b60405180910390a150505050565b60656020528060005260406000206000915090508060000154908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060040154905083565b6000606654905090565b606754341015610eeb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee290611dea565b60405180910390fd5b610ef48261066c565b610f33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2a90611d6a565b60405180910390fd5b610f3d8282611412565b5050565b600080829050600081511415610f5d576000801b915050610f66565b60208301519150505b919050565b6000606654341015610fb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa990611dea565b60405180910390fd5b8260656000858152602001908152602001600020600001541461100a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100190611d6a565b60405180910390fd5b60006065600085815260200190815260200160002090506000816002018054905011156111a6576000816002018054905090506000805b82811015611162576000846002018281548110611087577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008173ffffffffffffffffffffffffffffffffffffffff166370a082316110da6115fe565b6040518263ffffffff1660e01b81526004016110f69190611be0565b60206040518083038186803b15801561110e57600080fd5b505afa158015611122573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061114691906119ac565b1115611156576001925050611162565b81600101915050611041565b50806111a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119a90611d2a565b60405180910390fd5b50505b60008160040154905083826003016000838152602001908152602001600020819055507fd5fa0e9a716b3ec4895a48223ad309e2d3fa5e27f04d8dc9b3c33cc738a50eb085826040516111fa929190611ca6565b60405180910390a181600401600081548092919061121790611fcb565b9190505550809250505092915050565b61122f6112ab565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561129f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129690611d0a565b60405180910390fd5b6112a881611329565b50565b6112b36115fe565b73ffffffffffffffffffffffffffffffffffffffff166112d1610d04565b73ffffffffffffffffffffffffffffffffffffffff1614611327576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131e90611daa565b60405180910390fd5b565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6000801b606560008481526020019081526020016000206000015414801561149c5750600073ffffffffffffffffffffffffffffffffffffffff166065600084815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b6114db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d290611cea565b60405180910390fd5b60006065600084815260200190815260200160002090506114fa6115fe565b8160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508281600001819055508181600201908051906020019061155d929190611667565b507f1603286ac6b9f753cbc1a1d33146ab15a401314d80d8553aa8fb1473df47f3ec836115886115fe565b8460405161159893929190611c31565b60405180910390a1505050565b600060019054906101000a900460ff166115f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115eb90611dca565b60405180910390fd5b6115fc611606565b565b600033905090565b600060019054906101000a900460ff16611655576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164c90611dca565b60405180910390fd5b6116656116606115fe565b611329565b565b8280548282559060005260206000209081019282156116e0579160200282015b828111156116df5782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555091602001919060010190611687565b5b5090506116ed91906116f1565b5090565b5b8082111561170a5760008160009055506001016116f2565b5090565b600061172161171c84611e73565b611e4e565b9050808382526020820190508285602086028201111561174057600080fd5b60005b85811015611770578161175688826117b8565b845260208401935060208301925050600181019050611743565b5050509392505050565b600061178d61178884611e9f565b611e4e565b9050828152602081018484840111156117a557600080fd5b6117b0848285611f8b565b509392505050565b6000813590506117c781612266565b92915050565b600082601f8301126117de57600080fd5b81356117ee84826020860161170e565b91505092915050565b6000813590506118068161227d565b92915050565b600082601f83011261181d57600080fd5b813561182d84826020860161177a565b91505092915050565b60008135905061184581612294565b92915050565b60008151905061185a81612294565b92915050565b60006020828403121561187257600080fd5b6000611880848285016117b8565b91505092915050565b60006020828403121561189b57600080fd5b60006118a9848285016117f7565b91505092915050565b600080604083850312156118c557600080fd5b60006118d3858286016117f7565b925050602083013567ffffffffffffffff8111156118f057600080fd5b6118fc858286016117cd565b9150509250929050565b6000806040838503121561191957600080fd5b6000611927858286016117f7565b925050602061193885828601611836565b9150509250929050565b60006020828403121561195457600080fd5b600082013567ffffffffffffffff81111561196e57600080fd5b61197a8482850161180c565b91505092915050565b60006020828403121561199557600080fd5b60006119a384828501611836565b91505092915050565b6000602082840312156119be57600080fd5b60006119cc8482850161184b565b91505092915050565b60006119e183836119ed565b60208301905092915050565b6119f681611f1a565b82525050565b611a0581611f1a565b82525050565b6000611a1682611ee0565b611a208185611ef8565b9350611a2b83611ed0565b8060005b83811015611a5c578151611a4388826119d5565b9750611a4e83611eeb565b925050600181019050611a2f565b5085935050505092915050565b611a7281611f2c565b82525050565b611a8181611f38565b82525050565b611a9081611f79565b82525050565b6000611aa3600c83611f09565b9150611aae82612083565b602082019050919050565b6000611ac6602683611f09565b9150611ad1826120ac565b604082019050919050565b6000611ae9601883611f09565b9150611af4826120fb565b602082019050919050565b6000611b0c601283611f09565b9150611b1782612124565b602082019050919050565b6000611b2f600e83611f09565b9150611b3a8261214d565b602082019050919050565b6000611b52602e83611f09565b9150611b5d82612176565b604082019050919050565b6000611b75602083611f09565b9150611b80826121c5565b602082019050919050565b6000611b98602b83611f09565b9150611ba3826121ee565b604082019050919050565b6000611bbb600c83611f09565b9150611bc68261223d565b602082019050919050565b611bda81611f62565b82525050565b6000602082019050611bf560008301846119fc565b92915050565b6000602082019050611c106000830184611a69565b92915050565b6000602082019050611c2b6000830184611a78565b92915050565b6000606082019050611c466000830186611a78565b611c5360208301856119fc565b8181036040830152611c658184611a0b565b9050949350505050565b6000606082019050611c846000830186611a78565b611c9160208301856119fc565b611c9e6040830184611bd1565b949350505050565b6000604082019050611cbb6000830185611a78565b611cc86020830184611bd1565b9392505050565b6000602082019050611ce46000830184611a87565b92915050565b60006020820190508181036000830152611d0381611a96565b9050919050565b60006020820190508181036000830152611d2381611ab9565b9050919050565b60006020820190508181036000830152611d4381611adc565b9050919050565b60006020820190508181036000830152611d6381611aff565b9050919050565b60006020820190508181036000830152611d8381611b22565b9050919050565b60006020820190508181036000830152611da381611b45565b9050919050565b60006020820190508181036000830152611dc381611b68565b9050919050565b60006020820190508181036000830152611de381611b8b565b9050919050565b60006020820190508181036000830152611e0381611bae565b9050919050565b6000602082019050611e1f6000830184611bd1565b92915050565b6000604082019050611e3a6000830185611bd1565b611e4760208301846119fc565b9392505050565b6000611e58611e69565b9050611e648282611f9a565b919050565b6000604051905090565b600067ffffffffffffffff821115611e8e57611e8d612043565b5b602082029050602081019050919050565b600067ffffffffffffffff821115611eba57611eb9612043565b5b611ec382612072565b9050602081019050919050565b6000819050602082019050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000611f2582611f42565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000611f8482611f6c565b9050919050565b82818337600083830152505050565b611fa382612072565b810181811067ffffffffffffffff82111715611fc257611fc1612043565b5b80604052505050565b6000611fd682611f62565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561200957612008612014565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f5072656669782074616b656e0000000000000000000000000000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f556e617574686f72697a65643a20546f6b656e20676174650000000000000000600082015250565b7f4f6e6c79206f776e657220757064617465730000000000000000000000000000600082015250565b7f496e76616c696420707265666978000000000000000000000000000000000000600082015250565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960008201527f6e697469616c697a696e67000000000000000000000000000000000000000000602082015250565b7f4665652072657175697265640000000000000000000000000000000000000000600082015250565b61226f81611f1a565b811461227a57600080fd5b50565b61228681611f38565b811461229157600080fd5b50565b61229d81611f62565b81146122a857600080fd5b5056fe6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392d5f2ea2646970667358221220b8cac9a8d8f3de013face3e7fec9a14f0a1e3f3d09fe342a5252c76f07a42da364736f6c63430008040033", - "deployedBytecode": "0x6080604052600436106101145760003560e01c80638129fc1c116100a0578063ced72f8711610064578063ced72f871461037f578063cef25dbc146103aa578063cfb51928146103c6578063da4a984214610403578063f2fde38b1461043357610114565b80638129fc1c146102aa57806381e104ca146102c15780638da5cb5b146102ec578063a40a990b14610317578063ba51b14e1461034057610114565b80634b22d5d0116100e75780634b22d5d0146101c75780634fb6020e146102045780635cb316351461022d57806369fe0e2d1461026a578063715018a61461029357610114565b80631785b6771461011957806318ae19c21461013557806322b3cd4e146101725780633ccfd60b146101b0575b600080fd5b610133600480360381019061012e9190611889565b61045c565b005b34801561014157600080fd5b5061015c60048036038101906101579190611906565b6104d8565b6040516101699190611e0a565b60405180910390f35b34801561017e57600080fd5b5061019960048036038101906101949190611889565b610568565b6040516101a7929190611e25565b60405180910390f35b3480156101bc57600080fd5b506101c561060e565b005b3480156101d357600080fd5b506101ee60048036038101906101e99190611889565b61066c565b6040516101fb9190611bfb565b60405180910390f35b34801561021057600080fd5b5061022b60048036038101906102269190611983565b610845565b005b34801561023957600080fd5b50610254600480360381019061024f9190611906565b610857565b6040516102619190611bfb565b60405180910390f35b34801561027657600080fd5b50610291600480360381019061028c9190611983565b6108d8565b005b34801561029f57600080fd5b506102a86108ea565b005b3480156102b657600080fd5b506102bf6108fe565b005b3480156102cd57600080fd5b506102d6610cfa565b6040516102e39190611e0a565b60405180910390f35b3480156102f857600080fd5b50610301610d04565b60405161030e9190611be0565b60405180910390f35b34801561032357600080fd5b5061033e600480360381019061033991906118b2565b610d2e565b005b34801561034c57600080fd5b5061036760048036038101906103629190611889565b610e52565b60405161037693929190611c6f565b60405180910390f35b34801561038b57600080fd5b50610394610e9c565b6040516103a19190611e0a565b60405180910390f35b6103c460048036038101906103bf91906118b2565b610ea6565b005b3480156103d257600080fd5b506103ed60048036038101906103e89190611942565b610f41565b6040516103fa9190611c16565b60405180910390f35b61041d60048036038101906104189190611906565b610f6b565b60405161042a9190611e0a565b60405180910390f35b34801561043f57600080fd5b5061045a60048036038101906104559190611860565b611227565b005b6104d581600067ffffffffffffffff8111156104a1577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156104cf5781602001602082028036833780820191505090505b50610ea6565b50565b600082606560008581526020019081526020016000206000015414610532576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161052990611d6a565b60405180910390fd5b60006065600085815260200190815260200160002090508060030160008481526020019081526020016000205491505092915050565b600080826065600085815260200190815260200160002060000154146105c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105ba90611d6a565b60405180910390fd5b600060656000858152602001908152602001600020905080600401548160010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169250925050915091565b6106166112ab565b6000610620610d04565b90508073ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610668573d6000803e3d6000fd5b5050565b600080600090506000806040518060600160405280602781526020016122ac60279139905060005b602060ff1681101561082357600060f81b8682602081106106de577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b1a60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916141561071257809250610823565b60005b825181101561080f57828181518110610757577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168783602081106107bd577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b1a60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614156107fc5784806107f490611fcb565b95505061080f565b808061080790611fcb565b915050610715565b50808061081b90611fcb565b915050610694565b50818310156108385760009350505050610840565b600193505050505b919050565b61084d6112ab565b8060678190555050565b6000826065600085815260200190815260200160002060000154146108b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a890611d6a565b60405180910390fd5b60006065600085815260200190815260200160002090508060040154831091505092915050565b6108e06112ab565b8060668190555050565b6108f26112ab565b6108fc6000611329565b565b60008060019054906101000a900460ff1615905080801561092f5750600160008054906101000a900460ff1660ff16105b8061095c575061093e306113ef565b15801561095b5750600160008054906101000a900460ff1660ff16145b5b61099b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099290611d8a565b60405180910390fd5b60016000806101000a81548160ff021916908360ff16021790555080156109d8576001600060016101000a81548160ff0219169083151502179055505b6601c6bf526340006066819055506706f05b59d3b2000060678190555060008067ffffffffffffffff811115610a37577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015610a655781602001602082028036833780820191505090505b509050610a73600082611412565b610a9d7f647069640000000000000000000000000000000000000000000000000000000082611412565b610ac77f646369746500000000000000000000000000000000000000000000000000000082611412565b610af17f646576000000000000000000000000000000000000000000000000000000000082611412565b610b1b7f737461676500000000000000000000000000000000000000000000000000000082611412565b610b457f626574610000000000000000000000000000000000000000000000000000000082611412565b610b6f7f646573636900000000000000000000000000000000000000000000000000000082611412565b610b997f6e6f64650000000000000000000000000000000000000000000000000000000082611412565b610bc37f6e6f64657300000000000000000000000000000000000000000000000000000082611412565b610bed7f646f69000000000000000000000000000000000000000000000000000000000082611412565b610c177f610000000000000000000000000000000000000000000000000000000000000082611412565b610c417f640000000000000000000000000000000000000000000000000000000000000082611412565b610c6b7f780000000000000000000000000000000000000000000000000000000000000082611412565b610c957f7a0000000000000000000000000000000000000000000000000000000000000082611412565b610c9d6115a5565b508015610cf75760008060016101000a81548160ff0219169083151502179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024986001604051610cee9190611ccf565b60405180910390a15b50565b6000606754905090565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b81610d376115fe565b73ffffffffffffffffffffffffffffffffffffffff166065600083815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd190611d4a565b60405180910390fd5b600060656000858152602001908152602001600020905082816002019080519060200190610e09929190611667565b507f2f78800ab5b47f6617eaf3124043ced0ee3ae49c0b4a77167ee4cd2fbc674f0484610e346115fe565b85604051610e4493929190611c31565b60405180910390a150505050565b60656020528060005260406000206000915090508060000154908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060040154905083565b6000606654905090565b606754341015610eeb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee290611dea565b60405180910390fd5b610ef48261066c565b610f33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2a90611d6a565b60405180910390fd5b610f3d8282611412565b5050565b600080829050600081511415610f5d576000801b915050610f66565b60208301519150505b919050565b6000606654341015610fb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa990611dea565b60405180910390fd5b8260656000858152602001908152602001600020600001541461100a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100190611d6a565b60405180910390fd5b60006065600085815260200190815260200160002090506000816002018054905011156111a6576000816002018054905090506000805b82811015611162576000846002018281548110611087577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008173ffffffffffffffffffffffffffffffffffffffff166370a082316110da6115fe565b6040518263ffffffff1660e01b81526004016110f69190611be0565b60206040518083038186803b15801561110e57600080fd5b505afa158015611122573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061114691906119ac565b1115611156576001925050611162565b81600101915050611041565b50806111a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119a90611d2a565b60405180910390fd5b50505b60008160040154905083826003016000838152602001908152602001600020819055507fd5fa0e9a716b3ec4895a48223ad309e2d3fa5e27f04d8dc9b3c33cc738a50eb085826040516111fa929190611ca6565b60405180910390a181600401600081548092919061121790611fcb565b9190505550809250505092915050565b61122f6112ab565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561129f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129690611d0a565b60405180910390fd5b6112a881611329565b50565b6112b36115fe565b73ffffffffffffffffffffffffffffffffffffffff166112d1610d04565b73ffffffffffffffffffffffffffffffffffffffff1614611327576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131e90611daa565b60405180910390fd5b565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6000801b606560008481526020019081526020016000206000015414801561149c5750600073ffffffffffffffffffffffffffffffffffffffff166065600084815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b6114db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d290611cea565b60405180910390fd5b60006065600084815260200190815260200160002090506114fa6115fe565b8160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508281600001819055508181600201908051906020019061155d929190611667565b507f1603286ac6b9f753cbc1a1d33146ab15a401314d80d8553aa8fb1473df47f3ec836115886115fe565b8460405161159893929190611c31565b60405180910390a1505050565b600060019054906101000a900460ff166115f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115eb90611dca565b60405180910390fd5b6115fc611606565b565b600033905090565b600060019054906101000a900460ff16611655576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164c90611dca565b60405180910390fd5b6116656116606115fe565b611329565b565b8280548282559060005260206000209081019282156116e0579160200282015b828111156116df5782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555091602001919060010190611687565b5b5090506116ed91906116f1565b5090565b5b8082111561170a5760008160009055506001016116f2565b5090565b600061172161171c84611e73565b611e4e565b9050808382526020820190508285602086028201111561174057600080fd5b60005b85811015611770578161175688826117b8565b845260208401935060208301925050600181019050611743565b5050509392505050565b600061178d61178884611e9f565b611e4e565b9050828152602081018484840111156117a557600080fd5b6117b0848285611f8b565b509392505050565b6000813590506117c781612266565b92915050565b600082601f8301126117de57600080fd5b81356117ee84826020860161170e565b91505092915050565b6000813590506118068161227d565b92915050565b600082601f83011261181d57600080fd5b813561182d84826020860161177a565b91505092915050565b60008135905061184581612294565b92915050565b60008151905061185a81612294565b92915050565b60006020828403121561187257600080fd5b6000611880848285016117b8565b91505092915050565b60006020828403121561189b57600080fd5b60006118a9848285016117f7565b91505092915050565b600080604083850312156118c557600080fd5b60006118d3858286016117f7565b925050602083013567ffffffffffffffff8111156118f057600080fd5b6118fc858286016117cd565b9150509250929050565b6000806040838503121561191957600080fd5b6000611927858286016117f7565b925050602061193885828601611836565b9150509250929050565b60006020828403121561195457600080fd5b600082013567ffffffffffffffff81111561196e57600080fd5b61197a8482850161180c565b91505092915050565b60006020828403121561199557600080fd5b60006119a384828501611836565b91505092915050565b6000602082840312156119be57600080fd5b60006119cc8482850161184b565b91505092915050565b60006119e183836119ed565b60208301905092915050565b6119f681611f1a565b82525050565b611a0581611f1a565b82525050565b6000611a1682611ee0565b611a208185611ef8565b9350611a2b83611ed0565b8060005b83811015611a5c578151611a4388826119d5565b9750611a4e83611eeb565b925050600181019050611a2f565b5085935050505092915050565b611a7281611f2c565b82525050565b611a8181611f38565b82525050565b611a9081611f79565b82525050565b6000611aa3600c83611f09565b9150611aae82612083565b602082019050919050565b6000611ac6602683611f09565b9150611ad1826120ac565b604082019050919050565b6000611ae9601883611f09565b9150611af4826120fb565b602082019050919050565b6000611b0c601283611f09565b9150611b1782612124565b602082019050919050565b6000611b2f600e83611f09565b9150611b3a8261214d565b602082019050919050565b6000611b52602e83611f09565b9150611b5d82612176565b604082019050919050565b6000611b75602083611f09565b9150611b80826121c5565b602082019050919050565b6000611b98602b83611f09565b9150611ba3826121ee565b604082019050919050565b6000611bbb600c83611f09565b9150611bc68261223d565b602082019050919050565b611bda81611f62565b82525050565b6000602082019050611bf560008301846119fc565b92915050565b6000602082019050611c106000830184611a69565b92915050565b6000602082019050611c2b6000830184611a78565b92915050565b6000606082019050611c466000830186611a78565b611c5360208301856119fc565b8181036040830152611c658184611a0b565b9050949350505050565b6000606082019050611c846000830186611a78565b611c9160208301856119fc565b611c9e6040830184611bd1565b949350505050565b6000604082019050611cbb6000830185611a78565b611cc86020830184611bd1565b9392505050565b6000602082019050611ce46000830184611a87565b92915050565b60006020820190508181036000830152611d0381611a96565b9050919050565b60006020820190508181036000830152611d2381611ab9565b9050919050565b60006020820190508181036000830152611d4381611adc565b9050919050565b60006020820190508181036000830152611d6381611aff565b9050919050565b60006020820190508181036000830152611d8381611b22565b9050919050565b60006020820190508181036000830152611da381611b45565b9050919050565b60006020820190508181036000830152611dc381611b68565b9050919050565b60006020820190508181036000830152611de381611b8b565b9050919050565b60006020820190508181036000830152611e0381611bae565b9050919050565b6000602082019050611e1f6000830184611bd1565b92915050565b6000604082019050611e3a6000830185611bd1565b611e4760208301846119fc565b9392505050565b6000611e58611e69565b9050611e648282611f9a565b919050565b6000604051905090565b600067ffffffffffffffff821115611e8e57611e8d612043565b5b602082029050602081019050919050565b600067ffffffffffffffff821115611eba57611eb9612043565b5b611ec382612072565b9050602081019050919050565b6000819050602082019050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000611f2582611f42565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000611f8482611f6c565b9050919050565b82818337600083830152505050565b611fa382612072565b810181811067ffffffffffffffff82111715611fc257611fc1612043565b5b80604052505050565b6000611fd682611f62565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561200957612008612014565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f5072656669782074616b656e0000000000000000000000000000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f556e617574686f72697a65643a20546f6b656e20676174650000000000000000600082015250565b7f4f6e6c79206f776e657220757064617465730000000000000000000000000000600082015250565b7f496e76616c696420707265666978000000000000000000000000000000000000600082015250565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960008201527f6e697469616c697a696e67000000000000000000000000000000000000000000602082015250565b7f4665652072657175697265640000000000000000000000000000000000000000600082015250565b61226f81611f1a565b811461227a57600080fd5b50565b61228681611f38565b811461229157600080fd5b50565b61229d81611f62565b81146122a857600080fd5b5056fe6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392d5f2ea2646970667358221220b8cac9a8d8f3de013face3e7fec9a14f0a1e3f3d09fe342a5252c76f07a42da364736f6c63430008040033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/nodes-lib/src/abi/ResearchObject.json b/nodes-lib/src/abi/ResearchObject.json deleted file mode 100644 index 3ee1ed823..000000000 --- a/nodes-lib/src/abi/ResearchObject.json +++ /dev/null @@ -1,608 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "ResearchObject", - "sourceName": "contracts/ResearchObject.sol", - "abi": [ - { - "inputs": [], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "approved", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "ApprovalForAll", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint8", - "name": "version", - "type": "uint8" - } - ], - "name": "Initialized", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_from", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "_uuid", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "_cid", - "type": "bytes" - } - ], - "name": "VersionPush", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "string", - "name": "name", - "type": "string" - }, - { - "internalType": "string", - "name": "symbol", - "type": "string" - } - ], - "name": "__VersionedERC721_init", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "_dpidRegistry", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "_metadata", - "outputs": [ - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "exists", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "getApproved", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "dpidRegistry", - "type": "address" - } - ], - "name": "initialize", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "isApprovedForAll", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "uuid", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "cid", - "type": "bytes" - } - ], - "name": "mint", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "uuid", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "cid", - "type": "bytes" - }, - { - "internalType": "bytes32", - "name": "prefix", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "expectedDpid", - "type": "uint256" - } - ], - "name": "mintWithDpid", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "ownerOf", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "setApprovalForAll", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "dpidRegistry", - "type": "address" - } - ], - "name": "setRegistry", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "string", - "name": "uri", - "type": "string" - } - ], - "name": "setURI", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "tokenURI", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "cid", - "type": "bytes" - } - ], - "name": "updateMetadata", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x60806040523480156200001157600080fd5b50620000226200002860201b60201c565b620001d3565b600060019054906101000a900460ff16156200007b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000729062000127565b60405180910390fd5b60ff801660008054906101000a900460ff1660ff161015620000ed5760ff6000806101000a81548160ff021916908360ff1602179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249860ff604051620000e4919062000149565b60405180910390a15b565b6000620000fe60278362000166565b91506200010b8262000184565b604082019050919050565b620001218162000177565b82525050565b600060208201905081810360008301526200014281620000ef565b9050919050565b600060208201905062000160600083018462000116565b92915050565b600082825260208201905092915050565b600060ff82169050919050565b7f496e697469616c697a61626c653a20636f6e747261637420697320696e69746960008201527f616c697a696e6700000000000000000000000000000000000000000000000000602082015250565b613b2480620001e36000396000f3fe6080604052600436106101815760003560e01c8063715018a6116100d1578063b88d4fde1161008a578063c88efd1511610064578063c88efd151461058e578063db7fd408146105aa578063e985e9c5146105d3578063f2fde38b1461061057610181565b8063b88d4fde146104ff578063c4d66de814610528578063c87b56dd1461055157610181565b8063715018a6146104175780638da5cb5b1461042e57806395d89b41146104595780639a7fad4014610484578063a22cb465146104ad578063a91ee0dc146104d657610181565b806323b872dd1161013e5780634f558e79116101185780634f558e7914610337578063599ad936146103745780636352211e1461039d57806370a08231146103da57610181565b806323b872dd146102ba5780633dcd3236146102e357806342842e0e1461030e57610181565b806301ffc9a71461018657806302fe5305146101c357806306fdde03146101ec578063081812fc14610217578063095ea7b31461025457806313859f461461027d575b600080fd5b34801561019257600080fd5b506101ad60048036038101906101a891906128a5565b610639565b6040516101ba9190612f11565b60405180910390f35b3480156101cf57600080fd5b506101ea60048036038101906101e591906128f7565b61071b565b005b3480156101f857600080fd5b5061020161073d565b60405161020e9190612f92565b60405180910390f35b34801561022357600080fd5b5061023e600480360381019061023991906129a4565b6107cf565b60405161024b9190612eaa565b60405180910390f35b34801561026057600080fd5b5061027b60048036038101906102769190612869565b610815565b005b34801561028957600080fd5b506102a4600480360381019061029f91906129a4565b61092d565b6040516102b19190612f55565b60405180910390f35b3480156102c657600080fd5b506102e160048036038101906102dc9190612763565b6109cd565b005b3480156102ef57600080fd5b506102f8610a2d565b6040516103059190612eaa565b60405180910390f35b34801561031a57600080fd5b5061033560048036038101906103309190612763565b610a53565b005b34801561034357600080fd5b5061035e600480360381019061035991906129a4565b610a73565b60405161036b9190612f11565b60405180910390f35b34801561038057600080fd5b5061039b60048036038101906103969190612938565b610a85565b005b3480156103a957600080fd5b506103c460048036038101906103bf91906129a4565b610ae2565b6040516103d19190612eaa565b60405180910390f35b3480156103e657600080fd5b5061040160048036038101906103fc91906126fe565b610b94565b60405161040e91906131f4565b60405180910390f35b34801561042357600080fd5b5061042c610c4c565b005b34801561043a57600080fd5b50610443610c60565b6040516104509190612eaa565b60405180910390f35b34801561046557600080fd5b5061046e610c8a565b60405161047b9190612f92565b60405180910390f35b34801561049057600080fd5b506104ab60048036038101906104a69190612ace565b610d1c565b005b3480156104b957600080fd5b506104d460048036038101906104cf919061282d565b610e29565b005b3480156104e257600080fd5b506104fd60048036038101906104f891906126fe565b610e3f565b005b34801561050b57600080fd5b50610526600480360381019061052191906127b2565b610e8b565b005b34801561053457600080fd5b5061054f600480360381019061054a91906126fe565b610eed565b005b34801561055d57600080fd5b50610578600480360381019061057391906129a4565b6110e1565b6040516105859190612f92565b60405180910390f35b6105a860048036038101906105a39190612a4e565b611149565b005b3480156105b657600080fd5b506105d160048036038101906105cc91906129f6565b611258565b005b3480156105df57600080fd5b506105fa60048036038101906105f59190612727565b6112c8565b6040516106079190612f11565b60405180910390f35b34801561061c57600080fd5b50610637600480360381019061063291906126fe565b61135c565b005b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061070457507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806107145750610713826113e0565b5b9050919050565b61072361144a565b8060ca9080519060200190610739929190612428565b5050565b60606065805461074c90613473565b80601f016020809104026020016040519081016040528092919081815260200182805461077890613473565b80156107c55780601f1061079a576101008083540402835291602001916107c5565b820191906000526020600020905b8154815290600101906020018083116107a857829003601f168201915b5050505050905090565b60006107da826114c8565b6069600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061082082610ae2565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610891576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088890613194565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166108b0611513565b73ffffffffffffffffffffffffffffffffffffffff1614806108df57506108de816108d9611513565b6112c8565b5b61091e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610915906130f4565b60405180910390fd5b610928838361151b565b505050565b6097602052806000526040600020600091509050805461094c90613473565b80601f016020809104026020016040519081016040528092919081815260200182805461097890613473565b80156109c55780601f1061099a576101008083540402835291602001916109c5565b820191906000526020600020905b8154815290600101906020018083116109a857829003601f168201915b505050505081565b6109de6109d8611513565b826115d4565b610a1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a14906131d4565b60405180910390fd5b610a28838383611669565b505050565b60cb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610a6e83838360405180602001604052806000815250610e8b565b505050565b6000610a7e826118d0565b9050919050565b600060019054906101000a900460ff16610ad4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610acb906131b4565b60405180910390fd5b610ade828261193c565b5050565b6000806067600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610b8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8290613174565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610c05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bfc906130b4565b60405180910390fd5b606860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610c5461144a565b610c5e6000611999565b565b6000609860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060668054610c9990613473565b80601f0160208091040260200160405190810160405280929190818152602001828054610cc590613473565b8015610d125780601f10610ce757610100808354040283529160200191610d12565b820191906000526020600020905b815481529060010190602001808311610cf557829003601f168201915b5050505050905090565b816000610d27611513565b905060008173ffffffffffffffffffffffffffffffffffffffff16610d4b84610ae2565b73ffffffffffffffffffffffffffffffffffffffff1614905080610da4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9b90613134565b60405180910390fd5b83609760008781526020019081526020016000209080519060200190610dcb9291906124ae565b5084610dd5611513565b73ffffffffffffffffffffffffffffffffffffffff167fabddf73bfc8efbf8287a09ea355e43cf6c0c22880ce0470affeba5271c0a769486604051610e1a9190612f55565b60405180910390a35050505050565b610e3b610e34611513565b8383611a5f565b5050565b610e4761144a565b8060cb60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610e9c610e96611513565b836115d4565b610edb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed2906131d4565b60405180910390fd5b610ee784848484611bcc565b50505050565b60008060019054906101000a900460ff16159050808015610f1e5750600160008054906101000a900460ff1660ff16105b80610f4b5750610f2d30611c28565b158015610f4a5750600160008054906101000a900460ff1660ff16145b5b610f8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f81906130d4565b60405180910390fd5b60016000806101000a81548160ff021916908360ff1602179055508015610fc7576001600060016101000a81548160ff0219169083151502179055505b61103b6040518060400160405280601581526020017f4465536369205265736561726368204f626a65637400000000000000000000008152506040518060400160405280600a81526020017f44655363692d4e6f646500000000000000000000000000000000000000000000815250610a85565b611043611c4b565b8160cb60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080156110dd5760008060016101000a81548160ff0219169083151502179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249860016040516110d49190612f77565b60405180910390a15b5050565b60606110ec826114c8565b60006110f6611ca4565b905060008151116111165760405180602001604052806000815250611141565b8061112084611d36565b604051602001611131929190612e86565b6040516020818303038152906040525b915050919050565b600060cb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008173ffffffffffffffffffffffffffffffffffffffff1663da4a984234868a6040518463ffffffff1660e01b81526004016111ae929190612f2c565b6020604051808303818588803b1580156111c757600080fd5b505af11580156111db573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061120091906129cd565b9050808314611244576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123b90613034565b60405180910390fd5b61124f878787611258565b50505050505050565b6000611262611513565b905060008490506112738282611ee3565b6112c18585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050610d1c565b5050505050565b6000606a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b61136461144a565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156113d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113cb90612fd4565b60405180910390fd5b6113dd81611999565b50565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b611452611513565b73ffffffffffffffffffffffffffffffffffffffff16611470610c60565b73ffffffffffffffffffffffffffffffffffffffff16146114c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114bd90613154565b60405180910390fd5b565b6114d1816118d0565b611510576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150790613174565b60405180910390fd5b50565b600033905090565b816069600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff1661158e83610ae2565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000806115e083610ae2565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611622575061162181856112c8565b5b8061166057508373ffffffffffffffffffffffffffffffffffffffff16611648846107cf565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661168982610ae2565b73ffffffffffffffffffffffffffffffffffffffff16146116df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d690612ff4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561174f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174690613054565b60405180910390fd5b61175a838383611f01565b61176560008261151b565b6001606860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546117b59190613360565b925050819055506001606860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461180c91906132d9565b92505081905550816067600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46118cb838383611f75565b505050565b60008073ffffffffffffffffffffffffffffffffffffffff166067600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600060019054906101000a900460ff1661198b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611982906131b4565b60405180910390fd5b6119958282611f7a565b5050565b6000609860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081609860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611ace576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ac590613074565b60405180910390fd5b80606a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611bbf9190612f11565b60405180910390a3505050565b611bd7848484611669565b611be384848484611ffb565b611c22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1990612fb4565b60405180910390fd5b50505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600060019054906101000a900460ff16611c9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c91906131b4565b60405180910390fd5b611ca2612192565b565b606060ca8054611cb390613473565b80601f0160208091040260200160405190810160405280929190818152602001828054611cdf90613473565b8015611d2c5780601f10611d0157610100808354040283529160200191611d2c565b820191906000526020600020905b815481529060010190602001808311611d0f57829003601f168201915b5050505050905090565b60606000821415611d7e576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611ede565b600082905060005b60008214611db0578080611d99906134d6565b915050600a82611da9919061332f565b9150611d86565b60008167ffffffffffffffff811115611df2577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015611e245781602001600182028036833780820191505090505b5090505b60008514611ed757600182611e3d9190613360565b9150600a85611e4c919061351f565b6030611e5891906132d9565b60f81b818381518110611e94577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85611ed0919061332f565b9450611e28565b8093505050505b919050565b611efd8282604051806020016040528060008152506121f3565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611f70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6790613094565b60405180910390fd5b505050565b505050565b600060019054906101000a900460ff16611fc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc0906131b4565b60405180910390fd5b8160659080519060200190611fdf929190612428565b508060669080519060200190611ff6929190612428565b505050565b600061201c8473ffffffffffffffffffffffffffffffffffffffff16611c28565b15612185578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02612045611513565b8786866040518563ffffffff1660e01b81526004016120679493929190612ec5565b602060405180830381600087803b15801561208157600080fd5b505af19250505080156120b257506040513d601f19601f820116820180604052508101906120af91906128ce565b60015b612135573d80600081146120e2576040519150601f19603f3d011682016040523d82523d6000602084013e6120e7565b606091505b5060008151141561212d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212490612fb4565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161491505061218a565b600190505b949350505050565b600060019054906101000a900460ff166121e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121d8906131b4565b60405180910390fd5b6121f16121ec611513565b611999565b565b6121fd838361224e565b61220a6000848484611ffb565b612249576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224090612fb4565b60405180910390fd5b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156122be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122b590613114565b60405180910390fd5b6122c7816118d0565b15612307576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122fe90613014565b60405180910390fd5b61231360008383611f01565b6001606860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461236391906132d9565b92505081905550816067600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a461242460008383611f75565b5050565b82805461243490613473565b90600052602060002090601f016020900481019282612456576000855561249d565b82601f1061246f57805160ff191683800117855561249d565b8280016001018555821561249d579182015b8281111561249c578251825591602001919060010190612481565b5b5090506124aa9190612534565b5090565b8280546124ba90613473565b90600052602060002090601f0160209004810192826124dc5760008555612523565b82601f106124f557805160ff1916838001178555612523565b82800160010185558215612523579182015b82811115612522578251825591602001919060010190612507565b5b5090506125309190612534565b5090565b5b8082111561254d576000816000905550600101612535565b5090565b600061256461255f84613234565b61320f565b90508281526020810184848401111561257c57600080fd5b612587848285613431565b509392505050565b60006125a261259d84613265565b61320f565b9050828152602081018484840111156125ba57600080fd5b6125c5848285613431565b509392505050565b6000813590506125dc81613a7b565b92915050565b6000813590506125f181613a92565b92915050565b60008135905061260681613aa9565b92915050565b60008135905061261b81613ac0565b92915050565b60008151905061263081613ac0565b92915050565b60008083601f84011261264857600080fd5b8235905067ffffffffffffffff81111561266157600080fd5b60208301915083600182028301111561267957600080fd5b9250929050565b600082601f83011261269157600080fd5b81356126a1848260208601612551565b91505092915050565b600082601f8301126126bb57600080fd5b81356126cb84826020860161258f565b91505092915050565b6000813590506126e381613ad7565b92915050565b6000815190506126f881613ad7565b92915050565b60006020828403121561271057600080fd5b600061271e848285016125cd565b91505092915050565b6000806040838503121561273a57600080fd5b6000612748858286016125cd565b9250506020612759858286016125cd565b9150509250929050565b60008060006060848603121561277857600080fd5b6000612786868287016125cd565b9350506020612797868287016125cd565b92505060406127a8868287016126d4565b9150509250925092565b600080600080608085870312156127c857600080fd5b60006127d6878288016125cd565b94505060206127e7878288016125cd565b93505060406127f8878288016126d4565b925050606085013567ffffffffffffffff81111561281557600080fd5b61282187828801612680565b91505092959194509250565b6000806040838503121561284057600080fd5b600061284e858286016125cd565b925050602061285f858286016125e2565b9150509250929050565b6000806040838503121561287c57600080fd5b600061288a858286016125cd565b925050602061289b858286016126d4565b9150509250929050565b6000602082840312156128b757600080fd5b60006128c58482850161260c565b91505092915050565b6000602082840312156128e057600080fd5b60006128ee84828501612621565b91505092915050565b60006020828403121561290957600080fd5b600082013567ffffffffffffffff81111561292357600080fd5b61292f848285016126aa565b91505092915050565b6000806040838503121561294b57600080fd5b600083013567ffffffffffffffff81111561296557600080fd5b612971858286016126aa565b925050602083013567ffffffffffffffff81111561298e57600080fd5b61299a858286016126aa565b9150509250929050565b6000602082840312156129b657600080fd5b60006129c4848285016126d4565b91505092915050565b6000602082840312156129df57600080fd5b60006129ed848285016126e9565b91505092915050565b600080600060408486031215612a0b57600080fd5b6000612a19868287016126d4565b935050602084013567ffffffffffffffff811115612a3657600080fd5b612a4286828701612636565b92509250509250925092565b600080600080600060808688031215612a6657600080fd5b6000612a74888289016126d4565b955050602086013567ffffffffffffffff811115612a9157600080fd5b612a9d88828901612636565b94509450506040612ab0888289016125f7565b9250506060612ac1888289016126d4565b9150509295509295909350565b60008060408385031215612ae157600080fd5b6000612aef858286016126d4565b925050602083013567ffffffffffffffff811115612b0c57600080fd5b612b1885828601612680565b9150509250929050565b612b2b81613394565b82525050565b612b3a816133a6565b82525050565b612b49816133b2565b82525050565b6000612b5a82613296565b612b6481856132ac565b9350612b74818560208601613440565b612b7d8161360c565b840191505092915050565b612b918161341f565b82525050565b6000612ba2826132a1565b612bac81856132bd565b9350612bbc818560208601613440565b612bc58161360c565b840191505092915050565b6000612bdb826132a1565b612be581856132ce565b9350612bf5818560208601613440565b80840191505092915050565b6000612c0e6032836132bd565b9150612c198261361d565b604082019050919050565b6000612c316026836132bd565b9150612c3c8261366c565b604082019050919050565b6000612c546025836132bd565b9150612c5f826136bb565b604082019050919050565b6000612c77601c836132bd565b9150612c828261370a565b602082019050919050565b6000612c9a600f836132bd565b9150612ca582613733565b602082019050919050565b6000612cbd6024836132bd565b9150612cc88261375c565b604082019050919050565b6000612ce06019836132bd565b9150612ceb826137ab565b602082019050919050565b6000612d03600b836132bd565b9150612d0e826137d4565b602082019050919050565b6000612d266029836132bd565b9150612d31826137fd565b604082019050919050565b6000612d49602e836132bd565b9150612d548261384c565b604082019050919050565b6000612d6c603e836132bd565b9150612d778261389b565b604082019050919050565b6000612d8f6020836132bd565b9150612d9a826138ea565b602082019050919050565b6000612db2600d836132bd565b9150612dbd82613913565b602082019050919050565b6000612dd56020836132bd565b9150612de08261393c565b602082019050919050565b6000612df86018836132bd565b9150612e0382613965565b602082019050919050565b6000612e1b6021836132bd565b9150612e268261398e565b604082019050919050565b6000612e3e602b836132bd565b9150612e49826139dd565b604082019050919050565b6000612e61602e836132bd565b9150612e6c82613a2c565b604082019050919050565b612e8081613408565b82525050565b6000612e928285612bd0565b9150612e9e8284612bd0565b91508190509392505050565b6000602082019050612ebf6000830184612b22565b92915050565b6000608082019050612eda6000830187612b22565b612ee76020830186612b22565b612ef46040830185612e77565b8181036060830152612f068184612b4f565b905095945050505050565b6000602082019050612f266000830184612b31565b92915050565b6000604082019050612f416000830185612b40565b612f4e6020830184612e77565b9392505050565b60006020820190508181036000830152612f6f8184612b4f565b905092915050565b6000602082019050612f8c6000830184612b88565b92915050565b60006020820190508181036000830152612fac8184612b97565b905092915050565b60006020820190508181036000830152612fcd81612c01565b9050919050565b60006020820190508181036000830152612fed81612c24565b9050919050565b6000602082019050818103600083015261300d81612c47565b9050919050565b6000602082019050818103600083015261302d81612c6a565b9050919050565b6000602082019050818103600083015261304d81612c8d565b9050919050565b6000602082019050818103600083015261306d81612cb0565b9050919050565b6000602082019050818103600083015261308d81612cd3565b9050919050565b600060208201905081810360008301526130ad81612cf6565b9050919050565b600060208201905081810360008301526130cd81612d19565b9050919050565b600060208201905081810360008301526130ed81612d3c565b9050919050565b6000602082019050818103600083015261310d81612d5f565b9050919050565b6000602082019050818103600083015261312d81612d82565b9050919050565b6000602082019050818103600083015261314d81612da5565b9050919050565b6000602082019050818103600083015261316d81612dc8565b9050919050565b6000602082019050818103600083015261318d81612deb565b9050919050565b600060208201905081810360008301526131ad81612e0e565b9050919050565b600060208201905081810360008301526131cd81612e31565b9050919050565b600060208201905081810360008301526131ed81612e54565b9050919050565b60006020820190506132096000830184612e77565b92915050565b600061321961322a565b905061322582826134a5565b919050565b6000604051905090565b600067ffffffffffffffff82111561324f5761324e6135dd565b5b6132588261360c565b9050602081019050919050565b600067ffffffffffffffff8211156132805761327f6135dd565b5b6132898261360c565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b60006132e482613408565b91506132ef83613408565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561332457613323613550565b5b828201905092915050565b600061333a82613408565b915061334583613408565b9250826133555761335461357f565b5b828204905092915050565b600061336b82613408565b915061337683613408565b92508282101561338957613388613550565b5b828203905092915050565b600061339f826133e8565b9050919050565b60008115159050919050565b6000819050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061342a82613412565b9050919050565b82818337600083830152505050565b60005b8381101561345e578082015181840152602081019050613443565b8381111561346d576000848401525b50505050565b6000600282049050600182168061348b57607f821691505b6020821081141561349f5761349e6135ae565b5b50919050565b6134ae8261360c565b810181811067ffffffffffffffff821117156134cd576134cc6135dd565b5b80604052505050565b60006134e182613408565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561351457613513613550565b5b600182019050919050565b600061352a82613408565b915061353583613408565b9250826135455761354461357f565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f556e657870656374656420645049440000000000000000000000000000000000600082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f6e6f207472616e73666572000000000000000000000000000000000000000000600082015250565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60008201527f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c0000602082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f4e6f207065726d697373696f6e00000000000000000000000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4552433732313a20696e76616c696420746f6b656e2049440000000000000000600082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960008201527f6e697469616c697a696e67000000000000000000000000000000000000000000602082015250565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560008201527f72206e6f7220617070726f766564000000000000000000000000000000000000602082015250565b613a8481613394565b8114613a8f57600080fd5b50565b613a9b816133a6565b8114613aa657600080fd5b50565b613ab2816133b2565b8114613abd57600080fd5b50565b613ac9816133bc565b8114613ad457600080fd5b50565b613ae081613408565b8114613aeb57600080fd5b5056fea26469706673582212209e14f59ea02aeddd45a8778825f278790a4ca151a5543be2bdfe0199b437845f64736f6c63430008040033", - "deployedBytecode": "0x6080604052600436106101815760003560e01c8063715018a6116100d1578063b88d4fde1161008a578063c88efd1511610064578063c88efd151461058e578063db7fd408146105aa578063e985e9c5146105d3578063f2fde38b1461061057610181565b8063b88d4fde146104ff578063c4d66de814610528578063c87b56dd1461055157610181565b8063715018a6146104175780638da5cb5b1461042e57806395d89b41146104595780639a7fad4014610484578063a22cb465146104ad578063a91ee0dc146104d657610181565b806323b872dd1161013e5780634f558e79116101185780634f558e7914610337578063599ad936146103745780636352211e1461039d57806370a08231146103da57610181565b806323b872dd146102ba5780633dcd3236146102e357806342842e0e1461030e57610181565b806301ffc9a71461018657806302fe5305146101c357806306fdde03146101ec578063081812fc14610217578063095ea7b31461025457806313859f461461027d575b600080fd5b34801561019257600080fd5b506101ad60048036038101906101a891906128a5565b610639565b6040516101ba9190612f11565b60405180910390f35b3480156101cf57600080fd5b506101ea60048036038101906101e591906128f7565b61071b565b005b3480156101f857600080fd5b5061020161073d565b60405161020e9190612f92565b60405180910390f35b34801561022357600080fd5b5061023e600480360381019061023991906129a4565b6107cf565b60405161024b9190612eaa565b60405180910390f35b34801561026057600080fd5b5061027b60048036038101906102769190612869565b610815565b005b34801561028957600080fd5b506102a4600480360381019061029f91906129a4565b61092d565b6040516102b19190612f55565b60405180910390f35b3480156102c657600080fd5b506102e160048036038101906102dc9190612763565b6109cd565b005b3480156102ef57600080fd5b506102f8610a2d565b6040516103059190612eaa565b60405180910390f35b34801561031a57600080fd5b5061033560048036038101906103309190612763565b610a53565b005b34801561034357600080fd5b5061035e600480360381019061035991906129a4565b610a73565b60405161036b9190612f11565b60405180910390f35b34801561038057600080fd5b5061039b60048036038101906103969190612938565b610a85565b005b3480156103a957600080fd5b506103c460048036038101906103bf91906129a4565b610ae2565b6040516103d19190612eaa565b60405180910390f35b3480156103e657600080fd5b5061040160048036038101906103fc91906126fe565b610b94565b60405161040e91906131f4565b60405180910390f35b34801561042357600080fd5b5061042c610c4c565b005b34801561043a57600080fd5b50610443610c60565b6040516104509190612eaa565b60405180910390f35b34801561046557600080fd5b5061046e610c8a565b60405161047b9190612f92565b60405180910390f35b34801561049057600080fd5b506104ab60048036038101906104a69190612ace565b610d1c565b005b3480156104b957600080fd5b506104d460048036038101906104cf919061282d565b610e29565b005b3480156104e257600080fd5b506104fd60048036038101906104f891906126fe565b610e3f565b005b34801561050b57600080fd5b50610526600480360381019061052191906127b2565b610e8b565b005b34801561053457600080fd5b5061054f600480360381019061054a91906126fe565b610eed565b005b34801561055d57600080fd5b50610578600480360381019061057391906129a4565b6110e1565b6040516105859190612f92565b60405180910390f35b6105a860048036038101906105a39190612a4e565b611149565b005b3480156105b657600080fd5b506105d160048036038101906105cc91906129f6565b611258565b005b3480156105df57600080fd5b506105fa60048036038101906105f59190612727565b6112c8565b6040516106079190612f11565b60405180910390f35b34801561061c57600080fd5b50610637600480360381019061063291906126fe565b61135c565b005b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061070457507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806107145750610713826113e0565b5b9050919050565b61072361144a565b8060ca9080519060200190610739929190612428565b5050565b60606065805461074c90613473565b80601f016020809104026020016040519081016040528092919081815260200182805461077890613473565b80156107c55780601f1061079a576101008083540402835291602001916107c5565b820191906000526020600020905b8154815290600101906020018083116107a857829003601f168201915b5050505050905090565b60006107da826114c8565b6069600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061082082610ae2565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610891576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088890613194565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166108b0611513565b73ffffffffffffffffffffffffffffffffffffffff1614806108df57506108de816108d9611513565b6112c8565b5b61091e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610915906130f4565b60405180910390fd5b610928838361151b565b505050565b6097602052806000526040600020600091509050805461094c90613473565b80601f016020809104026020016040519081016040528092919081815260200182805461097890613473565b80156109c55780601f1061099a576101008083540402835291602001916109c5565b820191906000526020600020905b8154815290600101906020018083116109a857829003601f168201915b505050505081565b6109de6109d8611513565b826115d4565b610a1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a14906131d4565b60405180910390fd5b610a28838383611669565b505050565b60cb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610a6e83838360405180602001604052806000815250610e8b565b505050565b6000610a7e826118d0565b9050919050565b600060019054906101000a900460ff16610ad4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610acb906131b4565b60405180910390fd5b610ade828261193c565b5050565b6000806067600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610b8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8290613174565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610c05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bfc906130b4565b60405180910390fd5b606860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610c5461144a565b610c5e6000611999565b565b6000609860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060668054610c9990613473565b80601f0160208091040260200160405190810160405280929190818152602001828054610cc590613473565b8015610d125780601f10610ce757610100808354040283529160200191610d12565b820191906000526020600020905b815481529060010190602001808311610cf557829003601f168201915b5050505050905090565b816000610d27611513565b905060008173ffffffffffffffffffffffffffffffffffffffff16610d4b84610ae2565b73ffffffffffffffffffffffffffffffffffffffff1614905080610da4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9b90613134565b60405180910390fd5b83609760008781526020019081526020016000209080519060200190610dcb9291906124ae565b5084610dd5611513565b73ffffffffffffffffffffffffffffffffffffffff167fabddf73bfc8efbf8287a09ea355e43cf6c0c22880ce0470affeba5271c0a769486604051610e1a9190612f55565b60405180910390a35050505050565b610e3b610e34611513565b8383611a5f565b5050565b610e4761144a565b8060cb60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610e9c610e96611513565b836115d4565b610edb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed2906131d4565b60405180910390fd5b610ee784848484611bcc565b50505050565b60008060019054906101000a900460ff16159050808015610f1e5750600160008054906101000a900460ff1660ff16105b80610f4b5750610f2d30611c28565b158015610f4a5750600160008054906101000a900460ff1660ff16145b5b610f8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f81906130d4565b60405180910390fd5b60016000806101000a81548160ff021916908360ff1602179055508015610fc7576001600060016101000a81548160ff0219169083151502179055505b61103b6040518060400160405280601581526020017f4465536369205265736561726368204f626a65637400000000000000000000008152506040518060400160405280600a81526020017f44655363692d4e6f646500000000000000000000000000000000000000000000815250610a85565b611043611c4b565b8160cb60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080156110dd5760008060016101000a81548160ff0219169083151502179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249860016040516110d49190612f77565b60405180910390a15b5050565b60606110ec826114c8565b60006110f6611ca4565b905060008151116111165760405180602001604052806000815250611141565b8061112084611d36565b604051602001611131929190612e86565b6040516020818303038152906040525b915050919050565b600060cb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008173ffffffffffffffffffffffffffffffffffffffff1663da4a984234868a6040518463ffffffff1660e01b81526004016111ae929190612f2c565b6020604051808303818588803b1580156111c757600080fd5b505af11580156111db573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061120091906129cd565b9050808314611244576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123b90613034565b60405180910390fd5b61124f878787611258565b50505050505050565b6000611262611513565b905060008490506112738282611ee3565b6112c18585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050610d1c565b5050505050565b6000606a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b61136461144a565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156113d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113cb90612fd4565b60405180910390fd5b6113dd81611999565b50565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b611452611513565b73ffffffffffffffffffffffffffffffffffffffff16611470610c60565b73ffffffffffffffffffffffffffffffffffffffff16146114c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114bd90613154565b60405180910390fd5b565b6114d1816118d0565b611510576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150790613174565b60405180910390fd5b50565b600033905090565b816069600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff1661158e83610ae2565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000806115e083610ae2565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611622575061162181856112c8565b5b8061166057508373ffffffffffffffffffffffffffffffffffffffff16611648846107cf565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661168982610ae2565b73ffffffffffffffffffffffffffffffffffffffff16146116df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d690612ff4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561174f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174690613054565b60405180910390fd5b61175a838383611f01565b61176560008261151b565b6001606860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546117b59190613360565b925050819055506001606860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461180c91906132d9565b92505081905550816067600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46118cb838383611f75565b505050565b60008073ffffffffffffffffffffffffffffffffffffffff166067600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600060019054906101000a900460ff1661198b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611982906131b4565b60405180910390fd5b6119958282611f7a565b5050565b6000609860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081609860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611ace576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ac590613074565b60405180910390fd5b80606a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611bbf9190612f11565b60405180910390a3505050565b611bd7848484611669565b611be384848484611ffb565b611c22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1990612fb4565b60405180910390fd5b50505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600060019054906101000a900460ff16611c9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c91906131b4565b60405180910390fd5b611ca2612192565b565b606060ca8054611cb390613473565b80601f0160208091040260200160405190810160405280929190818152602001828054611cdf90613473565b8015611d2c5780601f10611d0157610100808354040283529160200191611d2c565b820191906000526020600020905b815481529060010190602001808311611d0f57829003601f168201915b5050505050905090565b60606000821415611d7e576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611ede565b600082905060005b60008214611db0578080611d99906134d6565b915050600a82611da9919061332f565b9150611d86565b60008167ffffffffffffffff811115611df2577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015611e245781602001600182028036833780820191505090505b5090505b60008514611ed757600182611e3d9190613360565b9150600a85611e4c919061351f565b6030611e5891906132d9565b60f81b818381518110611e94577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85611ed0919061332f565b9450611e28565b8093505050505b919050565b611efd8282604051806020016040528060008152506121f3565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611f70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6790613094565b60405180910390fd5b505050565b505050565b600060019054906101000a900460ff16611fc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc0906131b4565b60405180910390fd5b8160659080519060200190611fdf929190612428565b508060669080519060200190611ff6929190612428565b505050565b600061201c8473ffffffffffffffffffffffffffffffffffffffff16611c28565b15612185578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02612045611513565b8786866040518563ffffffff1660e01b81526004016120679493929190612ec5565b602060405180830381600087803b15801561208157600080fd5b505af19250505080156120b257506040513d601f19601f820116820180604052508101906120af91906128ce565b60015b612135573d80600081146120e2576040519150601f19603f3d011682016040523d82523d6000602084013e6120e7565b606091505b5060008151141561212d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212490612fb4565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161491505061218a565b600190505b949350505050565b600060019054906101000a900460ff166121e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121d8906131b4565b60405180910390fd5b6121f16121ec611513565b611999565b565b6121fd838361224e565b61220a6000848484611ffb565b612249576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224090612fb4565b60405180910390fd5b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156122be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122b590613114565b60405180910390fd5b6122c7816118d0565b15612307576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122fe90613014565b60405180910390fd5b61231360008383611f01565b6001606860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461236391906132d9565b92505081905550816067600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a461242460008383611f75565b5050565b82805461243490613473565b90600052602060002090601f016020900481019282612456576000855561249d565b82601f1061246f57805160ff191683800117855561249d565b8280016001018555821561249d579182015b8281111561249c578251825591602001919060010190612481565b5b5090506124aa9190612534565b5090565b8280546124ba90613473565b90600052602060002090601f0160209004810192826124dc5760008555612523565b82601f106124f557805160ff1916838001178555612523565b82800160010185558215612523579182015b82811115612522578251825591602001919060010190612507565b5b5090506125309190612534565b5090565b5b8082111561254d576000816000905550600101612535565b5090565b600061256461255f84613234565b61320f565b90508281526020810184848401111561257c57600080fd5b612587848285613431565b509392505050565b60006125a261259d84613265565b61320f565b9050828152602081018484840111156125ba57600080fd5b6125c5848285613431565b509392505050565b6000813590506125dc81613a7b565b92915050565b6000813590506125f181613a92565b92915050565b60008135905061260681613aa9565b92915050565b60008135905061261b81613ac0565b92915050565b60008151905061263081613ac0565b92915050565b60008083601f84011261264857600080fd5b8235905067ffffffffffffffff81111561266157600080fd5b60208301915083600182028301111561267957600080fd5b9250929050565b600082601f83011261269157600080fd5b81356126a1848260208601612551565b91505092915050565b600082601f8301126126bb57600080fd5b81356126cb84826020860161258f565b91505092915050565b6000813590506126e381613ad7565b92915050565b6000815190506126f881613ad7565b92915050565b60006020828403121561271057600080fd5b600061271e848285016125cd565b91505092915050565b6000806040838503121561273a57600080fd5b6000612748858286016125cd565b9250506020612759858286016125cd565b9150509250929050565b60008060006060848603121561277857600080fd5b6000612786868287016125cd565b9350506020612797868287016125cd565b92505060406127a8868287016126d4565b9150509250925092565b600080600080608085870312156127c857600080fd5b60006127d6878288016125cd565b94505060206127e7878288016125cd565b93505060406127f8878288016126d4565b925050606085013567ffffffffffffffff81111561281557600080fd5b61282187828801612680565b91505092959194509250565b6000806040838503121561284057600080fd5b600061284e858286016125cd565b925050602061285f858286016125e2565b9150509250929050565b6000806040838503121561287c57600080fd5b600061288a858286016125cd565b925050602061289b858286016126d4565b9150509250929050565b6000602082840312156128b757600080fd5b60006128c58482850161260c565b91505092915050565b6000602082840312156128e057600080fd5b60006128ee84828501612621565b91505092915050565b60006020828403121561290957600080fd5b600082013567ffffffffffffffff81111561292357600080fd5b61292f848285016126aa565b91505092915050565b6000806040838503121561294b57600080fd5b600083013567ffffffffffffffff81111561296557600080fd5b612971858286016126aa565b925050602083013567ffffffffffffffff81111561298e57600080fd5b61299a858286016126aa565b9150509250929050565b6000602082840312156129b657600080fd5b60006129c4848285016126d4565b91505092915050565b6000602082840312156129df57600080fd5b60006129ed848285016126e9565b91505092915050565b600080600060408486031215612a0b57600080fd5b6000612a19868287016126d4565b935050602084013567ffffffffffffffff811115612a3657600080fd5b612a4286828701612636565b92509250509250925092565b600080600080600060808688031215612a6657600080fd5b6000612a74888289016126d4565b955050602086013567ffffffffffffffff811115612a9157600080fd5b612a9d88828901612636565b94509450506040612ab0888289016125f7565b9250506060612ac1888289016126d4565b9150509295509295909350565b60008060408385031215612ae157600080fd5b6000612aef858286016126d4565b925050602083013567ffffffffffffffff811115612b0c57600080fd5b612b1885828601612680565b9150509250929050565b612b2b81613394565b82525050565b612b3a816133a6565b82525050565b612b49816133b2565b82525050565b6000612b5a82613296565b612b6481856132ac565b9350612b74818560208601613440565b612b7d8161360c565b840191505092915050565b612b918161341f565b82525050565b6000612ba2826132a1565b612bac81856132bd565b9350612bbc818560208601613440565b612bc58161360c565b840191505092915050565b6000612bdb826132a1565b612be581856132ce565b9350612bf5818560208601613440565b80840191505092915050565b6000612c0e6032836132bd565b9150612c198261361d565b604082019050919050565b6000612c316026836132bd565b9150612c3c8261366c565b604082019050919050565b6000612c546025836132bd565b9150612c5f826136bb565b604082019050919050565b6000612c77601c836132bd565b9150612c828261370a565b602082019050919050565b6000612c9a600f836132bd565b9150612ca582613733565b602082019050919050565b6000612cbd6024836132bd565b9150612cc88261375c565b604082019050919050565b6000612ce06019836132bd565b9150612ceb826137ab565b602082019050919050565b6000612d03600b836132bd565b9150612d0e826137d4565b602082019050919050565b6000612d266029836132bd565b9150612d31826137fd565b604082019050919050565b6000612d49602e836132bd565b9150612d548261384c565b604082019050919050565b6000612d6c603e836132bd565b9150612d778261389b565b604082019050919050565b6000612d8f6020836132bd565b9150612d9a826138ea565b602082019050919050565b6000612db2600d836132bd565b9150612dbd82613913565b602082019050919050565b6000612dd56020836132bd565b9150612de08261393c565b602082019050919050565b6000612df86018836132bd565b9150612e0382613965565b602082019050919050565b6000612e1b6021836132bd565b9150612e268261398e565b604082019050919050565b6000612e3e602b836132bd565b9150612e49826139dd565b604082019050919050565b6000612e61602e836132bd565b9150612e6c82613a2c565b604082019050919050565b612e8081613408565b82525050565b6000612e928285612bd0565b9150612e9e8284612bd0565b91508190509392505050565b6000602082019050612ebf6000830184612b22565b92915050565b6000608082019050612eda6000830187612b22565b612ee76020830186612b22565b612ef46040830185612e77565b8181036060830152612f068184612b4f565b905095945050505050565b6000602082019050612f266000830184612b31565b92915050565b6000604082019050612f416000830185612b40565b612f4e6020830184612e77565b9392505050565b60006020820190508181036000830152612f6f8184612b4f565b905092915050565b6000602082019050612f8c6000830184612b88565b92915050565b60006020820190508181036000830152612fac8184612b97565b905092915050565b60006020820190508181036000830152612fcd81612c01565b9050919050565b60006020820190508181036000830152612fed81612c24565b9050919050565b6000602082019050818103600083015261300d81612c47565b9050919050565b6000602082019050818103600083015261302d81612c6a565b9050919050565b6000602082019050818103600083015261304d81612c8d565b9050919050565b6000602082019050818103600083015261306d81612cb0565b9050919050565b6000602082019050818103600083015261308d81612cd3565b9050919050565b600060208201905081810360008301526130ad81612cf6565b9050919050565b600060208201905081810360008301526130cd81612d19565b9050919050565b600060208201905081810360008301526130ed81612d3c565b9050919050565b6000602082019050818103600083015261310d81612d5f565b9050919050565b6000602082019050818103600083015261312d81612d82565b9050919050565b6000602082019050818103600083015261314d81612da5565b9050919050565b6000602082019050818103600083015261316d81612dc8565b9050919050565b6000602082019050818103600083015261318d81612deb565b9050919050565b600060208201905081810360008301526131ad81612e0e565b9050919050565b600060208201905081810360008301526131cd81612e31565b9050919050565b600060208201905081810360008301526131ed81612e54565b9050919050565b60006020820190506132096000830184612e77565b92915050565b600061321961322a565b905061322582826134a5565b919050565b6000604051905090565b600067ffffffffffffffff82111561324f5761324e6135dd565b5b6132588261360c565b9050602081019050919050565b600067ffffffffffffffff8211156132805761327f6135dd565b5b6132898261360c565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b60006132e482613408565b91506132ef83613408565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561332457613323613550565b5b828201905092915050565b600061333a82613408565b915061334583613408565b9250826133555761335461357f565b5b828204905092915050565b600061336b82613408565b915061337683613408565b92508282101561338957613388613550565b5b828203905092915050565b600061339f826133e8565b9050919050565b60008115159050919050565b6000819050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061342a82613412565b9050919050565b82818337600083830152505050565b60005b8381101561345e578082015181840152602081019050613443565b8381111561346d576000848401525b50505050565b6000600282049050600182168061348b57607f821691505b6020821081141561349f5761349e6135ae565b5b50919050565b6134ae8261360c565b810181811067ffffffffffffffff821117156134cd576134cc6135dd565b5b80604052505050565b60006134e182613408565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561351457613513613550565b5b600182019050919050565b600061352a82613408565b915061353583613408565b9250826135455761354461357f565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f556e657870656374656420645049440000000000000000000000000000000000600082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f6e6f207472616e73666572000000000000000000000000000000000000000000600082015250565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60008201527f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c0000602082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f4e6f207065726d697373696f6e00000000000000000000000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4552433732313a20696e76616c696420746f6b656e2049440000000000000000600082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960008201527f6e697469616c697a696e67000000000000000000000000000000000000000000602082015250565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560008201527f72206e6f7220617070726f766564000000000000000000000000000000000000602082015250565b613a8481613394565b8114613a8f57600080fd5b50565b613a9b816133a6565b8114613aa657600080fd5b50565b613ab2816133b2565b8114613abd57600080fd5b50565b613ac9816133bc565b8114613ad457600080fd5b50565b613ae081613408565b8114613aeb57600080fd5b5056fea26469706673582212209e14f59ea02aeddd45a8778825f278790a4ca151a5543be2bdfe0199b437845f64736f6c63430008040033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/nodes-lib/src/api.ts b/nodes-lib/src/api.ts deleted file mode 100644 index d51755e20..000000000 --- a/nodes-lib/src/api.ts +++ /dev/null @@ -1,775 +0,0 @@ -import axios, { - AxiosError, - type AxiosResponse -} from "axios"; -import { - ResearchObjectComponentType, - type CodeComponent, - type DataComponent, - type DriveObject, - type ExternalLinkComponent, - type PdfComponent, - type ResearchObjectV1, - ResearchObjectComponentDocumentSubtype, - ResearchObjectComponentLinkSubtype, - ResearchObjectComponentCodeSubtype, - type ManifestActions, - type ResearchObjectV1Component, - type License, - type ResearchObjectV1Author, - type ResearchField, - type ResearchObjectComponentSubtypes, -} from "@desci-labs/desci-models"; -import FormData from "form-data"; -import { createReadStream } from "fs"; -import type { NodeIDs } from "@desci-labs/desci-codex-lib/dist/src/types.js"; -import { publish } from "./publish.js"; -import type { ResearchObjectDocument } from "./automerge.js"; -import { randomUUID } from "crypto"; -import { NODES_API_URL, NODES_API_KEY } from "./config.js"; - -const ROUTES = { - deleteData: `${NODES_API_URL}/v1/data/delete`, - updateData: `${NODES_API_URL}/v1/data/update`, - updateExternalCid: `${NODES_API_URL}/v1/data/updateExternalCid`, - /** Append `/uuid/tree` for tree to fetch. - * The `tree` string does nothing but satisfy an old param requirement. - */ - retrieveTree: `${NODES_API_URL}/v1/data/retrieveTree`, - moveData: `${NODES_API_URL}/v1/data/move`, - createDraft: `${NODES_API_URL}/v1/nodes/createDraft`, - /** Append /uuid with node to delete */ - deleteDraft: `${NODES_API_URL}/v1/nodes`, - /** Append /uuid for node to show */ - showNode: `${NODES_API_URL}/v1/nodes/objects`, - listNodes: `${NODES_API_URL}/v1/nodes`, - prepublish: `${NODES_API_URL}/v1/nodes/prepublish`, - publish: `${NODES_API_URL}/v1/nodes/publish`, - /** Append `/uuid` for fetching document, `/uuid/actions` to mutate */ - documents: `${NODES_API_URL}/v1/nodes/documents`, - /** Append /uuid for node to fetch publish history for */ - dpidHistory: `${NODES_API_URL}/v1/pub/versions`, -} as const; - -export type CreateDraftParams = { - title: string, - // Some desci-server code expects these arrays to exist - links: { - pdf: string[], - metadata: string[], - }, - defaultLicense: License, - researchFields: ResearchField[], -}; - -export type CreateDraftResponse = { - ok: boolean, - hash: string, - uri: string, - node: NodeResponse, - version: NodeVersion, - documentId: string, -}; - -export const createDraftNode = async ( - params: Omit, -): Promise => { - const payload: CreateDraftParams = { - ...params, - links: { - pdf: [], - metadata: [], - }, - }; - const { data } = await axios.post( - ROUTES.createDraft, payload, { headers: getHeaders() } - ); - - return data; -}; - -export type ListedNode = { - uuid: string, - id: string, - createdAt: string, - updatedAt: string, - ownerId: number, - title: string, - manifestUrl: string, - isPublished: boolean, - cid: string, - NodeCover: any[], - index?: IndexedNode[], -}; - -/** - * List nodes for the authenticated user. -*/ -export const listNodes = async ( -): Promise => { - const { data } = await axios.get<{nodes: ListedNode[]}>( - ROUTES.listNodes + "/", { headers: getHeaders() } - ); - - return data.nodes; -}; - -export const deleteDraftNode = async ( - uuid: string, -): Promise => { - return await axios.delete( - ROUTES.deleteDraft + `/${uuid}`, - { headers: getHeaders() } - ); -}; - -export type NodeResponse = { - id: number, - createdAt: string, - updatedAt: string, - title: string, - cid: string, - state: string, - isFeatured: boolean, - manifestUrl: string, - manifestData: ResearchObjectV1, - replicationFactor: number, - ownerId: number, - uuid: string, - deletedAt?: string, - isDeleted: boolean, - manifestDocumentId: string, - ceramicStream?: string, -}; - -export const getDraftNode = async ( - uuid: string, -): Promise => { - const { data } = await axios.get( - ROUTES.showNode + `/${uuid}`, - { headers: getHeaders(), } - ); - - return data; -}; - -type NodeVersion = { - id: number; - manifestUrl: string; - cid: string; - transactionId: string | null; - nodeId: number | null; -}; - -export type PrepublishResponse = { - ok: boolean; - updatedManifestCid: string; - updatedManifest: ResearchObjectV1; - version?: NodeVersion; - ceramicStream?: string; -}; - -/** - * Computes the draft drive DAG, and updates the data bucket CID - * with the new root. Note this does not actually publish the draft, - * just tells the backend to prepare for it. - * - * @param uuid - UUID of the node to prepublish. - * @param - Your API key. -*/ -export const prePublishDraftNode = async ( - uuid: string, -): Promise => { - // Compute the draft drive DAG, and update the data bucket CID - const { data } = await axios.post( - ROUTES.prepublish, - { uuid }, - { headers: getHeaders(), } - ); - - return data; -}; - -type PublishParams = { - uuid: string, - cid: string, - manifest: ResearchObjectV1, - transactionId?: string, - nodeVersionId?: string, - ceramicStream?: string, -}; - -export type PublishResponse = { - ok: boolean, - updatedManifestCid: string, - ceramicIDs?: NodeIDs, -}; - -export const publishDraftNode = async ( - uuid: string, -): Promise => { - const publishResult = await publish(uuid); - - const pubParams: PublishParams = { - uuid, - cid: publishResult.cid, - manifest: publishResult.manifest, - transactionId: publishResult.transactionId, - ceramicStream: publishResult.ceramicIDs?.streamID, - }; - - let data: { ok: boolean }; - try { - const backendPublishResult = await axios.post<{ok: boolean}>( - ROUTES.publish, - pubParams, - { headers: getHeaders(), } - ); - data = backendPublishResult.data; - } catch (e) { - console.log(`Publish flow was successful, but backend update failed for uuid ${uuid}.`); - throw e; - } - - return { - ...data, - ceramicIDs: publishResult.ceramicIDs, - updatedManifestCid: publishResult.cid - }; -}; - -export type DeleteDataParams = { - uuid: string, - path: string, -}; - -export type DeleteDataResponse = { - manifest: ResearchObjectV1; - manifestCid: string; -}; - -export const deleteData = async ( - params: DeleteDataParams, -) => { - const { data } = await axios.post( - ROUTES.deleteData, - { - ...params, - path: makeAbsolutePath(params.path), - }, - { headers: getHeaders() } - ); - - return data; -}; - -export type MoveDataParams = { - uuid: string, - oldPath: string, - newPath: string, -}; - -export type MoveDataResponse = { - manifest: ResearchObjectV1, - manifestCid: string, -}; - -export const moveData = async ( - params: MoveDataParams, -) => { - const { data } = await axios.post( - ROUTES.moveData, - { - ...params, - oldPath: makeAbsolutePath(params.oldPath), - newPath: makeAbsolutePath(params.newPath), - }, - { headers: getHeaders() } - ); - - return data; -}; - -export type RetrieveResponse = { - status?: number; - tree: DriveObject[]; - date: string; -}; - -export const retrieveDraftFileTree = async ( - uuid: string, -) => { - const { data } = await axios.get( - ROUTES.retrieveTree + `/${uuid}/tree`, { headers: getHeaders() } - ); - - return data; -}; - -export type CreateFolderParams = { - uuid: string, - locationPath: string, - folderName: string, -}; - -export type CreateFolderResponse = { - manifest: ResearchObjectV1, - manifestCid: string, - tree: DriveObject[], - date: string, -}; - -export const createNewFolder = async ( - params: CreateFolderParams, -) => { - const { uuid, folderName, locationPath } = params; - const form = new FormData(); - form.append("uuid", uuid); - form.append("newFolderName", folderName); - form.append("contextPath", makeAbsolutePath(locationPath)); - const { data } = await axios.post( - ROUTES.updateData, form, { headers: getHeaders(true)} - ); - - return data; -}; - -/** Params needed to upload a set of files */ -export type UploadParams = { - /** ID of target node */ - uuid: string, - /** - * Absolute path to target location in drive. - * Note that folders must already exist. - */ - targetPath: string, - /** Local paths to files for upload */ - localFilePaths: string[], -}; - -export type UploadFilesResponse = { - manifest: ResearchObjectV1, - manifestCid: string, - tree: DriveObject[], - date: string, -}; - -export const uploadFiles = async ( - params: UploadParams, -): Promise => { - const { targetPath, localFilePaths, uuid } = params; - const form = new FormData(); - form.append("uuid", uuid); - form.append("contextPath", makeAbsolutePath(targetPath)); - - localFilePaths.forEach(f => { - const stream = createReadStream(f); - form.append("files", stream); - }); - - const { data } = await axios.post( - ROUTES.updateData, form, { headers: getHeaders(true)} - ); - - return data; -}; - -/** Upload an externally hosted PDF file */ -export type UploadPdfFromUrlParams = { - /** ID of target node */ - uuid: string, - /** Web URL to the target document, and its filename */ - externalUrl: ExternalUrl, - /** Target path in the drive (folders must exist beforehand) */ - targetPath: string, - /** What type of document the target file is */ - componentSubtype: ResearchObjectComponentDocumentSubtype, -}; - -/** - * Reference to externally hosted data to upload. Capable of handling - * pdf or github repos at the moment. -*/ -export type ExternalUrl = { - /** Web URL to the target resource */ - url: string, - /** Name of the file or code repo */ - path: string, -}; - -/** - * Upload a PDF hosted elsewhere. Backend automatically creates a matching - * component which allows setting metadata. -*/ -export const uploadPdfFromUrl = async ( - params: UploadPdfFromUrlParams, -): Promise => { - const { uuid, targetPath, externalUrl, componentSubtype } = params; - const form = new FormData(); - form.append("uuid", uuid); - form.append("contextPath", makeAbsolutePath(targetPath)); - form.append("externalUrl", JSON.stringify(externalUrl)); - form.append("componentType", ResearchObjectComponentType.PDF); - form.append("componentSubtype", componentSubtype); - const { data } = await axios.post( - ROUTES.updateData, form, { headers: getHeaders(true)} - ); - return data -} - -export type UploadGithubRepoFromUrlParams = { - /** ID of target node */ - uuid: string, - /** Web URL to the target repo, and its name */ - externalUrl: ExternalUrl, - /** Target path in the drive (folders must exist beforehand) */ - targetPath: string, - /** What type of code the repo contains */ - componentSubtype: ResearchObjectComponentCodeSubtype, -}; - -export const uploadGithubRepoFromUrl = async ( - params: UploadGithubRepoFromUrlParams, -): Promise => { - const { uuid, externalUrl, targetPath, componentSubtype } = params; - const form = new FormData(); - form.append("uuid", uuid); - form.append("contextPath", makeAbsolutePath(targetPath)); - form.append("externalUrl", JSON.stringify(externalUrl)); - form.append("componentType", ResearchObjectComponentType.CODE); - form.append("componentSubtype", componentSubtype); - const { data } = await axios.post( - ROUTES.updateData, form, { headers: getHeaders(true)} - ); - return data; -}; - -export type AddExternalTreeParams = { - uuid: string, - externalCids: { name: string, cid: string }[], - targetPath: string, - componentType: ResearchObjectComponentType, - componentSubtype: ResearchObjectComponentSubtypes, -}; - -/** - * Add a publicly available UnixFS tree to the drive, without uploading - * the content. -*/ -export const addExternalUnixFsTree = async ( - params: AddExternalTreeParams, -): Promise => { - const { data } = await axios.post( - ROUTES.updateExternalCid, - { ...params, contextPath: makeAbsolutePath(params.targetPath)}, - { headers: getHeaders() }, - ); - return data; -}; - -/** Historical log entry for a dPID */ -export type IndexedNodeVersion = { - /** Manifest CID in EVM format */ - cid: string; - /** Transaction ID of the update event */ - id: string; - /** Epoch timestamp of the update*/ - time: string; -}; - -/** Represents the state and publication history of a dPID */ -export type IndexedNode = { - /** Node UUID in hex */ - id: string; - /** Node UUID in decimal */ - id10: string; - /** Account who owns the node */ - owner: string; - /** The most recent manifest CID */ - recentCid: string; - /** Publication history of the node */ - versions: IndexedNodeVersion[]; -}; - -export const getDpidHistory = async ( - uuid: string, -): Promise => { - const { data } = await axios.get( - ROUTES.dpidHistory + `/${uuid}` - ); - - return data.versions; -}; - -export type ChangeManifestParams = { - uuid: string, - actions: ManifestActions[], -}; - -export type ManifestDocumentResponse = { - documentId: string, - document: ResearchObjectDocument, -}; - -const getManifestDocument = async ( - uuid: string, -): Promise => { - const { data } = await axios.get( - ROUTES.documents + `/${uuid}` - ); - - return data; -}; - -/** - * Send a generic manifest change to the backend. Normally, one of the - * special-purpose functions is easier to use. - * @param uuid - ID of the node - * @param actions - series of change actions to perform - * @param - your API key or session token - * @returns the new state of the manifest document -*/ -export const changeManifest = async ( - uuid: string, - actions: ManifestActions[], -): Promise => { - let actionResponse: AxiosResponse; - try { - actionResponse = await axios.post( - ROUTES.documents + `/${uuid}/actions`, - { actions }, - { headers: getHeaders() } - ); - } catch (e) { - const err = e as AxiosError - // Node doesn't have an automerge document, needs initialization - if (err.status === 400 && err.message.toLowerCase().includes("missing automerge document")) { - await getManifestDocument(uuid); - return await changeManifest(uuid, actions); - } else { - throw e; - }; - }; - - return actionResponse.data; -}; - -export type ComponentParam = - | PdfComponent - | ExternalLinkComponent - | DataComponent - | CodeComponent; - -/** - * Creates a new component in the node. - * @param uuid - ID of the node - * @param params - component to add - * @param - your API key or session token - * @returns the new state of the manifest document -*/ -export const addRawComponent = async ( - uuid: string, - params: ComponentParam, -): Promise => { - const action: ManifestActions = { - type: "Add Component", - component: params, - }; - return await changeManifest(uuid, [action]); -}; - -/** - * Update the content of a component. -*/ -export type UpdateComponentParams = { - /** The new component data */ - component: ResearchObjectV1Component, - /** Which component index to update */ - componentIndex: number, -}; - -export const updateComponent = async ( - uuid: string, - params: UpdateComponentParams, -): Promise => { - const { component, componentIndex } = params; - const action: ManifestActions = { - type: "Update Component", - component, - componentIndex, - }; - return await changeManifest(uuid, [action]); -}; - -/** Parameters for adding an external link component to manifest */ -export type AddLinkComponentParams = { - /** Human-readable name of component */ - name: string, - /** Link component refers to */ - url: string, - /** Which type of resource the link points to */ - subtype: ResearchObjectComponentLinkSubtype, - /** Wether to show the link as a central component of the object */ - starred: boolean, -}; - -export const addLinkComponent = async ( - uuid: string, - params: AddLinkComponentParams, -): Promise => { - const fullParams: ExternalLinkComponent = { - id: randomUUID(), - name: params.name, - type: ResearchObjectComponentType.LINK, - subtype: params.subtype, - payload: { - url: params.url, - path: `root/External Links/${params.name}`, - }, - starred: params.starred - }; - return await addRawComponent(uuid, fullParams); -} - -/** - * Parameters for adding a PDF component to manifest. This is done after - * uploading the file, and allows adding richer metadata to the document. -*/ -export type AddPdfComponentParams = { - /** Human-readable name of the document */ - name: string, - /** Absolute path to the file in the drive */ - pathToFile: string, - /** CID of the file */ - cid: string, - /** Indicates the type of document */ - subtype: ResearchObjectComponentDocumentSubtype, - /** Wether to show the document as a central component of the object */ - starred: boolean, -}; - -export const addPdfComponent = async ( - uuid: string, - params: AddPdfComponentParams, -): Promise => { - const fullParams: PdfComponent = { - id: randomUUID(), - name: params.name, - type: ResearchObjectComponentType.PDF, - subtype: params.subtype, - payload: { - cid: params.cid, - path: makeAbsolutePath(params.pathToFile), - }, - starred: params.starred, - }; - return await addRawComponent(uuid, fullParams); -}; - -/** - * Parameters for adding code component to manifest. These can be - * nested in layers to mark subdirectories as other types of code, etc. -*/ -export type AddCodeComponentParams = { - /** Human-readable name of the code collection */ - name: string, - /** Absolute path to the code in the drive */ - path: string, - /** CID of the target file or unixFS directory */ - cid: string, - /** */ - language: string, - /** Indicates the type of document */ - subtype: ResearchObjectComponentCodeSubtype, - /** Wether to show the document as a central component of the object */ - starred: boolean, -}; - -/** - * Manually add a code component to mark a subtree of the drive as code. -*/ -export const addCodeComponent = async ( - uuid: string, - params: AddCodeComponentParams, -): Promise => { - const fullParams: CodeComponent = { - id: randomUUID(), - name: params.name, - type: ResearchObjectComponentType.CODE, - subtype: params.subtype, - payload: { - language: params.language, - path: makeAbsolutePath(params.path), - cid: params.cid, - }, - starred: params.starred, - }; - return await addRawComponent(uuid, fullParams); -}; - -export const deleteComponent = async ( - uuid: string, - path: string, -): Promise => await changeManifest( - uuid, [{ type: "Delete Component", path: makeAbsolutePath(path)}]); - -export const updateTitle = async ( - uuid: string, - title: string, -): Promise => - await changeManifest(uuid, [{ type: "Update Title", title }]); - -export const updateDescription = async ( - uuid: string, - description: string, -): Promise => - await changeManifest(uuid, [{ type: "Update Description", description }]); - -export const updateLicense = async ( - uuid: string, - license: License, -): Promise => - await changeManifest(uuid, [{ type: "Update License", defaultLicense: license }]); - -export const updateResearchFields = async ( - uuid: string, - researchFields: ResearchField[], -): Promise => - await changeManifest(uuid, [{ type: "Update ResearchFields", researchFields }]); - -export const addContributor = async ( - uuid: string, - author: ResearchObjectV1Author, -): Promise => - await changeManifest(uuid, [{ type: "Add Contributor", author }]); - -export const removeContributor = async ( - uuid: string, - contributorIndex: number, -): Promise => - await changeManifest(uuid, [{ type: "Remove Contributor", contributorIndex }]); - -export const updateCoverImage = async ( - uuid: string, - cid: string | undefined, -): Promise => - await changeManifest(uuid, [{ type: "Update CoverImage", cid }]); - -const getHeaders = (isFormData: boolean = false) => { - const headers = { - "api-key": NODES_API_KEY, - ...(isFormData ? { "content-type": "multipart/form-data" } : {}) - }; - return headers; -}; - -const makeAbsolutePath = (path: string) => { - // Sensible definitions of root - if (!path || path === "root" || path === "root/") return "root"; - // Support unix-style absolute paths - if (path.startsWith("/")) return `root${path}`; - // What endpoints actually expect - if (path.startsWith("root/")) return path; - // Just add root to other paths - return `root/${path}`; -}; diff --git a/nodes-lib/src/automerge.ts b/nodes-lib/src/automerge.ts deleted file mode 100644 index 046b94c2a..000000000 --- a/nodes-lib/src/automerge.ts +++ /dev/null @@ -1,9 +0,0 @@ -import type { - ResearchObjectV1, -} from "@desci-labs/desci-models"; - -export type ResearchObjectDocument = { - manifest: ResearchObjectV1; - uuid: string; - driveClock: string; -}; diff --git a/nodes-lib/src/chain.ts b/nodes-lib/src/chain.ts deleted file mode 100644 index 4c1f07466..000000000 --- a/nodes-lib/src/chain.ts +++ /dev/null @@ -1,159 +0,0 @@ -import { Wallet, getDefaultProvider, type ContractReceipt, BigNumber, Contract } from "ethers"; -import { SigningKey, formatBytes32String } from "ethers/lib/utils.js"; -import type { DpidRegistry, ResearchObject } from "@desci-labs/desci-contracts/typechain-types"; -import { convertUUIDToHex, convertCidTo0xHex} from "./util/converting.js"; -import { changeManifest, prePublishDraftNode, type PrepublishResponse } from "./api.js" -import { - RO_CONTRACT_ADDRESS, - DPID_CONTRACT_ADDRESS, - ETHEREUM_RPC_URL, - PUBLISH_PKEY, -} from "./config.js"; - -const { default: { abi: researchObjectABI }} = await import( - "./abi/ResearchObject.json", - { assert: { type: "json" }} -); -const { default: { abi: dpidRegistryAbi }} = await import( - "./abi/DpidRegistry.json", - { assert: { type: "json" }} -); - -const LOG_CTX = "[nodes-lib::chain]" - -const DEFAULT_DPID_PREFIX_STRING = "beta"; -const DEFAULT_DPID_PREFIX = formatBytes32String(DEFAULT_DPID_PREFIX_STRING); - -const ethereumProvider = getDefaultProvider(ETHEREUM_RPC_URL); - -const walletFromPkey = (pkey: string): Wallet => { - pkey = pkey.startsWith("0x") ? pkey : `0x${pkey}`; - const key = new SigningKey(pkey); - return new Wallet(key, ethereumProvider); -}; - -const wallet = walletFromPkey(PUBLISH_PKEY); -const researchObjectContract = new Contract( - RO_CONTRACT_ADDRESS, - researchObjectABI, - wallet -) as unknown as ResearchObject; - -const dpidRegistryContract = new Contract( - DPID_CONTRACT_ADDRESS, - dpidRegistryAbi, - wallet -) as unknown as DpidRegistry; - -export type DpidPublishResult = { - prepubResult: PrepublishResponse, - reciept: ContractReceipt, -}; - -/** - * Publish a node to the dPID registry contract. - */ -export const dpidPublish = async ( - uuid: string, - dpidExists: boolean, -): Promise => { - let reciept: ContractReceipt; - let prepubResult: PrepublishResponse; - if (dpidExists) { - console.log(`${LOG_CTX} dpid exists for ${uuid}, updating`); - try { - prepubResult = await prePublishDraftNode(uuid); - reciept = await updateExistingDpid(uuid, prepubResult.updatedManifestCid); - } catch(e) { - const err = e as Error; - console.log(`${LOG_CTX} Failed updating dpid for uuid ${uuid}: ${err.message}`); - throw err; - }; - } else { - console.log(`${LOG_CTX} no dpid found for ${uuid}, registering new`); - try { - const registrationResult = await registerNewDpid(uuid); - reciept = registrationResult.reciept; - prepubResult = registrationResult.prepubResult; - } catch (e) { - const err = e as Error; - console.log(`${LOG_CTX} Failed registering new dpid for uuid ${uuid}: ${err.message}`); - throw err; - }; - }; - return { prepubResult, reciept }; -}; - -/** - * Update an existing dPID with a new version of the manifest. - */ -const updateExistingDpid = async ( - uuid: string, - prepubManifestCid: string -): Promise => { - const cidBytes = convertCidTo0xHex(prepubManifestCid); - const hexUuid = convertUUIDToHex(uuid); - - const tx = await researchObjectContract.updateMetadata(hexUuid, cidBytes); - return await tx.wait(); -}; - -/** - * Optimistically create a manifest with the next available dPID, - * and try to register it as such. - * @throws on dpid registration failure. - */ -const registerNewDpid = async ( - uuid: string, -): Promise<{ reciept: ContractReceipt, prepubResult: PrepublishResponse}> => { - const optimisticDpid = await getPreliminaryDpid(); - const regFee = await dpidRegistryContract.getFee(); - - await changeManifest( - uuid, - [{ - type: "Publish Dpid", - dpid: { prefix: DEFAULT_DPID_PREFIX_STRING, id: optimisticDpid.toString() } - }], - ); - - let prepubResult: PrepublishResponse; - let reciept: ContractReceipt; - try { - prepubResult = await prePublishDraftNode(uuid); - const cidBytes = convertCidTo0xHex(prepubResult.updatedManifestCid); - const hexUuid = convertUUIDToHex(uuid); - - // Throws if the expected dPID isn't available - const tx = await researchObjectContract.mintWithDpid( - hexUuid, - cidBytes, - DEFAULT_DPID_PREFIX, - optimisticDpid, - { value: regFee, gasLimit: 350000 } - ); - reciept = await tx.wait(); - } catch (e) { - console.log(`${LOG_CTX} dPID registration failed, revert optimistic dPID in manifest of ${uuid}`) - await changeManifest( - uuid, [{ type: "Remove Dpid" }] - ); - throw e; - }; - console.log(`${LOG_CTX} Successfully registered as dPID ${optimisticDpid}`); - return { reciept, prepubResult }; -}; - -/** - * Get the next dPID up for minting, for creating an optimistic manifest. - * @returns the next free dPID - */ -const getPreliminaryDpid = async (): Promise => { - const [nextFreeDpid, _] = await dpidRegistryContract.getOrganization(DEFAULT_DPID_PREFIX); - return nextFreeDpid; -}; - -export const hasDpid = async ( - uuid: string, -): Promise => - await researchObjectContract.exists(convertUUIDToHex(uuid)); diff --git a/nodes-lib/src/codex.ts b/nodes-lib/src/codex.ts deleted file mode 100644 index d8ed874f3..000000000 --- a/nodes-lib/src/codex.ts +++ /dev/null @@ -1,136 +0,0 @@ -import { - authenticatedCeramicClient, - createResearchObject, - newComposeClient, - updateResearchObject, - type ComposeClient, - type NodeIDs, - queryResearchObject, - resolveHistory, - newCeramicClient, -} from "@desci-labs/desci-codex-lib/dist/src/index.js"; -import type { IndexedNodeVersion, PrepublishResponse } from "./api.js"; -import { convert0xHexToCid } from "./util/converting.js"; -import { - PUBLISH_PKEY, - CERAMIC_NODE_URL, -} from "./config.js"; - -/** - * Publish an object modification to Codex. If it's the initial publish, it will be done - * onto a new stream. If there is a known existing stream for the object, the update is - * made through a new commit to the same stream. If there is history, but no known stream, - * it's backfilled onto a new one. - * - * @param prepublishResult - The new modification to publish - * @param versions - Previous versions of the object, to potentially migrate - * @param existingStream - A known stream for this object - * @returns the stream ID of the object - */ -export const codexPublish = async ( - prepublishResult: PrepublishResponse, - dpidHistory: IndexedNodeVersion[], -): Promise => { - console.log("[DEBUG]::CODEX starting publish..."); - const ceramic = await authenticatedCeramicClient( - PUBLISH_PKEY.startsWith("0x") ? PUBLISH_PKEY.slice(2) : PUBLISH_PKEY - ); - const compose = newComposeClient({ ceramic }); - - // If we know about a stream already, let's assume we backfilled it initially - if (prepublishResult.ceramicStream) { - console.log(`[DEBUG]::CODEX publishing to known stream ${prepublishResult.ceramicStream}...`); - const ro = await updateResearchObject(compose, { - id: prepublishResult.ceramicStream, - title: prepublishResult.updatedManifest.title, - manifest: prepublishResult.updatedManifestCid, - }); - console.log( - `[DEBUG]::CODEX successfully updated ${ro.streamID} with commit ${ro.commitID}` - ); - return { streamID: ro.streamID, commitID: ro.commitID }; - }; - - // Otherwise, create a new stream, potentially backfilling it with - // earlier updates. - if (dpidHistory.length === 0) { - console.log("[DEBUG]::CODEX publishing to new stream..."); - const ro = await createResearchObject(compose, { - title: prepublishResult.updatedManifest.title || "", - manifest: prepublishResult.updatedManifestCid, - }); - console.log( - `[DEBUG]::CODEX published to new stream ${ro.streamID} with commit ${ro.commitID}` - ); - return { streamID: ro.streamID, commitID: ro.commitID }; - } else { - console.log("[DEBUG]::CODEX backfilling new stream to mirror history..."); - const streamID = await backfillNewStream(compose, dpidHistory); - console.log("[DEBUG]::CODEX backfill done, recursing to append latest event..."); - return await codexPublish( - { ...prepublishResult, ceramicStream: streamID }, - dpidHistory, - ); - }; -}; - -/** - * Migrate a node's history to a stream, by working through the versions chronologically - * and replaying the manifest versions onto a new stream. - * @param compose - ComposeDB client instance - * @param versions - RO history log - * @returns ID of the new stream - */ -const backfillNewStream = async ( - compose: ComposeClient, - versions: IndexedNodeVersion[] -): Promise => { - console.log( - `[DEBUG]::CODEX starting backfill migration for versions:\n${JSON.stringify( - versions, - undefined, - 2 - )}` - ); - const backfillSequential = async ( - prevPromise: Promise, - nextVersion: IndexedNodeVersion, - ix: number - ): Promise => { - const { streamID, commitID } = await prevPromise; - streamID && - console.log( - `[DEBUG]::CODEX backfilled version ${ix} into ${streamID} with commit ${commitID}` - ); - - const title = "[BACKFILLED]"; // version.title is the title of the event, e.g. "Published" - const manifest = convert0xHexToCid(nextVersion.cid); - const op = - streamID === "" - ? createResearchObject(compose, { title, manifest }) - : updateResearchObject(compose, { id: streamID, title, manifest }); - return op; - }; - - const { streamID } = await versions.reduce( - backfillSequential, - Promise.resolve({ streamID: "", commitID: "" }) - ); - return streamID; -}; - -export const getPublishedFromCodex = async ( - id: string -) => { - const ceramic = newCeramicClient(CERAMIC_NODE_URL); - - const compose = newComposeClient({ ceramic }); - return await queryResearchObject(compose, id); -}; - -export const getCodexHistory = async ( - streamID: string -) => { - const ceramic = newCeramicClient(CERAMIC_NODE_URL); - return await resolveHistory(ceramic, streamID); -}; diff --git a/nodes-lib/src/config.ts b/nodes-lib/src/config.ts deleted file mode 100644 index 910e5b329..000000000 --- a/nodes-lib/src/config.ts +++ /dev/null @@ -1,29 +0,0 @@ -import "dotenv/config"; - -const requiredConfigVars = [ - "RO_CONTRACT_ADDRESS", - "DPID_CONTRACT_ADDRESS", - "ETHEREUM_RPC_URL", - "NODES_API_KEY", - "PUBLISH_PKEY", - "NODES_API_URL", - "CERAMIC_NODE_URL", -]; - -const unsetVars = requiredConfigVars - .map(key => ({key, val: process.env[key]})) - .filter(({val}) => !val) - .map(({key}) => key); - -if (unsetVars.length > 0) { - console.log(`[nodes-lib] Required environment variables unset: ${unsetVars}`); - throw new Error("Incomplete configuration"); -}; - -export const RO_CONTRACT_ADDRESS = process.env.RO_CONTRACT_ADDRESS!; -export const DPID_CONTRACT_ADDRESS = process.env.DPID_CONTRACT_ADDRESS!; -export const ETHEREUM_RPC_URL = process.env.ETHEREUM_RPC_URL!; -export const NODES_API_KEY = process.env.NODES_API_KEY!; -export const PUBLISH_PKEY = process.env.PUBLISH_PKEY!; -export const NODES_API_URL = process.env.NODES_API_URL!; -export const CERAMIC_NODE_URL = process.env.CERAMIC_NODE_URL!; diff --git a/nodes-lib/src/errors.ts b/nodes-lib/src/errors.ts deleted file mode 100644 index 9eb511591..000000000 --- a/nodes-lib/src/errors.ts +++ /dev/null @@ -1,22 +0,0 @@ - - -export class BaseError extends Error { - name: T; - message: string; - cause: any; - - constructor({ - name, message, cause - }: { - name: T, - message: string, - cause?: any, - }) { - super(); - this.name = name; - this.message = message; - this.cause = cause; - }; -}; - -export class PublishError extends BaseError<"DPID_PUBLISH_ERROR"> {}; diff --git a/nodes-lib/src/index.ts b/nodes-lib/src/index.ts deleted file mode 100644 index bcc98637a..000000000 --- a/nodes-lib/src/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from "./api.js" - diff --git a/nodes-lib/src/publish.ts b/nodes-lib/src/publish.ts deleted file mode 100644 index 7a80d9133..000000000 --- a/nodes-lib/src/publish.ts +++ /dev/null @@ -1,51 +0,0 @@ -import { type NodeIDs } from "@desci-labs/desci-codex-lib/dist/src/index.js"; -import { getDpidHistory } from "./api.js"; -import { dpidPublish, hasDpid, type DpidPublishResult } from "./chain.js"; -import { codexPublish } from "./codex.js"; -import { PublishError } from "./errors.js"; - -/** - * The complete publish flow, including both the dPID registry and Codex. -*/ -export const publish = async ( - uuid: string, -) => { - let chainPubResponse: DpidPublishResult; - let preexistingDpid: boolean; - try { - preexistingDpid = await hasDpid(uuid); - chainPubResponse = await dpidPublish(uuid, preexistingDpid); - } catch (e) { - /** - * dPID registry operations failed. Since we can't know if the prepublish - * results will be the same next time around, skip doing ceramic publish - * to avoid historical drift. - */ - const err = e as Error; - throw new PublishError({ - name: "DPID_PUBLISH_ERROR", - message: "dPID registration failed", - cause: err, - }); - }; - - let ceramicIDs: NodeIDs | undefined; - try { - // If the dPID is new, skip checking for history to potentially backfill - const publishHistory = preexistingDpid - ? await getDpidHistory(uuid) - : []; - ceramicIDs = await codexPublish(chainPubResponse.prepubResult, publishHistory); - } catch (e) { - const err = e as Error; - console.log("Codex publish failed:", err); - console.log(`Publish flow will continue with uuid ${uuid} as dPID registry already has been updated.`); - }; - - return { - manifest: chainPubResponse.prepubResult.updatedManifest, - cid: chainPubResponse.prepubResult.updatedManifestCid, - ceramicIDs: ceramicIDs, - transactionId: chainPubResponse.reciept.transactionHash, - }; -}; diff --git a/nodes-lib/src/util/base64binary.ts b/nodes-lib/src/util/base64binary.ts deleted file mode 100644 index 3eb98a1c0..000000000 --- a/nodes-lib/src/util/base64binary.ts +++ /dev/null @@ -1,96 +0,0 @@ -/* -Copyright (c) 2011, Daniel Guerrero -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL DANIEL GUERRERO BE LIABLE FOR ANY -DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -/** - * Uses the new array typed in javascript to binary base64 encode/decode - * at the moment just decodes a binary base64 encoded - * into either an ArrayBuffer (decodeArrayBuffer) - * or into an Uint8Array (decode) - * - * References: - * https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer - * https://developer.mozilla.org/en/JavaScript_typed_arrays/Uint8Array - */ - -const Base64Binary = { - _keyStr: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=", - - /* will return a Uint8Array type */ - - decodeArrayBuffer: function (input: string) { - const bytes = (input.length / 4) * 3; - const ab = new ArrayBuffer(bytes); - this.decode(input, ab); - - return ab; - }, - - removePaddingChars: function (input: string) { - const lkey = this._keyStr.indexOf(input.charAt(input.length - 1)); - if (lkey == 64) { - return input.substring(0, input.length - 1); - } - return input; - }, - - decode: function (input: string, arrayBuffer: ArrayBuffer) { - //get last chars to see if are valid - input = this.removePaddingChars(input); - input = this.removePaddingChars(input); - - const bytes = parseInt((input.length / 4) * 3 + "", 10); - - let uarray; - let chr1, chr2, chr3; - let enc1, enc2, enc3, enc4; - let i = 0; - let j = 0; - - if (arrayBuffer) uarray = new Uint8Array(arrayBuffer); - else uarray = new Uint8Array(bytes); - - // eslint-disable-next-line no-useless-escape - input = input.replace(/[^A-Za-z0-9\+\/\=]/g, ""); - - for (i = 0; i < bytes; i += 3) { - //get the 3 octects in 4 ascii chars - enc1 = this._keyStr.indexOf(input.charAt(j++)); - enc2 = this._keyStr.indexOf(input.charAt(j++)); - enc3 = this._keyStr.indexOf(input.charAt(j++)); - enc4 = this._keyStr.indexOf(input.charAt(j++)); - - chr1 = (enc1 << 2) | (enc2 >> 4); - chr2 = ((enc2 & 15) << 4) | (enc3 >> 2); - chr3 = ((enc3 & 3) << 6) | enc4; - - uarray[i] = chr1; - if (enc3 != 64) uarray[i + 1] = chr2; - if (enc4 != 64) uarray[i + 2] = chr3; - } - - return uarray; - }, -}; - -export default Base64Binary; diff --git a/nodes-lib/src/util/converting.ts b/nodes-lib/src/util/converting.ts deleted file mode 100644 index e8be50e16..000000000 --- a/nodes-lib/src/util/converting.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { decode } from "url-safe-base64"; -import Base64Binary from "./base64binary.js"; -import { base16 } from "multiformats/bases/base16"; -import { base32 } from "multiformats/bases/base32"; -import { CID } from "multiformats/cid"; - -export const convertUUIDToHex = (uuid: string) => { - const decoded = decode(uuid + "."); - const buffer = Base64Binary.decodeArrayBuffer(decoded).slice(0, 32); - let base64UuidToBase16 = Buffer.from(buffer).toString("hex"); - base64UuidToBase16 = "0x" + (base64UuidToBase16.length % 2 == 0 - ? base64UuidToBase16 - : "0" + base64UuidToBase16); - return base64UuidToBase16; -}; - -export const convertCidTo0xHex = (cid: string) => { - const c = CID.parse(cid) - const rootStrHex = c.toString(base16); - const paddedAndPrefixed = "0x" + (rootStrHex.length % 2 === 0 ? rootStrHex : "0" + rootStrHex); - return paddedAndPrefixed; -}; - -export const convert0xHexToCid = (hexCid: string) => { - const without0x = hexCid.substring(2); - const withoutPadding = without0x.length % 2 === 0 - ? without0x.substring(1) - : without0x; - - const cidBytes = base16.decode(withoutPadding); - const cid = CID.decode(cidBytes); - return cid.toString(base32); -}; diff --git a/nodes-lib/test/convert.spec.ts b/nodes-lib/test/convert.spec.ts deleted file mode 100644 index 6f03088ed..000000000 --- a/nodes-lib/test/convert.spec.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { test, describe, expect } from "vitest"; -import { convertCidTo0xHex, convert0xHexToCid, convertUUIDToHex } from "../src/util/converting.js"; - -describe("conversion", async () => { - describe("between UUID and hex", async () => { - const uuid = "pOV6-0ZN8k8Nlb3iJ7BHgbHt4V_xt-H-dUbRQCLKl78"; - const expectedHex = "0xa4e57afb464df24f0d95bde227b04781b1ede15ff1b7e1fe7546d14022ca97bf"; - - test("works", async () => { - const actualHex = convertUUIDToHex(uuid) - expect(actualHex).toEqual(expectedHex); - }); - }); - - describe("between CID and hex", async () => { - const exampleCid = "bafkreihge5qw7sc3mqc4wkf4cgpv6udtvrgipfxwyph7dhlyu6bkkt7tfq"; - const expectedHex = "0x0f01551220e627616fc85b6405cb28bc119f5f5073ac4c8796f6c3cff19d78a782a54ff32c"; - - test("works one way", async () => { - const cidAsHex = convertCidTo0xHex(exampleCid); - expect(cidAsHex).toEqual(expectedHex); - }); - - test("works the other way", async () => { - const hexAsCid = convert0xHexToCid(expectedHex); - expect(hexAsCid).toEqual(exampleCid); - }); - }); -}); diff --git a/nodes-lib/test/root.spec.ts b/nodes-lib/test/root.spec.ts deleted file mode 100644 index e425e4ec0..000000000 --- a/nodes-lib/test/root.spec.ts +++ /dev/null @@ -1,605 +0,0 @@ -/* eslint-disable @typescript-eslint/no-explicit-any */ -import { test, describe, beforeAll, expect } from "vitest"; -import type { - AddCodeComponentParams, AddLinkComponentParams, AddPdfComponentParams, - CreateDraftParams, ExternalUrl, PublishResponse, RetrieveResponse, - UploadFilesResponse, -} from "../src/api.js" -import { - createDraftNode, getDraftNode, publishDraftNode, createNewFolder, - retrieveDraftFileTree, moveData, uploadFiles, deleteDraftNode, - getDpidHistory, deleteData, addPdfComponent, addCodeComponent, - uploadPdfFromUrl, uploadGithubRepoFromUrl, listNodes, addLinkComponent, - deleteComponent, updateComponent, changeManifest, updateTitle, - updateDescription, updateLicense, updateResearchFields, addContributor, - removeContributor, addExternalUnixFsTree, updateCoverImage, -} from "../src/api.js"; -import axios from "axios"; -import { getCodexHistory, getPublishedFromCodex } from "../src/codex.js"; -import { dpidPublish } from "../src/chain.js"; -import { sleep } from "./util.js"; -import { convert0xHexToCid } from "../src/util/converting.js"; -import { - ResearchObjectComponentDocumentSubtype, - ResearchObjectComponentCodeSubtype, - ResearchObjectComponentLinkSubtype, - type License, - type ResearchField, - type ResearchObjectV1Author, - ResearchObjectV1AuthorRole, - ResearchObjectComponentType, - ResearchObjectComponentDataSubtype -} from "@desci-labs/desci-models"; - -// Disregard env config, as one likely does not want to spam all of this -// onto a real chain. -const NODES_API_URL = "http://localhost:5420"; - -describe("nodes-lib", () => { - beforeAll(async () => { - try { - console.log(`Checking server reachable at ${NODES_API_URL}...`); - await axios.get(NODES_API_URL); - console.log("Server is reachable"); - } catch (e) { - console.error( - "Failed to connect to desci-server; is the service running?", - ); - process.exit(1); - } - }); - describe("draft nodes", async () => { - test("can be created", async () => { - const response = await createBoilerplateNode(); - - const actual = await getDraftNode(response.node.uuid); - expect(actual.title).toEqual("My Node"); - }); - - test("can be listed", async () => { - await createBoilerplateNode(); - await createBoilerplateNode(); - - const listedNodes = await listNodes(); - // Lazy check that listing returns at least these two nodes - expect(listedNodes.length).toBeGreaterThan(2); - }); - - test("can be deleted", async () => { - const { node: { uuid }} = await createBoilerplateNode(); - - await deleteDraftNode(uuid); - await expect(getDraftNode(uuid)).rejects.toThrowError("403"); - }); - }); - - describe("manifest document actions", async () => { - describe("can update top-level property", async () => { - let uuid: string; - - beforeAll(async () => { - const { node } = await createBoilerplateNode(); - uuid = node.uuid; - }); - - test("title", async () => { - const newTitle = "UNTITLED"; - const { document: { manifest }} = await updateTitle(uuid, newTitle); - expect(manifest.title).toEqual(newTitle); - }); - - test("description", async () => { - const newDesc = "Oh my what an interesting topic"; - const { document: { manifest }} = await updateDescription(uuid, newDesc); - expect(manifest.description).toEqual(newDesc); - }); - - test("license", async () => { - const newLicense: License = "Mozilla Public License 2.0"; - const { document: { manifest }} = await updateLicense(uuid, newLicense); - expect(manifest.defaultLicense).toEqual(newLicense); - }); - - test("research fields", async () => { - const newResearchFields: ResearchField[] = [ "Bathymetry", "Fisheries Science" ]; - const { document: { manifest }} = await updateResearchFields(uuid, newResearchFields); - expect(manifest.researchFields).toEqual(newResearchFields); - }); - - test("contributors", async () => { - const newContributors: ResearchObjectV1Author[] = [ - { - name: "Dr Jones", - role: ResearchObjectV1AuthorRole.AUTHOR, - }, - { - name: "Assistant Measly", - role: ResearchObjectV1AuthorRole.NODE_STEWARD, - } - ]; - await addContributor(uuid, newContributors[0]); - const { document: { manifest }} = await addContributor( - uuid, newContributors[1] - ); - expect(manifest.authors).toEqual(newContributors); - - const { document: { manifest: updatedManifest }} = - await removeContributor(uuid, 1); - expect(updatedManifest.authors).toEqual([newContributors[0]]) - }); - - describe("cover image", async () => { - test("can be set", async () => { - const coverCid = "bafkreidivzimqfqtoqxkrpge6bjyhlvxqs3rhe73owtmdulaxr5do5in7u"; - const { document: { manifest: updatedManifest } } = await updateCoverImage(uuid, coverCid); - expect(updatedManifest.coverImage).toEqual(coverCid); - }); - - test("can be unset", async () => { - const { document: { manifest: updatedManifest } } = await updateCoverImage(uuid, undefined); - expect(updatedManifest.coverImage).toBeUndefined(); - }); - }); - }); - - test("can add link component", async () => { - const { node: { uuid }} = await createBoilerplateNode(); - const component: AddLinkComponentParams = { - name: "my component", - url: "http://google.com", - subtype: ResearchObjectComponentLinkSubtype.OTHER, - starred: false, - }; - await addLinkComponent(uuid, component); - const state = await getDraftNode(uuid); - const actualComponents = state.manifestData.components; - - // Data bucket already present, so new component at index 1 - expect(actualComponents.length).toEqual(2); - expect(actualComponents[1].name).toEqual(component.name); - }); - - test("can add pdf component", async () => { - const { node: { uuid }} = await createBoilerplateNode(); - const localFilePaths = [ "test/test.pdf" ]; - const uploadResult = await uploadFiles({ - uuid, - targetPath: "root", - localFilePaths - }); - - const pdfComponentParams: AddPdfComponentParams = { - name: "Manuscript", - subtype: ResearchObjectComponentDocumentSubtype.MANUSCRIPT, - pathToFile: "root/test.pdf", - cid: uploadResult.tree[0].contains![0].cid, - starred: true, - }; - await addPdfComponent(uuid, pdfComponentParams); - const state = await getDraftNode(uuid); - const actualComponents = state.manifestData.components; - - // Data bucket already present, so new component at index 1 - expect(actualComponents.length).toEqual(2); - expect(actualComponents[1].payload.cid).toEqual(pdfComponentParams.cid); - }); - - test("can add a code component", async () => { - const { node: { uuid }} = await createBoilerplateNode(); - const localFilePaths = [ "test/root.spec.ts" ]; - const uploadResult = await uploadFiles({ - uuid, - targetPath: "root", - localFilePaths - }); - const uploadedFileCid = uploadResult.tree[0].contains![0].cid; - const codeComponentParams: AddCodeComponentParams = { - name: "Tests", - subtype: ResearchObjectComponentCodeSubtype.CODE_SCRIPTS, - cid: uploadedFileCid, - path: "root/root.spec.ts", - language: "typescript", - starred: true, - }; - await addCodeComponent(uuid, codeComponentParams); - const state = await getDraftNode(uuid); - const actualComponents = state.manifestData.components; - - // Data bucket already present, so new component at index 1 - expect(actualComponents.length).toEqual(2); - expect(actualComponents[1].payload.cid).toEqual(uploadedFileCid); - - }); - - test("can delete component", async () => { - const { node: { uuid }} = await createBoilerplateNode(); - await addLinkComponent( - uuid, - { - name: "Link", - url: "https://google.com", - subtype: ResearchObjectComponentLinkSubtype.OTHER, - starred: false, - }, - ); - - await deleteComponent(uuid, `root/External Links/Link`); - const node = await getDraftNode(uuid); - expect(node.manifestData.components.length).toEqual(1); // Just data-bucket - }); - - test("can update component", async () => { - const { node: { uuid }} = await createBoilerplateNode(); - const { document: { manifest }} = await addLinkComponent( - uuid, - { - name: "Link", - url: "https://google.com", - subtype: ResearchObjectComponentLinkSubtype.OTHER, - starred: false, - }, - ); - - // Change - const expectedComponent = manifest.components[1]; - expectedComponent.payload.url = "https://desci.com"; - - await updateComponent( - uuid, - { - componentIndex: 1, - component: expectedComponent, - }, - ); - - const updatedNode = await getDraftNode(uuid); - const updatedComponent = updatedNode.manifestData.components[1]; - expect(updatedComponent.payload.url).toEqual(expectedComponent.payload.url) - }); - }); - - describe("publishing ", async () => { - let uuid: string; - let publishResult: PublishResponse; - - beforeAll(async () => { - const { node } = await createBoilerplateNode(); - uuid = node.uuid; - publishResult = await publishDraftNode(uuid); - expect(publishResult.ok).toEqual(true); - }); - - describe("new node", async () => { - test("adds it to the dpid registry", async () => { - // Allow graph node to index - await sleep(1_500); - - const historyResult = await getDpidHistory(uuid); - const actualCid = convert0xHexToCid(historyResult[0].cid); - expect(actualCid).toEqual(publishResult.updatedManifestCid); - }); - - test("sets dPID in manifest", async () => { - const node = await getDraftNode(uuid); - expect(node.manifestData.dpid).not.toBeUndefined(); - expect(node.manifestData.dpid?.prefix).toEqual("beta"); - expect(node.manifestData.dpid?.id).not.toBeNaN(); - }); - - test("to codex", async () => { - expect(publishResult.ceramicIDs).not.toBeUndefined(); - const ceramicObject = await getPublishedFromCodex(publishResult.ceramicIDs!.streamID); - expect(ceramicObject?.manifest).toEqual(publishResult.updatedManifestCid); - }); - }); - - describe("node update", async () => { - let updateResult: PublishResponse; - - beforeAll(async () => { - updateResult = await publishDraftNode(uuid); - expect(updateResult.ok).toEqual(true); - // Allow graph node to index - await sleep(1_500); - }); - - test("updates entry in dpid registry", async () => { - const historyResult = await getDpidHistory(uuid); - const actualCid = convert0xHexToCid(historyResult[0].cid); - expect(actualCid).toEqual(publishResult.updatedManifestCid); - expect(historyResult.length).toEqual(2); - }); - - test("publishes to codex stream", async () => { - expect(publishResult.ceramicIDs).not.toBeUndefined(); - - const ceramicObject = await getPublishedFromCodex(publishResult.ceramicIDs!.streamID); - expect(ceramicObject?.manifest).toEqual(publishResult.updatedManifestCid); - - const ceramicHistory = await getCodexHistory(publishResult.ceramicIDs!.streamID); - expect(ceramicHistory.length).toEqual(2); - }); - }); - - test("with backfill ceramic migration", async () => { - const { node: { uuid }} = await createBoilerplateNode(); - - // make a dpid-only publish - await dpidPublish(uuid, false); - - // Allow graph node to index - await sleep(1_500); - - // make a regular publish - const pubResult = await publishDraftNode(uuid); - - // Allow graph node to index - await sleep(1_500); - - // make sure codex history is of equal length - const dpidHistory = await getDpidHistory(uuid); - const codexHistory = await getCodexHistory(pubResult.ceramicIDs!.streamID); - expect(dpidHistory.length).toEqual(2); - expect (codexHistory.length).toEqual(2); - }); - - /** This is not an user feature, but part of error handling during publish */ - test("can remove dPID from manifest", async () => { - await changeManifest( - uuid, [{ type: "Remove Dpid" }] - ); - const node = await getDraftNode(uuid); - expect(node.manifestData.dpid).toBeUndefined(); - }); - - }); - - describe("data management", async () => { - describe("trees", async () => { - test("can be retrieved by owner", async () => { - const { ok, node: { uuid }} = await createBoilerplateNode(); - expect(ok).toEqual(true); - - const treeResult = await retrieveDraftFileTree(uuid); - expect(treeResult.tree).toHaveLength(1); - }); - }); - - describe("folders", async () => { - const expectedFolderName = "MyFolder"; - let uuid: string; - - beforeAll(async () => { - const createRes = await createBoilerplateNode(); - expect(createRes.ok).toEqual(true); - - uuid = createRes.node.uuid; - - await createNewFolder({ - uuid, - locationPath: "root", - folderName: expectedFolderName - }); - }); - - test("can be created", async () => { - const treeResult = await retrieveDraftFileTree(uuid); - const actualFolderName = treeResult.tree[0].contains![0].name; - - expect(actualFolderName).toEqual(expectedFolderName); - }); - - test("can be moved", async () => { - const otherFolderName = "dir"; - await createNewFolder({ - uuid, - locationPath: "root", - folderName: otherFolderName, - }); - await moveData( - { - uuid, - oldPath: `root/${otherFolderName}`, - newPath: `root/${expectedFolderName}/${expectedFolderName}` - }, - ); - - const treeResult = await retrieveDraftFileTree(uuid); - - const dir = treeResult.tree[0].contains![0]; - expect(dir.contains![0].name).toEqual(expectedFolderName); - }); - - test("can be deleted", async () => { - await deleteData( - { - uuid, - path: `root/${expectedFolderName}` - }, - ); - const treeResult = await retrieveDraftFileTree(uuid); - - expect(treeResult.tree[0].contains).toEqual([]); - }); - }); - - describe("files", async () => { - test("can be uploaded", async () => { - const { node: { uuid }} = await createBoilerplateNode(); - const localFilePaths = [ "package.json", "package-lock.json" ]; - await uploadFiles({ - uuid, - targetPath: "root", - localFilePaths, - }); - - const treeResult = await retrieveDraftFileTree(uuid); - const driveContent = treeResult.tree[0].contains!; - - expect(driveContent.map(driveObject => driveObject.name)) - .toEqual(expect.arrayContaining(localFilePaths)); - driveContent.forEach(driveObject => { - expect(driveObject.size).toBeGreaterThan(0); - }); - }); - - test("can be moved", async () => { - const { node: { uuid }} = await createBoilerplateNode(); - const localFilePaths = [ "package.json" ]; - const uploadResult = await uploadFiles({ - uuid, - targetPath: "root", - localFilePaths, - }); - expect(uploadResult.tree[0].contains![0].path).toEqual("root/package.json"); - - await moveData({ - uuid, - oldPath: "root/package.json", - newPath: "root/json.package", - }); - - const treeResult = await retrieveDraftFileTree(uuid); - expect(treeResult.tree[0].contains![0].path).toEqual("root/json.package"); - }); - - test("can be deleted", async () => { - const { node: { uuid }} = await createBoilerplateNode(); - const localFilePaths = [ "package.json" ]; - const uploadResult = await uploadFiles({ - uuid, - targetPath: "root", - localFilePaths, - }); - - expect(uploadResult.tree[0].contains![0].name).toEqual("package.json"); - - await deleteData({ - uuid, - path: "root/package.json" - }); - - const treeResult = await retrieveDraftFileTree(uuid); - - expect(treeResult.tree[0].contains!.length).toEqual(0); - }); - - describe("can be uploaded by PDF URL", async () => { - let treeResult: RetrieveResponse; - let uploadResult: UploadFilesResponse; - let externalUrl: ExternalUrl; - beforeAll(async () => { - const { node: { uuid }} = await createBoilerplateNode(); - externalUrl = { - url: "https://ipfs.desci.com/ipfs/bafybeiamslevhsvjlnfejg7p2rzk6bncioaapwb3oauu7zqwmfpwko5ho4", - path: "manuscript.pdf", - }; - uploadResult = await uploadPdfFromUrl({ - uuid, - externalUrl, - targetPath: "root", - componentSubtype: ResearchObjectComponentDocumentSubtype.MANUSCRIPT, - }); - treeResult = await retrieveDraftFileTree(uuid); - }); - - test("adds file to tree", async () => { - const files = treeResult.tree[0].contains; - expect(files).not.toBeUndefined(); - expect(files!.length).toEqual(1); - expect(files![0].name).toEqual(externalUrl.path); - }); - - test("automatically gets a component", async () => { - const components = uploadResult.manifest.components; - // TODO backend bug creates duplicates: https://github.com/desci-labs/nodes/issues/206 - // expect(components.length).toEqual(2); - - const expectedComponent = expect.objectContaining({ - // id: some UUID, - name: "manuscript.pdf", - type: "pdf", - subtype: "manuscript", - payload: expect.objectContaining({ - // cid: some cid, - path: "root/manuscript.pdf", - externalUrl: "https://ipfs.desci.com/ipfs/bafybeiamslevhsvjlnfejg7p2rzk6bncioaapwb3oauu7zqwmfpwko5ho4" - }), - starred: false - }); - - expect(components).toEqual( - expect.arrayContaining([expectedComponent]) - ); - }); - }); - - describe("can be uploaded by repo URL", async () => { - let externalUrl: ExternalUrl; - let treeResult: RetrieveResponse; - beforeAll(async () => { - const { node: { uuid}} = await createBoilerplateNode(); - externalUrl = { - // This is probably stupid to do in a unit test - url: "https://github.com/desci-labs/desci-codex", - path: "DeSci Codex", - }; - await uploadGithubRepoFromUrl({ - uuid, - externalUrl, - targetPath: "root", - componentSubtype: ResearchObjectComponentCodeSubtype.SOFTWARE_PACKAGE, - }); - treeResult = await retrieveDraftFileTree(uuid); - }); - - test("adds repo to tree", async () => { - expect(treeResult.tree[0]).not.toBeUndefined(); - const tree = treeResult.tree[0]; - // Lazy size check, prob ok if it got a lot of stuff - expect(tree.size).toBeGreaterThan(10_000); - expect(tree.contains).not.toBeUndefined(); - expect(tree.contains![0].name).toEqual(externalUrl.path); - expect(tree.contains![0].contains!.length).toBeGreaterThan(5); - }); - }); - }); - - describe("external CID", async () => { - test("can be added", async () => { - const { node: { uuid }} = await createBoilerplateNode(); - await createNewFolder( - {uuid, locationPath: "root", folderName: "catpics"} - ); - const catCid = "bafkreidivzimqfqtoqxkrpge6bjyhlvxqs3rhe73owtmdulaxr5do5in7u"; - const addResult = await addExternalUnixFsTree({ - uuid, - externalCids: [{ - cid: catCid, - name: "cat.jpg", - }], - targetPath: "/catpics", - componentType: ResearchObjectComponentType.DATA, - componentSubtype: ResearchObjectComponentDataSubtype.IMAGE, - }); - - expect(addResult.tree[0].contains![0].contains![0]).toMatchObject(expect.objectContaining({ - cid: catCid, - path: "root/catpics/cat.jpg", - name: "cat.jpg", - external: true, - })); - }); - }); - }); -}); - -const createBoilerplateNode = async () => { - const node: Omit = { - title: "My Node", - defaultLicense: "CC-BY", - researchFields: ["Horticulture"], - }; - - return await createDraftNode(node); -} diff --git a/nodes-lib/test/test.pdf b/nodes-lib/test/test.pdf deleted file mode 100644 index a8e01970f..000000000 Binary files a/nodes-lib/test/test.pdf and /dev/null differ diff --git a/nodes-lib/test/util.ts b/nodes-lib/test/util.ts deleted file mode 100644 index 3a70daf24..000000000 --- a/nodes-lib/test/util.ts +++ /dev/null @@ -1,3 +0,0 @@ -export const sleep = async (seconds: number) => { - await new Promise(r => setTimeout(r, seconds)); -}; diff --git a/nodes-lib/tsconfig.build.json b/nodes-lib/tsconfig.build.json deleted file mode 100644 index f6f9dda24..000000000 --- a/nodes-lib/tsconfig.build.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "extends": "./tsconfig.json", - "include": [ - "src" - ] -} diff --git a/nodes-lib/tsconfig.json b/nodes-lib/tsconfig.json deleted file mode 100644 index e3744bda4..000000000 --- a/nodes-lib/tsconfig.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - /** https://www.typescriptlang.org/docs/handbook/modules/guides/choosing-compiler-options.html */ - "compilerOptions": { - /** Maximise compatibility with ESM/cjs and importer `moduleResolution: bundler` setting */ - "module": "node16", - "target": "es2020", - /** Without strict, we'd error when imported into a project with `strict` */ - "strict": true, - /** Prevent misbehaving import/export statements */ - // "verbatimModuleSyntax": true, // desci-contracts acts up - /** Misbehaving deps: @ceramicnetwork/{codecs,common}, @didtools/{cacao,codecs}, codeco, ipfs-core-types */ - "skipLibCheck": true, - - /** Import friendliness */ - "declaration": true, - "sourceMap": true, - "declarationMap": true, - "outDir": "dist", - - /** Allow importing ABI's */ - "resolveJsonModule": true, - - /** Misc hygiene */ - "forceConsistentCasingInFileNames": true, - "noImplicitReturns": true - } -} diff --git a/nodes-lib/vitest.config.ts b/nodes-lib/vitest.config.ts deleted file mode 100644 index fc13e8af1..000000000 --- a/nodes-lib/vitest.config.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { defineConfig } from "vitest/config"; -import GithubActionsReporter from "vitest-github-actions-reporter"; - -export default defineConfig({ - test: { - include: ["test/**/*.spec.ts"], - reporters: process.env.GITHUB_ACTIONS - ? ["verbose", new GithubActionsReporter()] - : "verbose", - }, -});