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

abi: readonly [{
    type: "error";
    inputs: readonly [{
        name: "registryType";
        internalType: "enum BoostRegistry.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 BoostRegistry.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 BoostRegistry.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 BoostRegistry.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 BoostRegistry.Clone";
        type: "tuple";
        components: readonly [{
            name: "baseType";
            internalType: "enum BoostRegistry.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 BoostRegistry.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 BoostRegistry.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 BoostRegistry.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 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<WriteContractParameters<readonly [{
          type: "error";
          inputs: readonly [{
              name: "registryType";
              internalType: "enum BoostRegistry.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 BoostRegistry.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 BoostRegistry.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 BoostRegistry.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 BoostRegistry.Clone";
              type: "tuple";
              components: readonly [{
                  name: "baseType";
                  internalType: "enum BoostRegistry.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 BoostRegistry.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 BoostRegistry.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 BoostRegistry.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";
      }], "register">,
          | "address"
          | "args"
          | "abi"
          | "functionName">>

      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<WriteContractParameters<readonly [{
          type: "error";
          inputs: readonly [{
              name: "registryType";
              internalType: "enum BoostRegistry.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 BoostRegistry.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 BoostRegistry.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 BoostRegistry.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 BoostRegistry.Clone";
              type: "tuple";
              components: readonly [{
                  name: "baseType";
                  internalType: "enum BoostRegistry.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 BoostRegistry.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 BoostRegistry.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 BoostRegistry.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";
      }], "register">,
          | "address"
          | "args"
          | "abi"
          | "functionName">>

    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<WriteContractParameters<readonly [{
          type: "error";
          inputs: readonly [{
              name: "registryType";
              internalType: "enum BoostRegistry.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 BoostRegistry.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 BoostRegistry.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 BoostRegistry.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 BoostRegistry.Clone";
              type: "tuple";
              components: readonly [{
                  name: "baseType";
                  internalType: "enum BoostRegistry.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 BoostRegistry.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 BoostRegistry.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 BoostRegistry.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";
      }], "deployClone">,
          | "address"
          | "args"
          | "abi"
          | "functionName">>

    Returns Promise<Target>

    • The provided instance, but with a new address attached. biome-ignore lint/suspicious/noExplicitAny: any deployable target will suffice
  • 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<WriteContractParameters<readonly [{
          type: "error";
          inputs: readonly [{
              name: "registryType";
              internalType: "enum BoostRegistry.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 BoostRegistry.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 BoostRegistry.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 BoostRegistry.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 BoostRegistry.Clone";
              type: "tuple";
              components: readonly [{
                  name: "baseType";
                  internalType: "enum BoostRegistry.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 BoostRegistry.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 BoostRegistry.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 BoostRegistry.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";
      }], "deployClone">,
          | "address"
          | "args"
          | "abi"
          | "functionName">>

    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<WriteContractParameters<readonly [{
          type: "error";
          inputs: readonly [{
              name: "registryType";
              internalType: "enum BoostRegistry.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 BoostRegistry.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 BoostRegistry.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 BoostRegistry.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 BoostRegistry.Clone";
              type: "tuple";
              components: readonly [{
                  name: "baseType";
                  internalType: "enum BoostRegistry.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 BoostRegistry.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 BoostRegistry.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 BoostRegistry.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";
      }], "deployClone">,
          | "address"
          | "args"
          | "abi"
          | "functionName">>

    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<WriteContractParameters<readonly [{
          type: "error";
          inputs: readonly [{
              name: "registryType";
              internalType: "enum BoostRegistry.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 BoostRegistry.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 BoostRegistry.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 BoostRegistry.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 BoostRegistry.Clone";
              type: "tuple";
              components: readonly [{
                  name: "baseType";
                  internalType: "enum BoostRegistry.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 BoostRegistry.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 BoostRegistry.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 BoostRegistry.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";
      }], "deployClone">,
          | "address"
          | "args"
          | "abi"
          | "functionName">>

    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<readonly [{
          type: "error";
          inputs: readonly [{
              name: "registryType";
              internalType: "enum BoostRegistry.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 BoostRegistry.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 BoostRegistry.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 BoostRegistry.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 BoostRegistry.Clone";
              type: "tuple";
              components: readonly [{
                  name: "baseType";
                  internalType: "enum BoostRegistry.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 BoostRegistry.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 BoostRegistry.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 BoostRegistry.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";
      }], "getBaseImplementation">,
          | "address"
          | "args"
          | "abi"
          | "functionName">>

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

    • The address of the implementation
  • Get the address of a deployed clone by its identifier (index in incentives array)

    Parameters

    • identifier: `0x${string}`

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

    • Optionalparams: Partial<Omit<ReadContractParameters<readonly [{
          type: "error";
          inputs: readonly [{
              name: "registryType";
              internalType: "enum BoostRegistry.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 BoostRegistry.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 BoostRegistry.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 BoostRegistry.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 BoostRegistry.Clone";
              type: "tuple";
              components: readonly [{
                  name: "baseType";
                  internalType: "enum BoostRegistry.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 BoostRegistry.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 BoostRegistry.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 BoostRegistry.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";
      }], "getClone">,
          | "address"
          | "args"
          | "abi"
          | "functionName">>

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

    • The address of the deployed 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<readonly [{
          type: "error";
          inputs: readonly [{
              name: "registryType";
              internalType: "enum BoostRegistry.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 BoostRegistry.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 BoostRegistry.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 BoostRegistry.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 BoostRegistry.Clone";
              type: "tuple";
              components: readonly [{
                  name: "baseType";
                  internalType: "enum BoostRegistry.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 BoostRegistry.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 BoostRegistry.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 BoostRegistry.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";
      }], "getClones">,
          | "address"
          | "args"
          | "abi"
          | "functionName">>

    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<readonly [{
          type: "error";
          inputs: readonly [{
              name: "registryType";
              internalType: "enum BoostRegistry.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 BoostRegistry.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 BoostRegistry.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 BoostRegistry.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 BoostRegistry.Clone";
              type: "tuple";
              components: readonly [{
                  name: "baseType";
                  internalType: "enum BoostRegistry.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 BoostRegistry.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 BoostRegistry.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 BoostRegistry.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";
      }], "getCloneIdentifier">,
          | "address"
          | "args"
          | "abi"
          | "functionName">>

    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<readonly [{
          type: "error";
          inputs: readonly [{
              name: "registryType";
              internalType: "enum BoostRegistry.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 BoostRegistry.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 BoostRegistry.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 BoostRegistry.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 BoostRegistry.Clone";
              type: "tuple";
              components: readonly [{
                  name: "baseType";
                  internalType: "enum BoostRegistry.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 BoostRegistry.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 BoostRegistry.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 BoostRegistry.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";
      }], "getIdentifier">,
          | "address"
          | "args"
          | "abi"
          | "functionName">>

    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 BoostRegistry.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 BoostRegistry.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 BoostRegistry.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 BoostRegistry.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 BoostRegistry.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 BoostRegistry.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 BoostRegistry.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 BoostRegistry.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 BoostRegistry.Clone";
              type: "tuple";
              components: readonly [{
                  name: "baseType";
                  internalType: "enum BoostRegistry.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 BoostRegistry.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 BoostRegistry.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 BoostRegistry.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 BoostRegistry.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 BoostRegistry.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 BoostRegistry.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 BoostRegistry.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 Promise<(() => 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;
    }