# IAsterizmEnv

The `IAsterizmEnv` interface defines a set of data transfer objects (DTOs) used to manage cross-chain transactions. These DTOs enable the handling of transaction data, from initialization to validation.

{% @github-files/github-code-block url="<https://github.com/Asterizm-Protocol/asterizm-contracts-evm/blob/master/contracts/interfaces/IAsterizmEnv.sol>" %}

### Structs

#### BaseTransferDirectionDto

Defines source and destination chain details for cross-chain transactions.

**Fields:** `srcChainId`, `srcAddress`, `dstChainId`, `dstAddress`

#### ClInitTransferRequestDto

Represents the client’s request to initiate a transfer.

**Fields:** `dstChainId`, `dstAddress`, `feeAmount`, `txId`, `transferHash`

#### InternalClInitTransferRequestDto

Internal structure for initializing a client transfer.

**Fields:** `dstChainId`, `dstAddress`, `feeAmount`, `payload`

#### IzAsterizmReceiveRequestDto

Used for processing received transfer requests on the initializer's side.

**Fields:** `srcChainId`, `srcAddress`, `dstChainId`, `dstAddress`, `txId`, `transferHash`

#### ClAsterizmReceiveRequestDto

Client-side structure for receiving transfers.

**Fields:** `srcChainId`, `srcAddress`, `dstChainId`, `dstAddress`, `txId`, `transferHash`, `payload`

#### TrSendMessageRequestDto

Structure with details for sending messages between chains using the translator.

**Fields:** `srcAddress`, `dstChainId`, `dstAddress`, `txId`, `transferHash`, `transferResultNotifyFlag`

#### TrTransferMessageRequestDto

Structure that specifies message transfer with gas limits for the translator.

**Fields:** `gasLimit`, `payload`

#### IzInitTransferRequestDto

Defines the initializer's transfer request, including relay details and fees.

**Fields:** `dstChainId`, `dstAddress`, `transferHash`, `txId`, `relay`, `transferResultNotifyFlag`, `feeToken`

#### IzReceivePayloadRequestDto

Used by the initializer to process received payloads.

**Fields:** `srcChainId`, `srcAddress`, `dstChainId`, `dstAddress`, `gasLimit`, `txId`, `transferHash`

#### IzRetryPayloadRequestDto

Handles retrying payload delivery with additional control parameters.

**Fields:** `srcChainId`, `srcAddress`, `dstChainId`, `dstAddress`, `nonce`, `gasLimit`, `forceOrder`, `useEncryption`, `transferHash`, `payload`
