Skip to content
Merged
Changes from 1 commit
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
7ae8ac5
Introduce new module for the trait. Rename `client` module
pmikolajczyk41 Jul 25, 2023
02c32d9
`exec_upload` should be a private method
pmikolajczyk41 Jul 25, 2023
7902e6d
Divide interface into general-chain and contracts-specific
pmikolajczyk41 Jul 25, 2023
420afe6
Actor type
pmikolajczyk41 Jul 26, 2023
f37f752
Merge remote-tracking branch 'origin/master' into pmikolajczyk41/back…
pmikolajczyk41 Jul 26, 2023
37828b6
Problems with Send/Sync
pmikolajczyk41 Jul 26, 2023
e605a0e
Seems that adding everywhere Send/Sync requirement solves :shrug:
pmikolajczyk41 Jul 26, 2023
b13556e
Adjust tests
pmikolajczyk41 Jul 26, 2023
0361c45
Fmt
pmikolajczyk41 Jul 26, 2023
1af5856
Fmt
pmikolajczyk41 Jul 26, 2023
3a5d827
Fmt
pmikolajczyk41 Jul 26, 2023
6e9e043
Merge remote-tracking branch 'origin/master' into pmikolajczyk41/back…
pmikolajczyk41 Jul 27, 2023
08c496c
Yanked contract-build version
pmikolajczyk41 Jul 27, 2023
7b831e8
Leftovers from merge
pmikolajczyk41 Jul 27, 2023
9e40e91
Move instantiate*
pmikolajczyk41 Jul 27, 2023
3749d18
Upload
pmikolajczyk41 Jul 27, 2023
4d96eb4
Trait completed
pmikolajczyk41 Jul 27, 2023
e56a4a5
Implement E2EBackend, but it requires the whole litany of trait bound…
pmikolajczyk41 Jul 27, 2023
80d9d6b
Add import to tests
pmikolajczyk41 Jul 27, 2023
87e4e7d
Fmt
pmikolajczyk41 Jul 27, 2023
448b78a
New contract-build
pmikolajczyk41 Jul 27, 2023
071f5b1
Merge remote-tracking branch 'origin/master' into pmikolajczyk41/back…
pmikolajczyk41 Jul 28, 2023
4ac1488
Add license to recently added files
pmikolajczyk41 Jul 28, 2023
cff7fa4
Don't import ChainBackend if not needed
pmikolajczyk41 Jul 29, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Seems that adding everywhere Send/Sync requirement solves 🤷
  • Loading branch information
pmikolajczyk41 committed Jul 26, 2023
commit e605a0ebbfa065df06ed8295cb80a726e63f2d59
69 changes: 25 additions & 44 deletions crates/e2e/src/subxt_client.rs
Original file line number Diff line number Diff line change
Expand Up @@ -441,48 +441,6 @@ where
})
}

/// Executes a runtime call `call_name` for the `pallet_name`.
/// The `call_data` is a `Vec<Value>`
///
/// Note:
/// - `pallet_name` must be in camel case, for example `Balances`.
/// - `call_name` must be snake case, for example `force_transfer`.
/// - `call_data` is a `Vec<subxt::dynamic::Value>` that holds a representation of
/// some value.
///
/// Returns when the transaction is included in a block. The return value
/// contains all events that are associated with this transaction.
pub async fn runtime_call<'a>(
&mut self,
signer: &Signer<C>,
pallet_name: &'a str,
call_name: &'a str,
call_data: Vec<Value>,
) -> Result<ExtrinsicEvents<C>, Error<E>> {
let tx_events = self
.api
.runtime_call(signer, pallet_name, call_name, call_data)
.await;

for evt in tx_events.iter() {
let evt = evt.unwrap_or_else(|err| {
panic!("unable to unwrap event: {err:?}");
});

if is_extrinsic_failed_event(&evt) {
let metadata = self.api.client.metadata();
let dispatch_error =
subxt::error::DispatchError::decode_from(evt.field_bytes(), metadata)
.map_err(|e| Error::<E>::Decoding(e.to_string()))?;

log_error(&format!("extrinsic for call failed: {dispatch_error}"));
return Err(Error::<E>::CallExtrinsic(dispatch_error));
}
}

Ok(tx_events)
}

/// Executes a dry-run `call`.
///
/// Returns the result of the dry run, together with the decoded return value of the
Expand Down Expand Up @@ -538,7 +496,9 @@ where
+ scale::Codec
+ serde::de::DeserializeOwned,
C::Signature: From<sr25519::Signature>,
<C::ExtrinsicParams as ExtrinsicParams<C::Index, C::Hash>>::OtherParams: Default,
C::Address: Send + Sync,
<C::ExtrinsicParams as ExtrinsicParams<C::Index, C::Hash>>::OtherParams:
Default + Send + Sync,

E: Environment,
E::AccountId: Debug + Send + Sync,
Expand Down Expand Up @@ -636,7 +596,28 @@ where
call_name: &'a str,
call_data: Vec<Value>,
) -> Result<Self::EventLog, Self::Error> {
todo!()
let tx_events = self
.api
.runtime_call(actor, pallet_name, call_name, call_data)
.await;

for evt in tx_events.iter() {
let evt = evt.unwrap_or_else(|err| {
panic!("unable to unwrap event: {err:?}");
});

if is_extrinsic_failed_event(&evt) {
let metadata = self.api.client.metadata();
let dispatch_error =
subxt::error::DispatchError::decode_from(evt.field_bytes(), metadata)
.map_err(|e| Error::<E>::Decoding(e.to_string()))?;

log_error(&format!("extrinsic for call failed: {dispatch_error}"));
return Err(Error::<E>::CallExtrinsic(dispatch_error));
}
}

Ok(tx_events)
}
}

Expand Down