diff --git a/pallet/account-migration/src/lib.rs b/pallet/account-migration/src/lib.rs index 2c2914485..74770c3e8 100644 --- a/pallet/account-migration/src/lib.rs +++ b/pallet/account-migration/src/lib.rs @@ -64,7 +64,7 @@ use pallet_vesting::VestingInfo; use sp_core::sr25519::{Public, Signature}; use sp_runtime::{ traits::{IdentityLookup, Verify}, - AccountId32, + AccountId32, RuntimeDebug, }; use sp_std::prelude::*; @@ -126,7 +126,7 @@ pub mod pallet { // The size of encoded `pallet_asset::AssetAccount` is 18 bytes. #[pallet::storage] #[pallet::getter(fn kton_account_of)] - pub type KtonAccounts<T: Config> = StorageMap<_, Blake2_128Concat, AccountId32, [u8; 18]>; + pub type KtonAccounts<T: Config> = StorageMap<_, Blake2_128Concat, AccountId32, AssetAccount>; /// [`pallet_vesting::Vesting`] data. /// @@ -308,6 +308,29 @@ pub mod pallet { } pub use pallet::*; +// Copy from <https://github.dev/paritytech/substrate/blob/polkadot-v0.9.30/frame/assets/src/types.rs#L115>. +// Due to its visibility. +#[allow(missing_docs)] +#[derive(PartialEq, Eq, Encode, Decode, MaxEncodedLen, TypeInfo, RuntimeDebug)] +pub struct AssetAccount { + balance: Balance, + is_frozen: bool, + reason: ExistenceReason, + extra: (), +} +#[allow(missing_docs)] +#[derive(PartialEq, Eq, Encode, Decode, MaxEncodedLen, TypeInfo, RuntimeDebug)] +pub enum ExistenceReason { + #[codec(index = 0)] + Consumer, + #[codec(index = 1)] + Sufficient, + #[codec(index = 2)] + DepositHeld(Balance), + #[codec(index = 3)] + DepositRefunded, +} + /// Build a Darwinia account migration message. pub fn sr25519_signable_message(spec_name: &[u8], account_id_20: &AccountId20) -> Vec<u8> { [