ghost-portal/packages/apps-routing/src/contracts.ts
Jaco 7d24f50c38
Bump deps (incl. TS) (#8931)
* Bump deps (incl. TS)

* Adjust ESM packages for Jest

* Yet more Jest hacks

* Make horrible jest config slightly prettier

* Unbump electron

* Fix external package deps
2023-02-03 15:01:45 +02:00

38 lines
1.0 KiB
TypeScript

// Copyright 2017-2023 @polkadot/apps-routing authors & contributors
// SPDX-License-Identifier: Apache-2.0
import type { TFunction } from 'i18next';
import type { ApiPromise } from '@polkadot/api';
import type { Route } from './types';
import Component from '@polkadot/app-contracts';
import { assertReturn } from '@polkadot/util';
function needsApiCheck (api: ApiPromise): boolean {
try {
// needs storageDepositLimit
return assertReturn(api.tx.contracts.instantiateWithCode.meta.args.length === 6, 'Invalid args');
} catch (error) {
console.warn('Contract interface does not support storageDepositLimit, disabling route');
return false;
}
}
export default function create (t: TFunction): Route {
return {
Component,
display: {
needsAccounts: true,
needsApi: [
'tx.contracts.instantiateWithCode'
],
needsApiCheck
},
group: 'developer',
icon: 'compress',
name: 'contracts',
text: t<string>('nav.contracts', 'Contracts', { ns: 'apps-routing' })
};
}