From 01db69f91c0ad750e13952081ffa3590dace8188 Mon Sep 17 00:00:00 2001 From: Ofir Eliasi Date: Fri, 16 Oct 2026 07:08:14 +0000 Subject: [PATCH] feat(specs): update Starknet spec to JSON-RPC v0.9/v0.10 Starknet 0.14.3 nodes (pathfinder v0.23+) serve only JSON-RPC v0.9 and v0.10. Update the STRK and STRKS specs and the provider examples: - add /rpc/v0_10 and /ws/rpc/v0_10; drop /rpc/v0_8 and /ws/rpc/v0_8, including the pending-block-support check that lived there - add starknet_getBlockWithReceipts, starknet_getCompiledCasm, starknet_getMessagesStatus and starknet_getStorageProof - replace pathfinder_subscribe/pathfinder_unsubscribe with the starknet_subscribe* family and starknet_unsubscribe - drop starknet_pendingTransactions, pathfinder_getProof and pathfinder_getTransactionStatus; add pathfinder_lastL1AcceptedBlockHashAndNumber - parse starknet_estimateFee block_id from param index 2 - average_block_time 30000/32000 -> 2000 (mainnet measures ~1.84s) and allowed_block_lag_for_qos_sync -> 5 Split out of #2318. Merge only after #2318 is released and providers have upgraded: older providers accept starknet_subscribe* but drop every notification. Claude-Session: https://claude.ai/code/session_01NDkG48rHipQHQWQgcAGKM9 --- .../starknet_auto_complete_with_addon.yml | 8 +- .../starknet_auto_complete_without_addons.yml | 8 +- .../starknet_example_full_internal_path.yml | 24 +- .../strk_addon_example_with_ws.yml | 4 +- config/provider_examples/strk_example.yml | 20 +- protocol/chainlib/jsonRPC_test.go | 10 +- specs/mainnet-1/specs/starknet.json | 474 +++++++++++++----- 7 files changed, 381 insertions(+), 167 deletions(-) diff --git a/config/provider_examples/provider_example_cookbook/starknet_auto_complete_with_addon.yml b/config/provider_examples/provider_example_cookbook/starknet_auto_complete_with_addon.yml index 8d24ff4980..aca9b1b97c 100644 --- a/config/provider_examples/provider_example_cookbook/starknet_auto_complete_with_addon.yml +++ b/config/provider_examples/provider_example_cookbook/starknet_auto_complete_with_addon.yml @@ -4,12 +4,12 @@ endpoints: network-address: address: "127.0.0.1:2220" node-urls: - - url: wss://starknet-mainnet.domain.com/ws/rpc/v0_7 - internal-path: /ws/rpc/v0_7 + - url: wss://starknet-mainnet.domain.com/ws/rpc/v0_10 + internal-path: /ws/rpc/v0_10 Addons: - trace - - url: wss://starknet-mainnet.domain.com/ws/rpc/v0_6 - internal-path: /ws/rpc/v0_6 + - url: wss://starknet-mainnet.domain.com/ws/rpc/v0_9 + internal-path: /ws/rpc/v0_9 Addons: - trace - url: wss://starknet-mainnet.domain.com/ws diff --git a/config/provider_examples/provider_example_cookbook/starknet_auto_complete_without_addons.yml b/config/provider_examples/provider_example_cookbook/starknet_auto_complete_without_addons.yml index eec905382a..6a4ff6972e 100644 --- a/config/provider_examples/provider_example_cookbook/starknet_auto_complete_without_addons.yml +++ b/config/provider_examples/provider_example_cookbook/starknet_auto_complete_without_addons.yml @@ -4,9 +4,9 @@ endpoints: network-address: address: "127.0.0.1:2220" node-urls: - - url: wss://starknet-mainnet.domain.com/ws/rpc/v0_7 - internal-path: /ws/rpc/v0_7 - - url: wss://starknet-mainnet.domain.com/ws/rpc/v0_6 - internal-path: /ws/rpc/v0_6 + - url: wss://starknet-mainnet.domain.com/ws/rpc/v0_10 + internal-path: /ws/rpc/v0_10 + - url: wss://starknet-mainnet.domain.com/ws/rpc/v0_9 + internal-path: /ws/rpc/v0_9 - url: wss://starknet-mainnet.domain.com/ws - url: https://starknet-mainnet.domain.com diff --git a/config/provider_examples/provider_example_cookbook/starknet_example_full_internal_path.yml b/config/provider_examples/provider_example_cookbook/starknet_example_full_internal_path.yml index 3fe50c4dd1..9364b8d7de 100644 --- a/config/provider_examples/provider_example_cookbook/starknet_example_full_internal_path.yml +++ b/config/provider_examples/provider_example_cookbook/starknet_example_full_internal_path.yml @@ -1,7 +1,7 @@ # An example fo configuring manually each internal path -# To support trace addon, simply add: +# To support trace addon, simply add: # addons: -# - trace +# - trace # to each url group. endpoints: - api-interface: jsonrpc @@ -10,16 +10,14 @@ endpoints: address: "127.0.0.1:2220" node-urls: - url: /ws - internal-path: "/ws" - - url: /ws/rpc/v0_6 - internal-path: "/ws/rpc/v0_6" - - url: /ws/rpc/v0_7 - internal-path: "/ws/rpc/v0_7" + internal-path: "" + - url: /ws/rpc/v0_9 + internal-path: "/ws/rpc/v0_9" + - url: /ws/rpc/v0_10 + internal-path: "/ws/rpc/v0_10" - url: internal-path: "" - - url: /rpc/v0_5 - internal-path: "/rpc/v0_5" - - url: /rpc/v0_6 - internal-path: "/rpc/v0_6" - - url: /rpc/v0_7 - internal-path: "/rpc/v0_7" + - url: /rpc/v0_9 + internal-path: "/rpc/v0_9" + - url: /rpc/v0_10 + internal-path: "/rpc/v0_10" diff --git a/config/provider_examples/strk_addon_example_with_ws.yml b/config/provider_examples/strk_addon_example_with_ws.yml index c521ceb904..5c3c06525b 100644 --- a/config/provider_examples/strk_addon_example_with_ws.yml +++ b/config/provider_examples/strk_addon_example_with_ws.yml @@ -5,8 +5,8 @@ endpoints: address: "127.0.0.1:2220" node-urls: - url: wss://starknet.api.onfinality.io/public-ws - internal-path: /ws/rpc/v0_9 + internal-path: /ws/rpc/v0_10 - url: wss://starknet.api.onfinality.io/public-ws - internal-path: /ws/rpc/v0_8 + internal-path: /ws/rpc/v0_9 - url: wss://starknet.api.onfinality.io/public-ws - url: https://starknet-mainnet.public.blastapi.io diff --git a/config/provider_examples/strk_example.yml b/config/provider_examples/strk_example.yml index ffabc60596..29c6a31d23 100644 --- a/config/provider_examples/strk_example.yml +++ b/config/provider_examples/strk_example.yml @@ -5,16 +5,14 @@ endpoints: address: "127.0.0.1:2220" node-urls: - url: /ws - internal-path: "/ws" - - url: /ws/rpc/v0_6 - internal-path: "/ws/rpc/v0_6" - - url: /ws/rpc/v0_7 - internal-path: "/ws/rpc/v0_7" + internal-path: "" + - url: /ws/rpc/v0_9 + internal-path: "/ws/rpc/v0_9" + - url: /ws/rpc/v0_10 + internal-path: "/ws/rpc/v0_10" - url: internal-path: "" - - url: /rpc/v0_5 - internal-path: "/rpc/v0_5" - - url: /rpc/v0_6 - internal-path: "/rpc/v0_6" - - url: /rpc/v0_7 - internal-path: "/rpc/v0_7" + - url: /rpc/v0_9 + internal-path: "/rpc/v0_9" + - url: /rpc/v0_10 + internal-path: "/rpc/v0_10" diff --git a/protocol/chainlib/jsonRPC_test.go b/protocol/chainlib/jsonRPC_test.go index d547018252..16a831b25e 100644 --- a/protocol/chainlib/jsonRPC_test.go +++ b/protocol/chainlib/jsonRPC_test.go @@ -483,8 +483,8 @@ func TestJsonRpcInternalPathsMultipleVersionsStarkNet(t *testing.T) { require.NotNil(t, chainParser) require.NotNil(t, chainProxy) require.NotNil(t, chainFetcher) - v8_path := "/rpc/v0_8" v9_path := "/rpc/v0_9" + v10_path := "/rpc/v0_10" req_data := []byte(`{"jsonrpc": "2.0", "id": 1, "method": "starknet_specVersion", "params": []}`) chainMessage, err := chainParser.ParseMsg("", req_data, http.MethodPost, nil, extensionslib.ExtensionInfo{LatestBlock: 0}) require.NoError(t, err) @@ -493,19 +493,19 @@ func TestJsonRpcInternalPathsMultipleVersionsStarkNet(t *testing.T) { require.Equal(t, "starknet_specVersion", api.Name) require.Equal(t, "", collection.CollectionData.InternalPath) - chainMessage, err = chainParser.ParseMsg(v8_path, req_data, http.MethodPost, nil, extensionslib.ExtensionInfo{LatestBlock: 0}) + chainMessage, err = chainParser.ParseMsg(v9_path, req_data, http.MethodPost, nil, extensionslib.ExtensionInfo{LatestBlock: 0}) require.NoError(t, err) api = chainMessage.GetApi() collection = chainMessage.GetApiCollection() require.Equal(t, "starknet_specVersion", api.Name) - require.Equal(t, v8_path, collection.CollectionData.InternalPath) + require.Equal(t, v9_path, collection.CollectionData.InternalPath) - chainMessage, err = chainParser.ParseMsg(v9_path, req_data, http.MethodPost, nil, extensionslib.ExtensionInfo{LatestBlock: 0}) + chainMessage, err = chainParser.ParseMsg(v10_path, req_data, http.MethodPost, nil, extensionslib.ExtensionInfo{LatestBlock: 0}) require.NoError(t, err) api = chainMessage.GetApi() collection = chainMessage.GetApiCollection() require.Equal(t, "starknet_specVersion", api.Name) - require.Equal(t, v9_path, collection.CollectionData.InternalPath) + require.Equal(t, v10_path, collection.CollectionData.InternalPath) } func TestJsonRpcInternalPathsMultipleVersionsAvalanche(t *testing.T) { diff --git a/specs/mainnet-1/specs/starknet.json b/specs/mainnet-1/specs/starknet.json index d14c4d441c..1c2b46af89 100644 --- a/specs/mainnet-1/specs/starknet.json +++ b/specs/mainnet-1/specs/starknet.json @@ -11,8 +11,8 @@ "data_reliability_enabled": true, "block_distance_for_finalized_data": 6, "blocks_in_finalization_proof": 3, - "average_block_time": 30000, - "allowed_block_lag_for_qos_sync": 2, + "average_block_time": 2000, + "allowed_block_lag_for_qos_sync": 5, "shares": 1, "min_stake_provider": { "denom": "ulava", @@ -109,7 +109,7 @@ "parser_arg": [ "block_number", ":", - "1" + "2" ], "parser_func": "PARSE_DICTIONARY_OR_ORDERED", "default_value": "latest" @@ -187,6 +187,27 @@ }, "extra_compute_units": 0 }, + { + "name": "starknet_getBlockWithReceipts", + "block_parsing": { + "parser_arg": [ + "block_number", + ":", + "0" + ], + "parser_func": "PARSE_DICTIONARY_OR_ORDERED", + "default_value": "latest" + }, + "compute_units": 20, + "enabled": true, + "category": { + "deterministic": true, + "local": false, + "subscription": false, + "stateful": 0 + }, + "extra_compute_units": 0 + }, { "name": "starknet_getClass", "block_parsing": { @@ -247,6 +268,24 @@ }, "extra_compute_units": 0 }, + { + "name": "starknet_getCompiledCasm", + "block_parsing": { + "parser_arg": [ + "latest" + ], + "parser_func": "DEFAULT" + }, + "compute_units": 100, + "enabled": true, + "category": { + "deterministic": true, + "local": false, + "subscription": false, + "stateful": 0 + }, + "extra_compute_units": 0 + }, { "name": "starknet_getEvents", "block_parsing": { @@ -265,6 +304,24 @@ }, "extra_compute_units": 0 }, + { + "name": "starknet_getMessagesStatus", + "block_parsing": { + "parser_arg": [ + "latest" + ], + "parser_func": "DEFAULT" + }, + "compute_units": 10, + "enabled": true, + "category": { + "deterministic": true, + "local": false, + "subscription": false, + "stateful": 0 + }, + "extra_compute_units": 0 + }, { "name": "starknet_getNonce", "block_parsing": { @@ -326,7 +383,7 @@ "extra_compute_units": 0 }, { - "name": "starknet_getTransactionByBlockIdAndIndex", + "name": "starknet_getStorageProof", "block_parsing": { "parser_arg": [ "block_number", @@ -336,7 +393,7 @@ "parser_func": "PARSE_DICTIONARY_OR_ORDERED", "default_value": "latest" }, - "compute_units": 10, + "compute_units": 20, "enabled": true, "category": { "deterministic": true, @@ -347,12 +404,15 @@ "extra_compute_units": 0 }, { - "name": "starknet_getTransactionByHash", + "name": "starknet_getTransactionByBlockIdAndIndex", "block_parsing": { "parser_arg": [ - "latest" + "block_number", + ":", + "0" ], - "parser_func": "DEFAULT" + "parser_func": "PARSE_DICTIONARY_OR_ORDERED", + "default_value": "latest" }, "compute_units": 10, "enabled": true, @@ -365,7 +425,7 @@ "extra_compute_units": 0 }, { - "name": "starknet_getTransactionReceipt", + "name": "starknet_getTransactionByHash", "block_parsing": { "parser_arg": [ "latest" @@ -383,7 +443,7 @@ "extra_compute_units": 0 }, { - "name": "starknet_pendingTransactions", + "name": "starknet_getTransactionReceipt", "block_parsing": { "parser_arg": [ "latest" @@ -393,7 +453,7 @@ "compute_units": 10, "enabled": true, "category": { - "deterministic": false, + "deterministic": true, "local": false, "subscription": false, "stateful": 0 @@ -611,7 +671,25 @@ }, "apis": [ { - "name": "pathfinder_subscribe", + "name": "starknet_subscribeEvents", + "block_parsing": { + "parser_arg": [ + "latest" + ], + "parser_func": "DEFAULT" + }, + "compute_units": 1000, + "enabled": true, + "category": { + "deterministic": false, + "local": true, + "subscription": true, + "stateful": 0 + }, + "extra_compute_units": 0 + }, + { + "name": "starknet_subscribeNewHeads", "block_parsing": { "parser_arg": [ "latest" @@ -629,7 +707,61 @@ "extra_compute_units": 0 }, { - "name": "pathfinder_unsubscribe", + "name": "starknet_subscribeNewTransactionReceipts", + "block_parsing": { + "parser_arg": [ + "latest" + ], + "parser_func": "DEFAULT" + }, + "compute_units": 1000, + "enabled": true, + "category": { + "deterministic": false, + "local": true, + "subscription": true, + "stateful": 0 + }, + "extra_compute_units": 0 + }, + { + "name": "starknet_subscribeNewTransactions", + "block_parsing": { + "parser_arg": [ + "latest" + ], + "parser_func": "DEFAULT" + }, + "compute_units": 1000, + "enabled": true, + "category": { + "deterministic": false, + "local": true, + "subscription": true, + "stateful": 0 + }, + "extra_compute_units": 0 + }, + { + "name": "starknet_subscribeTransactionStatus", + "block_parsing": { + "parser_arg": [ + "latest" + ], + "parser_func": "DEFAULT" + }, + "compute_units": 1000, + "enabled": true, + "category": { + "deterministic": false, + "local": true, + "subscription": true, + "stateful": 0 + }, + "extra_compute_units": 0 + }, + { + "name": "starknet_unsubscribe", "block_parsing": { "parser_arg": [ "latest" @@ -650,12 +782,28 @@ "parse_directives": [ { "function_tag": "SUBSCRIBE", - "api_name": "pathfinder_subscribe" + "api_name": "starknet_subscribeEvents" + }, + { + "function_tag": "SUBSCRIBE", + "api_name": "starknet_subscribeNewHeads" + }, + { + "function_tag": "SUBSCRIBE", + "api_name": "starknet_subscribeNewTransactionReceipts" + }, + { + "function_tag": "SUBSCRIBE", + "api_name": "starknet_subscribeNewTransactions" }, { - "function_template": "{\"jsonrpc\":\"2.0\",\"method\":\"pathfinder_unsubscribe\",\"params\":[%s],\"id\":1}", + "function_tag": "SUBSCRIBE", + "api_name": "starknet_subscribeTransactionStatus" + }, + { + "function_template": "{\"jsonrpc\":\"2.0\",\"method\":\"starknet_unsubscribe\",\"params\":[\"%s\"],\"id\":1}", "function_tag": "UNSUBSCRIBE", - "api_name": "pathfinder_unsubscribe" + "api_name": "starknet_unsubscribe" } ] }, @@ -686,7 +834,7 @@ "enabled": true, "collection_data": { "api_interface": "jsonrpc", - "internal_path": "/rpc/v0_8", + "internal_path": "/rpc/v0_9", "type": "POST", "add_on": "" }, @@ -698,41 +846,20 @@ "add_on": "" } ], - "verifications": [ - { - "name": "pending-block-support", - "parse_directive": { - "function_template": "{\"jsonrpc\":\"2.0\",\"method\":\"starknet_getBlockWithTxs\",\"params\":[\"pending\"],\"id\":1}", - "function_tag": "VERIFICATION", - "result_parsing": { - "parser_arg": [ - "0", - "parent_hash" - ], - "parser_func": "PARSE_CANONICAL" - }, - "api_name": "starknet_getBlockWithTxs" - }, - "values": [ - { - "expected_value": "*" - } - ] - } - ] + "verifications": [] }, { "enabled": true, "collection_data": { "api_interface": "jsonrpc", - "internal_path": "/ws/rpc/v0_8", + "internal_path": "/ws/rpc/v0_9", "type": "POST", "add_on": "" }, "inheritance_apis": [ { "api_interface": "jsonrpc", - "internal_path": "/rpc/v0_8", + "internal_path": "/rpc/v0_9", "type": "POST", "add_on": "" }, @@ -748,7 +875,7 @@ "enabled": true, "collection_data": { "api_interface": "jsonrpc", - "internal_path": "/rpc/v0_9", + "internal_path": "/rpc/v0_10", "type": "POST", "add_on": "" }, @@ -766,14 +893,14 @@ "enabled": true, "collection_data": { "api_interface": "jsonrpc", - "internal_path": "/ws/rpc/v0_9", + "internal_path": "/ws/rpc/v0_10", "type": "POST", "add_on": "" }, "inheritance_apis": [ { "api_interface": "jsonrpc", - "internal_path": "/rpc/v0_9", + "internal_path": "/rpc/v0_10", "type": "POST", "add_on": "" }, @@ -903,32 +1030,14 @@ "extra_compute_units": 0 }, { - "name": "pathfinder_getProof", - "block_parsing": { - "parser_arg": [ - "latest" - ], - "parser_func": "DEFAULT" - }, - "compute_units": 10, - "enabled": true, - "category": { - "deterministic": true, - "local": false, - "subscription": false, - "stateful": 0 - }, - "extra_compute_units": 0 - }, - { - "name": "pathfinder_getTransactionStatus", + "name": "pathfinder_lastL1AcceptedBlockHashAndNumber", "block_parsing": { "parser_arg": [ "latest" ], "parser_func": "DEFAULT" }, - "compute_units": 10, + "compute_units": 20, "enabled": true, "category": { "deterministic": true, @@ -976,8 +1085,8 @@ "data_reliability_enabled": true, "block_distance_for_finalized_data": 1, "blocks_in_finalization_proof": 3, - "average_block_time": 32000, - "allowed_block_lag_for_qos_sync": 1, + "average_block_time": 2000, + "allowed_block_lag_for_qos_sync": 5, "min_stake_provider": { "denom": "ulava", "amount": "5000000000" @@ -1073,7 +1182,7 @@ "parser_arg": [ "block_number", ":", - "1" + "2" ], "parser_func": "PARSE_DICTIONARY_OR_ORDERED", "default_value": "latest" @@ -1151,6 +1260,27 @@ }, "extra_compute_units": 0 }, + { + "name": "starknet_getBlockWithReceipts", + "block_parsing": { + "parser_arg": [ + "block_number", + ":", + "0" + ], + "parser_func": "PARSE_DICTIONARY_OR_ORDERED", + "default_value": "latest" + }, + "compute_units": 20, + "enabled": true, + "category": { + "deterministic": true, + "local": false, + "subscription": false, + "stateful": 0 + }, + "extra_compute_units": 0 + }, { "name": "starknet_getClass", "block_parsing": { @@ -1211,6 +1341,24 @@ }, "extra_compute_units": 0 }, + { + "name": "starknet_getCompiledCasm", + "block_parsing": { + "parser_arg": [ + "latest" + ], + "parser_func": "DEFAULT" + }, + "compute_units": 100, + "enabled": true, + "category": { + "deterministic": true, + "local": false, + "subscription": false, + "stateful": 0 + }, + "extra_compute_units": 0 + }, { "name": "starknet_getEvents", "block_parsing": { @@ -1229,6 +1377,24 @@ }, "extra_compute_units": 0 }, + { + "name": "starknet_getMessagesStatus", + "block_parsing": { + "parser_arg": [ + "latest" + ], + "parser_func": "DEFAULT" + }, + "compute_units": 10, + "enabled": true, + "category": { + "deterministic": true, + "local": false, + "subscription": false, + "stateful": 0 + }, + "extra_compute_units": 0 + }, { "name": "starknet_getNonce", "block_parsing": { @@ -1290,7 +1456,7 @@ "extra_compute_units": 0 }, { - "name": "starknet_getTransactionByBlockIdAndIndex", + "name": "starknet_getStorageProof", "block_parsing": { "parser_arg": [ "block_number", @@ -1300,7 +1466,7 @@ "parser_func": "PARSE_DICTIONARY_OR_ORDERED", "default_value": "latest" }, - "compute_units": 10, + "compute_units": 20, "enabled": true, "category": { "deterministic": true, @@ -1311,12 +1477,15 @@ "extra_compute_units": 0 }, { - "name": "starknet_getTransactionByHash", + "name": "starknet_getTransactionByBlockIdAndIndex", "block_parsing": { "parser_arg": [ - "latest" + "block_number", + ":", + "0" ], - "parser_func": "DEFAULT" + "parser_func": "PARSE_DICTIONARY_OR_ORDERED", + "default_value": "latest" }, "compute_units": 10, "enabled": true, @@ -1329,7 +1498,7 @@ "extra_compute_units": 0 }, { - "name": "starknet_getTransactionReceipt", + "name": "starknet_getTransactionByHash", "block_parsing": { "parser_arg": [ "latest" @@ -1347,7 +1516,7 @@ "extra_compute_units": 0 }, { - "name": "starknet_pendingTransactions", + "name": "starknet_getTransactionReceipt", "block_parsing": { "parser_arg": [ "latest" @@ -1357,7 +1526,7 @@ "compute_units": 10, "enabled": true, "category": { - "deterministic": false, + "deterministic": true, "local": false, "subscription": false, "stateful": 0 @@ -1575,7 +1744,25 @@ }, "apis": [ { - "name": "pathfinder_subscribe", + "name": "starknet_subscribeEvents", + "block_parsing": { + "parser_arg": [ + "latest" + ], + "parser_func": "DEFAULT" + }, + "compute_units": 1000, + "enabled": true, + "category": { + "deterministic": false, + "local": true, + "subscription": true, + "stateful": 0 + }, + "extra_compute_units": 0 + }, + { + "name": "starknet_subscribeNewHeads", "block_parsing": { "parser_arg": [ "latest" @@ -1593,7 +1780,61 @@ "extra_compute_units": 0 }, { - "name": "pathfinder_unsubscribe", + "name": "starknet_subscribeNewTransactionReceipts", + "block_parsing": { + "parser_arg": [ + "latest" + ], + "parser_func": "DEFAULT" + }, + "compute_units": 1000, + "enabled": true, + "category": { + "deterministic": false, + "local": true, + "subscription": true, + "stateful": 0 + }, + "extra_compute_units": 0 + }, + { + "name": "starknet_subscribeNewTransactions", + "block_parsing": { + "parser_arg": [ + "latest" + ], + "parser_func": "DEFAULT" + }, + "compute_units": 1000, + "enabled": true, + "category": { + "deterministic": false, + "local": true, + "subscription": true, + "stateful": 0 + }, + "extra_compute_units": 0 + }, + { + "name": "starknet_subscribeTransactionStatus", + "block_parsing": { + "parser_arg": [ + "latest" + ], + "parser_func": "DEFAULT" + }, + "compute_units": 1000, + "enabled": true, + "category": { + "deterministic": false, + "local": true, + "subscription": true, + "stateful": 0 + }, + "extra_compute_units": 0 + }, + { + "name": "starknet_unsubscribe", "block_parsing": { "parser_arg": [ "latest" @@ -1614,12 +1855,28 @@ "parse_directives": [ { "function_tag": "SUBSCRIBE", - "api_name": "pathfinder_subscribe" + "api_name": "starknet_subscribeEvents" + }, + { + "function_tag": "SUBSCRIBE", + "api_name": "starknet_subscribeNewHeads" + }, + { + "function_tag": "SUBSCRIBE", + "api_name": "starknet_subscribeNewTransactionReceipts" + }, + { + "function_tag": "SUBSCRIBE", + "api_name": "starknet_subscribeNewTransactions" }, { - "function_template": "{\"jsonrpc\":\"2.0\",\"method\":\"pathfinder_unsubscribe\",\"params\":[%s],\"id\":1}", + "function_tag": "SUBSCRIBE", + "api_name": "starknet_subscribeTransactionStatus" + }, + { + "function_template": "{\"jsonrpc\":\"2.0\",\"method\":\"starknet_unsubscribe\",\"params\":[\"%s\"],\"id\":1}", "function_tag": "UNSUBSCRIBE", - "api_name": "pathfinder_unsubscribe" + "api_name": "starknet_unsubscribe" } ] }, @@ -1650,7 +1907,7 @@ "enabled": true, "collection_data": { "api_interface": "jsonrpc", - "internal_path": "/rpc/v0_8", + "internal_path": "/rpc/v0_9", "type": "POST", "add_on": "" }, @@ -1662,41 +1919,20 @@ "add_on": "" } ], - "verifications": [ - { - "name": "pending-block-support", - "parse_directive": { - "function_template": "{\"jsonrpc\":\"2.0\",\"method\":\"starknet_getBlockWithTxs\",\"params\":[\"pending\"],\"id\":1}", - "function_tag": "VERIFICATION", - "result_parsing": { - "parser_arg": [ - "0", - "parent_hash" - ], - "parser_func": "PARSE_CANONICAL" - }, - "api_name": "starknet_getBlockWithTxs" - }, - "values": [ - { - "expected_value": "*" - } - ] - } - ] + "verifications": [] }, { "enabled": true, "collection_data": { "api_interface": "jsonrpc", - "internal_path": "/ws/rpc/v0_8", + "internal_path": "/ws/rpc/v0_9", "type": "POST", "add_on": "" }, "inheritance_apis": [ { "api_interface": "jsonrpc", - "internal_path": "/rpc/v0_8", + "internal_path": "/rpc/v0_9", "type": "POST", "add_on": "" }, @@ -1712,7 +1948,7 @@ "enabled": true, "collection_data": { "api_interface": "jsonrpc", - "internal_path": "/rpc/v0_9", + "internal_path": "/rpc/v0_10", "type": "POST", "add_on": "" }, @@ -1730,14 +1966,14 @@ "enabled": true, "collection_data": { "api_interface": "jsonrpc", - "internal_path": "/ws/rpc/v0_9", + "internal_path": "/ws/rpc/v0_10", "type": "POST", "add_on": "" }, "inheritance_apis": [ { "api_interface": "jsonrpc", - "internal_path": "/rpc/v0_9", + "internal_path": "/rpc/v0_10", "type": "POST", "add_on": "" }, @@ -1867,32 +2103,14 @@ "extra_compute_units": 0 }, { - "name": "pathfinder_getProof", - "block_parsing": { - "parser_arg": [ - "latest" - ], - "parser_func": "DEFAULT" - }, - "compute_units": 10, - "enabled": true, - "category": { - "deterministic": true, - "local": false, - "subscription": false, - "stateful": 0 - }, - "extra_compute_units": 0 - }, - { - "name": "pathfinder_getTransactionStatus", + "name": "pathfinder_lastL1AcceptedBlockHashAndNumber", "block_parsing": { "parser_arg": [ "latest" ], "parser_func": "DEFAULT" }, - "compute_units": 10, + "compute_units": 20, "enabled": true, "category": { "deterministic": true,