Trait frame_support::traits::OffchainWorker
source · 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§
sourcefn 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§
source§impl<BlockNumber> OffchainWorker<BlockNumber> for ()where
BlockNumber: Clone,
impl<BlockNumber> OffchainWorker<BlockNumber> for ()where
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, TupleElement0: OffchainWorker<BlockNumber>> OffchainWorker<BlockNumber> for (TupleElement0,)where
BlockNumber: Clone,
impl<BlockNumber, TupleElement0: OffchainWorker<BlockNumber>> OffchainWorker<BlockNumber> for (TupleElement0,)where
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, TupleElement0: OffchainWorker<BlockNumber>, TupleElement1: OffchainWorker<BlockNumber>> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1)where
BlockNumber: Clone,
impl<BlockNumber, TupleElement0: OffchainWorker<BlockNumber>, TupleElement1: OffchainWorker<BlockNumber>> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1)where
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, TupleElement0: OffchainWorker<BlockNumber>, TupleElement1: OffchainWorker<BlockNumber>, TupleElement2: OffchainWorker<BlockNumber>> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2)where
BlockNumber: Clone,
impl<BlockNumber, TupleElement0: OffchainWorker<BlockNumber>, TupleElement1: OffchainWorker<BlockNumber>, TupleElement2: OffchainWorker<BlockNumber>> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2)where
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, TupleElement0: OffchainWorker<BlockNumber>, TupleElement1: OffchainWorker<BlockNumber>, TupleElement2: OffchainWorker<BlockNumber>, TupleElement3: OffchainWorker<BlockNumber>> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3)where
BlockNumber: Clone,
impl<BlockNumber, TupleElement0: OffchainWorker<BlockNumber>, TupleElement1: OffchainWorker<BlockNumber>, TupleElement2: OffchainWorker<BlockNumber>, TupleElement3: OffchainWorker<BlockNumber>> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3)where
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, TupleElement0: OffchainWorker<BlockNumber>, TupleElement1: OffchainWorker<BlockNumber>, TupleElement2: OffchainWorker<BlockNumber>, TupleElement3: OffchainWorker<BlockNumber>, TupleElement4: OffchainWorker<BlockNumber>> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4)where
BlockNumber: Clone,
impl<BlockNumber, TupleElement0: OffchainWorker<BlockNumber>, TupleElement1: OffchainWorker<BlockNumber>, TupleElement2: OffchainWorker<BlockNumber>, TupleElement3: OffchainWorker<BlockNumber>, TupleElement4: OffchainWorker<BlockNumber>> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4)where
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, TupleElement0: OffchainWorker<BlockNumber>, TupleElement1: OffchainWorker<BlockNumber>, TupleElement2: OffchainWorker<BlockNumber>, TupleElement3: OffchainWorker<BlockNumber>, TupleElement4: OffchainWorker<BlockNumber>, TupleElement5: OffchainWorker<BlockNumber>> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5)where
BlockNumber: Clone,
impl<BlockNumber, TupleElement0: OffchainWorker<BlockNumber>, TupleElement1: OffchainWorker<BlockNumber>, TupleElement2: OffchainWorker<BlockNumber>, TupleElement3: OffchainWorker<BlockNumber>, TupleElement4: OffchainWorker<BlockNumber>, TupleElement5: OffchainWorker<BlockNumber>> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5)where
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, TupleElement0: OffchainWorker<BlockNumber>, TupleElement1: OffchainWorker<BlockNumber>, TupleElement2: OffchainWorker<BlockNumber>, TupleElement3: OffchainWorker<BlockNumber>, TupleElement4: OffchainWorker<BlockNumber>, TupleElement5: OffchainWorker<BlockNumber>, TupleElement6: OffchainWorker<BlockNumber>> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6)where
BlockNumber: Clone,
impl<BlockNumber, TupleElement0: OffchainWorker<BlockNumber>, TupleElement1: OffchainWorker<BlockNumber>, TupleElement2: OffchainWorker<BlockNumber>, TupleElement3: OffchainWorker<BlockNumber>, TupleElement4: OffchainWorker<BlockNumber>, TupleElement5: OffchainWorker<BlockNumber>, TupleElement6: OffchainWorker<BlockNumber>> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6)where
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, TupleElement0: OffchainWorker<BlockNumber>, TupleElement1: OffchainWorker<BlockNumber>, TupleElement2: OffchainWorker<BlockNumber>, TupleElement3: OffchainWorker<BlockNumber>, TupleElement4: OffchainWorker<BlockNumber>, TupleElement5: OffchainWorker<BlockNumber>, TupleElement6: OffchainWorker<BlockNumber>, TupleElement7: OffchainWorker<BlockNumber>> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7)where
BlockNumber: Clone,
impl<BlockNumber, TupleElement0: OffchainWorker<BlockNumber>, TupleElement1: OffchainWorker<BlockNumber>, TupleElement2: OffchainWorker<BlockNumber>, TupleElement3: OffchainWorker<BlockNumber>, TupleElement4: OffchainWorker<BlockNumber>, TupleElement5: OffchainWorker<BlockNumber>, TupleElement6: OffchainWorker<BlockNumber>, TupleElement7: OffchainWorker<BlockNumber>> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7)where
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8)where
BlockNumber: Clone,
impl<BlockNumber, 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>> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8)where
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9)where
BlockNumber: Clone,
impl<BlockNumber, 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>> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9)where
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10)where
BlockNumber: Clone,
impl<BlockNumber, 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>> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10)where
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11)where
BlockNumber: Clone,
impl<BlockNumber, 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>> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11)where
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12)where
BlockNumber: Clone,
impl<BlockNumber, 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>> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12)where
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13)where
BlockNumber: Clone,
impl<BlockNumber, 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>> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13)where
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14)where
BlockNumber: Clone,
impl<BlockNumber, 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>> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14)where
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15)where
BlockNumber: Clone,
impl<BlockNumber, 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>> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15)where
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16)where
BlockNumber: Clone,
impl<BlockNumber, 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>> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16)where
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17)where
BlockNumber: Clone,
impl<BlockNumber, 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>> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17)where
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18)where
BlockNumber: Clone,
impl<BlockNumber, 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>> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18)where
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19)where
BlockNumber: Clone,
impl<BlockNumber, 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>> OffchainWorker<BlockNumber> for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19)where
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.
source§impl<BlockNumber, 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>> 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
BlockNumber: Clone,
impl<BlockNumber, 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>> 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
BlockNumber: Clone,
source§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.