Crate monero_interface

Crate monero_interface 

Source
Expand description

§Monero Interface

monero-Interface provides two sets of traits for interfacing with the Monero network.

  1. Unvalidated*: Traits representing data from an arbitrary source, with minimal validation if any.
  2. Validated*: Traits representing data from a (potentially trusted) source which certain guarantees on the structure, sanity of the returned results.

Neither set of traits promise the returned data is completely accurate and up to date. Using an untrusted interface, even if the results are validated as sane, may always inject invalid data unless the caller locally behaves as a full node, applying all consensus rules, and is able to detect if they are not on the best chain. Please carefully consider the exact promises made and how that relates to your security model.

Additionally, interfaces presumably learn the pattern of your requests (due to responding to your requests), which may reveal information to the interface. Callers SHOULD NOT make any requests specific to their wallet which will not eventually end up as on-chain information, and callers SHOULD even be careful with when they make requests, as discussed in Remote Side-Channel Attacks on Anonymous Transactions.

This library is usable under no-std, with alloc, when the std feature (on by default) is disabled.

§Cargo Features

  • std (on by default): Enables std (and with it, more efficient internal implementations).

Modules§

prelude
A prelude of recommended imports to glob import.

Structs§

FeeRate
A struct containing a fee rate.
PrunedTransactionWithPrunableHash
A pruned transaction with the hash of its pruned data, if version != 1.
RingCtOutputInformation
The response to an query for the information of a RingCT output.
ScannableBlock
A block which is able to be scanned.
UnvalidatedScannableBlock
An unvalidated block which may be scannable.

Enums§

EvaluateUnlocked
How to evaluate if an output is unlocked.
FeeError
An error from the interface.
FeePriority
The priority for the fee.
InterfaceError
An error from the interface.
PublishTransactionError
An error from the interface.
TransactionsError
An error when fetching transactions.

Traits§

ExpandToScannableBlock
Extension trait for ProvidesTransactions and ProvidesOutputs`.
ProvidesBlockchain
Provides blocks which have been sanity-checked.
ProvidesBlockchainMeta
Provides metadata from the blockchain.
ProvidesDecoys
Provides the necessary data to select decoys.
ProvidesFeeRates
An interface which provides fee rates.
ProvidesOutputs
Provides information about outputs.
ProvidesScannableBlocks
Provides scannable blocks which have been sanity-checked.
ProvidesTransactions
Provides transactions which have been sanity-checked.
ProvidesUnvalidatedBlockchain
Provides the blockchain from an untrusted interface.
ProvidesUnvalidatedDecoys
Provides the necessary data to select decoys, without validating it.
ProvidesUnvalidatedFeeRates
An interface which provides unvalidated fee rates.
ProvidesUnvalidatedOutputs
Provides unvalidated information about outputs.
ProvidesUnvalidatedScannableBlocks
Provides scannable blocks from an untrusted interface.
ProvidesUnvalidatedTransactions
Provides unvalidated transactions from an untrusted interface.
PublishTransaction
An interface eligible to publish transactions over.