@opensubaccounts/sdk
    Preparing search index...

    Function getSubaccountFactory

    • Type Parameters

      Parameters

      Returns {
          [K in string | number | symbol]: (
              {
                  [K in string
                  | number
                  | symbol]: (
                      (
                          (
                              TClient extends { public: Client }
                                  ? TClient<TClient>["public"]
                                  : TClient
                          ) extends Client
                              ? {
                                  read: {
                                      ALLOWANCE_MANAGER: (...parameters: ...) => ...;
                                      generateAllowanceHolderAddress: (...parameters: ...) => ...;
                                      generateSubaccountAddress: (...parameters: ...) => ...;
                                      isDeployedAllowanceHolder: (...parameters: ...) => ...;
                                      isDeployedSubaccount: (...parameters: ...) => ...;
                                      MULTICHAIN_SIGNATURES_MODULE: (...parameters: ...) => ...;
                                      SAFE_MODULE_SETUP: (...parameters: ...) => ...;
                                      SAFE_PROXY_FACTORY: (...parameters: ...) => ...;
                                      SAFE_SINGLETON: (...parameters: ...) => ...;
                                  };
                              } & {
                                  estimateGas: {
                                      createAllowanceHolder: (...parameters: ...) => ...;
                                      createSubaccount: (...parameters: ...) => ...;
                                  };
                                  simulate: {
                                      createAllowanceHolder: <
                                          chainOverride extends ... = ...,
                                          accountOverride extends ... = ...,
                                      >(
                                          ...parameters: ...,
                                      ) => ...;
                                      createSubaccount: <
                                          chainOverride extends ... = ...,
                                          accountOverride extends ... = ...,
                                      >(
                                          ...parameters: ...,
                                      ) => ...;
                                  };
                              } & {
                                  createEventFilter: {
                                      AllowanceHolderCreated: <
                                          const args extends ...,
                                          strict extends ... = ...,
                                      >(
                                          ...parameters: ...,
                                      ) => ...;
                                      SubaccountCreated: <
                                          const args extends ...,
                                          strict extends ... = ...,
                                      >(
                                          ...parameters: ...,
                                      ) => ...;
                                  };
                                  getEvents: {
                                      AllowanceHolderCreated: (...parameters: ...) => ...;
                                      SubaccountCreated: (...parameters: ...) => ...;
                                  };
                                  watchEvent: {
                                      AllowanceHolderCreated: (...parameters: ...) => ...;
                                      SubaccountCreated: (...parameters: ...) => ...;
                                  };
                              }
                              : unknown
                      ) & (
                          (
                              TClient extends { wallet: Client }
                                  ? TClient<TClient>["wallet"]
                                  : TClient
                          ) extends Client
                              ? {
                                  estimateGas: {
                                      createAllowanceHolder: (
                                          ...parameters: [args: ..., ...parameters: (...)[]],
                                      ) => Promise<(...)>;
                                      createSubaccount: (
                                          ...parameters: [args: ..., ...parameters: (...)[]],
                                      ) => Promise<(...)>;
                                  };
                                  write: {
                                      createAllowanceHolder: <
                                          chainOverride extends (...)
                                          | (...),
                                          options extends { [K in (...)]: (...) },
                                      >(
                                          ...parameters: [args: ..., ...parameters: (...)[]],
                                      ) => Promise<(...)>;
                                      createSubaccount: <
                                          chainOverride extends (...)
                                          | (...),
                                          options extends { [K in (...)]: (...) },
                                      >(
                                          ...parameters: [args: ..., ...parameters: (...)[]],
                                      ) => Promise<(...)>;
                                  };
                              }
                              : unknown
                      )
                  )[K]
              } & {
                  abi: readonly [
                      {
                          inputs: readonly [
                              {
                                  internalType: "address";
                                  name: "_safeSingleton";
                                  type: "address";
                              },
                              {
                                  internalType: "address";
                                  name: "_safeProxyFactory";
                                  type: "address";
                              },
                              { internalType: "address"; name: "_safeModuleSetup"; type: "address" },
                              {
                                  internalType: "address";
                                  name: "_multichainSignaturesModule";
                                  type: "address";
                              },
                              {
                                  internalType: "address";
                                  name: "_allowanceManager";
                                  type: "address";
                              },
                          ];
                          stateMutability: "nonpayable";
                          type: "constructor";
                      },
                      {
                          inputs: readonly [];
                          name: "ALLOWANCE_MANAGER";
                          outputs: readonly [
                              { internalType: "address"; name: ""; type: "address" },
                          ];
                          stateMutability: "view";
                          type: "function";
                      },
                      {
                          inputs: readonly [];
                          name: "MULTICHAIN_SIGNATURES_MODULE";
                          outputs: readonly [
                              { internalType: "address"; name: ""; type: "address" },
                          ];
                          stateMutability: "view";
                          type: "function";
                      },
                      {
                          inputs: readonly [];
                          name: "SAFE_MODULE_SETUP";
                          outputs: readonly [
                              { internalType: "address"; name: ""; type: "address" },
                          ];
                          stateMutability: "view";
                          type: "function";
                      },
                      {
                          inputs: readonly [];
                          name: "SAFE_PROXY_FACTORY";
                          outputs: readonly [
                              { internalType: "address"; name: ""; type: "address" },
                          ];
                          stateMutability: "view";
                          type: "function";
                      },
                      {
                          inputs: readonly [];
                          name: "SAFE_SINGLETON";
                          outputs: readonly [
                              { internalType: "address"; name: ""; type: "address" },
                          ];
                          stateMutability: "view";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "address"; name: "owner"; type: "address" },
                              { internalType: "address"; name: "token"; type: "address" },
                              { internalType: "address"; name: "subaccount"; type: "address" },
                              { internalType: "uint256"; name: "quotaAmount"; type: "uint256" },
                              { internalType: "uint256"; name: "quotaTimeframe"; type: "uint256" },
                              { internalType: "uint256"; name: "initialFund"; type: "uint256" },
                              { internalType: "bytes"; name: "firstCallData"; type: "bytes" },
                              { internalType: "uint256"; name: "permitDeadline"; type: "uint256" },
                              { internalType: "uint8"; name: "v"; type: "uint8" },
                              { internalType: "bytes32"; name: "r"; type: "bytes32" },
                              { internalType: "bytes32"; name: "s"; type: "bytes32" },
                          ];
                          name: "createAllowanceHolder";
                          outputs: readonly [
                              { internalType: "address"; name: "holder"; type: "address" },
                          ];
                          stateMutability: "nonpayable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "address"; name: "owner"; type: "address" },
                              { internalType: "string"; name: "appDomain"; type: "string" },
                              { internalType: "uint32"; name: "accountIndex"; type: "uint32" },
                          ];
                          name: "createSubaccount";
                          outputs: readonly [
                              { internalType: "address"; name: "subaccount"; type: "address" },
                          ];
                          stateMutability: "nonpayable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "address"; name: "owner"; type: "address" },
                              { internalType: "address"; name: "token"; type: "address" },
                              { internalType: "address"; name: "subaccount"; type: "address" },
                              { internalType: "uint256"; name: "quotaAmount"; type: "uint256" },
                              { internalType: "uint256"; name: "timeframe"; type: "uint256" },
                              { internalType: "uint256"; name: "initialFund"; type: "uint256" },
                              { internalType: "bytes"; name: "firstCallData"; type: "bytes" },
                          ];
                          name: "generateAllowanceHolderAddress";
                          outputs: readonly [
                              { internalType: "address"; name: "holder"; type: "address" },
                              { internalType: "bool"; name: "isDeployed"; type: "bool" },
                          ];
                          stateMutability: "view";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "address"; name: "owner"; type: "address" },
                              { internalType: "string"; name: "appDomain"; type: "string" },
                              { internalType: "uint32"; name: "accountIndex"; type: "uint32" },
                          ];
                          name: "generateSubaccountAddress";
                          outputs: readonly [
                              { internalType: "address"; name: "subaccount"; type: "address" },
                              { internalType: "bool"; name: "isDeployed"; type: "bool" },
                          ];
                          stateMutability: "view";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "address"; name: ""; type: "address" },
                          ];
                          name: "isDeployedAllowanceHolder";
                          outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                          stateMutability: "view";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "address"; name: ""; type: "address" },
                          ];
                          name: "isDeployedSubaccount";
                          outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                          stateMutability: "view";
                          type: "function";
                      },
                      {
                          anonymous: false;
                          inputs: readonly [
                              {
                                  indexed: true;
                                  internalType: "address";
                                  name: "holder";
                                  type: "address";
                              },
                              {
                                  indexed: true;
                                  internalType: "address";
                                  name: "owner";
                                  type: "address";
                              },
                              {
                                  indexed: true;
                                  internalType: "address";
                                  name: "token";
                                  type: "address";
                              },
                          ];
                          name: "AllowanceHolderCreated";
                          type: "event";
                      },
                      {
                          anonymous: false;
                          inputs: readonly [
                              {
                                  indexed: true;
                                  internalType: "address";
                                  name: "subaccount";
                                  type: "address";
                              },
                              {
                                  indexed: true;
                                  internalType: "address";
                                  name: "owner";
                                  type: "address";
                              },
                              {
                                  indexed: true;
                                  internalType: "string";
                                  name: "appDomain";
                                  type: "string";
                              },
                              {
                                  indexed: false;
                                  internalType: "uint32";
                                  name: "accountIndex";
                                  type: "uint32";
                              },
                          ];
                          name: "SubaccountCreated";
                          type: "event";
                      },
                      {
                          inputs: readonly [];
                          name: "AllowanceManagerRegistrationFailed";
                          type: "error";
                      },
                      { inputs: readonly []; name: "Create2EmptyBytecode"; type: "error" },
                      {
                          inputs: readonly [
                              { internalType: "bytes"; name: "dns"; type: "bytes" },
                          ];
                          name: "DNSDecodingFailed";
                          type: "error";
                      },
                      {
                          inputs: readonly [
                              { internalType: "string"; name: "ens"; type: "string" },
                          ];
                          name: "DNSEncodingFailed";
                          type: "error";
                      },
                      { inputs: readonly []; name: "FailedDeployment"; type: "error" },
                      { inputs: readonly []; name: "HolderAddressMismatch"; type: "error" },
                      {
                          inputs: readonly [
                              { internalType: "uint256"; name: "balance"; type: "uint256" },
                              { internalType: "uint256"; name: "needed"; type: "uint256" },
                          ];
                          name: "InsufficientBalance";
                          type: "error";
                      },
                      { inputs: readonly []; name: "Reentrancy"; type: "error" },
                      {
                          inputs: readonly [];
                          name: "SubaccountAddressMismatch";
                          type: "error";
                      },
                  ];
                  address: `0x${string}`;
              }
          )[K]
      }