# Safe Network EVM data payments

This crate contains the logic for data payments on the SAFE Network using the Ethereum protocol. 

This crate provides a set of types and utilities for interacting with EVM-based networks. It offers abstraction over common tasks such as handling addresses, wallets, payments, and network configurations. Below is an overview of the main types exposed by the crate.

## Exposed Types

### RewardsAddress
Alias for `evmlib::common::Address`. Represents an EVM-compatible address used for handling rewards.

### QuoteHash
Represents a unique hash identifying a quote. Useful for referencing and verifying `PaymentQuote`.

### TxHash
Represents the transaction hash. Useful for identifying and tracking transactions on the blockchain.

### EvmWallet
Alias for `evmlib::wallet::Wallet`. A wallet used to interact with EVM-compatible networks, providing key management and signing functionality.

### EvmNetworkCustom
A custom network type that allows for interaction with custom EVM-based networks. 

### EvmNetwork
A standard network type for EVM-based networks such as Ethereum or ArbitrumOne.

### PaymentQuote
Represents a quote for a payment transaction. Contains relevant data for processing payments through EVM-based networks.

### QuotingMetrics
Represents metrics associated with generating a payment quote. Useful for performance measurement and optimization.

### ProofOfPayment
Contains proof of a successful payment on an EVM-based network. Includes data like transaction hash and confirmation details.

### Amount
Represents a general amount of tokens. Can be used to define any token value in a flexible way.

### AttoTokens
Represents an amount in the smallest token unit, commonly "atto" (10^-18). Useful for working with precise amounts in smart contracts.

### EvmError
A custom error type used for handling EVM-related errors within the library.

### Result
A specialized `Result` type that wraps around `EvmError`. Standardizes error handling across operations.
