referrerpolicy=no-referrer-when-downgrade

frame_support/traits/tokens/fungible/
lifetime.rs

1// This file is part of Substrate.
2//
3// Copyright (C) Parity Technologies (UK) Ltd.
4// SPDX-License-Identifier: Apache-2.0
5//
6// Licensed under the Apache License, Version 2.0 (the "License");
7// you may not use this file except in compliance with the License.
8// You may obtain a copy of the License at
9//
10// 	http://www.apache.org/licenses/LICENSE-2.0
11//
12// Unless required by applicable law or agreed to in writing, software
13// distributed under the License is distributed on an "AS IS" BASIS,
14// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15// See the License for the specific language governing permissions and
16// limitations under the License.
17
18//! Traits for creating fungible assets.
19//!
20//! This module initially exists to support lifetime functionality in the
21//! [`crate::traits::tokens::fungible::ItemOf`] adapter for [`crate::traits::tokens::fungibles`].
22
23use super::Inspect;
24use sp_runtime::DispatchResult;
25
26/// Trait for providing the ability to create a new fungible asset.
27pub trait Create<AccountId>: Inspect<AccountId> {
28	/// Create a new fungible asset.
29	///
30	/// - `admin`: The account that will be set as the admin of the asset.
31	/// - `is_sufficient`: If `true`, the asset is sufficient and an account can exist with a zero
32	///   balance. If `false`, the asset is non-sufficient and accounts must have a minimum balance.
33	/// - `min_balance`: The minimum balance required for non-sufficient assets.
34	fn create(admin: AccountId, is_sufficient: bool, min_balance: Self::Balance) -> DispatchResult;
35}