pub trait WalletInterface {
Show 28 methods
// Required methods
async fn create_action(
&self,
args: CreateActionArgs,
originator: Option<&str>,
) -> Result<CreateActionResult, WalletError>;
async fn sign_action(
&self,
args: SignActionArgs,
originator: Option<&str>,
) -> Result<SignActionResult, WalletError>;
async fn abort_action(
&self,
args: AbortActionArgs,
originator: Option<&str>,
) -> Result<AbortActionResult, WalletError>;
async fn list_actions(
&self,
args: ListActionsArgs,
originator: Option<&str>,
) -> Result<ListActionsResult, WalletError>;
async fn internalize_action(
&self,
args: InternalizeActionArgs,
originator: Option<&str>,
) -> Result<InternalizeActionResult, WalletError>;
async fn list_outputs(
&self,
args: ListOutputsArgs,
originator: Option<&str>,
) -> Result<ListOutputsResult, WalletError>;
async fn relinquish_output(
&self,
args: RelinquishOutputArgs,
originator: Option<&str>,
) -> Result<RelinquishOutputResult, WalletError>;
async fn get_public_key(
&self,
args: GetPublicKeyArgs,
originator: Option<&str>,
) -> Result<GetPublicKeyResult, WalletError>;
async fn reveal_counterparty_key_linkage(
&self,
args: RevealCounterpartyKeyLinkageArgs,
originator: Option<&str>,
) -> Result<RevealCounterpartyKeyLinkageResult, WalletError>;
async fn reveal_specific_key_linkage(
&self,
args: RevealSpecificKeyLinkageArgs,
originator: Option<&str>,
) -> Result<RevealSpecificKeyLinkageResult, WalletError>;
async fn encrypt(
&self,
args: EncryptArgs,
originator: Option<&str>,
) -> Result<EncryptResult, WalletError>;
async fn decrypt(
&self,
args: DecryptArgs,
originator: Option<&str>,
) -> Result<DecryptResult, WalletError>;
async fn create_hmac(
&self,
args: CreateHmacArgs,
originator: Option<&str>,
) -> Result<CreateHmacResult, WalletError>;
async fn verify_hmac(
&self,
args: VerifyHmacArgs,
originator: Option<&str>,
) -> Result<VerifyHmacResult, WalletError>;
async fn create_signature(
&self,
args: CreateSignatureArgs,
originator: Option<&str>,
) -> Result<CreateSignatureResult, WalletError>;
async fn verify_signature(
&self,
args: VerifySignatureArgs,
originator: Option<&str>,
) -> Result<VerifySignatureResult, WalletError>;
async fn acquire_certificate(
&self,
args: AcquireCertificateArgs,
originator: Option<&str>,
) -> Result<Certificate, WalletError>;
async fn list_certificates(
&self,
args: ListCertificatesArgs,
originator: Option<&str>,
) -> Result<ListCertificatesResult, WalletError>;
async fn prove_certificate(
&self,
args: ProveCertificateArgs,
originator: Option<&str>,
) -> Result<ProveCertificateResult, WalletError>;
async fn relinquish_certificate(
&self,
args: RelinquishCertificateArgs,
originator: Option<&str>,
) -> Result<RelinquishCertificateResult, WalletError>;
async fn discover_by_identity_key(
&self,
args: DiscoverByIdentityKeyArgs,
originator: Option<&str>,
) -> Result<DiscoverCertificatesResult, WalletError>;
async fn discover_by_attributes(
&self,
args: DiscoverByAttributesArgs,
originator: Option<&str>,
) -> Result<DiscoverCertificatesResult, WalletError>;
async fn is_authenticated(
&self,
originator: Option<&str>,
) -> Result<AuthenticatedResult, WalletError>;
async fn wait_for_authentication(
&self,
originator: Option<&str>,
) -> Result<AuthenticatedResult, WalletError>;
async fn get_height(
&self,
originator: Option<&str>,
) -> Result<GetHeightResult, WalletError>;
async fn get_header_for_height(
&self,
args: GetHeaderArgs,
originator: Option<&str>,
) -> Result<GetHeaderResult, WalletError>;
async fn get_network(
&self,
originator: Option<&str>,
) -> Result<GetNetworkResult, WalletError>;
async fn get_version(
&self,
originator: Option<&str>,
) -> Result<GetVersionResult, WalletError>;
}Expand description
The core wallet interface with all 28 async methods.
Uses native async fn in traits (RPITIT, Rust 1.75+) so this trait is NOT object-safe. Use generics (not dyn dispatch) when parameterizing over wallet implementations.
Every method takes originator: Option<&str> as the last parameter,
identifying the calling application domain.
Required Methods§
async fn create_action( &self, args: CreateActionArgs, originator: Option<&str>, ) -> Result<CreateActionResult, WalletError>
async fn sign_action( &self, args: SignActionArgs, originator: Option<&str>, ) -> Result<SignActionResult, WalletError>
async fn abort_action( &self, args: AbortActionArgs, originator: Option<&str>, ) -> Result<AbortActionResult, WalletError>
async fn list_actions( &self, args: ListActionsArgs, originator: Option<&str>, ) -> Result<ListActionsResult, WalletError>
async fn internalize_action( &self, args: InternalizeActionArgs, originator: Option<&str>, ) -> Result<InternalizeActionResult, WalletError>
async fn list_outputs( &self, args: ListOutputsArgs, originator: Option<&str>, ) -> Result<ListOutputsResult, WalletError>
async fn relinquish_output( &self, args: RelinquishOutputArgs, originator: Option<&str>, ) -> Result<RelinquishOutputResult, WalletError>
async fn get_public_key( &self, args: GetPublicKeyArgs, originator: Option<&str>, ) -> Result<GetPublicKeyResult, WalletError>
async fn reveal_counterparty_key_linkage( &self, args: RevealCounterpartyKeyLinkageArgs, originator: Option<&str>, ) -> Result<RevealCounterpartyKeyLinkageResult, WalletError>
async fn reveal_specific_key_linkage( &self, args: RevealSpecificKeyLinkageArgs, originator: Option<&str>, ) -> Result<RevealSpecificKeyLinkageResult, WalletError>
async fn encrypt( &self, args: EncryptArgs, originator: Option<&str>, ) -> Result<EncryptResult, WalletError>
async fn decrypt( &self, args: DecryptArgs, originator: Option<&str>, ) -> Result<DecryptResult, WalletError>
async fn create_hmac( &self, args: CreateHmacArgs, originator: Option<&str>, ) -> Result<CreateHmacResult, WalletError>
async fn verify_hmac( &self, args: VerifyHmacArgs, originator: Option<&str>, ) -> Result<VerifyHmacResult, WalletError>
async fn create_signature( &self, args: CreateSignatureArgs, originator: Option<&str>, ) -> Result<CreateSignatureResult, WalletError>
async fn verify_signature( &self, args: VerifySignatureArgs, originator: Option<&str>, ) -> Result<VerifySignatureResult, WalletError>
async fn acquire_certificate( &self, args: AcquireCertificateArgs, originator: Option<&str>, ) -> Result<Certificate, WalletError>
async fn list_certificates( &self, args: ListCertificatesArgs, originator: Option<&str>, ) -> Result<ListCertificatesResult, WalletError>
async fn prove_certificate( &self, args: ProveCertificateArgs, originator: Option<&str>, ) -> Result<ProveCertificateResult, WalletError>
async fn relinquish_certificate( &self, args: RelinquishCertificateArgs, originator: Option<&str>, ) -> Result<RelinquishCertificateResult, WalletError>
async fn discover_by_identity_key( &self, args: DiscoverByIdentityKeyArgs, originator: Option<&str>, ) -> Result<DiscoverCertificatesResult, WalletError>
async fn discover_by_attributes( &self, args: DiscoverByAttributesArgs, originator: Option<&str>, ) -> Result<DiscoverCertificatesResult, WalletError>
async fn is_authenticated( &self, originator: Option<&str>, ) -> Result<AuthenticatedResult, WalletError>
async fn wait_for_authentication( &self, originator: Option<&str>, ) -> Result<AuthenticatedResult, WalletError>
async fn get_height( &self, originator: Option<&str>, ) -> Result<GetHeightResult, WalletError>
async fn get_header_for_height( &self, args: GetHeaderArgs, originator: Option<&str>, ) -> Result<GetHeaderResult, WalletError>
async fn get_network( &self, originator: Option<&str>, ) -> Result<GetNetworkResult, WalletError>
async fn get_version( &self, originator: Option<&str>, ) -> Result<GetVersionResult, WalletError>
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.