From 22bf06e6e049f001e86a53591eb17ab2f03993f0 Mon Sep 17 00:00:00 2001 From: Jaco Greeff Date: Mon, 17 Jun 2019 10:41:32 +0200 Subject: [PATCH] Remove derive {Struct,Vector}Any (new typing magic) (#1019) * Remove derive {Struct,Vector}Any (new typing magic) * Import ordering * Small lint fix --- packages/api-derive/src/balances/all.ts | 6 ++--- packages/api-derive/src/balances/fees.ts | 16 +++++------ .../api-derive/src/balances/votingBalances.ts | 8 ++---- .../balances/votingBalancesNominatorsFor.ts | 4 +-- packages/api-derive/src/contract/fees.ts | 27 +++++++++---------- .../src/democracy/referendumInfos.ts | 12 ++++----- .../src/democracy/referendumVotesFor.ts | 19 +++++-------- packages/api-derive/src/democracy/votes.ts | 14 +++++----- packages/api-derive/src/session/info.ts | 10 +++---- packages/api-derive/src/staking/info.ts | 2 +- packages/api-derive/src/types.ts | 12 ++++----- 11 files changed, 57 insertions(+), 73 deletions(-) diff --git a/packages/api-derive/src/balances/all.ts b/packages/api-derive/src/balances/all.ts index 098cc4c0d3..611674bc3c 100644 --- a/packages/api-derive/src/balances/all.ts +++ b/packages/api-derive/src/balances/all.ts @@ -5,7 +5,7 @@ import { combineLatest, of, Observable } from 'rxjs'; import { map, switchMap } from 'rxjs/operators'; import { ApiInterface$Rx } from '@polkadot/api/types'; -import { AccountId, AccountIndex, Address, Balance, BalanceLock, BlockNumber, Index, StructAny, Option, VestingSchedule } from '@polkadot/types'; +import { AccountId, AccountIndex, Address, Balance, BalanceLock, BlockNumber, Index, Option, VestingSchedule } from '@polkadot/types'; import { bnMax } from '@polkadot/util'; import { idAndIndex } from '../accounts/idAndIndex'; @@ -44,7 +44,7 @@ function calcBalances ([accountId = EMPTY_ACCOUNT, bestNumber = ZERO, [freeBalan // (most probably due to movements from stash -> controller -> free) const availableBalance = bnMax(ZERO, vestedBalance.sub(lockedBalance)); - return new StructAny({ + return { accountId, accountNonce, availableBalance, @@ -53,7 +53,7 @@ function calcBalances ([accountId = EMPTY_ACCOUNT, bestNumber = ZERO, [freeBalan reservedBalance, vestedBalance, votingBalance: freeBalance.add(reservedBalance) - }) as DerivedBalances; + } as DerivedBalances; } /** diff --git a/packages/api-derive/src/balances/fees.ts b/packages/api-derive/src/balances/fees.ts index 69f25ac937..d9eacd2b2e 100644 --- a/packages/api-derive/src/balances/fees.ts +++ b/packages/api-derive/src/balances/fees.ts @@ -8,7 +8,6 @@ import { DerivedFees } from '../types'; import BN from 'bn.js'; import { Observable } from 'rxjs'; import { map } from 'rxjs/operators'; -import { StructAny } from '@polkadot/types'; import { drr } from '../util/drr'; @@ -34,14 +33,13 @@ export function fees (api: ApiInterface$Rx) { api.query.balances.transactionByteFee, api.query.balances.transferFee ]) as any as Observable<[BN, BN, BN, BN, BN]>).pipe( - map(([creationFee, existentialDeposit, transactionBaseFee, transactionByteFee, transferFee]) => - new StructAny({ - creationFee, - existentialDeposit, - transactionBaseFee, - transactionByteFee, - transferFee - }) as DerivedFees), + map(([creationFee, existentialDeposit, transactionBaseFee, transactionByteFee, transferFee]) => ({ + creationFee, + existentialDeposit, + transactionBaseFee, + transactionByteFee, + transferFee + } as DerivedFees)), drr() ); }; diff --git a/packages/api-derive/src/balances/votingBalances.ts b/packages/api-derive/src/balances/votingBalances.ts index f296a047be..e296c31764 100644 --- a/packages/api-derive/src/balances/votingBalances.ts +++ b/packages/api-derive/src/balances/votingBalances.ts @@ -3,24 +3,20 @@ // of the Apache-2.0 license. See the LICENSE file for details. import { combineLatest, Observable, of } from 'rxjs'; -import { map } from 'rxjs/operators'; import { ApiInterface$Rx } from '@polkadot/api/types'; -import { AccountId, AccountIndex, Address, VectorAny } from '@polkadot/types'; +import { AccountId, AccountIndex, Address } from '@polkadot/types'; import { DerivedBalances } from '../types'; import { drr } from '../util/drr'; import { all } from './all'; export function votingBalances (api: ApiInterface$Rx) { - return (addresses?: Array): Observable> => { + return (addresses?: Array): Observable> => { return ( !addresses || !addresses.length ? of([] as Array) : combineLatest(addresses.map(all(api))) ).pipe( - map((balances) => - new VectorAny(...balances) - ), drr() ); }; diff --git a/packages/api-derive/src/balances/votingBalancesNominatorsFor.ts b/packages/api-derive/src/balances/votingBalancesNominatorsFor.ts index d10b676ae6..53ead1072a 100644 --- a/packages/api-derive/src/balances/votingBalancesNominatorsFor.ts +++ b/packages/api-derive/src/balances/votingBalancesNominatorsFor.ts @@ -5,7 +5,7 @@ import { Observable, of } from 'rxjs'; import { switchMap } from 'rxjs/operators'; import { ApiInterface$Rx } from '@polkadot/api/types'; -import { AccountId, AccountIndex, Address, Vector, VectorAny } from '@polkadot/types'; +import { AccountId, AccountIndex, Address, Vector } from '@polkadot/types'; import { idAndIndex } from '../accounts/idAndIndex'; import { DerivedBalances } from '../types'; @@ -13,7 +13,7 @@ import { drr } from '../util/drr'; import { votingBalances } from './votingBalances'; export function votingBalancesNominatorsFor (api: ApiInterface$Rx) { - return (address: AccountId | AccountIndex | Address | string): Observable> => { + return (address: AccountId | AccountIndex | Address | string): Observable> => { return idAndIndex(api)(address).pipe( switchMap(([accountId]) => accountId diff --git a/packages/api-derive/src/contract/fees.ts b/packages/api-derive/src/contract/fees.ts index 412c1b202c..f4a83b6722 100644 --- a/packages/api-derive/src/contract/fees.ts +++ b/packages/api-derive/src/contract/fees.ts @@ -8,7 +8,6 @@ import { DerivedContractFees } from '../types'; import BN from 'bn.js'; import { Observable } from 'rxjs'; import { map } from 'rxjs/operators'; -import { StructAny } from '@polkadot/types'; import { drr } from '../util/drr'; @@ -29,20 +28,18 @@ export function fees (api: ApiInterface$Rx) { api.query.contract.transferFee, api.query.contract.tombstoneDeposit ]) as any as Observable>).pipe( - map(([callBaseFee, contractFee, createBaseFee, creationFee, rentByteFee, rentDepositOffset, transactionBaseFee, transactionByteFee, transferFee, tombstoneDeposit]) => - new StructAny({ - callBaseFee, - contractFee, - createBaseFee, - creationFee, - rentByteFee, - rentDepositOffset, - transactionBaseFee, - transactionByteFee, - transferFee, - tombstoneDeposit - }) as DerivedContractFees - ), + map(([callBaseFee, contractFee, createBaseFee, creationFee, rentByteFee, rentDepositOffset, transactionBaseFee, transactionByteFee, transferFee, tombstoneDeposit]) => ({ + callBaseFee, + contractFee, + createBaseFee, + creationFee, + rentByteFee, + rentDepositOffset, + transactionBaseFee, + transactionByteFee, + transferFee, + tombstoneDeposit + } as DerivedContractFees)), drr() ); }; diff --git a/packages/api-derive/src/democracy/referendumInfos.ts b/packages/api-derive/src/democracy/referendumInfos.ts index 4418cf5d02..069ffcb271 100644 --- a/packages/api-derive/src/democracy/referendumInfos.ts +++ b/packages/api-derive/src/democracy/referendumInfos.ts @@ -6,24 +6,22 @@ import BN from 'bn.js'; import { Observable, of } from 'rxjs'; import { map } from 'rxjs/operators'; import { ApiInterface$Rx } from '@polkadot/api/types'; -import { Option, ReferendumInfo, VectorAny } from '@polkadot/types'; +import { Option, ReferendumInfo, Vector } from '@polkadot/types'; import { ReferendumInfoExtended } from '../type'; import { drr } from '../util/drr'; import { constructInfo } from './referendumInfo'; export function referendumInfos (api: ApiInterface$Rx) { - return (ids: Array = []): Observable>> => { + return (ids: Array = []): Observable>> => { return ( !ids || !ids.length ? of([] as Array>) - : api.query.democracy.referendumInfoOf.multi(ids) as Observable>> + : api.query.democracy.referendumInfoOf.multi(ids) as Observable>> ).pipe( map((infos) => - new VectorAny( - ...ids.map((id, index) => - constructInfo(id, infos[index]) - ) + ids.map((id, index) => + constructInfo(id, infos[index]) ) ), drr() diff --git a/packages/api-derive/src/democracy/referendumVotesFor.ts b/packages/api-derive/src/democracy/referendumVotesFor.ts index b2fdcfcbbd..66b8cb9bbe 100644 --- a/packages/api-derive/src/democracy/referendumVotesFor.ts +++ b/packages/api-derive/src/democracy/referendumVotesFor.ts @@ -6,7 +6,7 @@ import BN from 'bn.js'; import { combineLatest, Observable, of } from 'rxjs'; import { map, switchMap } from 'rxjs/operators'; import { ApiInterface$Rx } from '@polkadot/api/types'; -import { AccountId, Balance, StructAny, Vector, VectorAny, Vote } from '@polkadot/types'; +import { AccountId, Balance, Vector, Vote } from '@polkadot/types'; import { DerivedReferendumVote } from '../types'; import { drr } from '../util/drr'; @@ -14,7 +14,7 @@ import { votes } from './votes'; import { votingBalances } from '../balances/votingBalances'; export function referendumVotesFor (api: ApiInterface$Rx) { - return (referendumId: BN | number): Observable> => + return (referendumId: BN | number): Observable> => (api.query.democracy.votersFor>(referendumId)).pipe( switchMap((votersFor) => combineLatest([ @@ -24,17 +24,12 @@ export function referendumVotesFor (api: ApiInterface$Rx) { ]) ), map(([votersFor, votes, balances]) => - new VectorAny( - ...votersFor.map((accountId, index): DerivedReferendumVote => - new StructAny({ - accountId, - balance: balances[index].votingBalance || new Balance(0), - vote: votes[index] || new Vote(0) - }) as DerivedReferendumVote - ) - ) + votersFor.map((accountId, index): DerivedReferendumVote => ({ + accountId, + balance: balances[index].votingBalance || new Balance(0), + vote: votes[index] || new Vote(0) + } as DerivedReferendumVote)) ), drr() ); - } diff --git a/packages/api-derive/src/democracy/votes.ts b/packages/api-derive/src/democracy/votes.ts index 059845a425..5c7286f52d 100644 --- a/packages/api-derive/src/democracy/votes.ts +++ b/packages/api-derive/src/democracy/votes.ts @@ -5,18 +5,18 @@ import BN from 'bn.js'; import { Observable, of } from 'rxjs'; import { ApiInterface$Rx } from '@polkadot/api/types'; -import { AccountId, VectorAny, Vote } from '@polkadot/types'; +import { AccountId, Vector, Vote } from '@polkadot/types'; import { drr } from '../util/drr'; export function votes (api: ApiInterface$Rx) { - return (referendumId: BN, accountIds: Array = []): Observable> => { - return ( + return (referendumId: BN, accountIds: Array = []): Observable> => { + return (( !accountIds || !accountIds.length - ? of(new VectorAny()) + ? of([]) : api.query.democracy.voteOf.multi( - accountIds.map(accountId => [referendumId, accountId]) - ) as Observable> - ).pipe(drr()); + accountIds.map((accountId) => [referendumId, accountId]) + ) + ) as Observable>).pipe(drr()); }; } diff --git a/packages/api-derive/src/session/info.ts b/packages/api-derive/src/session/info.ts index fc609b3e19..4e900fb526 100644 --- a/packages/api-derive/src/session/info.ts +++ b/packages/api-derive/src/session/info.ts @@ -8,7 +8,7 @@ import BN from 'bn.js'; import { Observable, combineLatest, of } from 'rxjs'; import { map } from 'rxjs/operators'; import { ApiInterface$Rx } from '@polkadot/api/types'; -import { BlockNumber, Option, StructAny } from '@polkadot/types'; +import { BlockNumber, Option } from '@polkadot/types'; import { drr } from '../util/drr'; import { bestNumber } from '../chain'; @@ -35,7 +35,7 @@ function createDerived0_94 ([bestNumber, [currentIndex, _lastLengthChange, sessi .mul(sessionLength) .add(sessionProgress); - return new StructAny({ + return { currentEra, currentIndex, eraLength, @@ -45,13 +45,13 @@ function createDerived0_94 ([bestNumber, [currentIndex, _lastLengthChange, sessi sessionLength, sessionsPerEra, sessionProgress - }) as DerivedSessionInfo; + } as DerivedSessionInfo; } function createDerived ([sessionsPerEra, [currentIndex, currentEra]]: Result): DerivedSessionInfo { const eraProgress = (currentIndex).mod(sessionsPerEra); - return new StructAny({ + return { currentEra, currentIndex, eraLength: ZERO, @@ -61,7 +61,7 @@ function createDerived ([sessionsPerEra, [currentIndex, currentEra]]: Result): D sessionLength: ZERO, sessionsPerEra, sessionProgress: ZERO - }) as DerivedSessionInfo; + } as DerivedSessionInfo; } /** diff --git a/packages/api-derive/src/staking/info.ts b/packages/api-derive/src/staking/info.ts index a87c13a9aa..54e9306323 100644 --- a/packages/api-derive/src/staking/info.ts +++ b/packages/api-derive/src/staking/info.ts @@ -13,8 +13,8 @@ import { AccountId, BlockNumber, Exposure, Keys, Option, RewardDestination, Sess import { isUndefined } from '@polkadot/util'; import { bestNumber } from '../chain/bestNumber'; -import { drr } from '../util/drr'; import { eraLength } from '../session/eraLength'; +import { drr } from '../util/drr'; function calculateUnlocking (stakingLedger: StakingLedger | undefined, eraLength: BN, bestNumber: BlockNumber): DerivedUnlocking | undefined { if (isUndefined(stakingLedger)) { diff --git a/packages/api-derive/src/types.ts b/packages/api-derive/src/types.ts index be7e225215..0eebd7d6dc 100644 --- a/packages/api-derive/src/types.ts +++ b/packages/api-derive/src/types.ts @@ -3,9 +3,9 @@ // of the Apache-2.0 license. See the LICENSE file for details. import BN from 'bn.js'; -import { AccountId, Balance, Exposure, Index, RewardDestination, StakingLedger, StructAny, ValidatorPrefs, Vote } from '@polkadot/types'; +import { AccountId, Balance, Exposure, Index, RewardDestination, StakingLedger, ValidatorPrefs, Vote } from '@polkadot/types'; -export interface DerivedBalances extends StructAny { +export interface DerivedBalances { accountId: AccountId; accountNonce: Index; freeBalance: BN; @@ -20,7 +20,7 @@ export type DerivedBalancesMap = { [index: string]: DerivedBalances }; -export interface DerivedContractFees extends StructAny { +export interface DerivedContractFees { callBaseFee: BN; contractFee: BN; createBaseFee: BN; @@ -33,7 +33,7 @@ export interface DerivedContractFees extends StructAny { tombstoneDeposit: BN; } -export interface DerivedFees extends StructAny { +export interface DerivedFees { creationFee: BN; existentialDeposit: BN; transactionBaseFee: BN; @@ -41,13 +41,13 @@ export interface DerivedFees extends StructAny { transferFee: BN; } -export interface DerivedReferendumVote extends StructAny { +export interface DerivedReferendumVote { accountId: AccountId; balance: Balance; vote: Vote; } -export interface DerivedSessionInfo extends StructAny { +export interface DerivedSessionInfo { currentEra: BN; currentIndex: BN; eraLength: BN;