# GasFeePricing

## Methods

### decodeOptions

```solidity
function decodeOptions(bytes _options) external pure returns (uint16, uint256, uint256, bytes32)
```

#### Parameters

| Name      | Type  | Description |
| --------- | ----- | ----------- |
| \_options | bytes | undefined   |

#### Returns

| Name | Type    | Description |
| ---- | ------- | ----------- |
| \_0  | uint16  | undefined   |
| \_1  | uint256 | undefined   |
| \_2  | uint256 | undefined   |
| \_3  | bytes32 | undefined   |

### dstGasPriceInWei

```solidity
function dstGasPriceInWei(uint256) external view returns (uint256)
```

#### Parameters

| Name | Type    | Description |
| ---- | ------- | ----------- |
| \_0  | uint256 | undefined   |

#### Returns

| Name | Type    | Description |
| ---- | ------- | ----------- |
| \_0  | uint256 | undefined   |

### dstGasTokenRatio

```solidity
function dstGasTokenRatio(uint256) external view returns (uint256)
```

#### Parameters

| Name | Type    | Description |
| ---- | ------- | ----------- |
| \_0  | uint256 | undefined   |

#### Returns

| Name | Type    | Description |
| ---- | ------- | ----------- |
| \_0  | uint256 | undefined   |

### encodeOptions

```solidity
function encodeOptions(uint16 txType, uint256 gasLimit) external pure returns (bytes)
```

#### Parameters

| Name     | Type    | Description |
| -------- | ------- | ----------- |
| txType   | uint16  | undefined   |
| gasLimit | uint256 | undefined   |

#### Returns

| Name | Type  | Description |
| ---- | ----- | ----------- |
| \_0  | bytes | undefined   |

### encodeOptions

```solidity
function encodeOptions(uint16 txType, uint256 gasLimit, uint256 dstNativeAmt, bytes32 dstAddress) external pure returns (bytes)
```

#### Parameters

| Name         | Type    | Description |
| ------------ | ------- | ----------- |
| txType       | uint16  | undefined   |
| gasLimit     | uint256 | undefined   |
| dstNativeAmt | uint256 | undefined   |
| dstAddress   | bytes32 | undefined   |

#### Returns

| Name | Type  | Description |
| ---- | ----- | ----------- |
| \_0  | bytes | undefined   |

### estimateGasFee

```solidity
function estimateGasFee(uint256 _dstChainId, bytes _options) external view returns (uint256)
```

Returns srcGasToken fee to charge in wei for the cross-chain message based on the gas limit

#### Parameters

| Name         | Type    | Description                                                                                                                |
| ------------ | ------- | -------------------------------------------------------------------------------------------------------------------------- |
| \_dstChainId | uint256 | undefined                                                                                                                  |
| \_options    | bytes   | Versioned struct used to instruct relayer on how to proceed with gas limits. Contains data on gas limit to submit tx with. |

#### Returns

| Name | Type    | Description |
| ---- | ------- | ----------- |
| \_0  | uint256 | undefined   |

### owner

```solidity
function owner() external view returns (address)
```

*Returns the address of the current owner.*

#### Returns

| Name | Type    | Description |
| ---- | ------- | ----------- |
| \_0  | address | undefined   |

### renounceOwnership

```solidity
function renounceOwnership() external nonpayable
```

*Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.*

### setCostPerChain

```solidity
function setCostPerChain(uint256 _dstChainId, uint256 _gasUnitPrice, uint256 _gasTokenPriceRatio) external nonpayable
```

Permissioned method to allow an off-chain party to set what each dstChain's gas cost is priced in the srcChain's native gas currency. Example: call on ETH, setCostPerChain(43114, 30000000000, 25180000000000000) chain ID 43114 Average of 30 gwei cost to transaction on 43114 AVAX/ETH = 0.02518, scaled to gas in wei = 25180000000000000

#### Parameters

| Name                 | Type    | Description                                                                               |
| -------------------- | ------- | ----------------------------------------------------------------------------------------- |
| \_dstChainId         | uint256 | The destination chain ID - typically, standard EVM chain ID, but differs on nonEVM chains |
| \_gasUnitPrice       | uint256 | The estimated current gas price in wei of the destination chain                           |
| \_gasTokenPriceRatio | uint256 | USD gas ratio of dstGasToken / srcGasToken                                                |

### transferOwnership

```solidity
function transferOwnership(address newOwner) external nonpayable
```

*Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.*

#### Parameters

| Name     | Type    | Description |
| -------- | ------- | ----------- |
| newOwner | address | undefined   |

## Events

### OwnershipTransferred

```solidity
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
```

#### Parameters

| Name                    | Type    | Description |
| ----------------------- | ------- | ----------- |
| previousOwner `indexed` | address | undefined   |
| newOwner `indexed`      | address | undefined   |


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://contracts.synapseprotocol.com/messaging/gasfeepricing.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
