Class BoostRegistry

Constructs a new Boost Registry. A registry for base implementations and cloned instances. This contract is used to register base implementations and deploy new instances of those implementations for use within the Boost protocol.

BoostRegistryConfig

BoostRegistry

Hierarchy (view full)

Constructors

Properties

addresses: Record<number, `0x${string}`> = BOOST_REGISTRY_ADDRESSES

A static property representing a map of stringified chain ID's to the address of the deployed implementation on chain

abi: readonly [{
    type: "error";
    inputs: readonly [{
        name: "registryType";
        internalType: "enum ABoostRegistry.RegistryType";
        type: "uint8";
    }, {
        name: "identifier";
        internalType: "bytes32";
        type: "bytes32";
    }];
    name: "AlreadyRegistered";
}, {
    type: "error";
    inputs: readonly [{
        name: "implementation";
        internalType: "address";
        type: "address";
    }];
    name: "NotACloneable";
}, {
    type: "error";
    inputs: readonly [{
        name: "identifier";
        internalType: "bytes32";
        type: "bytes32";
    }];
    name: "NotRegistered";
}, {
    type: "error";
    inputs: readonly [];
    name: "Reentrancy";
}, {
    type: "event";
    anonymous: false;
    inputs: readonly [{
        name: "registryType";
        internalType: "enum ABoostRegistry.RegistryType";
        type: "uint8";
        indexed: true;
    }, {
        name: "identifier";
        internalType: "bytes32";
        type: "bytes32";
        indexed: true;
    }, {
        name: "baseImplementation";
        internalType: "address";
        type: "address";
        indexed: false;
    }, {
        name: "deployedInstance";
        internalType: "contract ACloneable";
        type: "address";
        indexed: false;
    }];
    name: "Deployed";
}, {
    type: "event";
    anonymous: false;
    inputs: readonly [{
        name: "registryType";
        internalType: "enum ABoostRegistry.RegistryType";
        type: "uint8";
        indexed: true;
    }, {
        name: "identifier";
        internalType: "bytes32";
        type: "bytes32";
        indexed: true;
    }, {
        name: "implementation";
        internalType: "address";
        type: "address";
        indexed: false;
    }];
    name: "Registered";
}, {
    type: "function";
    inputs: readonly [{
        name: "type_";
        internalType: "enum ABoostRegistry.RegistryType";
        type: "uint8";
    }, {
        name: "base_";
        internalType: "address";
        type: "address";
    }, {
        name: "name_";
        internalType: "string";
        type: "string";
    }, {
        name: "data_";
        internalType: "bytes";
        type: "bytes";
    }];
    name: "deployClone";
    outputs: readonly [{
        name: "instance";
        internalType: "contract ACloneable";
        type: "address";
    }];
    stateMutability: "nonpayable";
}, {
    type: "function";
    inputs: readonly [{
        name: "identifier_";
        internalType: "bytes32";
        type: "bytes32";
    }];
    name: "getBaseImplementation";
    outputs: readonly [{
        name: "implementation";
        internalType: "contract ACloneable";
        type: "address";
    }];
    stateMutability: "view";
}, {
    type: "function";
    inputs: readonly [{
        name: "identifier_";
        internalType: "bytes32";
        type: "bytes32";
    }];
    name: "getClone";
    outputs: readonly [{
        name: "clone";
        internalType: "struct ABoostRegistry.Clone";
        type: "tuple";
        components: readonly [{
            name: "baseType";
            internalType: "enum ABoostRegistry.RegistryType";
            type: "uint8";
        }, {
            name: "instance";
            internalType: "contract ACloneable";
            type: "address";
        }, {
            name: "deployer";
            internalType: "address";
            type: "address";
        }, {
            name: "name";
            internalType: "string";
            type: "string";
        }];
    }];
    stateMutability: "view";
}, {
    type: "function";
    inputs: readonly [{
        name: "type_";
        internalType: "enum ABoostRegistry.RegistryType";
        type: "uint8";
    }, {
        name: "base_";
        internalType: "address";
        type: "address";
    }, {
        name: "deployer_";
        internalType: "address";
        type: "address";
    }, {
        name: "name_";
        internalType: "string";
        type: "string";
    }];
    name: "getCloneIdentifier";
    outputs: readonly [{
        name: "identifier";
        internalType: "bytes32";
        type: "bytes32";
    }];
    stateMutability: "pure";
}, {
    type: "function";
    inputs: readonly [{
        name: "deployer_";
        internalType: "address";
        type: "address";
    }];
    name: "getClones";
    outputs: readonly [{
        name: "";
        internalType: "bytes32[]";
        type: "bytes32[]";
    }];
    stateMutability: "view";
}, {
    type: "function";
    inputs: readonly [{
        name: "type_";
        internalType: "enum ABoostRegistry.RegistryType";
        type: "uint8";
    }, {
        name: "name_";
        internalType: "string";
        type: "string";
    }];
    name: "getIdentifier";
    outputs: readonly [{
        name: "identifier";
        internalType: "bytes32";
        type: "bytes32";
    }];
    stateMutability: "pure";
}, {
    type: "function";
    inputs: readonly [{
        name: "type_";
        internalType: "enum ABoostRegistry.RegistryType";
        type: "uint8";
    }, {
        name: "name_";
        internalType: "string";
        type: "string";
    }, {
        name: "implementation_";
        internalType: "address";
        type: "address";
    }];
    name: "register";
    outputs: readonly [];
    stateMutability: "nonpayable";
}, {
    type: "function";
    inputs: readonly [{
        name: "interfaceId";
        internalType: "bytes4";
        type: "bytes4";
    }];
    name: "supportsInterface";
    outputs: readonly [{
        name: "";
        internalType: "bool";
        type: "bool";
    }];
    stateMutability: "view";
}]
_payload: undefined | never[]

The deployable payload used either for contract construction or initialization

_config: Config
_address: undefined | `0x${string}`

The internally managed address for this contract

_account?: Account

If it exists, Viem Local Account, if in a Node environment

Accessors

  • get addresses(): Record<number, `0x${string}`>
  • A getter that will return Boost registry's static addresses by numerical chain ID

    Returns Record<number, `0x${string}`>

  • get address(): undefined | `0x${string}`
  • A getter returning this contract's deployed address, if it exists.

    Returns undefined | `0x${string}`

Methods

  • Register a new base implementation of a given type

    Parameters

    • registryType: RegistryType

      The base type for the implementation

    • name: string

      A name for the implementation (must be unique within the given type)

    • implementation: `0x${string}`

      The address of the implementation contract

    • Optionalparams: Partial<Omit<UnionCompute<UnionStrictOmit<SimulateContractParameters<Abi, string, readonly unknown[], Chain, Chain, (`0x${string}` | Account)>, "chain">> & ChainIdParameter<Config, number> & ConnectorParameter,
          | "address"
          | "abi"
          | "functionName"
          | "args">>

      Optional params to provide the underlying Viem contract call

    Returns Promise<void>

    await registry.register(ContractAction.registryType, 'ContractAction', ContractAction.base)
    
  • Parameters

    • registryType: RegistryType
    • name: string
    • implementation: `0x${string}`
    • Optionalparams: Partial<Omit<UnionCompute<UnionStrictOmit<SimulateContractParameters<Abi, string, readonly unknown[], Chain, Chain, (`0x${string}` | Account)>, "chain">> & ChainIdParameter<Config, number> & ConnectorParameter,
          | "address"
          | "abi"
          | "functionName"
          | "args">>

    Returns Promise<{
        hash: `0x${string}`;
        result: void;
    }>

    register

  • Initialize a new instance of a registered base implementation, returning the provided target with a new address set on it. This method is the same as clone, but serves to make its function more obvious as to why you'd need to use it.

    Type Parameters

    Parameters

    • displayName: string

      The display name for the clone

    • target: Target

      An instance of a target contract to clone and initialize

    • Optionalparams: Partial<Omit<UnionCompute<UnionStrictOmit<SimulateContractParameters<Abi, string, readonly unknown[], Chain, Chain, (`0x${string}` | Account)>, "chain">> & ChainIdParameter<Config, number> & ConnectorParameter,
          | "address"
          | "abi"
          | "functionName"
          | "args">>

    Returns Promise<Target>

    • The provided instance, but with a new address attached. biome-ignore lint/suspicious/noExplicitAny: any deployable target will suffice
  • Initialize a new instance of a registered base implementation, returning a transaction hash, resulting address from simulated transaction, and the given target bound to the resulting address. This method is the same as deployCloneRaw, but serves to make its function more obvious as to why you'd need to use it.

    Type Parameters

    Parameters

    • displayName: string

      The display name for the clone

    • target: Target

      An instance of a target contract to clone and initialize

    • Optionalparams: Partial<Omit<UnionCompute<UnionStrictOmit<SimulateContractParameters<Abi, string, readonly unknown[], Chain, Chain, (`0x${string}` | Account)>, "chain">> & ChainIdParameter<Config, number> & ConnectorParameter,
          | "address"
          | "abi"
          | "functionName"
          | "args">>

    Returns Promise<HashAndSimulatedResult<`0x${string}`> & {
        target: Target;
    }>

    • The transaction hash, simulated return address, and given target bound to simulated return address
  • Deploy a new instance of a registered base implementation, returning the provided target with a new address set on it.

    Type Parameters

    Parameters

    • displayName: string

      The display name for the clone

    • target: Target

      An instance of a target contract to clone and initialize

    • Optionalparams: Partial<Omit<UnionCompute<UnionStrictOmit<SimulateContractParameters<Abi, string, readonly unknown[], Chain, Chain, (`0x${string}` | Account)>, "chain">> & ChainIdParameter<Config, number> & ConnectorParameter,
          | "address"
          | "abi"
          | "functionName"
          | "args">>

    Returns Promise<Target>

    • The provided instance, but with a new address attached. biome-ignore lint/suspicious/noExplicitAny: any deployable target will suffice
  • Type Parameters

    Parameters

    • displayName: string
    • target: Target
    • Optionalparams: Partial<Omit<UnionCompute<UnionStrictOmit<SimulateContractParameters<Abi, string, readonly unknown[], Chain, Chain, (`0x${string}` | Account)>, "chain">> & ChainIdParameter<Config, number> & ConnectorParameter,
          | "address"
          | "abi"
          | "functionName"
          | "args">>

    Returns Promise<`0x${string}`>

    biome-ignore lint/suspicious/noExplicitAny: any deployable target will suffice

    clone

  • Type Parameters

    Parameters

    • displayName: string
    • target: Target
    • Optionalparams: Partial<Omit<UnionCompute<UnionStrictOmit<SimulateContractParameters<Abi, string, readonly unknown[], Chain, Chain, (`0x${string}` | Account)>, "chain">> & ChainIdParameter<Config, number> & ConnectorParameter,
          | "address"
          | "abi"
          | "functionName"
          | "args">>

    Returns Promise<HashAndSimulatedResult<`0x${string}`>>

    • The transaction hash biome-ignore lint/suspicious/noExplicitAny: any deployable target will suffice

    clone

  • Get the address of a registered base implementation. This function will revert if the implementation is not registered

    Parameters

    • identifier: `0x${string}`

      The unique identifier for the implementation (see {getIdentifier})

    • Optionalparams: Partial<Omit<ReadContractParameters,
          | "address"
          | "abi"
          | "functionName"
          | "args">>

    Returns Promise<`0x${string}`>

    • The address of the implementation
  • Get the address of a deployed clone by its identifier

    Parameters

    • identifier: `0x${string}`

      The unique identifier for the deployed clone (see {getCloneIdentifier})

    • Optionalparams: Partial<Omit<ReadContractParameters,
          | "address"
          | "abi"
          | "functionName"
          | "args">>

    Returns Promise<Clone>

    • The on-chain representation of the clone
  • Get the list of identifiers of deployed clones for a given deployer

    Parameters

    • deployer: `0x${string}`

      The address of the deployer

    • Optionalparams: Partial<Omit<ReadContractParameters,
          | "address"
          | "abi"
          | "functionName"
          | "args">>

    Returns Promise<readonly `0x${string}`[]>

    • The list of deployed clones for the given deployer
  • Build the identifier for a clone of a base implementation

    Parameters

    • registryType: RegistryType

      The base type for the implementation

    • base: `0x${string}`

      The address of the base implementation

    • deployer: `0x${string}`

      The address of the deployer

    • displayName: string

      The display name of the clone

    • Optionalparams: Partial<Omit<ReadContractParameters,
          | "address"
          | "abi"
          | "functionName"
          | "args">>

    Returns Promise<`0x${string}`>

    • The unique identifier for the clone
  • Build the identifier for a base implementation

    Parameters

    • registryType: RegistryType

      The base type for the implementation

    • displayName: string

      The name of the implementation

    • Optionalparams: Partial<Omit<ReadContractParameters,
          | "address"
          | "abi"
          | "functionName"
          | "args">>

    Returns Promise<`0x${string}`>

    • The unique identifier for the implementation
  • High level deployment function to deploy and await the contract address. This is mainly a convenience method to easily deploy a contract, but will not initialize a Cloneable, which makes it useless for Boost components. Obviously you can ignore the TS warnings and use this, but you shouldn't in most all cases.

    Parameters

    Returns Promise<BoostRegistry>

  • A typed wrapper for (viem.getLogs)[https://viem.sh/docs/actions/public/getLogs#getlogs]. Accepts eventName and eventNames as optional parameters to narrow the returned log types.

    Type Parameters

    • event extends "Deployed" | "Registered"
    • const abiEvent extends {
          name: event;
      } & {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "registryType";
              internalType: "enum ABoostRegistry.RegistryType";
              type: "uint8";
              indexed: true;
          }, {
              name: "identifier";
              internalType: "bytes32";
              type: "bytes32";
              indexed: true;
          }, {
              name: "baseImplementation";
              internalType: "address";
              type: "address";
              indexed: false;
          }, {
              name: "deployedInstance";
              internalType: "contract ACloneable";
              type: "address";
              indexed: false;
          }];
          name: "Deployed";
      } | {
          name: event;
      } & {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "registryType";
              internalType: "enum ABoostRegistry.RegistryType";
              type: "uint8";
              indexed: true;
          }, {
              name: "identifier";
              internalType: "bytes32";
              type: "bytes32";
              indexed: true;
          }, {
              name: "implementation";
              internalType: "address";
              type: "address";
              indexed: false;
          }];
          name: "Registered";
      } = Extract<{
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "registryType";
              internalType: "enum ABoostRegistry.RegistryType";
              type: "uint8";
              indexed: true;
          }, {
              name: "identifier";
              internalType: "bytes32";
              type: "bytes32";
              indexed: true;
          }, {
              name: "baseImplementation";
              internalType: "address";
              type: "address";
              indexed: false;
          }, {
              name: "deployedInstance";
              internalType: "contract ACloneable";
              type: "address";
              indexed: false;
          }];
          name: "Deployed";
      }, {
          name: event;
      }> | Extract<{
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "registryType";
              internalType: "enum ABoostRegistry.RegistryType";
              type: "uint8";
              indexed: true;
          }, {
              name: "identifier";
              internalType: "bytes32";
              type: "bytes32";
              indexed: true;
          }, {
              name: "implementation";
              internalType: "address";
              type: "address";
              indexed: false;
          }];
          name: "Registered";
      }, {
          name: event;
      }>

    Parameters

    • Optionalparams: Omit<GetLogsParams<readonly [{
          type: "error";
          inputs: readonly [{
              name: "registryType";
              internalType: "enum ABoostRegistry.RegistryType";
              type: "uint8";
          }, {
              name: "identifier";
              internalType: "bytes32";
              type: "bytes32";
          }];
          name: "AlreadyRegistered";
      }, {
          type: "error";
          inputs: readonly [{
              name: "implementation";
              internalType: "address";
              type: "address";
          }];
          name: "NotACloneable";
      }, {
          type: "error";
          inputs: readonly [{
              name: "identifier";
              internalType: "bytes32";
              type: "bytes32";
          }];
          name: "NotRegistered";
      }, {
          type: "error";
          inputs: readonly [];
          name: "Reentrancy";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "registryType";
              internalType: "enum ABoostRegistry.RegistryType";
              type: "uint8";
              indexed: true;
          }, {
              name: "identifier";
              internalType: "bytes32";
              type: "bytes32";
              indexed: true;
          }, {
              name: "baseImplementation";
              internalType: "address";
              type: "address";
              indexed: false;
          }, {
              name: "deployedInstance";
              internalType: "contract ACloneable";
              type: "address";
              indexed: false;
          }];
          name: "Deployed";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "registryType";
              internalType: "enum ABoostRegistry.RegistryType";
              type: "uint8";
              indexed: true;
          }, {
              name: "identifier";
              internalType: "bytes32";
              type: "bytes32";
              indexed: true;
          }, {
              name: "implementation";
              internalType: "address";
              type: "address";
              indexed: false;
          }];
          name: "Registered";
      }, {
          type: "function";
          inputs: readonly [{
              name: "type_";
              internalType: "enum ABoostRegistry.RegistryType";
              type: "uint8";
          }, {
              name: "base_";
              internalType: "address";
              type: "address";
          }, {
              name: "name_";
              internalType: "string";
              type: "string";
          }, {
              name: "data_";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "deployClone";
          outputs: readonly [{
              name: "instance";
              internalType: "contract ACloneable";
              type: "address";
          }];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "identifier_";
              internalType: "bytes32";
              type: "bytes32";
          }];
          name: "getBaseImplementation";
          outputs: readonly [{
              name: "implementation";
              internalType: "contract ACloneable";
              type: "address";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "identifier_";
              internalType: "bytes32";
              type: "bytes32";
          }];
          name: "getClone";
          outputs: readonly [{
              name: "clone";
              internalType: "struct ABoostRegistry.Clone";
              type: "tuple";
              components: readonly [{
                  name: "baseType";
                  internalType: "enum ABoostRegistry.RegistryType";
                  type: "uint8";
              }, {
                  name: "instance";
                  internalType: "contract ACloneable";
                  type: "address";
              }, {
                  name: "deployer";
                  internalType: "address";
                  type: "address";
              }, {
                  name: "name";
                  internalType: "string";
                  type: "string";
              }];
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "type_";
              internalType: "enum ABoostRegistry.RegistryType";
              type: "uint8";
          }, {
              name: "base_";
              internalType: "address";
              type: "address";
          }, {
              name: "deployer_";
              internalType: "address";
              type: "address";
          }, {
              name: "name_";
              internalType: "string";
              type: "string";
          }];
          name: "getCloneIdentifier";
          outputs: readonly [{
              name: "identifier";
              internalType: "bytes32";
              type: "bytes32";
          }];
          stateMutability: "pure";
      }, {
          type: "function";
          inputs: readonly [{
              name: "deployer_";
              internalType: "address";
              type: "address";
          }];
          name: "getClones";
          outputs: readonly [{
              name: "";
              internalType: "bytes32[]";
              type: "bytes32[]";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "type_";
              internalType: "enum ABoostRegistry.RegistryType";
              type: "uint8";
          }, {
              name: "name_";
              internalType: "string";
              type: "string";
          }];
          name: "getIdentifier";
          outputs: readonly [{
              name: "identifier";
              internalType: "bytes32";
              type: "bytes32";
          }];
          stateMutability: "pure";
      }, {
          type: "function";
          inputs: readonly [{
              name: "type_";
              internalType: "enum ABoostRegistry.RegistryType";
              type: "uint8";
          }, {
              name: "name_";
              internalType: "string";
              type: "string";
          }, {
              name: "implementation_";
              internalType: "address";
              type: "address";
          }];
          name: "register";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "interfaceId";
              internalType: "bytes4";
              type: "bytes4";
          }];
          name: "supportsInterface";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }], event, abiEvent, abiEvent[]>, "event" | "events"> & {
          eventName?: event;
          eventNames?: event[];
      }

    Returns Promise<GetLogsReturnType<abiEvent, abiEvent[]>>

    const logs = contract.getLogs({ eventName: 'EventName' })
    const logs = contract.getLogs({ eventNames: ['EventName'] })

    @public
    @async
    @template {ContractEvent} event
    @template {ExtractAbiEvent<
    ContractAbi,
    event
    >} [abiEvent=ExtractAbiEvent<ContractAbi, event>]
    @param {?Omit<
    GetLogsParams<ContractAbi, event, abiEvent, abiEvent[]>,
    'event' | 'events'
    > & {
    eventName?: event;
    eventNames?: event[];
    }} [params]
    @returns {Promise<GetLogsReturnType<abiEvent, abiEvent
  • A typed wrapper for wagmi.watchContractEvent

    Type Parameters

    • event extends "Deployed" | "Registered"

    Parameters

    • cb: ((log: Log<bigint, number, false, Extract<{
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "registryType";
              internalType: "enum ABoostRegistry.RegistryType";
              type: "uint8";
              indexed: true;
          }, {
              name: "identifier";
              internalType: "bytes32";
              type: "bytes32";
              indexed: true;
          }, {
              name: "baseImplementation";
              internalType: "address";
              type: "address";
              indexed: false;
          }, {
              name: "deployedInstance";
              internalType: "contract ACloneable";
              type: "address";
              indexed: false;
          }];
          name: "Deployed";
      }, {
          name: event;
      }> | Extract<{
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "registryType";
              internalType: "enum ABoostRegistry.RegistryType";
              type: "uint8";
              indexed: true;
          }, {
              name: "identifier";
              internalType: "bytes32";
              type: "bytes32";
              indexed: true;
          }, {
              name: "implementation";
              internalType: "address";
              type: "address";
              indexed: false;
          }];
          name: "Registered";
      }, {
          name: event;
      }>, true>) => unknown)
        • (log): unknown
        • Parameters

          • log: Log<bigint, number, false, Extract<{
                type: "event";
                anonymous: false;
                inputs: readonly [{
                    name: "registryType";
                    internalType: "enum ABoostRegistry.RegistryType";
                    type: "uint8";
                    indexed: true;
                }, {
                    name: "identifier";
                    internalType: "bytes32";
                    type: "bytes32";
                    indexed: true;
                }, {
                    name: "baseImplementation";
                    internalType: "address";
                    type: "address";
                    indexed: false;
                }, {
                    name: "deployedInstance";
                    internalType: "contract ACloneable";
                    type: "address";
                    indexed: false;
                }];
                name: "Deployed";
            }, {
                name: event;
            }> | Extract<{
                type: "event";
                anonymous: false;
                inputs: readonly [{
                    name: "registryType";
                    internalType: "enum ABoostRegistry.RegistryType";
                    type: "uint8";
                    indexed: true;
                }, {
                    name: "identifier";
                    internalType: "bytes32";
                    type: "bytes32";
                    indexed: true;
                }, {
                    name: "implementation";
                    internalType: "address";
                    type: "address";
                    indexed: false;
                }];
                name: "Registered";
            }, {
                name: event;
            }>, true>

          Returns unknown

    • Optionalparams: Partial<Omit<UnionCompute<WatchContractEventParameters<readonly [{
          type: "error";
          inputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }, {
              name: ...;
              internalType: ...;
              type: ...;
          }];
          name: "AlreadyRegistered";
      }, {
          type: "error";
          inputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }];
          name: "NotACloneable";
      }, {
          type: "error";
          inputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }];
          name: "NotRegistered";
      }, {
          type: "error";
          inputs: readonly [];
          name: "Reentrancy";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
              indexed: ...;
          }, {
              name: ...;
              internalType: ...;
              type: ...;
              indexed: ...;
          }, {
              name: ...;
              internalType: ...;
              type: ...;
              indexed: ...;
          }, {
              name: ...;
              internalType: ...;
              type: ...;
              indexed: ...;
          }];
          name: "Deployed";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
              indexed: ...;
          }, {
              name: ...;
              internalType: ...;
              type: ...;
              indexed: ...;
          }, {
              name: ...;
              internalType: ...;
              type: ...;
              indexed: ...;
          }];
          name: "Registered";
      }, {
          type: "function";
          inputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }, {
              name: ...;
              internalType: ...;
              type: ...;
          }, {
              name: ...;
              internalType: ...;
              type: ...;
          }, {
              name: ...;
              internalType: ...;
              type: ...;
          }];
          name: "deployClone";
          outputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }];
          name: "getBaseImplementation";
          outputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }];
          name: "getClone";
          outputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
              components: ...;
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }, {
              name: ...;
              internalType: ...;
              type: ...;
          }, {
              name: ...;
              internalType: ...;
              type: ...;
          }, {
              name: ...;
              internalType: ...;
              type: ...;
          }];
          name: "getCloneIdentifier";
          outputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }];
          stateMutability: "pure";
      }, {
          type: "function";
          inputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }];
          name: "getClones";
          outputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }, {
              name: ...;
              internalType: ...;
              type: ...;
          }];
          name: "getIdentifier";
          outputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }];
          stateMutability: "pure";
      }, {
          type: "function";
          inputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }, {
              name: ...;
              internalType: ...;
              type: ...;
          }, {
              name: ...;
              internalType: ...;
              type: ...;
          }];
          name: "register";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }];
          name: "supportsInterface";
          outputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }];
          stateMutability: "view";
      }], event, undefined, WebSocketTransport> & ChainIdParameter<Config, number> & SyncConnectedChainParameter>, "address" | "abi">> & {
          eventName?: event;
      }

    Returns (() => void)

      • (): void
      • Returns void

  • Protected

    Internal function to attach the connected account to write methods to avoid manually passing in an account each call.

    Parameters

    • Optionalaccount: Account

    Returns {
        account: Account;
    } | {
        account: undefined;
    }