Trait polkadot_sdk_frame::traits::OffchainWorker
pub trait OffchainWorker<BlockNumber> {
// Provided method
fn offchain_worker(_n: BlockNumber) { ... }
}
Expand description
Off-chain computation trait.
Implementing this trait on a module allows you to perform long-running tasks that make (by default) validators generate transactions that feed results of those long-running computations back on chain.
NOTE: This function runs off-chain, so it can access the block state, but cannot preform any alterations. More specifically alterations are not forbidden, but they are not persisted in any way after the worker has finished.
Provided Methods§
fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
Object Safety§
Implementations on Foreign Types§
§impl<BlockNumber> OffchainWorker<BlockNumber> for ()where
BlockNumber: Clone,
impl<BlockNumber> OffchainWorker<BlockNumber> for ()where
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0> OffchainWorker<BlockNumber> for (TupleElement0,)where
TupleElement0: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0> OffchainWorker<BlockNumber> for (TupleElement0,)where
TupleElement0: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
TupleElement84: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
TupleElement84: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
TupleElement84: OffchainWorker<BlockNumber>,
TupleElement85: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
TupleElement84: OffchainWorker<BlockNumber>,
TupleElement85: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
TupleElement84: OffchainWorker<BlockNumber>,
TupleElement85: OffchainWorker<BlockNumber>,
TupleElement86: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
TupleElement84: OffchainWorker<BlockNumber>,
TupleElement85: OffchainWorker<BlockNumber>,
TupleElement86: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
TupleElement84: OffchainWorker<BlockNumber>,
TupleElement85: OffchainWorker<BlockNumber>,
TupleElement86: OffchainWorker<BlockNumber>,
TupleElement87: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
TupleElement84: OffchainWorker<BlockNumber>,
TupleElement85: OffchainWorker<BlockNumber>,
TupleElement86: OffchainWorker<BlockNumber>,
TupleElement87: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
TupleElement84: OffchainWorker<BlockNumber>,
TupleElement85: OffchainWorker<BlockNumber>,
TupleElement86: OffchainWorker<BlockNumber>,
TupleElement87: OffchainWorker<BlockNumber>,
TupleElement88: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
TupleElement84: OffchainWorker<BlockNumber>,
TupleElement85: OffchainWorker<BlockNumber>,
TupleElement86: OffchainWorker<BlockNumber>,
TupleElement87: OffchainWorker<BlockNumber>,
TupleElement88: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
TupleElement84: OffchainWorker<BlockNumber>,
TupleElement85: OffchainWorker<BlockNumber>,
TupleElement86: OffchainWorker<BlockNumber>,
TupleElement87: OffchainWorker<BlockNumber>,
TupleElement88: OffchainWorker<BlockNumber>,
TupleElement89: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
TupleElement84: OffchainWorker<BlockNumber>,
TupleElement85: OffchainWorker<BlockNumber>,
TupleElement86: OffchainWorker<BlockNumber>,
TupleElement87: OffchainWorker<BlockNumber>,
TupleElement88: OffchainWorker<BlockNumber>,
TupleElement89: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
TupleElement84: OffchainWorker<BlockNumber>,
TupleElement85: OffchainWorker<BlockNumber>,
TupleElement86: OffchainWorker<BlockNumber>,
TupleElement87: OffchainWorker<BlockNumber>,
TupleElement88: OffchainWorker<BlockNumber>,
TupleElement89: OffchainWorker<BlockNumber>,
TupleElement90: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
TupleElement84: OffchainWorker<BlockNumber>,
TupleElement85: OffchainWorker<BlockNumber>,
TupleElement86: OffchainWorker<BlockNumber>,
TupleElement87: OffchainWorker<BlockNumber>,
TupleElement88: OffchainWorker<BlockNumber>,
TupleElement89: OffchainWorker<BlockNumber>,
TupleElement90: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
TupleElement84: OffchainWorker<BlockNumber>,
TupleElement85: OffchainWorker<BlockNumber>,
TupleElement86: OffchainWorker<BlockNumber>,
TupleElement87: OffchainWorker<BlockNumber>,
TupleElement88: OffchainWorker<BlockNumber>,
TupleElement89: OffchainWorker<BlockNumber>,
TupleElement90: OffchainWorker<BlockNumber>,
TupleElement91: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
TupleElement84: OffchainWorker<BlockNumber>,
TupleElement85: OffchainWorker<BlockNumber>,
TupleElement86: OffchainWorker<BlockNumber>,
TupleElement87: OffchainWorker<BlockNumber>,
TupleElement88: OffchainWorker<BlockNumber>,
TupleElement89: OffchainWorker<BlockNumber>,
TupleElement90: OffchainWorker<BlockNumber>,
TupleElement91: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
TupleElement84: OffchainWorker<BlockNumber>,
TupleElement85: OffchainWorker<BlockNumber>,
TupleElement86: OffchainWorker<BlockNumber>,
TupleElement87: OffchainWorker<BlockNumber>,
TupleElement88: OffchainWorker<BlockNumber>,
TupleElement89: OffchainWorker<BlockNumber>,
TupleElement90: OffchainWorker<BlockNumber>,
TupleElement91: OffchainWorker<BlockNumber>,
TupleElement92: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
TupleElement84: OffchainWorker<BlockNumber>,
TupleElement85: OffchainWorker<BlockNumber>,
TupleElement86: OffchainWorker<BlockNumber>,
TupleElement87: OffchainWorker<BlockNumber>,
TupleElement88: OffchainWorker<BlockNumber>,
TupleElement89: OffchainWorker<BlockNumber>,
TupleElement90: OffchainWorker<BlockNumber>,
TupleElement91: OffchainWorker<BlockNumber>,
TupleElement92: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
TupleElement84: OffchainWorker<BlockNumber>,
TupleElement85: OffchainWorker<BlockNumber>,
TupleElement86: OffchainWorker<BlockNumber>,
TupleElement87: OffchainWorker<BlockNumber>,
TupleElement88: OffchainWorker<BlockNumber>,
TupleElement89: OffchainWorker<BlockNumber>,
TupleElement90: OffchainWorker<BlockNumber>,
TupleElement91: OffchainWorker<BlockNumber>,
TupleElement92: OffchainWorker<BlockNumber>,
TupleElement93: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
TupleElement84: OffchainWorker<BlockNumber>,
TupleElement85: OffchainWorker<BlockNumber>,
TupleElement86: OffchainWorker<BlockNumber>,
TupleElement87: OffchainWorker<BlockNumber>,
TupleElement88: OffchainWorker<BlockNumber>,
TupleElement89: OffchainWorker<BlockNumber>,
TupleElement90: OffchainWorker<BlockNumber>,
TupleElement91: OffchainWorker<BlockNumber>,
TupleElement92: OffchainWorker<BlockNumber>,
TupleElement93: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
TupleElement84: OffchainWorker<BlockNumber>,
TupleElement85: OffchainWorker<BlockNumber>,
TupleElement86: OffchainWorker<BlockNumber>,
TupleElement87: OffchainWorker<BlockNumber>,
TupleElement88: OffchainWorker<BlockNumber>,
TupleElement89: OffchainWorker<BlockNumber>,
TupleElement90: OffchainWorker<BlockNumber>,
TupleElement91: OffchainWorker<BlockNumber>,
TupleElement92: OffchainWorker<BlockNumber>,
TupleElement93: OffchainWorker<BlockNumber>,
TupleElement94: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
TupleElement84: OffchainWorker<BlockNumber>,
TupleElement85: OffchainWorker<BlockNumber>,
TupleElement86: OffchainWorker<BlockNumber>,
TupleElement87: OffchainWorker<BlockNumber>,
TupleElement88: OffchainWorker<BlockNumber>,
TupleElement89: OffchainWorker<BlockNumber>,
TupleElement90: OffchainWorker<BlockNumber>,
TupleElement91: OffchainWorker<BlockNumber>,
TupleElement92: OffchainWorker<BlockNumber>,
TupleElement93: OffchainWorker<BlockNumber>,
TupleElement94: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
TupleElement84: OffchainWorker<BlockNumber>,
TupleElement85: OffchainWorker<BlockNumber>,
TupleElement86: OffchainWorker<BlockNumber>,
TupleElement87: OffchainWorker<BlockNumber>,
TupleElement88: OffchainWorker<BlockNumber>,
TupleElement89: OffchainWorker<BlockNumber>,
TupleElement90: OffchainWorker<BlockNumber>,
TupleElement91: OffchainWorker<BlockNumber>,
TupleElement92: OffchainWorker<BlockNumber>,
TupleElement93: OffchainWorker<BlockNumber>,
TupleElement94: OffchainWorker<BlockNumber>,
TupleElement95: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
TupleElement84: OffchainWorker<BlockNumber>,
TupleElement85: OffchainWorker<BlockNumber>,
TupleElement86: OffchainWorker<BlockNumber>,
TupleElement87: OffchainWorker<BlockNumber>,
TupleElement88: OffchainWorker<BlockNumber>,
TupleElement89: OffchainWorker<BlockNumber>,
TupleElement90: OffchainWorker<BlockNumber>,
TupleElement91: OffchainWorker<BlockNumber>,
TupleElement92: OffchainWorker<BlockNumber>,
TupleElement93: OffchainWorker<BlockNumber>,
TupleElement94: OffchainWorker<BlockNumber>,
TupleElement95: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
TupleElement84: OffchainWorker<BlockNumber>,
TupleElement85: OffchainWorker<BlockNumber>,
TupleElement86: OffchainWorker<BlockNumber>,
TupleElement87: OffchainWorker<BlockNumber>,
TupleElement88: OffchainWorker<BlockNumber>,
TupleElement89: OffchainWorker<BlockNumber>,
TupleElement90: OffchainWorker<BlockNumber>,
TupleElement91: OffchainWorker<BlockNumber>,
TupleElement92: OffchainWorker<BlockNumber>,
TupleElement93: OffchainWorker<BlockNumber>,
TupleElement94: OffchainWorker<BlockNumber>,
TupleElement95: OffchainWorker<BlockNumber>,
TupleElement96: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
TupleElement84: OffchainWorker<BlockNumber>,
TupleElement85: OffchainWorker<BlockNumber>,
TupleElement86: OffchainWorker<BlockNumber>,
TupleElement87: OffchainWorker<BlockNumber>,
TupleElement88: OffchainWorker<BlockNumber>,
TupleElement89: OffchainWorker<BlockNumber>,
TupleElement90: OffchainWorker<BlockNumber>,
TupleElement91: OffchainWorker<BlockNumber>,
TupleElement92: OffchainWorker<BlockNumber>,
TupleElement93: OffchainWorker<BlockNumber>,
TupleElement94: OffchainWorker<BlockNumber>,
TupleElement95: OffchainWorker<BlockNumber>,
TupleElement96: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
TupleElement84: OffchainWorker<BlockNumber>,
TupleElement85: OffchainWorker<BlockNumber>,
TupleElement86: OffchainWorker<BlockNumber>,
TupleElement87: OffchainWorker<BlockNumber>,
TupleElement88: OffchainWorker<BlockNumber>,
TupleElement89: OffchainWorker<BlockNumber>,
TupleElement90: OffchainWorker<BlockNumber>,
TupleElement91: OffchainWorker<BlockNumber>,
TupleElement92: OffchainWorker<BlockNumber>,
TupleElement93: OffchainWorker<BlockNumber>,
TupleElement94: OffchainWorker<BlockNumber>,
TupleElement95: OffchainWorker<BlockNumber>,
TupleElement96: OffchainWorker<BlockNumber>,
TupleElement97: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
TupleElement84: OffchainWorker<BlockNumber>,
TupleElement85: OffchainWorker<BlockNumber>,
TupleElement86: OffchainWorker<BlockNumber>,
TupleElement87: OffchainWorker<BlockNumber>,
TupleElement88: OffchainWorker<BlockNumber>,
TupleElement89: OffchainWorker<BlockNumber>,
TupleElement90: OffchainWorker<BlockNumber>,
TupleElement91: OffchainWorker<BlockNumber>,
TupleElement92: OffchainWorker<BlockNumber>,
TupleElement93: OffchainWorker<BlockNumber>,
TupleElement94: OffchainWorker<BlockNumber>,
TupleElement95: OffchainWorker<BlockNumber>,
TupleElement96: OffchainWorker<BlockNumber>,
TupleElement97: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
TupleElement84: OffchainWorker<BlockNumber>,
TupleElement85: OffchainWorker<BlockNumber>,
TupleElement86: OffchainWorker<BlockNumber>,
TupleElement87: OffchainWorker<BlockNumber>,
TupleElement88: OffchainWorker<BlockNumber>,
TupleElement89: OffchainWorker<BlockNumber>,
TupleElement90: OffchainWorker<BlockNumber>,
TupleElement91: OffchainWorker<BlockNumber>,
TupleElement92: OffchainWorker<BlockNumber>,
TupleElement93: OffchainWorker<BlockNumber>,
TupleElement94: OffchainWorker<BlockNumber>,
TupleElement95: OffchainWorker<BlockNumber>,
TupleElement96: OffchainWorker<BlockNumber>,
TupleElement97: OffchainWorker<BlockNumber>,
TupleElement98: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
TupleElement84: OffchainWorker<BlockNumber>,
TupleElement85: OffchainWorker<BlockNumber>,
TupleElement86: OffchainWorker<BlockNumber>,
TupleElement87: OffchainWorker<BlockNumber>,
TupleElement88: OffchainWorker<BlockNumber>,
TupleElement89: OffchainWorker<BlockNumber>,
TupleElement90: OffchainWorker<BlockNumber>,
TupleElement91: OffchainWorker<BlockNumber>,
TupleElement92: OffchainWorker<BlockNumber>,
TupleElement93: OffchainWorker<BlockNumber>,
TupleElement94: OffchainWorker<BlockNumber>,
TupleElement95: OffchainWorker<BlockNumber>,
TupleElement96: OffchainWorker<BlockNumber>,
TupleElement97: OffchainWorker<BlockNumber>,
TupleElement98: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
TupleElement84: OffchainWorker<BlockNumber>,
TupleElement85: OffchainWorker<BlockNumber>,
TupleElement86: OffchainWorker<BlockNumber>,
TupleElement87: OffchainWorker<BlockNumber>,
TupleElement88: OffchainWorker<BlockNumber>,
TupleElement89: OffchainWorker<BlockNumber>,
TupleElement90: OffchainWorker<BlockNumber>,
TupleElement91: OffchainWorker<BlockNumber>,
TupleElement92: OffchainWorker<BlockNumber>,
TupleElement93: OffchainWorker<BlockNumber>,
TupleElement94: OffchainWorker<BlockNumber>,
TupleElement95: OffchainWorker<BlockNumber>,
TupleElement96: OffchainWorker<BlockNumber>,
TupleElement97: OffchainWorker<BlockNumber>,
TupleElement98: OffchainWorker<BlockNumber>,
TupleElement99: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
TupleElement84: OffchainWorker<BlockNumber>,
TupleElement85: OffchainWorker<BlockNumber>,
TupleElement86: OffchainWorker<BlockNumber>,
TupleElement87: OffchainWorker<BlockNumber>,
TupleElement88: OffchainWorker<BlockNumber>,
TupleElement89: OffchainWorker<BlockNumber>,
TupleElement90: OffchainWorker<BlockNumber>,
TupleElement91: OffchainWorker<BlockNumber>,
TupleElement92: OffchainWorker<BlockNumber>,
TupleElement93: OffchainWorker<BlockNumber>,
TupleElement94: OffchainWorker<BlockNumber>,
TupleElement95: OffchainWorker<BlockNumber>,
TupleElement96: OffchainWorker<BlockNumber>,
TupleElement97: OffchainWorker<BlockNumber>,
TupleElement98: OffchainWorker<BlockNumber>,
TupleElement99: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
TupleElement84: OffchainWorker<BlockNumber>,
TupleElement85: OffchainWorker<BlockNumber>,
TupleElement86: OffchainWorker<BlockNumber>,
TupleElement87: OffchainWorker<BlockNumber>,
TupleElement88: OffchainWorker<BlockNumber>,
TupleElement89: OffchainWorker<BlockNumber>,
TupleElement90: OffchainWorker<BlockNumber>,
TupleElement91: OffchainWorker<BlockNumber>,
TupleElement92: OffchainWorker<BlockNumber>,
TupleElement93: OffchainWorker<BlockNumber>,
TupleElement94: OffchainWorker<BlockNumber>,
TupleElement95: OffchainWorker<BlockNumber>,
TupleElement96: OffchainWorker<BlockNumber>,
TupleElement97: OffchainWorker<BlockNumber>,
TupleElement98: OffchainWorker<BlockNumber>,
TupleElement99: OffchainWorker<BlockNumber>,
TupleElement100: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
TupleElement84: OffchainWorker<BlockNumber>,
TupleElement85: OffchainWorker<BlockNumber>,
TupleElement86: OffchainWorker<BlockNumber>,
TupleElement87: OffchainWorker<BlockNumber>,
TupleElement88: OffchainWorker<BlockNumber>,
TupleElement89: OffchainWorker<BlockNumber>,
TupleElement90: OffchainWorker<BlockNumber>,
TupleElement91: OffchainWorker<BlockNumber>,
TupleElement92: OffchainWorker<BlockNumber>,
TupleElement93: OffchainWorker<BlockNumber>,
TupleElement94: OffchainWorker<BlockNumber>,
TupleElement95: OffchainWorker<BlockNumber>,
TupleElement96: OffchainWorker<BlockNumber>,
TupleElement97: OffchainWorker<BlockNumber>,
TupleElement98: OffchainWorker<BlockNumber>,
TupleElement99: OffchainWorker<BlockNumber>,
TupleElement100: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
TupleElement84: OffchainWorker<BlockNumber>,
TupleElement85: OffchainWorker<BlockNumber>,
TupleElement86: OffchainWorker<BlockNumber>,
TupleElement87: OffchainWorker<BlockNumber>,
TupleElement88: OffchainWorker<BlockNumber>,
TupleElement89: OffchainWorker<BlockNumber>,
TupleElement90: OffchainWorker<BlockNumber>,
TupleElement91: OffchainWorker<BlockNumber>,
TupleElement92: OffchainWorker<BlockNumber>,
TupleElement93: OffchainWorker<BlockNumber>,
TupleElement94: OffchainWorker<BlockNumber>,
TupleElement95: OffchainWorker<BlockNumber>,
TupleElement96: OffchainWorker<BlockNumber>,
TupleElement97: OffchainWorker<BlockNumber>,
TupleElement98: OffchainWorker<BlockNumber>,
TupleElement99: OffchainWorker<BlockNumber>,
TupleElement100: OffchainWorker<BlockNumber>,
TupleElement101: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
TupleElement84: OffchainWorker<BlockNumber>,
TupleElement85: OffchainWorker<BlockNumber>,
TupleElement86: OffchainWorker<BlockNumber>,
TupleElement87: OffchainWorker<BlockNumber>,
TupleElement88: OffchainWorker<BlockNumber>,
TupleElement89: OffchainWorker<BlockNumber>,
TupleElement90: OffchainWorker<BlockNumber>,
TupleElement91: OffchainWorker<BlockNumber>,
TupleElement92: OffchainWorker<BlockNumber>,
TupleElement93: OffchainWorker<BlockNumber>,
TupleElement94: OffchainWorker<BlockNumber>,
TupleElement95: OffchainWorker<BlockNumber>,
TupleElement96: OffchainWorker<BlockNumber>,
TupleElement97: OffchainWorker<BlockNumber>,
TupleElement98: OffchainWorker<BlockNumber>,
TupleElement99: OffchainWorker<BlockNumber>,
TupleElement100: OffchainWorker<BlockNumber>,
TupleElement101: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
TupleElement84: OffchainWorker<BlockNumber>,
TupleElement85: OffchainWorker<BlockNumber>,
TupleElement86: OffchainWorker<BlockNumber>,
TupleElement87: OffchainWorker<BlockNumber>,
TupleElement88: OffchainWorker<BlockNumber>,
TupleElement89: OffchainWorker<BlockNumber>,
TupleElement90: OffchainWorker<BlockNumber>,
TupleElement91: OffchainWorker<BlockNumber>,
TupleElement92: OffchainWorker<BlockNumber>,
TupleElement93: OffchainWorker<BlockNumber>,
TupleElement94: OffchainWorker<BlockNumber>,
TupleElement95: OffchainWorker<BlockNumber>,
TupleElement96: OffchainWorker<BlockNumber>,
TupleElement97: OffchainWorker<BlockNumber>,
TupleElement98: OffchainWorker<BlockNumber>,
TupleElement99: OffchainWorker<BlockNumber>,
TupleElement100: OffchainWorker<BlockNumber>,
TupleElement101: OffchainWorker<BlockNumber>,
TupleElement102: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
TupleElement84: OffchainWorker<BlockNumber>,
TupleElement85: OffchainWorker<BlockNumber>,
TupleElement86: OffchainWorker<BlockNumber>,
TupleElement87: OffchainWorker<BlockNumber>,
TupleElement88: OffchainWorker<BlockNumber>,
TupleElement89: OffchainWorker<BlockNumber>,
TupleElement90: OffchainWorker<BlockNumber>,
TupleElement91: OffchainWorker<BlockNumber>,
TupleElement92: OffchainWorker<BlockNumber>,
TupleElement93: OffchainWorker<BlockNumber>,
TupleElement94: OffchainWorker<BlockNumber>,
TupleElement95: OffchainWorker<BlockNumber>,
TupleElement96: OffchainWorker<BlockNumber>,
TupleElement97: OffchainWorker<BlockNumber>,
TupleElement98: OffchainWorker<BlockNumber>,
TupleElement99: OffchainWorker<BlockNumber>,
TupleElement100: OffchainWorker<BlockNumber>,
TupleElement101: OffchainWorker<BlockNumber>,
TupleElement102: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
TupleElement84: OffchainWorker<BlockNumber>,
TupleElement85: OffchainWorker<BlockNumber>,
TupleElement86: OffchainWorker<BlockNumber>,
TupleElement87: OffchainWorker<BlockNumber>,
TupleElement88: OffchainWorker<BlockNumber>,
TupleElement89: OffchainWorker<BlockNumber>,
TupleElement90: OffchainWorker<BlockNumber>,
TupleElement91: OffchainWorker<BlockNumber>,
TupleElement92: OffchainWorker<BlockNumber>,
TupleElement93: OffchainWorker<BlockNumber>,
TupleElement94: OffchainWorker<BlockNumber>,
TupleElement95: OffchainWorker<BlockNumber>,
TupleElement96: OffchainWorker<BlockNumber>,
TupleElement97: OffchainWorker<BlockNumber>,
TupleElement98: OffchainWorker<BlockNumber>,
TupleElement99: OffchainWorker<BlockNumber>,
TupleElement100: OffchainWorker<BlockNumber>,
TupleElement101: OffchainWorker<BlockNumber>,
TupleElement102: OffchainWorker<BlockNumber>,
TupleElement103: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
TupleElement84: OffchainWorker<BlockNumber>,
TupleElement85: OffchainWorker<BlockNumber>,
TupleElement86: OffchainWorker<BlockNumber>,
TupleElement87: OffchainWorker<BlockNumber>,
TupleElement88: OffchainWorker<BlockNumber>,
TupleElement89: OffchainWorker<BlockNumber>,
TupleElement90: OffchainWorker<BlockNumber>,
TupleElement91: OffchainWorker<BlockNumber>,
TupleElement92: OffchainWorker<BlockNumber>,
TupleElement93: OffchainWorker<BlockNumber>,
TupleElement94: OffchainWorker<BlockNumber>,
TupleElement95: OffchainWorker<BlockNumber>,
TupleElement96: OffchainWorker<BlockNumber>,
TupleElement97: OffchainWorker<BlockNumber>,
TupleElement98: OffchainWorker<BlockNumber>,
TupleElement99: OffchainWorker<BlockNumber>,
TupleElement100: OffchainWorker<BlockNumber>,
TupleElement101: OffchainWorker<BlockNumber>,
TupleElement102: OffchainWorker<BlockNumber>,
TupleElement103: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
TupleElement84: OffchainWorker<BlockNumber>,
TupleElement85: OffchainWorker<BlockNumber>,
TupleElement86: OffchainWorker<BlockNumber>,
TupleElement87: OffchainWorker<BlockNumber>,
TupleElement88: OffchainWorker<BlockNumber>,
TupleElement89: OffchainWorker<BlockNumber>,
TupleElement90: OffchainWorker<BlockNumber>,
TupleElement91: OffchainWorker<BlockNumber>,
TupleElement92: OffchainWorker<BlockNumber>,
TupleElement93: OffchainWorker<BlockNumber>,
TupleElement94: OffchainWorker<BlockNumber>,
TupleElement95: OffchainWorker<BlockNumber>,
TupleElement96: OffchainWorker<BlockNumber>,
TupleElement97: OffchainWorker<BlockNumber>,
TupleElement98: OffchainWorker<BlockNumber>,
TupleElement99: OffchainWorker<BlockNumber>,
TupleElement100: OffchainWorker<BlockNumber>,
TupleElement101: OffchainWorker<BlockNumber>,
TupleElement102: OffchainWorker<BlockNumber>,
TupleElement103: OffchainWorker<BlockNumber>,
TupleElement104: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
TupleElement84: OffchainWorker<BlockNumber>,
TupleElement85: OffchainWorker<BlockNumber>,
TupleElement86: OffchainWorker<BlockNumber>,
TupleElement87: OffchainWorker<BlockNumber>,
TupleElement88: OffchainWorker<BlockNumber>,
TupleElement89: OffchainWorker<BlockNumber>,
TupleElement90: OffchainWorker<BlockNumber>,
TupleElement91: OffchainWorker<BlockNumber>,
TupleElement92: OffchainWorker<BlockNumber>,
TupleElement93: OffchainWorker<BlockNumber>,
TupleElement94: OffchainWorker<BlockNumber>,
TupleElement95: OffchainWorker<BlockNumber>,
TupleElement96: OffchainWorker<BlockNumber>,
TupleElement97: OffchainWorker<BlockNumber>,
TupleElement98: OffchainWorker<BlockNumber>,
TupleElement99: OffchainWorker<BlockNumber>,
TupleElement100: OffchainWorker<BlockNumber>,
TupleElement101: OffchainWorker<BlockNumber>,
TupleElement102: OffchainWorker<BlockNumber>,
TupleElement103: OffchainWorker<BlockNumber>,
TupleElement104: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
TupleElement84: OffchainWorker<BlockNumber>,
TupleElement85: OffchainWorker<BlockNumber>,
TupleElement86: OffchainWorker<BlockNumber>,
TupleElement87: OffchainWorker<BlockNumber>,
TupleElement88: OffchainWorker<BlockNumber>,
TupleElement89: OffchainWorker<BlockNumber>,
TupleElement90: OffchainWorker<BlockNumber>,
TupleElement91: OffchainWorker<BlockNumber>,
TupleElement92: OffchainWorker<BlockNumber>,
TupleElement93: OffchainWorker<BlockNumber>,
TupleElement94: OffchainWorker<BlockNumber>,
TupleElement95: OffchainWorker<BlockNumber>,
TupleElement96: OffchainWorker<BlockNumber>,
TupleElement97: OffchainWorker<BlockNumber>,
TupleElement98: OffchainWorker<BlockNumber>,
TupleElement99: OffchainWorker<BlockNumber>,
TupleElement100: OffchainWorker<BlockNumber>,
TupleElement101: OffchainWorker<BlockNumber>,
TupleElement102: OffchainWorker<BlockNumber>,
TupleElement103: OffchainWorker<BlockNumber>,
TupleElement104: OffchainWorker<BlockNumber>,
TupleElement105: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
TupleElement84: OffchainWorker<BlockNumber>,
TupleElement85: OffchainWorker<BlockNumber>,
TupleElement86: OffchainWorker<BlockNumber>,
TupleElement87: OffchainWorker<BlockNumber>,
TupleElement88: OffchainWorker<BlockNumber>,
TupleElement89: OffchainWorker<BlockNumber>,
TupleElement90: OffchainWorker<BlockNumber>,
TupleElement91: OffchainWorker<BlockNumber>,
TupleElement92: OffchainWorker<BlockNumber>,
TupleElement93: OffchainWorker<BlockNumber>,
TupleElement94: OffchainWorker<BlockNumber>,
TupleElement95: OffchainWorker<BlockNumber>,
TupleElement96: OffchainWorker<BlockNumber>,
TupleElement97: OffchainWorker<BlockNumber>,
TupleElement98: OffchainWorker<BlockNumber>,
TupleElement99: OffchainWorker<BlockNumber>,
TupleElement100: OffchainWorker<BlockNumber>,
TupleElement101: OffchainWorker<BlockNumber>,
TupleElement102: OffchainWorker<BlockNumber>,
TupleElement103: OffchainWorker<BlockNumber>,
TupleElement104: OffchainWorker<BlockNumber>,
TupleElement105: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105, TupleElement106> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105, TupleElement106)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
TupleElement84: OffchainWorker<BlockNumber>,
TupleElement85: OffchainWorker<BlockNumber>,
TupleElement86: OffchainWorker<BlockNumber>,
TupleElement87: OffchainWorker<BlockNumber>,
TupleElement88: OffchainWorker<BlockNumber>,
TupleElement89: OffchainWorker<BlockNumber>,
TupleElement90: OffchainWorker<BlockNumber>,
TupleElement91: OffchainWorker<BlockNumber>,
TupleElement92: OffchainWorker<BlockNumber>,
TupleElement93: OffchainWorker<BlockNumber>,
TupleElement94: OffchainWorker<BlockNumber>,
TupleElement95: OffchainWorker<BlockNumber>,
TupleElement96: OffchainWorker<BlockNumber>,
TupleElement97: OffchainWorker<BlockNumber>,
TupleElement98: OffchainWorker<BlockNumber>,
TupleElement99: OffchainWorker<BlockNumber>,
TupleElement100: OffchainWorker<BlockNumber>,
TupleElement101: OffchainWorker<BlockNumber>,
TupleElement102: OffchainWorker<BlockNumber>,
TupleElement103: OffchainWorker<BlockNumber>,
TupleElement104: OffchainWorker<BlockNumber>,
TupleElement105: OffchainWorker<BlockNumber>,
TupleElement106: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105, TupleElement106> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105, TupleElement106)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
TupleElement84: OffchainWorker<BlockNumber>,
TupleElement85: OffchainWorker<BlockNumber>,
TupleElement86: OffchainWorker<BlockNumber>,
TupleElement87: OffchainWorker<BlockNumber>,
TupleElement88: OffchainWorker<BlockNumber>,
TupleElement89: OffchainWorker<BlockNumber>,
TupleElement90: OffchainWorker<BlockNumber>,
TupleElement91: OffchainWorker<BlockNumber>,
TupleElement92: OffchainWorker<BlockNumber>,
TupleElement93: OffchainWorker<BlockNumber>,
TupleElement94: OffchainWorker<BlockNumber>,
TupleElement95: OffchainWorker<BlockNumber>,
TupleElement96: OffchainWorker<BlockNumber>,
TupleElement97: OffchainWorker<BlockNumber>,
TupleElement98: OffchainWorker<BlockNumber>,
TupleElement99: OffchainWorker<BlockNumber>,
TupleElement100: OffchainWorker<BlockNumber>,
TupleElement101: OffchainWorker<BlockNumber>,
TupleElement102: OffchainWorker<BlockNumber>,
TupleElement103: OffchainWorker<BlockNumber>,
TupleElement104: OffchainWorker<BlockNumber>,
TupleElement105: OffchainWorker<BlockNumber>,
TupleElement106: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105, TupleElement106, TupleElement107> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105, TupleElement106, TupleElement107)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
TupleElement84: OffchainWorker<BlockNumber>,
TupleElement85: OffchainWorker<BlockNumber>,
TupleElement86: OffchainWorker<BlockNumber>,
TupleElement87: OffchainWorker<BlockNumber>,
TupleElement88: OffchainWorker<BlockNumber>,
TupleElement89: OffchainWorker<BlockNumber>,
TupleElement90: OffchainWorker<BlockNumber>,
TupleElement91: OffchainWorker<BlockNumber>,
TupleElement92: OffchainWorker<BlockNumber>,
TupleElement93: OffchainWorker<BlockNumber>,
TupleElement94: OffchainWorker<BlockNumber>,
TupleElement95: OffchainWorker<BlockNumber>,
TupleElement96: OffchainWorker<BlockNumber>,
TupleElement97: OffchainWorker<BlockNumber>,
TupleElement98: OffchainWorker<BlockNumber>,
TupleElement99: OffchainWorker<BlockNumber>,
TupleElement100: OffchainWorker<BlockNumber>,
TupleElement101: OffchainWorker<BlockNumber>,
TupleElement102: OffchainWorker<BlockNumber>,
TupleElement103: OffchainWorker<BlockNumber>,
TupleElement104: OffchainWorker<BlockNumber>,
TupleElement105: OffchainWorker<BlockNumber>,
TupleElement106: OffchainWorker<BlockNumber>,
TupleElement107: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105, TupleElement106, TupleElement107> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105, TupleElement106, TupleElement107)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
TupleElement84: OffchainWorker<BlockNumber>,
TupleElement85: OffchainWorker<BlockNumber>,
TupleElement86: OffchainWorker<BlockNumber>,
TupleElement87: OffchainWorker<BlockNumber>,
TupleElement88: OffchainWorker<BlockNumber>,
TupleElement89: OffchainWorker<BlockNumber>,
TupleElement90: OffchainWorker<BlockNumber>,
TupleElement91: OffchainWorker<BlockNumber>,
TupleElement92: OffchainWorker<BlockNumber>,
TupleElement93: OffchainWorker<BlockNumber>,
TupleElement94: OffchainWorker<BlockNumber>,
TupleElement95: OffchainWorker<BlockNumber>,
TupleElement96: OffchainWorker<BlockNumber>,
TupleElement97: OffchainWorker<BlockNumber>,
TupleElement98: OffchainWorker<BlockNumber>,
TupleElement99: OffchainWorker<BlockNumber>,
TupleElement100: OffchainWorker<BlockNumber>,
TupleElement101: OffchainWorker<BlockNumber>,
TupleElement102: OffchainWorker<BlockNumber>,
TupleElement103: OffchainWorker<BlockNumber>,
TupleElement104: OffchainWorker<BlockNumber>,
TupleElement105: OffchainWorker<BlockNumber>,
TupleElement106: OffchainWorker<BlockNumber>,
TupleElement107: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105, TupleElement106, TupleElement107, TupleElement108> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105, TupleElement106, TupleElement107, TupleElement108)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
TupleElement84: OffchainWorker<BlockNumber>,
TupleElement85: OffchainWorker<BlockNumber>,
TupleElement86: OffchainWorker<BlockNumber>,
TupleElement87: OffchainWorker<BlockNumber>,
TupleElement88: OffchainWorker<BlockNumber>,
TupleElement89: OffchainWorker<BlockNumber>,
TupleElement90: OffchainWorker<BlockNumber>,
TupleElement91: OffchainWorker<BlockNumber>,
TupleElement92: OffchainWorker<BlockNumber>,
TupleElement93: OffchainWorker<BlockNumber>,
TupleElement94: OffchainWorker<BlockNumber>,
TupleElement95: OffchainWorker<BlockNumber>,
TupleElement96: OffchainWorker<BlockNumber>,
TupleElement97: OffchainWorker<BlockNumber>,
TupleElement98: OffchainWorker<BlockNumber>,
TupleElement99: OffchainWorker<BlockNumber>,
TupleElement100: OffchainWorker<BlockNumber>,
TupleElement101: OffchainWorker<BlockNumber>,
TupleElement102: OffchainWorker<BlockNumber>,
TupleElement103: OffchainWorker<BlockNumber>,
TupleElement104: OffchainWorker<BlockNumber>,
TupleElement105: OffchainWorker<BlockNumber>,
TupleElement106: OffchainWorker<BlockNumber>,
TupleElement107: OffchainWorker<BlockNumber>,
TupleElement108: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105, TupleElement106, TupleElement107, TupleElement108> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105, TupleElement106, TupleElement107, TupleElement108)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
TupleElement84: OffchainWorker<BlockNumber>,
TupleElement85: OffchainWorker<BlockNumber>,
TupleElement86: OffchainWorker<BlockNumber>,
TupleElement87: OffchainWorker<BlockNumber>,
TupleElement88: OffchainWorker<BlockNumber>,
TupleElement89: OffchainWorker<BlockNumber>,
TupleElement90: OffchainWorker<BlockNumber>,
TupleElement91: OffchainWorker<BlockNumber>,
TupleElement92: OffchainWorker<BlockNumber>,
TupleElement93: OffchainWorker<BlockNumber>,
TupleElement94: OffchainWorker<BlockNumber>,
TupleElement95: OffchainWorker<BlockNumber>,
TupleElement96: OffchainWorker<BlockNumber>,
TupleElement97: OffchainWorker<BlockNumber>,
TupleElement98: OffchainWorker<BlockNumber>,
TupleElement99: OffchainWorker<BlockNumber>,
TupleElement100: OffchainWorker<BlockNumber>,
TupleElement101: OffchainWorker<BlockNumber>,
TupleElement102: OffchainWorker<BlockNumber>,
TupleElement103: OffchainWorker<BlockNumber>,
TupleElement104: OffchainWorker<BlockNumber>,
TupleElement105: OffchainWorker<BlockNumber>,
TupleElement106: OffchainWorker<BlockNumber>,
TupleElement107: OffchainWorker<BlockNumber>,
TupleElement108: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105, TupleElement106, TupleElement107, TupleElement108, TupleElement109> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105, TupleElement106, TupleElement107, TupleElement108, TupleElement109)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
TupleElement84: OffchainWorker<BlockNumber>,
TupleElement85: OffchainWorker<BlockNumber>,
TupleElement86: OffchainWorker<BlockNumber>,
TupleElement87: OffchainWorker<BlockNumber>,
TupleElement88: OffchainWorker<BlockNumber>,
TupleElement89: OffchainWorker<BlockNumber>,
TupleElement90: OffchainWorker<BlockNumber>,
TupleElement91: OffchainWorker<BlockNumber>,
TupleElement92: OffchainWorker<BlockNumber>,
TupleElement93: OffchainWorker<BlockNumber>,
TupleElement94: OffchainWorker<BlockNumber>,
TupleElement95: OffchainWorker<BlockNumber>,
TupleElement96: OffchainWorker<BlockNumber>,
TupleElement97: OffchainWorker<BlockNumber>,
TupleElement98: OffchainWorker<BlockNumber>,
TupleElement99: OffchainWorker<BlockNumber>,
TupleElement100: OffchainWorker<BlockNumber>,
TupleElement101: OffchainWorker<BlockNumber>,
TupleElement102: OffchainWorker<BlockNumber>,
TupleElement103: OffchainWorker<BlockNumber>,
TupleElement104: OffchainWorker<BlockNumber>,
TupleElement105: OffchainWorker<BlockNumber>,
TupleElement106: OffchainWorker<BlockNumber>,
TupleElement107: OffchainWorker<BlockNumber>,
TupleElement108: OffchainWorker<BlockNumber>,
TupleElement109: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105, TupleElement106, TupleElement107, TupleElement108, TupleElement109> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105, TupleElement106, TupleElement107, TupleElement108, TupleElement109)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
TupleElement84: OffchainWorker<BlockNumber>,
TupleElement85: OffchainWorker<BlockNumber>,
TupleElement86: OffchainWorker<BlockNumber>,
TupleElement87: OffchainWorker<BlockNumber>,
TupleElement88: OffchainWorker<BlockNumber>,
TupleElement89: OffchainWorker<BlockNumber>,
TupleElement90: OffchainWorker<BlockNumber>,
TupleElement91: OffchainWorker<BlockNumber>,
TupleElement92: OffchainWorker<BlockNumber>,
TupleElement93: OffchainWorker<BlockNumber>,
TupleElement94: OffchainWorker<BlockNumber>,
TupleElement95: OffchainWorker<BlockNumber>,
TupleElement96: OffchainWorker<BlockNumber>,
TupleElement97: OffchainWorker<BlockNumber>,
TupleElement98: OffchainWorker<BlockNumber>,
TupleElement99: OffchainWorker<BlockNumber>,
TupleElement100: OffchainWorker<BlockNumber>,
TupleElement101: OffchainWorker<BlockNumber>,
TupleElement102: OffchainWorker<BlockNumber>,
TupleElement103: OffchainWorker<BlockNumber>,
TupleElement104: OffchainWorker<BlockNumber>,
TupleElement105: OffchainWorker<BlockNumber>,
TupleElement106: OffchainWorker<BlockNumber>,
TupleElement107: OffchainWorker<BlockNumber>,
TupleElement108: OffchainWorker<BlockNumber>,
TupleElement109: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105, TupleElement106, TupleElement107, TupleElement108, TupleElement109, TupleElement110> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105, TupleElement106, TupleElement107, TupleElement108, TupleElement109, TupleElement110)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
TupleElement84: OffchainWorker<BlockNumber>,
TupleElement85: OffchainWorker<BlockNumber>,
TupleElement86: OffchainWorker<BlockNumber>,
TupleElement87: OffchainWorker<BlockNumber>,
TupleElement88: OffchainWorker<BlockNumber>,
TupleElement89: OffchainWorker<BlockNumber>,
TupleElement90: OffchainWorker<BlockNumber>,
TupleElement91: OffchainWorker<BlockNumber>,
TupleElement92: OffchainWorker<BlockNumber>,
TupleElement93: OffchainWorker<BlockNumber>,
TupleElement94: OffchainWorker<BlockNumber>,
TupleElement95: OffchainWorker<BlockNumber>,
TupleElement96: OffchainWorker<BlockNumber>,
TupleElement97: OffchainWorker<BlockNumber>,
TupleElement98: OffchainWorker<BlockNumber>,
TupleElement99: OffchainWorker<BlockNumber>,
TupleElement100: OffchainWorker<BlockNumber>,
TupleElement101: OffchainWorker<BlockNumber>,
TupleElement102: OffchainWorker<BlockNumber>,
TupleElement103: OffchainWorker<BlockNumber>,
TupleElement104: OffchainWorker<BlockNumber>,
TupleElement105: OffchainWorker<BlockNumber>,
TupleElement106: OffchainWorker<BlockNumber>,
TupleElement107: OffchainWorker<BlockNumber>,
TupleElement108: OffchainWorker<BlockNumber>,
TupleElement109: OffchainWorker<BlockNumber>,
TupleElement110: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105, TupleElement106, TupleElement107, TupleElement108, TupleElement109, TupleElement110> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105, TupleElement106, TupleElement107, TupleElement108, TupleElement109, TupleElement110)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
TupleElement84: OffchainWorker<BlockNumber>,
TupleElement85: OffchainWorker<BlockNumber>,
TupleElement86: OffchainWorker<BlockNumber>,
TupleElement87: OffchainWorker<BlockNumber>,
TupleElement88: OffchainWorker<BlockNumber>,
TupleElement89: OffchainWorker<BlockNumber>,
TupleElement90: OffchainWorker<BlockNumber>,
TupleElement91: OffchainWorker<BlockNumber>,
TupleElement92: OffchainWorker<BlockNumber>,
TupleElement93: OffchainWorker<BlockNumber>,
TupleElement94: OffchainWorker<BlockNumber>,
TupleElement95: OffchainWorker<BlockNumber>,
TupleElement96: OffchainWorker<BlockNumber>,
TupleElement97: OffchainWorker<BlockNumber>,
TupleElement98: OffchainWorker<BlockNumber>,
TupleElement99: OffchainWorker<BlockNumber>,
TupleElement100: OffchainWorker<BlockNumber>,
TupleElement101: OffchainWorker<BlockNumber>,
TupleElement102: OffchainWorker<BlockNumber>,
TupleElement103: OffchainWorker<BlockNumber>,
TupleElement104: OffchainWorker<BlockNumber>,
TupleElement105: OffchainWorker<BlockNumber>,
TupleElement106: OffchainWorker<BlockNumber>,
TupleElement107: OffchainWorker<BlockNumber>,
TupleElement108: OffchainWorker<BlockNumber>,
TupleElement109: OffchainWorker<BlockNumber>,
TupleElement110: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105, TupleElement106, TupleElement107, TupleElement108, TupleElement109, TupleElement110, TupleElement111> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105, TupleElement106, TupleElement107, TupleElement108, TupleElement109, TupleElement110, TupleElement111)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
TupleElement84: OffchainWorker<BlockNumber>,
TupleElement85: OffchainWorker<BlockNumber>,
TupleElement86: OffchainWorker<BlockNumber>,
TupleElement87: OffchainWorker<BlockNumber>,
TupleElement88: OffchainWorker<BlockNumber>,
TupleElement89: OffchainWorker<BlockNumber>,
TupleElement90: OffchainWorker<BlockNumber>,
TupleElement91: OffchainWorker<BlockNumber>,
TupleElement92: OffchainWorker<BlockNumber>,
TupleElement93: OffchainWorker<BlockNumber>,
TupleElement94: OffchainWorker<BlockNumber>,
TupleElement95: OffchainWorker<BlockNumber>,
TupleElement96: OffchainWorker<BlockNumber>,
TupleElement97: OffchainWorker<BlockNumber>,
TupleElement98: OffchainWorker<BlockNumber>,
TupleElement99: OffchainWorker<BlockNumber>,
TupleElement100: OffchainWorker<BlockNumber>,
TupleElement101: OffchainWorker<BlockNumber>,
TupleElement102: OffchainWorker<BlockNumber>,
TupleElement103: OffchainWorker<BlockNumber>,
TupleElement104: OffchainWorker<BlockNumber>,
TupleElement105: OffchainWorker<BlockNumber>,
TupleElement106: OffchainWorker<BlockNumber>,
TupleElement107: OffchainWorker<BlockNumber>,
TupleElement108: OffchainWorker<BlockNumber>,
TupleElement109: OffchainWorker<BlockNumber>,
TupleElement110: OffchainWorker<BlockNumber>,
TupleElement111: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105, TupleElement106, TupleElement107, TupleElement108, TupleElement109, TupleElement110, TupleElement111> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105, TupleElement106, TupleElement107, TupleElement108, TupleElement109, TupleElement110, TupleElement111)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
TupleElement84: OffchainWorker<BlockNumber>,
TupleElement85: OffchainWorker<BlockNumber>,
TupleElement86: OffchainWorker<BlockNumber>,
TupleElement87: OffchainWorker<BlockNumber>,
TupleElement88: OffchainWorker<BlockNumber>,
TupleElement89: OffchainWorker<BlockNumber>,
TupleElement90: OffchainWorker<BlockNumber>,
TupleElement91: OffchainWorker<BlockNumber>,
TupleElement92: OffchainWorker<BlockNumber>,
TupleElement93: OffchainWorker<BlockNumber>,
TupleElement94: OffchainWorker<BlockNumber>,
TupleElement95: OffchainWorker<BlockNumber>,
TupleElement96: OffchainWorker<BlockNumber>,
TupleElement97: OffchainWorker<BlockNumber>,
TupleElement98: OffchainWorker<BlockNumber>,
TupleElement99: OffchainWorker<BlockNumber>,
TupleElement100: OffchainWorker<BlockNumber>,
TupleElement101: OffchainWorker<BlockNumber>,
TupleElement102: OffchainWorker<BlockNumber>,
TupleElement103: OffchainWorker<BlockNumber>,
TupleElement104: OffchainWorker<BlockNumber>,
TupleElement105: OffchainWorker<BlockNumber>,
TupleElement106: OffchainWorker<BlockNumber>,
TupleElement107: OffchainWorker<BlockNumber>,
TupleElement108: OffchainWorker<BlockNumber>,
TupleElement109: OffchainWorker<BlockNumber>,
TupleElement110: OffchainWorker<BlockNumber>,
TupleElement111: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105, TupleElement106, TupleElement107, TupleElement108, TupleElement109, TupleElement110, TupleElement111, TupleElement112> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105, TupleElement106, TupleElement107, TupleElement108, TupleElement109, TupleElement110, TupleElement111, TupleElement112)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
TupleElement84: OffchainWorker<BlockNumber>,
TupleElement85: OffchainWorker<BlockNumber>,
TupleElement86: OffchainWorker<BlockNumber>,
TupleElement87: OffchainWorker<BlockNumber>,
TupleElement88: OffchainWorker<BlockNumber>,
TupleElement89: OffchainWorker<BlockNumber>,
TupleElement90: OffchainWorker<BlockNumber>,
TupleElement91: OffchainWorker<BlockNumber>,
TupleElement92: OffchainWorker<BlockNumber>,
TupleElement93: OffchainWorker<BlockNumber>,
TupleElement94: OffchainWorker<BlockNumber>,
TupleElement95: OffchainWorker<BlockNumber>,
TupleElement96: OffchainWorker<BlockNumber>,
TupleElement97: OffchainWorker<BlockNumber>,
TupleElement98: OffchainWorker<BlockNumber>,
TupleElement99: OffchainWorker<BlockNumber>,
TupleElement100: OffchainWorker<BlockNumber>,
TupleElement101: OffchainWorker<BlockNumber>,
TupleElement102: OffchainWorker<BlockNumber>,
TupleElement103: OffchainWorker<BlockNumber>,
TupleElement104: OffchainWorker<BlockNumber>,
TupleElement105: OffchainWorker<BlockNumber>,
TupleElement106: OffchainWorker<BlockNumber>,
TupleElement107: OffchainWorker<BlockNumber>,
TupleElement108: OffchainWorker<BlockNumber>,
TupleElement109: OffchainWorker<BlockNumber>,
TupleElement110: OffchainWorker<BlockNumber>,
TupleElement111: OffchainWorker<BlockNumber>,
TupleElement112: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105, TupleElement106, TupleElement107, TupleElement108, TupleElement109, TupleElement110, TupleElement111, TupleElement112> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105, TupleElement106, TupleElement107, TupleElement108, TupleElement109, TupleElement110, TupleElement111, TupleElement112)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
TupleElement84: OffchainWorker<BlockNumber>,
TupleElement85: OffchainWorker<BlockNumber>,
TupleElement86: OffchainWorker<BlockNumber>,
TupleElement87: OffchainWorker<BlockNumber>,
TupleElement88: OffchainWorker<BlockNumber>,
TupleElement89: OffchainWorker<BlockNumber>,
TupleElement90: OffchainWorker<BlockNumber>,
TupleElement91: OffchainWorker<BlockNumber>,
TupleElement92: OffchainWorker<BlockNumber>,
TupleElement93: OffchainWorker<BlockNumber>,
TupleElement94: OffchainWorker<BlockNumber>,
TupleElement95: OffchainWorker<BlockNumber>,
TupleElement96: OffchainWorker<BlockNumber>,
TupleElement97: OffchainWorker<BlockNumber>,
TupleElement98: OffchainWorker<BlockNumber>,
TupleElement99: OffchainWorker<BlockNumber>,
TupleElement100: OffchainWorker<BlockNumber>,
TupleElement101: OffchainWorker<BlockNumber>,
TupleElement102: OffchainWorker<BlockNumber>,
TupleElement103: OffchainWorker<BlockNumber>,
TupleElement104: OffchainWorker<BlockNumber>,
TupleElement105: OffchainWorker<BlockNumber>,
TupleElement106: OffchainWorker<BlockNumber>,
TupleElement107: OffchainWorker<BlockNumber>,
TupleElement108: OffchainWorker<BlockNumber>,
TupleElement109: OffchainWorker<BlockNumber>,
TupleElement110: OffchainWorker<BlockNumber>,
TupleElement111: OffchainWorker<BlockNumber>,
TupleElement112: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105, TupleElement106, TupleElement107, TupleElement108, TupleElement109, TupleElement110, TupleElement111, TupleElement112, TupleElement113> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105, TupleElement106, TupleElement107, TupleElement108, TupleElement109, TupleElement110, TupleElement111, TupleElement112, TupleElement113)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
TupleElement84: OffchainWorker<BlockNumber>,
TupleElement85: OffchainWorker<BlockNumber>,
TupleElement86: OffchainWorker<BlockNumber>,
TupleElement87: OffchainWorker<BlockNumber>,
TupleElement88: OffchainWorker<BlockNumber>,
TupleElement89: OffchainWorker<BlockNumber>,
TupleElement90: OffchainWorker<BlockNumber>,
TupleElement91: OffchainWorker<BlockNumber>,
TupleElement92: OffchainWorker<BlockNumber>,
TupleElement93: OffchainWorker<BlockNumber>,
TupleElement94: OffchainWorker<BlockNumber>,
TupleElement95: OffchainWorker<BlockNumber>,
TupleElement96: OffchainWorker<BlockNumber>,
TupleElement97: OffchainWorker<BlockNumber>,
TupleElement98: OffchainWorker<BlockNumber>,
TupleElement99: OffchainWorker<BlockNumber>,
TupleElement100: OffchainWorker<BlockNumber>,
TupleElement101: OffchainWorker<BlockNumber>,
TupleElement102: OffchainWorker<BlockNumber>,
TupleElement103: OffchainWorker<BlockNumber>,
TupleElement104: OffchainWorker<BlockNumber>,
TupleElement105: OffchainWorker<BlockNumber>,
TupleElement106: OffchainWorker<BlockNumber>,
TupleElement107: OffchainWorker<BlockNumber>,
TupleElement108: OffchainWorker<BlockNumber>,
TupleElement109: OffchainWorker<BlockNumber>,
TupleElement110: OffchainWorker<BlockNumber>,
TupleElement111: OffchainWorker<BlockNumber>,
TupleElement112: OffchainWorker<BlockNumber>,
TupleElement113: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105, TupleElement106, TupleElement107, TupleElement108, TupleElement109, TupleElement110, TupleElement111, TupleElement112, TupleElement113> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105, TupleElement106, TupleElement107, TupleElement108, TupleElement109, TupleElement110, TupleElement111, TupleElement112, TupleElement113)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
TupleElement84: OffchainWorker<BlockNumber>,
TupleElement85: OffchainWorker<BlockNumber>,
TupleElement86: OffchainWorker<BlockNumber>,
TupleElement87: OffchainWorker<BlockNumber>,
TupleElement88: OffchainWorker<BlockNumber>,
TupleElement89: OffchainWorker<BlockNumber>,
TupleElement90: OffchainWorker<BlockNumber>,
TupleElement91: OffchainWorker<BlockNumber>,
TupleElement92: OffchainWorker<BlockNumber>,
TupleElement93: OffchainWorker<BlockNumber>,
TupleElement94: OffchainWorker<BlockNumber>,
TupleElement95: OffchainWorker<BlockNumber>,
TupleElement96: OffchainWorker<BlockNumber>,
TupleElement97: OffchainWorker<BlockNumber>,
TupleElement98: OffchainWorker<BlockNumber>,
TupleElement99: OffchainWorker<BlockNumber>,
TupleElement100: OffchainWorker<BlockNumber>,
TupleElement101: OffchainWorker<BlockNumber>,
TupleElement102: OffchainWorker<BlockNumber>,
TupleElement103: OffchainWorker<BlockNumber>,
TupleElement104: OffchainWorker<BlockNumber>,
TupleElement105: OffchainWorker<BlockNumber>,
TupleElement106: OffchainWorker<BlockNumber>,
TupleElement107: OffchainWorker<BlockNumber>,
TupleElement108: OffchainWorker<BlockNumber>,
TupleElement109: OffchainWorker<BlockNumber>,
TupleElement110: OffchainWorker<BlockNumber>,
TupleElement111: OffchainWorker<BlockNumber>,
TupleElement112: OffchainWorker<BlockNumber>,
TupleElement113: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105, TupleElement106, TupleElement107, TupleElement108, TupleElement109, TupleElement110, TupleElement111, TupleElement112, TupleElement113, TupleElement114> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105, TupleElement106, TupleElement107, TupleElement108, TupleElement109, TupleElement110, TupleElement111, TupleElement112, TupleElement113, TupleElement114)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
TupleElement84: OffchainWorker<BlockNumber>,
TupleElement85: OffchainWorker<BlockNumber>,
TupleElement86: OffchainWorker<BlockNumber>,
TupleElement87: OffchainWorker<BlockNumber>,
TupleElement88: OffchainWorker<BlockNumber>,
TupleElement89: OffchainWorker<BlockNumber>,
TupleElement90: OffchainWorker<BlockNumber>,
TupleElement91: OffchainWorker<BlockNumber>,
TupleElement92: OffchainWorker<BlockNumber>,
TupleElement93: OffchainWorker<BlockNumber>,
TupleElement94: OffchainWorker<BlockNumber>,
TupleElement95: OffchainWorker<BlockNumber>,
TupleElement96: OffchainWorker<BlockNumber>,
TupleElement97: OffchainWorker<BlockNumber>,
TupleElement98: OffchainWorker<BlockNumber>,
TupleElement99: OffchainWorker<BlockNumber>,
TupleElement100: OffchainWorker<BlockNumber>,
TupleElement101: OffchainWorker<BlockNumber>,
TupleElement102: OffchainWorker<BlockNumber>,
TupleElement103: OffchainWorker<BlockNumber>,
TupleElement104: OffchainWorker<BlockNumber>,
TupleElement105: OffchainWorker<BlockNumber>,
TupleElement106: OffchainWorker<BlockNumber>,
TupleElement107: OffchainWorker<BlockNumber>,
TupleElement108: OffchainWorker<BlockNumber>,
TupleElement109: OffchainWorker<BlockNumber>,
TupleElement110: OffchainWorker<BlockNumber>,
TupleElement111: OffchainWorker<BlockNumber>,
TupleElement112: OffchainWorker<BlockNumber>,
TupleElement113: OffchainWorker<BlockNumber>,
TupleElement114: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105, TupleElement106, TupleElement107, TupleElement108, TupleElement109, TupleElement110, TupleElement111, TupleElement112, TupleElement113, TupleElement114> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105, TupleElement106, TupleElement107, TupleElement108, TupleElement109, TupleElement110, TupleElement111, TupleElement112, TupleElement113, TupleElement114)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
TupleElement84: OffchainWorker<BlockNumber>,
TupleElement85: OffchainWorker<BlockNumber>,
TupleElement86: OffchainWorker<BlockNumber>,
TupleElement87: OffchainWorker<BlockNumber>,
TupleElement88: OffchainWorker<BlockNumber>,
TupleElement89: OffchainWorker<BlockNumber>,
TupleElement90: OffchainWorker<BlockNumber>,
TupleElement91: OffchainWorker<BlockNumber>,
TupleElement92: OffchainWorker<BlockNumber>,
TupleElement93: OffchainWorker<BlockNumber>,
TupleElement94: OffchainWorker<BlockNumber>,
TupleElement95: OffchainWorker<BlockNumber>,
TupleElement96: OffchainWorker<BlockNumber>,
TupleElement97: OffchainWorker<BlockNumber>,
TupleElement98: OffchainWorker<BlockNumber>,
TupleElement99: OffchainWorker<BlockNumber>,
TupleElement100: OffchainWorker<BlockNumber>,
TupleElement101: OffchainWorker<BlockNumber>,
TupleElement102: OffchainWorker<BlockNumber>,
TupleElement103: OffchainWorker<BlockNumber>,
TupleElement104: OffchainWorker<BlockNumber>,
TupleElement105: OffchainWorker<BlockNumber>,
TupleElement106: OffchainWorker<BlockNumber>,
TupleElement107: OffchainWorker<BlockNumber>,
TupleElement108: OffchainWorker<BlockNumber>,
TupleElement109: OffchainWorker<BlockNumber>,
TupleElement110: OffchainWorker<BlockNumber>,
TupleElement111: OffchainWorker<BlockNumber>,
TupleElement112: OffchainWorker<BlockNumber>,
TupleElement113: OffchainWorker<BlockNumber>,
TupleElement114: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105, TupleElement106, TupleElement107, TupleElement108, TupleElement109, TupleElement110, TupleElement111, TupleElement112, TupleElement113, TupleElement114, TupleElement115> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105, TupleElement106, TupleElement107, TupleElement108, TupleElement109, TupleElement110, TupleElement111, TupleElement112, TupleElement113, TupleElement114, TupleElement115)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
TupleElement84: OffchainWorker<BlockNumber>,
TupleElement85: OffchainWorker<BlockNumber>,
TupleElement86: OffchainWorker<BlockNumber>,
TupleElement87: OffchainWorker<BlockNumber>,
TupleElement88: OffchainWorker<BlockNumber>,
TupleElement89: OffchainWorker<BlockNumber>,
TupleElement90: OffchainWorker<BlockNumber>,
TupleElement91: OffchainWorker<BlockNumber>,
TupleElement92: OffchainWorker<BlockNumber>,
TupleElement93: OffchainWorker<BlockNumber>,
TupleElement94: OffchainWorker<BlockNumber>,
TupleElement95: OffchainWorker<BlockNumber>,
TupleElement96: OffchainWorker<BlockNumber>,
TupleElement97: OffchainWorker<BlockNumber>,
TupleElement98: OffchainWorker<BlockNumber>,
TupleElement99: OffchainWorker<BlockNumber>,
TupleElement100: OffchainWorker<BlockNumber>,
TupleElement101: OffchainWorker<BlockNumber>,
TupleElement102: OffchainWorker<BlockNumber>,
TupleElement103: OffchainWorker<BlockNumber>,
TupleElement104: OffchainWorker<BlockNumber>,
TupleElement105: OffchainWorker<BlockNumber>,
TupleElement106: OffchainWorker<BlockNumber>,
TupleElement107: OffchainWorker<BlockNumber>,
TupleElement108: OffchainWorker<BlockNumber>,
TupleElement109: OffchainWorker<BlockNumber>,
TupleElement110: OffchainWorker<BlockNumber>,
TupleElement111: OffchainWorker<BlockNumber>,
TupleElement112: OffchainWorker<BlockNumber>,
TupleElement113: OffchainWorker<BlockNumber>,
TupleElement114: OffchainWorker<BlockNumber>,
TupleElement115: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105, TupleElement106, TupleElement107, TupleElement108, TupleElement109, TupleElement110, TupleElement111, TupleElement112, TupleElement113, TupleElement114, TupleElement115> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105, TupleElement106, TupleElement107, TupleElement108, TupleElement109, TupleElement110, TupleElement111, TupleElement112, TupleElement113, TupleElement114, TupleElement115)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
TupleElement84: OffchainWorker<BlockNumber>,
TupleElement85: OffchainWorker<BlockNumber>,
TupleElement86: OffchainWorker<BlockNumber>,
TupleElement87: OffchainWorker<BlockNumber>,
TupleElement88: OffchainWorker<BlockNumber>,
TupleElement89: OffchainWorker<BlockNumber>,
TupleElement90: OffchainWorker<BlockNumber>,
TupleElement91: OffchainWorker<BlockNumber>,
TupleElement92: OffchainWorker<BlockNumber>,
TupleElement93: OffchainWorker<BlockNumber>,
TupleElement94: OffchainWorker<BlockNumber>,
TupleElement95: OffchainWorker<BlockNumber>,
TupleElement96: OffchainWorker<BlockNumber>,
TupleElement97: OffchainWorker<BlockNumber>,
TupleElement98: OffchainWorker<BlockNumber>,
TupleElement99: OffchainWorker<BlockNumber>,
TupleElement100: OffchainWorker<BlockNumber>,
TupleElement101: OffchainWorker<BlockNumber>,
TupleElement102: OffchainWorker<BlockNumber>,
TupleElement103: OffchainWorker<BlockNumber>,
TupleElement104: OffchainWorker<BlockNumber>,
TupleElement105: OffchainWorker<BlockNumber>,
TupleElement106: OffchainWorker<BlockNumber>,
TupleElement107: OffchainWorker<BlockNumber>,
TupleElement108: OffchainWorker<BlockNumber>,
TupleElement109: OffchainWorker<BlockNumber>,
TupleElement110: OffchainWorker<BlockNumber>,
TupleElement111: OffchainWorker<BlockNumber>,
TupleElement112: OffchainWorker<BlockNumber>,
TupleElement113: OffchainWorker<BlockNumber>,
TupleElement114: OffchainWorker<BlockNumber>,
TupleElement115: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105, TupleElement106, TupleElement107, TupleElement108, TupleElement109, TupleElement110, TupleElement111, TupleElement112, TupleElement113, TupleElement114, TupleElement115, TupleElement116> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105, TupleElement106, TupleElement107, TupleElement108, TupleElement109, TupleElement110, TupleElement111, TupleElement112, TupleElement113, TupleElement114, TupleElement115, TupleElement116)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
TupleElement84: OffchainWorker<BlockNumber>,
TupleElement85: OffchainWorker<BlockNumber>,
TupleElement86: OffchainWorker<BlockNumber>,
TupleElement87: OffchainWorker<BlockNumber>,
TupleElement88: OffchainWorker<BlockNumber>,
TupleElement89: OffchainWorker<BlockNumber>,
TupleElement90: OffchainWorker<BlockNumber>,
TupleElement91: OffchainWorker<BlockNumber>,
TupleElement92: OffchainWorker<BlockNumber>,
TupleElement93: OffchainWorker<BlockNumber>,
TupleElement94: OffchainWorker<BlockNumber>,
TupleElement95: OffchainWorker<BlockNumber>,
TupleElement96: OffchainWorker<BlockNumber>,
TupleElement97: OffchainWorker<BlockNumber>,
TupleElement98: OffchainWorker<BlockNumber>,
TupleElement99: OffchainWorker<BlockNumber>,
TupleElement100: OffchainWorker<BlockNumber>,
TupleElement101: OffchainWorker<BlockNumber>,
TupleElement102: OffchainWorker<BlockNumber>,
TupleElement103: OffchainWorker<BlockNumber>,
TupleElement104: OffchainWorker<BlockNumber>,
TupleElement105: OffchainWorker<BlockNumber>,
TupleElement106: OffchainWorker<BlockNumber>,
TupleElement107: OffchainWorker<BlockNumber>,
TupleElement108: OffchainWorker<BlockNumber>,
TupleElement109: OffchainWorker<BlockNumber>,
TupleElement110: OffchainWorker<BlockNumber>,
TupleElement111: OffchainWorker<BlockNumber>,
TupleElement112: OffchainWorker<BlockNumber>,
TupleElement113: OffchainWorker<BlockNumber>,
TupleElement114: OffchainWorker<BlockNumber>,
TupleElement115: OffchainWorker<BlockNumber>,
TupleElement116: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105, TupleElement106, TupleElement107, TupleElement108, TupleElement109, TupleElement110, TupleElement111, TupleElement112, TupleElement113, TupleElement114, TupleElement115, TupleElement116> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105, TupleElement106, TupleElement107, TupleElement108, TupleElement109, TupleElement110, TupleElement111, TupleElement112, TupleElement113, TupleElement114, TupleElement115, TupleElement116)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
TupleElement84: OffchainWorker<BlockNumber>,
TupleElement85: OffchainWorker<BlockNumber>,
TupleElement86: OffchainWorker<BlockNumber>,
TupleElement87: OffchainWorker<BlockNumber>,
TupleElement88: OffchainWorker<BlockNumber>,
TupleElement89: OffchainWorker<BlockNumber>,
TupleElement90: OffchainWorker<BlockNumber>,
TupleElement91: OffchainWorker<BlockNumber>,
TupleElement92: OffchainWorker<BlockNumber>,
TupleElement93: OffchainWorker<BlockNumber>,
TupleElement94: OffchainWorker<BlockNumber>,
TupleElement95: OffchainWorker<BlockNumber>,
TupleElement96: OffchainWorker<BlockNumber>,
TupleElement97: OffchainWorker<BlockNumber>,
TupleElement98: OffchainWorker<BlockNumber>,
TupleElement99: OffchainWorker<BlockNumber>,
TupleElement100: OffchainWorker<BlockNumber>,
TupleElement101: OffchainWorker<BlockNumber>,
TupleElement102: OffchainWorker<BlockNumber>,
TupleElement103: OffchainWorker<BlockNumber>,
TupleElement104: OffchainWorker<BlockNumber>,
TupleElement105: OffchainWorker<BlockNumber>,
TupleElement106: OffchainWorker<BlockNumber>,
TupleElement107: OffchainWorker<BlockNumber>,
TupleElement108: OffchainWorker<BlockNumber>,
TupleElement109: OffchainWorker<BlockNumber>,
TupleElement110: OffchainWorker<BlockNumber>,
TupleElement111: OffchainWorker<BlockNumber>,
TupleElement112: OffchainWorker<BlockNumber>,
TupleElement113: OffchainWorker<BlockNumber>,
TupleElement114: OffchainWorker<BlockNumber>,
TupleElement115: OffchainWorker<BlockNumber>,
TupleElement116: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105, TupleElement106, TupleElement107, TupleElement108, TupleElement109, TupleElement110, TupleElement111, TupleElement112, TupleElement113, TupleElement114, TupleElement115, TupleElement116, TupleElement117> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105, TupleElement106, TupleElement107, TupleElement108, TupleElement109, TupleElement110, TupleElement111, TupleElement112, TupleElement113, TupleElement114, TupleElement115, TupleElement116, TupleElement117)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
TupleElement84: OffchainWorker<BlockNumber>,
TupleElement85: OffchainWorker<BlockNumber>,
TupleElement86: OffchainWorker<BlockNumber>,
TupleElement87: OffchainWorker<BlockNumber>,
TupleElement88: OffchainWorker<BlockNumber>,
TupleElement89: OffchainWorker<BlockNumber>,
TupleElement90: OffchainWorker<BlockNumber>,
TupleElement91: OffchainWorker<BlockNumber>,
TupleElement92: OffchainWorker<BlockNumber>,
TupleElement93: OffchainWorker<BlockNumber>,
TupleElement94: OffchainWorker<BlockNumber>,
TupleElement95: OffchainWorker<BlockNumber>,
TupleElement96: OffchainWorker<BlockNumber>,
TupleElement97: OffchainWorker<BlockNumber>,
TupleElement98: OffchainWorker<BlockNumber>,
TupleElement99: OffchainWorker<BlockNumber>,
TupleElement100: OffchainWorker<BlockNumber>,
TupleElement101: OffchainWorker<BlockNumber>,
TupleElement102: OffchainWorker<BlockNumber>,
TupleElement103: OffchainWorker<BlockNumber>,
TupleElement104: OffchainWorker<BlockNumber>,
TupleElement105: OffchainWorker<BlockNumber>,
TupleElement106: OffchainWorker<BlockNumber>,
TupleElement107: OffchainWorker<BlockNumber>,
TupleElement108: OffchainWorker<BlockNumber>,
TupleElement109: OffchainWorker<BlockNumber>,
TupleElement110: OffchainWorker<BlockNumber>,
TupleElement111: OffchainWorker<BlockNumber>,
TupleElement112: OffchainWorker<BlockNumber>,
TupleElement113: OffchainWorker<BlockNumber>,
TupleElement114: OffchainWorker<BlockNumber>,
TupleElement115: OffchainWorker<BlockNumber>,
TupleElement116: OffchainWorker<BlockNumber>,
TupleElement117: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105, TupleElement106, TupleElement107, TupleElement108, TupleElement109, TupleElement110, TupleElement111, TupleElement112, TupleElement113, TupleElement114, TupleElement115, TupleElement116, TupleElement117> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105, TupleElement106, TupleElement107, TupleElement108, TupleElement109, TupleElement110, TupleElement111, TupleElement112, TupleElement113, TupleElement114, TupleElement115, TupleElement116, TupleElement117)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
TupleElement84: OffchainWorker<BlockNumber>,
TupleElement85: OffchainWorker<BlockNumber>,
TupleElement86: OffchainWorker<BlockNumber>,
TupleElement87: OffchainWorker<BlockNumber>,
TupleElement88: OffchainWorker<BlockNumber>,
TupleElement89: OffchainWorker<BlockNumber>,
TupleElement90: OffchainWorker<BlockNumber>,
TupleElement91: OffchainWorker<BlockNumber>,
TupleElement92: OffchainWorker<BlockNumber>,
TupleElement93: OffchainWorker<BlockNumber>,
TupleElement94: OffchainWorker<BlockNumber>,
TupleElement95: OffchainWorker<BlockNumber>,
TupleElement96: OffchainWorker<BlockNumber>,
TupleElement97: OffchainWorker<BlockNumber>,
TupleElement98: OffchainWorker<BlockNumber>,
TupleElement99: OffchainWorker<BlockNumber>,
TupleElement100: OffchainWorker<BlockNumber>,
TupleElement101: OffchainWorker<BlockNumber>,
TupleElement102: OffchainWorker<BlockNumber>,
TupleElement103: OffchainWorker<BlockNumber>,
TupleElement104: OffchainWorker<BlockNumber>,
TupleElement105: OffchainWorker<BlockNumber>,
TupleElement106: OffchainWorker<BlockNumber>,
TupleElement107: OffchainWorker<BlockNumber>,
TupleElement108: OffchainWorker<BlockNumber>,
TupleElement109: OffchainWorker<BlockNumber>,
TupleElement110: OffchainWorker<BlockNumber>,
TupleElement111: OffchainWorker<BlockNumber>,
TupleElement112: OffchainWorker<BlockNumber>,
TupleElement113: OffchainWorker<BlockNumber>,
TupleElement114: OffchainWorker<BlockNumber>,
TupleElement115: OffchainWorker<BlockNumber>,
TupleElement116: OffchainWorker<BlockNumber>,
TupleElement117: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105, TupleElement106, TupleElement107, TupleElement108, TupleElement109, TupleElement110, TupleElement111, TupleElement112, TupleElement113, TupleElement114, TupleElement115, TupleElement116, TupleElement117, TupleElement118> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105, TupleElement106, TupleElement107, TupleElement108, TupleElement109, TupleElement110, TupleElement111, TupleElement112, TupleElement113, TupleElement114, TupleElement115, TupleElement116, TupleElement117, TupleElement118)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
TupleElement84: OffchainWorker<BlockNumber>,
TupleElement85: OffchainWorker<BlockNumber>,
TupleElement86: OffchainWorker<BlockNumber>,
TupleElement87: OffchainWorker<BlockNumber>,
TupleElement88: OffchainWorker<BlockNumber>,
TupleElement89: OffchainWorker<BlockNumber>,
TupleElement90: OffchainWorker<BlockNumber>,
TupleElement91: OffchainWorker<BlockNumber>,
TupleElement92: OffchainWorker<BlockNumber>,
TupleElement93: OffchainWorker<BlockNumber>,
TupleElement94: OffchainWorker<BlockNumber>,
TupleElement95: OffchainWorker<BlockNumber>,
TupleElement96: OffchainWorker<BlockNumber>,
TupleElement97: OffchainWorker<BlockNumber>,
TupleElement98: OffchainWorker<BlockNumber>,
TupleElement99: OffchainWorker<BlockNumber>,
TupleElement100: OffchainWorker<BlockNumber>,
TupleElement101: OffchainWorker<BlockNumber>,
TupleElement102: OffchainWorker<BlockNumber>,
TupleElement103: OffchainWorker<BlockNumber>,
TupleElement104: OffchainWorker<BlockNumber>,
TupleElement105: OffchainWorker<BlockNumber>,
TupleElement106: OffchainWorker<BlockNumber>,
TupleElement107: OffchainWorker<BlockNumber>,
TupleElement108: OffchainWorker<BlockNumber>,
TupleElement109: OffchainWorker<BlockNumber>,
TupleElement110: OffchainWorker<BlockNumber>,
TupleElement111: OffchainWorker<BlockNumber>,
TupleElement112: OffchainWorker<BlockNumber>,
TupleElement113: OffchainWorker<BlockNumber>,
TupleElement114: OffchainWorker<BlockNumber>,
TupleElement115: OffchainWorker<BlockNumber>,
TupleElement116: OffchainWorker<BlockNumber>,
TupleElement117: OffchainWorker<BlockNumber>,
TupleElement118: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105, TupleElement106, TupleElement107, TupleElement108, TupleElement109, TupleElement110, TupleElement111, TupleElement112, TupleElement113, TupleElement114, TupleElement115, TupleElement116, TupleElement117, TupleElement118> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105, TupleElement106, TupleElement107, TupleElement108, TupleElement109, TupleElement110, TupleElement111, TupleElement112, TupleElement113, TupleElement114, TupleElement115, TupleElement116, TupleElement117, TupleElement118)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
TupleElement84: OffchainWorker<BlockNumber>,
TupleElement85: OffchainWorker<BlockNumber>,
TupleElement86: OffchainWorker<BlockNumber>,
TupleElement87: OffchainWorker<BlockNumber>,
TupleElement88: OffchainWorker<BlockNumber>,
TupleElement89: OffchainWorker<BlockNumber>,
TupleElement90: OffchainWorker<BlockNumber>,
TupleElement91: OffchainWorker<BlockNumber>,
TupleElement92: OffchainWorker<BlockNumber>,
TupleElement93: OffchainWorker<BlockNumber>,
TupleElement94: OffchainWorker<BlockNumber>,
TupleElement95: OffchainWorker<BlockNumber>,
TupleElement96: OffchainWorker<BlockNumber>,
TupleElement97: OffchainWorker<BlockNumber>,
TupleElement98: OffchainWorker<BlockNumber>,
TupleElement99: OffchainWorker<BlockNumber>,
TupleElement100: OffchainWorker<BlockNumber>,
TupleElement101: OffchainWorker<BlockNumber>,
TupleElement102: OffchainWorker<BlockNumber>,
TupleElement103: OffchainWorker<BlockNumber>,
TupleElement104: OffchainWorker<BlockNumber>,
TupleElement105: OffchainWorker<BlockNumber>,
TupleElement106: OffchainWorker<BlockNumber>,
TupleElement107: OffchainWorker<BlockNumber>,
TupleElement108: OffchainWorker<BlockNumber>,
TupleElement109: OffchainWorker<BlockNumber>,
TupleElement110: OffchainWorker<BlockNumber>,
TupleElement111: OffchainWorker<BlockNumber>,
TupleElement112: OffchainWorker<BlockNumber>,
TupleElement113: OffchainWorker<BlockNumber>,
TupleElement114: OffchainWorker<BlockNumber>,
TupleElement115: OffchainWorker<BlockNumber>,
TupleElement116: OffchainWorker<BlockNumber>,
TupleElement117: OffchainWorker<BlockNumber>,
TupleElement118: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105, TupleElement106, TupleElement107, TupleElement108, TupleElement109, TupleElement110, TupleElement111, TupleElement112, TupleElement113, TupleElement114, TupleElement115, TupleElement116, TupleElement117, TupleElement118, TupleElement119> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105, TupleElement106, TupleElement107, TupleElement108, TupleElement109, TupleElement110, TupleElement111, TupleElement112, TupleElement113, TupleElement114, TupleElement115, TupleElement116, TupleElement117, TupleElement118, TupleElement119)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
TupleElement84: OffchainWorker<BlockNumber>,
TupleElement85: OffchainWorker<BlockNumber>,
TupleElement86: OffchainWorker<BlockNumber>,
TupleElement87: OffchainWorker<BlockNumber>,
TupleElement88: OffchainWorker<BlockNumber>,
TupleElement89: OffchainWorker<BlockNumber>,
TupleElement90: OffchainWorker<BlockNumber>,
TupleElement91: OffchainWorker<BlockNumber>,
TupleElement92: OffchainWorker<BlockNumber>,
TupleElement93: OffchainWorker<BlockNumber>,
TupleElement94: OffchainWorker<BlockNumber>,
TupleElement95: OffchainWorker<BlockNumber>,
TupleElement96: OffchainWorker<BlockNumber>,
TupleElement97: OffchainWorker<BlockNumber>,
TupleElement98: OffchainWorker<BlockNumber>,
TupleElement99: OffchainWorker<BlockNumber>,
TupleElement100: OffchainWorker<BlockNumber>,
TupleElement101: OffchainWorker<BlockNumber>,
TupleElement102: OffchainWorker<BlockNumber>,
TupleElement103: OffchainWorker<BlockNumber>,
TupleElement104: OffchainWorker<BlockNumber>,
TupleElement105: OffchainWorker<BlockNumber>,
TupleElement106: OffchainWorker<BlockNumber>,
TupleElement107: OffchainWorker<BlockNumber>,
TupleElement108: OffchainWorker<BlockNumber>,
TupleElement109: OffchainWorker<BlockNumber>,
TupleElement110: OffchainWorker<BlockNumber>,
TupleElement111: OffchainWorker<BlockNumber>,
TupleElement112: OffchainWorker<BlockNumber>,
TupleElement113: OffchainWorker<BlockNumber>,
TupleElement114: OffchainWorker<BlockNumber>,
TupleElement115: OffchainWorker<BlockNumber>,
TupleElement116: OffchainWorker<BlockNumber>,
TupleElement117: OffchainWorker<BlockNumber>,
TupleElement118: OffchainWorker<BlockNumber>,
TupleElement119: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105, TupleElement106, TupleElement107, TupleElement108, TupleElement109, TupleElement110, TupleElement111, TupleElement112, TupleElement113, TupleElement114, TupleElement115, TupleElement116, TupleElement117, TupleElement118, TupleElement119> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105, TupleElement106, TupleElement107, TupleElement108, TupleElement109, TupleElement110, TupleElement111, TupleElement112, TupleElement113, TupleElement114, TupleElement115, TupleElement116, TupleElement117, TupleElement118, TupleElement119)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
TupleElement84: OffchainWorker<BlockNumber>,
TupleElement85: OffchainWorker<BlockNumber>,
TupleElement86: OffchainWorker<BlockNumber>,
TupleElement87: OffchainWorker<BlockNumber>,
TupleElement88: OffchainWorker<BlockNumber>,
TupleElement89: OffchainWorker<BlockNumber>,
TupleElement90: OffchainWorker<BlockNumber>,
TupleElement91: OffchainWorker<BlockNumber>,
TupleElement92: OffchainWorker<BlockNumber>,
TupleElement93: OffchainWorker<BlockNumber>,
TupleElement94: OffchainWorker<BlockNumber>,
TupleElement95: OffchainWorker<BlockNumber>,
TupleElement96: OffchainWorker<BlockNumber>,
TupleElement97: OffchainWorker<BlockNumber>,
TupleElement98: OffchainWorker<BlockNumber>,
TupleElement99: OffchainWorker<BlockNumber>,
TupleElement100: OffchainWorker<BlockNumber>,
TupleElement101: OffchainWorker<BlockNumber>,
TupleElement102: OffchainWorker<BlockNumber>,
TupleElement103: OffchainWorker<BlockNumber>,
TupleElement104: OffchainWorker<BlockNumber>,
TupleElement105: OffchainWorker<BlockNumber>,
TupleElement106: OffchainWorker<BlockNumber>,
TupleElement107: OffchainWorker<BlockNumber>,
TupleElement108: OffchainWorker<BlockNumber>,
TupleElement109: OffchainWorker<BlockNumber>,
TupleElement110: OffchainWorker<BlockNumber>,
TupleElement111: OffchainWorker<BlockNumber>,
TupleElement112: OffchainWorker<BlockNumber>,
TupleElement113: OffchainWorker<BlockNumber>,
TupleElement114: OffchainWorker<BlockNumber>,
TupleElement115: OffchainWorker<BlockNumber>,
TupleElement116: OffchainWorker<BlockNumber>,
TupleElement117: OffchainWorker<BlockNumber>,
TupleElement118: OffchainWorker<BlockNumber>,
TupleElement119: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105, TupleElement106, TupleElement107, TupleElement108, TupleElement109, TupleElement110, TupleElement111, TupleElement112, TupleElement113, TupleElement114, TupleElement115, TupleElement116, TupleElement117, TupleElement118, TupleElement119, TupleElement120> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105, TupleElement106, TupleElement107, TupleElement108, TupleElement109, TupleElement110, TupleElement111, TupleElement112, TupleElement113, TupleElement114, TupleElement115, TupleElement116, TupleElement117, TupleElement118, TupleElement119, TupleElement120)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
TupleElement84: OffchainWorker<BlockNumber>,
TupleElement85: OffchainWorker<BlockNumber>,
TupleElement86: OffchainWorker<BlockNumber>,
TupleElement87: OffchainWorker<BlockNumber>,
TupleElement88: OffchainWorker<BlockNumber>,
TupleElement89: OffchainWorker<BlockNumber>,
TupleElement90: OffchainWorker<BlockNumber>,
TupleElement91: OffchainWorker<BlockNumber>,
TupleElement92: OffchainWorker<BlockNumber>,
TupleElement93: OffchainWorker<BlockNumber>,
TupleElement94: OffchainWorker<BlockNumber>,
TupleElement95: OffchainWorker<BlockNumber>,
TupleElement96: OffchainWorker<BlockNumber>,
TupleElement97: OffchainWorker<BlockNumber>,
TupleElement98: OffchainWorker<BlockNumber>,
TupleElement99: OffchainWorker<BlockNumber>,
TupleElement100: OffchainWorker<BlockNumber>,
TupleElement101: OffchainWorker<BlockNumber>,
TupleElement102: OffchainWorker<BlockNumber>,
TupleElement103: OffchainWorker<BlockNumber>,
TupleElement104: OffchainWorker<BlockNumber>,
TupleElement105: OffchainWorker<BlockNumber>,
TupleElement106: OffchainWorker<BlockNumber>,
TupleElement107: OffchainWorker<BlockNumber>,
TupleElement108: OffchainWorker<BlockNumber>,
TupleElement109: OffchainWorker<BlockNumber>,
TupleElement110: OffchainWorker<BlockNumber>,
TupleElement111: OffchainWorker<BlockNumber>,
TupleElement112: OffchainWorker<BlockNumber>,
TupleElement113: OffchainWorker<BlockNumber>,
TupleElement114: OffchainWorker<BlockNumber>,
TupleElement115: OffchainWorker<BlockNumber>,
TupleElement116: OffchainWorker<BlockNumber>,
TupleElement117: OffchainWorker<BlockNumber>,
TupleElement118: OffchainWorker<BlockNumber>,
TupleElement119: OffchainWorker<BlockNumber>,
TupleElement120: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105, TupleElement106, TupleElement107, TupleElement108, TupleElement109, TupleElement110, TupleElement111, TupleElement112, TupleElement113, TupleElement114, TupleElement115, TupleElement116, TupleElement117, TupleElement118, TupleElement119, TupleElement120> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105, TupleElement106, TupleElement107, TupleElement108, TupleElement109, TupleElement110, TupleElement111, TupleElement112, TupleElement113, TupleElement114, TupleElement115, TupleElement116, TupleElement117, TupleElement118, TupleElement119, TupleElement120)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
TupleElement84: OffchainWorker<BlockNumber>,
TupleElement85: OffchainWorker<BlockNumber>,
TupleElement86: OffchainWorker<BlockNumber>,
TupleElement87: OffchainWorker<BlockNumber>,
TupleElement88: OffchainWorker<BlockNumber>,
TupleElement89: OffchainWorker<BlockNumber>,
TupleElement90: OffchainWorker<BlockNumber>,
TupleElement91: OffchainWorker<BlockNumber>,
TupleElement92: OffchainWorker<BlockNumber>,
TupleElement93: OffchainWorker<BlockNumber>,
TupleElement94: OffchainWorker<BlockNumber>,
TupleElement95: OffchainWorker<BlockNumber>,
TupleElement96: OffchainWorker<BlockNumber>,
TupleElement97: OffchainWorker<BlockNumber>,
TupleElement98: OffchainWorker<BlockNumber>,
TupleElement99: OffchainWorker<BlockNumber>,
TupleElement100: OffchainWorker<BlockNumber>,
TupleElement101: OffchainWorker<BlockNumber>,
TupleElement102: OffchainWorker<BlockNumber>,
TupleElement103: OffchainWorker<BlockNumber>,
TupleElement104: OffchainWorker<BlockNumber>,
TupleElement105: OffchainWorker<BlockNumber>,
TupleElement106: OffchainWorker<BlockNumber>,
TupleElement107: OffchainWorker<BlockNumber>,
TupleElement108: OffchainWorker<BlockNumber>,
TupleElement109: OffchainWorker<BlockNumber>,
TupleElement110: OffchainWorker<BlockNumber>,
TupleElement111: OffchainWorker<BlockNumber>,
TupleElement112: OffchainWorker<BlockNumber>,
TupleElement113: OffchainWorker<BlockNumber>,
TupleElement114: OffchainWorker<BlockNumber>,
TupleElement115: OffchainWorker<BlockNumber>,
TupleElement116: OffchainWorker<BlockNumber>,
TupleElement117: OffchainWorker<BlockNumber>,
TupleElement118: OffchainWorker<BlockNumber>,
TupleElement119: OffchainWorker<BlockNumber>,
TupleElement120: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105, TupleElement106, TupleElement107, TupleElement108, TupleElement109, TupleElement110, TupleElement111, TupleElement112, TupleElement113, TupleElement114, TupleElement115, TupleElement116, TupleElement117, TupleElement118, TupleElement119, TupleElement120, TupleElement121> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105, TupleElement106, TupleElement107, TupleElement108, TupleElement109, TupleElement110, TupleElement111, TupleElement112, TupleElement113, TupleElement114, TupleElement115, TupleElement116, TupleElement117, TupleElement118, TupleElement119, TupleElement120, TupleElement121)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
TupleElement84: OffchainWorker<BlockNumber>,
TupleElement85: OffchainWorker<BlockNumber>,
TupleElement86: OffchainWorker<BlockNumber>,
TupleElement87: OffchainWorker<BlockNumber>,
TupleElement88: OffchainWorker<BlockNumber>,
TupleElement89: OffchainWorker<BlockNumber>,
TupleElement90: OffchainWorker<BlockNumber>,
TupleElement91: OffchainWorker<BlockNumber>,
TupleElement92: OffchainWorker<BlockNumber>,
TupleElement93: OffchainWorker<BlockNumber>,
TupleElement94: OffchainWorker<BlockNumber>,
TupleElement95: OffchainWorker<BlockNumber>,
TupleElement96: OffchainWorker<BlockNumber>,
TupleElement97: OffchainWorker<BlockNumber>,
TupleElement98: OffchainWorker<BlockNumber>,
TupleElement99: OffchainWorker<BlockNumber>,
TupleElement100: OffchainWorker<BlockNumber>,
TupleElement101: OffchainWorker<BlockNumber>,
TupleElement102: OffchainWorker<BlockNumber>,
TupleElement103: OffchainWorker<BlockNumber>,
TupleElement104: OffchainWorker<BlockNumber>,
TupleElement105: OffchainWorker<BlockNumber>,
TupleElement106: OffchainWorker<BlockNumber>,
TupleElement107: OffchainWorker<BlockNumber>,
TupleElement108: OffchainWorker<BlockNumber>,
TupleElement109: OffchainWorker<BlockNumber>,
TupleElement110: OffchainWorker<BlockNumber>,
TupleElement111: OffchainWorker<BlockNumber>,
TupleElement112: OffchainWorker<BlockNumber>,
TupleElement113: OffchainWorker<BlockNumber>,
TupleElement114: OffchainWorker<BlockNumber>,
TupleElement115: OffchainWorker<BlockNumber>,
TupleElement116: OffchainWorker<BlockNumber>,
TupleElement117: OffchainWorker<BlockNumber>,
TupleElement118: OffchainWorker<BlockNumber>,
TupleElement119: OffchainWorker<BlockNumber>,
TupleElement120: OffchainWorker<BlockNumber>,
TupleElement121: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105, TupleElement106, TupleElement107, TupleElement108, TupleElement109, TupleElement110, TupleElement111, TupleElement112, TupleElement113, TupleElement114, TupleElement115, TupleElement116, TupleElement117, TupleElement118, TupleElement119, TupleElement120, TupleElement121> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105, TupleElement106, TupleElement107, TupleElement108, TupleElement109, TupleElement110, TupleElement111, TupleElement112, TupleElement113, TupleElement114, TupleElement115, TupleElement116, TupleElement117, TupleElement118, TupleElement119, TupleElement120, TupleElement121)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
TupleElement84: OffchainWorker<BlockNumber>,
TupleElement85: OffchainWorker<BlockNumber>,
TupleElement86: OffchainWorker<BlockNumber>,
TupleElement87: OffchainWorker<BlockNumber>,
TupleElement88: OffchainWorker<BlockNumber>,
TupleElement89: OffchainWorker<BlockNumber>,
TupleElement90: OffchainWorker<BlockNumber>,
TupleElement91: OffchainWorker<BlockNumber>,
TupleElement92: OffchainWorker<BlockNumber>,
TupleElement93: OffchainWorker<BlockNumber>,
TupleElement94: OffchainWorker<BlockNumber>,
TupleElement95: OffchainWorker<BlockNumber>,
TupleElement96: OffchainWorker<BlockNumber>,
TupleElement97: OffchainWorker<BlockNumber>,
TupleElement98: OffchainWorker<BlockNumber>,
TupleElement99: OffchainWorker<BlockNumber>,
TupleElement100: OffchainWorker<BlockNumber>,
TupleElement101: OffchainWorker<BlockNumber>,
TupleElement102: OffchainWorker<BlockNumber>,
TupleElement103: OffchainWorker<BlockNumber>,
TupleElement104: OffchainWorker<BlockNumber>,
TupleElement105: OffchainWorker<BlockNumber>,
TupleElement106: OffchainWorker<BlockNumber>,
TupleElement107: OffchainWorker<BlockNumber>,
TupleElement108: OffchainWorker<BlockNumber>,
TupleElement109: OffchainWorker<BlockNumber>,
TupleElement110: OffchainWorker<BlockNumber>,
TupleElement111: OffchainWorker<BlockNumber>,
TupleElement112: OffchainWorker<BlockNumber>,
TupleElement113: OffchainWorker<BlockNumber>,
TupleElement114: OffchainWorker<BlockNumber>,
TupleElement115: OffchainWorker<BlockNumber>,
TupleElement116: OffchainWorker<BlockNumber>,
TupleElement117: OffchainWorker<BlockNumber>,
TupleElement118: OffchainWorker<BlockNumber>,
TupleElement119: OffchainWorker<BlockNumber>,
TupleElement120: OffchainWorker<BlockNumber>,
TupleElement121: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105, TupleElement106, TupleElement107, TupleElement108, TupleElement109, TupleElement110, TupleElement111, TupleElement112, TupleElement113, TupleElement114, TupleElement115, TupleElement116, TupleElement117, TupleElement118, TupleElement119, TupleElement120, TupleElement121, TupleElement122> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105, TupleElement106, TupleElement107, TupleElement108, TupleElement109, TupleElement110, TupleElement111, TupleElement112, TupleElement113, TupleElement114, TupleElement115, TupleElement116, TupleElement117, TupleElement118, TupleElement119, TupleElement120, TupleElement121, TupleElement122)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
TupleElement84: OffchainWorker<BlockNumber>,
TupleElement85: OffchainWorker<BlockNumber>,
TupleElement86: OffchainWorker<BlockNumber>,
TupleElement87: OffchainWorker<BlockNumber>,
TupleElement88: OffchainWorker<BlockNumber>,
TupleElement89: OffchainWorker<BlockNumber>,
TupleElement90: OffchainWorker<BlockNumber>,
TupleElement91: OffchainWorker<BlockNumber>,
TupleElement92: OffchainWorker<BlockNumber>,
TupleElement93: OffchainWorker<BlockNumber>,
TupleElement94: OffchainWorker<BlockNumber>,
TupleElement95: OffchainWorker<BlockNumber>,
TupleElement96: OffchainWorker<BlockNumber>,
TupleElement97: OffchainWorker<BlockNumber>,
TupleElement98: OffchainWorker<BlockNumber>,
TupleElement99: OffchainWorker<BlockNumber>,
TupleElement100: OffchainWorker<BlockNumber>,
TupleElement101: OffchainWorker<BlockNumber>,
TupleElement102: OffchainWorker<BlockNumber>,
TupleElement103: OffchainWorker<BlockNumber>,
TupleElement104: OffchainWorker<BlockNumber>,
TupleElement105: OffchainWorker<BlockNumber>,
TupleElement106: OffchainWorker<BlockNumber>,
TupleElement107: OffchainWorker<BlockNumber>,
TupleElement108: OffchainWorker<BlockNumber>,
TupleElement109: OffchainWorker<BlockNumber>,
TupleElement110: OffchainWorker<BlockNumber>,
TupleElement111: OffchainWorker<BlockNumber>,
TupleElement112: OffchainWorker<BlockNumber>,
TupleElement113: OffchainWorker<BlockNumber>,
TupleElement114: OffchainWorker<BlockNumber>,
TupleElement115: OffchainWorker<BlockNumber>,
TupleElement116: OffchainWorker<BlockNumber>,
TupleElement117: OffchainWorker<BlockNumber>,
TupleElement118: OffchainWorker<BlockNumber>,
TupleElement119: OffchainWorker<BlockNumber>,
TupleElement120: OffchainWorker<BlockNumber>,
TupleElement121: OffchainWorker<BlockNumber>,
TupleElement122: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105, TupleElement106, TupleElement107, TupleElement108, TupleElement109, TupleElement110, TupleElement111, TupleElement112, TupleElement113, TupleElement114, TupleElement115, TupleElement116, TupleElement117, TupleElement118, TupleElement119, TupleElement120, TupleElement121, TupleElement122> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105, TupleElement106, TupleElement107, TupleElement108, TupleElement109, TupleElement110, TupleElement111, TupleElement112, TupleElement113, TupleElement114, TupleElement115, TupleElement116, TupleElement117, TupleElement118, TupleElement119, TupleElement120, TupleElement121, TupleElement122)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
TupleElement84: OffchainWorker<BlockNumber>,
TupleElement85: OffchainWorker<BlockNumber>,
TupleElement86: OffchainWorker<BlockNumber>,
TupleElement87: OffchainWorker<BlockNumber>,
TupleElement88: OffchainWorker<BlockNumber>,
TupleElement89: OffchainWorker<BlockNumber>,
TupleElement90: OffchainWorker<BlockNumber>,
TupleElement91: OffchainWorker<BlockNumber>,
TupleElement92: OffchainWorker<BlockNumber>,
TupleElement93: OffchainWorker<BlockNumber>,
TupleElement94: OffchainWorker<BlockNumber>,
TupleElement95: OffchainWorker<BlockNumber>,
TupleElement96: OffchainWorker<BlockNumber>,
TupleElement97: OffchainWorker<BlockNumber>,
TupleElement98: OffchainWorker<BlockNumber>,
TupleElement99: OffchainWorker<BlockNumber>,
TupleElement100: OffchainWorker<BlockNumber>,
TupleElement101: OffchainWorker<BlockNumber>,
TupleElement102: OffchainWorker<BlockNumber>,
TupleElement103: OffchainWorker<BlockNumber>,
TupleElement104: OffchainWorker<BlockNumber>,
TupleElement105: OffchainWorker<BlockNumber>,
TupleElement106: OffchainWorker<BlockNumber>,
TupleElement107: OffchainWorker<BlockNumber>,
TupleElement108: OffchainWorker<BlockNumber>,
TupleElement109: OffchainWorker<BlockNumber>,
TupleElement110: OffchainWorker<BlockNumber>,
TupleElement111: OffchainWorker<BlockNumber>,
TupleElement112: OffchainWorker<BlockNumber>,
TupleElement113: OffchainWorker<BlockNumber>,
TupleElement114: OffchainWorker<BlockNumber>,
TupleElement115: OffchainWorker<BlockNumber>,
TupleElement116: OffchainWorker<BlockNumber>,
TupleElement117: OffchainWorker<BlockNumber>,
TupleElement118: OffchainWorker<BlockNumber>,
TupleElement119: OffchainWorker<BlockNumber>,
TupleElement120: OffchainWorker<BlockNumber>,
TupleElement121: OffchainWorker<BlockNumber>,
TupleElement122: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105, TupleElement106, TupleElement107, TupleElement108, TupleElement109, TupleElement110, TupleElement111, TupleElement112, TupleElement113, TupleElement114, TupleElement115, TupleElement116, TupleElement117, TupleElement118, TupleElement119, TupleElement120, TupleElement121, TupleElement122, TupleElement123> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105, TupleElement106, TupleElement107, TupleElement108, TupleElement109, TupleElement110, TupleElement111, TupleElement112, TupleElement113, TupleElement114, TupleElement115, TupleElement116, TupleElement117, TupleElement118, TupleElement119, TupleElement120, TupleElement121, TupleElement122, TupleElement123)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
TupleElement84: OffchainWorker<BlockNumber>,
TupleElement85: OffchainWorker<BlockNumber>,
TupleElement86: OffchainWorker<BlockNumber>,
TupleElement87: OffchainWorker<BlockNumber>,
TupleElement88: OffchainWorker<BlockNumber>,
TupleElement89: OffchainWorker<BlockNumber>,
TupleElement90: OffchainWorker<BlockNumber>,
TupleElement91: OffchainWorker<BlockNumber>,
TupleElement92: OffchainWorker<BlockNumber>,
TupleElement93: OffchainWorker<BlockNumber>,
TupleElement94: OffchainWorker<BlockNumber>,
TupleElement95: OffchainWorker<BlockNumber>,
TupleElement96: OffchainWorker<BlockNumber>,
TupleElement97: OffchainWorker<BlockNumber>,
TupleElement98: OffchainWorker<BlockNumber>,
TupleElement99: OffchainWorker<BlockNumber>,
TupleElement100: OffchainWorker<BlockNumber>,
TupleElement101: OffchainWorker<BlockNumber>,
TupleElement102: OffchainWorker<BlockNumber>,
TupleElement103: OffchainWorker<BlockNumber>,
TupleElement104: OffchainWorker<BlockNumber>,
TupleElement105: OffchainWorker<BlockNumber>,
TupleElement106: OffchainWorker<BlockNumber>,
TupleElement107: OffchainWorker<BlockNumber>,
TupleElement108: OffchainWorker<BlockNumber>,
TupleElement109: OffchainWorker<BlockNumber>,
TupleElement110: OffchainWorker<BlockNumber>,
TupleElement111: OffchainWorker<BlockNumber>,
TupleElement112: OffchainWorker<BlockNumber>,
TupleElement113: OffchainWorker<BlockNumber>,
TupleElement114: OffchainWorker<BlockNumber>,
TupleElement115: OffchainWorker<BlockNumber>,
TupleElement116: OffchainWorker<BlockNumber>,
TupleElement117: OffchainWorker<BlockNumber>,
TupleElement118: OffchainWorker<BlockNumber>,
TupleElement119: OffchainWorker<BlockNumber>,
TupleElement120: OffchainWorker<BlockNumber>,
TupleElement121: OffchainWorker<BlockNumber>,
TupleElement122: OffchainWorker<BlockNumber>,
TupleElement123: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105, TupleElement106, TupleElement107, TupleElement108, TupleElement109, TupleElement110, TupleElement111, TupleElement112, TupleElement113, TupleElement114, TupleElement115, TupleElement116, TupleElement117, TupleElement118, TupleElement119, TupleElement120, TupleElement121, TupleElement122, TupleElement123> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105, TupleElement106, TupleElement107, TupleElement108, TupleElement109, TupleElement110, TupleElement111, TupleElement112, TupleElement113, TupleElement114, TupleElement115, TupleElement116, TupleElement117, TupleElement118, TupleElement119, TupleElement120, TupleElement121, TupleElement122, TupleElement123)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
TupleElement84: OffchainWorker<BlockNumber>,
TupleElement85: OffchainWorker<BlockNumber>,
TupleElement86: OffchainWorker<BlockNumber>,
TupleElement87: OffchainWorker<BlockNumber>,
TupleElement88: OffchainWorker<BlockNumber>,
TupleElement89: OffchainWorker<BlockNumber>,
TupleElement90: OffchainWorker<BlockNumber>,
TupleElement91: OffchainWorker<BlockNumber>,
TupleElement92: OffchainWorker<BlockNumber>,
TupleElement93: OffchainWorker<BlockNumber>,
TupleElement94: OffchainWorker<BlockNumber>,
TupleElement95: OffchainWorker<BlockNumber>,
TupleElement96: OffchainWorker<BlockNumber>,
TupleElement97: OffchainWorker<BlockNumber>,
TupleElement98: OffchainWorker<BlockNumber>,
TupleElement99: OffchainWorker<BlockNumber>,
TupleElement100: OffchainWorker<BlockNumber>,
TupleElement101: OffchainWorker<BlockNumber>,
TupleElement102: OffchainWorker<BlockNumber>,
TupleElement103: OffchainWorker<BlockNumber>,
TupleElement104: OffchainWorker<BlockNumber>,
TupleElement105: OffchainWorker<BlockNumber>,
TupleElement106: OffchainWorker<BlockNumber>,
TupleElement107: OffchainWorker<BlockNumber>,
TupleElement108: OffchainWorker<BlockNumber>,
TupleElement109: OffchainWorker<BlockNumber>,
TupleElement110: OffchainWorker<BlockNumber>,
TupleElement111: OffchainWorker<BlockNumber>,
TupleElement112: OffchainWorker<BlockNumber>,
TupleElement113: OffchainWorker<BlockNumber>,
TupleElement114: OffchainWorker<BlockNumber>,
TupleElement115: OffchainWorker<BlockNumber>,
TupleElement116: OffchainWorker<BlockNumber>,
TupleElement117: OffchainWorker<BlockNumber>,
TupleElement118: OffchainWorker<BlockNumber>,
TupleElement119: OffchainWorker<BlockNumber>,
TupleElement120: OffchainWorker<BlockNumber>,
TupleElement121: OffchainWorker<BlockNumber>,
TupleElement122: OffchainWorker<BlockNumber>,
TupleElement123: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105, TupleElement106, TupleElement107, TupleElement108, TupleElement109, TupleElement110, TupleElement111, TupleElement112, TupleElement113, TupleElement114, TupleElement115, TupleElement116, TupleElement117, TupleElement118, TupleElement119, TupleElement120, TupleElement121, TupleElement122, TupleElement123, TupleElement124> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105, TupleElement106, TupleElement107, TupleElement108, TupleElement109, TupleElement110, TupleElement111, TupleElement112, TupleElement113, TupleElement114, TupleElement115, TupleElement116, TupleElement117, TupleElement118, TupleElement119, TupleElement120, TupleElement121, TupleElement122, TupleElement123, TupleElement124)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
TupleElement84: OffchainWorker<BlockNumber>,
TupleElement85: OffchainWorker<BlockNumber>,
TupleElement86: OffchainWorker<BlockNumber>,
TupleElement87: OffchainWorker<BlockNumber>,
TupleElement88: OffchainWorker<BlockNumber>,
TupleElement89: OffchainWorker<BlockNumber>,
TupleElement90: OffchainWorker<BlockNumber>,
TupleElement91: OffchainWorker<BlockNumber>,
TupleElement92: OffchainWorker<BlockNumber>,
TupleElement93: OffchainWorker<BlockNumber>,
TupleElement94: OffchainWorker<BlockNumber>,
TupleElement95: OffchainWorker<BlockNumber>,
TupleElement96: OffchainWorker<BlockNumber>,
TupleElement97: OffchainWorker<BlockNumber>,
TupleElement98: OffchainWorker<BlockNumber>,
TupleElement99: OffchainWorker<BlockNumber>,
TupleElement100: OffchainWorker<BlockNumber>,
TupleElement101: OffchainWorker<BlockNumber>,
TupleElement102: OffchainWorker<BlockNumber>,
TupleElement103: OffchainWorker<BlockNumber>,
TupleElement104: OffchainWorker<BlockNumber>,
TupleElement105: OffchainWorker<BlockNumber>,
TupleElement106: OffchainWorker<BlockNumber>,
TupleElement107: OffchainWorker<BlockNumber>,
TupleElement108: OffchainWorker<BlockNumber>,
TupleElement109: OffchainWorker<BlockNumber>,
TupleElement110: OffchainWorker<BlockNumber>,
TupleElement111: OffchainWorker<BlockNumber>,
TupleElement112: OffchainWorker<BlockNumber>,
TupleElement113: OffchainWorker<BlockNumber>,
TupleElement114: OffchainWorker<BlockNumber>,
TupleElement115: OffchainWorker<BlockNumber>,
TupleElement116: OffchainWorker<BlockNumber>,
TupleElement117: OffchainWorker<BlockNumber>,
TupleElement118: OffchainWorker<BlockNumber>,
TupleElement119: OffchainWorker<BlockNumber>,
TupleElement120: OffchainWorker<BlockNumber>,
TupleElement121: OffchainWorker<BlockNumber>,
TupleElement122: OffchainWorker<BlockNumber>,
TupleElement123: OffchainWorker<BlockNumber>,
TupleElement124: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105, TupleElement106, TupleElement107, TupleElement108, TupleElement109, TupleElement110, TupleElement111, TupleElement112, TupleElement113, TupleElement114, TupleElement115, TupleElement116, TupleElement117, TupleElement118, TupleElement119, TupleElement120, TupleElement121, TupleElement122, TupleElement123, TupleElement124> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105, TupleElement106, TupleElement107, TupleElement108, TupleElement109, TupleElement110, TupleElement111, TupleElement112, TupleElement113, TupleElement114, TupleElement115, TupleElement116, TupleElement117, TupleElement118, TupleElement119, TupleElement120, TupleElement121, TupleElement122, TupleElement123, TupleElement124)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
TupleElement84: OffchainWorker<BlockNumber>,
TupleElement85: OffchainWorker<BlockNumber>,
TupleElement86: OffchainWorker<BlockNumber>,
TupleElement87: OffchainWorker<BlockNumber>,
TupleElement88: OffchainWorker<BlockNumber>,
TupleElement89: OffchainWorker<BlockNumber>,
TupleElement90: OffchainWorker<BlockNumber>,
TupleElement91: OffchainWorker<BlockNumber>,
TupleElement92: OffchainWorker<BlockNumber>,
TupleElement93: OffchainWorker<BlockNumber>,
TupleElement94: OffchainWorker<BlockNumber>,
TupleElement95: OffchainWorker<BlockNumber>,
TupleElement96: OffchainWorker<BlockNumber>,
TupleElement97: OffchainWorker<BlockNumber>,
TupleElement98: OffchainWorker<BlockNumber>,
TupleElement99: OffchainWorker<BlockNumber>,
TupleElement100: OffchainWorker<BlockNumber>,
TupleElement101: OffchainWorker<BlockNumber>,
TupleElement102: OffchainWorker<BlockNumber>,
TupleElement103: OffchainWorker<BlockNumber>,
TupleElement104: OffchainWorker<BlockNumber>,
TupleElement105: OffchainWorker<BlockNumber>,
TupleElement106: OffchainWorker<BlockNumber>,
TupleElement107: OffchainWorker<BlockNumber>,
TupleElement108: OffchainWorker<BlockNumber>,
TupleElement109: OffchainWorker<BlockNumber>,
TupleElement110: OffchainWorker<BlockNumber>,
TupleElement111: OffchainWorker<BlockNumber>,
TupleElement112: OffchainWorker<BlockNumber>,
TupleElement113: OffchainWorker<BlockNumber>,
TupleElement114: OffchainWorker<BlockNumber>,
TupleElement115: OffchainWorker<BlockNumber>,
TupleElement116: OffchainWorker<BlockNumber>,
TupleElement117: OffchainWorker<BlockNumber>,
TupleElement118: OffchainWorker<BlockNumber>,
TupleElement119: OffchainWorker<BlockNumber>,
TupleElement120: OffchainWorker<BlockNumber>,
TupleElement121: OffchainWorker<BlockNumber>,
TupleElement122: OffchainWorker<BlockNumber>,
TupleElement123: OffchainWorker<BlockNumber>,
TupleElement124: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105, TupleElement106, TupleElement107, TupleElement108, TupleElement109, TupleElement110, TupleElement111, TupleElement112, TupleElement113, TupleElement114, TupleElement115, TupleElement116, TupleElement117, TupleElement118, TupleElement119, TupleElement120, TupleElement121, TupleElement122, TupleElement123, TupleElement124, TupleElement125> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105, TupleElement106, TupleElement107, TupleElement108, TupleElement109, TupleElement110, TupleElement111, TupleElement112, TupleElement113, TupleElement114, TupleElement115, TupleElement116, TupleElement117, TupleElement118, TupleElement119, TupleElement120, TupleElement121, TupleElement122, TupleElement123, TupleElement124, TupleElement125)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
TupleElement84: OffchainWorker<BlockNumber>,
TupleElement85: OffchainWorker<BlockNumber>,
TupleElement86: OffchainWorker<BlockNumber>,
TupleElement87: OffchainWorker<BlockNumber>,
TupleElement88: OffchainWorker<BlockNumber>,
TupleElement89: OffchainWorker<BlockNumber>,
TupleElement90: OffchainWorker<BlockNumber>,
TupleElement91: OffchainWorker<BlockNumber>,
TupleElement92: OffchainWorker<BlockNumber>,
TupleElement93: OffchainWorker<BlockNumber>,
TupleElement94: OffchainWorker<BlockNumber>,
TupleElement95: OffchainWorker<BlockNumber>,
TupleElement96: OffchainWorker<BlockNumber>,
TupleElement97: OffchainWorker<BlockNumber>,
TupleElement98: OffchainWorker<BlockNumber>,
TupleElement99: OffchainWorker<BlockNumber>,
TupleElement100: OffchainWorker<BlockNumber>,
TupleElement101: OffchainWorker<BlockNumber>,
TupleElement102: OffchainWorker<BlockNumber>,
TupleElement103: OffchainWorker<BlockNumber>,
TupleElement104: OffchainWorker<BlockNumber>,
TupleElement105: OffchainWorker<BlockNumber>,
TupleElement106: OffchainWorker<BlockNumber>,
TupleElement107: OffchainWorker<BlockNumber>,
TupleElement108: OffchainWorker<BlockNumber>,
TupleElement109: OffchainWorker<BlockNumber>,
TupleElement110: OffchainWorker<BlockNumber>,
TupleElement111: OffchainWorker<BlockNumber>,
TupleElement112: OffchainWorker<BlockNumber>,
TupleElement113: OffchainWorker<BlockNumber>,
TupleElement114: OffchainWorker<BlockNumber>,
TupleElement115: OffchainWorker<BlockNumber>,
TupleElement116: OffchainWorker<BlockNumber>,
TupleElement117: OffchainWorker<BlockNumber>,
TupleElement118: OffchainWorker<BlockNumber>,
TupleElement119: OffchainWorker<BlockNumber>,
TupleElement120: OffchainWorker<BlockNumber>,
TupleElement121: OffchainWorker<BlockNumber>,
TupleElement122: OffchainWorker<BlockNumber>,
TupleElement123: OffchainWorker<BlockNumber>,
TupleElement124: OffchainWorker<BlockNumber>,
TupleElement125: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105, TupleElement106, TupleElement107, TupleElement108, TupleElement109, TupleElement110, TupleElement111, TupleElement112, TupleElement113, TupleElement114, TupleElement115, TupleElement116, TupleElement117, TupleElement118, TupleElement119, TupleElement120, TupleElement121, TupleElement122, TupleElement123, TupleElement124, TupleElement125> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105, TupleElement106, TupleElement107, TupleElement108, TupleElement109, TupleElement110, TupleElement111, TupleElement112, TupleElement113, TupleElement114, TupleElement115, TupleElement116, TupleElement117, TupleElement118, TupleElement119, TupleElement120, TupleElement121, TupleElement122, TupleElement123, TupleElement124, TupleElement125)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
TupleElement84: OffchainWorker<BlockNumber>,
TupleElement85: OffchainWorker<BlockNumber>,
TupleElement86: OffchainWorker<BlockNumber>,
TupleElement87: OffchainWorker<BlockNumber>,
TupleElement88: OffchainWorker<BlockNumber>,
TupleElement89: OffchainWorker<BlockNumber>,
TupleElement90: OffchainWorker<BlockNumber>,
TupleElement91: OffchainWorker<BlockNumber>,
TupleElement92: OffchainWorker<BlockNumber>,
TupleElement93: OffchainWorker<BlockNumber>,
TupleElement94: OffchainWorker<BlockNumber>,
TupleElement95: OffchainWorker<BlockNumber>,
TupleElement96: OffchainWorker<BlockNumber>,
TupleElement97: OffchainWorker<BlockNumber>,
TupleElement98: OffchainWorker<BlockNumber>,
TupleElement99: OffchainWorker<BlockNumber>,
TupleElement100: OffchainWorker<BlockNumber>,
TupleElement101: OffchainWorker<BlockNumber>,
TupleElement102: OffchainWorker<BlockNumber>,
TupleElement103: OffchainWorker<BlockNumber>,
TupleElement104: OffchainWorker<BlockNumber>,
TupleElement105: OffchainWorker<BlockNumber>,
TupleElement106: OffchainWorker<BlockNumber>,
TupleElement107: OffchainWorker<BlockNumber>,
TupleElement108: OffchainWorker<BlockNumber>,
TupleElement109: OffchainWorker<BlockNumber>,
TupleElement110: OffchainWorker<BlockNumber>,
TupleElement111: OffchainWorker<BlockNumber>,
TupleElement112: OffchainWorker<BlockNumber>,
TupleElement113: OffchainWorker<BlockNumber>,
TupleElement114: OffchainWorker<BlockNumber>,
TupleElement115: OffchainWorker<BlockNumber>,
TupleElement116: OffchainWorker<BlockNumber>,
TupleElement117: OffchainWorker<BlockNumber>,
TupleElement118: OffchainWorker<BlockNumber>,
TupleElement119: OffchainWorker<BlockNumber>,
TupleElement120: OffchainWorker<BlockNumber>,
TupleElement121: OffchainWorker<BlockNumber>,
TupleElement122: OffchainWorker<BlockNumber>,
TupleElement123: OffchainWorker<BlockNumber>,
TupleElement124: OffchainWorker<BlockNumber>,
TupleElement125: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105, TupleElement106, TupleElement107, TupleElement108, TupleElement109, TupleElement110, TupleElement111, TupleElement112, TupleElement113, TupleElement114, TupleElement115, TupleElement116, TupleElement117, TupleElement118, TupleElement119, TupleElement120, TupleElement121, TupleElement122, TupleElement123, TupleElement124, TupleElement125, TupleElement126> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105, TupleElement106, TupleElement107, TupleElement108, TupleElement109, TupleElement110, TupleElement111, TupleElement112, TupleElement113, TupleElement114, TupleElement115, TupleElement116, TupleElement117, TupleElement118, TupleElement119, TupleElement120, TupleElement121, TupleElement122, TupleElement123, TupleElement124, TupleElement125, TupleElement126)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
TupleElement84: OffchainWorker<BlockNumber>,
TupleElement85: OffchainWorker<BlockNumber>,
TupleElement86: OffchainWorker<BlockNumber>,
TupleElement87: OffchainWorker<BlockNumber>,
TupleElement88: OffchainWorker<BlockNumber>,
TupleElement89: OffchainWorker<BlockNumber>,
TupleElement90: OffchainWorker<BlockNumber>,
TupleElement91: OffchainWorker<BlockNumber>,
TupleElement92: OffchainWorker<BlockNumber>,
TupleElement93: OffchainWorker<BlockNumber>,
TupleElement94: OffchainWorker<BlockNumber>,
TupleElement95: OffchainWorker<BlockNumber>,
TupleElement96: OffchainWorker<BlockNumber>,
TupleElement97: OffchainWorker<BlockNumber>,
TupleElement98: OffchainWorker<BlockNumber>,
TupleElement99: OffchainWorker<BlockNumber>,
TupleElement100: OffchainWorker<BlockNumber>,
TupleElement101: OffchainWorker<BlockNumber>,
TupleElement102: OffchainWorker<BlockNumber>,
TupleElement103: OffchainWorker<BlockNumber>,
TupleElement104: OffchainWorker<BlockNumber>,
TupleElement105: OffchainWorker<BlockNumber>,
TupleElement106: OffchainWorker<BlockNumber>,
TupleElement107: OffchainWorker<BlockNumber>,
TupleElement108: OffchainWorker<BlockNumber>,
TupleElement109: OffchainWorker<BlockNumber>,
TupleElement110: OffchainWorker<BlockNumber>,
TupleElement111: OffchainWorker<BlockNumber>,
TupleElement112: OffchainWorker<BlockNumber>,
TupleElement113: OffchainWorker<BlockNumber>,
TupleElement114: OffchainWorker<BlockNumber>,
TupleElement115: OffchainWorker<BlockNumber>,
TupleElement116: OffchainWorker<BlockNumber>,
TupleElement117: OffchainWorker<BlockNumber>,
TupleElement118: OffchainWorker<BlockNumber>,
TupleElement119: OffchainWorker<BlockNumber>,
TupleElement120: OffchainWorker<BlockNumber>,
TupleElement121: OffchainWorker<BlockNumber>,
TupleElement122: OffchainWorker<BlockNumber>,
TupleElement123: OffchainWorker<BlockNumber>,
TupleElement124: OffchainWorker<BlockNumber>,
TupleElement125: OffchainWorker<BlockNumber>,
TupleElement126: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105, TupleElement106, TupleElement107, TupleElement108, TupleElement109, TupleElement110, TupleElement111, TupleElement112, TupleElement113, TupleElement114, TupleElement115, TupleElement116, TupleElement117, TupleElement118, TupleElement119, TupleElement120, TupleElement121, TupleElement122, TupleElement123, TupleElement124, TupleElement125, TupleElement126> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105, TupleElement106, TupleElement107, TupleElement108, TupleElement109, TupleElement110, TupleElement111, TupleElement112, TupleElement113, TupleElement114, TupleElement115, TupleElement116, TupleElement117, TupleElement118, TupleElement119, TupleElement120, TupleElement121, TupleElement122, TupleElement123, TupleElement124, TupleElement125, TupleElement126)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
TupleElement84: OffchainWorker<BlockNumber>,
TupleElement85: OffchainWorker<BlockNumber>,
TupleElement86: OffchainWorker<BlockNumber>,
TupleElement87: OffchainWorker<BlockNumber>,
TupleElement88: OffchainWorker<BlockNumber>,
TupleElement89: OffchainWorker<BlockNumber>,
TupleElement90: OffchainWorker<BlockNumber>,
TupleElement91: OffchainWorker<BlockNumber>,
TupleElement92: OffchainWorker<BlockNumber>,
TupleElement93: OffchainWorker<BlockNumber>,
TupleElement94: OffchainWorker<BlockNumber>,
TupleElement95: OffchainWorker<BlockNumber>,
TupleElement96: OffchainWorker<BlockNumber>,
TupleElement97: OffchainWorker<BlockNumber>,
TupleElement98: OffchainWorker<BlockNumber>,
TupleElement99: OffchainWorker<BlockNumber>,
TupleElement100: OffchainWorker<BlockNumber>,
TupleElement101: OffchainWorker<BlockNumber>,
TupleElement102: OffchainWorker<BlockNumber>,
TupleElement103: OffchainWorker<BlockNumber>,
TupleElement104: OffchainWorker<BlockNumber>,
TupleElement105: OffchainWorker<BlockNumber>,
TupleElement106: OffchainWorker<BlockNumber>,
TupleElement107: OffchainWorker<BlockNumber>,
TupleElement108: OffchainWorker<BlockNumber>,
TupleElement109: OffchainWorker<BlockNumber>,
TupleElement110: OffchainWorker<BlockNumber>,
TupleElement111: OffchainWorker<BlockNumber>,
TupleElement112: OffchainWorker<BlockNumber>,
TupleElement113: OffchainWorker<BlockNumber>,
TupleElement114: OffchainWorker<BlockNumber>,
TupleElement115: OffchainWorker<BlockNumber>,
TupleElement116: OffchainWorker<BlockNumber>,
TupleElement117: OffchainWorker<BlockNumber>,
TupleElement118: OffchainWorker<BlockNumber>,
TupleElement119: OffchainWorker<BlockNumber>,
TupleElement120: OffchainWorker<BlockNumber>,
TupleElement121: OffchainWorker<BlockNumber>,
TupleElement122: OffchainWorker<BlockNumber>,
TupleElement123: OffchainWorker<BlockNumber>,
TupleElement124: OffchainWorker<BlockNumber>,
TupleElement125: OffchainWorker<BlockNumber>,
TupleElement126: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.
§impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105, TupleElement106, TupleElement107, TupleElement108, TupleElement109, TupleElement110, TupleElement111, TupleElement112, TupleElement113, TupleElement114, TupleElement115, TupleElement116, TupleElement117, TupleElement118, TupleElement119, TupleElement120, TupleElement121, TupleElement122, TupleElement123, TupleElement124, TupleElement125, TupleElement126, TupleElement127> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105, TupleElement106, TupleElement107, TupleElement108, TupleElement109, TupleElement110, TupleElement111, TupleElement112, TupleElement113, TupleElement114, TupleElement115, TupleElement116, TupleElement117, TupleElement118, TupleElement119, TupleElement120, TupleElement121, TupleElement122, TupleElement123, TupleElement124, TupleElement125, TupleElement126, TupleElement127)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
TupleElement84: OffchainWorker<BlockNumber>,
TupleElement85: OffchainWorker<BlockNumber>,
TupleElement86: OffchainWorker<BlockNumber>,
TupleElement87: OffchainWorker<BlockNumber>,
TupleElement88: OffchainWorker<BlockNumber>,
TupleElement89: OffchainWorker<BlockNumber>,
TupleElement90: OffchainWorker<BlockNumber>,
TupleElement91: OffchainWorker<BlockNumber>,
TupleElement92: OffchainWorker<BlockNumber>,
TupleElement93: OffchainWorker<BlockNumber>,
TupleElement94: OffchainWorker<BlockNumber>,
TupleElement95: OffchainWorker<BlockNumber>,
TupleElement96: OffchainWorker<BlockNumber>,
TupleElement97: OffchainWorker<BlockNumber>,
TupleElement98: OffchainWorker<BlockNumber>,
TupleElement99: OffchainWorker<BlockNumber>,
TupleElement100: OffchainWorker<BlockNumber>,
TupleElement101: OffchainWorker<BlockNumber>,
TupleElement102: OffchainWorker<BlockNumber>,
TupleElement103: OffchainWorker<BlockNumber>,
TupleElement104: OffchainWorker<BlockNumber>,
TupleElement105: OffchainWorker<BlockNumber>,
TupleElement106: OffchainWorker<BlockNumber>,
TupleElement107: OffchainWorker<BlockNumber>,
TupleElement108: OffchainWorker<BlockNumber>,
TupleElement109: OffchainWorker<BlockNumber>,
TupleElement110: OffchainWorker<BlockNumber>,
TupleElement111: OffchainWorker<BlockNumber>,
TupleElement112: OffchainWorker<BlockNumber>,
TupleElement113: OffchainWorker<BlockNumber>,
TupleElement114: OffchainWorker<BlockNumber>,
TupleElement115: OffchainWorker<BlockNumber>,
TupleElement116: OffchainWorker<BlockNumber>,
TupleElement117: OffchainWorker<BlockNumber>,
TupleElement118: OffchainWorker<BlockNumber>,
TupleElement119: OffchainWorker<BlockNumber>,
TupleElement120: OffchainWorker<BlockNumber>,
TupleElement121: OffchainWorker<BlockNumber>,
TupleElement122: OffchainWorker<BlockNumber>,
TupleElement123: OffchainWorker<BlockNumber>,
TupleElement124: OffchainWorker<BlockNumber>,
TupleElement125: OffchainWorker<BlockNumber>,
TupleElement126: OffchainWorker<BlockNumber>,
TupleElement127: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
impl<BlockNumber, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105, TupleElement106, TupleElement107, TupleElement108, TupleElement109, TupleElement110, TupleElement111, TupleElement112, TupleElement113, TupleElement114, TupleElement115, TupleElement116, TupleElement117, TupleElement118, TupleElement119, TupleElement120, TupleElement121, TupleElement122, TupleElement123, TupleElement124, TupleElement125, TupleElement126, TupleElement127> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29, TupleElement30, TupleElement31, TupleElement32, TupleElement33, TupleElement34, TupleElement35, TupleElement36, TupleElement37, TupleElement38, TupleElement39, TupleElement40, TupleElement41, TupleElement42, TupleElement43, TupleElement44, TupleElement45, TupleElement46, TupleElement47, TupleElement48, TupleElement49, TupleElement50, TupleElement51, TupleElement52, TupleElement53, TupleElement54, TupleElement55, TupleElement56, TupleElement57, TupleElement58, TupleElement59, TupleElement60, TupleElement61, TupleElement62, TupleElement63, TupleElement64, TupleElement65, TupleElement66, TupleElement67, TupleElement68, TupleElement69, TupleElement70, TupleElement71, TupleElement72, TupleElement73, TupleElement74, TupleElement75, TupleElement76, TupleElement77, TupleElement78, TupleElement79, TupleElement80, TupleElement81, TupleElement82, TupleElement83, TupleElement84, TupleElement85, TupleElement86, TupleElement87, TupleElement88, TupleElement89, TupleElement90, TupleElement91, TupleElement92, TupleElement93, TupleElement94, TupleElement95, TupleElement96, TupleElement97, TupleElement98, TupleElement99, TupleElement100, TupleElement101, TupleElement102, TupleElement103, TupleElement104, TupleElement105, TupleElement106, TupleElement107, TupleElement108, TupleElement109, TupleElement110, TupleElement111, TupleElement112, TupleElement113, TupleElement114, TupleElement115, TupleElement116, TupleElement117, TupleElement118, TupleElement119, TupleElement120, TupleElement121, TupleElement122, TupleElement123, TupleElement124, TupleElement125, TupleElement126, TupleElement127)where
TupleElement0: OffchainWorker<BlockNumber>,
TupleElement1: OffchainWorker<BlockNumber>,
TupleElement2: OffchainWorker<BlockNumber>,
TupleElement3: OffchainWorker<BlockNumber>,
TupleElement4: OffchainWorker<BlockNumber>,
TupleElement5: OffchainWorker<BlockNumber>,
TupleElement6: OffchainWorker<BlockNumber>,
TupleElement7: OffchainWorker<BlockNumber>,
TupleElement8: OffchainWorker<BlockNumber>,
TupleElement9: OffchainWorker<BlockNumber>,
TupleElement10: OffchainWorker<BlockNumber>,
TupleElement11: OffchainWorker<BlockNumber>,
TupleElement12: OffchainWorker<BlockNumber>,
TupleElement13: OffchainWorker<BlockNumber>,
TupleElement14: OffchainWorker<BlockNumber>,
TupleElement15: OffchainWorker<BlockNumber>,
TupleElement16: OffchainWorker<BlockNumber>,
TupleElement17: OffchainWorker<BlockNumber>,
TupleElement18: OffchainWorker<BlockNumber>,
TupleElement19: OffchainWorker<BlockNumber>,
TupleElement20: OffchainWorker<BlockNumber>,
TupleElement21: OffchainWorker<BlockNumber>,
TupleElement22: OffchainWorker<BlockNumber>,
TupleElement23: OffchainWorker<BlockNumber>,
TupleElement24: OffchainWorker<BlockNumber>,
TupleElement25: OffchainWorker<BlockNumber>,
TupleElement26: OffchainWorker<BlockNumber>,
TupleElement27: OffchainWorker<BlockNumber>,
TupleElement28: OffchainWorker<BlockNumber>,
TupleElement29: OffchainWorker<BlockNumber>,
TupleElement30: OffchainWorker<BlockNumber>,
TupleElement31: OffchainWorker<BlockNumber>,
TupleElement32: OffchainWorker<BlockNumber>,
TupleElement33: OffchainWorker<BlockNumber>,
TupleElement34: OffchainWorker<BlockNumber>,
TupleElement35: OffchainWorker<BlockNumber>,
TupleElement36: OffchainWorker<BlockNumber>,
TupleElement37: OffchainWorker<BlockNumber>,
TupleElement38: OffchainWorker<BlockNumber>,
TupleElement39: OffchainWorker<BlockNumber>,
TupleElement40: OffchainWorker<BlockNumber>,
TupleElement41: OffchainWorker<BlockNumber>,
TupleElement42: OffchainWorker<BlockNumber>,
TupleElement43: OffchainWorker<BlockNumber>,
TupleElement44: OffchainWorker<BlockNumber>,
TupleElement45: OffchainWorker<BlockNumber>,
TupleElement46: OffchainWorker<BlockNumber>,
TupleElement47: OffchainWorker<BlockNumber>,
TupleElement48: OffchainWorker<BlockNumber>,
TupleElement49: OffchainWorker<BlockNumber>,
TupleElement50: OffchainWorker<BlockNumber>,
TupleElement51: OffchainWorker<BlockNumber>,
TupleElement52: OffchainWorker<BlockNumber>,
TupleElement53: OffchainWorker<BlockNumber>,
TupleElement54: OffchainWorker<BlockNumber>,
TupleElement55: OffchainWorker<BlockNumber>,
TupleElement56: OffchainWorker<BlockNumber>,
TupleElement57: OffchainWorker<BlockNumber>,
TupleElement58: OffchainWorker<BlockNumber>,
TupleElement59: OffchainWorker<BlockNumber>,
TupleElement60: OffchainWorker<BlockNumber>,
TupleElement61: OffchainWorker<BlockNumber>,
TupleElement62: OffchainWorker<BlockNumber>,
TupleElement63: OffchainWorker<BlockNumber>,
TupleElement64: OffchainWorker<BlockNumber>,
TupleElement65: OffchainWorker<BlockNumber>,
TupleElement66: OffchainWorker<BlockNumber>,
TupleElement67: OffchainWorker<BlockNumber>,
TupleElement68: OffchainWorker<BlockNumber>,
TupleElement69: OffchainWorker<BlockNumber>,
TupleElement70: OffchainWorker<BlockNumber>,
TupleElement71: OffchainWorker<BlockNumber>,
TupleElement72: OffchainWorker<BlockNumber>,
TupleElement73: OffchainWorker<BlockNumber>,
TupleElement74: OffchainWorker<BlockNumber>,
TupleElement75: OffchainWorker<BlockNumber>,
TupleElement76: OffchainWorker<BlockNumber>,
TupleElement77: OffchainWorker<BlockNumber>,
TupleElement78: OffchainWorker<BlockNumber>,
TupleElement79: OffchainWorker<BlockNumber>,
TupleElement80: OffchainWorker<BlockNumber>,
TupleElement81: OffchainWorker<BlockNumber>,
TupleElement82: OffchainWorker<BlockNumber>,
TupleElement83: OffchainWorker<BlockNumber>,
TupleElement84: OffchainWorker<BlockNumber>,
TupleElement85: OffchainWorker<BlockNumber>,
TupleElement86: OffchainWorker<BlockNumber>,
TupleElement87: OffchainWorker<BlockNumber>,
TupleElement88: OffchainWorker<BlockNumber>,
TupleElement89: OffchainWorker<BlockNumber>,
TupleElement90: OffchainWorker<BlockNumber>,
TupleElement91: OffchainWorker<BlockNumber>,
TupleElement92: OffchainWorker<BlockNumber>,
TupleElement93: OffchainWorker<BlockNumber>,
TupleElement94: OffchainWorker<BlockNumber>,
TupleElement95: OffchainWorker<BlockNumber>,
TupleElement96: OffchainWorker<BlockNumber>,
TupleElement97: OffchainWorker<BlockNumber>,
TupleElement98: OffchainWorker<BlockNumber>,
TupleElement99: OffchainWorker<BlockNumber>,
TupleElement100: OffchainWorker<BlockNumber>,
TupleElement101: OffchainWorker<BlockNumber>,
TupleElement102: OffchainWorker<BlockNumber>,
TupleElement103: OffchainWorker<BlockNumber>,
TupleElement104: OffchainWorker<BlockNumber>,
TupleElement105: OffchainWorker<BlockNumber>,
TupleElement106: OffchainWorker<BlockNumber>,
TupleElement107: OffchainWorker<BlockNumber>,
TupleElement108: OffchainWorker<BlockNumber>,
TupleElement109: OffchainWorker<BlockNumber>,
TupleElement110: OffchainWorker<BlockNumber>,
TupleElement111: OffchainWorker<BlockNumber>,
TupleElement112: OffchainWorker<BlockNumber>,
TupleElement113: OffchainWorker<BlockNumber>,
TupleElement114: OffchainWorker<BlockNumber>,
TupleElement115: OffchainWorker<BlockNumber>,
TupleElement116: OffchainWorker<BlockNumber>,
TupleElement117: OffchainWorker<BlockNumber>,
TupleElement118: OffchainWorker<BlockNumber>,
TupleElement119: OffchainWorker<BlockNumber>,
TupleElement120: OffchainWorker<BlockNumber>,
TupleElement121: OffchainWorker<BlockNumber>,
TupleElement122: OffchainWorker<BlockNumber>,
TupleElement123: OffchainWorker<BlockNumber>,
TupleElement124: OffchainWorker<BlockNumber>,
TupleElement125: OffchainWorker<BlockNumber>,
TupleElement126: OffchainWorker<BlockNumber>,
TupleElement127: OffchainWorker<BlockNumber>,
BlockNumber: Clone,
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
This function is being called after every block import (when fully synced).
Implement this and use any of the Offchain
sp_io
set of APIs
to perform off-chain computations, calls and submit transactions
with results to trigger any on-chain changes.
Any state alterations are lost and are not persisted.