diff --git a/CHANGELOG.md b/CHANGELOG.md index 08b1d98617..18c727d22c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ Changes: - Convert `api-contract` usage of `api.rpc.*` to `api.call.*` - Drop support for contract runtimes without `storageDepositLimit` (runtime `contractsApi` only has unversioned support for latest) - Export `api.rx.call.*` for internal usage (derive, contracts) +- Remove old-style param passing as opposed to options in `api-contract` ## 8.14.1 Jul 23, 2022 diff --git a/packages/api-contract/src/base/Contract.ts b/packages/api-contract/src/base/Contract.ts index aa90223fff..8409beca2f 100644 --- a/packages/api-contract/src/base/Contract.ts +++ b/packages/api-contract/src/base/Contract.ts @@ -16,7 +16,7 @@ import { ApiBase } from '@polkadot/api/base'; import { BN, BN_HUNDRED, BN_ONE, BN_ZERO, bnToBn, isFunction, isUndefined, logger } from '@polkadot/util'; import { Abi } from '../Abi'; -import { applyOnEvent, extractOptions, isOptions } from '../util'; +import { applyOnEvent } from '../util'; import { Base } from './Base'; import { withMeta } from './util'; @@ -31,18 +31,14 @@ const ERROR_NO_CALL = 'Your node does not expose the contracts.call RPC. This is const l = logger('Contract'); function createQuery (meta: AbiMessage, fn: (origin: string | AccountId | Uint8Array, options: ContractOptions, params: unknown[]) => ContractCallResult): ContractQuery { - return withMeta(meta, (origin: string | AccountId | Uint8Array, options: bigint | string | number | BN | ContractOptions, ...params: unknown[]): ContractCallResult => - isOptions(options) - ? fn(origin, options, params) - : fn(origin, ...extractOptions(options, params)) + return withMeta(meta, (origin: string | AccountId | Uint8Array, options: ContractOptions, ...params: unknown[]): ContractCallResult => + fn(origin, options, params) ); } function createTx (meta: AbiMessage, fn: (options: ContractOptions, params: unknown[]) => SubmittableExtrinsic): ContractTx { - return withMeta(meta, (options: bigint | string | number | BN | ContractOptions, ...params: unknown[]): SubmittableExtrinsic => - isOptions(options) - ? fn(options, params) - : fn(...extractOptions(options, params)) + return withMeta(meta, (options: ContractOptions, ...params: unknown[]): SubmittableExtrinsic => + fn(options, params) ); } diff --git a/packages/api-contract/src/base/types.ts b/packages/api-contract/src/base/types.ts index 251bbccebf..89ef8bcc05 100644 --- a/packages/api-contract/src/base/types.ts +++ b/packages/api-contract/src/base/types.ts @@ -5,7 +5,6 @@ import type { Observable } from 'rxjs'; import type { SubmittableExtrinsic } from '@polkadot/api/submittable/types'; import type { ApiTypes, ObsInnerType } from '@polkadot/api/types'; import type { AccountId } from '@polkadot/types/interfaces'; -import type { BN } from '@polkadot/util'; import type { AbiMessage, BlueprintOptions, ContractCallOutcome, ContractOptions } from '../types'; export interface MessageMeta { @@ -14,26 +13,18 @@ export interface MessageMeta { export interface BlueprintDeploy extends MessageMeta { (options: BlueprintOptions, ...params: unknown[]): SubmittableExtrinsic; - // @deprecated Use options form (to be dropped in a major update) - (value: bigint | string | number | BN, gasLimit: bigint | string | number | BN, ...params: unknown[]): SubmittableExtrinsic; } export interface ContractQuery extends MessageMeta { (origin: AccountId | string | Uint8Array, options: ContractOptions, ...params: unknown[]): ContractCallResult; - // @deprecated Use options form (to be dropped in a major update) - (origin: AccountId | string | Uint8Array, value: bigint | BN | string | number, gasLimit: bigint | BN | string | number, ...params: unknown[]): ContractCallResult; } export interface ContractTx extends MessageMeta { (options: ContractOptions, ...params: unknown[]): SubmittableExtrinsic; - // @deprecated Use options form (to be dropped in a major update) - (value: bigint | BN | string | number, gasLimit: bigint | BN | string | number, ...params: unknown[]): SubmittableExtrinsic; } export interface ContractGeneric { (messageOrId: AbiMessage | string | number, options: O, ...params: unknown[]): T; - // @deprecated Use options form (to be dropped in a major update) - (messageOrId: AbiMessage | string | number, value: bigint | BN | string | number, gasLimit: bigint | BN | string | number, ...params: unknown[]): T; } export type ContractCallResult = ApiType extends 'rxjs' diff --git a/packages/api-contract/src/base/util.ts b/packages/api-contract/src/base/util.ts index 57a3a4ad25..0c448f2690 100644 --- a/packages/api-contract/src/base/util.ts +++ b/packages/api-contract/src/base/util.ts @@ -4,7 +4,6 @@ import type { SubmittableResult } from '@polkadot/api'; import type { SubmittableExtrinsic } from '@polkadot/api/submittable/types'; import type { ApiTypes } from '@polkadot/api/types'; -import type { BN } from '@polkadot/util'; import type { AbiConstructor, AbiMessage, BlueprintOptions } from '../types'; import type { BlueprintDeploy, ContractGeneric } from './types'; @@ -12,8 +11,6 @@ import { Bytes } from '@polkadot/types'; import { compactAddLength, u8aToU8a } from '@polkadot/util'; import { randomAsU8a } from '@polkadot/util-crypto'; -import { extractOptions, isOptions } from '../util'; - export const EMPTY_SALT = new Uint8Array(); export function withMeta (meta: AbiMessage, creator: Omit): T { @@ -23,18 +20,14 @@ export function withMeta (meta: AbiMessage, cre } export function createBluePrintTx (meta: AbiMessage, fn: (options: BlueprintOptions, params: unknown[]) => SubmittableExtrinsic): BlueprintDeploy { - return withMeta(meta, (options: bigint | string | number | BN | BlueprintOptions, ...params: unknown[]): SubmittableExtrinsic => - isOptions(options) - ? fn(options, params) - : fn(...extractOptions(options, params)) + return withMeta(meta, (options: BlueprintOptions, ...params: unknown[]): SubmittableExtrinsic => + fn(options, params) ); } export function createBluePrintWithId (fn: (constructorOrId: AbiConstructor | string | number, options: BlueprintOptions, params: unknown[]) => T): ContractGeneric { - return (constructorOrId: AbiConstructor | string | number, options: bigint | string | number | BN | BlueprintOptions, ...params: unknown[]): T => - isOptions(options) - ? fn(constructorOrId, options, params) - : fn(constructorOrId, ...extractOptions(options, params)); + return (constructorOrId: AbiConstructor | string | number, options: BlueprintOptions, ...params: unknown[]): T => + fn(constructorOrId, options, params); } export function encodeSalt (salt: Uint8Array | string | null = randomAsU8a()): Uint8Array { diff --git a/packages/api-contract/src/checkTypes.manual.ts b/packages/api-contract/src/checkTypes.manual.ts index 4722fd68bf..b0ec816434 100644 --- a/packages/api-contract/src/checkTypes.manual.ts +++ b/packages/api-contract/src/checkTypes.manual.ts @@ -14,12 +14,8 @@ import abiIncrementer from './test/contracts/ink/v0/incrementer.json' assert { t async function checkBlueprint (api: ApiPromise, pairs: TestKeyringMap): Promise { const blueprint = new BlueprintPromise(api, abiIncrementer as Record, '0x1234'); - // new style await blueprint.tx.new({ gasLimit: 456, salt: '0x1234', value: 123 }, 42).signAndSend(pairs.bob); await blueprint.tx.new({ gasLimit: 456, value: 123 }, 42).signAndSend(pairs.bob); - - // old style - await blueprint.tx.new(123, 456, 42).signAndSend(pairs.bob); } async function checkContract (api: ApiPromise, pairs: TestKeyringMap): Promise { @@ -27,11 +23,9 @@ async function checkContract (api: ApiPromise, pairs: TestKeyringMap): Promise { diff --git a/packages/api-contract/src/util.ts b/packages/api-contract/src/util.ts index b0aab8afd0..22524519a3 100644 --- a/packages/api-contract/src/util.ts +++ b/packages/api-contract/src/util.ts @@ -3,15 +3,9 @@ import type { SubmittableResult } from '@polkadot/api'; import type { EventRecord } from '@polkadot/types/interfaces'; -import type { BN } from '@polkadot/util'; -import type { BlueprintOptions, ContractOptions } from './types'; - -import { isBigInt, isBn, isNumber, isString } from '@polkadot/util'; type ContractEvents = 'CodeStored' | 'ContractEmitted' | 'ContractExecution' | 'Instantiated'; -type TOptions = BlueprintOptions | ContractOptions; - export function applyOnEvent (result: SubmittableResult, types: ContractEvents[], fn: (records: EventRecord[]) => T): T | undefined { if (result.isInBlock || result.isFinalized) { const records = result.filterRecords('contracts', types); @@ -23,13 +17,3 @@ export function applyOnEvent (result: SubmittableResult, types: ContractEven return undefined; } - -export function isOptions (options: bigint | string | number | BN | T): options is T { - return !(isBn(options) || isBigInt(options) || isNumber(options) || isString(options)); -} - -export function extractOptions (value: bigint | string | number | BN, params: unknown[]): [T, unknown[]] { - const gasLimit = params.shift() as BN; - - return [{ gasLimit, value } as T, params]; -}