snowbridge_outbound_queue_primitives/v2/mod.rs
1// SPDX-License-Identifier: Apache-2.0
2// SPDX-FileCopyrightText: 2023 Snowfork <hello@snowfork.com>
3pub mod converter;
4pub mod delivery_receipt;
5pub mod exporter;
6pub mod message;
7
8pub use converter::*;
9pub use delivery_receipt::*;
10pub use message::*;
11
12use codec::{Decode, Encode};
13use scale_info::TypeInfo;
14use sp_runtime::RuntimeDebug;
15use sp_std::prelude::*;
16
17/// The `XCM::Transact` payload for calling arbitrary smart contracts on Ethereum.
18/// On Ethereum, this call will be dispatched by the agent contract acting as a proxy
19/// for the XCM origin.
20#[derive(Clone, Encode, Decode, PartialEq, RuntimeDebug, TypeInfo)]
21pub enum ContractCall {
22 V1 {
23 /// Target contract address
24 target: [u8; 20],
25 /// ABI-encoded calldata
26 calldata: Vec<u8>,
27 /// Include ether held by the agent contract
28 value: u128,
29 /// Maximum gas to forward to target contract
30 gas: u64,
31 },
32}