From 31dfc9f69f7c2ace923b36916622602de984be10 Mon Sep 17 00:00:00 2001
From: drewstone <drewstone329@gmail.com>
Date: Thu, 17 Oct 2024 08:44:01 -0400
Subject: [PATCH] Import vec to bridges/primitives/header-chain (#6031)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

# Description

I'm unable to build a bridge library due to the errors below, so I am
adding the explicit import to `sp_std::vec`.

## Integration

Projects using it can update their dependency. We are using the branch
`stable2407` (mixed them up in my branch).

## Errors
```
error: cannot find macro `vec` in this scope
  --> /Users/drew/.cargo/git/checkouts/polkadot-sdk-cff69157b985ed76/88c3250/bridges/primitives/header-chain/src/justification/verification/mod.rs:99:19
   |
99 |         let mut route = vec![];
   |                         ^^^
   |
help: consider importing one of these items
   |
23 + use scale_info::prelude::vec;
   |
23 + use sp_std::vec;
   |

error: cannot find macro `vec` in this scope
   --> /Users/drew/.cargo/git/checkouts/polkadot-sdk-cff69157b985ed76/88c3250/bridges/primitives/header-chain/src/justification/verification/optimizer.rs:135:36
    |
135 |         duplicate_votes_ancestries_idxs: vec![],
    |                                          ^^^
    |
help: consider importing one of these items
    |
19  + use scale_info::prelude::vec;
    |
19  + use sp_std::vec;
    |

error: cannot find macro `vec` in this scope
   --> /Users/drew/.cargo/git/checkouts/polkadot-sdk-cff69157b985ed76/88c3250/bridges/primitives/header-chain/src/justification/verification/optimizer.rs:134:21
    |
134 |         extra_precommits: vec![],
    |                           ^^^
    |
help: consider importing one of these items
    |
19  + use scale_info::prelude::vec;
    |
19  + use sp_std::vec;
    |

error: cannot find macro `vec` in this scope
  --> /Users/drew/.cargo/git/checkouts/polkadot-sdk-cff69157b985ed76/88c3250/bridges/primitives/header-chain/src/justification/verification/equivocation.rs:89:27
   |
89 |         let mut equivocations = vec![];
   |                                 ^^^
   |
help: consider importing one of these items
   |
19 + use scale_info::prelude::vec;
   |
19 + use sp_std::vec;
```

---------

Co-authored-by: Bastian Köcher <git@kchr.de>
Co-authored-by: Serban Iorga <serban@parity.io>
Co-authored-by: command-bot <>
Co-authored-by: Adrian Catangiu <adrian@parity.io>
---
 .../src/justification/verification/equivocation.rs     |  2 ++
 .../header-chain/src/justification/verification/mod.rs |  2 ++
 .../src/justification/verification/optimizer.rs        |  2 +-
 prdoc/pr_6031.prdoc                                    | 10 ++++++++++
 4 files changed, 15 insertions(+), 1 deletion(-)
 create mode 100644 prdoc/pr_6031.prdoc

diff --git a/bridges/primitives/header-chain/src/justification/verification/equivocation.rs b/bridges/primitives/header-chain/src/justification/verification/equivocation.rs
index fbad3012819..bfcd22f8ca6 100644
--- a/bridges/primitives/header-chain/src/justification/verification/equivocation.rs
+++ b/bridges/primitives/header-chain/src/justification/verification/equivocation.rs
@@ -34,6 +34,8 @@ use sp_runtime::traits::Header as HeaderT;
 use sp_std::{
 	collections::{btree_map::BTreeMap, btree_set::BTreeSet},
 	prelude::*,
+	vec,
+	vec::Vec,
 };
 
 enum AuthorityVotes<Header: HeaderT> {
diff --git a/bridges/primitives/header-chain/src/justification/verification/mod.rs b/bridges/primitives/header-chain/src/justification/verification/mod.rs
index 9df3511e103..9941537eb09 100644
--- a/bridges/primitives/header-chain/src/justification/verification/mod.rs
+++ b/bridges/primitives/header-chain/src/justification/verification/mod.rs
@@ -35,6 +35,8 @@ use sp_std::{
 		btree_set::BTreeSet,
 	},
 	prelude::*,
+	vec,
+	vec::Vec,
 };
 
 type SignedPrecommit<Header> = finality_grandpa::SignedPrecommit<
diff --git a/bridges/primitives/header-chain/src/justification/verification/optimizer.rs b/bridges/primitives/header-chain/src/justification/verification/optimizer.rs
index 3f1e6ab670c..5098b594db6 100644
--- a/bridges/primitives/header-chain/src/justification/verification/optimizer.rs
+++ b/bridges/primitives/header-chain/src/justification/verification/optimizer.rs
@@ -26,7 +26,7 @@ use crate::justification::verification::{
 };
 use sp_consensus_grandpa::AuthorityId;
 use sp_runtime::traits::Header as HeaderT;
-use sp_std::{collections::btree_set::BTreeSet, prelude::*};
+use sp_std::{collections::btree_set::BTreeSet, prelude::*, vec, vec::Vec};
 
 // Verification callbacks for justification optimization.
 struct JustificationOptimizer<Header: HeaderT> {
diff --git a/prdoc/pr_6031.prdoc b/prdoc/pr_6031.prdoc
new file mode 100644
index 00000000000..702d0c12fa0
--- /dev/null
+++ b/prdoc/pr_6031.prdoc
@@ -0,0 +1,10 @@
+title: "Import vec to bridges/primitives/header-chain"
+
+doc:
+  - audience: Runtime Dev
+    description: |
+      Add the `vec` dependency to these files to resolve compiler errors.
+
+crates:
+  - name: bp-header-chain
+    bump: patch
-- 
GitLab