登録済みの実装から、コントラクトを作成する https://docs.hazbase.com/hazbase-factory/ DEPLOYMENT / FACTORY 登録済みの実装から、コントラクトを作成する Factory SDKは、登録済みの実装から新しいコントラクトを作成します。実装の種類と初期化条件を指定し、アプリケーションからデプロイを実行できます。 @hazbase/factory 0.2.1 ethers 6.16.0 TypeScript 実行前の準備 対象チェーン上のFactory、登録済み実装の所有者と種類、初期化関数のシグネチャと引数、実行権限を持つSignerを用意します。型名と初期化条件は、そのFactoryに登録されたものを指定します。 bash npm install --save-exact @hazbase/factory@0.2.1 ethers@6.16.0 サンプルアプリから始める アプリケーションから呼び出す 接続済みのSignerと登録情報をこの関数に渡すと、初期化の呼び出しデータを生成し、Factory経由でコントラクトを作成できます。サンプルの接続先と引数は、ご利用の環境に合わせて指定してください。 factory-clone.ts 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 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 引数・戻り値の正式な仕様