# Class Implementation__factory

#### Hierarchy

- ContractFactory
  - Implementation__factory

- Defined in ethers-contracts/factories/Implementation__factory.ts:1069

#####
Index

### Constructors

constructor

### Properties

abi
bytecode

### Methods

connect
deploy
getDeployTransaction
connect
createInterface

## Constructors

### constructor

- new Implementation__factory(...args): Implementation__factory

- #### Parameters

  - ##### `Rest` ...args: ImplementationConstructorParams

  #### Returns Implementation__factory

  Overrides ContractFactory.constructor

  - Defined in ethers-contracts/factories/Implementation__factory.ts:1070

## Properties

### `Static` `Readonly` abi

abi: readonly [{
anonymous: false;
inputs: readonly [{
indexed: false;
internalType: "address";
name: "previousAdmin";
type: "address";
}, {
indexed: false;
internalType: "address";
name: "newAdmin";
type: "address";
}];
name: "AdminChanged";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "address";
name: "beacon";
type: "address";
}];
name: "BeaconUpgraded";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "address";
name: "oldContract";
type: "address";
}, {
indexed: true;
internalType: "address";
name: "newContract";
type: "address";
}];
name: "ContractUpgraded";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "uint32";
name: "index";
type: "uint32";
}];
name: "GuardianSetAdded";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "address";
name: "sender";
type: "address";
}, {
indexed: false;
internalType: "uint64";
name: "sequence";
type: "uint64";
}, {
indexed: false;
internalType: "uint32";
name: "nonce";
type: "uint32";
}, {
indexed: false;
internalType: "bytes";
name: "payload";
type: "bytes";
}, {
indexed: false;
internalType: "uint8";
name: "consistencyLevel";
type: "uint8";
}];
name: "LogMessagePublished";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "address";
name: "implementation";
type: "address";
}];
name: "Upgraded";
type: "event";
}, {
stateMutability: "payable";
type: "fallback";
}, {
inputs: readonly [];
name: "chainId";
outputs: readonly [{
internalType: "uint16";
name: "";
type: "uint16";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "evmChainId";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "getCurrentGuardianSetIndex";
outputs: readonly [{
internalType: "uint32";
name: "";
type: "uint32";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint32";
name: "index";
type: "uint32";
}];
name: "getGuardianSet";
outputs: readonly [{
components: readonly [{
internalType: "address[]";
name: "keys";
type: "address[]";
}, {
internalType: "uint32";
name: "expirationTime";
type: "uint32";
}];
internalType: "struct Structs.GuardianSet";
name: "";
type: "tuple";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "getGuardianSetExpiry";
outputs: readonly [{
internalType: "uint32";
name: "";
type: "uint32";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "bytes32";
name: "hash";
type: "bytes32";
}];
name: "governanceActionIsConsumed";
outputs: readonly [{
internalType: "bool";
name: "";
type: "bool";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "governanceChainId";
outputs: readonly [{
internalType: "uint16";
name: "";
type: "uint16";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "governanceContract";
outputs: readonly [{
internalType: "bytes32";
name: "";
type: "bytes32";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "initialize";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [];
name: "isFork";
outputs: readonly [{
internalType: "bool";
name: "";
type: "bool";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "impl";
type: "address";
}];
name: "isInitialized";
outputs: readonly [{
internalType: "bool";
name: "";
type: "bool";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "messageFee";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "emitter";
type: "address";
}];
name: "nextSequence";
outputs: readonly [{
internalType: "uint64";
name: "";
type: "uint64";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "bytes";
name: "encodedVM";
type: "bytes";
}];
name: "parseAndVerifyVM";
outputs: readonly [{
components: readonly [{
internalType: "uint8";
name: "version";
type: "uint8";
}, {
internalType: "uint32";
name: "timestamp";
type: "uint32";
}, {
internalType: "uint32";
name: "nonce";
type: "uint32";
}, {
internalType: "uint16";
name: "emitterChainId";
type: "uint16";
}, {
internalType: "bytes32";
name: "emitterAddress";
type: "bytes32";
}, {
internalType: "uint64";
name: "sequence";
type: "uint64";
}, {
internalType: "uint8";
name: "consistencyLevel";
type: "uint8";
}, {
internalType: "bytes";
name: "payload";
type: "bytes";
}, {
internalType: "uint32";
name: "guardianSetIndex";
type: "uint32";
}, {
components: readonly [{
internalType: "bytes32";
name: "r";
type: "bytes32";
}, {
internalType: "bytes32";
name: "s";
type: "bytes32";
}, {
internalType: "uint8";
name: "v";
type: "uint8";
}, {
internalType: "uint8";
name: "guardianIndex";
type: "uint8";
}];
internalType: "struct Structs.Signature[]";
name: "signatures";
type: "tuple[]";
}, {
internalType: "bytes32";
name: "hash";
type: "bytes32";
}];
internalType: "struct Structs.VM";
name: "vm";
type: "tuple";
}, {
internalType: "bool";
name: "valid";
type: "bool";
}, {
internalType: "string";
name: "reason";
type: "string";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "bytes";
name: "encodedUpgrade";
type: "bytes";
}];
name: "parseContractUpgrade";
outputs: readonly [{
components: readonly [{
internalType: "bytes32";
name: "module";
type: "bytes32";
}, {
internalType: "uint8";
name: "action";
type: "uint8";
}, {
internalType: "uint16";
name: "chain";
type: "uint16";
}, {
internalType: "address";
name: "newContract";
type: "address";
}];
internalType: "struct GovernanceStructs.ContractUpgrade";
name: "cu";
type: "tuple";
}];
stateMutability: "pure";
type: "function";
}, {
inputs: readonly [{
internalType: "bytes";
name: "encodedUpgrade";
type: "bytes";
}];
name: "parseGuardianSetUpgrade";
outputs: readonly [{
components: readonly [{
internalType: "bytes32";
name: "module";
type: "bytes32";
}, {
internalType: "uint8";
name: "action";
type: "uint8";
}, {
internalType: "uint16";
name: "chain";
type: "uint16";
}, {
components: readonly [{
internalType: "address[]";
name: "keys";
type: "address[]";
}, {
internalType: "uint32";
name: "expirationTime";
type: "uint32";
}];
internalType: "struct Structs.GuardianSet";
name: "newGuardianSet";
type: "tuple";
}, {
internalType: "uint32";
name: "newGuardianSetIndex";
type: "uint32";
}];
internalType: "struct GovernanceStructs.GuardianSetUpgrade";
name: "gsu";
type: "tuple";
}];
stateMutability: "pure";
type: "function";
}, {
inputs: readonly [{
internalType: "bytes";
name: "encodedRecoverChainId";
type: "bytes";
}];
name: "parseRecoverChainId";
outputs: readonly [{
components: readonly [{
internalType: "bytes32";
name: "module";
type: "bytes32";
}, {
internalType: "uint8";
name: "action";
type: "uint8";
}, {
internalType: "uint256";
name: "evmChainId";
type: "uint256";
}, {
internalType: "uint16";
name: "newChainId";
type: "uint16";
}];
internalType: "struct GovernanceStructs.RecoverChainId";
name: "rci";
type: "tuple";
}];
stateMutability: "pure";
type: "function";
}, {
inputs: readonly [{
internalType: "bytes";
name: "encodedSetMessageFee";
type: "bytes";
}];
name: "parseSetMessageFee";
outputs: readonly [{
components: readonly [{
internalType: "bytes32";
name: "module";
type: "bytes32";
}, {
internalType: "uint8";
name: "action";
type: "uint8";
}, {
internalType: "uint16";
name: "chain";
type: "uint16";
}, {
internalType: "uint256";
name: "messageFee";
type: "uint256";
}];
internalType: "struct GovernanceStructs.SetMessageFee";
name: "smf";
type: "tuple";
}];
stateMutability: "pure";
type: "function";
}, {
inputs: readonly [{
internalType: "bytes";
name: "encodedTransferFees";
type: "bytes";
}];
name: "parseTransferFees";
outputs: readonly [{
components: readonly [{
internalType: "bytes32";
name: "module";
type: "bytes32";
}, {
internalType: "uint8";
name: "action";
type: "uint8";
}, {
internalType: "uint16";
name: "chain";
type: "uint16";
}, {
internalType: "uint256";
name: "amount";
type: "uint256";
}, {
internalType: "bytes32";
name: "recipient";
type: "bytes32";
}];
internalType: "struct GovernanceStructs.TransferFees";
name: "tf";
type: "tuple";
}];
stateMutability: "pure";
type: "function";
}, {
inputs: readonly [{
internalType: "bytes";
name: "encodedVM";
type: "bytes";
}];
name: "parseVM";
outputs: readonly [{
components: readonly [{
internalType: "uint8";
name: "version";
type: "uint8";
}, {
internalType: "uint32";
name: "timestamp";
type: "uint32";
}, {
internalType: "uint32";
name: "nonce";
type: "uint32";
}, {
internalType: "uint16";
name: "emitterChainId";
type: "uint16";
}, {
internalType: "bytes32";
name: "emitterAddress";
type: "bytes32";
}, {
internalType: "uint64";
name: "sequence";
type: "uint64";
}, {
internalType: "uint8";
name: "consistencyLevel";
type: "uint8";
}, {
internalType: "bytes";
name: "payload";
type: "bytes";
}, {
internalType: "uint32";
name: "guardianSetIndex";
type: "uint32";
}, {
components: readonly [{
internalType: "bytes32";
name: "r";
type: "bytes32";
}, {
internalType: "bytes32";
name: "s";
type: "bytes32";
}, {
internalType: "uint8";
name: "v";
type: "uint8";
}, {
internalType: "uint8";
name: "guardianIndex";
type: "uint8";
}];
internalType: "struct Structs.Signature[]";
name: "signatures";
type: "tuple[]";
}, {
internalType: "bytes32";
name: "hash";
type: "bytes32";
}];
internalType: "struct Structs.VM";
name: "vm";
type: "tuple";
}];
stateMutability: "pure";
type: "function";
}, {
inputs: readonly [{
internalType: "uint32";
name: "nonce";
type: "uint32";
}, {
internalType: "bytes";
name: "payload";
type: "bytes";
}, {
internalType: "uint8";
name: "consistencyLevel";
type: "uint8";
}];
name: "publishMessage";
outputs: readonly [{
internalType: "uint64";
name: "sequence";
type: "uint64";
}];
stateMutability: "payable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "numGuardians";
type: "uint256";
}];
name: "quorum";
outputs: readonly [{
internalType: "uint256";
name: "numSignaturesRequiredForQuorum";
type: "uint256";
}];
stateMutability: "pure";
type: "function";
}, {
inputs: readonly [{
internalType: "bytes";
name: "_vm";
type: "bytes";
}];
name: "submitContractUpgrade";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "bytes";
name: "_vm";
type: "bytes";
}];
name: "submitNewGuardianSet";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "bytes";
name: "_vm";
type: "bytes";
}];
name: "submitRecoverChainId";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "bytes";
name: "_vm";
type: "bytes";
}];
name: "submitSetMessageFee";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "bytes";
name: "_vm";
type: "bytes";
}];
name: "submitTransferFees";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "bytes32";
name: "hash";
type: "bytes32";
}, {
components: readonly [{
internalType: "bytes32";
name: "r";
type: "bytes32";
}, {
internalType: "bytes32";
name: "s";
type: "bytes32";
}, {
internalType: "uint8";
name: "v";
type: "uint8";
}, {
internalType: "uint8";
name: "guardianIndex";
type: "uint8";
}];
internalType: "struct Structs.Signature[]";
name: "signatures";
type: "tuple[]";
}, {
components: readonly [{
internalType: "address[]";
name: "keys";
type: "address[]";
}, {
internalType: "uint32";
name: "expirationTime";
type: "uint32";
}];
internalType: "struct Structs.GuardianSet";
name: "guardianSet";
type: "tuple";
}];
name: "verifySignatures";
outputs: readonly [{
internalType: "bool";
name: "valid";
type: "bool";
}, {
internalType: "string";
name: "reason";
type: "string";
}];
stateMutability: "pure";
type: "function";
}, {
inputs: readonly [{
components: readonly [{
internalType: "uint8";
name: "version";
type: "uint8";
}, {
internalType: "uint32";
name: "timestamp";
type: "uint32";
}, {
internalType: "uint32";
name: "nonce";
type: "uint32";
}, {
internalType: "uint16";
name: "emitterChainId";
type: "uint16";
}, {
internalType: "bytes32";
name: "emitterAddress";
type: "bytes32";
}, {
internalType: "uint64";
name: "sequence";
type: "uint64";
}, {
internalType: "uint8";
name: "consistencyLevel";
type: "uint8";
}, {
internalType: "bytes";
name: "payload";
type: "bytes";
}, {
internalType: "uint32";
name: "guardianSetIndex";
type: "uint32";
}, {
components: readonly [{
internalType: "bytes32";
name: "r";
type: "bytes32";
}, {
internalType: "bytes32";
name: "s";
type: "bytes32";
}, {
internalType: "uint8";
name: "v";
type: "uint8";
}, {
internalType: "uint8";
name: "guardianIndex";
type: "uint8";
}];
internalType: "struct Structs.Signature[]";
name: "signatures";
type: "tuple[]";
}, {
internalType: "bytes32";
name: "hash";
type: "bytes32";
}];
internalType: "struct Structs.VM";
name: "vm";
type: "tuple";
}];
name: "verifyVM";
outputs: readonly [{
internalType: "bool";
name: "valid";
type: "bool";
}, {
internalType: "string";
name: "reason";
type: "string";
}];
stateMutability: "view";
type: "function";
}, {
stateMutability: "payable";
type: "receive";
}] = _abi

- Defined in ethers-contracts/factories/Implementation__factory.ts:1095

### `Static` `Readonly` bytecode

bytecode: " " = _bytecode

- Defined in ethers-contracts/factories/Implementation__factory.ts:1094

## Methods

### connect

- connect(runner): Implementation__factory

- #### Parameters

  - ##### runner: ContractRunner

  #### Returns Implementation__factory

  Overrides ContractFactory.connect

  - Defined in ethers-contracts/factories/Implementation__factory.ts:1090

### deploy

- deploy(overrides?): Promise<Implementation & {
  deploymentTransaction() => ContractTransactionResponse;
  }>

- #### Parameters

  - ##### `Optional` overrides: NonPayableOverrides & {
    from?: string;
    }

  #### Returns Promise<Implementation & {
  deploymentTransaction() => ContractTransactionResponse;
  }>

  Overrides ContractFactory.deploy

  - Defined in ethers-contracts/factories/Implementation__factory.ts:1083

### getDeployTransaction

- getDeployTransaction(overrides?): Promise<ContractDeployTransaction>

- #### Parameters

  - ##### `Optional` overrides: NonPayableOverrides & {
    from?: string;
    }

  #### Returns Promise<ContractDeployTransaction>

  Overrides ContractFactory.getDeployTransaction

  - Defined in ethers-contracts/factories/Implementation__factory.ts:1078

### `Static` connect

- connect(address, runner?): Implementation

- #### Parameters

  - ##### address: string

  - ##### `Optional` runner: ContractRunner

  #### Returns Implementation

  - Defined in ethers-contracts/factories/Implementation__factory.ts:1099

### `Static` createInterface

- createInterface(): ImplementationInterface

- #### Returns ImplementationInterface

  - Defined in ethers-contracts/factories/Implementation__factory.ts:1096

Generated using TypeDoc