Skip to content
Snippets Groups Projects
Select Git revision
  • bbf45c4fd02da803dc171a2b83ddd565b296594c
  • master default protected
  • 305-re-enable-sanity-tests
  • 308-add-a-runtime-api-to-simulate-max-net-tx-cost-for-the-end-user-fees-refund
  • 270-parametrage-de-la-gtest
  • network/gdev-800 protected
  • cgeek/issue-297-cpu
  • gdev-800-tests
  • update-docker-compose-rpc-squid-names
  • fix-252
  • 1000i100-test
  • hugo/tmp-0.9.1
  • network/gdev-803 protected
  • hugo/endpoint-gossip
  • network/gdev-802 protected
  • hugo/distance-precompute
  • network/gdev-900 protected
  • tuxmain/anonymous-tx
  • debug/podman
  • hugo/195-doc
  • hugo/195-graphql-schema
  • gdev-900-0.10.1 protected
  • gdev-900-0.10.0 protected
  • gdev-900-0.9.2 protected
  • gdev-800-0.8.0 protected
  • gdev-900-0.9.1 protected
  • gdev-900-0.9.0 protected
  • gdev-803 protected
  • gdev-802 protected
  • runtime-801 protected
  • gdev-800 protected
  • runtime-800-bis protected
  • runtime-800 protected
  • runtime-800-backup protected
  • runtime-701 protected
  • runtime-700 protected
  • runtime-600 protected
  • runtime-500 protected
  • v0.4.1 protected
  • runtime-401 protected
  • v0.4.0 protected
41 results

runtime-calls.md

Blame
    • Hugo Trentesaux's avatar
      5a3f0654
      refac membership renewal (nodes/rust/duniter-v2s!166) · 5a3f0654
      Hugo Trentesaux authored and Pascal Engélibert's avatar Pascal Engélibert committed
      * review tuxmain
      
      * fix rebase
      
      * rename force_add_cert to do_add_cert_checked
      
      * remove origin from force_add_cert
      
      * remove duplicate UD handling
      
      * claim membership - validating identity
      
      ensure claim membership does not prevent validating identity
      
      * clippy
      
      * add acquired membership handler
      
      and new integration test scenario
      
      * run benchmarks
      
      * refactor claim_membership
      
      and expire membership instead of revoking
      when too few certs
      
      * re-enable claim_membership
      
      * membership expiry no identity removal
      
      membership expiry no more triggers identity removal
      
      * control by test
      
      * at membership expiry : back to pending membership
      
      * reveal identity removal on membership expiry
      
      * refac test
      
      * refac membership renewal
      
      add expiry unscheduling
      do not verify expiration block expiring memberships
      add and refac tests
      add integration test
      
      * wip
      5a3f0654
      History
      refac membership renewal (nodes/rust/duniter-v2s!166)
      Hugo Trentesaux authored and Pascal Engélibert's avatar Pascal Engélibert committed
      * review tuxmain
      
      * fix rebase
      
      * rename force_add_cert to do_add_cert_checked
      
      * remove origin from force_add_cert
      
      * remove duplicate UD handling
      
      * claim membership - validating identity
      
      ensure claim membership does not prevent validating identity
      
      * clippy
      
      * add acquired membership handler
      
      and new integration test scenario
      
      * run benchmarks
      
      * refactor claim_membership
      
      and expire membership instead of revoking
      when too few certs
      
      * re-enable claim_membership
      
      * membership expiry no identity removal
      
      membership expiry no more triggers identity removal
      
      * control by test
      
      * at membership expiry : back to pending membership
      
      * reveal identity removal on membership expiry
      
      * refac test
      
      * refac membership renewal
      
      add expiry unscheduling
      do not verify expiration block expiring memberships
      add and refac tests
      add integration test
      
      * wip
    utils.rs 3.98 KiB
    use crate::*;
    use sea_orm::DbErr;
    
    /// track progress of transaction on the network
    /// until it is in block with success or failure
    pub async fn track_progress(
    	mut progress: TxProgress,
    ) -> Result<ExtrinsicEvents<Runtime>, subxt::Error> {
    	loop {
    		if let Some(status) = progress.next().await {
    			match status? {
    				TxStatus::Validated => {
    					println!("transaction submitted to the network, waiting 6 seconds...");
    				}
    				TxStatus::InBestBlock(in_block) => break in_block,
    				TxStatus::Invalid { message } => {
    					println!("Invalid {message}");
    				}
    				_ => continue,
    			}
    		}
    	}
    	.wait_for_success()
    	.await
    }
    
    /// generic extrinsic submitter
    pub async fn submit_call_and_look_event<
    	E: std::fmt::Debug + StaticEvent + DisplayEvent,
    	TxPayload: Payload,
    >(
    	data: &Data,
    	payload: &TxPayload,
    ) -> Result<(), subxt::Error> {
    	// submit call
    	let progress = submit_call(data, payload).await?;
    	// if no wait, return immediately
    	if data.args.no_wait {
    		return Ok(());
    	}
    	// collect events
    	let events = track_progress(progress).await?;
    	// print given event if there
    	look_event::<E>(data, &events)
    }
    
    /// submit call
    pub async fn submit_call<TxPayload: Payload>(
    	data: &Data,
    	payload: &TxPayload,
    ) -> Result<TxProgress, subxt::Error> {
    	// get account nonce manually to be based on last block and not last finalized
    	let nonce = data
    		.legacy_rpc_methods() // see issue #32
    		.await
    		.system_account_next_index(&data.address())
    		.await?;
    
    	// sign and submit
    	match data.keypair().await {
    		// sr25519 key pair
    		KeyPair::Sr25519(keypair) => data.client().tx().create_signed_offline(
    			payload,
    			&PairSigner::<Runtime, sp_core::sr25519::Pair>::new(keypair),
    			DefaultExtrinsicParamsBuilder::new().nonce(nonce).build(),
    		),
    		KeyPair::Ed25519(keypair) => data.client().tx().create_signed_offline(
    			payload,
    			&PairSigner::<Runtime, sp_core::ed25519::Pair>::new(keypair),
    			DefaultExtrinsicParamsBuilder::new().nonce(nonce).build(),