git.delta.rocks / unique-network / refs/commits / 3f41342b2bd0

difftreelog

source

tests/src/transfer.test.ts1.6 KiBsourcehistory
1import createSubstrateApi from "./substrate/substrate-api";2import { Keyring, ApiPromise } from "@polkadot/api";3import {AccountInfo} from "@polkadot/types/interfaces/system";4import { expect } from "chai";5import usingApi from "./substrate/substrate-api";6import promisifySubstrate from "./substrate/promisify-substrate";7import waitNewBlocks from "./substrate/wait-new-blocks";89async function getBalance(api: ApiPromise, accounts: string[]): Promise<bigint[]> {10  const balance = promisifySubstrate(api, (accounts: string[]) => api.query.system.account.multi(accounts));11  const responce = await balance(accounts) as unknown as AccountInfo[];12  return responce.map(r => r.data.free.toBigInt().valueOf());13}1415describe('Transfer', () => {16  it('Balance transfers', async () => {17    const bobsPublicKey = '5FHneW46xGXgs5mUiveU4sbTyGBzmstUspZC92UhjJM694ty';18    const alicesPublicKey = '5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY';19    await usingApi(async api => {20      const [alicesBalanceBefore, bobsBalanceBefore] = await getBalance(api, [alicesPublicKey, bobsPublicKey]);2122      const keyring = new Keyring({ type: 'sr25519' });23      24      const alicePrivateKey = keyring.addFromUri('//Alice');25      26      const transfer = api.tx.balances.transfer(bobsPublicKey, 1n);27      28      const hash = await transfer.signAndSend(alicePrivateKey);2930      await waitNewBlocks(api);31  32      const [alicesBalanceAfter, bobsBalanceAfter]  = await getBalance(api, [alicesPublicKey, bobsPublicKey]);3334      expect(alicesBalanceAfter < alicesBalanceBefore).to.be.true;35      expect(bobsBalanceAfter > bobsBalanceBefore).to.be.true;36    });37  });38});