Polkadot Apps
    Preparing search index...

    Manages typed contract interactions backed by a cdm.json manifest.

    Pass a signerManager (e.g. a SignerManager from @polkadot-apps/signer) so the currently logged-in account is used automatically — no manual signer/origin wiring needed.

    import { createChainClient } from "@polkadot-apps/chain-client";
    import { createInkSdk } from "@polkadot-api/sdk-ink";
    import { paseo_asset_hub } from "@polkadot-apps/descriptors/paseo-asset-hub";
    import { ContractManager } from "@polkadot-apps/contracts";
    import cdmJson from "./cdm.json";

    const client = await createChainClient({
    chains: { assetHub: paseo_asset_hub },
    rpcs: { assetHub: ["wss://sys.ibp.network/asset-hub-paseo"] },
    });
    const inkSdk = createInkSdk(client.raw.assetHub, { atBest: true });
    const manager = new ContractManager(cdmJson, inkSdk, {
    signerManager: signerManager, // from @polkadot-apps/signer
    });

    // Uses the host's logged-in account automatically
    const counter = manager.getContract("@example/counter");
    const { value } = await counter.getCount.query();
    await counter.increment.tx();
    Index

    Constructors

    Methods

    • Get a typed contract handle.

      Each method on the returned object has .query() for read-only calls and .tx() for signed transactions. When codegen augments Contracts, passing a known library name returns a fully-typed handle. Without codegen the generic overload still works — methods are accessible but untyped.

      Type Parameters

      • K extends never

      Parameters

      • library: K

      Returns Contract<Contracts[K]>

    • Get a typed contract handle.

      Each method on the returned object has .query() for read-only calls and .tx() for signed transactions. When codegen augments Contracts, passing a known library name returns a fully-typed handle. Without codegen the generic overload still works — methods are accessible but untyped.

      Parameters

      • library: string

      Returns Contract<ContractDef>

    • Create a ContractManager from a raw PolkadotClient.

      Convenience factory that creates the InkSdk internally via dynamic import of @polkadot-api/sdk-ink. The ~4 MB sdk-ink metadata is loaded lazily only when this method is called.

      For size-sensitive apps, prefer the constructor with a pre-created InkSdk to control exactly when @polkadot-api/sdk-ink is loaded.

      Parameters

      • cdmJson: CdmJson

        The CDM manifest.

      • client: PolkadotClient

        A PolkadotClient for the chain where contracts are deployed (e.g., client.raw.assetHub).

      • Optionaloptions: ContractManagerOptions

        Optional configuration (signerManager, defaults).

      Returns Promise<ContractManager>

      import { createChainClient } from "@polkadot-apps/chain-client";
      import { paseo_asset_hub } from "@polkadot-apps/descriptors/paseo-asset-hub";
      import { ContractManager } from "@polkadot-apps/contracts";

      const client = await createChainClient({
      chains: { assetHub: paseo_asset_hub },
      rpcs: { assetHub: ["wss://sys.ibp.network/asset-hub-paseo"] },
      });
      const manager = await ContractManager.fromClient(cdmJson, client.raw.assetHub, {
      signerManager,
      });