本文へ移動
    hazBasehazBaseDocs
    DEPLOYMENT / FACTORY

    登録済みの実装から、コントラクトを作成する

    Factory SDKは、登録済みの実装から新しいコントラクトを作成します。実装の種類と初期化条件を指定し、アプリケーションからデプロイを実行できます。

    @hazbase/factory 0.2.1ethers 6.16.0TypeScript

    実行前の準備

    対象チェーン上のFactory、登録済み実装の所有者と種類、初期化関数のシグネチャと引数、実行権限を持つSignerを用意します。型名と初期化条件は、そのFactoryに登録されたものを指定します。

    bash
    npm install --save-exact @hazbase/factory@0.2.1 ethers@6.16.0
    サンプルアプリから始める

    アプリケーションから呼び出す

    接続済みのSignerと登録情報をこの関数に渡すと、初期化の呼び出しデータを生成し、Factory経由でコントラクトを作成できます。サンプルの接続先と引数は、ご利用の環境に合わせて指定してください。

    factory-clone.ts
    import { deployViaFactory, type DeployViaFactoryOptions } from '@hazbase/factory';
    import { getAddress, type Signer } from 'ethers';
    
    type CloneRequest = {
      signer: Signer;
      chainId: number;
      factoryAddress: string;
      implementationOwner: string;
      contractType: string;
      fnSignature: string;
      fnArgs: readonly unknown[];
    };
    
    // Call only after the implementation and its initializer policy are registered.
    export async function createRegisteredClone(request: CloneRequest) {
      if (!request.signer.provider) throw new Error('A connected signer is required.');
      const network = await request.signer.provider.getNetwork();
      if (network.chainId !== BigInt(request.chainId)) throw new Error('Chain mismatch.');
    
      const options = {
        signer: request.signer,
        chainId: request.chainId,
        factoryAddress: getAddress(request.factoryAddress),
        implementationOwner: getAddress(request.implementationOwner),
        contractType: request.contractType,
        fnSignature: request.fnSignature,
        fnArgs: request.fnArgs,
      } satisfies DeployViaFactoryOptions;
    
      const result = await deployViaFactory(options);
      return { address: result.proxy, transactionHash: result.txHash, receipt: result.receipt };
    }
    
    コードをダウンロード

    結果を確認する

    addressは作成したプロキシ、transactionHashは作成トランザクション、receiptは確定した実行結果です。初期化後の名称・管理者・上限なども読み取り、渡した条件との一致を確認できます。

    DeployViaFactoryOptions
    引数・戻り値の正式な仕様