iota_types/stardust/output/
foundry.rs

1// Copyright (c) 2024 IOTA Stiftung
2// SPDX-License-Identifier: Apache-2.0
3
4use iota_protocol_config::ProtocolConfig;
5use iota_stardust_sdk::types::block::output::{FoundryOutput, OutputId};
6
7use crate::{
8    base_types::{ObjectID, SequenceNumber, TxContext},
9    object::Object,
10    stardust::{address::stardust_to_iota_address, coin_type::CoinType},
11};
12
13pub fn create_foundry_amount_coin(
14    output_id: &OutputId,
15    foundry: &FoundryOutput,
16    tx_context: &TxContext,
17    version: SequenceNumber,
18    protocol_config: &ProtocolConfig,
19    coin_type: &CoinType,
20) -> anyhow::Result<Object> {
21    crate::stardust::output::create_coin(
22        ObjectID::new(output_id.hash()),
23        stardust_to_iota_address(*foundry.alias_address())?,
24        foundry.amount(),
25        tx_context,
26        version,
27        protocol_config,
28        coin_type,
29    )
30}