pub struct TransactionBuilder { /* private fields */ }Expand description
Builder for configuring a mocked transaction before executing it.
Obtain one from TestEnvironment::transaction,
chain with_* methods to configure it, then finish with
transact, transact_manual,
or build:
env.transaction()
.with_auth_claim(my_claim)
.transact(|tx| tx.call(&addr).run(|| { /* ... */ }));env.transact(f) and env.transact_manual(f) are shorthand for
env.transaction().transact(f) / .transact_manual(f) with the default
configuration.
Implementations§
Source§impl TransactionBuilder
impl TransactionBuilder
Sourcepub fn new(env: TestEnvironmentHandle) -> Self
pub fn new(env: TestEnvironmentHandle) -> Self
Start a builder with the default MockTransactionConfig.
Sourcepub fn with_auth_claim(self, auth_claim: AuthClaim) -> Self
pub fn with_auth_claim(self, auth_claim: AuthClaim) -> Self
Attach auth_claim to the mocked transaction instead of the default
source-address claim, controlling the auth-claim the contract under
test observes (e.g. via get_auth_claim).
Sourcepub fn build(self) -> MockTransactionHandler
pub fn build(self) -> MockTransactionHandler
Create the configured MockTransactionHandler for manual
orchestration. Prefer transact or
transact_manual unless you need the handler
directly.
Sourcepub fn transact(
self,
f: impl FnOnce(&mut MockTransactionHandler) -> FrameResult,
) -> TransactResult
pub fn transact( self, f: impl FnOnce(&mut MockTransactionHandler) -> FrameResult, ) -> TransactResult
Execute a transaction with auto-commit. See
TestEnvironment::transact.
Sourcepub fn transact_manual<R>(
self,
f: impl FnOnce(&mut MockTransactionHandler) -> R,
) -> R
pub fn transact_manual<R>( self, f: impl FnOnce(&mut MockTransactionHandler) -> R, ) -> R
Execute a transaction with manual commit/abort control. See
TestEnvironment::transact_manual.
The closure must call tx.try_commit_transaction() or
tx.abort_transaction() before returning; forgetting panics here
(a dropped handler would abort silently).