From 881fd1e0dcce44e03dd2dc1c7e8d8eaa71ac862e Mon Sep 17 00:00:00 2001 From: Arkadiy Paronyan <arkady.paronyan@gmail.com> Date: Fri, 9 Jun 2023 18:24:49 +0200 Subject: [PATCH] Fix RPC error code conflict (#14315) * Base error code module * Base error code module * fmt --- substrate/client/rpc-api/src/author/error.rs | 2 +- substrate/client/rpc-api/src/chain/error.rs | 2 +- substrate/client/rpc-api/src/dev/error.rs | 2 +- substrate/client/rpc-api/src/error.rs | 28 +++++++++++++++++++ substrate/client/rpc-api/src/lib.rs | 1 + .../client/rpc-api/src/offchain/error.rs | 2 +- substrate/client/rpc-api/src/state/error.rs | 2 +- .../client/rpc-api/src/statement/error.rs | 2 +- substrate/client/rpc-api/src/system/error.rs | 2 +- 9 files changed, 36 insertions(+), 7 deletions(-) create mode 100644 substrate/client/rpc-api/src/error.rs diff --git a/substrate/client/rpc-api/src/author/error.rs b/substrate/client/rpc-api/src/author/error.rs index 8149a1f8d1a..648dbb295d8 100644 --- a/substrate/client/rpc-api/src/author/error.rs +++ b/substrate/client/rpc-api/src/author/error.rs @@ -57,7 +57,7 @@ pub enum Error { } /// Base code for all authorship errors. -const BASE_ERROR: i32 = 1000; +const BASE_ERROR: i32 = crate::error::base::AUTHOR; /// Extrinsic has an invalid format. const BAD_FORMAT: i32 = BASE_ERROR + 1; /// Error during transaction verification in runtime. diff --git a/substrate/client/rpc-api/src/chain/error.rs b/substrate/client/rpc-api/src/chain/error.rs index cfb429bcffd..65219294258 100644 --- a/substrate/client/rpc-api/src/chain/error.rs +++ b/substrate/client/rpc-api/src/chain/error.rs @@ -37,7 +37,7 @@ pub enum Error { } /// Base error code for all chain errors. -const BASE_ERROR: i32 = 3000; +const BASE_ERROR: i32 = crate::error::base::CHAIN; impl From<Error> for JsonRpseeError { fn from(e: Error) -> Self { diff --git a/substrate/client/rpc-api/src/dev/error.rs b/substrate/client/rpc-api/src/dev/error.rs index 2896e66bc0a..8e4ddb55e35 100644 --- a/substrate/client/rpc-api/src/dev/error.rs +++ b/substrate/client/rpc-api/src/dev/error.rs @@ -44,7 +44,7 @@ pub enum Error { } /// Base error code for all dev errors. -const BASE_ERROR: i32 = 6000; +const BASE_ERROR: i32 = crate::error::base::DEV; impl From<Error> for JsonRpseeError { fn from(e: Error) -> Self { diff --git a/substrate/client/rpc-api/src/error.rs b/substrate/client/rpc-api/src/error.rs new file mode 100644 index 00000000000..72941e3145b --- /dev/null +++ b/substrate/client/rpc-api/src/error.rs @@ -0,0 +1,28 @@ +// This file is part of Substrate. + +// Copyright (C) Parity Technologies (UK) Ltd. +// SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 + +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with this program. If not, see <https://www.gnu.org/licenses/>. + +/// Base error code for RPC modules. +pub mod base { + pub const AUTHOR: i32 = 1000; + pub const SYSTEM: i32 = 2000; + pub const CHAIN: i32 = 3000; + pub const STATE: i32 = 4000; + pub const OFFCHAIN: i32 = 5000; + pub const DEV: i32 = 6000; + pub const STATEMENT: i32 = 7000; +} diff --git a/substrate/client/rpc-api/src/lib.rs b/substrate/client/rpc-api/src/lib.rs index 83054584370..b99c237dc85 100644 --- a/substrate/client/rpc-api/src/lib.rs +++ b/substrate/client/rpc-api/src/lib.rs @@ -22,6 +22,7 @@ #![warn(missing_docs)] +mod error; mod policy; pub use policy::DenyUnsafe; diff --git a/substrate/client/rpc-api/src/offchain/error.rs b/substrate/client/rpc-api/src/offchain/error.rs index 5ca0476087a..679e1000897 100644 --- a/substrate/client/rpc-api/src/offchain/error.rs +++ b/substrate/client/rpc-api/src/offchain/error.rs @@ -38,7 +38,7 @@ pub enum Error { } /// Base error code for all offchain errors. -const BASE_ERROR: i32 = 5000; +const BASE_ERROR: i32 = crate::error::base::OFFCHAIN; impl From<Error> for JsonRpseeError { fn from(e: Error) -> Self { diff --git a/substrate/client/rpc-api/src/state/error.rs b/substrate/client/rpc-api/src/state/error.rs index c69b3d9199c..9857784e354 100644 --- a/substrate/client/rpc-api/src/state/error.rs +++ b/substrate/client/rpc-api/src/state/error.rs @@ -55,7 +55,7 @@ pub enum Error { } /// Base code for all state errors. -const BASE_ERROR: i32 = 4000; +const BASE_ERROR: i32 = crate::error::base::STATE; impl From<Error> for JsonRpseeError { fn from(e: Error) -> Self { diff --git a/substrate/client/rpc-api/src/statement/error.rs b/substrate/client/rpc-api/src/statement/error.rs index 549b147115f..8438cc3ec9e 100644 --- a/substrate/client/rpc-api/src/statement/error.rs +++ b/substrate/client/rpc-api/src/statement/error.rs @@ -38,7 +38,7 @@ pub enum Error { } /// Base error code for all statement errors. -const BASE_ERROR: i32 = 6000; +const BASE_ERROR: i32 = crate::error::base::STATEMENT; impl From<Error> for JsonRpseeError { fn from(e: Error) -> Self { diff --git a/substrate/client/rpc-api/src/system/error.rs b/substrate/client/rpc-api/src/system/error.rs index 4ad0f1b690a..713ade9210d 100644 --- a/substrate/client/rpc-api/src/system/error.rs +++ b/substrate/client/rpc-api/src/system/error.rs @@ -39,7 +39,7 @@ pub enum Error { } // Base code for all system errors. -const BASE_ERROR: i32 = 2000; +const BASE_ERROR: i32 = crate::error::base::SYSTEM; // Provided block range couldn't be resolved to a list of blocks. const NOT_HEALTHY_ERROR: i32 = BASE_ERROR + 1; // Peer argument is malformatted. -- GitLab