o2-tools 0.3.21-rc

Reusable tooling for trade account and order book contract interactions on Fuel
Documentation
//! Generated bindings and deployment artifacts for the prop-account system.
//!
//! The account oracle and margin pool are represented by their implementation
//! ABIs bound to stable SRC-14 proxy IDs. Prop-account registration lives in
//! the shared trade-account registry.

use fuels::prelude::abigen;

abigen!(
    Contract(
        name = "PropAccountContract",
        abi = "artifacts/prop-account/prop-account-abi.json"
    ),
    Contract(
        name = "PropAccountOracleContract",
        abi = "artifacts/prop-account-oracle/prop-account-oracle-abi.json"
    ),
    Contract(
        name = "PropAccountOracleProxyContract",
        abi = "artifacts/prop-account-oracle-proxy/prop-account-oracle-proxy-abi.json"
    ),
    Contract(
        name = "PropAccountProxyContract",
        abi = "artifacts/prop-account-proxy/prop-account-proxy-abi.json"
    ),
    Contract(
        name = "PropMarginPoolContract",
        abi = "artifacts/prop-margin-pool/prop-margin-pool-abi.json"
    ),
    Contract(
        name = "PropMarginPoolProxyContract",
        abi = "artifacts/prop-margin-pool-proxy/prop-margin-pool-proxy-abi.json"
    ),
    Contract(
        name = "PriceFeedContract",
        abi = "artifacts/price-feed/price-feed-abi.json"
    ),
    Contract(
        name = "PriceFeedProxyContract",
        abi = "artifacts/price-feed-proxy/price-feed-proxy-abi.json"
    ),
);

macro_rules! artifact {
    ($name:ident, $path:literal) => {
        pub const $name: &[u8] = include_bytes!($path);
    };
}

artifact!(
    PROP_ACCOUNT_BYTECODE,
    "../artifacts/prop-account/prop-account.bin"
);
artifact!(
    PROP_ACCOUNT_STORAGE,
    "../artifacts/prop-account/prop-account-storage_slots.json"
);
artifact!(
    PROP_ACCOUNT_ORACLE_BYTECODE,
    "../artifacts/prop-account-oracle/prop-account-oracle.bin"
);
artifact!(
    PROP_ACCOUNT_ORACLE_STORAGE,
    "../artifacts/prop-account-oracle/prop-account-oracle-storage_slots.json"
);
artifact!(
    PROP_ACCOUNT_ORACLE_PROXY_BYTECODE,
    "../artifacts/prop-account-oracle-proxy/prop-account-oracle-proxy.bin"
);
artifact!(
    PROP_ACCOUNT_ORACLE_PROXY_STORAGE,
    "../artifacts/prop-account-oracle-proxy/prop-account-oracle-proxy-storage_slots.json"
);
artifact!(
    PROP_ACCOUNT_PROXY_BYTECODE,
    "../artifacts/prop-account-proxy/prop-account-proxy.bin"
);
artifact!(
    PROP_ACCOUNT_PROXY_STORAGE,
    "../artifacts/prop-account-proxy/prop-account-proxy-storage_slots.json"
);
artifact!(
    PROP_MARGIN_POOL_BYTECODE,
    "../artifacts/prop-margin-pool/prop-margin-pool.bin"
);
artifact!(
    PROP_MARGIN_POOL_STORAGE,
    "../artifacts/prop-margin-pool/prop-margin-pool-storage_slots.json"
);
artifact!(
    PROP_MARGIN_POOL_PROXY_BYTECODE,
    "../artifacts/prop-margin-pool-proxy/prop-margin-pool-proxy.bin"
);
artifact!(
    PROP_MARGIN_POOL_PROXY_STORAGE,
    "../artifacts/prop-margin-pool-proxy/prop-margin-pool-proxy-storage_slots.json"
);
artifact!(
    PRICE_FEED_BYTECODE,
    "../artifacts/price-feed/price-feed.bin"
);
artifact!(
    PRICE_FEED_STORAGE,
    "../artifacts/price-feed/price-feed-storage_slots.json"
);
artifact!(
    PRICE_FEED_PROXY_BYTECODE,
    "../artifacts/price-feed-proxy/price-feed-proxy.bin"
);
artifact!(
    PRICE_FEED_PROXY_STORAGE,
    "../artifacts/price-feed-proxy/price-feed-proxy-storage_slots.json"
);