# Class TokenMessenger__factory

#### Hierarchy

- ContractFactory
  - TokenMessenger__factory

- Defined in platforms/evm/protocols/cctp/src/ethers-contracts/factories/TokenMessenger__factory.ts:588

#####
Index

### Constructors

constructor

### Properties

abi
bytecode

### Methods

connect
deploy
getDeployTransaction
connect
createInterface
linkBytecode

## Constructors

### constructor

- new TokenMessenger__factory(...args): TokenMessenger__factory

- #### Parameters

  - ##### `Rest` ...args: TokenMessengerConstructorParams

  #### Returns TokenMessenger__factory

  Overrides ContractFactory.constructor

  - Defined in platforms/evm/protocols/cctp/src/ethers-contracts/factories/TokenMessenger__factory.ts:589

## Properties

### `Static` `Readonly` abi

abi: readonly [{
inputs: readonly [{
internalType: "address";
name: "_messageTransmitter";
type: "address";
}, {
internalType: "uint32";
name: "_messageBodyVersion";
type: "uint32";
}];
stateMutability: "nonpayable";
type: "constructor";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "uint64";
name: "nonce";
type: "uint64";
}, {
indexed: true;
internalType: "address";
name: "burnToken";
type: "address";
}, {
indexed: false;
internalType: "uint256";
name: "amount";
type: "uint256";
}, {
indexed: true;
internalType: "address";
name: "depositor";
type: "address";
}, {
indexed: false;
internalType: "bytes32";
name: "mintRecipient";
type: "bytes32";
}, {
indexed: false;
internalType: "uint32";
name: "destinationDomain";
type: "uint32";
}, {
indexed: false;
internalType: "bytes32";
name: "destinationTokenMessenger";
type: "bytes32";
}, {
indexed: false;
internalType: "bytes32";
name: "destinationCaller";
type: "bytes32";
}];
name: "DepositForBurn";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: false;
internalType: "address";
name: "localMinter";
type: "address";
}];
name: "LocalMinterAdded";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: false;
internalType: "address";
name: "localMinter";
type: "address";
}];
name: "LocalMinterRemoved";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "address";
name: "mintRecipient";
type: "address";
}, {
indexed: false;
internalType: "uint256";
name: "amount";
type: "uint256";
}, {
indexed: true;
internalType: "address";
name: "mintToken";
type: "address";
}];
name: "MintAndWithdraw";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "address";
name: "previousOwner";
type: "address";
}, {
indexed: true;
internalType: "address";
name: "newOwner";
type: "address";
}];
name: "OwnershipTransferStarted";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "address";
name: "previousOwner";
type: "address";
}, {
indexed: true;
internalType: "address";
name: "newOwner";
type: "address";
}];
name: "OwnershipTransferred";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: false;
internalType: "uint32";
name: "domain";
type: "uint32";
}, {
indexed: false;
internalType: "bytes32";
name: "tokenMessenger";
type: "bytes32";
}];
name: "RemoteTokenMessengerAdded";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: false;
internalType: "uint32";
name: "domain";
type: "uint32";
}, {
indexed: false;
internalType: "bytes32";
name: "tokenMessenger";
type: "bytes32";
}];
name: "RemoteTokenMessengerRemoved";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "address";
name: "newRescuer";
type: "address";
}];
name: "RescuerChanged";
type: "event";
}, {
inputs: readonly [];
name: "acceptOwnership";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "newLocalMinter";
type: "address";
}];
name: "addLocalMinter";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint32";
name: "domain";
type: "uint32";
}, {
internalType: "bytes32";
name: "tokenMessenger";
type: "bytes32";
}];
name: "addRemoteTokenMessenger";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "amount";
type: "uint256";
}, {
internalType: "uint32";
name: "destinationDomain";
type: "uint32";
}, {
internalType: "bytes32";
name: "mintRecipient";
type: "bytes32";
}, {
internalType: "address";
name: "burnToken";
type: "address";
}];
name: "depositForBurn";
outputs: readonly [{
internalType: "uint64";
name: "_nonce";
type: "uint64";
}];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "amount";
type: "uint256";
}, {
internalType: "uint32";
name: "destinationDomain";
type: "uint32";
}, {
internalType: "bytes32";
name: "mintRecipient";
type: "bytes32";
}, {
internalType: "address";
name: "burnToken";
type: "address";
}, {
internalType: "bytes32";
name: "destinationCaller";
type: "bytes32";
}];
name: "depositForBurnWithCaller";
outputs: readonly [{
internalType: "uint64";
name: "nonce";
type: "uint64";
}];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint32";
name: "remoteDomain";
type: "uint32";
}, {
internalType: "bytes32";
name: "sender";
type: "bytes32";
}, {
internalType: "bytes";
name: "messageBody";
type: "bytes";
}];
name: "handleReceiveMessage";
outputs: readonly [{
internalType: "bool";
name: "";
type: "bool";
}];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [];
name: "localMessageTransmitter";
outputs: readonly [{
internalType: "contract IMessageTransmitter";
name: "";
type: "address";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "localMinter";
outputs: readonly [{
internalType: "contract ITokenMinter";
name: "";
type: "address";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "messageBodyVersion";
outputs: readonly [{
internalType: "uint32";
name: "";
type: "uint32";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "owner";
outputs: readonly [{
internalType: "address";
name: "";
type: "address";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "pendingOwner";
outputs: readonly [{
internalType: "address";
name: "";
type: "address";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint32";
name: "";
type: "uint32";
}];
name: "remoteTokenMessengers";
outputs: readonly [{
internalType: "bytes32";
name: "";
type: "bytes32";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "removeLocalMinter";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint32";
name: "domain";
type: "uint32";
}];
name: "removeRemoteTokenMessenger";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "bytes";
name: "originalMessage";
type: "bytes";
}, {
internalType: "bytes";
name: "originalAttestation";
type: "bytes";
}, {
internalType: "bytes32";
name: "newDestinationCaller";
type: "bytes32";
}, {
internalType: "bytes32";
name: "newMintRecipient";
type: "bytes32";
}];
name: "replaceDepositForBurn";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "contract IERC20";
name: "tokenContract";
type: "address";
}, {
internalType: "address";
name: "to";
type: "address";
}, {
internalType: "uint256";
name: "amount";
type: "uint256";
}];
name: "rescueERC20";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [];
name: "rescuer";
outputs: readonly [{
internalType: "address";
name: "";
type: "address";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "newOwner";
type: "address";
}];
name: "transferOwnership";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "newRescuer";
type: "address";
}];
name: "updateRescuer";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}] = _abi

- Defined in platforms/evm/protocols/cctp/src/ethers-contracts/factories/TokenMessenger__factory.ts:648

### `Static` `Readonly` bytecode

bytecode: " $8c977731748aa4504deed57239565df533$ $8c977731748aa4504deed57239565df533$ $8c977731748aa4504deed57239565df533$ $8c977731748aa4504deed57239565df533$__6382c947b78a6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561205e57600080fd5b505af4158015612072573d6000803e3d6000fd5b505050506040513d602081101561208857600080fd5b5051604080517f82c947b700000000000000000000000000000000000000000000000000000000815233600482015290518c918f9173__$8c977731748aa4504deed57239565df533$ " = _bytecode

- Defined in platforms/evm/protocols/cctp/src/ethers-contracts/factories/TokenMessenger__factory.ts:647

## Methods

### connect

- connect(runner): TokenMessenger__factory

- #### Parameters

  - ##### runner: ContractRunner

  #### Returns TokenMessenger__factory

  Overrides ContractFactory.connect

  - Defined in platforms/evm/protocols/cctp/src/ethers-contracts/factories/TokenMessenger__factory.ts:643

### deploy

- deploy(_messageTransmitter, _messageBodyVersion, overrides?): Promise<TokenMessenger & {
  deploymentTransaction() => ContractTransactionResponse;
  }>

- #### Parameters

  - ##### _messageTransmitter: AddressLike

  - ##### _messageBodyVersion: BigNumberish

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

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

  Overrides ContractFactory.deploy

  - Defined in platforms/evm/protocols/cctp/src/ethers-contracts/factories/TokenMessenger__factory.ts:628

### getDeployTransaction

- getDeployTransaction(_messageTransmitter, _messageBodyVersion, overrides?): Promise<ContractDeployTransaction>

- #### Parameters

  - ##### _messageTransmitter: AddressLike

  - ##### _messageBodyVersion: BigNumberish

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

  #### Returns Promise<ContractDeployTransaction>

  Overrides ContractFactory.getDeployTransaction

  - Defined in platforms/evm/protocols/cctp/src/ethers-contracts/factories/TokenMessenger__factory.ts:617

### `Static` connect

- connect(address, runner?): TokenMessenger

- #### Parameters

  - ##### address: string

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

  #### Returns TokenMessenger

  - Defined in platforms/evm/protocols/cctp/src/ethers-contracts/factories/TokenMessenger__factory.ts:652

### `Static` createInterface

- createInterface(): TokenMessengerInterface

- #### Returns TokenMessengerInterface

  - Defined in platforms/evm/protocols/cctp/src/ethers-contracts/factories/TokenMessenger__factory.ts:649

### `Static` linkBytecode

- linkBytecode(linkLibraryAddresses): string

- #### Parameters

  - ##### linkLibraryAddresses: TokenMessengerLibraryAddresses

  #### Returns string

  - Defined in platforms/evm/protocols/cctp/src/ethers-contracts/factories/TokenMessenger__factory.ts:602

Generated using TypeDoc