using Nethereum.RPC.Eth.DTOs;
using System.Collections.Generic;
using System.Numerics;
namespace Nethereum.Contracts.CQS
{
///
/// Base class used for the messages and descriptions of Deployments and Functions (Queries, Transactions)
///
public abstract class ContractMessageBase
{
///
/// The Ether Amount to Send to the contract in Wei
///
///
/// The smart contract function will need to mark as payable in latest versions of solidity
///
public BigInteger AmountToSend { get; set; }
///
/// The Maximum Gas to use for the transaction
///
public BigInteger? Gas { get; set; }
///
/// The Gas price per unit of Gas, only used in Legacy transactions
///
public BigInteger? GasPrice { get; set; }
///
/// The address of the sender
///
public string FromAddress { get; set; }
///
/// The unique number for the contract message transaction
///
///
/// Nonces are ordered based on the number of transactions from an specific account,
/// so the next nonce for the next transaction will be the total number of transactions for that account
///
public BigInteger? Nonce { get; set; }
///
/// Max Fee Per Gas provided by the sender in Wei. Introduced in EIP 1559
///
public BigInteger? MaxFeePerGas { get; set; }
///
/// Max Priority Fee Per Gas provided by the sender in Wei. Introduced in EIP 1559
///
public BigInteger? MaxPriorityFeePerGas { get; set; }
///
/// The transaction type, null for legacy, 0x02 for EIP 1559
///
public byte? TransactionType { get; set; }
///
/// The transaction type, null for legacy, 0x02 for EIP 1559
///
public List AccessList { get; set; }
}
}