multiversx_sc/contract_base/
contract_abi_provider.rs

1
2
3
4
5
6
7
8
9
10
11
12
use crate::{abi::ContractAbi, api::VMApi};

/// Required by contract ABI generators.
/// Provides the same associated types as the `ContractBase`,
/// so that associated types that show up in arguments and results match.
pub trait ContractAbiProvider {
    type Api: VMApi;

    /// Associated function that provides the contract or module ABI.
    /// Since ABI generation is static, no state from the contract is required.
    fn abi() -> ContractAbi;
}