use rmcp::schemars::JsonSchema;
use serde::{Deserialize, Serialize};
fn default_chain() -> String {
"ethereum".to_string()
}
fn default_moralis_chain() -> String {
"eth".to_string()
}
fn default_network() -> String {
"eth-mainnet".to_string()
}
fn default_unit() -> String {
"ether".to_string()
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct LogsInput {
pub contract: String,
pub event: Option<String>,
pub from_block: Option<String>,
pub to_block: Option<String>,
pub topics: Option<Vec<String>>,
#[serde(default = "default_chain")]
pub chain: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct TxAnalyzeInput {
pub hash: String,
#[serde(default = "default_chain")]
pub chain: String,
#[serde(default)]
pub block: Option<u64>,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct AccountAddressInput {
pub address: String,
#[serde(default = "default_chain")]
pub chain: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct AccountBalanceInput {
pub addresses: Vec<String>,
#[serde(default = "default_chain")]
pub chain: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct AccountTxsInput {
pub address: String,
#[serde(default = "default_chain")]
pub chain: String,
pub page: Option<u32>,
pub limit: Option<u32>,
pub sort: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct AccountErc20Input {
pub address: String,
#[serde(default = "default_chain")]
pub chain: String,
pub token: Option<String>,
pub page: Option<u32>,
pub limit: Option<u32>,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct AccountErc721Input {
pub address: String,
#[serde(default = "default_chain")]
pub chain: String,
pub token: Option<String>,
pub page: Option<u32>,
pub limit: Option<u32>,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct AccountErc1155Input {
pub address: String,
#[serde(default = "default_chain")]
pub chain: String,
pub token: Option<String>,
pub page: Option<u32>,
pub limit: Option<u32>,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct AccountInternalTxsInput {
pub address: String,
#[serde(default = "default_chain")]
pub chain: String,
pub page: Option<u32>,
pub limit: Option<u32>,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct ContractAddressInput {
pub address: String,
#[serde(default = "default_chain")]
pub chain: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct ContractAbiInput {
pub address: String,
#[serde(default = "default_chain")]
pub chain: String,
pub output: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct ContractSourceInput {
pub address: String,
#[serde(default = "default_chain")]
pub chain: String,
pub output: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct ContractSelectorsInput {
pub address: String,
#[serde(default = "default_chain")]
pub chain: String,
#[serde(default)]
pub lookup: bool,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct ContractDisassembleInput {
pub address: String,
#[serde(default = "default_chain")]
pub chain: String,
pub limit: Option<u32>,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct ContractOpcodesInput {
pub address: String,
#[serde(default = "default_chain")]
pub chain: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct ContractAnalyzeInput {
pub address: String,
#[serde(default = "default_chain")]
pub chain: String,
#[serde(default)]
pub include_disassembly: bool,
pub limit: Option<u32>,
#[serde(default)]
pub lookup: bool,
#[serde(default)]
pub follow_proxy: bool,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct TokenInfoInput {
pub address: String,
#[serde(default = "default_chain")]
pub chain: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct TokenHoldersInput {
pub address: String,
#[serde(default = "default_chain")]
pub chain: String,
pub limit: Option<u32>,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct TokenBalanceInput {
pub tokens: Vec<String>,
#[serde(default)]
pub holders: Vec<String>,
pub tag: Option<String>,
#[serde(default)]
pub show_zero: bool,
#[serde(default = "default_chain")]
pub chain: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct GasOracleInput {
#[serde(default = "default_chain")]
pub chain: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct GasEstimateInput {
pub gwei: u64,
#[serde(default = "default_chain")]
pub chain: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct SigLookupInput {
pub selector: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct CastToWeiInput {
pub amount: String,
#[serde(default = "default_unit")]
pub unit: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct CastFromWeiInput {
pub wei: String,
#[serde(default = "default_unit")]
pub unit: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct CastValueInput {
pub value: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct CastSigInput {
pub signature: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct CastAbiEncodeInput {
pub sig: String,
pub args: Vec<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct CastAbiDecodeInput {
pub sig: String,
pub data: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct RpcCallInput {
pub to: String,
pub data: String,
#[serde(default = "default_chain")]
pub chain: String,
pub block: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct RpcBlockInput {
pub block: String,
#[serde(default = "default_chain")]
pub chain: String,
#[serde(default)]
pub full: bool,
pub rpc_url: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct RpcStorageInput {
pub address: String,
pub slot: String,
#[serde(default = "default_chain")]
pub chain: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct RpcAddressInput {
pub address: String,
#[serde(default = "default_chain")]
pub chain: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct RpcHashInput {
pub hash: String,
#[serde(default = "default_chain")]
pub chain: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct RpcChainInput {
#[serde(default = "default_chain")]
pub chain: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct EnsResolveInput {
pub name: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct EnsLookupInput {
pub address: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct EnsNamehashInput {
pub name: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct PriceInput {
pub token: String,
#[serde(default = "default_chain")]
pub chain: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct PortfolioInput {
#[serde(default)]
pub addresses: Vec<String>,
pub tag: Option<String>,
#[serde(default)]
pub aggregate: bool,
pub chain: Option<String>,
pub source: Option<String>,
pub min_value: Option<f64>,
#[serde(default)]
pub show_sources: bool,
#[serde(default)]
pub show_blacklisted: bool,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct NftsInput {
pub address: String,
#[serde(default = "default_chain")]
pub chain: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct YieldsInput {
pub protocol: Option<String>,
pub chain: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct QuoteBestInput {
pub from_token: String,
pub to_token: String,
pub amount: String,
#[serde(default = "default_chain")]
pub chain: String,
pub decimals: Option<u8>,
pub sender: Option<String>,
pub slippage: Option<u32>,
#[serde(default)]
pub show_tx: bool,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct QuoteCompareInput {
pub from_token: String,
pub to_token: String,
pub amount: String,
#[serde(default = "default_chain")]
pub chain: String,
pub decimals: Option<u8>,
pub sender: Option<String>,
pub slippage: Option<u32>,
#[serde(default)]
pub show_tx: bool,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct QuoteFromInput {
pub source: String,
pub from_token: String,
pub to_token: String,
pub amount: String,
#[serde(default = "default_chain")]
pub chain: String,
pub decimals: Option<u8>,
pub sender: Option<String>,
pub slippage: Option<u32>,
#[serde(default)]
pub show_tx: bool,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct ChainlinkPriceInput {
pub token: String,
#[serde(default = "default_chain")]
pub chain: String,
pub block: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct ChainlinkFeedInput {
pub token: String,
#[serde(default = "default_chain")]
pub chain: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct ChainlinkOraclesInput {
#[serde(default = "default_chain")]
pub chain: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct ChainlinkStreamsFeedInput {
pub feed_id: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct ChainlinkStreamsReportInput {
pub feed_id: String,
pub timestamp: u64,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct ChainlinkStreamsBulkInput {
pub feed_ids: String,
pub timestamp: u64,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct ChainlinkStreamsHistoryInput {
pub feed_id: String,
pub timestamp: u64,
#[serde(default = "default_streams_limit")]
pub limit: u32,
}
fn default_streams_limit() -> u32 {
10
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct GoplusInput {
pub address: String,
pub chain_id: u64,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct SoloditSearchInput {
pub query: String,
pub impact: Option<String>,
pub limit: Option<u32>,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct SoloditGetInput {
pub slug: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct UniswapPoolInput {
pub address: String,
#[serde(default = "default_chain")]
pub chain: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct UniswapEthPriceInput {
#[serde(default = "default_chain")]
pub chain: String,
pub version: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct UniswapTopPoolsInput {
pub limit: Option<u32>,
#[serde(default = "default_chain")]
pub chain: String,
pub version: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct UniswapPositionsInput {
pub address: String,
#[serde(default = "default_chain")]
pub chain: String,
pub version: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct CurvePoolsInput {
#[serde(default = "default_chain")]
pub chain: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct CurveRouteInput {
pub from_token: String,
pub to_token: String,
#[serde(default = "default_chain")]
pub chain: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct AlchemyPortfolioInput {
pub address: String,
#[serde(default = "default_network")]
pub network: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct AlchemyTransfersInput {
pub address: String,
#[serde(default = "default_network")]
pub network: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct GeckoCoinInput {
pub id: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct GeckoPriceInput {
pub ids: String,
pub vs_currencies: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct LlamaTvlInput {
pub protocol: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct LlamaYieldsInput {}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct OneinchQuoteInput {
pub src: String,
pub dst: String,
pub amount: String,
pub chain_id: Option<u64>,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct ZeroxQuoteInput {
pub sell_token: String,
pub buy_token: String,
pub sell_amount: String,
pub taker: String,
#[serde(default = "default_chain")]
pub chain: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct OpenoceanQuoteInput {
pub in_token: String,
pub out_token: String,
pub amount: String,
#[serde(default = "default_chain")]
pub chain: String,
#[serde(default = "default_gas_price")]
pub gas_price: String,
}
fn default_gas_price() -> String {
"30".to_string()
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct CowswapQuoteInput {
pub sell_token: String,
pub buy_token: String,
pub amount: String,
pub from: String,
#[serde(default = "default_chain")]
pub chain: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct LifiQuoteInput {
pub from_chain: String,
pub from_token: String,
pub to_chain: String,
pub to_token: String,
pub amount: String,
pub from_address: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct PythPriceInput {
pub symbols: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct PythSearchInput {
pub query: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct PythFeedsInput {
pub asset_type: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct AddressAddInput {
pub name: String,
pub address: String,
pub description: Option<String>,
#[serde(default)]
pub tags: Vec<String>,
pub for_chain: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct AddressNameInput {
pub name: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct AddressImportInput {
pub file: String,
#[serde(default)]
pub overwrite: bool,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct AddressExportInput {
pub output: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct AddressSearchInput {
pub query: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct BlacklistAddInput {
pub address: String,
pub symbol: Option<String>,
pub reason: Option<String>,
pub chain: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct BlacklistAddressInput {
pub address: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct BlacklistScanInput {
pub address: String,
#[serde(default = "default_chain")]
pub chain: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct BlacklistPathInput {}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct ContractCallInput {
pub address: String,
pub sig: String,
#[serde(default)]
pub args: Vec<String>,
#[serde(default = "default_chain")]
pub chain: String,
pub block: Option<String>,
pub rpc_url: Option<String>,
#[serde(default)]
pub human: bool,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct CastComputeAddressInput {
pub deployer: String,
pub nonce: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct CastCreate2Input {
pub deployer: String,
pub salt: String,
pub init_code_hash: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct CastConcatInput {
pub values: Vec<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct SimulateBundleInput {
pub txs: String,
#[serde(default = "default_chain")]
pub chain: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct SimulateIdInput {
pub id: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct TenderlySimulateInput {
pub contract: String,
pub data: String,
#[serde(default = "default_chain")]
pub chain: String,
}
fn default_network_id() -> u64 {
1
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
#[schemars(title = "TenderlyVnetsCreateInput")]
pub struct TenderlyVnetsCreateInput {
pub slug: String,
pub name: String,
#[serde(default = "default_network_id")]
pub network_id: u64,
#[serde(default)]
pub block_number: Option<u64>,
#[serde(default)]
pub chain_id: Option<u64>,
#[serde(default)]
pub sync_state: bool,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
#[schemars(title = "TenderlyVnetsIdInput")]
pub struct TenderlyVnetsIdInput {
pub id: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
#[schemars(title = "TenderlyVnetsDeleteInput")]
pub struct TenderlyVnetsDeleteInput {
#[serde(default)]
pub ids: Vec<String>,
#[serde(default)]
pub all: bool,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
#[schemars(title = "TenderlyVnetsUpdateInput")]
pub struct TenderlyVnetsUpdateInput {
pub id: String,
#[serde(default)]
pub name: Option<String>,
#[serde(default)]
pub slug: Option<String>,
#[serde(default)]
pub sync_state: Option<bool>,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
#[schemars(title = "TenderlyVnetsForkInput")]
pub struct TenderlyVnetsForkInput {
pub source: String,
pub slug: String,
pub name: String,
#[serde(default)]
pub block_number: Option<u64>,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
#[schemars(title = "TenderlyVnetsTransactionsInput")]
pub struct TenderlyVnetsTransactionsInput {
pub id: String,
#[serde(default)]
pub page: Option<u32>,
#[serde(default)]
pub per_page: Option<u32>,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
#[schemars(title = "TenderlyVnetsSendInput")]
pub struct TenderlyVnetsSendInput {
pub vnet: String,
pub from: String,
pub to: String,
#[serde(default)]
pub data: Option<String>,
#[serde(default)]
pub value: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
#[schemars(title = "TenderlyVnetsGetTransactionInput")]
pub struct TenderlyVnetsGetTransactionInput {
pub vnet: String,
pub hash: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
#[schemars(title = "TenderlyVnetsSimulateInput")]
pub struct TenderlyVnetsSimulateInput {
pub vnet: String,
pub from: String,
#[serde(default)]
pub to: Option<String>,
#[serde(default)]
pub data: Option<String>,
#[serde(default)]
pub value: Option<String>,
#[serde(default)]
pub gas: Option<u64>,
#[serde(default)]
pub gas_price: Option<String>,
#[serde(default)]
pub max_fee_per_gas: Option<String>,
#[serde(default)]
pub max_priority_fee_per_gas: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
#[schemars(title = "TenderlyVnetsAdminBalanceInput")]
pub struct TenderlyVnetsAdminBalanceInput {
pub vnet: String,
pub address: String,
pub amount: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
#[schemars(title = "TenderlyVnetsAdminErc20Input")]
pub struct TenderlyVnetsAdminErc20Input {
pub vnet: String,
pub token: String,
pub wallet: String,
#[serde(default)]
pub amount: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
#[schemars(title = "TenderlyVnetsAdminTimeInput")]
pub struct TenderlyVnetsAdminTimeInput {
pub vnet: String,
pub value: u64,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
#[schemars(title = "TenderlyVnetsAdminBlocksInput")]
pub struct TenderlyVnetsAdminBlocksInput {
pub vnet: String,
pub blocks: u64,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
#[schemars(title = "TenderlyVnetsAdminVnetInput")]
pub struct TenderlyVnetsAdminVnetInput {
pub vnet: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
#[schemars(title = "TenderlyVnetsAdminRevertInput")]
pub struct TenderlyVnetsAdminRevertInput {
pub vnet: String,
pub snapshot_id: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
#[schemars(title = "TenderlyVnetsAdminStorageInput")]
pub struct TenderlyVnetsAdminStorageInput {
pub vnet: String,
pub address: String,
pub slot: String,
pub value: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
#[schemars(title = "TenderlyVnetsAdminCodeInput")]
pub struct TenderlyVnetsAdminCodeInput {
pub vnet: String,
pub address: String,
pub code: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
#[schemars(title = "TenderlyVnetsAdminSendTxInput")]
pub struct TenderlyVnetsAdminSendTxInput {
pub vnet: String,
pub from: String,
#[serde(default)]
pub to: Option<String>,
#[serde(default)]
pub data: Option<String>,
#[serde(default)]
pub value: Option<String>,
#[serde(default)]
pub gas: Option<String>,
}
fn default_block_tag() -> String {
"latest".to_string()
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
#[schemars(title = "TenderlyVnetsAdminSimulateTxInput")]
pub struct TenderlyVnetsAdminSimulateTxInput {
pub vnet: String,
pub from: String,
#[serde(default)]
pub to: Option<String>,
#[serde(default)]
pub data: Option<String>,
#[serde(default)]
pub value: Option<String>,
#[serde(default)]
pub gas: Option<String>,
#[serde(default = "default_block_tag")]
pub block: String,
#[serde(default)]
pub state_overrides: Option<String>,
#[serde(default)]
pub block_overrides: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
#[schemars(title = "TenderlyVnetsAdminSimulateBundleInput")]
pub struct TenderlyVnetsAdminSimulateBundleInput {
pub vnet: String,
pub txs: String,
#[serde(default)]
pub state_overrides: Option<String>,
#[serde(default)]
pub block_overrides: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
#[schemars(title = "TenderlyActionsIdsInput")]
pub struct TenderlyActionsIdsInput {
pub ids: Vec<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
#[schemars(title = "TenderlyActionsGetCallInput")]
pub struct TenderlyActionsGetCallInput {
pub id: String,
pub execution_id: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
#[schemars(title = "TenderlyAlertsUpdateInput")]
pub struct TenderlyAlertsUpdateInput {
pub id: String,
pub name: String,
pub alert_type: String,
#[serde(default)]
pub network: Option<String>,
#[serde(default)]
pub addresses: Option<Vec<String>>,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
#[schemars(title = "TenderlyAlertsAddDestinationInput")]
pub struct TenderlyAlertsAddDestinationInput {
pub id: String,
pub destination_type: String,
pub destination_id: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
#[schemars(title = "TenderlyAlertsRemoveDestinationInput")]
pub struct TenderlyAlertsRemoveDestinationInput {
pub id: String,
pub destination_id: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
#[schemars(title = "TenderlyContractsUpdateInput")]
pub struct TenderlyContractsUpdateInput {
pub address: String,
#[serde(default)]
pub network: Option<String>,
#[serde(default)]
pub name: Option<String>,
#[serde(default)]
pub tags: Vec<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
#[schemars(title = "TenderlyContractsRemoveTagInput")]
pub struct TenderlyContractsRemoveTagInput {
pub address: String,
#[serde(default)]
pub network: Option<String>,
pub tag: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
#[schemars(title = "TenderlyContractsBulkTagInput")]
pub struct TenderlyContractsBulkTagInput {
pub tag: String,
pub contract_ids: Vec<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
#[schemars(title = "TenderlyContractsEncodeStateInput")]
pub struct TenderlyContractsEncodeStateInput {
#[serde(default)]
pub network: Option<String>,
pub state_json: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
#[schemars(title = "TenderlyVnetsAdminBatchBalanceInput")]
pub struct TenderlyVnetsAdminBatchBalanceInput {
pub vnet: String,
pub addresses: Vec<String>,
pub amount: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
#[schemars(title = "TenderlyVnetsAdminCreateAccessListInput")]
pub struct TenderlyVnetsAdminCreateAccessListInput {
pub vnet: String,
pub from: String,
pub to: String,
#[serde(default)]
pub data: Option<String>,
#[serde(default)]
pub value: Option<String>,
#[serde(default)]
pub gas: Option<String>,
#[serde(default)]
pub block: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct AlchemyPricesInput {
pub tokens: String,
#[serde(default = "default_network")]
pub network: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct AlchemyDebugInput {
pub hash: String,
#[serde(default = "default_network")]
pub network: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct AlchemyNftMetadataInput {
pub contract: String,
pub token_id: String,
#[serde(default = "default_network")]
pub network: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct AlchemyNftContractInput {
pub contract: String,
#[serde(default = "default_network")]
pub network: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct AlchemyNftIsHolderInput {
pub address: String,
pub contract: String,
#[serde(default = "default_network")]
pub network: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct AlchemyTokenMetadataInput {
pub contract: String,
#[serde(default = "default_network")]
pub network: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct AlchemyTokenAllowancesInput {
pub contract: String,
pub owner: String,
pub spender: String,
#[serde(default = "default_network")]
pub network: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct AlchemyTransfersToInput {
pub address: String,
#[serde(default)]
pub from_block: Option<String>,
#[serde(default)]
pub to_block: Option<String>,
#[serde(default = "default_network")]
pub network: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct AlchemyPricesByAddressInput {
pub addresses: String,
#[serde(default = "default_network")]
pub network: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct AlchemyNftContractOwnerInput {
pub contract: String,
#[serde(default = "default_network")]
pub network: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct AlchemyNftAddressInput {
pub address: String,
#[serde(default = "default_network")]
pub network: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct AlchemyNftForContractInput {
pub contract: String,
pub start_token: Option<String>,
pub limit: Option<u32>,
#[serde(default = "default_network")]
pub network: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct AlchemyNftSlugInput {
pub slug: String,
#[serde(default = "default_network")]
pub network: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct AlchemyNftSearchInput {
pub query: String,
#[serde(default = "default_network")]
pub network: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct AlchemyNftSalesInput {
pub contract: String,
pub token_id: Option<String>,
pub from_block: Option<u64>,
pub to_block: Option<u64>,
#[serde(default = "default_network")]
pub network: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct AlchemyNftForCollectionInput {
pub slug: String,
pub start_token: Option<String>,
pub limit: Option<u32>,
#[serde(default = "default_network")]
pub network: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct AlchemyChainOnlyInput {
#[serde(default = "default_network")]
pub network: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct AlchemyTokenBalancesForTokensInput {
pub address: String,
pub tokens: String,
#[serde(default = "default_network")]
pub network: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct AlchemyTransfersAllInput {
pub address: String,
#[serde(default = "default_network")]
pub network: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct AlchemyPortfolioTokenInfoInput {
pub tokens: String,
#[serde(default = "default_network")]
pub network: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct AlchemyPortfolioNftsInput {
pub address: String,
#[serde(default = "default_true")]
pub with_metadata: bool,
#[serde(default = "default_network")]
pub network: String,
}
fn default_true() -> bool {
true
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct AlchemyPortfolioNftContractsInput {
pub address: String,
#[serde(default = "default_network")]
pub network: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct AlchemyPricesBySymbolInput {
pub symbols: String,
#[serde(default = "default_network")]
pub network: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct AlchemyPricesHistoricalBySymbolInput {
pub symbol: String,
pub start_time: String,
pub end_time: String,
pub interval: Option<String>,
#[serde(default = "default_network")]
pub network: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct AlchemyPricesHistoricalByAddressInput {
pub address: String,
pub start_time: String,
pub end_time: String,
pub interval: Option<String>,
#[serde(default = "default_network")]
pub network: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct AlchemyDebugTraceCallInput {
pub to: String,
pub block: Option<String>,
pub from: Option<String>,
pub data: Option<String>,
pub value: Option<String>,
pub gas: Option<String>,
#[serde(default = "default_network")]
pub network: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct AlchemyDebugBlockHashInput {
pub hash: String,
#[serde(default = "default_network")]
pub network: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct AlchemyDebugBlockInput {
pub block: String,
#[serde(default = "default_network")]
pub network: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct AlchemyTraceBlockInput {
pub block: String,
#[serde(default = "default_network")]
pub network: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct AlchemyTraceCallInput {
pub to: String,
pub block: Option<String>,
pub from: Option<String>,
pub data: Option<String>,
pub value: Option<String>,
pub gas: Option<String>,
pub trace_types: Option<String>,
#[serde(default = "default_network")]
pub network: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct AlchemyTraceGetInput {
pub hash: String,
pub indices: String,
#[serde(default = "default_network")]
pub network: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct AlchemyTraceRawTxInput {
pub raw_tx: String,
pub trace_types: Option<String>,
#[serde(default = "default_network")]
pub network: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct AlchemyTraceReplayBlockInput {
pub block: String,
pub trace_types: Option<String>,
#[serde(default = "default_network")]
pub network: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct AlchemyTraceReplayTxInput {
pub hash: String,
pub trace_types: Option<String>,
#[serde(default = "default_network")]
pub network: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct AlchemyTraceTxInput {
pub hash: String,
#[serde(default = "default_network")]
pub network: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct AlchemyTraceFilterInput {
pub from_block: Option<String>,
pub to_block: Option<String>,
pub from_address: Option<String>,
pub to_address: Option<String>,
pub after: Option<u32>,
pub count: Option<u32>,
#[serde(default = "default_network")]
pub network: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct AlchemySimAssetChangesInput {
pub to: String,
pub from: Option<String>,
pub data: Option<String>,
pub value: Option<String>,
pub gas: Option<String>,
#[serde(default = "default_network")]
pub network: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct AlchemySimExecutionInput {
pub to: String,
pub from: Option<String>,
pub data: Option<String>,
pub value: Option<String>,
pub gas: Option<String>,
pub block: Option<String>,
pub trace_format: Option<String>,
#[serde(default = "default_network")]
pub network: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct AlchemyBundlerEstimateGasInput {
pub user_op_json: String,
pub entry_point: Option<String>,
#[serde(default = "default_network")]
pub network: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct AlchemyBundlerHashInput {
pub hash: String,
#[serde(default = "default_network")]
pub network: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct AlchemyGasManagerPolicyInput {
pub policy_id: String,
#[serde(default = "default_network")]
pub network: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct AlchemyNotifyWebhookInput {
pub webhook_id: String,
#[serde(default = "default_network")]
pub network: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct AlchemyBeaconBlockIdInput {
pub block_id: String,
#[serde(default = "default_network")]
pub network: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct AlchemyBeaconStateIdInput {
pub state_id: String,
#[serde(default = "default_network")]
pub network: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct AlchemyBeaconValidatorInput {
pub state_id: String,
pub validator_id: String,
#[serde(default = "default_network")]
pub network: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct AlchemyBeaconDutiesInput {
pub epoch: String,
pub validators: String,
#[serde(default = "default_network")]
pub network: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct AlchemyBeaconEpochInput {
pub epoch: String,
#[serde(default = "default_network")]
pub network: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct AlchemySolanaAssetInput {
pub id: String,
#[serde(default = "default_network")]
pub network: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct AlchemySolanaAssetsInput {
pub ids: String,
#[serde(default = "default_network")]
pub network: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct AlchemySolanaOwnerInput {
pub owner: String,
pub page: Option<u32>,
pub limit: Option<u32>,
#[serde(default = "default_network")]
pub network: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct AlchemySolanaAddressInput {
pub address: String,
#[serde(default = "default_network")]
pub network: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct AlchemySolanaGroupInput {
pub group_key: String,
pub group_value: String,
#[serde(default = "default_network")]
pub network: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct AlchemySolanaTokenAccountsInput {
pub owner: Option<String>,
pub mint: Option<String>,
#[serde(default = "default_network")]
pub network: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct AlchemySolanaMintInput {
pub mint: String,
#[serde(default = "default_network")]
pub network: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct GeckoNftInput {
pub id: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct GeckoOnchainInput {
pub network: String,
pub address: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct GeckoTokenPriceInput {
pub platform: String,
pub addresses: String,
#[serde(default)]
pub vs: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct GeckoCoinsListInput {
#[serde(default)]
pub with_platforms: bool,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct GeckoCoinsMarketsInput {
#[serde(default)]
pub vs_currency: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct GeckoCoinsChartInput {
pub id: String,
#[serde(default)]
pub vs: Option<String>,
#[serde(default)]
pub days: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct GeckoCoinsOhlcInput {
pub id: String,
#[serde(default)]
pub vs: Option<String>,
#[serde(default)]
pub days: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct GeckoCoinsHistoryInput {
pub id: String,
pub date: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct GeckoCoinsTopMoversInput {
#[serde(default)]
pub vs: Option<String>,
#[serde(default)]
pub duration: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct GeckoContractInput {
pub platform: String,
pub address: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct GeckoSearchInput {
pub query: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct GeckoOnchainNetworkInput {
pub network: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct GeckoOnchainOptionalNetworkInput {
#[serde(default)]
pub network: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct GeckoOnchainTokenPriceInput {
pub network: String,
pub addresses: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct GeckoOnchainPoolOhlcvInput {
pub network: String,
pub address: String,
#[serde(default)]
pub timeframe: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct GoplusBatchInput {
pub addresses: String,
pub chain_id: u64,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
#[allow(dead_code)] pub struct SoloditSlugInput {
pub slug: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct LlamaCoinsInput {
pub addresses: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct LlamaProtocolInput {
pub protocol: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct MoralisChainOnlyInput {
#[serde(default = "default_moralis_chain")]
pub chain: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct MoralisAddressInput {
pub address: String,
#[serde(default = "default_moralis_chain")]
pub chain: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct MoralisDomainInput {
pub domain: String,
#[serde(default = "default_moralis_chain")]
pub chain: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct MoralisSearchInput {
pub query: String,
#[serde(default = "default_moralis_chain")]
pub chain: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct MoralisNftMetadataInput {
pub contract: String,
pub token_id: String,
#[serde(default = "default_moralis_chain")]
pub chain: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct MoralisAddressesInput {
pub addresses: String,
#[serde(default = "default_moralis_chain")]
pub chain: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct MoralisExchangeInput {
pub exchange: String,
#[serde(default = "default_moralis_chain")]
pub chain: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct MoralisSymbolsInput {
pub symbols: String,
#[serde(default = "default_moralis_chain")]
pub chain: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct MoralisNftContractInput {
pub contract: String,
#[serde(default = "default_moralis_chain")]
pub chain: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct MoralisNftTokenInput {
pub contract: String,
pub token_id: String,
#[serde(default = "default_moralis_chain")]
pub chain: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct MoralisMultipleNftsInput {
pub tokens: String,
#[serde(default = "default_moralis_chain")]
pub chain: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct MoralisTxHashInput {
pub tx_hash: String,
#[serde(default = "default_moralis_chain")]
pub chain: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct MoralisTxVerboseInput {
pub tx_hash: String,
#[serde(default)]
pub include_internal: bool,
#[serde(default = "default_moralis_chain")]
pub chain: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct MoralisWalletVerboseInput {
pub address: String,
#[serde(default)]
pub include_internal: bool,
#[serde(default = "default_moralis_chain")]
pub chain: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct MoralisBlockInput {
pub block_number_or_hash: String,
#[serde(default)]
pub include_transactions: bool,
#[serde(default = "default_moralis_chain")]
pub chain: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct MoralisDateInput {
pub date: String,
#[serde(default = "default_moralis_chain")]
pub chain: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct MoralisDefiPairPriceInput {
pub token0: String,
pub token1: String,
pub exchange: Option<String>,
#[serde(default = "default_moralis_chain")]
pub chain: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct MoralisDefiPairAddressInput {
pub token0: String,
pub token1: String,
pub exchange: Option<String>,
#[serde(default = "default_moralis_chain")]
pub chain: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct MoralisProtocolPositionsInput {
pub address: String,
pub protocol: String,
#[serde(default = "default_moralis_chain")]
pub chain: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct MoralisDiscoveryFilterInput {
pub min_market_cap: Option<f64>,
pub max_market_cap: Option<f64>,
pub min_liquidity: Option<f64>,
pub max_liquidity: Option<f64>,
pub min_volume_24h: Option<f64>,
pub max_volume_24h: Option<f64>,
pub min_holders: Option<i64>,
pub min_security_score: Option<i32>,
#[serde(default = "default_moralis_chain")]
pub chain: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct MoralisAnalyticsTimeseriesInput {
pub addresses: String,
pub timeframe: Option<String>,
pub from_date: Option<String>,
pub to_date: Option<String>,
#[serde(default = "default_moralis_chain")]
pub chain: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct MoralisEntityIdInput {
pub entity_id: String,
#[serde(default = "default_moralis_chain")]
pub chain: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct MoralisCategoryIdInput {
pub category_id: String,
#[serde(default = "default_moralis_chain")]
pub chain: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct MoralisVolumeTimeseriesInput {
pub timeframe: Option<String>,
pub from_date: Option<String>,
pub to_date: Option<String>,
#[serde(default = "default_moralis_chain")]
pub chain: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct MoralisVolumeCategoryTimeseriesInput {
pub category_id: String,
pub timeframe: Option<String>,
pub from_date: Option<String>,
pub to_date: Option<String>,
#[serde(default = "default_moralis_chain")]
pub chain: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct DsimAddressInput {
pub address: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct DsimTokenInfoInput {
pub address: String,
#[serde(default = "default_chain_id")]
pub chain_id: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct DsimTokenInput {
pub token: String,
#[serde(default = "default_chain_id")]
pub chain_id: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct DuneQueryInput {
pub query_id: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct DuneSqlInput {
pub sql: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct DuneExecutionInput {
pub execution_id: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct DuneQueriesCreateInput {
pub name: String,
pub sql: String,
pub description: Option<String>,
#[serde(default)]
pub private: bool,
pub tags: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct DuneQueriesGetInput {
pub query_id: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct DuneQueriesUpdateInput {
pub query_id: String,
pub name: Option<String>,
pub sql: Option<String>,
pub description: Option<String>,
pub tags: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct DuneQueriesListInput {
pub limit: Option<u32>,
pub offset: Option<u32>,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct DuneQueriesIdInput {
pub query_id: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct DuneTablesCreateInput {
pub namespace: String,
pub table_name: String,
pub schema_json: String,
pub description: Option<String>,
#[serde(default)]
pub private: bool,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct DuneTablesUploadCsvInput {
pub table_name: String,
pub data: String,
pub description: Option<String>,
#[serde(default)]
pub private: bool,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct DuneTablesListInput {
pub limit: Option<u32>,
pub offset: Option<u32>,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct DuneTablesGetInput {
pub namespace: String,
pub table_name: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct DuneTablesInsertInput {
pub namespace: String,
pub table_name: String,
pub data_json: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct DuneTablesNamespaceTableInput {
pub namespace: String,
pub table_name: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct DuneMatviewsUpsertInput {
pub name: String,
pub query_id: String,
pub cron: Option<String>,
pub expires_at: Option<String>,
#[serde(default)]
pub private: bool,
pub performance: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct DuneMatviewsNameInput {
pub name: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct DuneMatviewsListInput {
pub limit: Option<u32>,
pub offset: Option<u32>,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct DuneMatviewsRefreshInput {
pub name: String,
pub performance: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct DunePipelinesExecuteInput {
pub pipeline_json: String,
pub params: Option<String>,
pub performance: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct DunePipelinesStatusInput {
pub execution_id: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct CurveRouterEncodeInput {
pub from: String,
pub to: String,
pub amount: String,
pub min_out: String,
#[serde(default = "default_chain")]
pub chain: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct CurveChainRegistryInput {
#[serde(default = "default_chain")]
pub chain: String,
pub registry: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct CurveOptionalChainInput {
pub chain: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct CurveChainAddressInput {
#[serde(default = "default_chain")]
pub chain: String,
pub address: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct CurveChainAddressTimeRangeInput {
#[serde(default = "default_chain")]
pub chain: String,
pub address: String,
pub start: Option<u64>,
pub end: Option<u64>,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct CurveDaoLockersInput {
pub top: Option<u32>,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct CcxtExchangeInput {
pub exchange: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct CcxtOhlcvInput {
pub exchange: String,
pub symbol: String,
pub timeframe: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct CcxtTradesInput {
pub exchange: String,
pub symbol: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct CcxtCompareInput {
pub symbol: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct UniswapPoolAddressInput {
pub pool: String,
#[serde(default = "default_chain")]
pub chain: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct UniswapBalanceInput {
pub address: String,
pub token: String,
#[serde(default = "default_chain")]
pub chain: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct KongChainInput {
#[serde(default = "default_chain_id")]
pub chain_id: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct KongTvlInput {
pub address: String,
#[serde(default = "default_chain_id")]
pub chain_id: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct KongReportsInput {
pub report_type: String,
pub address: String,
#[serde(default = "default_chain_id")]
pub chain_id: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct KongPricesInput {
pub address: String,
#[serde(default = "default_chain_id")]
pub chain_id: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct OneinchSwapInput {
pub src: String,
pub dst: String,
pub amount: String,
pub from: String,
pub chain_id: Option<u64>,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct OneinchChainInput {
pub chain_id: Option<u64>,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct OneinchAllowanceInput {
pub token: String,
pub owner: String,
pub chain_id: Option<u64>,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct OneinchApproveInput {
pub token: String,
pub amount: Option<String>,
pub chain_id: Option<u64>,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct OpenoceanSwapInput {
pub in_token: String,
pub out_token: String,
pub amount: String,
pub account: String,
#[serde(default = "default_chain")]
pub chain: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct OpenoceanChainInput {
#[serde(default = "default_chain")]
pub chain: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct KyberRoutesInput {
pub token_in: String,
pub token_out: String,
pub amount_in: String,
#[serde(default = "default_chain")]
pub chain: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct KyberBuildInput {
pub token_in: String,
pub token_out: String,
pub amount_in: String,
pub sender: String,
pub recipient: String,
pub route_summary: String,
#[serde(default = "default_chain")]
pub chain: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct ZeroxPriceInput {
pub sell_token: String,
pub buy_token: String,
pub sell_amount: String,
pub taker: String,
#[serde(default = "default_chain")]
pub chain: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct ZeroxChainInput {
#[serde(default = "default_chain")]
pub chain: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct CowswapOrderInput {
pub order_uid: String,
#[serde(default = "default_chain")]
pub chain: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct CowswapOwnerInput {
pub owner: String,
#[serde(default = "default_chain")]
pub chain: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct CowswapChainInput {
#[serde(default = "default_chain")]
pub chain: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct CowswapAuctionInput {
pub auction_id: String,
#[serde(default = "default_chain")]
pub chain: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct CowswapTokenInput {
pub token: String,
#[serde(default = "default_chain")]
pub chain: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct CowswapCreateOrderInput {
pub sell_token: String,
pub buy_token: String,
pub sell_amount: String,
pub buy_amount: String,
pub valid_to: u64,
pub from: String,
pub receiver: String,
pub signature: String,
#[serde(default = "default_order_kind")]
pub kind: String,
#[serde(default = "default_signing_scheme")]
pub signing_scheme: String,
#[serde(default)]
pub fee_amount: Option<String>,
#[serde(default)]
pub app_data: Option<String>,
#[serde(default)]
pub partially_fillable: bool,
pub quote_id: Option<i64>,
#[serde(default = "default_chain")]
pub chain: String,
}
fn default_order_kind() -> String {
"sell".to_string()
}
fn default_signing_scheme() -> String {
"eip712".to_string()
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct CowswapCancelOrderInput {
pub uid: String,
pub signature: String,
#[serde(default = "default_chain")]
pub chain: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct LifiStatusInput {
pub tx_hash: String,
pub bridge: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct LifiChainInput {
pub chain: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct LifiGasInput {
pub chain_id: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct LifiTokensInput {
#[serde(default = "default_chain_id")]
pub chain_id: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct LifiConnectionsInput {
pub from_chain: Option<String>,
pub to_chain: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct LifiStepTransactionInput {
pub step_json: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct VeloraPriceInput {
pub src_token: String,
pub dest_token: String,
pub amount: String,
#[serde(default = "default_chain")]
pub chain: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct VeloraTxInput {
pub user_address: String,
pub price_route: String,
#[serde(default = "default_chain")]
pub chain: String,
pub slippage: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct VeloraChainInput {
#[serde(default = "default_chain")]
pub chain: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct EnsoRouteInput {
pub from_token: String,
pub to_token: String,
pub amount: String,
pub from_address: String,
#[serde(default = "default_chain_id")]
pub chain_id: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct EnsoPriceInput {
pub token: String,
#[serde(default = "default_chain_id")]
pub chain_id: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct EnsoBalancesInput {
pub address: String,
#[serde(default = "default_chain_id")]
pub chain_id: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct EnsoBundleInput {
pub from_address: String,
pub actions_json: String,
#[serde(default = "default_chain_id")]
pub chain_id: String,
pub routing_strategy: Option<String>,
}
fn default_chain_id() -> String {
"1".to_string()
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct CcxtTickerInput {
pub exchange: String,
pub symbol: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct CcxtOrderbookInput {
pub exchange: String,
pub symbol: String,
pub limit: Option<u32>,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct SimulateCallInput {
pub contract: String,
pub sig: Option<String>,
pub data: Option<String>,
#[serde(default)]
pub args: Vec<String>,
#[serde(default = "default_chain")]
pub chain: String,
pub from: Option<String>,
pub value: Option<String>,
pub block: Option<String>,
pub gas: Option<String>,
pub gas_price: Option<String>,
#[serde(default)]
pub balance_overrides: Vec<String>,
#[serde(default)]
pub storage_overrides: Vec<String>,
#[serde(default)]
pub code_overrides: Vec<String>,
#[serde(default)]
pub nonce_overrides: Vec<String>,
pub block_timestamp: Option<u64>,
pub block_number_override: Option<u64>,
pub block_gas_limit: Option<String>,
pub block_coinbase: Option<String>,
pub block_difficulty: Option<String>,
pub block_base_fee: Option<String>,
pub transaction_index: Option<u32>,
pub l1_block_number: Option<u64>,
pub l1_timestamp: Option<u64>,
pub l1_message_sender: Option<String>,
#[serde(default)]
pub deposit_tx: bool,
#[serde(default)]
pub system_tx: bool,
pub via: Option<String>,
pub rpc_url: Option<String>,
#[serde(default)]
pub trace: bool,
#[serde(default)]
pub estimate_gas: bool,
#[serde(default)]
pub generate_access_list: bool,
pub access_list: Option<String>,
pub simulation_type: Option<String>,
pub network_id: Option<u64>,
#[serde(default)]
pub save: bool,
pub tenderly_key: Option<String>,
pub tenderly_account: Option<String>,
pub tenderly_project: Option<String>,
pub alchemy_key: Option<String>,
pub alchemy_network: Option<String>,
pub dry_run: Option<String>,
#[serde(default)]
pub show_secrets: bool,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct SimulateTxInput {
pub hash: String,
#[serde(default = "default_chain")]
pub chain: String,
pub via: Option<String>,
#[serde(default)]
pub trace: bool,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct ConfigKeyInput {
pub key: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct ConfigTenderlyInput {
pub account: String,
pub project: String,
pub key: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct ConfigChainlinkInput {
pub key: String,
pub secret: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct ConfigDebugRpcInput {
pub url: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct EndpointsChainInput {
#[serde(default = "default_chain")]
pub chain: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct EndpointsUrlInput {
pub url: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct EndpointsAddInput {
pub url: String,
pub chain: Option<String>,
#[serde(default)]
pub no_optimize: bool,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct EndpointsOptimizeInput {
pub url: Option<String>,
#[serde(default = "default_chain")]
pub chain: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct ChainlistSearchInput {
pub query: String,
#[serde(default)]
pub testnets: bool,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct ChainlistChainInput {
pub chain: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct ChainlistAddInput {
pub chain: String,
#[serde(default = "default_chainlist_max")]
pub max: usize,
}
fn default_chainlist_max() -> usize {
5
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct ChainlistListInput {
#[serde(default)]
pub testnets: bool,
}