L1L3Bridger

class arbitrum_py.asset_bridger.l1_l3_bridger.TeleportationType[source]

Bases: object

Enum-like class for teleportation types.

Variables:
  • Standard – Standard teleportation

  • OnlyGasToken – Teleportation of only gas token

  • NonGasTokenToCustomGas – Teleportation of non-gas token to custom gas

Standard = 0
OnlyGasToken = 1
NonGasTokenToCustomGas = 2
class arbitrum_py.asset_bridger.l1_l3_bridger.RetryableGasValues(gas_limit, max_submission_fee)[source]

Bases: object

Gas values for retryable transactions.

Variables:
  • gasLimit – Gas limit

  • maxSubmissionFee – Maximum submission fee

__init__(gas_limit, max_submission_fee)[source]
class arbitrum_py.asset_bridger.l1_l3_bridger.TeleporterRetryableGasOverride(gas_limit=None, max_submission_fee=None)[source]

Bases: object

Gas overrides for teleporter retryable transactions.

Variables:
  • gasLimit – Gas limit override

  • maxSubmissionFee – Maximum submission fee override

__init__(gas_limit=None, max_submission_fee=None)[source]
class arbitrum_py.asset_bridger.l1_l3_bridger.TokenApproveParams(erc20_l1_address, amount=None)[source]

Bases: object

Parameters for token approval.

Variables:
  • erc20L1Address – ERC20 L1 address

  • amount – Amount to approve

__init__(erc20_l1_address, amount=None)[source]
class arbitrum_py.asset_bridger.l1_l3_bridger.TxRequestParams(tx_request, l1_signer, overrides=None)[source]

Bases: object

Parameters for transaction requests.

Variables:
  • txRequest – Transaction request

  • l1Signer – L1 signer

  • overrides – Transaction overrides

__init__(tx_request, l1_signer, overrides=None)[source]
class arbitrum_py.asset_bridger.l1_l3_bridger.DepositRequestResult(tx_request, gas_token_amount)[source]

Bases: object

Result of a deposit request.

Variables:
  • txRequest – Transaction request

  • gasTokenAmount – Gas token amount

__init__(tx_request, gas_token_amount)[source]
class arbitrum_py.asset_bridger.l1_l3_bridger.Erc20L1L3DepositRequestRetryableOverrides(l1GasPrice=None, l2GasPrice=None, l3GasPrice=None, l2ForwarderFactoryRetryableGas=None, l1l2GasTokenBridgeRetryableGas=None, l1l2TokenBridgeRetryableGas=None, l2l3TokenBridgeRetryableGas=None)[source]

Bases: object

Overrides for ERC20 L1->L3 deposit retryable transactions.

Variables:
  • l1GasPrice – L1 gas price override

  • l2GasPrice – L2 gas price override

  • l3GasPrice – L3 gas price override

  • l2ForwarderFactoryRetryableGas – L2 forwarder factory retryable gas override

  • l1l2GasTokenBridgeRetryableGas – L1->L2 gas token bridge retryable gas override

  • l1l2TokenBridgeRetryableGas – L1->L2 token bridge retryable gas override

  • l2l3TokenBridgeRetryableGas – L2->L3 token bridge retryable gas override

__init__(l1GasPrice=None, l2GasPrice=None, l3GasPrice=None, l2ForwarderFactoryRetryableGas=None, l1l2GasTokenBridgeRetryableGas=None, l1l2TokenBridgeRetryableGas=None, l2l3TokenBridgeRetryableGas=None)[source]
class arbitrum_py.asset_bridger.l1_l3_bridger.Erc20L1L3DepositRequestParams(erc20L1Address, amount, l2Provider, l3Provider, skipGasToken=False, destinationAddress=None, retryableOverrides=None)[source]

Bases: object

Parameters for ERC20 L1->L3 deposit requests.

Variables:
  • erc20L1Address – ERC20 L1 address

  • amount – Amount to deposit

  • l2Provider – L2 provider

  • l3Provider – L3 provider

  • skipGasToken – Skip gas token

  • destinationAddress – Destination address

  • retryableOverrides – Retryable overrides

__init__(erc20L1Address, amount, l2Provider, l3Provider, skipGasToken=False, destinationAddress=None, retryableOverrides=None)[source]
class arbitrum_py.asset_bridger.l1_l3_bridger.TxReference(txHash=None, tx=None, txReceipt=None)[source]

Bases: object

Reference to a transaction.

Variables:
  • txHash – Transaction hash

  • tx – Transaction

  • txReceipt – Transaction receipt

__init__(txHash=None, tx=None, txReceipt=None)[source]
class arbitrum_py.asset_bridger.l1_l3_bridger.GetL1L3DepositStatusParams(l1Provider, l2Provider, l3Provider, txHash=None, tx=None, txReceipt=None)[source]

Bases: TxReference

Parameters for getting L1->L3 deposit status.

Variables:
  • l1Provider – L1 provider

  • l2Provider – L2 provider

  • l3Provider – L3 provider

__init__(l1Provider, l2Provider, l3Provider, txHash=None, tx=None, txReceipt=None)[source]
class arbitrum_py.asset_bridger.l1_l3_bridger.Erc20L1L3DepositStatus(l1l2TokenBridgeRetryable, l2ForwarderFactoryRetryable, completed, l1l2GasTokenBridgeRetryable=None, l2l3TokenBridgeRetryable=None, l2ForwarderFactoryRetryableFrontRan=False)[source]

Bases: object

Status of an ERC20 L1->L3 deposit.

Variables:
  • l1l2TokenBridgeRetryable – L1->L2 token bridge retryable status

  • l1l2GasTokenBridgeRetryable – L1->L2 gas token bridge retryable status

  • l2ForwarderFactoryRetryable – L2 forwarder factory retryable status

  • l2l3TokenBridgeRetryable – L2->L3 token bridge retryable status

  • l2ForwarderFactoryRetryableFrontRan – L2 forwarder factory retryable front ran

  • completed – Deposit completed

__init__(l1l2TokenBridgeRetryable, l2ForwarderFactoryRetryable, completed, l1l2GasTokenBridgeRetryable=None, l2l3TokenBridgeRetryable=None, l2ForwarderFactoryRetryableFrontRan=False)[source]
class arbitrum_py.asset_bridger.l1_l3_bridger.EthL1L3DepositRequestParams(amount, l2Provider, l3Provider, destinationAddress=None, l2RefundAddress=None, l2TicketGasOverrides=None, l3TicketGasOverrides=None)[source]

Bases: object

Parameters for ETH L1->L3 deposit requests.

Variables:
  • amount – Amount to deposit

  • l2Provider – L2 provider

  • l3Provider – L3 provider

  • destinationAddress – Destination address

  • l2RefundAddress – L2 refund address

  • l2TicketGasOverrides – L2 ticket gas overrides

  • l3TicketGasOverrides – L3 ticket gas overrides

__init__(amount, l2Provider, l3Provider, destinationAddress=None, l2RefundAddress=None, l2TicketGasOverrides=None, l3TicketGasOverrides=None)[source]
class arbitrum_py.asset_bridger.l1_l3_bridger.EthL1L3DepositStatus(l2Retryable, completed, l3Retryable=None)[source]

Bases: object

Status of an ETH L1->L3 deposit.

Variables:
  • l2Retryable – L2 retryable status

  • l3Retryable – L3 retryable status

  • completed – Deposit completed

__init__(l2Retryable, completed, l3Retryable=None)[source]
class arbitrum_py.asset_bridger.l1_l3_bridger.BaseL1L3Bridger(l3_network)[source]

Bases: object

Base class for L1->L3 bridgers.

__init__(l3_network)[source]

Initialize the bridger.

Parameters:

l3_network (ArbitrumNetwork) – The L3 network

_check_l1_network(sop)[source]

Check if the signer/provider is on the expected L1 chain.

_check_l2_network(sop)[source]

Check if the signer/provider is on the expected L2 chain.

_check_l3_network(sop)[source]

Check if the signer/provider is on the expected L3 chain.

_percent_increase(num, increase)[source]

Calculate the percent increase.

Parameters:
  • num (int) – The base number

  • increase (int) – The percent to increase by

Return type:

int

_get_tx_hash_from_tx_ref(tx_ref)[source]

Get the transaction hash from a transaction reference.

Parameters:

tx_ref (Union[Dict[str, Any], TxReference]) – The transaction reference

Return type:

str

_get_tx_from_tx_ref(tx_ref, provider)[source]

Get the transaction from a transaction reference.

Parameters:
  • tx_ref (Union[Dict[str, Any], TxReference]) – The transaction reference

  • provider (Web3) – The provider

Return type:

ParentContractCallTransaction

_get_tx_receipt_from_tx_ref(tx_ref, provider)[source]

Get the transaction receipt from a transaction reference.

Parameters:
  • tx_ref (Union[Dict[str, Any], TxReference]) – The transaction reference

  • provider (Web3) – The provider

Return type:

ParentContractCallTransactionReceipt

class arbitrum_py.asset_bridger.l1_l3_bridger.Erc20L1L3Bridger(l3_network)[source]

Bases: BaseL1L3Bridger

Erc20 L1->L3 bridger.

__init__(l3_network)[source]

Initialize the bridger.

Parameters:

l3_network (ArbitrumNetwork) – The L3 network

get_gas_token_on_l1(l1_provider, l2_provider)[source]

Get the gas token on L1.

Parameters:
  • l1_provider (Web3) – The L1 provider

  • l2_provider (Web3) – The L2 provider

Return type:

str

get_l2_erc20_address(erc20_l1_address, l1_provider)[source]
Return type:

str

get_l3_erc20_address(erc20_l1_address, l1_provider, l2_provider)[source]
Return type:

str

get_l1l2_gateway_address(erc20_l1_address, l1_provider)[source]
Return type:

str

get_l2l3_gateway_address(erc20_l1_address, l1_provider, l2_provider)[source]
Return type:

str

get_l1_token_contract(l1_token_addr, l1_provider)[source]
get_l2_token_contract(l2_token_addr, l2_provider)[source]
get_l3_token_contract(l3_token_addr, l3_provider)[source]
l1_token_is_disabled(l1_token_address, l1_provider)[source]
Return type:

bool

l2_token_is_disabled(l2_token_address, l2_provider)[source]
Return type:

bool

l2_forwarder_address(owner, router_or_inbox, destination_address, l1_or_l2_provider)[source]
Return type:

str

get_approve_token_request(params)[source]

Get the approve token request.

Parameters:

params (Dict[str, Any]) – The parameters

Return type:

Dict[str, Any]

approve_token(params)[source]
get_approve_gas_token_request(params)[source]

Get the approve gas token request.

Parameters:

params (Dict[str, Any]) – The parameters

Return type:

Dict[str, Any]

approve_gas_token(params)[source]
get_deposit_request(params)[source]

Get the deposit request.

Parameters:

params (Dict[str, Any]) – The parameters

Return type:

Dict[str, Any]

deposit(params)[source]
Return type:

ParentContractCallTransaction

get_deposit_parameters(params)[source]
Return type:

Dict[str, Any]

get_deposit_status(params)[source]
Return type:

Dict[str, Any]

teleportation_type(partial_teleport_params)[source]
Return type:

int

class arbitrum_py.asset_bridger.l1_l3_bridger.EthL1L3Bridger(l3_network)[source]

Bases: BaseL1L3Bridger

__init__(l3_network)[source]

Initialize the bridger.

Parameters:

l3_network (ArbitrumNetwork) – The L3 network

get_deposit_request(params)[source]
Return type:

Dict[str, Any]

deposit(params)[source]
Return type:

ParentContractCallTransaction

get_deposit_parameters(params)[source]
Return type:

Dict[str, Any]

get_deposit_status(params)[source]
Return type:

Dict[str, Any]