File tree Expand file tree Collapse file tree 12 files changed +606
-1
lines changed
.snippets/code/chain-interactions/query-data/runtime-api-calls
chain-interactions/query-data Expand file tree Collapse file tree 12 files changed +606
-1
lines changed Original file line number Diff line number Diff line change 1+ < div class ="termynal " data-termynal >
2+ < span data-ty ="input "> < span class ="file-path "> </ span > npx tsx runtime-apis.ts</ span >
3+ < span data-ty ="progress "> </ span >
4+ < span data-ty > Connected to Polkadot Hub TestNet</ span >
5+ < span data-ty > Querying runtime APIs for: 15oF4uVJwmo4TdGW7VfQxNLavjCXviqxT9S1MgbjMNHr6Sp5</ span >
6+ < span data-ty > </ span >
7+ < span data-ty > AccountNonceApi Results:</ span >
8+ < span data-ty > Account Nonce: 11</ span >
9+ < span data-ty > </ span >
10+ < span data-ty > Metadata API Results:</ span >
11+ < span data-ty > Supported Metadata Versions: [14, 15, 16]</ span >
12+ </ div >
Original file line number Diff line number Diff line change 1+ import { DedotClient , WsProvider } from 'dedot' ;
2+ import type { PolkadotAssetHubApi } from '@dedot/chaintypes' ;
3+
4+ const POLKADOT_TESTNET_RPC = 'INSERT_WS_ENDPOINT' ;
5+
6+ // Example address to query
7+ const ADDRESS = 'INSERT_ADDRESS' ;
8+
9+ async function main ( ) {
10+ // Initialize provider and client with Polkadot TestNet types
11+ const provider = new WsProvider ( POLKADOT_TESTNET_RPC ) ;
12+ const client = await DedotClient . new < PolkadotAssetHubApi > ( provider ) ;
13+
14+ console . log ( 'Connected to Polkadot Hub TestNet' ) ;
15+ console . log ( `Querying runtime APIs for: ${ ADDRESS } \n` ) ;
16+
17+ // Call AccountNonceApi to get the account nonce
18+ const nonce = await client . call . accountNonceApi . accountNonce ( ADDRESS ) ;
19+ console . log ( 'AccountNonceApi Results:' ) ;
20+ console . log ( ` Account Nonce: ${ nonce } ` ) ;
21+
22+ // Query metadata versions using Metadata runtime API
23+ const metadataVersions = await client . call . metadata . metadataVersions ( ) ;
24+ console . log ( '\nMetadata API Results:' ) ;
25+ console . log ( ` Supported Metadata Versions: [${ metadataVersions . join ( ', ' ) } ]` ) ;
26+
27+ // Disconnect the client
28+ await client . disconnect ( ) ;
29+ }
30+
31+ main ( ) . catch ( console . error ) ;
Original file line number Diff line number Diff line change 1+ < div class ="termynal " data-termynal >
2+ < span data-ty ="input "> < span class ="file-path "> </ span > npx tsx runtime-apis.ts</ span >
3+ < span data-ty ="progress "> </ span >
4+ < span data-ty > Connected to Polkadot Hub TestNet</ span >
5+ < span data-ty > Querying runtime APIs for: 15oF4uVJwmo4TdGW7VfQxNLavjCXviqxT9S1MgbjMNHr6Sp5</ span >
6+ < span data-ty > </ span >
7+ < span data-ty > AccountNonceApi Results:</ span >
8+ < span data-ty > Account Nonce: 11</ span >
9+ < span data-ty > </ span >
10+ < span data-ty > Metadata API Results:</ span >
11+ < span data-ty > Supported Metadata Versions: [14, 15, 16]</ span >
12+ </ div >
Original file line number Diff line number Diff line change 1+ import { createClient } from 'polkadot-api' ;
2+ import { getWsProvider } from 'polkadot-api/ws-provider/node' ;
3+ import { withPolkadotSdkCompat } from 'polkadot-api/polkadot-sdk-compat' ;
4+ import { polkadotTestNet } from '@polkadot-api/descriptors' ;
5+
6+ const POLKADOT_TESTNET_RPC = 'INSERT_WS_ENDPOINT' ;
7+
8+ // Example address to query
9+ const ADDRESS = 'INSERT_ADDRESS' ;
10+
11+ async function main ( ) {
12+ // Create the client connection
13+ const client = createClient (
14+ withPolkadotSdkCompat ( getWsProvider ( POLKADOT_TESTNET_RPC ) )
15+ ) ;
16+
17+ // Get the typed API for Polkadot Hub TestNet
18+ const api = client . getTypedApi ( polkadotTestNet ) ;
19+
20+ console . log ( 'Connected to Polkadot Hub TestNet' ) ;
21+ console . log ( `Querying runtime APIs for: ${ ADDRESS } \n` ) ;
22+
23+ // Call AccountNonceApi to get the account nonce
24+ const nonce = await api . apis . AccountNonceApi . account_nonce ( ADDRESS ) ;
25+ console . log ( 'AccountNonceApi Results:' ) ;
26+ console . log ( ` Account Nonce: ${ nonce } ` ) ;
27+
28+ // Query metadata versions using Metadata runtime API
29+ const metadataVersions = await api . apis . Metadata . metadata_versions ( ) ;
30+ console . log ( '\nMetadata API Results:' ) ;
31+ console . log ( ` Supported Metadata Versions: [${ metadataVersions . join ( ', ' ) } ]` ) ;
32+
33+ // Disconnect the client
34+ client . destroy ( ) ;
35+ }
36+
37+ main ( ) . catch ( console . error ) ;
Original file line number Diff line number Diff line change 1+ < div class ="termynal " data-termynal >
2+ < span data-ty ="input "> < span class ="file-path "> </ span > node runtime-apis.js</ span >
3+ < span data-ty ="progress "> </ span >
4+ < span data-ty > Connected to Polkadot Hub TestNet</ span >
5+ < span data-ty > Querying runtime APIs for: 15oF4uVJwmo4TdGW7VfQxNLavjCXviqxT9S1MgbjMNHr6Sp5</ span >
6+ < span data-ty > </ span >
7+ < span data-ty > AccountNonceApi Results:</ span >
8+ < span data-ty > Account Nonce: 11</ span >
9+ < span data-ty > </ span >
10+ < span data-ty > Metadata API Results:</ span >
11+ < span data-ty > Supported Metadata Versions: [14, 15, 16]</ span >
12+ </ div >
Original file line number Diff line number Diff line change 1+ import { ApiPromise , WsProvider } from '@polkadot/api' ;
2+
3+ const POLKADOT_TESTNET_RPC = 'INSERT_WS_ENDPOINT' ;
4+
5+ // Example address to query
6+ const ADDRESS = 'INSERT_ADDRESS' ;
7+
8+ async function main ( ) {
9+ // Create a WebSocket provider
10+ const wsProvider = new WsProvider ( POLKADOT_TESTNET_RPC ) ;
11+
12+ // Initialize the API
13+ const api = await ApiPromise . create ( { provider : wsProvider } ) ;
14+
15+ console . log ( 'Connected to Polkadot Hub TestNet' ) ;
16+ console . log ( `Querying runtime APIs for: ${ ADDRESS } \n` ) ;
17+
18+ // Call AccountNonceApi to get the account nonce
19+ const nonce = await api . call . accountNonceApi . accountNonce ( ADDRESS ) ;
20+ console . log ( 'AccountNonceApi Results:' ) ;
21+ console . log ( ` Account Nonce: ${ nonce . toString ( ) } ` ) ;
22+
23+ // Query metadata versions using Metadata runtime API
24+ const metadataVersions = await api . call . metadata . metadataVersions ( ) ;
25+ console . log ( '\nMetadata API Results:' ) ;
26+ console . log (
27+ ` Supported Metadata Versions: [${ metadataVersions . map ( ( v ) => v . toString ( ) ) . join ( ', ' ) } ]`
28+ ) ;
29+
30+ // Disconnect from the node
31+ await api . disconnect ( ) ;
32+ }
33+
34+ main ( ) . catch ( console . error ) ;
Original file line number Diff line number Diff line change 1+ < div class ="termynal " data-termynal >
2+ < span data-ty ="input "> < span class ="file-path "> </ span > python runtime_apis.py</ span >
3+ < span data-ty ="progress "> </ span >
4+ < span data-ty > Connected to Polkadot Hub TestNet</ span >
5+ < span data-ty > Querying runtime APIs for: 15oF4uVJwmo4TdGW7VfQxNLavjCXviqxT9S1MgbjMNHr6Sp5</ span >
6+ < span data-ty > </ span >
7+ < span data-ty > AccountNonceApi Results:</ span >
8+ < span data-ty > Account Nonce: 11</ span >
9+ < span data-ty > </ span >
10+ < span data-ty > Core API Results:</ span >
11+ < span data-ty > Spec Name: asset-hub-paseo</ span >
12+ < span data-ty > Spec Version: 1004001</ span >
13+ < span data-ty > Impl Version: 0</ span >
14+ </ div >
Original file line number Diff line number Diff line change 1+ from substrateinterface import SubstrateInterface
2+
3+ POLKADOT_TESTNET_RPC = "INSERT_WS_ENDPOINT"
4+
5+ # Example address to query
6+ ADDRESS = "INSERT_ADDRESS"
7+
8+
9+ def main ():
10+ # Connect to Polkadot Hub TestNet
11+ substrate = SubstrateInterface (url = POLKADOT_TESTNET_RPC )
12+
13+ print ("Connected to Polkadot Hub TestNet" )
14+ print (f"Querying runtime APIs for: { ADDRESS } \n " )
15+
16+ # Call AccountNonceApi to get the account nonce
17+ nonce = substrate .runtime_call ("AccountNonceApi" , "account_nonce" , [ADDRESS ])
18+ print ("AccountNonceApi Results:" )
19+ print (f" Account Nonce: { nonce .value } " )
20+
21+ # Query runtime version using Core runtime API
22+ version = substrate .runtime_call ("Core" , "version" , [])
23+ print ("\n Core API Results:" )
24+ print (f" Spec Name: { version .value ['spec_name' ]} " )
25+ print (f" Spec Version: { version .value ['spec_version' ]} " )
26+ print (f" Impl Version: { version .value ['impl_version' ]} " )
27+
28+ # Close connection
29+ substrate .close ()
30+
31+
32+ if __name__ == "__main__" :
33+ main ()
Original file line number Diff line number Diff line change 1+ [package ]
2+ name = " subxt-runtime-api-example"
3+ version = " 0.1.0"
4+ edition = " 2021"
5+
6+ [[bin ]]
7+ name = " runtime_apis"
8+ path = " src/bin/runtime_apis.rs"
9+
10+ [dependencies ]
11+ subxt = " 0.44.0"
12+ tokio = { version = " 1" , features = [" rt" , " macros" ] }
Original file line number Diff line number Diff line change 1+ < div class ="termynal " data-termynal >
2+ < span data-ty ="input "> < span class ="file-path "> </ span > cargo run --bin runtime_apis</ span >
3+ < span data-ty ="progress "> </ span >
4+ < span data-ty > Connected to Polkadot Hub TestNet</ span >
5+ < span data-ty > Querying runtime APIs for: 15oF4uVJwmo4TdGW7VfQxNLavjCXviqxT9S1MgbjMNHr6Sp5</ span >
6+ < span data-ty > </ span >
7+ < span data-ty > AccountNonceApi Results:</ span >
8+ < span data-ty > Account Nonce: 11</ span >
9+ < span data-ty > </ span >
10+ < span data-ty > Metadata API Results:</ span >
11+ < span data-ty > Supported Metadata Versions: (14, 15, 16)</ span >
12+ </ div >
You can’t perform that action at this time.
0 commit comments