Skip to content

create

create<M>(options): Promise<LoadedContractFor<M>>

Defined in: src/Contract.ts:1452

Create a contract from individual providers without needing a Client.

This enables the “Delete-Client Test” — building a complete dApp by wiring module factories directly:

Type Parameters

M

M extends ContractModule<unknown, string>

Parameters

options

CreateContractOptions<M>

Returns

Promise<LoadedContractFor<M>>

Example

import * as Wallet from '@no-witness-labs/midday-sdk/Wallet';
import * as Config from '@no-witness-labs/midday-sdk/Config';
import * as Contract from '@no-witness-labs/midday-sdk/Contract';
import * as PrivateState from '@no-witness-labs/midday-sdk/PrivateState';
const wallet = await Wallet.fromSeed(seed, networkConfig);
const { walletProvider, midnightProvider } = wallet.providers();
const publicDataProvider = Config.publicDataProvider(networkConfig);
const privateStateProvider = PrivateState.inMemoryProvider();
const contract = await Contract.create({
path: './contracts/counter',
walletProvider,
midnightProvider,
publicDataProvider,
privateStateProvider,
proofServerUrl: networkConfig.proofServer,
});
await contract.deploy();
await contract.actions.increment();

Since

0.6.0