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

difftreelog

Merge pull request #230 from UniqueNetwork/feature/core-202

kozyrevdev2021-11-17parents: #35c67b7 #0734ff6.patch.diff
in: master
orml-vesting pallet

3 files changed

modifiedruntime/Cargo.tomldiffbeforeafterboth
60 'pallet-transaction-payment/std',60 'pallet-transaction-payment/std',
61 'pallet-transaction-payment-rpc-runtime-api/std',61 'pallet-transaction-payment-rpc-runtime-api/std',
62 'pallet-treasury/std',62 'pallet-treasury/std',
63 'pallet-vesting/std',63 # 'pallet-vesting/std',
64 'pallet-evm/std',64 'pallet-evm/std',
65 'pallet-evm-migration/std',65 'pallet-evm-migration/std',
66 'pallet-evm-contract-helpers/std',66 'pallet-evm-contract-helpers/std',
98 'xcm-builder/std',98 'xcm-builder/std',
99 'xcm-executor/std',99 'xcm-executor/std',
100
101 "orml-vesting/std",
100]102]
101limit-testing = ['pallet-nft/limit-testing', 'nft-data-structs/limit-testing']103limit-testing = ['pallet-nft/limit-testing', 'nft-data-structs/limit-testing']
102104
210git = 'https://github.com/paritytech/substrate.git'212git = 'https://github.com/paritytech/substrate.git'
211branch = 'polkadot-v0.9.12'213branch = 'polkadot-v0.9.12'
212214
213[dependencies.pallet-vesting]215# [dependencies.pallet-vesting]
214default-features = false216# default-features = false
215git = 'https://github.com/paritytech/substrate.git'217# git = 'https://github.com/paritytech/substrate.git'
216branch = 'polkadot-v0.9.12'218# branch = 'polkadot-v0.9.12'
217219
218[dependencies.sp-arithmetic]220[dependencies.sp-arithmetic]
219default-features = false221default-features = false
359branch = 'release-v0.9.12'361branch = 'release-v0.9.12'
360default-features = false362default-features = false
361363
364[dependencies.orml-vesting]
365git = "https://github.com/open-web3-stack/open-runtime-module-library"
366version = "0.4.1-dev"
367default-features = false
362368
363################################################################################369################################################################################
364# local dependencies370# local dependencies
modifiedruntime/src/lib.rsdiffbeforeafterboth
22use sp_runtime::{22use sp_runtime::{
23 Permill, Perbill, Percent, create_runtime_str, generic, impl_opaque_keys,23 Permill, Perbill, Percent, create_runtime_str, generic, impl_opaque_keys,
24 traits::{24 traits::{
25 AccountIdLookup, ConvertInto, BlakeTwo256, Block as BlockT, IdentifyAccount, Verify,25 AccountIdLookup, BlakeTwo256, Block as BlockT, IdentifyAccount, Verify, AccountIdConversion,
26 AccountIdConversion,
27 },26 },
28 transaction_validity::{TransactionSource, TransactionValidity},27 transaction_validity::{TransactionSource, TransactionValidity},
70use fp_rpc::TransactionStatus;69use fp_rpc::TransactionStatus;
71use sp_core::crypto::Public;70use sp_core::crypto::Public;
72use sp_runtime::{71use sp_runtime::{
73 traits::{Dispatchable, PostDispatchInfoOf},72 traits::{BlockNumberProvider, Dispatchable, PostDispatchInfoOf},
74 transaction_validity::TransactionValidityError,73 transaction_validity::TransactionValidityError,
75};74};
7675
515 type Call = Call;514 type Call = Call;
516}515}
516
517pub struct RelayChainBlockNumberProvider<T>(sp_std::marker::PhantomData<T>);
518
519impl<T: cumulus_pallet_parachain_system::Config> BlockNumberProvider
520 for RelayChainBlockNumberProvider<T>
521{
522 type BlockNumber = BlockNumber;
523
524 fn current_block_number() -> Self::BlockNumber {
525 cumulus_pallet_parachain_system::Pallet::<T>::validation_data()
526 .map(|d| d.relay_parent_number)
527 .unwrap_or_default()
528 }
529}
517530
518parameter_types! {531parameter_types! {
519 pub const MinVestedTransfer: Balance = 10 * UNIQUE;532 pub const MinVestedTransfer: Balance = 10 * UNIQUE;
533 pub const MaxVestingSchedules: u32 = 28;
520}534}
521535
522impl pallet_vesting::Config for Runtime {536impl orml_vesting::Config for Runtime {
523 type Event = Event;537 type Event = Event;
524 type Currency = Balances;538 type Currency = pallet_balances::Pallet<Runtime>;
525 type BlockNumberToBalance = ConvertInto;539 type MinVestedTransfer = MinVestedTransfer;
526 type MinVestedTransfer = MinVestedTransfer;540 type VestedTransferOrigin = EnsureSigned<AccountId>;
527 type WeightInfo = ();541 type WeightInfo = ();
528 const MAX_VESTING_SCHEDULES: u32 = 28;542 type MaxVestingSchedules = MaxVestingSchedules;
543 type BlockNumberProvider = RelayChainBlockNumberProvider<Runtime>;
529}544}
530545
531parameter_types! {546parameter_types! {
841 Treasury: pallet_treasury::{Pallet, Call, Storage, Config, Event<T>} = 34,856 Treasury: pallet_treasury::{Pallet, Call, Storage, Config, Event<T>} = 34,
842 Sudo: pallet_sudo::{Pallet, Call, Storage, Config<T>, Event<T>} = 35,857 Sudo: pallet_sudo::{Pallet, Call, Storage, Config<T>, Event<T>} = 35,
843 System: system::{Pallet, Call, Storage, Config, Event<T>} = 36,858 System: system::{Pallet, Call, Storage, Config, Event<T>} = 36,
844 Vesting: pallet_vesting::{Pallet, Call, Config<T>, Storage, Event<T>} = 37,859 Vesting: orml_vesting::{Pallet, Storage, Call, Event<T>, Config<T>} = 37,
860 // Vesting: pallet_vesting::{Pallet, Call, Config<T>, Storage, Event<T>} = 37,
845 // Contracts: pallet_contracts::{Pallet, Call, Storage, Event<T>} = 38,861 // Contracts: pallet_contracts::{Pallet, Call, Storage, Event<T>} = 38,
846862
847 // XCM helpers.863 // XCM helpers.
modifiedtests/src/eth/marketplace/marketplace.test.tsdiffbeforeafterboth
1import {readFile} from 'fs/promises';1import {readFile} from 'fs/promises';
2import {getBalanceSingle, transferBalanceExpectSuccess} from '../../substrate/get-balance';2import {getBalanceSingle, transferBalanceExpectSuccess} from '../../substrate/get-balance';
3import privateKey from '../../substrate/privateKey';3import privateKey from '../../substrate/privateKey';
4import {addToWhiteListExpectSuccess, confirmSponsorshipExpectSuccess, createCollectionExpectSuccess, createFungibleItemExpectSuccess, createItemExpectSuccess, getTokenOwner, setCollectionSponsorExpectSuccess, transferExpectSuccess, transferFromExpectSuccess} from '../../util/helpers';4import {addToAllowListExpectSuccess, confirmSponsorshipExpectSuccess, createCollectionExpectSuccess, createFungibleItemExpectSuccess, createItemExpectSuccess, getTokenOwner, setCollectionSponsorExpectSuccess, transferExpectSuccess, transferFromExpectSuccess} from '../../util/helpers';
5import {collectionIdToAddress, contractHelpers, createEthAccountWithBalance, executeEthTxOnSub, GAS_ARGS, itWeb3, subToEth, subToEthLowercase} from '../util/helpers';5import {collectionIdToAddress, contractHelpers, createEthAccountWithBalance, executeEthTxOnSub, GAS_ARGS, itWeb3, subToEth, subToEthLowercase} from '../util/helpers';
6import {evmToAddress} from '@polkadot/util-crypto';6import {evmToAddress} from '@polkadot/util-crypto';
7import nonFungibleAbi from '../nonFungibleAbi.json';7import nonFungibleAbi from '../nonFungibleAbi.json';
1010
11const PRICE = 2000n;11const PRICE = 2000n;
1212
13describe.only('Matcher contract usage', () => {13describe('Matcher contract usage', () => {
14 itWeb3('With UNQ', async ({api, web3}) => {14 itWeb3('With UNQ', async ({api, web3}) => {
15 const matcherOwner = await createEthAccountWithBalance(api, web3);15 const matcherOwner = await createEthAccountWithBalance(api, web3);
16 const matcherContract = new web3.eth.Contract(JSON.parse((await readFile(`${__dirname}/MarketPlace.abi`)).toString()), undefined, {16 const matcherContract = new web3.eth.Contract(JSON.parse((await readFile(`${__dirname}/MarketPlace.abi`)).toString()), undefined, {
29 await confirmSponsorshipExpectSuccess(collectionId);29 await confirmSponsorshipExpectSuccess(collectionId);
3030
31 await helpers.methods.toggleAllowed(matcher.options.address, subToEth(alice.address), true).send({from: matcherOwner});31 await helpers.methods.toggleAllowed(matcher.options.address, subToEth(alice.address), true).send({from: matcherOwner});
32 await addToWhiteListExpectSuccess(alice, collectionId, evmToAddress(subToEth(alice.address)));32 await addToAllowListExpectSuccess(alice, collectionId, evmToAddress(subToEth(alice.address)));
3333
34 const seller = privateKey('//Bob');34 const seller = privateKey('//Bob');
35 await helpers.methods.toggleAllowed(matcher.options.address, subToEth(seller.address), true).send({from: matcherOwner});35 await helpers.methods.toggleAllowed(matcher.options.address, subToEth(seller.address), true).send({from: matcherOwner});
36 await addToWhiteListExpectSuccess(alice, collectionId, evmToAddress(subToEth(seller.address)));36 await addToAllowListExpectSuccess(alice, collectionId, evmToAddress(subToEth(seller.address)));
3737
38 const tokenId = await createItemExpectSuccess(alice, collectionId, 'NFT', seller.address);38 const tokenId = await createItemExpectSuccess(alice, collectionId, 'NFT', seller.address);
3939
156 await confirmSponsorshipExpectSuccess(collectionId);156 await confirmSponsorshipExpectSuccess(collectionId);
157157
158 await helpers.methods.toggleAllowed(matcher.options.address, subToEth(alice.address), true).send({from: matcherOwner});158 await helpers.methods.toggleAllowed(matcher.options.address, subToEth(alice.address), true).send({from: matcherOwner});
159 await addToWhiteListExpectSuccess(alice, collectionId, evmToAddress(subToEth(alice.address)));159 await addToAllowListExpectSuccess(alice, collectionId, evmToAddress(subToEth(alice.address)));
160160
161 const seller = privateKey('//Bob');161 const seller = privateKey('//Bob');
162 await helpers.methods.toggleAllowed(matcher.options.address, subToEth(seller.address), true).send({from: matcherOwner});162 await helpers.methods.toggleAllowed(matcher.options.address, subToEth(seller.address), true).send({from: matcherOwner});
163 await addToWhiteListExpectSuccess(alice, collectionId, evmToAddress(subToEth(seller.address)));163 await addToAllowListExpectSuccess(alice, collectionId, evmToAddress(subToEth(seller.address)));
164164
165 const tokenId = await createItemExpectSuccess(alice, collectionId, 'NFT', seller.address);165 const tokenId = await createItemExpectSuccess(alice, collectionId, 'NFT', seller.address);
166166