git.delta.rocks / unique-network / refs/commits / 95c88d307c6b

difftreelog

eth/collectionProperties migrated

rkv2022-09-28parent: #f0eacde.patch.diff
in: master

1 file changed

modifiedtests/src/eth/collectionProperties.test.tsdiffbeforeafterboth
before · tests/src/eth/collectionProperties.test.ts
1import {addCollectionAdminExpectSuccess, createCollectionExpectSuccess} from '../util/helpers';2import {collectionIdToAddress, createEthAccount, createEthAccountWithBalance, GAS_ARGS, itWeb3} from './util/helpers';3import nonFungibleAbi from './nonFungibleAbi.json';4import {expect} from 'chai';5import {executeTransaction} from '../substrate/substrate-api';67describe('EVM collection properties', () => {8  itWeb3('Can be set', async({web3, api, privateKeyWrapper}) => {9    const alice = privateKeyWrapper('//Alice');10    const caller = await createEthAccountWithBalance(api, web3, privateKeyWrapper);11    const collection = await createCollectionExpectSuccess({mode: {type: 'NFT'}});1213    await addCollectionAdminExpectSuccess(alice, collection, {Ethereum: caller});1415    const address = collectionIdToAddress(collection);16    const contract = new web3.eth.Contract(nonFungibleAbi as any, address, {from: caller, ...GAS_ARGS});1718    await contract.methods.setCollectionProperty('testKey', Buffer.from('testValue')).send({from: caller});1920    const [{value}] = (await api.rpc.unique.collectionProperties(collection, ['testKey'])).toHuman()! as any;21    expect(value).to.equal('testValue');22  });23  itWeb3('Can be deleted', async({web3, api, privateKeyWrapper}) => {24    const alice = privateKeyWrapper('//Alice');25    const caller = await createEthAccountWithBalance(api, web3, privateKeyWrapper);26    const collection = await createCollectionExpectSuccess({mode: {type: 'NFT'}});2728    await executeTransaction(api, alice, api.tx.unique.setCollectionProperties(collection, [{key: 'testKey', value: 'testValue'}]));2930    await addCollectionAdminExpectSuccess(alice, collection, {Ethereum: caller});3132    const address = collectionIdToAddress(collection);33    const contract = new web3.eth.Contract(nonFungibleAbi as any, address, {from: caller, ...GAS_ARGS});3435    await contract.methods.deleteCollectionProperty('testKey').send({from: caller});3637    const result = (await api.rpc.unique.collectionProperties(collection, ['testKey'])).toJSON()! as any;38    expect(result.length).to.equal(0);39  });40  itWeb3('Can be read', async({web3, api, privateKeyWrapper}) => {41    const alice = privateKeyWrapper('//Alice');42    const caller = createEthAccount(web3);43    const collection = await createCollectionExpectSuccess({mode: {type:'NFT'}});4445    await executeTransaction(api, alice, api.tx.unique.setCollectionProperties(collection, [{key: 'testKey', value: 'testValue'}]));4647    const address = collectionIdToAddress(collection);48    const contract = new web3.eth.Contract(nonFungibleAbi as any, address, {from: caller, ...GAS_ARGS});4950    const value = await contract.methods.collectionProperty('testKey').call();51    expect(value).to.equal(web3.utils.toHex('testValue'));52  });53});
after · tests/src/eth/collectionProperties.test.ts
1import {itEth, usingEthPlaygrounds, expect} from './util/playgrounds';2import {IKeyringPair} from '@polkadot/types/types';34describe('EVM collection properties', () => {5  let donor: IKeyringPair;6  let alice: IKeyringPair;78  before(async function() {9    await usingEthPlaygrounds(async (_helper, privateKey) => {10      donor = privateKey('//Alice');11      [alice] = await _helper.arrange.createAccounts([10n], donor);12    });13  });1415  itEth('Can be set', async({helper}) => {16    const caller = await helper.eth.createAccountWithBalance(donor);17    const collection = await helper.nft.mintCollection(alice, {name: 'name', description: 'test', tokenPrefix: 'test'});18    await collection.addAdmin(alice, {Ethereum: caller});1920    const address = helper.ethAddress.fromCollectionId(collection.collectionId);21    const contract = helper.ethNativeContract.collection(address, 'nft', caller);2223    await contract.methods.setCollectionProperty('testKey', Buffer.from('testValue')).send({from: caller});2425    const raw = (await collection.getData())?.raw;2627    expect(raw.properties[0].value).to.equal('testValue');28  });2930  itEth('Can be deleted', async({helper}) => {31    const caller = await helper.eth.createAccountWithBalance(donor);32    const collection = await helper.nft.mintCollection(alice, {name: 'name', description: 'test', tokenPrefix: 'test', properties: [{key: 'testKey', value: 'testValue'}]});3334    await collection.addAdmin(alice, {Ethereum: caller});3536    const address = helper.ethAddress.fromCollectionId(collection.collectionId);37    const contract = helper.ethNativeContract.collection(address, 'nft', caller);3839    await contract.methods.deleteCollectionProperty('testKey').send({from: caller});4041    const raw = (await collection.getData())?.raw;4243    expect(raw.properties.length).to.equal(0);44  });4546  itEth('Can be read', async({helper}) => {47    const caller = helper.eth.createAccount();48    const collection = await helper.nft.mintCollection(alice, {name: 'name', description: 'test', tokenPrefix: 'test', properties: [{key: 'testKey', value: 'testValue'}]});4950    const address = helper.ethAddress.fromCollectionId(collection.collectionId);51    const contract = helper.ethNativeContract.collection(address, 'nft', caller);5253    const value = await contract.methods.collectionProperty('testKey').call();54    expect(value).to.equal(helper.web3?.utils.toHex('testValue'));55  });56});