pub struct NodeTestingService {
real: NodeService,
id: ClusterNodeId,
rust_to_rust_use_webrtc: bool,
proof_kind: ProofKind,
is_replay: bool,
monotonic_time: Instant,
pending_events: PendingEvents,
dyn_effects: Option<DynEffects>,
snarker_sok_digest: Option<ByteString>,
cluster_invariants_state: Arc<Mutex<InvariantsState>>,
_shutdown: Aborter,
}Fields§
§real: NodeService§id: ClusterNodeId§rust_to_rust_use_webrtc: boolUse webrtc p2p between Rust nodes.
proof_kind: ProofKind§is_replay: boolWe are replaying this node so disable some non-deterministic services.
monotonic_time: Instant§pending_events: PendingEventsEvents sent by the real service not yet received by state machine.
dyn_effects: Option<DynEffects>§snarker_sok_digest: Option<ByteString>§cluster_invariants_state: Arc<Mutex<InvariantsState>>§_shutdown: AborterOnce dropped, it will cause all threads associated to shutdown.
Implementations§
Source§impl NodeTestingService
impl NodeTestingService
pub fn new( real: NodeService, id: ClusterNodeId, cluster_invariants_state: Arc<StdMutex<InvariantsState>>, _shutdown: Aborter, ) -> Self
pub fn node_id(&self) -> ClusterNodeId
pub fn rust_to_rust_use_webrtc(&self) -> bool
pub fn set_rust_to_rust_use_webrtc(&mut self) -> &mut Self
pub fn proof_kind(&self) -> ProofKind
pub fn set_proof_kind(&mut self, kind: ProofKind) -> &mut Self
pub fn set_replay(&mut self) -> &mut Self
pub fn advance_time(&mut self, by_nanos: u64)
pub fn dyn_effects(&mut self, state: &State, action: &ActionWithMeta)
pub fn set_dyn_effects(&mut self, effects: DynEffects)
pub fn remove_dyn_effects(&mut self) -> Option<DynEffects>
pub fn set_snarker_sok_digest(&mut self, digest: ByteString)
pub fn pending_events( &mut self, poll: bool, ) -> impl Iterator<Item = (PendingEventId, &Event)>
pub async fn next_pending_event(&mut self) -> Option<(PendingEventId, &Event)>
pub fn get_pending_event(&self, id: PendingEventId) -> Option<&Event>
pub fn take_pending_event(&mut self, id: PendingEventId) -> Option<Event>
pub fn ledger(&self, ledger_hash: &LedgerHash) -> Option<Mask>
Trait Implementations§
Source§impl ArchiveService for NodeTestingService
impl ArchiveService for NodeTestingService
fn send_to_archive(&mut self, data: BlockApplyResult)
Source§impl BlockProducerService for NodeTestingService
impl BlockProducerService for NodeTestingService
Source§impl BlockProducerVrfEvaluatorService for NodeTestingService
impl BlockProducerVrfEvaluatorService for NodeTestingService
Source§impl EventSourceService for NodeTestingService
impl EventSourceService for NodeTestingService
fn next_event(&mut self) -> Option<Event>
Source§impl ExternalSnarkWorkerService for NodeTestingService
impl ExternalSnarkWorkerService for NodeTestingService
Source§impl InvariantService for NodeTestingService
impl InvariantService for NodeTestingService
type ClusterInvariantsState<'a> = MutexGuard<'a, InvariantsState>
fn node_id(&self) -> usize
fn invariants_state(&mut self) -> &mut InvariantsState
fn cluster_invariants_state<'a>(
&'a mut self,
) -> Option<Self::ClusterInvariantsState<'a>>where
Self: 'a,
Source§impl LedgerService for NodeTestingService
impl LedgerService for NodeTestingService
fn ledger_manager(&self) -> &LedgerManager
fn force_sync_calls(&self) -> bool
fn write_init(&mut self, request: LedgerWriteRequest)
fn read_init( &mut self, id: RequestId<LedgerReadIdType>, request: LedgerReadRequest, )
Source§impl P2pCryptoService for NodeTestingService
impl P2pCryptoService for NodeTestingService
fn generate_random_nonce(&mut self) -> [u8; 24]
fn ephemeral_sk(&mut self) -> [u8; 32]
fn static_sk(&mut self) -> [u8; 32]
fn sign_key(&mut self, key: &[u8; 32]) -> Vec<u8> ⓘ
fn sign_publication(&mut self, publication: &[u8]) -> Vec<u8> ⓘ
fn verify_publication( &mut self, pk: &PublicKey, publication: &[u8], sig: &[u8], ) -> bool
Source§impl P2pServiceWebrtc for NodeTestingService
impl P2pServiceWebrtc for NodeTestingService
type Event = Event
fn random_pick( &mut self, list: &[P2pConnectionOutgoingInitOpts], ) -> Option<P2pConnectionOutgoingInitOpts>
fn event_sender(&self) -> &UnboundedSender<Event>
fn cmd_sender(&self) -> &TrackedUnboundedSender<Cmd>
fn peers(&mut self) -> &mut BTreeMap<PeerId, PeerState>
fn outgoing_init(&mut self, peer_id: PeerId)
fn incoming_init(&mut self, peer_id: PeerId, offer: Offer)
fn encrypt<T: EncryptableType>( &mut self, other_pk: &PublicKey, message: &T, ) -> Result<T::Encrypted, Box<dyn Error>>
fn decrypt<T: EncryptableType>( &mut self, other_pub_key: &PublicKey, encrypted: &T::Encrypted, ) -> Result<T, Box<dyn Error>>
fn auth_encrypt_and_send( &mut self, peer_id: PeerId, other_pub_key: &PublicKey, auth: ConnectionAuth, )
fn auth_decrypt( &mut self, other_pub_key: &PublicKey, auth: ConnectionAuthEncrypted, ) -> Option<ConnectionAuth>
fn init<S>(
secret_key: SecretKey,
spawner: S,
rng_seed: [u8; 32],
) -> P2pServiceCtxwhere
S: TaskSpawner,
fn set_answer(&mut self, peer_id: PeerId, answer: Answer)
fn http_signaling_request(&mut self, url: String, offer: Offer)
fn disconnect(&mut self, peer_id: PeerId) -> bool
fn channel_open(&mut self, peer_id: PeerId, id: ChannelId)
fn channel_send(&mut self, peer_id: PeerId, msg_id: MsgId, msg: ChannelMsg)
fn auth_send( &mut self, peer_id: PeerId, _other_pub_key: &PublicKey, auth: Option<ConnectionAuthEncrypted>, )
Source§impl P2pServiceWebrtcWithLibp2p for NodeTestingService
impl P2pServiceWebrtcWithLibp2p for NodeTestingService
fn mio(&mut self) -> &mut MioService
fn connections(&self) -> BTreeSet<PeerId>
fn init<S>(sec_key: SecretKey, spawner: S, rng_seed: [u8; 32]) -> P2pServiceCtxwhere
S: TaskSpawner,
fn resolve_name( &mut self, hostname: &str, ) -> Result<Vec<IpAddr>, P2pNetworkServiceError>
fn detect_local_ip(&mut self) -> Result<Vec<IpAddr>, P2pNetworkServiceError>
Source§impl RpcService for NodeTestingService
impl RpcService for NodeTestingService
fn respond_state_get( &mut self, rpc_id: RpcId, response: (&State, Option<&str>), ) -> Result<(), RespondError>
fn respond_status_get( &mut self, rpc_id: RpcId, response: RpcStatusGetResponse, ) -> Result<(), RespondError>
fn respond_heartbeat_get( &mut self, rpc_id: RpcId, response: RpcHeartbeatGetResponse, ) -> Result<(), RespondError>
fn respond_sync_stats_get( &mut self, rpc_id: RpcId, response: RpcSyncStatsGetResponse, ) -> Result<(), RespondError>
fn respond_block_producer_stats_get( &mut self, rpc_id: RpcId, response: RpcBlockProducerStatsGetResponse, ) -> Result<(), RespondError>
fn respond_action_stats_get( &mut self, rpc_id: RpcId, response: RpcActionStatsGetResponse, ) -> Result<(), RespondError>
fn respond_message_progress_stats_get( &mut self, rpc_id: RpcId, response: RpcMessageProgressResponse, ) -> Result<(), RespondError>
fn respond_peers_get( &mut self, rpc_id: RpcId, response: RpcPeersGetResponse, ) -> Result<(), RespondError>
fn respond_p2p_connection_outgoing( &mut self, rpc_id: RpcId, response: RpcP2pConnectionOutgoingResponse, ) -> Result<(), RespondError>
fn respond_p2p_connection_incoming_answer( &mut self, rpc_id: RpcId, response: P2pConnectionResponse, ) -> Result<(), RespondError>
fn respond_p2p_connection_incoming( &mut self, rpc_id: RpcId, response: Result<(), String>, ) -> Result<(), RespondError>
fn respond_scan_state_summary_get( &mut self, rpc_id: RpcId, response: RpcScanStateSummaryGetResponse, ) -> Result<(), RespondError>
fn respond_snark_pool_get( &mut self, rpc_id: RpcId, response: RpcSnarkPoolGetResponse, ) -> Result<(), RespondError>
fn respond_snark_pool_job_get( &mut self, rpc_id: RpcId, response: RpcSnarkPoolJobGetResponse, ) -> Result<(), RespondError>
fn respond_snark_pool_completed_jobs_get( &mut self, rpc_id: RpcId, response: RpcSnarkPoolCompletedJobsResponse, ) -> Result<(), RespondError>
fn respond_snark_pool_pending_jobs_get( &mut self, rpc_id: RpcId, response: RpcSnarkPoolPendingJobsGetResponse, ) -> Result<(), RespondError>
fn respond_snarker_job_commit( &mut self, rpc_id: RpcId, response: RpcSnarkerJobCommitResponse, ) -> Result<(), RespondError>
fn respond_snarker_job_spec( &mut self, rpc_id: RpcId, response: RpcSnarkerJobSpecResponse, ) -> Result<(), RespondError>
fn respond_snarker_workers( &mut self, rpc_id: RpcId, response: RpcSnarkerWorkersResponse, ) -> Result<(), RespondError>
fn respond_snarker_config_get( &mut self, rpc_id: RpcId, response: RpcSnarkerConfigGetResponse, ) -> Result<(), RespondError>
fn respond_health_check( &mut self, rpc_id: RpcId, response: RpcHealthCheckResponse, ) -> Result<(), RespondError>
fn respond_readiness_check( &mut self, rpc_id: RpcId, response: RpcReadinessCheckResponse, ) -> Result<(), RespondError>
fn respond_discovery_routing_table( &mut self, rpc_id: RpcId, response: RpcDiscoveryRoutingTableResponse, ) -> Result<(), RespondError>
fn respond_discovery_bootstrap_stats( &mut self, rpc_id: RpcId, response: RpcDiscoveryBoostrapStatsResponse, ) -> Result<(), RespondError>
fn respond_transaction_pool( &mut self, rpc_id: RpcId, response: RpcTransactionPoolResponse, ) -> Result<(), RespondError>
fn respond_ledger_slim_accounts( &mut self, rpc_id: RpcId, response: RpcLedgerSlimAccountsResponse, ) -> Result<(), RespondError>
fn respond_ledger_accounts( &mut self, rpc_id: RpcId, response: RpcLedgerAccountsResponse, ) -> Result<(), RespondError>
fn respond_transaction_inject( &mut self, rpc_id: RpcId, response: RpcTransactionInjectResponse, ) -> Result<(), RespondError>
fn respond_transition_frontier_commands( &mut self, rpc_id: RpcId, response: RpcTransitionFrontierUserCommandsResponse, ) -> Result<(), RespondError>
fn respond_best_chain( &mut self, rpc_id: RpcId, response: RpcBestChainResponse, ) -> Result<(), RespondError>
fn respond_consensus_constants( &mut self, rpc_id: RpcId, response: RpcConsensusConstantsGetResponse, ) -> Result<(), RespondError>
fn respond_transaction_status( &mut self, rpc_id: RpcId, response: RpcTransactionStatusGetResponse, ) -> Result<(), RespondError>
fn respond_block_get( &mut self, rpc_id: RpcId, response: RpcGetBlockResponse, ) -> Result<(), RespondError>
fn respond_pooled_user_commands( &mut self, rpc_id: RpcId, response: RpcPooledUserCommandsResponse, ) -> Result<(), RespondError>
fn respond_pooled_zkapp_commands( &mut self, rpc_id: RpcId, response: RpcPooledZkappCommandsResponse, ) -> Result<(), RespondError>
fn respond_genesis_block( &mut self, rpc_id: RpcId, response: RpcGenesisBlockResponse, ) -> Result<(), RespondError>
fn respond_consensus_time_get( &mut self, rpc_id: RpcId, response: RpcConsensusTimeGetResponse, ) -> Result<(), RespondError>
fn respond_ledger_status_get( &mut self, rpc_id: RpcId, response: RpcLedgerStatusGetResponse, ) -> Result<(), RespondError>
fn respond_ledger_account_delegators_get( &mut self, rpc_id: RpcId, response: RpcLedgerAccountDelegatorsGetResponse, ) -> Result<(), RespondError>
Source§impl Service for NodeTestingService
impl Service for NodeTestingService
Source§impl SnarkBlockVerifyService for NodeTestingService
impl SnarkBlockVerifyService for NodeTestingService
fn verify_init( &mut self, req_id: SnarkBlockVerifyId, verifier_index: BlockVerifier, verifier_srs: Arc<VerifierSRS>, block: VerifiableBlockWithHash, )
Source§impl SnarkPoolService for NodeTestingService
impl SnarkPoolService for NodeTestingService
Source§impl SnarkUserCommandVerifyService for NodeTestingService
impl SnarkUserCommandVerifyService for NodeTestingService
fn verify_init( &mut self, req_id: SnarkUserCommandVerifyId, commands: Vec<WithStatus<UserCommand>>, )
Source§impl SnarkWorkVerifyService for NodeTestingService
impl SnarkWorkVerifyService for NodeTestingService
fn verify_init( &mut self, req_id: SnarkWorkVerifyId, verifier_index: TransactionVerifier, verifier_srs: Arc<VerifierSRS>, work: Vec<Snark>, )
Source§impl TimeService for NodeTestingService
impl TimeService for NodeTestingService
fn monotonic_time(&mut self) -> Instant
Source§impl TransitionFrontierGenesisService for NodeTestingService
impl TransitionFrontierGenesisService for NodeTestingService
Source§fn load_genesis(&mut self, config: Arc<GenesisConfig>)
fn load_genesis(&mut self, config: Arc<GenesisConfig>)
Load genesis config and genesis ledger.
impl Service for NodeTestingService
Auto Trait Implementations§
impl Freeze for NodeTestingService
impl !RefUnwindSafe for NodeTestingService
impl Send for NodeTestingService
impl !Sync for NodeTestingService
impl Unpin for NodeTestingService
impl !UnwindSafe for NodeTestingService
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> Conv for T
impl<T> Conv for T
§impl<T> FmtForward for T
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
Causes
self to use its Binary implementation when Debug-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
Causes
self to use its Display implementation when
Debug-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
Causes
self to use its LowerExp implementation when
Debug-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
Causes
self to use its LowerHex implementation when
Debug-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
Causes
self to use its Octal implementation when Debug-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
Causes
self to use its Pointer implementation when
Debug-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
Causes
self to use its UpperExp implementation when
Debug-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
Causes
self to use its UpperHex implementation when
Debug-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
Formats each item in a sequence. Read more
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Creates a shared type from an unshared type.
§impl<T> P2pChannelsService for Twhere
T: P2pServiceWebrtcWithLibp2p,
impl<T> P2pChannelsService for Twhere
T: P2pServiceWebrtcWithLibp2p,
fn channel_open(&mut self, peer_id: PeerId, id: ChannelId)
fn channel_send(&mut self, peer_id: PeerId, msg_id: MsgId, msg: ChannelMsg)
fn encrypt<M>(
&mut self,
other_pk: &PublicKey,
message: &M,
) -> Result<<M as EncryptableType>::Encrypted, Box<dyn Error>>where
M: EncryptableType,
fn decrypt<M>(
&mut self,
other_pk: &PublicKey,
encrypted: &<M as EncryptableType>::Encrypted,
) -> Result<M, Box<dyn Error>>where
M: EncryptableType,
§impl<T> P2pConnectionService for Twhere
T: P2pServiceWebrtcWithLibp2p,
impl<T> P2pConnectionService for Twhere
T: P2pServiceWebrtcWithLibp2p,
fn connections(&self) -> BTreeSet<PeerId>
fn random_pick( &mut self, list: &[P2pConnectionOutgoingInitOpts], ) -> Option<P2pConnectionOutgoingInitOpts>
§fn outgoing_init(&mut self, opts: P2pConnectionOutgoingInitOpts)
fn outgoing_init(&mut self, opts: P2pConnectionOutgoingInitOpts)
Initiates an outgoing connection and creates an offer sdp,
which will be received in the state machine as an event.
§fn incoming_init(&mut self, peer_id: PeerId, offer: Offer)
fn incoming_init(&mut self, peer_id: PeerId, offer: Offer)
Initiates an incoming connection and creates an answer sdp,
which will be received in the state machine as an event.
fn set_answer(&mut self, peer_id: PeerId, answer: Answer)
fn http_signaling_request(&mut self, url: String, offer: Offer)
fn auth_encrypt_and_send( &mut self, peer_id: PeerId, other_pub_key: &PublicKey, auth: ConnectionAuth, )
fn auth_decrypt( &mut self, other_pub_key: &PublicKey, auth: ConnectionAuthEncrypted, ) -> Option<ConnectionAuth>
§impl<T> P2pDisconnectionService for Twhere
T: P2pServiceWebrtcWithLibp2p,
impl<T> P2pDisconnectionService for Twhere
T: P2pServiceWebrtcWithLibp2p,
fn disconnect(&mut self, peer_id: PeerId) -> bool
§impl<T> P2pMioService for Twhere
T: P2pServiceWebrtcWithLibp2p,
impl<T> P2pMioService for Twhere
T: P2pServiceWebrtcWithLibp2p,
fn start_mio(&mut self)
fn send_mio_cmd(&mut self, cmd: MioCmd)
§impl<T> P2pNetworkService for Twhere
T: P2pServiceWebrtcWithLibp2p,
impl<T> P2pNetworkService for Twhere
T: P2pServiceWebrtcWithLibp2p,
§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
Pipes by value. This is generally the method you want to use. Read more
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
Borrows
self and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
Mutably borrows
self and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
Borrows
self, then passes self.as_ref() into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
Mutably borrows
self, then passes self.as_mut() into the pipe
function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
Borrows
self, then passes self.deref() into the pipe function.§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Immutable access to the
Borrow<B> of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
Mutable access to the
BorrowMut<B> of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
Immutable access to the
AsRef<R> view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
Mutable access to the
AsMut<R> view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Immutable access to the
Deref::Target of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Mutable access to the
Deref::Target of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
Calls
.tap() only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
Calls
.tap_mut() only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
Calls
.tap_borrow() only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
Calls
.tap_borrow_mut() only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
Calls
.tap_ref() only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
Calls
.tap_ref_mut() only in debug builds, and is erased in release
builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
Calls
.tap_deref() only in debug builds, and is erased in release
builds.§impl<T> TransitionFrontierSyncLedgerSnarkedService for Twhere
T: LedgerService,
impl<T> TransitionFrontierSyncLedgerSnarkedService for Twhere
T: LedgerService,
§fn compute_snarked_ledger_hashes(
&self,
snarked_ledger_hash: &Base58CheckOfBinProt<MinaBaseLedgerHash0StableV1, Versioned<MinaBaseLedgerHash0StableV1, 1>, mina_p2p_messages::::v2::manual::LedgerHash::{constant#1}>,
) -> Result<(), String>
fn compute_snarked_ledger_hashes( &self, snarked_ledger_hash: &Base58CheckOfBinProt<MinaBaseLedgerHash0StableV1, Versioned<MinaBaseLedgerHash0StableV1, 1>, mina_p2p_messages::::v2::manual::LedgerHash::{constant#1}>, ) -> Result<(), String>
For the given ledger, compute the merkle root hash, forcing
all pending hashes to be computed too.
§fn copy_snarked_ledger_contents_for_sync(
&self,
origin_snarked_ledger_hash: Vec<Base58CheckOfBinProt<MinaBaseLedgerHash0StableV1, Versioned<MinaBaseLedgerHash0StableV1, 1>, mina_p2p_messages::::v2::manual::LedgerHash::{constant#1}>>,
target_snarked_ledger_hash: Base58CheckOfBinProt<MinaBaseLedgerHash0StableV1, Versioned<MinaBaseLedgerHash0StableV1, 1>, mina_p2p_messages::::v2::manual::LedgerHash::{constant#1}>,
overwrite: bool,
) -> Result<bool, String>
fn copy_snarked_ledger_contents_for_sync( &self, origin_snarked_ledger_hash: Vec<Base58CheckOfBinProt<MinaBaseLedgerHash0StableV1, Versioned<MinaBaseLedgerHash0StableV1, 1>, mina_p2p_messages::::v2::manual::LedgerHash::{constant#1}>>, target_snarked_ledger_hash: Base58CheckOfBinProt<MinaBaseLedgerHash0StableV1, Versioned<MinaBaseLedgerHash0StableV1, 1>, mina_p2p_messages::::v2::manual::LedgerHash::{constant#1}>, overwrite: bool, ) -> Result<bool, String>
Creates a new copy of the ledger stored under the first found
origin hash
and stores it under the target hash. If overwrite is false,
only copy the ledger if the target doesn’t exist already.§fn child_hashes_get(
&self,
snarked_ledger_hash: Base58CheckOfBinProt<MinaBaseLedgerHash0StableV1, Versioned<MinaBaseLedgerHash0StableV1, 1>, mina_p2p_messages::::v2::manual::LedgerHash::{constant#1}>,
parent: &Address<mina_tree::::address::Address::{constant#0}>,
) -> Result<(Base58CheckOfBinProt<MinaBaseLedgerHash0StableV1, Versioned<MinaBaseLedgerHash0StableV1, 1>, mina_p2p_messages::::v2::manual::LedgerHash::{constant#1}>, Base58CheckOfBinProt<MinaBaseLedgerHash0StableV1, Versioned<MinaBaseLedgerHash0StableV1, 1>, mina_p2p_messages::::v2::manual::LedgerHash::{constant#1}>), String>
fn child_hashes_get( &self, snarked_ledger_hash: Base58CheckOfBinProt<MinaBaseLedgerHash0StableV1, Versioned<MinaBaseLedgerHash0StableV1, 1>, mina_p2p_messages::::v2::manual::LedgerHash::{constant#1}>, parent: &Address<mina_tree::::address::Address::{constant#0}>, ) -> Result<(Base58CheckOfBinProt<MinaBaseLedgerHash0StableV1, Versioned<MinaBaseLedgerHash0StableV1, 1>, mina_p2p_messages::::v2::manual::LedgerHash::{constant#1}>, Base58CheckOfBinProt<MinaBaseLedgerHash0StableV1, Versioned<MinaBaseLedgerHash0StableV1, 1>, mina_p2p_messages::::v2::manual::LedgerHash::{constant#1}>), String>
For the given ledger, get the two children hashes at the
parent
address.§fn accounts_set(
&self,
snarked_ledger_hash: Base58CheckOfBinProt<MinaBaseLedgerHash0StableV1, Versioned<MinaBaseLedgerHash0StableV1, 1>, mina_p2p_messages::::v2::manual::LedgerHash::{constant#1}>,
parent: &Address<mina_tree::::address::Address::{constant#0}>,
accounts: Vec<MinaBaseAccountBinableArgStableV2>,
) -> Result<Base58CheckOfBinProt<MinaBaseLedgerHash0StableV1, Versioned<MinaBaseLedgerHash0StableV1, 1>, mina_p2p_messages::::v2::manual::LedgerHash::{constant#1}>, String>
fn accounts_set( &self, snarked_ledger_hash: Base58CheckOfBinProt<MinaBaseLedgerHash0StableV1, Versioned<MinaBaseLedgerHash0StableV1, 1>, mina_p2p_messages::::v2::manual::LedgerHash::{constant#1}>, parent: &Address<mina_tree::::address::Address::{constant#0}>, accounts: Vec<MinaBaseAccountBinableArgStableV2>, ) -> Result<Base58CheckOfBinProt<MinaBaseLedgerHash0StableV1, Versioned<MinaBaseLedgerHash0StableV1, 1>, mina_p2p_messages::::v2::manual::LedgerHash::{constant#1}>, String>
For the given ledger, sets all accounts in
accounts under
the subtree starting at the parent address. The result
is the hash computed for that subtree.