tnt-core-bindings

Crates.iotnt-core-bindings
lib.rstnt-core-bindings
version0.7.2
created_at2025-12-10 09:42:10.321362+00
updated_at2026-01-23 22:45:09.498203+00
descriptionRust bindings for TNT Core Solidity contracts (Tangle restaking protocol)
homepagehttps://tangle.tools
repositoryhttps://github.com/tangle-network/tnt-core
max_upload_size
id1977753
size11,783,025
(drewstone)

documentation

https://docs.rs/tnt-core-bindings

README

tnt-core-bindings

Rust bindings for TNT Core Solidity contracts, generated using Alloy.

Installation

[dependencies]
tnt-core-bindings = "0.1"

Usage

use alloy::providers::ProviderBuilder;
use tnt_core_bindings::{ITangle, IMultiAssetDelegation};

#[tokio::main]
async fn main() -> eyre::Result<()> {
    let provider = ProviderBuilder::new()
        .on_builtin("https://rpc.tangle.tools")
        .await?;

    // Interact with the Tangle contract
    let tangle = ITangle::new(tangle_address, &provider);
    let blueprint = tangle.getBlueprint(0.into()).call().await?;
    println!("Blueprint owner: {:?}", blueprint.owner);

    // Interact with MultiAssetDelegation interface (facet ABI)
    let mad = IMultiAssetDelegation::new(mad_address, &provider);
    let operator = mad.operators(operator_address).call().await?;
    println!("Operator stake: {:?}", operator.stake);

    Ok(())
}

Available Bindings

Contract Description
ITangle Main Tangle protocol interface (blueprints, services, jobs)
ITangleFull Full Tangle surface (includes slashing + admin)
ITangleBlueprints Blueprint registration and management
ITangleServices Service lifecycle management
ITangleJobs Job submission and results
ITangleOperators Operator registration and status
ITangleSlashing Slashing mechanism
ITangleRewards Reward distribution
IMultiAssetDelegation Multi-asset staking and delegation (facet ABI)
MultiAssetDelegation Router/diamond management ABI
IBlueprintServiceManager Blueprint service manager interface
IOperatorStatusRegistry Operator status tracking

Raw ABIs

JSON ABIs are available for downstream tooling:

use tnt_core_bindings::abi;

// Access raw ABI JSON strings
let tangle_abi = abi::ITANGLE;
let tangle_full_abi = abi::ITANGLE_FULL;
let mad_abi = abi::IMULTI_ASSET_DELEGATION;

Version Tracking

Each release is tied to a specific TNT Core commit:

use tnt_core_bindings::TNT_CORE_VERSION;

println!("Built from commit: {}", TNT_CORE_VERSION);

Regenerating Bindings

To regenerate bindings from the Solidity source:

cargo xtask gen-bindings

This requires Foundry to be installed.

License

Licensed under either of:

at your option.

Contributing

Contributions are welcome! Please see the main repository for contribution guidelines.

Commit count: 68

cargo fmt