referrerpolicy=no-referrer-when-downgrade

frame_support/traits/tokens/fungible/
metadata.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//! Inspect and Mutate traits for fungible metadata.
19//!
20//! This module initially exists to support metadata functionality in the
21//! [`crate::traits::tokens::fungible::ItemOf`] adapter for [`crate::traits::tokens::fungibles`].
22
23use crate::dispatch::DispatchResult;
24use alloc::vec::Vec;
25
26/// Trait for inspecting fungible token metadata.
27pub trait Inspect<AccountId>: super::Inspect<AccountId> {
28	/// Returns the name of the token.
29	fn name() -> Vec<u8>;
30	/// Returns the ticker symbol of the token.
31	fn symbol() -> Vec<u8>;
32	/// Returns the number of decimals this asset uses to represent one unit.
33	fn decimals() -> u8;
34}
35
36/// Trait for mutating fungible token metadata.
37pub trait Mutate<AccountId>: Inspect<AccountId> {
38	/// Set the name, symbol and decimals for the token.
39	///
40	/// - `from`: The account of the asset's owner from which the updated deposit will be reserved.
41	/// - `name`: The new name.
42	/// - `symbol`: The new ticker symbol.
43	/// - `decimals`: The new number of decimals this asset uses to represent one unit.
44	fn set(from: &AccountId, name: Vec<u8>, symbol: Vec<u8>, decimals: u8) -> DispatchResult;
45}