difftreelog
test(ss58Format) fix format address, remove accounts constants
in: master
6 files changed
tests/src/accounts.tsdiffbeforeafterboth--- a/tests/src/accounts.ts
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright 2019-2022 Unique Network (Gibraltar) Ltd.
-// This file is part of Unique Network.
-
-// Unique Network is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-
-// Unique Network is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License
-// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.
-
-export const bobsPublicKey = '5FHneW46xGXgs5mUiveU4sbTyGBzmstUspZC92UhjJM694ty';
-export const alicesPublicKey = '5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY';
-export const ferdiesPublicKey = '5CiPPseXPECbkjWCa6MnjNokrgYjMqmKndv2rSnekmSK2DjL';
-export const nullPublicKey = '5C4hrfjw9DjXZTzV3MwzrrAr9P1MJhSrvWGWqi1eSuyUpnhM';
\ No newline at end of file
tests/src/creditFeesToTreasury.test.tsdiffbeforeafterboth--- a/tests/src/creditFeesToTreasury.test.ts
+++ b/tests/src/creditFeesToTreasury.test.ts
@@ -18,7 +18,6 @@
import chai from 'chai';
import chaiAsPromised from 'chai-as-promised';
import {default as usingApi, submitTransactionAsync, submitTransactionExpectFailAsync} from './substrate/substrate-api';
-import {alicesPublicKey, bobsPublicKey} from './accounts';
import {IKeyringPair} from '@polkadot/types/types';
import {
createCollectionExpectSuccess,
@@ -71,17 +70,16 @@
});
it('Total issuance does not change', async () => {
- await usingApi(async (api, privateKeyWrapper) => {
+ await usingApi(async (api) => {
await skipInflationBlock(api);
await waitNewBlocks(api, 1);
const totalBefore = (await api.query.balances.totalIssuance()).toBigInt();
- const alicePrivateKey = privateKeyWrapper('//Alice');
const amount = 1n;
- const transfer = api.tx.balances.transfer(bobsPublicKey, amount);
+ const transfer = api.tx.balances.transfer(bob.address, amount);
- const result = getGenericResult(await submitTransactionAsync(alicePrivateKey, transfer));
+ const result = getGenericResult(await submitTransactionAsync(alice, transfer));
const totalAfter = (await api.query.balances.totalIssuance()).toBigInt();
@@ -91,20 +89,19 @@
});
it('Sender balance decreased by fee+sent amount, Treasury balance increased by fee', async () => {
- await usingApi(async (api, privateKeyWrapper) => {
+ await usingApi(async (api) => {
await skipInflationBlock(api);
await waitNewBlocks(api, 1);
- const alicePrivateKey = privateKeyWrapper('//Alice');
const treasuryBalanceBefore: bigint = (await api.query.system.account(TREASURY)).data.free.toBigInt();
- const aliceBalanceBefore: bigint = (await api.query.system.account(alicesPublicKey)).data.free.toBigInt();
+ const aliceBalanceBefore: bigint = (await api.query.system.account(alice.address)).data.free.toBigInt();
const amount = 1n;
- const transfer = api.tx.balances.transfer(bobsPublicKey, amount);
- const result = getGenericResult(await submitTransactionAsync(alicePrivateKey, transfer));
+ const transfer = api.tx.balances.transfer(bob.address, amount);
+ const result = getGenericResult(await submitTransactionAsync(alice, transfer));
const treasuryBalanceAfter: bigint = (await api.query.system.account(TREASURY)).data.free.toBigInt();
- const aliceBalanceAfter: bigint = (await api.query.system.account(alicesPublicKey)).data.free.toBigInt();
+ const aliceBalanceAfter: bigint = (await api.query.system.account(alice.address)).data.free.toBigInt();
const fee = aliceBalanceBefore - aliceBalanceAfter - amount;
const treasuryIncrease = treasuryBalanceAfter - treasuryBalanceBefore;
@@ -114,19 +111,18 @@
});
it('Treasury balance increased by failed tx fee', async () => {
- await usingApi(async (api, privateKeyWrapper) => {
+ await usingApi(async (api) => {
//await skipInflationBlock(api);
await waitNewBlocks(api, 1);
- const bobPrivateKey = privateKeyWrapper('//Bob');
const treasuryBalanceBefore = (await api.query.system.account(TREASURY)).data.free.toBigInt();
- const bobBalanceBefore = (await api.query.system.account(bobsPublicKey)).data.free.toBigInt();
+ const bobBalanceBefore = (await api.query.system.account(bob.address)).data.free.toBigInt();
- const badTx = api.tx.balances.setBalance(alicesPublicKey, 0, 0);
- await expect(submitTransactionExpectFailAsync(bobPrivateKey, badTx)).to.be.rejected;
+ const badTx = api.tx.balances.setBalance(alice.address, 0, 0);
+ await expect(submitTransactionExpectFailAsync(bob, badTx)).to.be.rejected;
const treasuryBalanceAfter = (await api.query.system.account(TREASURY)).data.free.toBigInt();
- const bobBalanceAfter = (await api.query.system.account(bobsPublicKey)).data.free.toBigInt();
+ const bobBalanceAfter = (await api.query.system.account(bob.address)).data.free.toBigInt();
const fee = bobBalanceBefore - bobBalanceAfter;
const treasuryIncrease = treasuryBalanceAfter - treasuryBalanceBefore;
@@ -140,12 +136,12 @@
await waitNewBlocks(api, 1);
const treasuryBalanceBefore = (await api.query.system.account(TREASURY)).data.free.toBigInt();
- const aliceBalanceBefore = (await api.query.system.account(alicesPublicKey)).data.free.toBigInt();
+ const aliceBalanceBefore = (await api.query.system.account(alice.address)).data.free.toBigInt();
await createCollectionExpectSuccess();
const treasuryBalanceAfter = (await api.query.system.account(TREASURY)).data.free.toBigInt();
- const aliceBalanceAfter = (await api.query.system.account(alicesPublicKey)).data.free.toBigInt();
+ const aliceBalanceAfter = (await api.query.system.account(alice.address)).data.free.toBigInt();
const fee = aliceBalanceBefore - aliceBalanceAfter;
const treasuryIncrease = treasuryBalanceAfter - treasuryBalanceBefore;
@@ -158,11 +154,11 @@
await skipInflationBlock(api);
await waitNewBlocks(api, 1);
- const aliceBalanceBefore: bigint = (await api.query.system.account(alicesPublicKey)).data.free.toBigInt();
+ const aliceBalanceBefore: bigint = (await api.query.system.account(alice.address)).data.free.toBigInt();
await createCollectionExpectSuccess();
- const aliceBalanceAfter: bigint = (await api.query.system.account(alicesPublicKey)).data.free.toBigInt();
+ const aliceBalanceAfter: bigint = (await api.query.system.account(alice.address)).data.free.toBigInt();
const fee = aliceBalanceBefore - aliceBalanceAfter;
expect(fee / UNIQUE < BigInt(Math.ceil(saneMaximumFee + createCollectionDeposit))).to.be.true;
@@ -178,9 +174,9 @@
const collectionId = await createCollectionExpectSuccess();
const tokenId = await createItemExpectSuccess(alice, collectionId, 'NFT');
- const aliceBalanceBefore: bigint = (await api.query.system.account(alicesPublicKey)).data.free.toBigInt();
+ const aliceBalanceBefore: bigint = (await api.query.system.account(alice.address)).data.free.toBigInt();
await transferExpectSuccess(collectionId, tokenId, alice, bob, 1, 'NFT');
- const aliceBalanceAfter: bigint = (await api.query.system.account(alicesPublicKey)).data.free.toBigInt();
+ const aliceBalanceAfter: bigint = (await api.query.system.account(alice.address)).data.free.toBigInt();
const fee = Number(aliceBalanceBefore - aliceBalanceAfter) / Number(UNIQUE);
const expectedTransferFee = 0.1;
tests/src/substrate/substrate-api.tsdiffbeforeafterboth1// Copyright 2019-2022 Unique Network (Gibraltar) Ltd.2// This file is part of Unique Network.34// Unique Network is free software: you can redistribute it and/or modify5// it under the terms of the GNU General Public License as published by6// the Free Software Foundation, either version 3 of the License, or7// (at your option) any later version.89// Unique Network is distributed in the hope that it will be useful,10// but WITHOUT ANY WARRANTY; without even the implied warranty of11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the12// GNU General Public License for more details.1314// You should have received a copy of the GNU General Public License15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.1617import {ApiPromise, WsProvider} from '@polkadot/api';18import {ApiOptions, ApiTypes, SubmittableExtrinsic} from '@polkadot/api/types';19import {ExtrinsicStatus} from '@polkadot/types/interfaces/author/types';20import {EventRecord} from '@polkadot/types/interfaces/system/types';21import {IKeyringPair} from '@polkadot/types/types';22import config from '../config';23import '../interfaces/augment-api-events';24import * as defs from '../interfaces/definitions';25import privateKey from './privateKey';26import promisifySubstrate from './promisify-substrate';27282930function defaultApiOptions(): ApiOptions {31 const wsProvider = new WsProvider(config.substrateUrl);32 return {33 provider: wsProvider, signedExtensions: {34 ContractHelpers: {35 extrinsic: {},36 payload: {},37 },38 FakeTransactionFinalizer: {39 extrinsic: {},40 payload: {},41 },42 },43 rpc: {44 unique: defs.unique.rpc,45 // TODO free RMRK! rmrk: defs.rmrk.rpc,46 eth: {47 feeHistory: {48 description: 'Dummy',49 params: [],50 type: 'u8',51 },52 maxPriorityFeePerGas: {53 description: 'Dummy',54 params: [],55 type: 'u8',56 },57 },58 },59 };60}6162export default async function usingApi<T = void>(action: (api: ApiPromise, privateKeyWrapper: (account: string) => IKeyringPair) => Promise<T>, settings: ApiOptions | undefined = undefined): Promise<T> {63 settings = settings || defaultApiOptions();64 const api: ApiPromise = new ApiPromise(settings);65 let result: T = null as unknown as T;6667 // TODO: Remove, this is temporary: Filter unneeded API output68 // (Jaco promised it will be removed in the next version)69 const consoleErr = console.error;70 const consoleLog = console.log;71 const consoleWarn = console.warn;7273 const outFn = (printer: any) => (...args: any[]) => {74 for (const arg of args) {75 if (typeof arg !== 'string')76 continue;77 if (arg.includes('1000:: Normal connection closure' || arg === 'Normal connection closure'))78 return;79 }80 printer(...args);81 };8283 console.error = outFn(consoleErr.bind(console));84 console.log = outFn(consoleLog.bind(console));85 console.warn = outFn(consoleWarn.bind(console));8687 try {88 await promisifySubstrate(api, async () => {89 if (api) {90 await api.isReadyOrError;91 const ss58Format = (api.registry.getChainProperties())!.toHuman().ss58Format;92 const privateKeyWrapper = (account: string) => privateKey(account, Number(ss58Format));93 result = await action(api, privateKeyWrapper);94 }95 })();96 } finally {97 await api.disconnect();98 console.error = consoleErr;99 console.log = consoleLog;100 console.warn = consoleWarn;101 }102 return result as T;103}104105enum TransactionStatus {106 Success,107 Fail,108 NotReady109}110111function getTransactionStatus(events: EventRecord[], status: ExtrinsicStatus): TransactionStatus {112 if (status.isReady) {113 return TransactionStatus.NotReady;114 }115 if (status.isBroadcast) {116 return TransactionStatus.NotReady;117 }118 if (status.isInBlock || status.isFinalized) {119 if(events.filter(e => e.event.data.method === 'ExtrinsicFailed').length > 0) {120 return TransactionStatus.Fail;121 }122 if(events.filter(e => e.event.data.method === 'ExtrinsicSuccess').length > 0) {123 return TransactionStatus.Success;124 }125 }126127 return TransactionStatus.Fail;128}129130export function executeTransaction(api: ApiPromise, sender: IKeyringPair, transaction: SubmittableExtrinsic<'promise'>): Promise<EventRecord[]> {131 return new Promise(async (res, rej) => {132 try {133 await transaction.signAndSend(sender, ({events, status}) => {134 if (!status.isInBlock && !status.isFinalized) return;135 for (const {event} of events) {136 if (api.events.system.ExtrinsicSuccess.is(event)) {137 res(events);138 } else if (api.events.system.ExtrinsicFailed.is(event)) {139 const {data: [error]} = event;140 if (error.isModule) {141 const decoded = api.registry.findMetaError(error.asModule);142 const {method, section} = decoded;143 rej(new Error(`${section}.${method}`));144 } else {145 rej(new Error(error.toString()));146 }147 }148 }149 });150 } catch (e) {151 rej(e);152 }153 });154}155156export function157submitTransactionAsync(sender: IKeyringPair, transaction: SubmittableExtrinsic<ApiTypes>): Promise<EventRecord[]> {158 /* eslint no-async-promise-executor: "off" */159 return new Promise(async (resolve, reject) => {160 try {161 await transaction.signAndSend(sender, ({events = [], status}) => {162 const transactionStatus = getTransactionStatus(events, status);163164 if (transactionStatus === TransactionStatus.Success) {165 resolve(events);166 } else if (transactionStatus === TransactionStatus.Fail) {167 console.log(`Something went wrong with transaction. Status: ${status}`);168 reject(events);169 }170 });171 } catch (e) {172 console.log('Error: ', e);173 reject(e);174 }175 });176}177178export function submitTransactionExpectFailAsync(sender: IKeyringPair, transaction: SubmittableExtrinsic<ApiTypes>): Promise<EventRecord[]> {179 console.error = () => {};180 console.log = () => {};181182 /* eslint no-async-promise-executor: "off" */183 return new Promise<EventRecord[]>(async function(res, rej) {184 const resolve = (rec: EventRecord[]) => {185 setTimeout(() => {186 res(rec);187 });188 };189 const reject = (errror: any) => {190 setTimeout(() => {191 rej(errror);192 });193 };194 try {195 await transaction.signAndSend(sender, ({events = [], status}) => {196 const transactionStatus = getTransactionStatus(events, status);197198 // console.log('transactionStatus', transactionStatus, 'events', events);199200 if (transactionStatus === TransactionStatus.Success) {201 resolve(events);202 } else if (transactionStatus === TransactionStatus.Fail) {203 reject(events);204 }205 });206 } catch (e) {207 reject(e);208 }209 });210}1// Copyright 2019-2022 Unique Network (Gibraltar) Ltd.2// This file is part of Unique Network.34// Unique Network is free software: you can redistribute it and/or modify5// it under the terms of the GNU General Public License as published by6// the Free Software Foundation, either version 3 of the License, or7// (at your option) any later version.89// Unique Network is distributed in the hope that it will be useful,10// but WITHOUT ANY WARRANTY; without even the implied warranty of11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the12// GNU General Public License for more details.1314// You should have received a copy of the GNU General Public License15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.1617import {ApiPromise, WsProvider} from '@polkadot/api';18import {ApiOptions, ApiTypes, SubmittableExtrinsic} from '@polkadot/api/types';19import {ExtrinsicStatus} from '@polkadot/types/interfaces/author/types';20import {EventRecord} from '@polkadot/types/interfaces/system/types';21import {IKeyringPair} from '@polkadot/types/types';22import config from '../config';23import '../interfaces/augment-api-events';24import * as defs from '../interfaces/definitions';25import privateKey from './privateKey';26import promisifySubstrate from './promisify-substrate';27282930function defaultApiOptions(): ApiOptions {31 const wsProvider = new WsProvider(config.substrateUrl);32 return {33 provider: wsProvider, signedExtensions: {34 ContractHelpers: {35 extrinsic: {},36 payload: {},37 },38 FakeTransactionFinalizer: {39 extrinsic: {},40 payload: {},41 },42 },43 rpc: {44 unique: defs.unique.rpc,45 // TODO free RMRK! rmrk: defs.rmrk.rpc,46 eth: {47 feeHistory: {48 description: 'Dummy',49 params: [],50 type: 'u8',51 },52 maxPriorityFeePerGas: {53 description: 'Dummy',54 params: [],55 type: 'u8',56 },57 },58 },59 };60}6162export default async function usingApi<T = void>(action: (api: ApiPromise, privateKeyWrapper: (account: string) => IKeyringPair) => Promise<T>, settings: ApiOptions | undefined = undefined): Promise<T> {63 settings = settings || defaultApiOptions();64 const api: ApiPromise = new ApiPromise(settings);65 let result: T = null as unknown as T;6667 // TODO: Remove, this is temporary: Filter unneeded API output68 // (Jaco promised it will be removed in the next version)69 const consoleErr = console.error;70 const consoleLog = console.log;71 const consoleWarn = console.warn;7273 const outFn = (printer: any) => (...args: any[]) => {74 for (const arg of args) {75 if (typeof arg !== 'string')76 continue;77 if (arg.includes('1000:: Normal connection closure' || arg === 'Normal connection closure'))78 return;79 }80 printer(...args);81 };8283 console.error = outFn(consoleErr.bind(console));84 console.log = outFn(consoleLog.bind(console));85 console.warn = outFn(consoleWarn.bind(console));8687 try {88 await promisifySubstrate(api, async () => {89 if (api) {90 await api.isReadyOrError;91 const ss58Format = (api.registry.getChainProperties())!.toJSON().ss58Format;92 const privateKeyWrapper = (account: string) => privateKey(account, Number(ss58Format));93 result = await action(api, privateKeyWrapper);94 }95 })();96 } finally {97 await api.disconnect();98 console.error = consoleErr;99 console.log = consoleLog;100 console.warn = consoleWarn;101 }102 return result as T;103}104105enum TransactionStatus {106 Success,107 Fail,108 NotReady109}110111function getTransactionStatus(events: EventRecord[], status: ExtrinsicStatus): TransactionStatus {112 if (status.isReady) {113 return TransactionStatus.NotReady;114 }115 if (status.isBroadcast) {116 return TransactionStatus.NotReady;117 }118 if (status.isInBlock || status.isFinalized) {119 if(events.filter(e => e.event.data.method === 'ExtrinsicFailed').length > 0) {120 return TransactionStatus.Fail;121 }122 if(events.filter(e => e.event.data.method === 'ExtrinsicSuccess').length > 0) {123 return TransactionStatus.Success;124 }125 }126127 return TransactionStatus.Fail;128}129130export function executeTransaction(api: ApiPromise, sender: IKeyringPair, transaction: SubmittableExtrinsic<'promise'>): Promise<EventRecord[]> {131 return new Promise(async (res, rej) => {132 try {133 await transaction.signAndSend(sender, ({events, status}) => {134 if (!status.isInBlock && !status.isFinalized) return;135 for (const {event} of events) {136 if (api.events.system.ExtrinsicSuccess.is(event)) {137 res(events);138 } else if (api.events.system.ExtrinsicFailed.is(event)) {139 const {data: [error]} = event;140 if (error.isModule) {141 const decoded = api.registry.findMetaError(error.asModule);142 const {method, section} = decoded;143 rej(new Error(`${section}.${method}`));144 } else {145 rej(new Error(error.toString()));146 }147 }148 }149 });150 } catch (e) {151 rej(e);152 }153 });154}155156export function157submitTransactionAsync(sender: IKeyringPair, transaction: SubmittableExtrinsic<ApiTypes>): Promise<EventRecord[]> {158 /* eslint no-async-promise-executor: "off" */159 return new Promise(async (resolve, reject) => {160 try {161 await transaction.signAndSend(sender, ({events = [], status}) => {162 const transactionStatus = getTransactionStatus(events, status);163164 if (transactionStatus === TransactionStatus.Success) {165 resolve(events);166 } else if (transactionStatus === TransactionStatus.Fail) {167 console.log(`Something went wrong with transaction. Status: ${status}`);168 reject(events);169 }170 });171 } catch (e) {172 console.log('Error: ', e);173 reject(e);174 }175 });176}177178export function submitTransactionExpectFailAsync(sender: IKeyringPair, transaction: SubmittableExtrinsic<ApiTypes>): Promise<EventRecord[]> {179 console.error = () => {};180 console.log = () => {};181182 /* eslint no-async-promise-executor: "off" */183 return new Promise<EventRecord[]>(async function(res, rej) {184 const resolve = (rec: EventRecord[]) => {185 setTimeout(() => {186 res(rec);187 });188 };189 const reject = (errror: any) => {190 setTimeout(() => {191 rej(errror);192 });193 };194 try {195 await transaction.signAndSend(sender, ({events = [], status}) => {196 const transactionStatus = getTransactionStatus(events, status);197198 // console.log('transactionStatus', transactionStatus, 'events', events);199200 if (transactionStatus === TransactionStatus.Success) {201 resolve(events);202 } else if (transactionStatus === TransactionStatus.Fail) {203 reject(events);204 }205 });206 } catch (e) {207 reject(e);208 }209 });210}tests/src/transfer.test.tsdiffbeforeafterboth--- a/tests/src/transfer.test.ts
+++ b/tests/src/transfer.test.ts
@@ -17,7 +17,6 @@
import {ApiPromise} from '@polkadot/api';
import {IKeyringPair} from '@polkadot/types/types';
import {expect} from 'chai';
-import {alicesPublicKey, bobsPublicKey} from './accounts';
import getBalance from './substrate/get-balance';
import {default as usingApi, submitTransactionAsync} from './substrate/substrate-api';
import {
@@ -47,19 +46,24 @@
let charlie: IKeyringPair;
describe('Integration Test Transfer(recipient, collection_id, item_id, value)', () => {
+ before(async () => {
+ await usingApi(async (api, privateKeyWrapper) => {
+ alice = privateKeyWrapper('//Alice');
+ bob = privateKeyWrapper('//Bob');
+ });
+ });
+
it('Balance transfers and check balance', async () => {
await usingApi(async (api, privateKeyWrapper) => {
- const [alicesBalanceBefore, bobsBalanceBefore] = await getBalance(api, [alicesPublicKey, bobsPublicKey]);
-
- const alicePrivateKey = privateKeyWrapper('//Alice');
+ const [alicesBalanceBefore, bobsBalanceBefore] = await getBalance(api, [alice.address, bob.address]);
- const transfer = api.tx.balances.transfer(bobsPublicKey, 1n);
- const events = await submitTransactionAsync(alicePrivateKey, transfer);
+ const transfer = api.tx.balances.transfer(bob.address, 1n);
+ const events = await submitTransactionAsync(alice, transfer);
const result = getCreateItemResult(events);
// tslint:disable-next-line:no-unused-expression
expect(result.success).to.be.true;
- const [alicesBalanceAfter, bobsBalanceAfter] = await getBalance(api, [alicesPublicKey, bobsPublicKey]);
+ const [alicesBalanceAfter, bobsBalanceAfter] = await getBalance(api, [alice.address, bob.address]);
// tslint:disable-next-line:no-unused-expression
expect(alicesBalanceAfter < alicesBalanceBefore).to.be.true;
@@ -73,7 +77,7 @@
// Find unused address
const pk = await findUnusedAddress(api);
- const badTransfer = api.tx.balances.transfer(bobsPublicKey, 1n);
+ const badTransfer = api.tx.balances.transfer(bob.address, 1n);
// const events = await submitTransactionAsync(pk, badTransfer);
const badTransaction = async () => {
const events = await submitTransactionAsync(pk, badTransfer);
@@ -87,8 +91,6 @@
it('User can transfer owned token', async () => {
await usingApi(async (api, privateKeyWrapper) => {
- const alice = privateKeyWrapper('//Alice');
- const bob = privateKeyWrapper('//Bob');
// nft
const nftCollectionId = await createCollectionExpectSuccess();
const newNftTokenId = await createItemExpectSuccess(alice, nftCollectionId, 'NFT');
@@ -114,8 +116,6 @@
it('Collection admin can transfer owned token', async () => {
await usingApi(async (api, privateKeyWrapper) => {
- const alice = privateKeyWrapper('//Alice');
- const bob = privateKeyWrapper('//Bob');
// nft
const nftCollectionId = await createCollectionExpectSuccess();
await addCollectionAdminExpectSuccess(alice, nftCollectionId, bob.address);
@@ -316,7 +316,6 @@
describe('Transfers to self (potentially over substrate-evm boundary)', () => {
itWeb3('Transfers to self. In case of same frontend', async ({api, privateKeyWrapper}) => {
const collectionId = await createCollectionExpectSuccess({mode: {type: 'Fungible', decimalPoints: 0}});
- const alice = privateKeyWrapper('//Alice');
const aliceProxy = subToEth(alice.address);
const tokenId = await createItemExpectSuccess(alice, collectionId, 'Fungible', {Substrate: alice.address});
await transferExpectSuccess(collectionId, tokenId, alice, {Ethereum: aliceProxy}, 10, 'Fungible');
@@ -328,7 +327,6 @@
itWeb3('Transfers to self. In case of substrate-evm boundary', async ({api, privateKeyWrapper}) => {
const collectionId = await createCollectionExpectSuccess({mode: {type: 'Fungible', decimalPoints: 0}});
- const alice = privateKeyWrapper('//Alice');
const aliceProxy = subToEth(alice.address);
const tokenId = await createItemExpectSuccess(alice, collectionId, 'Fungible', {Substrate: alice.address});
const balanceAliceBefore = await getTokenBalance(api, collectionId, normalizeAccountId(alice), tokenId);
@@ -340,7 +338,6 @@
itWeb3('Transfers to self. In case of inside substrate-evm', async ({api, privateKeyWrapper}) => {
const collectionId = await createCollectionExpectSuccess({mode: {type: 'Fungible', decimalPoints: 0}});
- const alice = privateKeyWrapper('//Alice');
const tokenId = await createItemExpectSuccess(alice, collectionId, 'Fungible', {Substrate: alice.address});
const balanceAliceBefore = await getTokenBalance(api, collectionId, normalizeAccountId(alice), tokenId);
await transferExpectSuccess(collectionId, tokenId, alice, alice , 10, 'Fungible');
@@ -351,7 +348,6 @@
itWeb3('Transfers to self. In case of inside substrate-evm when not enought "Fungibles"', async ({api, privateKeyWrapper}) => {
const collectionId = await createCollectionExpectSuccess({mode: {type: 'Fungible', decimalPoints: 0}});
- const alice = privateKeyWrapper('//Alice');
const tokenId = await createItemExpectSuccess(alice, collectionId, 'Fungible', {Substrate: alice.address});
const balanceAliceBefore = await getTokenBalance(api, collectionId, normalizeAccountId(alice), tokenId);
await transferExpectFailure(collectionId, tokenId, alice, alice , 11);
tests/src/util/helpers.tsdiffbeforeafterboth--- a/tests/src/util/helpers.ts
+++ b/tests/src/util/helpers.ts
@@ -23,7 +23,6 @@
import BN from 'bn.js';
import chai from 'chai';
import chaiAsPromised from 'chai-as-promised';
-import {alicesPublicKey} from '../accounts';
import {default as usingApi, executeTransaction, submitTransactionAsync, submitTransactionExpectFailAsync} from '../substrate/substrate-api';
import {hexToStr, strToUTF16, utf16ToStr} from './util';
import {UpDataStructsRpcCollection, UpDataStructsCreateItemData, UpDataStructsProperty} from '@polkadot/types/lookup';
@@ -40,7 +39,7 @@
export function normalizeAccountId(input: string | AccountId | CrossAccountId | IKeyringPair): CrossAccountId {
if (typeof input === 'string') {
- if (input.length === 48 || input.length === 47) {
+ if (input.length >= 47) {
return {Substrate: input};
} else if (input.length === 42 && input.startsWith('0x')) {
return {Ethereum: input.toLowerCase()};
@@ -363,7 +362,7 @@
// tslint:disable-next-line:no-unused-expression
expect(collection).to.be.not.null;
expect(collectionCountAfter).to.be.equal(collectionCountBefore + 1, 'Error: NFT collection NOT created.');
- expect(collection.owner.toString()).to.be.equal(toSubstrateAddress(alicesPublicKey));
+ expect(collection.owner.toString()).to.be.equal(toSubstrateAddress(alicePrivateKey));
expect(utf16ToStr(collection.name.toJSON() as any)).to.be.equal(name);
expect(utf16ToStr(collection.description.toJSON() as any)).to.be.equal(description);
expect(hexToStr(collection.tokenPrefix.toJSON())).to.be.equal(tokenPrefix);
@@ -411,7 +410,7 @@
// tslint:disable-next-line:no-unused-expression
expect(collection).to.be.not.null;
expect(collectionCountAfter).to.be.equal(collectionCountBefore + 1, 'Error: NFT collection NOT created.');
- expect(collection.owner.toString()).to.be.equal(toSubstrateAddress(alicesPublicKey));
+ expect(collection.owner.toString()).to.be.equal(toSubstrateAddress(alicePrivateKey));
expect(utf16ToStr(collection.name.toJSON() as any)).to.be.equal(name);
expect(utf16ToStr(collection.description.toJSON() as any)).to.be.equal(description);
expect(hexToStr(collection.tokenPrefix.toJSON())).to.be.equal(tokenPrefix);
tests/src/xcmTransfer.test.tsdiffbeforeafterboth--- a/tests/src/xcmTransfer.test.ts
+++ b/tests/src/xcmTransfer.test.ts
@@ -24,7 +24,6 @@
import {getGenericResult} from './util/helpers';
import waitNewBlocks from './substrate/wait-new-blocks';
import getBalance from './substrate/get-balance';
-import {alicesPublicKey} from './accounts';
chai.use(chaiAsPromised);
const expect = chai.expect;
@@ -144,7 +143,7 @@
let balanceBefore: bigint;
await usingApi(async (api) => {
- [balanceBefore] = await getBalance(api, [alicesPublicKey]);
+ [balanceBefore] = await getBalance(api, [alice.address]);
});
await usingApi(async (api) => {
@@ -181,7 +180,7 @@
await usingApi(async (api) => {
// todo do something about instant sealing, where there might not be any new blocks
await waitNewBlocks(api, 3);
- const [balanceAfter] = await getBalance(api, [alicesPublicKey]);
+ const [balanceAfter] = await getBalance(api, [alice.address]);
expect(balanceAfter > balanceBefore).to.be.true;
});
});