From 997b7f41b1d9d1ee1515a029ca67b05348449a9a Mon Sep 17 00:00:00 2001 From: amanusk Date: Sun, 16 Jun 2024 15:36:08 +0300 Subject: [PATCH] drafting ws api --- api/starknet_api_openrpc.json | 159 +++--- api/starknet_trace_api_openrpc.json | 16 +- api/starknet_write_api.json | 8 +- api/starknet_ws_api.json | 358 ++++++++++++ package-lock.json | 844 +++++++++++++--------------- package.json | 8 +- 6 files changed, 862 insertions(+), 531 deletions(-) create mode 100644 api/starknet_ws_api.json diff --git a/api/starknet_api_openrpc.json b/api/starknet_api_openrpc.json index bbf855a..a5f1791 100644 --- a/api/starknet_api_openrpc.json +++ b/api/starknet_api_openrpc.json @@ -239,24 +239,7 @@ "result": { "name": "result", "schema": { - "title": "Transaction status", - "type": "object", - "properties": { - "finality_status": { - "title": "finality status", - "$ref": "#/components/schemas/TXN_STATUS" - }, - "execution_status": { - "title": "execution status", - "$ref": "#/components/schemas/TXN_EXECUTION_STATUS" - }, - "failure_reason": { - "title": "failure reason", - "description": "the failure reason, only appears if finality_status is REJECTED or execution_status is REVERTED", - "type": "string" - } - }, - "required": ["finality_status"] + "$ref": "#/components/schemas/TXN_STATUS_RESULT" } }, "errors": [ @@ -266,50 +249,50 @@ ] }, { - "name": "starknet_getMessagesStatus", - "summary": "Given an l1 tx hash, returns the associated l1_handler tx hashes and statuses for all L1 -> L2 messages sent by the l1 ransaction, ordered by the l1 tx sending order", - "paramStructure": "by-name", - "params": [ - { - "name": "transaction_hash", - "summary": "The hash of the L1 transaction that sent L1->L2 messages", - "required": true, - "schema": { - "title": "Transaction hash", - "$ref": "#/components/schemas/L1_TXN_HASH" - } - } - ], - "result": { - "name": "result", - "schema": { - "type": "array", - "items": { - "type": "object", - "title": "status", - "properties": { - "transaction_hash": { - "$ref": "#/components/schemas/TXN_HASH" - }, - "finality_status": { - "title": "finality status", - "$ref": "#/components/schemas/TXN_STATUS" - }, - "failure_reason": { - "title": "failure reason", - "description": "the failure reason, only appears if finality_status is REJECTED", - "type": "string" - } - }, - "required": ["transaction_hash", "finality_status"] - } - } - }, - "errors": [ - { - "$ref": "#/components/errors/TXN_HASH_NOT_FOUND" - } - ] + "name": "starknet_getMessagesStatus", + "summary": "Given an l1 tx hash, returns the associated l1_handler tx hashes and statuses for all L1 -> L2 messages sent by the l1 ransaction, ordered by the l1 tx sending order", + "paramStructure": "by-name", + "params": [ + { + "name": "transaction_hash", + "summary": "The hash of the L1 transaction that sent L1->L2 messages", + "required": true, + "schema": { + "title": "Transaction hash", + "$ref": "#/components/schemas/L1_TXN_HASH" + } + } + ], + "result": { + "name": "result", + "schema": { + "type": "array", + "items": { + "type": "object", + "title": "status", + "properties": { + "transaction_hash": { + "$ref": "#/components/schemas/TXN_HASH" + }, + "finality_status": { + "title": "finality status", + "$ref": "#/components/schemas/TXN_STATUS" + }, + "failure_reason": { + "title": "failure reason", + "description": "the failure reason, only appears if finality_status is REJECTED", + "type": "string" + } + }, + "required": ["transaction_hash", "finality_status"] + } + } + }, + "errors": [ + { + "$ref": "#/components/errors/TXN_HASH_NOT_FOUND" + } + ] }, { "name": "starknet_getTransactionByHash", @@ -1113,6 +1096,19 @@ }, "required": ["keys", "data"] }, + "EVENT_KEYS": { + "title": "Keys", + "description": "The keys to filter over", + "type": "array", + "items": { + "title": "Keys", + "description": "Per key (by position), designate the possible values to be matched for events to be returned. Empty array designates 'any' value", + "type": "array", + "items": { + "$ref": "#/components/schemas/FELT" + } + } + }, "EVENT_FILTER": { "title": "Event filter", "description": "An event filter/query", @@ -1131,17 +1127,10 @@ "$ref": "#/components/schemas/ADDRESS" }, "keys": { - "title": "Keys", - "description": "The values used to filter the events", - "type": "array", - "items": { - "title": "Keys", - "description": "Per key (by position), designate the possible values to be matched for events to be returned. Empty array designates 'any' value", - "type": "array", - "items": { - "$ref": "#/components/schemas/FELT" - } - } + "title": "event keys", + "description": "The keys to filter over", + "$ref": "#/components/schemas/EVENT_KEYS" + } }, "required": [] @@ -3106,6 +3095,30 @@ }, "required": ["from_address", "to_address", "payload", "entry_point_selector"] }, + "TXN_STATUS_RESULT": { + "title": "Transaction status result", + "description": "Transaction status result, including finality status and execution status", + "schema": { + "title": "Transaction status result", + "type": "object", + "properties": { + "finality_status": { + "title": "finality status", + "$ref": "#/components/schemas/TXN_STATUS" + }, + "execution_status": { + "title": "execution status", + "$ref": "#/components/schemas/TXN_EXECUTION_STATUS" + }, + "failure_reason": { + "title": "failure reason", + "description": "the failure reason, only appears if finality_status is REJECTED or execution_status is REVERTED", + "type": "string" + } + }, + "required": ["finality_status"] + } + }, "TXN_STATUS": { "title": "Transaction status", "type": "string", diff --git a/api/starknet_trace_api_openrpc.json b/api/starknet_trace_api_openrpc.json index 6612296..19749a8 100644 --- a/api/starknet_trace_api_openrpc.json +++ b/api/starknet_trace_api_openrpc.json @@ -13,11 +13,11 @@ "description": "Returns the execution trace of the transaction designated by the input hash", "params": [ { - "name": "transaction_hash", + "name": "transaction_hash", "summary": "The hash of the transaction to trace", "required": true, "schema": { - "$ref": "./starknet_api_openrpc.json#/components/schemas/TXN_HASH" + "$ref": "./api/starknet_api_openrpc.json#/components/schemas/TXN_HASH" } } ], @@ -421,22 +421,22 @@ ] }, "FELT": { - "$ref": "./starknet_api_openrpc.json#/components/schemas/FELT" + "$ref": "./api/starknet_api_openrpc.json#/components/schemas/FELT" }, "FUNCTION_CALL": { - "$ref": "./starknet_api_openrpc.json#/components/schemas/FUNCTION_CALL" + "$ref": "./api/starknet_api_openrpc.json#/components/schemas/FUNCTION_CALL" }, "EVENT": { - "$ref": "./starknet_api_openrpc.json#/components/schemas/EVENT_CONTENT" + "$ref": "./api/starknet_api_openrpc.json#/components/schemas/EVENT_CONTENT" }, "MSG_TO_L1": { - "$ref": "./starknet_api_openrpc.json#/components/schemas/MSG_TO_L1" + "$ref": "./api/starknet_api_openrpc.json#/components/schemas/MSG_TO_L1" }, "BLOCK_ID": { - "$ref": "./starknet_api_openrpc.json#/components/schemas/BLOCK_ID" + "$ref": "./api/starknet_api_openrpc.json#/components/schemas/BLOCK_ID" }, "FEE_ESTIMATE": { - "$ref": "./starknet_api_openrpc.json#/components/schemas/FEE_ESTIMATE" + "$ref": "./api/starknet_api_openrpc.json#/components/schemas/FEE_ESTIMATE" }, "BROADCASTED_TXN": { "$ref": "./api/starknet_api_openrpc.json#/components/schemas/BROADCASTED_TXN" diff --git a/api/starknet_write_api.json b/api/starknet_write_api.json index 2ffe6a0..5c7341f 100644 --- a/api/starknet_write_api.json +++ b/api/starknet_write_api.json @@ -206,13 +206,13 @@ "pattern": "^0x[a-fA-F0-9]+$" }, "SIGNATURE": { - "$ref": "./starknet_api_openrpc.json#/components/schemas/SIGNATURE" + "$ref": "./api/starknet_api_openrpc.json#/components/schemas/SIGNATURE" }, "FELT": { - "$ref": "./starknet_api_openrpc.json#/components/schemas/FELT" + "$ref": "./api/starknet_api_openrpc.json#/components/schemas/FELT" }, "TXN_HASH": { - "$ref": "./starknet_api_openrpc.json#/components/schemas/TXN_HASH" + "$ref": "./api/starknet_api_openrpc.json#/components/schemas/TXN_HASH" }, "BROADCASTED_INVOKE_TXN": { "$ref": "./api/starknet_api_openrpc.json#/components/schemas/BROADCASTED_INVOKE_TXN" @@ -224,7 +224,7 @@ "$ref": "./api/starknet_api_openrpc.json#/components/schemas/BROADCASTED_DEPLOY_ACCOUNT_TXN" }, "FUNCTION_CALL": { - "$ref": "./starknet_api_openrpc.json#/components/schemas/FUNCTION_CALL" + "$ref": "./api/starknet_api_openrpc.json#/components/schemas/FUNCTION_CALL" } }, "errors": { diff --git a/api/starknet_ws_api.json b/api/starknet_ws_api.json new file mode 100644 index 0000000..726f30a --- /dev/null +++ b/api/starknet_ws_api.json @@ -0,0 +1,358 @@ +{ + "openrpc": "1.3.2", + "info": { + "version": "0.8.0-rc0", + "title": "StarkNet WebSocket PRC API", + "license": {} + }, + "methods": [ + { + "name": "starknet_subscribeNewHeads", + "summary": "New block headers subscription", + "description": "Creates a WebSocket stream which will fire events for new block headers", + "params": [ + { + "name": "block", + "summary": "The block to get notifications from, default is latest, limited to 1024 blocks back", + "required": false, + "schema": { + "$ref": "./api/starknet_api_openrpc.json#/components/schemas/BLOCK_ID" + } + } + ], + "result": { + "name": "subscription_id", + "schema": { + "$ref": "#/components/schemas/SUBSCRIPTION_ID" + } + }, + "errors": [ + { + "$ref": "#/components/errors/TOO_MANY_BLOCKS_BACK" + } + ] + }, + { + "name": "starknet_subscriptionNewHeads", + "summary": "New block headers notification", + "description": "Notification to the client of a new block header", + "params": [ + { + "name": "subscription_id", + "schema": { + "$ref": "#/components/schemas/SUBSCRIPTION_ID" + } + }, + { + "name": "result", + "schema": { + "$ref": "./api/starknet_api_openrpc.json#/components/schemas/BLOCK_HEADER" + } + } + ], + "errors": [] + }, + { + "name": "starknet_subscribeEvents", + "summary": "Events subscription", + "description": "Creates a WebSocket stream which will fire events for new Starknet events with applied filters", + "params": [ + { + "name": "from_address", + "summary": "Filter events by from_address which emitted the event", + "required": false, + "schema": { + "$ref": "#/components/schemas/ADDRESS" + } + }, + { + "name": "keys", + "summary": "The keys to filter events by", + "required": false, + "schema": { + "title": "event keys", + "$ref": "#/components/schemas/EVENT_KEYS" + } + }, + { + "name": "block", + "summary": "The block to get notifications from, default is latest, limited to 1024 blocks back", + "required": false, + "schema": { + "$ref": "./api/starknet_api_openrpc.json#/components/schemas/BLOCK_ID" + } + } + ], + "result": { + "name": "subscription_id", + "schema": { + "$ref": "#/components/schemas/SUBSCRIPTION_ID" + } + }, + "errors": [ + { + "$ref": "./api/starknet_api_openrpc.json#/components/errors/TOO_MANY_KEYS_IN_FILTER" + }, + { + "$ref": "#/components/errors/TOO_MANY_BLOCKS_BACK" + } + ] + }, + { + "name": "starknet_subscriptionEvents", + "summary": "New events notification", + "description": "Notification to the client of a new event", + "params": [ + { + "name": "subscription_id", + "schema": { + "$ref": "#/components/schemas/SUBSCRIPTION_ID" + } + }, + { + "name": "result", + "schema": { + "$ref": "./api/starknet_api_openrpc.json#/components/schemas/EMITTED_EVENT" + } + } + ], + "errors": [] + }, + { + "name": "starknet_subscribeTransactionStatus", + "summary": "Transaction Status subscription", + "description": "Creates a WebSocket stream which will fire events when a transaction status is updated", + "params": [ + { + "name": "transaction_hash", + "summary": "The transaction hash to fetch status updates for", + "required": true, + "schema": { + "$ref": "#/components/schemas/FELT" + } + }, + { + "name": "block", + "summary": "The block to get notifications from, default is latest, limited to 1024 blocks back", + "required": false, + "schema": { + "$ref": "./api/starknet_api_openrpc.json#/components/schemas/BLOCK_ID" + } + } + ], + "result": { + "name": "subscription_id", + "schema": { + "$ref": "#/components/schemas/SUBSCRIPTION_ID" + } + }, + "errors": [ + { + "$ref": "#/components/errors/TOO_MANY_BLOCKS_BACK" + } + ] + }, + { + "name": "starknet_subscriptionTransactionsStatus", + "summary": "New transaction status notification", + "description": "Notification to the client of a new transaction status", + "params": [ + { + "name": "subscription_id", + "schema": { + "$ref": "#/components/schemas/SUBSCRIPTION_ID" + } + }, + { + "name": "result", + "schema": { + "$ref": "#/components/schemas/NEW_TXN_STATUS" + } + } + ], + "errors": [] + }, + { + "name": "starknet_subscribePendingTransactions", + "summary": "New Pending Transactions subscription", + "description": "Creates a WebSocket stream which will fire events when a new pending transaction is added. While there is no mempool, this notifies of transactions in the pending block", + "params": [ + { + "name": "transaction_details", + "summary": "Get all transaction details, and not only the hash. If not provided, only hash is returned. Default is false", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "name": "sender_address", + "summary": "Filter transactions to only receive notification from address list", + "required": false, + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ADDRESS" + } + } + } + ], + "result": { + "name": "subscription_id", + "schema": { + "$ref": "#/components/schemas/SUBSCRIPTION_ID" + } + }, + "errors": [ + { + "$ref": "#/components/errors/TOO_MANY_ADDRESSES_IN_FILTER" + } + ] + }, + { + "name": "starknet_subscriptionPendingTransactions", + "summary": "New pending transaction notification", + "description": "Notification to the client of a new pending transaction", + "params": [ + { + "name": "subscription_id", + "schema": { + "$ref": "#/components/schemas/SUBSCRIPTION_ID" + } + }, + { + "name": "result", + "description": "Either a tranasaction hash or full transaction details, based on subscription", + "schema": { + "oneOf": [ + { + "$ref": "./api/starknet_api_openrpc.json#/components/schemas/TXN_HASH" + }, + { + "$ref": "./api/starknet_api_openrpc.json#/components/schemas/TXN" + } + ] + } + } + ], + "errors": [] + }, + { + "name": "starknet_subscriptionReorg", + "description": "Notifies the subscriber of a reorganization of the chain", + "summary": "Can be received from subscribing to newHeads, Events, TransactionStatus", + "params": [ + { + "name": "subscription_id", + "schema": { + "$ref": "#/components/schemas/REORG_DATA" + } + } + ] + }, + { + "name": "starknet_unsubscribe", + "summary": "Closes a websocket subscription", + "description": "Close a previously opened ws stream, with the corresponding subscription id", + "params": [ + { + "name": "subscription_id", + "summary": "The subscription to close", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "result": { + "name": "Unsubscription result", + "description": "True if the unsubscription was successful", + "schema": { + "type": "boolean" + } + }, + "errors": [ + { + "$ref": "#/components/errors/INVALID_SUBSCRIPTION_ID" + } + ] + } + ], + + "components": { + "schemas": { + "FELT": { + "$ref": "./api/starknet_api_openrpc.json#/components/schemas/FELT" + }, + "ADDRESS": { + "$ref": "./api/starknet_api_openrpc.json#/components/schemas/ADDRESS" + }, + "NEW_TXN_STATUS": { + "title": "New transaction Status", + "type": "object", + "properties": { + "transaction_hash": { + "$ref": "./api/starknet_api_openrpc.json#/components/schemas/TXN_HASH" + }, + "status": { + "schema": { + "$ref": "./api/starknet_api_openrpc.json#/components/schemas/TXN_STATUS_RESULT" + } + } + } + }, + "SUBSCRIPTION_ID": { + "name": "subscription id", + "description": "An identifier for this subscription stream used to associate events with this subscription.", + "schema": { + "type": "integer" + } + }, + "REORG_DATA": { + "name": "Reorg Data", + "description": "Data about reorganized blocks, starting and ending block number and hash", + "properties": { + "starting_block_hash": { + "title": "Starting Block Hash", + "description": "Hash of the first known block of the orphaned chain", + "schema": { + "$ref": "./api/starknet_api_openrpc.json#/components/schemas/BLOCK_HASH" + } + }, + "starting_block_number": { + "title": "Starting Block Number", + "description": "Number of the first known block of the orphaned chain", + "$ref": "./api/starknet_api_openrpc.json#/components/schemas/BLOCK_NUMBER" + }, + "ending_block_hash": { + "title": "Ending Block", + "description": "The last known block of the orphaned chain", + "schema": { + "$ref": "./api/starknet_api_openrpc.json#/components/schemas/BLOCK_HASH" + } + }, + "ending_block_number": { + "title": "Ending Block Number", + "description": "Number of the last known block of the orphaned chain", + "$ref": "./api/starknet_api_openrpc.json#/components/schemas/BLOCK_NUMBER" + } + }, + "required": ["starting_block_hash", "starting_block_number", "ending_block_hash", "ending_block_number"] + } + }, + "errors": { + "INVALID_SUBSCRIPTION_ID": { + "code": 66, + "message": "Invalid subscription id" + }, + "TOO_MANY_ADDRESSES_IN_FILTER": { + "code": 67, + "message": "Too many addresses in filter sender_address filter" + }, + "TOO_MANY_BLOCKS_BACK": { + "code": 68, + "message": "Cannot go back more than 1024 blocks" + } + } + } +} diff --git a/package-lock.json b/package-lock.json index 1821809..724b923 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,446 +1,406 @@ { - "name": "starknet_specs", - "version": "0.6.0", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "starknet_specs", - "version": "0.6.0", - "license": "MIT", - "dependencies": { - "@json-schema-tools/dereferencer": "1.5.4", - "@open-rpc/schema-utils-js": "^1.16.1", - "fs-extra": "10.1.0" - } - }, - "node_modules/@json-schema-spec/json-pointer": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@json-schema-spec/json-pointer/-/json-pointer-0.1.2.tgz", - "integrity": "sha512-BYY7IavBjwsWWSmVcMz2A9mKiDD9RvacnsItgmy1xV8cmgbtxFfKmKMtkVpD7pYtkx4mIW4800yZBXueVFIWPw==" - }, - "node_modules/@json-schema-tools/dereferencer": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/@json-schema-tools/dereferencer/-/dereferencer-1.5.4.tgz", - "integrity": "sha512-4cmEdRPIG7WrcSWGRV6HBDCLXEOXGkaOZnopqBxoG24mKYuCHWg4M6N9nioTQyNfKqlPkOPvT4lStQqkPnhLgA==", - "dependencies": { - "@json-schema-tools/reference-resolver": "^1.2.4", - "@json-schema-tools/traverse": "^1.7.8", - "fast-safe-stringify": "^2.0.7" - } - }, - "node_modules/@json-schema-tools/meta-schema": { - "version": "1.6.19", - "resolved": "https://registry.npmjs.org/@json-schema-tools/meta-schema/-/meta-schema-1.6.19.tgz", - "integrity": "sha512-55zuWFW7tr4tf/G5AYmybcPdGOkVAreQbt2JdnogX4I2r/zkxZiimYPJESDf5je9BI2oRveak2p296HzDppeaA==" - }, - "node_modules/@json-schema-tools/reference-resolver": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@json-schema-tools/reference-resolver/-/reference-resolver-1.2.4.tgz", - "integrity": "sha512-Oag20zDuapO6nBQp00k8Rd5sDTb8Gfz9uH43Tf7dHKNx7nHDK/WdeTe7OxkOmLQCL6aS+mCJx1Zv+fZBCD+tzQ==", - "dependencies": { - "@json-schema-spec/json-pointer": "^0.1.2", - "isomorphic-fetch": "^3.0.0" - } - }, - "node_modules/@json-schema-tools/traverse": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/@json-schema-tools/traverse/-/traverse-1.8.1.tgz", - "integrity": "sha512-y1Tw+r6fgLWp1b264Sva0YhElLwNuG/uPV0ihInWPSpH8qdRQIIu4YM6DBh6UIvwEujYSqrJh2Hfk13hDwJgIw==" - }, - "node_modules/@open-rpc/meta-schema": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/@open-rpc/meta-schema/-/meta-schema-1.14.2.tgz", - "integrity": "sha512-vD4Nbkrb7wYFRcSQf+j228LwOy1C6/KKpy5NADlpMElGrAWPRxhTa2yTi6xG+x88OHzg2+cydQ0GAD6o40KUcg==" - }, - "node_modules/@open-rpc/schema-utils-js": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/@open-rpc/schema-utils-js/-/schema-utils-js-1.16.1.tgz", - "integrity": "sha512-8D4OgBnHDAv7JeaYZ5v7SL4yR0YLLO4WLTWtdR8vmqSqvX3SvPzSsGYv06zqm9z1Lhm563MAcuearrc8g9eJ4w==", - "dependencies": { - "@json-schema-tools/dereferencer": "1.5.4", - "@json-schema-tools/meta-schema": "1.6.19", - "@json-schema-tools/reference-resolver": "1.2.4", - "@open-rpc/meta-schema": "1.14.2", - "ajv": "^6.10.0", - "detect-node": "^2.0.4", - "fast-safe-stringify": "^2.0.7", - "fs-extra": "^9.0.0", - "is-url": "^1.2.4", - "isomorphic-fetch": "^3.0.0" - } - }, - "node_modules/@open-rpc/schema-utils-js/node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/detect-node": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", - "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==" - }, - "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-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/fast-safe-stringify": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", - "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==" - }, - "node_modules/fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" - }, - "node_modules/is-url": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz", - "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==" - }, - "node_modules/isomorphic-fetch": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-3.0.0.tgz", - "integrity": "sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA==", - "dependencies": { - "node-fetch": "^2.6.1", - "whatwg-fetch": "^3.4.1" - } - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - }, - "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "engines": { - "node": ">=6" - } - }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, - "node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "engines": { - "node": ">= 10.0.0" - } - }, - "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/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-fetch": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz", - "integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==" - }, - "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" - } - } + "name": "starknet_specs", + "version": "0.6.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "starknet_specs", + "version": "0.6.0", + "license": "MIT", + "dependencies": { + "@json-schema-tools/dereferencer": "1.6.3", + "@open-rpc/schema-utils-js": "^2.0.3", + "fs-extra": "10.1.0" + } + }, + "node_modules/@json-schema-spec/json-pointer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@json-schema-spec/json-pointer/-/json-pointer-0.1.2.tgz", + "integrity": "sha512-BYY7IavBjwsWWSmVcMz2A9mKiDD9RvacnsItgmy1xV8cmgbtxFfKmKMtkVpD7pYtkx4mIW4800yZBXueVFIWPw==" + }, + "node_modules/@json-schema-tools/dereferencer": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/@json-schema-tools/dereferencer/-/dereferencer-1.6.3.tgz", + "integrity": "sha512-NoQkj6hx9Joqbd/GZAOHSGtE6R+OzlnOcDfyidmx8e/CUv1Q+Z6/fmZo2wwCQWiwP1pnGYc95iKwp8M7XlV7wQ==", + "dependencies": { + "@json-schema-tools/reference-resolver": "^1.2.6", + "@json-schema-tools/traverse": "^1.10.4", + "fast-safe-stringify": "^2.1.1" + } + }, + "node_modules/@json-schema-tools/meta-schema": { + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/@json-schema-tools/meta-schema/-/meta-schema-1.7.5.tgz", + "integrity": "sha512-8Hy6tuMC2BQdK7O4ilLovFB9t0j5o0L/sQTuWeg2CNYpITmPiFTRiG7Yb/jYd483D8784kxLFJ0dT+T4O2hNmw==" + }, + "node_modules/@json-schema-tools/reference-resolver": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@json-schema-tools/reference-resolver/-/reference-resolver-1.2.6.tgz", + "integrity": "sha512-4QZu5ROb5EpLSvV+buzk8WR30W+dffSNaKqD3VGFYJ3y0BLDi2OHoSz5e6NKcLYTyUYXV8IKxocNOszeVBJI4Q==", + "dependencies": { + "@json-schema-spec/json-pointer": "^0.1.2", + "isomorphic-fetch": "^3.0.0" + } + }, + "node_modules/@json-schema-tools/traverse": { + "version": "1.10.4", + "resolved": "https://registry.npmjs.org/@json-schema-tools/traverse/-/traverse-1.10.4.tgz", + "integrity": "sha512-9e42zjhLIxzBONroNC4SGsTqdB877tzwH2S6lqgTav9K24kWJR9vNieeMVSuyqnY8FlclH21D8wsm/tuD9WA9Q==" + }, + "node_modules/@open-rpc/meta-schema": { + "version": "1.14.9", + "resolved": "https://registry.npmjs.org/@open-rpc/meta-schema/-/meta-schema-1.14.9.tgz", + "integrity": "sha512-2/CbDzOVpcaSnMs28TsRv8MKJwJi0TTYFlQ6q6qobAH26oIuhYgcZooKf4l71emgntU6MMcFQCA0h4mJ4dBCdA==" + }, + "node_modules/@open-rpc/schema-utils-js": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@open-rpc/schema-utils-js/-/schema-utils-js-2.0.3.tgz", + "integrity": "sha512-Qo1hqcTo0yJpEd9aX1ir1mJEW3TkbjGfiWaSsgVhtbQxkvLh5ddX5wVDnFikIk1Yw6YNb9Mu2U3Ra2zioN+Q9g==", + "dependencies": { + "@json-schema-tools/dereferencer": "^1.6.3", + "@json-schema-tools/meta-schema": "^1.7.5", + "@json-schema-tools/reference-resolver": "^1.2.6", + "@open-rpc/meta-schema": "^1.14.9", + "ajv": "^6.10.0", + "detect-node": "^2.0.4", + "fast-safe-stringify": "^2.0.7", + "fs-extra": "^10.1.0", + "is-url": "^1.2.4", + "isomorphic-fetch": "^3.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==" + }, + "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-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/fast-safe-stringify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", + "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==" }, - "dependencies": { - "@json-schema-spec/json-pointer": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@json-schema-spec/json-pointer/-/json-pointer-0.1.2.tgz", - "integrity": "sha512-BYY7IavBjwsWWSmVcMz2A9mKiDD9RvacnsItgmy1xV8cmgbtxFfKmKMtkVpD7pYtkx4mIW4800yZBXueVFIWPw==" - }, - "@json-schema-tools/dereferencer": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/@json-schema-tools/dereferencer/-/dereferencer-1.5.4.tgz", - "integrity": "sha512-4cmEdRPIG7WrcSWGRV6HBDCLXEOXGkaOZnopqBxoG24mKYuCHWg4M6N9nioTQyNfKqlPkOPvT4lStQqkPnhLgA==", - "requires": { - "@json-schema-tools/reference-resolver": "^1.2.4", - "@json-schema-tools/traverse": "^1.7.8", - "fast-safe-stringify": "^2.0.7" - } - }, - "@json-schema-tools/meta-schema": { - "version": "1.6.19", - "resolved": "https://registry.npmjs.org/@json-schema-tools/meta-schema/-/meta-schema-1.6.19.tgz", - "integrity": "sha512-55zuWFW7tr4tf/G5AYmybcPdGOkVAreQbt2JdnogX4I2r/zkxZiimYPJESDf5je9BI2oRveak2p296HzDppeaA==" - }, - "@json-schema-tools/reference-resolver": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@json-schema-tools/reference-resolver/-/reference-resolver-1.2.4.tgz", - "integrity": "sha512-Oag20zDuapO6nBQp00k8Rd5sDTb8Gfz9uH43Tf7dHKNx7nHDK/WdeTe7OxkOmLQCL6aS+mCJx1Zv+fZBCD+tzQ==", - "requires": { - "@json-schema-spec/json-pointer": "^0.1.2", - "isomorphic-fetch": "^3.0.0" - } - }, - "@json-schema-tools/traverse": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/@json-schema-tools/traverse/-/traverse-1.8.1.tgz", - "integrity": "sha512-y1Tw+r6fgLWp1b264Sva0YhElLwNuG/uPV0ihInWPSpH8qdRQIIu4YM6DBh6UIvwEujYSqrJh2Hfk13hDwJgIw==" - }, - "@open-rpc/meta-schema": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/@open-rpc/meta-schema/-/meta-schema-1.14.2.tgz", - "integrity": "sha512-vD4Nbkrb7wYFRcSQf+j228LwOy1C6/KKpy5NADlpMElGrAWPRxhTa2yTi6xG+x88OHzg2+cydQ0GAD6o40KUcg==" - }, - "@open-rpc/schema-utils-js": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/@open-rpc/schema-utils-js/-/schema-utils-js-1.16.1.tgz", - "integrity": "sha512-8D4OgBnHDAv7JeaYZ5v7SL4yR0YLLO4WLTWtdR8vmqSqvX3SvPzSsGYv06zqm9z1Lhm563MAcuearrc8g9eJ4w==", - "requires": { - "@json-schema-tools/dereferencer": "1.5.4", - "@json-schema-tools/meta-schema": "1.6.19", - "@json-schema-tools/reference-resolver": "1.2.4", - "@open-rpc/meta-schema": "1.14.2", - "ajv": "^6.10.0", - "detect-node": "^2.0.4", - "fast-safe-stringify": "^2.0.7", - "fs-extra": "^9.0.0", - "is-url": "^1.2.4", - "isomorphic-fetch": "^3.0.0" - }, - "dependencies": { - "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - } - } - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==" - }, - "detect-node": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", - "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==" - }, - "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-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==" - }, - "fast-safe-stringify": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", - "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==" - }, - "fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" - }, - "is-url": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz", - "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==" - }, - "isomorphic-fetch": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-3.0.0.tgz", - "integrity": "sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA==", - "requires": { - "node-fetch": "^2.6.1", - "whatwg-fetch": "^3.4.1" - } - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - }, - "jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - } - }, - "node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "requires": { - "whatwg-url": "^5.0.0" - } - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" - }, - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, - "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" - }, - "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" - } - }, - "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-fetch": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz", - "integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==" - }, - "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" - } + "node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" + }, + "node_modules/is-url": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz", + "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==" + }, + "node_modules/isomorphic-fetch": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-3.0.0.tgz", + "integrity": "sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA==", + "dependencies": { + "node-fetch": "^2.6.1", + "whatwg-fetch": "^3.4.1" + } + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true } + } + }, + "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/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "engines": { + "node": ">= 10.0.0" + } + }, + "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/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-fetch": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz", + "integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==" + }, + "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" + } + } + }, + "dependencies": { + "@json-schema-spec/json-pointer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@json-schema-spec/json-pointer/-/json-pointer-0.1.2.tgz", + "integrity": "sha512-BYY7IavBjwsWWSmVcMz2A9mKiDD9RvacnsItgmy1xV8cmgbtxFfKmKMtkVpD7pYtkx4mIW4800yZBXueVFIWPw==" + }, + "@json-schema-tools/dereferencer": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/@json-schema-tools/dereferencer/-/dereferencer-1.6.3.tgz", + "integrity": "sha512-NoQkj6hx9Joqbd/GZAOHSGtE6R+OzlnOcDfyidmx8e/CUv1Q+Z6/fmZo2wwCQWiwP1pnGYc95iKwp8M7XlV7wQ==", + "requires": { + "@json-schema-tools/reference-resolver": "^1.2.6", + "@json-schema-tools/traverse": "^1.10.4", + "fast-safe-stringify": "^2.1.1" + } + }, + "@json-schema-tools/meta-schema": { + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/@json-schema-tools/meta-schema/-/meta-schema-1.7.5.tgz", + "integrity": "sha512-8Hy6tuMC2BQdK7O4ilLovFB9t0j5o0L/sQTuWeg2CNYpITmPiFTRiG7Yb/jYd483D8784kxLFJ0dT+T4O2hNmw==" + }, + "@json-schema-tools/reference-resolver": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@json-schema-tools/reference-resolver/-/reference-resolver-1.2.6.tgz", + "integrity": "sha512-4QZu5ROb5EpLSvV+buzk8WR30W+dffSNaKqD3VGFYJ3y0BLDi2OHoSz5e6NKcLYTyUYXV8IKxocNOszeVBJI4Q==", + "requires": { + "@json-schema-spec/json-pointer": "^0.1.2", + "isomorphic-fetch": "^3.0.0" + } + }, + "@json-schema-tools/traverse": { + "version": "1.10.4", + "resolved": "https://registry.npmjs.org/@json-schema-tools/traverse/-/traverse-1.10.4.tgz", + "integrity": "sha512-9e42zjhLIxzBONroNC4SGsTqdB877tzwH2S6lqgTav9K24kWJR9vNieeMVSuyqnY8FlclH21D8wsm/tuD9WA9Q==" + }, + "@open-rpc/meta-schema": { + "version": "1.14.9", + "resolved": "https://registry.npmjs.org/@open-rpc/meta-schema/-/meta-schema-1.14.9.tgz", + "integrity": "sha512-2/CbDzOVpcaSnMs28TsRv8MKJwJi0TTYFlQ6q6qobAH26oIuhYgcZooKf4l71emgntU6MMcFQCA0h4mJ4dBCdA==" + }, + "@open-rpc/schema-utils-js": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@open-rpc/schema-utils-js/-/schema-utils-js-2.0.3.tgz", + "integrity": "sha512-Qo1hqcTo0yJpEd9aX1ir1mJEW3TkbjGfiWaSsgVhtbQxkvLh5ddX5wVDnFikIk1Yw6YNb9Mu2U3Ra2zioN+Q9g==", + "requires": { + "@json-schema-tools/dereferencer": "^1.6.3", + "@json-schema-tools/meta-schema": "^1.7.5", + "@json-schema-tools/reference-resolver": "^1.2.6", + "@open-rpc/meta-schema": "^1.14.9", + "ajv": "^6.10.0", + "detect-node": "^2.0.4", + "fast-safe-stringify": "^2.0.7", + "fs-extra": "^10.1.0", + "is-url": "^1.2.4", + "isomorphic-fetch": "^3.0.0" + } + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==" + }, + "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-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==" + }, + "fast-safe-stringify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", + "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==" + }, + "fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" + }, + "is-url": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz", + "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==" + }, + "isomorphic-fetch": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-3.0.0.tgz", + "integrity": "sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA==", + "requires": { + "node-fetch": "^2.6.1", + "whatwg-fetch": "^3.4.1" + } + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "requires": { + "whatwg-url": "^5.0.0" + } + }, + "punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==" + }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" + }, + "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" + } + }, + "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-fetch": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz", + "integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==" + }, + "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" + } } -} \ No newline at end of file + } +} diff --git a/package.json b/package.json index 9cb4a62..86fef5b 100644 --- a/package.json +++ b/package.json @@ -7,13 +7,13 @@ "url": "https://github.com/starkware-libs/starknet-specs.git" }, "scripts": { - "validate_all": "node validate.js api/starknet_api_openrpc.json && node validate.js api/starknet_write_api.json && node validate.js api/starknet_trace_api_openrpc.json && node validate.js ./wallet-api/wallet_rpc.json" + "validate_all": "node validate.js api/starknet_api_openrpc.json && node validate.js api/starknet_write_api.json && node validate.js api/starknet_trace_api_openrpc.json && node validate.js ./api/starknet_ws_api.json && node validate.js ./wallet-api/wallet_rpc.json" }, "author": "Lior Schejter", "license": "MIT", "dependencies": { - "@open-rpc/schema-utils-js": "^1.16.1", - "fs-extra": "10.1.0", - "@json-schema-tools/dereferencer": "1.5.4" + "@json-schema-tools/dereferencer": "1.6.3", + "@open-rpc/schema-utils-js": "^2.0.3", + "fs-extra": "10.1.0" } }