Firm up on derive typings & results (#1489)

* Firm up on derive typings & results

* Move assertion (eslint vs ts, round 1, fight!)
This commit is contained in:
Jaco Greeff
2019-10-16 10:13:13 +02:00
committed by GitHub
parent 3f135f2da2
commit db3cb47d05
5 changed files with 131 additions and 125 deletions
+15 -15
View File
@@ -3,37 +3,37 @@
// of the Apache-2.0 license. See the LICENSE file for details.
import { ApiInterfaceRx } from '@polkadot/api/types';
import { Balance } from '@polkadot/types/interfaces';
import { DerivedFees } from '../types';
import BN from 'bn.js';
import { Observable, of } from 'rxjs';
import { map } from 'rxjs/operators';
import { drr } from '../util/drr';
type Result = [BN, BN, BN, BN, BN];
type Result = [Balance, Balance, Balance, Balance, Balance];
function querySubtrateV2 (api: ApiInterfaceRx): Observable<Result> {
function queryV2 (api: ApiInterfaceRx): Observable<Result> {
return of([
// get values from api.const for substrate versions post spec_version: 101
// https://github.com/paritytech/substrate/pull/2883/files#diff-5e5e1c3aec9ddfde0a9054d062ab3db9R131
api.consts.balances.creationFee,
api.consts.balances.existentialDeposit,
api.consts.balances.transactionBaseFee,
api.consts.balances.transactionByteFee,
api.consts.balances.transferFee
]) as any as Observable<Result>;
api.consts.balances.creationFee as Balance,
api.consts.balances.existentialDeposit as Balance,
api.consts.balances.transactionBaseFee as Balance,
api.consts.balances.transactionByteFee as Balance,
api.consts.balances.transferFee as Balance
]);
}
function querySubtrateV1 (api: ApiInterfaceRx): Observable<Result> {
return api.queryMulti([
function queryV1 (api: ApiInterfaceRx): Observable<Result> {
return api.queryMulti<Result>([
// Support older versions and get values from storage
api.query.balances.creationFee,
api.query.balances.existentialDeposit,
api.query.balances.transactionBaseFee,
api.query.balances.transactionByteFee,
api.query.balances.transferFee
]) as any as Observable<Result>;
]);
}
/**
@@ -44,7 +44,7 @@ function querySubtrateV1 (api: ApiInterfaceRx): Observable<Result> {
* <BR>
*
* ```javascript
* api.derive.balances.fees(([creationFee, transferFee]) => {
* api.derive.balances.fees(({ creationFee, transferFee }) => {
* console.log(`The fee for creating a new account on this chain is ${creationFee} units. The fee required for making a transfer is ${transferFee} units.`);
* });
* ```
@@ -53,8 +53,8 @@ export function fees (api: ApiInterfaceRx): () => Observable<DerivedFees> {
return (): Observable<DerivedFees> => {
return (
api.consts.balances
? querySubtrateV2(api)
: querySubtrateV1(api)
? queryV2(api)
: queryV1(api)
).pipe(
map(([creationFee, existentialDeposit, transactionBaseFee, transactionByteFee, transferFee]): DerivedFees => ({
creationFee,