git.delta.rocks / unique-network / refs/commits / ab6ae7620c9f

difftreelog

feat support evm accounts in chainspec

Yaroslav Bolyukin2021-04-30parent: #bbe9a34.patch.diff
in: master

2 files changed

modifiednode/src/chain_spec.rsdiffbeforeafterboth
179 .collect(),179 .collect(),
180 },180 },
181 pallet_nft: NftConfig {181 pallet_nft: NftConfig {
182 collection_id: vec![(182 collection_id: vec![],
183 1,
184 Collection {
185 owner: get_account_id_from_seed::<sr25519::Public>("Alice"),
186 mode: CollectionMode::NFT,
187 access: AccessMode::Normal,
188 decimal_points: 0,
189 name: vec![],
190 description: vec![],
191 token_prefix: vec![],
192 mint_mode: false,
193 offchain_schema: vec![],
194 schema_version: SchemaVersion::default(),
195 sponsorship: SponsorshipState::Confirmed(get_account_id_from_seed::<sr25519::Public>("Alice")),
196 const_on_chain_schema: vec![],
197 variable_on_chain_schema: vec![],
198 limits: CollectionLimits::default()
199 },
200 )],
201 nft_item_id: vec![],183 nft_item_id: vec![],
202 fungible_item_id: vec![],184 fungible_item_id: vec![],
203 refungible_item_id: vec![],185 refungible_item_id: vec![],
modifiedpallets/nft/src/lib.rsdiffbeforeafterboth
--- a/pallets/nft/src/lib.rs
+++ b/pallets/nft/src/lib.rs
@@ -604,7 +604,7 @@
             }
 
             for (collection_id, account_id, fungible_item) in &config.fungible_item_id {
-                <Module<T>>::init_fungible_token(*collection_id, account_id, fungible_item);
+                <Module<T>>::init_fungible_token(*collection_id, &T::CrossAccountId::from_sub(account_id.clone()), fungible_item);
             }
 
             for (_num, _c, _i) in &config.refungible_item_id {
@@ -2412,24 +2412,23 @@
         CreatedCollectionCount::put(next_id);
     }
 
-    fn init_nft_token(collection_id: CollectionId, item: &NftItemType<T::AccountId>) {
+    fn init_nft_token(collection_id: CollectionId, item: &NftItemType<T::CrossAccountId>) {
         let current_index = <ItemListIndex>::get(collection_id)
             .checked_add(1)
             .unwrap();
 
-        let item_owner = item.owner.clone();
         Self::add_token_index(collection_id, current_index, &item.owner).unwrap();
 
         <ItemListIndex>::insert(collection_id, current_index);
 
         // Update balance
-        let new_balance = <Balance<T>>::get(collection_id, &item_owner)
+        let new_balance = <Balance<T>>::get(collection_id, item.owner.as_sub())
             .checked_add(1)
             .unwrap();
-        <Balance<T>>::insert(collection_id, item_owner.clone(), new_balance);
+        <Balance<T>>::insert(collection_id, item.owner.as_sub(), new_balance);
     }
 
-    fn init_fungible_token(collection_id: CollectionId, owner: &T::AccountId, item: &FungibleItemType) {
+    fn init_fungible_token(collection_id: CollectionId, owner: &T::CrossAccountId, item: &FungibleItemType) {
         let current_index = <ItemListIndex>::get(collection_id)
             .checked_add(1)
             .unwrap();
@@ -2439,13 +2438,13 @@
         <ItemListIndex>::insert(collection_id, current_index);
 
         // Update balance
-        let new_balance = <Balance<T>>::get(collection_id, owner)
+        let new_balance = <Balance<T>>::get(collection_id, owner.as_sub())
             .checked_add(item.value)
             .unwrap();
-        <Balance<T>>::insert(collection_id, (*owner).clone(), new_balance);
+        <Balance<T>>::insert(collection_id, owner.as_sub(), new_balance);
     }
 
-    fn init_refungible_token(collection_id: CollectionId, item: &ReFungibleItemType<T::AccountId>) {
+    fn init_refungible_token(collection_id: CollectionId, item: &ReFungibleItemType<T::CrossAccountId>) {
         let current_index = <ItemListIndex>::get(collection_id)
             .checked_add(1)
             .unwrap();
@@ -2458,42 +2457,42 @@
         <ItemListIndex>::insert(collection_id, current_index);
 
         // Update balance
-        let new_balance = <Balance<T>>::get(collection_id, &owner)
+        let new_balance = <Balance<T>>::get(collection_id, &owner.as_sub())
             .checked_add(value)
             .unwrap();
-        <Balance<T>>::insert(collection_id, owner.clone(), new_balance);
+        <Balance<T>>::insert(collection_id, owner.as_sub(), new_balance);
     }
 
-    fn add_token_index(collection_id: CollectionId, item_index: TokenId, owner: &T::AccountId) -> DispatchResult {
+    fn add_token_index(collection_id: CollectionId, item_index: TokenId, owner: &T::CrossAccountId) -> DispatchResult {
         // add to account limit
-        if <AccountItemCount<T>>::contains_key(owner) {
+        if <AccountItemCount<T>>::contains_key(owner.as_sub()) {
 
             // bound Owned tokens by a single address
-            let count = <AccountItemCount<T>>::get(owner);
+            let count = <AccountItemCount<T>>::get(owner.as_sub());
             ensure!(count < ChainLimit::get().account_token_ownership_limit, Error::<T>::AddressOwnershipLimitExceeded);
 
-            <AccountItemCount<T>>::insert(owner.clone(), count
+            <AccountItemCount<T>>::insert(owner.as_sub(), count
                 .checked_add(1)
                 .ok_or(Error::<T>::NumOverflow)?);
         }
         else {
-            <AccountItemCount<T>>::insert(owner.clone(), 1);
+            <AccountItemCount<T>>::insert(owner.as_sub(), 1);
         }
 
-        let list_exists = <AddressTokens<T>>::contains_key(collection_id, owner);
+        let list_exists = <AddressTokens<T>>::contains_key(collection_id, owner.as_sub());
         if list_exists {
-            let mut list = <AddressTokens<T>>::get(collection_id, owner);
+            let mut list = <AddressTokens<T>>::get(collection_id, owner.as_sub());
             let item_contains = list.contains(&item_index.clone());
 
             if !item_contains {
                 list.push(item_index.clone());
             }
 
-            <AddressTokens<T>>::insert(collection_id, owner.clone(), list);
+            <AddressTokens<T>>::insert(collection_id, owner.as_sub(), list);
         } else {
             let mut itm = Vec::new();
             itm.push(item_index.clone());
-            <AddressTokens<T>>::insert(collection_id, owner.clone(), itm);
+            <AddressTokens<T>>::insert(collection_id, owner.as_sub(), itm);
         }
 
         Ok(())
@@ -2502,24 +2501,24 @@
     fn remove_token_index(
         collection_id: CollectionId,
         item_index: TokenId,
-        owner: &T::AccountId,
+        owner: &T::CrossAccountId,
     ) -> DispatchResult {
 
         // update counter
-        <AccountItemCount<T>>::insert(owner.clone(), 
-            <AccountItemCount<T>>::get(owner)
+        <AccountItemCount<T>>::insert(owner.as_sub(), 
+            <AccountItemCount<T>>::get(owner.as_sub())
             .checked_sub(1)
             .ok_or(Error::<T>::NumOverflow)?);
 
 
-        let list_exists = <AddressTokens<T>>::contains_key(collection_id, owner);
+        let list_exists = <AddressTokens<T>>::contains_key(collection_id, owner.as_sub());
         if list_exists {
-            let mut list = <AddressTokens<T>>::get(collection_id, owner);
+            let mut list = <AddressTokens<T>>::get(collection_id, owner.as_sub());
             let item_contains = list.contains(&item_index.clone());
 
             if item_contains {
                 list.retain(|&item| item != item_index);
-                <AddressTokens<T>>::insert(collection_id, owner.clone(), list);
+                <AddressTokens<T>>::insert(collection_id, owner.as_sub(), list);
             }
         }
 
@@ -2529,8 +2528,8 @@
     fn move_token_index(
         collection_id: CollectionId,
         item_index: TokenId,
-        old_owner: &T::AccountId,
-        new_owner: &T::AccountId,
+        old_owner: &T::CrossAccountId,
+        new_owner: &T::CrossAccountId,
     ) -> DispatchResult {
         Self::remove_token_index(collection_id, item_index, old_owner)?;
         Self::add_token_index(collection_id, item_index, new_owner)?;