Files
api/packages/api-contract/src/base/Base.ts
T
Jaco e759d32bcf Revert all recent $ renames (#5429)
* Revert "[CI Skip] bump/beta 9.11.4-6-x"

This reverts commit 7ee4f7aaf8.

* Revert "Rename Code .registry to .$registry (#5428)"

This reverts commit dd6826fadd.

* Revert "[CI Skip] bump/beta 9.11.4-5-x"

This reverts commit abc68bf2e2.

* Revert "Convert encodedLength to $encodedLength (#5426)"

This reverts commit ccab89304b.

* Revert "[CI Skip] bump/beta 9.11.4-4-x"

This reverts commit 044465eee4.

* Revert "Rename inspect() to inspectU8a() (#5425)"

This reverts commit 42af205546.

* Revert "[CI Skip] bump/beta 9.11.4-3-x"

This reverts commit 545ad50097.

* Revert "Move .isEmpty to $isEmpty (#5424)"

This reverts commit 6f19084a4d.

* Revert "[CI Skip] bump/beta 9.11.4-2-x"

This reverts commit 4688291ecf.

* Revert "Warn on deprecated getter usage (#5423)"

This reverts commit da1cf9d64e.

* Revert "[CI Skip] bump/beta 9.11.4-1-x"

This reverts commit 96a3ef51f0.

* Revert "Revert "[CI Skip] bump/beta 9.11.4-1-x""

This reverts commit 2eca0730a630d587878f12c141e21ea631dcdd19.

* Revert "Revert "[CI Skip] bump/beta 9.11.4-2-x""

This reverts commit 66284b40692071aa03a1064997c9402fc0b0987c.

* Revert "Revert "[CI Skip] bump/beta 9.11.4-3-x""

This reverts commit 9b820eaefccdb7b51d893000e5480d11e5195e22.

* Revert "Revert "[CI Skip] bump/beta 9.11.4-4-x""

This reverts commit cb5149adf98a5eefd8da61b8793707f85deb7c09.

* Revert "Revert "[CI Skip] bump/beta 9.11.4-5-x""

This reverts commit 489a64439860fefba163695ec36b319dcb1eeddc.

* Revert "Revert "[CI Skip] bump/beta 9.11.4-6-x""

This reverts commit 34a0fd4e2784a1b40ea8e06534d1f39328250e7a.

* Adjust linebreaks

* Adjust isStorageFallback naming

* Fix build
2023-01-19 15:06:29 +02:00

41 lines
1.6 KiB
TypeScript

// Copyright 2017-2023 @polkadot/api authors & contributors
// SPDX-License-Identifier: Apache-2.0
import type { ApiTypes, DecorateMethod } from '@polkadot/api/types';
import type { WeightV2 } from '@polkadot/types/interfaces';
import type { Registry } from '@polkadot/types/types';
import { ApiBase } from '@polkadot/api/base';
import { isFunction } from '@polkadot/util';
import { Abi } from '../Abi';
export abstract class Base<ApiType extends ApiTypes> {
readonly abi: Abi;
readonly api: ApiBase<ApiType>;
protected readonly _decorateMethod: DecorateMethod<ApiType>;
protected readonly _isWeightV1: boolean;
constructor (api: ApiBase<ApiType>, abi: string | Record<string, unknown> | Abi, decorateMethod: DecorateMethod<ApiType>) {
if (!api || !api.isConnected || !api.tx) {
throw new Error('Your API has not been initialized correctly and is not connected to a chain');
} else if (!api.tx.contracts || !isFunction(api.tx.contracts.instantiateWithCode) || api.tx.contracts.instantiateWithCode.meta.args.length !== 6) {
throw new Error('The runtime does not expose api.tx.contracts.instantiateWithCode with storageDepositLimit');
} else if (!api.call.contractsApi || !isFunction(api.call.contractsApi.call)) {
throw new Error('Your runtime does not expose the api.call.contractsApi.call runtime interfaces');
}
this.abi = abi instanceof Abi
? abi
: new Abi(abi, api.registry.getChainProperties());
this.api = api;
this._decorateMethod = decorateMethod;
this._isWeightV1 = !api.registry.createType<WeightV2>('Weight').proofSize;
}
public get registry (): Registry {
return this.api.registry;
}
}