Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
ddorgan
polkadot
Commits
d6fa479b
Commit
d6fa479b
authored
Jun 25, 2019
by
Bastian Köcher
Committed by
asynchronous rob
Jun 25, 2019
Browse files
Pass `relay_parent` hash to `produce_candidate` (#300)
* Pass `relay_parent` hash to `produce_candidate` * Fixes compilation
parent
40f10656
Changes
2
Hide whitespace changes
Inline
Side-by-side
collator/src/lib.rs
View file @
d6fa479b
...
...
@@ -100,9 +100,11 @@ impl<R: fmt::Display> fmt::Display for Error<R> {
pub
trait
ParachainContext
:
Clone
{
type
ProduceCandidate
:
IntoFuture
<
Item
=
(
BlockData
,
HeadData
,
Extrinsic
),
Error
=
InvalidHead
>
;
/// Produce a candidate, given the latest ingress queue information and the last parachain head.
/// Produce a candidate, given the relay parent hash, the latest ingress queue information
/// and the last parachain head.
fn
produce_candidate
<
I
:
IntoIterator
<
Item
=
(
ParaId
,
Message
)
>>
(
&
self
,
relay_parent
:
Hash
,
last_head
:
HeadData
,
ingress
:
I
,
)
->
Self
::
ProduceCandidate
;
...
...
@@ -124,6 +126,7 @@ pub trait RelayChainContext {
/// Produce a candidate for the parachain, with given contexts, parent head, and signing key.
pub
fn
collate
<
'a
,
R
,
P
>
(
relay_parent
:
Hash
,
local_id
:
ParaId
,
last_head
:
HeadData
,
relay_context
:
R
,
...
...
@@ -142,6 +145,7 @@ pub fn collate<'a, R, P>(
ingress
.and_then
(
move
|
ingress
|
{
para_context
.produce_candidate
(
relay_parent
,
last_head
,
ingress
.0
.iter
()
.flat_map
(|
&
(
id
,
ref
msgs
)|
msgs
.iter
()
.cloned
()
.map
(
move
|
msg
|
(
id
,
msg
)))
)
...
...
@@ -327,6 +331,7 @@ impl<P, E> Worker for CollationNode<P, E> where
};
let
collation_work
=
collate
(
relay_parent
,
para_id
,
HeadData
(
last_head
),
context
,
...
...
@@ -427,6 +432,7 @@ mod tests {
fn
produce_candidate
<
I
:
IntoIterator
<
Item
=
(
ParaId
,
Message
)
>>
(
&
self
,
_relay_parent
:
Hash
,
_last_head
:
HeadData
,
ingress
:
I
,
)
->
Result
<
(
BlockData
,
HeadData
,
Extrinsic
),
InvalidHead
>
{
...
...
@@ -476,6 +482,7 @@ mod tests {
]));
let
collation
=
collate
(
Default
::
default
(),
id
,
HeadData
(
vec!
[
5
]),
context
.clone
(),
...
...
test-parachains/adder/collator/src/main.rs
View file @
d6fa479b
...
...
@@ -23,7 +23,7 @@ use std::sync::Arc;
use
adder
::{
HeadData
as
AdderHead
,
BlockData
as
AdderBody
};
use
substrate_primitives
::
Pair
;
use
parachain
::
codec
::{
Encode
,
Decode
};
use
primitives
::
parachain
::{
HeadData
,
BlockData
,
Id
as
ParaId
,
Message
,
Extrinsic
};
use
primitives
::
{
Hash
,
parachain
::{
HeadData
,
BlockData
,
Id
as
ParaId
,
Message
,
Extrinsic
}
}
;
use
collator
::{
InvalidHead
,
ParachainContext
,
VersionInfo
};
use
parking_lot
::
Mutex
;
...
...
@@ -49,6 +49,7 @@ impl ParachainContext for AdderContext {
fn
produce_candidate
<
I
:
IntoIterator
<
Item
=
(
ParaId
,
Message
)
>>
(
&
self
,
_relay_parent
:
Hash
,
last_head
:
HeadData
,
ingress
:
I
,
)
->
Result
<
(
BlockData
,
HeadData
,
Extrinsic
),
InvalidHead
>
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment