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    id::UID,
10    object::Object,
11    stardust::{address::stardust_to_iota_address, coin_type::CoinType},
12};
13
14pub fn create_foundry_amount_coin(
15    output_id: &OutputId,
16    foundry: &FoundryOutput,
17    tx_context: &TxContext,
18    version: SequenceNumber,
19    protocol_config: &ProtocolConfig,
20    coin_type: &CoinType,
21) -> anyhow::Result<Object> {
22    crate::stardust::output::create_coin(
23        UID::new(ObjectID::new(output_id.hash())),
24        stardust_to_iota_address(*foundry.alias_address())?,
25        foundry.amount(),
26        tx_context,
27        version,
28        protocol_config,
29        coin_type,
30    )
31}