Polkadot is a multi-chain interoperability platform designed to achieve interoperability between different blockchains. It allows various blockchain networks to communicate with each other and share information while remaining efficient and secure.
Substrate is a blockchain framework for building custom blockchains. It is one of the core components of the Polkadot ecosystem because Polkadot itself is built using Substrate. Substrate provides a rich set of tools and components that enable developers to easily create blockchains for their specific needs. These blockchains can run independently, or they can choose to join the Polkadot network and become its “parachain”.
The subxt library enables you to submit transactions to a Substrate node through remote procedure calls. Before you use the subxt library, you can use the standalone subxt command-line interface to download the metadata for the Substrate node you want to use as the target for submitting transactions. The subxt-cli tool enables you to perform two key tasks that are critical to using the subxt library:
The primary objective of this audit is to conduct a thorough examination of the subxt/subxt/src directory within the paritytech/subxt project. The focus will be on assessing code quality, security, performance, and adherence to best practices in Rust programming.
Details please refer to https://github.com/Secure3Audit/code_Parity-subxt
Module | Lines | Description |
---|---|---|
backend | 3796 | This module exposes a backend trait for Subxt which allows us to get and set the necessary information (probably from a JSON-RPC API, but that’s up to the implementation). |
config | 824 | This module provides a Config type, which is used to define various types that are important in order to speak to a particular chain. SubstrateConfig provides a default set of these types suitable for the default Substrate node implementation, and PolkadotConfig for a Polkadot node. |
custom_values | 208 | Types associated with accessing custom types |
error | 396 | Types representing the errors that can be returned. |
metadata | 99 | Types representing the metadata obtained from a node. |
storage | 524 | Types associated with accessing and working with storage items. |
utils | 928 | Miscellaneous utility helpers. |
constants | 129 | Types associated with accessing constants. |
events | 774 | This module exposes the types and such necessary for working with events. The two main entry points into events are crate::OnlineClient::events() and calls like crate::tx::TxProgress::wait_for_finalized_success(). |
runtime_api | 239 | Types associated with executing runtime API calls. |
tx | 1058 | Create and submit extrinsics |
blocks | 981 | This module exposes the necessary functionality for working with events. |
client | 859 | This module provides two clients that can be used to work with transactions, storage and events. The OfflineClient works entirely offline and can be passed to any function that doesn’t require network access. The OnlineClient requires network access. |
dynamic | 55 | This module provides the entry points to create dynamic transactions, storage and constant lookups. |
What has been reported in
Exclusions — What’s NOT in Scope
The Contest is active, you can submit your audit findings now.
The audit report is now available, you can review the findings.
Polkadot promotes blockchain interoperability. Substrate builds custom chains, subxt aids transaction and metadata handling.
Language
Project Type
Chains (deployed env)
Total Rewards
$50,000
Jan 19, 12:00 AM (GMT) - Feb 19, 11:59 PM (GMT)