From 361b516d69f6a5a565998ba762b272b0eced80e1 Mon Sep 17 00:00:00 2001 From: Trubnikov Sergey Date: Mon, 24 Apr 2023 11:19:36 +0000 Subject: [PATCH] feat: dispatch call to Native fingible --- --- a/pallets/common/src/dispatch.rs +++ b/pallets/common/src/dispatch.rs @@ -94,9 +94,6 @@ /// * `handle` - Collection handle. fn dispatch(handle: CollectionHandle) -> Self; - /// Get the collection handle for the corresponding implementation. - fn into_inner(self) -> CollectionHandle; - /// Get the implementation of [`CommonCollectionOperations`]. fn as_dyn(&self) -> &dyn CommonCollectionOperations; } --- a/pallets/common/src/lib.rs +++ b/pallets/common/src/lib.rs @@ -125,11 +125,7 @@ impl CollectionHandle { /// Same as [CollectionHandle::new] but with an explicit gas limit. pub fn new_with_gas_limit(id: CollectionId, gas_limit: u64) -> Option { - >::get(id).map(|collection| Self { - id, - collection, - recorder: SubstrateRecorder::new(gas_limit), - }) + Self::new_with_recorder(id, SubstrateRecorder::new(gas_limit)) } /// Same as [CollectionHandle::new] but with an existed [`SubstrateRecorder`]. --- a/runtime/common/dispatch.rs +++ b/runtime/common/dispatch.rs @@ -118,15 +118,6 @@ } } - fn into_inner(self) -> CollectionHandle { - match self { - Self::Fungible(f) => f.into_inner(), - Self::Nonfungible(f) => f.into_inner(), - Self::Refungible(f) => f.into_inner(), - Self::NativeFungible(f) => f.into_inner(), - } - } - fn as_dyn(&self) -> &dyn CommonCollectionOperations { match self { Self::Fungible(h) => h, @@ -189,7 +180,7 @@ Self::Fungible(h) => h.call(handle), Self::Nonfungible(h) => h.call(handle), Self::Refungible(h) => h.call(handle), - Self::NativeFungible(f) => todo!(), + Self::NativeFungible(h) => h.call(handle), } } else if let Some((collection_id, token_id)) = ::EvmTokenAddressMapping::address_to_token( --- a/tests/src/eth/fungible.test.ts +++ b/tests/src/eth/fungible.test.ts @@ -33,7 +33,7 @@ 'substrate' as const, 'ethereum' as const, ].map(testCase => { - itEth(`Can perform mintCross() for ${testCase} address`, async ({helper}) => { + itEth.only(`Can perform mintCross() for ${testCase} address`, async ({helper}) => { // 1. Create receiver depending on the test case: const receiverEth = helper.eth.createAccount(); const receiverCrossEth = helper.ethCrossAccount.fromAddress(receiverEth); --- a/tests/src/eth/nativeFungible.test.ts +++ b/tests/src/eth/nativeFungible.test.ts @@ -38,7 +38,6 @@ const collectionAddress = helper.ethAddress.fromCollectionId(0); const contract = await helper.ethNativeContract.collection(collectionAddress, 'ft', owner); - await contract.methods.approve(spender, 100).send({from: owner}); }); }); \ No newline at end of file --- a/tests/src/eth/util/playgrounds/unique.dev.ts +++ b/tests/src/eth/util/playgrounds/unique.dev.ts @@ -142,7 +142,7 @@ async collection(address: string, mode: TCollectionMode, caller?: string, mergeDeprecated = false) { let abi; - if (address === '0' && mode === 'ft') { + if (address === '0x17C4e6453cC49aaAAEaCA894E6d9683e00000000' && mode === 'ft') { abi = nativeFungibleAbi; } else { abi ={ -- gitstuff