github.com/status-im/status-go@v1.1.0/contracts/hop/l2Contracts/l2OptimismBridge/l2OptimismBridge.go (about)

     1  // Code generated - DO NOT EDIT.
     2  // This file is a generated binding and any manual changes will be lost.
     3  
     4  package hopL2OptimismBridge
     5  
     6  import (
     7  	"errors"
     8  	"math/big"
     9  	"strings"
    10  
    11  	ethereum "github.com/ethereum/go-ethereum"
    12  	"github.com/ethereum/go-ethereum/accounts/abi"
    13  	"github.com/ethereum/go-ethereum/accounts/abi/bind"
    14  	"github.com/ethereum/go-ethereum/common"
    15  	"github.com/ethereum/go-ethereum/core/types"
    16  	"github.com/ethereum/go-ethereum/event"
    17  )
    18  
    19  // Reference imports to suppress errors if they are not otherwise used.
    20  var (
    21  	_ = errors.New
    22  	_ = big.NewInt
    23  	_ = strings.NewReader
    24  	_ = ethereum.NotFound
    25  	_ = bind.Bind
    26  	_ = common.Big1
    27  	_ = types.BloomLookup
    28  	_ = event.NewSubscription
    29  	_ = abi.ConvertType
    30  )
    31  
    32  // BridgeTransferRoot is an auto generated low-level Go binding around an user-defined struct.
    33  type BridgeTransferRoot struct {
    34  	Total           *big.Int
    35  	AmountWithdrawn *big.Int
    36  	CreatedAt       *big.Int
    37  }
    38  
    39  // HopL2OptimismBridgeMetaData contains all meta data concerning the HopL2OptimismBridge contract.
    40  var HopL2OptimismBridgeMetaData = &bind.MetaData{
    41  	ABI: "[{\"inputs\":[{\"internalType\":\"contractiOVM_L2CrossDomainMessenger\",\"name\":\"_messenger\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"l1Governance\",\"type\":\"address\"},{\"internalType\":\"contractHopBridgeToken\",\"name\":\"hToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"l1BridgeAddress\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"activeChainIds\",\"type\":\"uint256[]\"},{\"internalType\":\"address[]\",\"name\":\"bonders\",\"type\":\"address[]\"},{\"internalType\":\"uint32\",\"name\":\"_defaultGasLimit\",\"type\":\"uint32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newBonder\",\"type\":\"address\"}],\"name\":\"BonderAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousBonder\",\"type\":\"address\"}],\"name\":\"BonderRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"bonder\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"rootHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"totalBondsSettled\",\"type\":\"uint256\"}],\"name\":\"MultipleWithdrawalsSettled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Stake\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"relayer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"relayerFee\",\"type\":\"uint256\"}],\"name\":\"TransferFromL1Completed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"rootHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"totalAmount\",\"type\":\"uint256\"}],\"name\":\"TransferRootSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"transferId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"transferNonce\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bonderFee\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"TransferSent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"destinationChainId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"rootHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"totalAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"rootCommittedAt\",\"type\":\"uint256\"}],\"name\":\"TransfersCommitted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Unstake\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"bonder\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"transferId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"rootHash\",\"type\":\"bytes32\"}],\"name\":\"WithdrawalBondSettled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"transferId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"WithdrawalBonded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"transferId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"transferNonce\",\"type\":\"bytes32\"}],\"name\":\"Withdrew\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"activeChainIds\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"chainIds\",\"type\":\"uint256[]\"}],\"name\":\"addActiveChainIds\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"bonder\",\"type\":\"address\"}],\"name\":\"addBonder\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ammWrapper\",\"outputs\":[{\"internalType\":\"contractI_L2_AmmWrapper\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"transferNonce\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"bonderFee\",\"type\":\"uint256\"}],\"name\":\"bondWithdrawal\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"transferNonce\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"bonderFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"bondWithdrawalAndDistribute\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"destinationChainId\",\"type\":\"uint256\"}],\"name\":\"commitTransfers\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"defaultGasLimit\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"relayer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"relayerFee\",\"type\":\"uint256\"}],\"name\":\"distribute\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"bonder\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"transferId\",\"type\":\"bytes32\"}],\"name\":\"getBondedWithdrawalAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"bonder\",\"type\":\"address\"}],\"name\":\"getCredit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"bonder\",\"type\":\"address\"}],\"name\":\"getDebitAndAdditionalDebit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"maybeBonder\",\"type\":\"address\"}],\"name\":\"getIsBonder\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNextTransferNonce\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"bonder\",\"type\":\"address\"}],\"name\":\"getRawDebit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"transferNonce\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"bonderFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"getTransferId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"rootHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"totalAmount\",\"type\":\"uint256\"}],\"name\":\"getTransferRoot\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"total\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountWithdrawn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"}],\"internalType\":\"structBridge.TransferRoot\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"rootHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"totalAmount\",\"type\":\"uint256\"}],\"name\":\"getTransferRootId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"hToken\",\"outputs\":[{\"internalType\":\"contractHopBridgeToken\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"transferId\",\"type\":\"bytes32\"}],\"name\":\"isTransferIdSpent\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l1BridgeAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l1BridgeCaller\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l1Governance\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"lastCommitTimeForChainId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxPendingTransfers\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"messenger\",\"outputs\":[{\"internalType\":\"contractiOVM_L2CrossDomainMessenger\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minBonderBps\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minBonderFeeAbsolute\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minimumForceCommitDelay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"pendingAmountForChainId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"pendingTransferIdsForChainId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"chainIds\",\"type\":\"uint256[]\"}],\"name\":\"removeActiveChainIds\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"bonder\",\"type\":\"address\"}],\"name\":\"removeBonder\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"rootHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"originalAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"rescueTransferRoot\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"bonderFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"send\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractI_L2_AmmWrapper\",\"name\":\"_ammWrapper\",\"type\":\"address\"}],\"name\":\"setAmmWrapper\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_defaultGasLimit\",\"type\":\"uint32\"}],\"name\":\"setDefaultGasLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"setHopBridgeTokenOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_l1BridgeAddress\",\"type\":\"address\"}],\"name\":\"setL1BridgeAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_l1BridgeCaller\",\"type\":\"address\"}],\"name\":\"setL1BridgeCaller\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_l1Governance\",\"type\":\"address\"}],\"name\":\"setL1Governance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_maxPendingTransfers\",\"type\":\"uint256\"}],\"name\":\"setMaxPendingTransfers\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractiOVM_L2CrossDomainMessenger\",\"name\":\"_messenger\",\"type\":\"address\"}],\"name\":\"setMessenger\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_minBonderBps\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_minBonderFeeAbsolute\",\"type\":\"uint256\"}],\"name\":\"setMinimumBonderFeeRequirements\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_minimumForceCommitDelay\",\"type\":\"uint256\"}],\"name\":\"setMinimumForceCommitDelay\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"rootHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"totalAmount\",\"type\":\"uint256\"}],\"name\":\"setTransferRoot\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"bonder\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"transferId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"rootHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"transferRootTotalAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"transferIdTreeIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"siblings\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"totalLeaves\",\"type\":\"uint256\"}],\"name\":\"settleBondedWithdrawal\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"bonder\",\"type\":\"address\"},{\"internalType\":\"bytes32[]\",\"name\":\"transferIds\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"totalAmount\",\"type\":\"uint256\"}],\"name\":\"settleBondedWithdrawals\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"bonder\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"stake\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"transferNonceIncrementer\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"unstake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"transferNonce\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"bonderFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"rootHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"transferRootTotalAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"transferIdTreeIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"siblings\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"totalLeaves\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]",
    42  }
    43  
    44  // HopL2OptimismBridgeABI is the input ABI used to generate the binding from.
    45  // Deprecated: Use HopL2OptimismBridgeMetaData.ABI instead.
    46  var HopL2OptimismBridgeABI = HopL2OptimismBridgeMetaData.ABI
    47  
    48  // HopL2OptimismBridge is an auto generated Go binding around an Ethereum contract.
    49  type HopL2OptimismBridge struct {
    50  	HopL2OptimismBridgeCaller     // Read-only binding to the contract
    51  	HopL2OptimismBridgeTransactor // Write-only binding to the contract
    52  	HopL2OptimismBridgeFilterer   // Log filterer for contract events
    53  }
    54  
    55  // HopL2OptimismBridgeCaller is an auto generated read-only Go binding around an Ethereum contract.
    56  type HopL2OptimismBridgeCaller struct {
    57  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    58  }
    59  
    60  // HopL2OptimismBridgeTransactor is an auto generated write-only Go binding around an Ethereum contract.
    61  type HopL2OptimismBridgeTransactor struct {
    62  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    63  }
    64  
    65  // HopL2OptimismBridgeFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
    66  type HopL2OptimismBridgeFilterer struct {
    67  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    68  }
    69  
    70  // HopL2OptimismBridgeSession is an auto generated Go binding around an Ethereum contract,
    71  // with pre-set call and transact options.
    72  type HopL2OptimismBridgeSession struct {
    73  	Contract     *HopL2OptimismBridge // Generic contract binding to set the session for
    74  	CallOpts     bind.CallOpts        // Call options to use throughout this session
    75  	TransactOpts bind.TransactOpts    // Transaction auth options to use throughout this session
    76  }
    77  
    78  // HopL2OptimismBridgeCallerSession is an auto generated read-only Go binding around an Ethereum contract,
    79  // with pre-set call options.
    80  type HopL2OptimismBridgeCallerSession struct {
    81  	Contract *HopL2OptimismBridgeCaller // Generic contract caller binding to set the session for
    82  	CallOpts bind.CallOpts              // Call options to use throughout this session
    83  }
    84  
    85  // HopL2OptimismBridgeTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
    86  // with pre-set transact options.
    87  type HopL2OptimismBridgeTransactorSession struct {
    88  	Contract     *HopL2OptimismBridgeTransactor // Generic contract transactor binding to set the session for
    89  	TransactOpts bind.TransactOpts              // Transaction auth options to use throughout this session
    90  }
    91  
    92  // HopL2OptimismBridgeRaw is an auto generated low-level Go binding around an Ethereum contract.
    93  type HopL2OptimismBridgeRaw struct {
    94  	Contract *HopL2OptimismBridge // Generic contract binding to access the raw methods on
    95  }
    96  
    97  // HopL2OptimismBridgeCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
    98  type HopL2OptimismBridgeCallerRaw struct {
    99  	Contract *HopL2OptimismBridgeCaller // Generic read-only contract binding to access the raw methods on
   100  }
   101  
   102  // HopL2OptimismBridgeTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
   103  type HopL2OptimismBridgeTransactorRaw struct {
   104  	Contract *HopL2OptimismBridgeTransactor // Generic write-only contract binding to access the raw methods on
   105  }
   106  
   107  // NewHopL2OptimismBridge creates a new instance of HopL2OptimismBridge, bound to a specific deployed contract.
   108  func NewHopL2OptimismBridge(address common.Address, backend bind.ContractBackend) (*HopL2OptimismBridge, error) {
   109  	contract, err := bindHopL2OptimismBridge(address, backend, backend, backend)
   110  	if err != nil {
   111  		return nil, err
   112  	}
   113  	return &HopL2OptimismBridge{HopL2OptimismBridgeCaller: HopL2OptimismBridgeCaller{contract: contract}, HopL2OptimismBridgeTransactor: HopL2OptimismBridgeTransactor{contract: contract}, HopL2OptimismBridgeFilterer: HopL2OptimismBridgeFilterer{contract: contract}}, nil
   114  }
   115  
   116  // NewHopL2OptimismBridgeCaller creates a new read-only instance of HopL2OptimismBridge, bound to a specific deployed contract.
   117  func NewHopL2OptimismBridgeCaller(address common.Address, caller bind.ContractCaller) (*HopL2OptimismBridgeCaller, error) {
   118  	contract, err := bindHopL2OptimismBridge(address, caller, nil, nil)
   119  	if err != nil {
   120  		return nil, err
   121  	}
   122  	return &HopL2OptimismBridgeCaller{contract: contract}, nil
   123  }
   124  
   125  // NewHopL2OptimismBridgeTransactor creates a new write-only instance of HopL2OptimismBridge, bound to a specific deployed contract.
   126  func NewHopL2OptimismBridgeTransactor(address common.Address, transactor bind.ContractTransactor) (*HopL2OptimismBridgeTransactor, error) {
   127  	contract, err := bindHopL2OptimismBridge(address, nil, transactor, nil)
   128  	if err != nil {
   129  		return nil, err
   130  	}
   131  	return &HopL2OptimismBridgeTransactor{contract: contract}, nil
   132  }
   133  
   134  // NewHopL2OptimismBridgeFilterer creates a new log filterer instance of HopL2OptimismBridge, bound to a specific deployed contract.
   135  func NewHopL2OptimismBridgeFilterer(address common.Address, filterer bind.ContractFilterer) (*HopL2OptimismBridgeFilterer, error) {
   136  	contract, err := bindHopL2OptimismBridge(address, nil, nil, filterer)
   137  	if err != nil {
   138  		return nil, err
   139  	}
   140  	return &HopL2OptimismBridgeFilterer{contract: contract}, nil
   141  }
   142  
   143  // bindHopL2OptimismBridge binds a generic wrapper to an already deployed contract.
   144  func bindHopL2OptimismBridge(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
   145  	parsed, err := HopL2OptimismBridgeMetaData.GetAbi()
   146  	if err != nil {
   147  		return nil, err
   148  	}
   149  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
   150  }
   151  
   152  // Call invokes the (constant) contract method with params as input values and
   153  // sets the output to result. The result type might be a single field for simple
   154  // returns, a slice of interfaces for anonymous returns and a struct for named
   155  // returns.
   156  func (_HopL2OptimismBridge *HopL2OptimismBridgeRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
   157  	return _HopL2OptimismBridge.Contract.HopL2OptimismBridgeCaller.contract.Call(opts, result, method, params...)
   158  }
   159  
   160  // Transfer initiates a plain transaction to move funds to the contract, calling
   161  // its default method if one is available.
   162  func (_HopL2OptimismBridge *HopL2OptimismBridgeRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   163  	return _HopL2OptimismBridge.Contract.HopL2OptimismBridgeTransactor.contract.Transfer(opts)
   164  }
   165  
   166  // Transact invokes the (paid) contract method with params as input values.
   167  func (_HopL2OptimismBridge *HopL2OptimismBridgeRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   168  	return _HopL2OptimismBridge.Contract.HopL2OptimismBridgeTransactor.contract.Transact(opts, method, params...)
   169  }
   170  
   171  // Call invokes the (constant) contract method with params as input values and
   172  // sets the output to result. The result type might be a single field for simple
   173  // returns, a slice of interfaces for anonymous returns and a struct for named
   174  // returns.
   175  func (_HopL2OptimismBridge *HopL2OptimismBridgeCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
   176  	return _HopL2OptimismBridge.Contract.contract.Call(opts, result, method, params...)
   177  }
   178  
   179  // Transfer initiates a plain transaction to move funds to the contract, calling
   180  // its default method if one is available.
   181  func (_HopL2OptimismBridge *HopL2OptimismBridgeTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   182  	return _HopL2OptimismBridge.Contract.contract.Transfer(opts)
   183  }
   184  
   185  // Transact invokes the (paid) contract method with params as input values.
   186  func (_HopL2OptimismBridge *HopL2OptimismBridgeTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   187  	return _HopL2OptimismBridge.Contract.contract.Transact(opts, method, params...)
   188  }
   189  
   190  // ActiveChainIds is a free data retrieval call binding the contract method 0xc97d172e.
   191  //
   192  // Solidity: function activeChainIds(uint256 ) view returns(bool)
   193  func (_HopL2OptimismBridge *HopL2OptimismBridgeCaller) ActiveChainIds(opts *bind.CallOpts, arg0 *big.Int) (bool, error) {
   194  	var out []interface{}
   195  	err := _HopL2OptimismBridge.contract.Call(opts, &out, "activeChainIds", arg0)
   196  
   197  	if err != nil {
   198  		return *new(bool), err
   199  	}
   200  
   201  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
   202  
   203  	return out0, err
   204  
   205  }
   206  
   207  // ActiveChainIds is a free data retrieval call binding the contract method 0xc97d172e.
   208  //
   209  // Solidity: function activeChainIds(uint256 ) view returns(bool)
   210  func (_HopL2OptimismBridge *HopL2OptimismBridgeSession) ActiveChainIds(arg0 *big.Int) (bool, error) {
   211  	return _HopL2OptimismBridge.Contract.ActiveChainIds(&_HopL2OptimismBridge.CallOpts, arg0)
   212  }
   213  
   214  // ActiveChainIds is a free data retrieval call binding the contract method 0xc97d172e.
   215  //
   216  // Solidity: function activeChainIds(uint256 ) view returns(bool)
   217  func (_HopL2OptimismBridge *HopL2OptimismBridgeCallerSession) ActiveChainIds(arg0 *big.Int) (bool, error) {
   218  	return _HopL2OptimismBridge.Contract.ActiveChainIds(&_HopL2OptimismBridge.CallOpts, arg0)
   219  }
   220  
   221  // AmmWrapper is a free data retrieval call binding the contract method 0xe9cdfe51.
   222  //
   223  // Solidity: function ammWrapper() view returns(address)
   224  func (_HopL2OptimismBridge *HopL2OptimismBridgeCaller) AmmWrapper(opts *bind.CallOpts) (common.Address, error) {
   225  	var out []interface{}
   226  	err := _HopL2OptimismBridge.contract.Call(opts, &out, "ammWrapper")
   227  
   228  	if err != nil {
   229  		return *new(common.Address), err
   230  	}
   231  
   232  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   233  
   234  	return out0, err
   235  
   236  }
   237  
   238  // AmmWrapper is a free data retrieval call binding the contract method 0xe9cdfe51.
   239  //
   240  // Solidity: function ammWrapper() view returns(address)
   241  func (_HopL2OptimismBridge *HopL2OptimismBridgeSession) AmmWrapper() (common.Address, error) {
   242  	return _HopL2OptimismBridge.Contract.AmmWrapper(&_HopL2OptimismBridge.CallOpts)
   243  }
   244  
   245  // AmmWrapper is a free data retrieval call binding the contract method 0xe9cdfe51.
   246  //
   247  // Solidity: function ammWrapper() view returns(address)
   248  func (_HopL2OptimismBridge *HopL2OptimismBridgeCallerSession) AmmWrapper() (common.Address, error) {
   249  	return _HopL2OptimismBridge.Contract.AmmWrapper(&_HopL2OptimismBridge.CallOpts)
   250  }
   251  
   252  // DefaultGasLimit is a free data retrieval call binding the contract method 0x95368d2e.
   253  //
   254  // Solidity: function defaultGasLimit() view returns(uint32)
   255  func (_HopL2OptimismBridge *HopL2OptimismBridgeCaller) DefaultGasLimit(opts *bind.CallOpts) (uint32, error) {
   256  	var out []interface{}
   257  	err := _HopL2OptimismBridge.contract.Call(opts, &out, "defaultGasLimit")
   258  
   259  	if err != nil {
   260  		return *new(uint32), err
   261  	}
   262  
   263  	out0 := *abi.ConvertType(out[0], new(uint32)).(*uint32)
   264  
   265  	return out0, err
   266  
   267  }
   268  
   269  // DefaultGasLimit is a free data retrieval call binding the contract method 0x95368d2e.
   270  //
   271  // Solidity: function defaultGasLimit() view returns(uint32)
   272  func (_HopL2OptimismBridge *HopL2OptimismBridgeSession) DefaultGasLimit() (uint32, error) {
   273  	return _HopL2OptimismBridge.Contract.DefaultGasLimit(&_HopL2OptimismBridge.CallOpts)
   274  }
   275  
   276  // DefaultGasLimit is a free data retrieval call binding the contract method 0x95368d2e.
   277  //
   278  // Solidity: function defaultGasLimit() view returns(uint32)
   279  func (_HopL2OptimismBridge *HopL2OptimismBridgeCallerSession) DefaultGasLimit() (uint32, error) {
   280  	return _HopL2OptimismBridge.Contract.DefaultGasLimit(&_HopL2OptimismBridge.CallOpts)
   281  }
   282  
   283  // GetBondedWithdrawalAmount is a free data retrieval call binding the contract method 0x302830ab.
   284  //
   285  // Solidity: function getBondedWithdrawalAmount(address bonder, bytes32 transferId) view returns(uint256)
   286  func (_HopL2OptimismBridge *HopL2OptimismBridgeCaller) GetBondedWithdrawalAmount(opts *bind.CallOpts, bonder common.Address, transferId [32]byte) (*big.Int, error) {
   287  	var out []interface{}
   288  	err := _HopL2OptimismBridge.contract.Call(opts, &out, "getBondedWithdrawalAmount", bonder, transferId)
   289  
   290  	if err != nil {
   291  		return *new(*big.Int), err
   292  	}
   293  
   294  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   295  
   296  	return out0, err
   297  
   298  }
   299  
   300  // GetBondedWithdrawalAmount is a free data retrieval call binding the contract method 0x302830ab.
   301  //
   302  // Solidity: function getBondedWithdrawalAmount(address bonder, bytes32 transferId) view returns(uint256)
   303  func (_HopL2OptimismBridge *HopL2OptimismBridgeSession) GetBondedWithdrawalAmount(bonder common.Address, transferId [32]byte) (*big.Int, error) {
   304  	return _HopL2OptimismBridge.Contract.GetBondedWithdrawalAmount(&_HopL2OptimismBridge.CallOpts, bonder, transferId)
   305  }
   306  
   307  // GetBondedWithdrawalAmount is a free data retrieval call binding the contract method 0x302830ab.
   308  //
   309  // Solidity: function getBondedWithdrawalAmount(address bonder, bytes32 transferId) view returns(uint256)
   310  func (_HopL2OptimismBridge *HopL2OptimismBridgeCallerSession) GetBondedWithdrawalAmount(bonder common.Address, transferId [32]byte) (*big.Int, error) {
   311  	return _HopL2OptimismBridge.Contract.GetBondedWithdrawalAmount(&_HopL2OptimismBridge.CallOpts, bonder, transferId)
   312  }
   313  
   314  // GetChainId is a free data retrieval call binding the contract method 0x3408e470.
   315  //
   316  // Solidity: function getChainId() view returns(uint256 chainId)
   317  func (_HopL2OptimismBridge *HopL2OptimismBridgeCaller) GetChainId(opts *bind.CallOpts) (*big.Int, error) {
   318  	var out []interface{}
   319  	err := _HopL2OptimismBridge.contract.Call(opts, &out, "getChainId")
   320  
   321  	if err != nil {
   322  		return *new(*big.Int), err
   323  	}
   324  
   325  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   326  
   327  	return out0, err
   328  
   329  }
   330  
   331  // GetChainId is a free data retrieval call binding the contract method 0x3408e470.
   332  //
   333  // Solidity: function getChainId() view returns(uint256 chainId)
   334  func (_HopL2OptimismBridge *HopL2OptimismBridgeSession) GetChainId() (*big.Int, error) {
   335  	return _HopL2OptimismBridge.Contract.GetChainId(&_HopL2OptimismBridge.CallOpts)
   336  }
   337  
   338  // GetChainId is a free data retrieval call binding the contract method 0x3408e470.
   339  //
   340  // Solidity: function getChainId() view returns(uint256 chainId)
   341  func (_HopL2OptimismBridge *HopL2OptimismBridgeCallerSession) GetChainId() (*big.Int, error) {
   342  	return _HopL2OptimismBridge.Contract.GetChainId(&_HopL2OptimismBridge.CallOpts)
   343  }
   344  
   345  // GetCredit is a free data retrieval call binding the contract method 0x57344e6f.
   346  //
   347  // Solidity: function getCredit(address bonder) view returns(uint256)
   348  func (_HopL2OptimismBridge *HopL2OptimismBridgeCaller) GetCredit(opts *bind.CallOpts, bonder common.Address) (*big.Int, error) {
   349  	var out []interface{}
   350  	err := _HopL2OptimismBridge.contract.Call(opts, &out, "getCredit", bonder)
   351  
   352  	if err != nil {
   353  		return *new(*big.Int), err
   354  	}
   355  
   356  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   357  
   358  	return out0, err
   359  
   360  }
   361  
   362  // GetCredit is a free data retrieval call binding the contract method 0x57344e6f.
   363  //
   364  // Solidity: function getCredit(address bonder) view returns(uint256)
   365  func (_HopL2OptimismBridge *HopL2OptimismBridgeSession) GetCredit(bonder common.Address) (*big.Int, error) {
   366  	return _HopL2OptimismBridge.Contract.GetCredit(&_HopL2OptimismBridge.CallOpts, bonder)
   367  }
   368  
   369  // GetCredit is a free data retrieval call binding the contract method 0x57344e6f.
   370  //
   371  // Solidity: function getCredit(address bonder) view returns(uint256)
   372  func (_HopL2OptimismBridge *HopL2OptimismBridgeCallerSession) GetCredit(bonder common.Address) (*big.Int, error) {
   373  	return _HopL2OptimismBridge.Contract.GetCredit(&_HopL2OptimismBridge.CallOpts, bonder)
   374  }
   375  
   376  // GetDebitAndAdditionalDebit is a free data retrieval call binding the contract method 0xffa9286c.
   377  //
   378  // Solidity: function getDebitAndAdditionalDebit(address bonder) view returns(uint256)
   379  func (_HopL2OptimismBridge *HopL2OptimismBridgeCaller) GetDebitAndAdditionalDebit(opts *bind.CallOpts, bonder common.Address) (*big.Int, error) {
   380  	var out []interface{}
   381  	err := _HopL2OptimismBridge.contract.Call(opts, &out, "getDebitAndAdditionalDebit", bonder)
   382  
   383  	if err != nil {
   384  		return *new(*big.Int), err
   385  	}
   386  
   387  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   388  
   389  	return out0, err
   390  
   391  }
   392  
   393  // GetDebitAndAdditionalDebit is a free data retrieval call binding the contract method 0xffa9286c.
   394  //
   395  // Solidity: function getDebitAndAdditionalDebit(address bonder) view returns(uint256)
   396  func (_HopL2OptimismBridge *HopL2OptimismBridgeSession) GetDebitAndAdditionalDebit(bonder common.Address) (*big.Int, error) {
   397  	return _HopL2OptimismBridge.Contract.GetDebitAndAdditionalDebit(&_HopL2OptimismBridge.CallOpts, bonder)
   398  }
   399  
   400  // GetDebitAndAdditionalDebit is a free data retrieval call binding the contract method 0xffa9286c.
   401  //
   402  // Solidity: function getDebitAndAdditionalDebit(address bonder) view returns(uint256)
   403  func (_HopL2OptimismBridge *HopL2OptimismBridgeCallerSession) GetDebitAndAdditionalDebit(bonder common.Address) (*big.Int, error) {
   404  	return _HopL2OptimismBridge.Contract.GetDebitAndAdditionalDebit(&_HopL2OptimismBridge.CallOpts, bonder)
   405  }
   406  
   407  // GetIsBonder is a free data retrieval call binding the contract method 0xd5ef7551.
   408  //
   409  // Solidity: function getIsBonder(address maybeBonder) view returns(bool)
   410  func (_HopL2OptimismBridge *HopL2OptimismBridgeCaller) GetIsBonder(opts *bind.CallOpts, maybeBonder common.Address) (bool, error) {
   411  	var out []interface{}
   412  	err := _HopL2OptimismBridge.contract.Call(opts, &out, "getIsBonder", maybeBonder)
   413  
   414  	if err != nil {
   415  		return *new(bool), err
   416  	}
   417  
   418  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
   419  
   420  	return out0, err
   421  
   422  }
   423  
   424  // GetIsBonder is a free data retrieval call binding the contract method 0xd5ef7551.
   425  //
   426  // Solidity: function getIsBonder(address maybeBonder) view returns(bool)
   427  func (_HopL2OptimismBridge *HopL2OptimismBridgeSession) GetIsBonder(maybeBonder common.Address) (bool, error) {
   428  	return _HopL2OptimismBridge.Contract.GetIsBonder(&_HopL2OptimismBridge.CallOpts, maybeBonder)
   429  }
   430  
   431  // GetIsBonder is a free data retrieval call binding the contract method 0xd5ef7551.
   432  //
   433  // Solidity: function getIsBonder(address maybeBonder) view returns(bool)
   434  func (_HopL2OptimismBridge *HopL2OptimismBridgeCallerSession) GetIsBonder(maybeBonder common.Address) (bool, error) {
   435  	return _HopL2OptimismBridge.Contract.GetIsBonder(&_HopL2OptimismBridge.CallOpts, maybeBonder)
   436  }
   437  
   438  // GetNextTransferNonce is a free data retrieval call binding the contract method 0x051e7216.
   439  //
   440  // Solidity: function getNextTransferNonce() view returns(bytes32)
   441  func (_HopL2OptimismBridge *HopL2OptimismBridgeCaller) GetNextTransferNonce(opts *bind.CallOpts) ([32]byte, error) {
   442  	var out []interface{}
   443  	err := _HopL2OptimismBridge.contract.Call(opts, &out, "getNextTransferNonce")
   444  
   445  	if err != nil {
   446  		return *new([32]byte), err
   447  	}
   448  
   449  	out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte)
   450  
   451  	return out0, err
   452  
   453  }
   454  
   455  // GetNextTransferNonce is a free data retrieval call binding the contract method 0x051e7216.
   456  //
   457  // Solidity: function getNextTransferNonce() view returns(bytes32)
   458  func (_HopL2OptimismBridge *HopL2OptimismBridgeSession) GetNextTransferNonce() ([32]byte, error) {
   459  	return _HopL2OptimismBridge.Contract.GetNextTransferNonce(&_HopL2OptimismBridge.CallOpts)
   460  }
   461  
   462  // GetNextTransferNonce is a free data retrieval call binding the contract method 0x051e7216.
   463  //
   464  // Solidity: function getNextTransferNonce() view returns(bytes32)
   465  func (_HopL2OptimismBridge *HopL2OptimismBridgeCallerSession) GetNextTransferNonce() ([32]byte, error) {
   466  	return _HopL2OptimismBridge.Contract.GetNextTransferNonce(&_HopL2OptimismBridge.CallOpts)
   467  }
   468  
   469  // GetRawDebit is a free data retrieval call binding the contract method 0x13948c76.
   470  //
   471  // Solidity: function getRawDebit(address bonder) view returns(uint256)
   472  func (_HopL2OptimismBridge *HopL2OptimismBridgeCaller) GetRawDebit(opts *bind.CallOpts, bonder common.Address) (*big.Int, error) {
   473  	var out []interface{}
   474  	err := _HopL2OptimismBridge.contract.Call(opts, &out, "getRawDebit", bonder)
   475  
   476  	if err != nil {
   477  		return *new(*big.Int), err
   478  	}
   479  
   480  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   481  
   482  	return out0, err
   483  
   484  }
   485  
   486  // GetRawDebit is a free data retrieval call binding the contract method 0x13948c76.
   487  //
   488  // Solidity: function getRawDebit(address bonder) view returns(uint256)
   489  func (_HopL2OptimismBridge *HopL2OptimismBridgeSession) GetRawDebit(bonder common.Address) (*big.Int, error) {
   490  	return _HopL2OptimismBridge.Contract.GetRawDebit(&_HopL2OptimismBridge.CallOpts, bonder)
   491  }
   492  
   493  // GetRawDebit is a free data retrieval call binding the contract method 0x13948c76.
   494  //
   495  // Solidity: function getRawDebit(address bonder) view returns(uint256)
   496  func (_HopL2OptimismBridge *HopL2OptimismBridgeCallerSession) GetRawDebit(bonder common.Address) (*big.Int, error) {
   497  	return _HopL2OptimismBridge.Contract.GetRawDebit(&_HopL2OptimismBridge.CallOpts, bonder)
   498  }
   499  
   500  // GetTransferId is a free data retrieval call binding the contract method 0xaf215f94.
   501  //
   502  // Solidity: function getTransferId(uint256 chainId, address recipient, uint256 amount, bytes32 transferNonce, uint256 bonderFee, uint256 amountOutMin, uint256 deadline) pure returns(bytes32)
   503  func (_HopL2OptimismBridge *HopL2OptimismBridgeCaller) GetTransferId(opts *bind.CallOpts, chainId *big.Int, recipient common.Address, amount *big.Int, transferNonce [32]byte, bonderFee *big.Int, amountOutMin *big.Int, deadline *big.Int) ([32]byte, error) {
   504  	var out []interface{}
   505  	err := _HopL2OptimismBridge.contract.Call(opts, &out, "getTransferId", chainId, recipient, amount, transferNonce, bonderFee, amountOutMin, deadline)
   506  
   507  	if err != nil {
   508  		return *new([32]byte), err
   509  	}
   510  
   511  	out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte)
   512  
   513  	return out0, err
   514  
   515  }
   516  
   517  // GetTransferId is a free data retrieval call binding the contract method 0xaf215f94.
   518  //
   519  // Solidity: function getTransferId(uint256 chainId, address recipient, uint256 amount, bytes32 transferNonce, uint256 bonderFee, uint256 amountOutMin, uint256 deadline) pure returns(bytes32)
   520  func (_HopL2OptimismBridge *HopL2OptimismBridgeSession) GetTransferId(chainId *big.Int, recipient common.Address, amount *big.Int, transferNonce [32]byte, bonderFee *big.Int, amountOutMin *big.Int, deadline *big.Int) ([32]byte, error) {
   521  	return _HopL2OptimismBridge.Contract.GetTransferId(&_HopL2OptimismBridge.CallOpts, chainId, recipient, amount, transferNonce, bonderFee, amountOutMin, deadline)
   522  }
   523  
   524  // GetTransferId is a free data retrieval call binding the contract method 0xaf215f94.
   525  //
   526  // Solidity: function getTransferId(uint256 chainId, address recipient, uint256 amount, bytes32 transferNonce, uint256 bonderFee, uint256 amountOutMin, uint256 deadline) pure returns(bytes32)
   527  func (_HopL2OptimismBridge *HopL2OptimismBridgeCallerSession) GetTransferId(chainId *big.Int, recipient common.Address, amount *big.Int, transferNonce [32]byte, bonderFee *big.Int, amountOutMin *big.Int, deadline *big.Int) ([32]byte, error) {
   528  	return _HopL2OptimismBridge.Contract.GetTransferId(&_HopL2OptimismBridge.CallOpts, chainId, recipient, amount, transferNonce, bonderFee, amountOutMin, deadline)
   529  }
   530  
   531  // GetTransferRoot is a free data retrieval call binding the contract method 0xce803b4f.
   532  //
   533  // Solidity: function getTransferRoot(bytes32 rootHash, uint256 totalAmount) view returns((uint256,uint256,uint256))
   534  func (_HopL2OptimismBridge *HopL2OptimismBridgeCaller) GetTransferRoot(opts *bind.CallOpts, rootHash [32]byte, totalAmount *big.Int) (BridgeTransferRoot, error) {
   535  	var out []interface{}
   536  	err := _HopL2OptimismBridge.contract.Call(opts, &out, "getTransferRoot", rootHash, totalAmount)
   537  
   538  	if err != nil {
   539  		return *new(BridgeTransferRoot), err
   540  	}
   541  
   542  	out0 := *abi.ConvertType(out[0], new(BridgeTransferRoot)).(*BridgeTransferRoot)
   543  
   544  	return out0, err
   545  
   546  }
   547  
   548  // GetTransferRoot is a free data retrieval call binding the contract method 0xce803b4f.
   549  //
   550  // Solidity: function getTransferRoot(bytes32 rootHash, uint256 totalAmount) view returns((uint256,uint256,uint256))
   551  func (_HopL2OptimismBridge *HopL2OptimismBridgeSession) GetTransferRoot(rootHash [32]byte, totalAmount *big.Int) (BridgeTransferRoot, error) {
   552  	return _HopL2OptimismBridge.Contract.GetTransferRoot(&_HopL2OptimismBridge.CallOpts, rootHash, totalAmount)
   553  }
   554  
   555  // GetTransferRoot is a free data retrieval call binding the contract method 0xce803b4f.
   556  //
   557  // Solidity: function getTransferRoot(bytes32 rootHash, uint256 totalAmount) view returns((uint256,uint256,uint256))
   558  func (_HopL2OptimismBridge *HopL2OptimismBridgeCallerSession) GetTransferRoot(rootHash [32]byte, totalAmount *big.Int) (BridgeTransferRoot, error) {
   559  	return _HopL2OptimismBridge.Contract.GetTransferRoot(&_HopL2OptimismBridge.CallOpts, rootHash, totalAmount)
   560  }
   561  
   562  // GetTransferRootId is a free data retrieval call binding the contract method 0x960a7afa.
   563  //
   564  // Solidity: function getTransferRootId(bytes32 rootHash, uint256 totalAmount) pure returns(bytes32)
   565  func (_HopL2OptimismBridge *HopL2OptimismBridgeCaller) GetTransferRootId(opts *bind.CallOpts, rootHash [32]byte, totalAmount *big.Int) ([32]byte, error) {
   566  	var out []interface{}
   567  	err := _HopL2OptimismBridge.contract.Call(opts, &out, "getTransferRootId", rootHash, totalAmount)
   568  
   569  	if err != nil {
   570  		return *new([32]byte), err
   571  	}
   572  
   573  	out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte)
   574  
   575  	return out0, err
   576  
   577  }
   578  
   579  // GetTransferRootId is a free data retrieval call binding the contract method 0x960a7afa.
   580  //
   581  // Solidity: function getTransferRootId(bytes32 rootHash, uint256 totalAmount) pure returns(bytes32)
   582  func (_HopL2OptimismBridge *HopL2OptimismBridgeSession) GetTransferRootId(rootHash [32]byte, totalAmount *big.Int) ([32]byte, error) {
   583  	return _HopL2OptimismBridge.Contract.GetTransferRootId(&_HopL2OptimismBridge.CallOpts, rootHash, totalAmount)
   584  }
   585  
   586  // GetTransferRootId is a free data retrieval call binding the contract method 0x960a7afa.
   587  //
   588  // Solidity: function getTransferRootId(bytes32 rootHash, uint256 totalAmount) pure returns(bytes32)
   589  func (_HopL2OptimismBridge *HopL2OptimismBridgeCallerSession) GetTransferRootId(rootHash [32]byte, totalAmount *big.Int) ([32]byte, error) {
   590  	return _HopL2OptimismBridge.Contract.GetTransferRootId(&_HopL2OptimismBridge.CallOpts, rootHash, totalAmount)
   591  }
   592  
   593  // HToken is a free data retrieval call binding the contract method 0xfc6e3b3b.
   594  //
   595  // Solidity: function hToken() view returns(address)
   596  func (_HopL2OptimismBridge *HopL2OptimismBridgeCaller) HToken(opts *bind.CallOpts) (common.Address, error) {
   597  	var out []interface{}
   598  	err := _HopL2OptimismBridge.contract.Call(opts, &out, "hToken")
   599  
   600  	if err != nil {
   601  		return *new(common.Address), err
   602  	}
   603  
   604  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   605  
   606  	return out0, err
   607  
   608  }
   609  
   610  // HToken is a free data retrieval call binding the contract method 0xfc6e3b3b.
   611  //
   612  // Solidity: function hToken() view returns(address)
   613  func (_HopL2OptimismBridge *HopL2OptimismBridgeSession) HToken() (common.Address, error) {
   614  	return _HopL2OptimismBridge.Contract.HToken(&_HopL2OptimismBridge.CallOpts)
   615  }
   616  
   617  // HToken is a free data retrieval call binding the contract method 0xfc6e3b3b.
   618  //
   619  // Solidity: function hToken() view returns(address)
   620  func (_HopL2OptimismBridge *HopL2OptimismBridgeCallerSession) HToken() (common.Address, error) {
   621  	return _HopL2OptimismBridge.Contract.HToken(&_HopL2OptimismBridge.CallOpts)
   622  }
   623  
   624  // IsTransferIdSpent is a free data retrieval call binding the contract method 0x3a7af631.
   625  //
   626  // Solidity: function isTransferIdSpent(bytes32 transferId) view returns(bool)
   627  func (_HopL2OptimismBridge *HopL2OptimismBridgeCaller) IsTransferIdSpent(opts *bind.CallOpts, transferId [32]byte) (bool, error) {
   628  	var out []interface{}
   629  	err := _HopL2OptimismBridge.contract.Call(opts, &out, "isTransferIdSpent", transferId)
   630  
   631  	if err != nil {
   632  		return *new(bool), err
   633  	}
   634  
   635  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
   636  
   637  	return out0, err
   638  
   639  }
   640  
   641  // IsTransferIdSpent is a free data retrieval call binding the contract method 0x3a7af631.
   642  //
   643  // Solidity: function isTransferIdSpent(bytes32 transferId) view returns(bool)
   644  func (_HopL2OptimismBridge *HopL2OptimismBridgeSession) IsTransferIdSpent(transferId [32]byte) (bool, error) {
   645  	return _HopL2OptimismBridge.Contract.IsTransferIdSpent(&_HopL2OptimismBridge.CallOpts, transferId)
   646  }
   647  
   648  // IsTransferIdSpent is a free data retrieval call binding the contract method 0x3a7af631.
   649  //
   650  // Solidity: function isTransferIdSpent(bytes32 transferId) view returns(bool)
   651  func (_HopL2OptimismBridge *HopL2OptimismBridgeCallerSession) IsTransferIdSpent(transferId [32]byte) (bool, error) {
   652  	return _HopL2OptimismBridge.Contract.IsTransferIdSpent(&_HopL2OptimismBridge.CallOpts, transferId)
   653  }
   654  
   655  // L1BridgeAddress is a free data retrieval call binding the contract method 0x5ab2a558.
   656  //
   657  // Solidity: function l1BridgeAddress() view returns(address)
   658  func (_HopL2OptimismBridge *HopL2OptimismBridgeCaller) L1BridgeAddress(opts *bind.CallOpts) (common.Address, error) {
   659  	var out []interface{}
   660  	err := _HopL2OptimismBridge.contract.Call(opts, &out, "l1BridgeAddress")
   661  
   662  	if err != nil {
   663  		return *new(common.Address), err
   664  	}
   665  
   666  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   667  
   668  	return out0, err
   669  
   670  }
   671  
   672  // L1BridgeAddress is a free data retrieval call binding the contract method 0x5ab2a558.
   673  //
   674  // Solidity: function l1BridgeAddress() view returns(address)
   675  func (_HopL2OptimismBridge *HopL2OptimismBridgeSession) L1BridgeAddress() (common.Address, error) {
   676  	return _HopL2OptimismBridge.Contract.L1BridgeAddress(&_HopL2OptimismBridge.CallOpts)
   677  }
   678  
   679  // L1BridgeAddress is a free data retrieval call binding the contract method 0x5ab2a558.
   680  //
   681  // Solidity: function l1BridgeAddress() view returns(address)
   682  func (_HopL2OptimismBridge *HopL2OptimismBridgeCallerSession) L1BridgeAddress() (common.Address, error) {
   683  	return _HopL2OptimismBridge.Contract.L1BridgeAddress(&_HopL2OptimismBridge.CallOpts)
   684  }
   685  
   686  // L1BridgeCaller is a free data retrieval call binding the contract method 0xd2442783.
   687  //
   688  // Solidity: function l1BridgeCaller() view returns(address)
   689  func (_HopL2OptimismBridge *HopL2OptimismBridgeCaller) L1BridgeCaller(opts *bind.CallOpts) (common.Address, error) {
   690  	var out []interface{}
   691  	err := _HopL2OptimismBridge.contract.Call(opts, &out, "l1BridgeCaller")
   692  
   693  	if err != nil {
   694  		return *new(common.Address), err
   695  	}
   696  
   697  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   698  
   699  	return out0, err
   700  
   701  }
   702  
   703  // L1BridgeCaller is a free data retrieval call binding the contract method 0xd2442783.
   704  //
   705  // Solidity: function l1BridgeCaller() view returns(address)
   706  func (_HopL2OptimismBridge *HopL2OptimismBridgeSession) L1BridgeCaller() (common.Address, error) {
   707  	return _HopL2OptimismBridge.Contract.L1BridgeCaller(&_HopL2OptimismBridge.CallOpts)
   708  }
   709  
   710  // L1BridgeCaller is a free data retrieval call binding the contract method 0xd2442783.
   711  //
   712  // Solidity: function l1BridgeCaller() view returns(address)
   713  func (_HopL2OptimismBridge *HopL2OptimismBridgeCallerSession) L1BridgeCaller() (common.Address, error) {
   714  	return _HopL2OptimismBridge.Contract.L1BridgeCaller(&_HopL2OptimismBridge.CallOpts)
   715  }
   716  
   717  // L1Governance is a free data retrieval call binding the contract method 0x3ef23f7f.
   718  //
   719  // Solidity: function l1Governance() view returns(address)
   720  func (_HopL2OptimismBridge *HopL2OptimismBridgeCaller) L1Governance(opts *bind.CallOpts) (common.Address, error) {
   721  	var out []interface{}
   722  	err := _HopL2OptimismBridge.contract.Call(opts, &out, "l1Governance")
   723  
   724  	if err != nil {
   725  		return *new(common.Address), err
   726  	}
   727  
   728  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   729  
   730  	return out0, err
   731  
   732  }
   733  
   734  // L1Governance is a free data retrieval call binding the contract method 0x3ef23f7f.
   735  //
   736  // Solidity: function l1Governance() view returns(address)
   737  func (_HopL2OptimismBridge *HopL2OptimismBridgeSession) L1Governance() (common.Address, error) {
   738  	return _HopL2OptimismBridge.Contract.L1Governance(&_HopL2OptimismBridge.CallOpts)
   739  }
   740  
   741  // L1Governance is a free data retrieval call binding the contract method 0x3ef23f7f.
   742  //
   743  // Solidity: function l1Governance() view returns(address)
   744  func (_HopL2OptimismBridge *HopL2OptimismBridgeCallerSession) L1Governance() (common.Address, error) {
   745  	return _HopL2OptimismBridge.Contract.L1Governance(&_HopL2OptimismBridge.CallOpts)
   746  }
   747  
   748  // LastCommitTimeForChainId is a free data retrieval call binding the contract method 0xd4e54c47.
   749  //
   750  // Solidity: function lastCommitTimeForChainId(uint256 ) view returns(uint256)
   751  func (_HopL2OptimismBridge *HopL2OptimismBridgeCaller) LastCommitTimeForChainId(opts *bind.CallOpts, arg0 *big.Int) (*big.Int, error) {
   752  	var out []interface{}
   753  	err := _HopL2OptimismBridge.contract.Call(opts, &out, "lastCommitTimeForChainId", arg0)
   754  
   755  	if err != nil {
   756  		return *new(*big.Int), err
   757  	}
   758  
   759  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   760  
   761  	return out0, err
   762  
   763  }
   764  
   765  // LastCommitTimeForChainId is a free data retrieval call binding the contract method 0xd4e54c47.
   766  //
   767  // Solidity: function lastCommitTimeForChainId(uint256 ) view returns(uint256)
   768  func (_HopL2OptimismBridge *HopL2OptimismBridgeSession) LastCommitTimeForChainId(arg0 *big.Int) (*big.Int, error) {
   769  	return _HopL2OptimismBridge.Contract.LastCommitTimeForChainId(&_HopL2OptimismBridge.CallOpts, arg0)
   770  }
   771  
   772  // LastCommitTimeForChainId is a free data retrieval call binding the contract method 0xd4e54c47.
   773  //
   774  // Solidity: function lastCommitTimeForChainId(uint256 ) view returns(uint256)
   775  func (_HopL2OptimismBridge *HopL2OptimismBridgeCallerSession) LastCommitTimeForChainId(arg0 *big.Int) (*big.Int, error) {
   776  	return _HopL2OptimismBridge.Contract.LastCommitTimeForChainId(&_HopL2OptimismBridge.CallOpts, arg0)
   777  }
   778  
   779  // MaxPendingTransfers is a free data retrieval call binding the contract method 0xbed93c84.
   780  //
   781  // Solidity: function maxPendingTransfers() view returns(uint256)
   782  func (_HopL2OptimismBridge *HopL2OptimismBridgeCaller) MaxPendingTransfers(opts *bind.CallOpts) (*big.Int, error) {
   783  	var out []interface{}
   784  	err := _HopL2OptimismBridge.contract.Call(opts, &out, "maxPendingTransfers")
   785  
   786  	if err != nil {
   787  		return *new(*big.Int), err
   788  	}
   789  
   790  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   791  
   792  	return out0, err
   793  
   794  }
   795  
   796  // MaxPendingTransfers is a free data retrieval call binding the contract method 0xbed93c84.
   797  //
   798  // Solidity: function maxPendingTransfers() view returns(uint256)
   799  func (_HopL2OptimismBridge *HopL2OptimismBridgeSession) MaxPendingTransfers() (*big.Int, error) {
   800  	return _HopL2OptimismBridge.Contract.MaxPendingTransfers(&_HopL2OptimismBridge.CallOpts)
   801  }
   802  
   803  // MaxPendingTransfers is a free data retrieval call binding the contract method 0xbed93c84.
   804  //
   805  // Solidity: function maxPendingTransfers() view returns(uint256)
   806  func (_HopL2OptimismBridge *HopL2OptimismBridgeCallerSession) MaxPendingTransfers() (*big.Int, error) {
   807  	return _HopL2OptimismBridge.Contract.MaxPendingTransfers(&_HopL2OptimismBridge.CallOpts)
   808  }
   809  
   810  // Messenger is a free data retrieval call binding the contract method 0x3cb747bf.
   811  //
   812  // Solidity: function messenger() view returns(address)
   813  func (_HopL2OptimismBridge *HopL2OptimismBridgeCaller) Messenger(opts *bind.CallOpts) (common.Address, error) {
   814  	var out []interface{}
   815  	err := _HopL2OptimismBridge.contract.Call(opts, &out, "messenger")
   816  
   817  	if err != nil {
   818  		return *new(common.Address), err
   819  	}
   820  
   821  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   822  
   823  	return out0, err
   824  
   825  }
   826  
   827  // Messenger is a free data retrieval call binding the contract method 0x3cb747bf.
   828  //
   829  // Solidity: function messenger() view returns(address)
   830  func (_HopL2OptimismBridge *HopL2OptimismBridgeSession) Messenger() (common.Address, error) {
   831  	return _HopL2OptimismBridge.Contract.Messenger(&_HopL2OptimismBridge.CallOpts)
   832  }
   833  
   834  // Messenger is a free data retrieval call binding the contract method 0x3cb747bf.
   835  //
   836  // Solidity: function messenger() view returns(address)
   837  func (_HopL2OptimismBridge *HopL2OptimismBridgeCallerSession) Messenger() (common.Address, error) {
   838  	return _HopL2OptimismBridge.Contract.Messenger(&_HopL2OptimismBridge.CallOpts)
   839  }
   840  
   841  // MinBonderBps is a free data retrieval call binding the contract method 0x35e2c4af.
   842  //
   843  // Solidity: function minBonderBps() view returns(uint256)
   844  func (_HopL2OptimismBridge *HopL2OptimismBridgeCaller) MinBonderBps(opts *bind.CallOpts) (*big.Int, error) {
   845  	var out []interface{}
   846  	err := _HopL2OptimismBridge.contract.Call(opts, &out, "minBonderBps")
   847  
   848  	if err != nil {
   849  		return *new(*big.Int), err
   850  	}
   851  
   852  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   853  
   854  	return out0, err
   855  
   856  }
   857  
   858  // MinBonderBps is a free data retrieval call binding the contract method 0x35e2c4af.
   859  //
   860  // Solidity: function minBonderBps() view returns(uint256)
   861  func (_HopL2OptimismBridge *HopL2OptimismBridgeSession) MinBonderBps() (*big.Int, error) {
   862  	return _HopL2OptimismBridge.Contract.MinBonderBps(&_HopL2OptimismBridge.CallOpts)
   863  }
   864  
   865  // MinBonderBps is a free data retrieval call binding the contract method 0x35e2c4af.
   866  //
   867  // Solidity: function minBonderBps() view returns(uint256)
   868  func (_HopL2OptimismBridge *HopL2OptimismBridgeCallerSession) MinBonderBps() (*big.Int, error) {
   869  	return _HopL2OptimismBridge.Contract.MinBonderBps(&_HopL2OptimismBridge.CallOpts)
   870  }
   871  
   872  // MinBonderFeeAbsolute is a free data retrieval call binding the contract method 0xc3035261.
   873  //
   874  // Solidity: function minBonderFeeAbsolute() view returns(uint256)
   875  func (_HopL2OptimismBridge *HopL2OptimismBridgeCaller) MinBonderFeeAbsolute(opts *bind.CallOpts) (*big.Int, error) {
   876  	var out []interface{}
   877  	err := _HopL2OptimismBridge.contract.Call(opts, &out, "minBonderFeeAbsolute")
   878  
   879  	if err != nil {
   880  		return *new(*big.Int), err
   881  	}
   882  
   883  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   884  
   885  	return out0, err
   886  
   887  }
   888  
   889  // MinBonderFeeAbsolute is a free data retrieval call binding the contract method 0xc3035261.
   890  //
   891  // Solidity: function minBonderFeeAbsolute() view returns(uint256)
   892  func (_HopL2OptimismBridge *HopL2OptimismBridgeSession) MinBonderFeeAbsolute() (*big.Int, error) {
   893  	return _HopL2OptimismBridge.Contract.MinBonderFeeAbsolute(&_HopL2OptimismBridge.CallOpts)
   894  }
   895  
   896  // MinBonderFeeAbsolute is a free data retrieval call binding the contract method 0xc3035261.
   897  //
   898  // Solidity: function minBonderFeeAbsolute() view returns(uint256)
   899  func (_HopL2OptimismBridge *HopL2OptimismBridgeCallerSession) MinBonderFeeAbsolute() (*big.Int, error) {
   900  	return _HopL2OptimismBridge.Contract.MinBonderFeeAbsolute(&_HopL2OptimismBridge.CallOpts)
   901  }
   902  
   903  // MinimumForceCommitDelay is a free data retrieval call binding the contract method 0x8f658198.
   904  //
   905  // Solidity: function minimumForceCommitDelay() view returns(uint256)
   906  func (_HopL2OptimismBridge *HopL2OptimismBridgeCaller) MinimumForceCommitDelay(opts *bind.CallOpts) (*big.Int, error) {
   907  	var out []interface{}
   908  	err := _HopL2OptimismBridge.contract.Call(opts, &out, "minimumForceCommitDelay")
   909  
   910  	if err != nil {
   911  		return *new(*big.Int), err
   912  	}
   913  
   914  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   915  
   916  	return out0, err
   917  
   918  }
   919  
   920  // MinimumForceCommitDelay is a free data retrieval call binding the contract method 0x8f658198.
   921  //
   922  // Solidity: function minimumForceCommitDelay() view returns(uint256)
   923  func (_HopL2OptimismBridge *HopL2OptimismBridgeSession) MinimumForceCommitDelay() (*big.Int, error) {
   924  	return _HopL2OptimismBridge.Contract.MinimumForceCommitDelay(&_HopL2OptimismBridge.CallOpts)
   925  }
   926  
   927  // MinimumForceCommitDelay is a free data retrieval call binding the contract method 0x8f658198.
   928  //
   929  // Solidity: function minimumForceCommitDelay() view returns(uint256)
   930  func (_HopL2OptimismBridge *HopL2OptimismBridgeCallerSession) MinimumForceCommitDelay() (*big.Int, error) {
   931  	return _HopL2OptimismBridge.Contract.MinimumForceCommitDelay(&_HopL2OptimismBridge.CallOpts)
   932  }
   933  
   934  // PendingAmountForChainId is a free data retrieval call binding the contract method 0x0f5e09e7.
   935  //
   936  // Solidity: function pendingAmountForChainId(uint256 ) view returns(uint256)
   937  func (_HopL2OptimismBridge *HopL2OptimismBridgeCaller) PendingAmountForChainId(opts *bind.CallOpts, arg0 *big.Int) (*big.Int, error) {
   938  	var out []interface{}
   939  	err := _HopL2OptimismBridge.contract.Call(opts, &out, "pendingAmountForChainId", arg0)
   940  
   941  	if err != nil {
   942  		return *new(*big.Int), err
   943  	}
   944  
   945  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   946  
   947  	return out0, err
   948  
   949  }
   950  
   951  // PendingAmountForChainId is a free data retrieval call binding the contract method 0x0f5e09e7.
   952  //
   953  // Solidity: function pendingAmountForChainId(uint256 ) view returns(uint256)
   954  func (_HopL2OptimismBridge *HopL2OptimismBridgeSession) PendingAmountForChainId(arg0 *big.Int) (*big.Int, error) {
   955  	return _HopL2OptimismBridge.Contract.PendingAmountForChainId(&_HopL2OptimismBridge.CallOpts, arg0)
   956  }
   957  
   958  // PendingAmountForChainId is a free data retrieval call binding the contract method 0x0f5e09e7.
   959  //
   960  // Solidity: function pendingAmountForChainId(uint256 ) view returns(uint256)
   961  func (_HopL2OptimismBridge *HopL2OptimismBridgeCallerSession) PendingAmountForChainId(arg0 *big.Int) (*big.Int, error) {
   962  	return _HopL2OptimismBridge.Contract.PendingAmountForChainId(&_HopL2OptimismBridge.CallOpts, arg0)
   963  }
   964  
   965  // PendingTransferIdsForChainId is a free data retrieval call binding the contract method 0x98445caf.
   966  //
   967  // Solidity: function pendingTransferIdsForChainId(uint256 , uint256 ) view returns(bytes32)
   968  func (_HopL2OptimismBridge *HopL2OptimismBridgeCaller) PendingTransferIdsForChainId(opts *bind.CallOpts, arg0 *big.Int, arg1 *big.Int) ([32]byte, error) {
   969  	var out []interface{}
   970  	err := _HopL2OptimismBridge.contract.Call(opts, &out, "pendingTransferIdsForChainId", arg0, arg1)
   971  
   972  	if err != nil {
   973  		return *new([32]byte), err
   974  	}
   975  
   976  	out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte)
   977  
   978  	return out0, err
   979  
   980  }
   981  
   982  // PendingTransferIdsForChainId is a free data retrieval call binding the contract method 0x98445caf.
   983  //
   984  // Solidity: function pendingTransferIdsForChainId(uint256 , uint256 ) view returns(bytes32)
   985  func (_HopL2OptimismBridge *HopL2OptimismBridgeSession) PendingTransferIdsForChainId(arg0 *big.Int, arg1 *big.Int) ([32]byte, error) {
   986  	return _HopL2OptimismBridge.Contract.PendingTransferIdsForChainId(&_HopL2OptimismBridge.CallOpts, arg0, arg1)
   987  }
   988  
   989  // PendingTransferIdsForChainId is a free data retrieval call binding the contract method 0x98445caf.
   990  //
   991  // Solidity: function pendingTransferIdsForChainId(uint256 , uint256 ) view returns(bytes32)
   992  func (_HopL2OptimismBridge *HopL2OptimismBridgeCallerSession) PendingTransferIdsForChainId(arg0 *big.Int, arg1 *big.Int) ([32]byte, error) {
   993  	return _HopL2OptimismBridge.Contract.PendingTransferIdsForChainId(&_HopL2OptimismBridge.CallOpts, arg0, arg1)
   994  }
   995  
   996  // TransferNonceIncrementer is a free data retrieval call binding the contract method 0x82c69f9d.
   997  //
   998  // Solidity: function transferNonceIncrementer() view returns(uint256)
   999  func (_HopL2OptimismBridge *HopL2OptimismBridgeCaller) TransferNonceIncrementer(opts *bind.CallOpts) (*big.Int, error) {
  1000  	var out []interface{}
  1001  	err := _HopL2OptimismBridge.contract.Call(opts, &out, "transferNonceIncrementer")
  1002  
  1003  	if err != nil {
  1004  		return *new(*big.Int), err
  1005  	}
  1006  
  1007  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
  1008  
  1009  	return out0, err
  1010  
  1011  }
  1012  
  1013  // TransferNonceIncrementer is a free data retrieval call binding the contract method 0x82c69f9d.
  1014  //
  1015  // Solidity: function transferNonceIncrementer() view returns(uint256)
  1016  func (_HopL2OptimismBridge *HopL2OptimismBridgeSession) TransferNonceIncrementer() (*big.Int, error) {
  1017  	return _HopL2OptimismBridge.Contract.TransferNonceIncrementer(&_HopL2OptimismBridge.CallOpts)
  1018  }
  1019  
  1020  // TransferNonceIncrementer is a free data retrieval call binding the contract method 0x82c69f9d.
  1021  //
  1022  // Solidity: function transferNonceIncrementer() view returns(uint256)
  1023  func (_HopL2OptimismBridge *HopL2OptimismBridgeCallerSession) TransferNonceIncrementer() (*big.Int, error) {
  1024  	return _HopL2OptimismBridge.Contract.TransferNonceIncrementer(&_HopL2OptimismBridge.CallOpts)
  1025  }
  1026  
  1027  // AddActiveChainIds is a paid mutator transaction binding the contract method 0xf8398fa4.
  1028  //
  1029  // Solidity: function addActiveChainIds(uint256[] chainIds) returns()
  1030  func (_HopL2OptimismBridge *HopL2OptimismBridgeTransactor) AddActiveChainIds(opts *bind.TransactOpts, chainIds []*big.Int) (*types.Transaction, error) {
  1031  	return _HopL2OptimismBridge.contract.Transact(opts, "addActiveChainIds", chainIds)
  1032  }
  1033  
  1034  // AddActiveChainIds is a paid mutator transaction binding the contract method 0xf8398fa4.
  1035  //
  1036  // Solidity: function addActiveChainIds(uint256[] chainIds) returns()
  1037  func (_HopL2OptimismBridge *HopL2OptimismBridgeSession) AddActiveChainIds(chainIds []*big.Int) (*types.Transaction, error) {
  1038  	return _HopL2OptimismBridge.Contract.AddActiveChainIds(&_HopL2OptimismBridge.TransactOpts, chainIds)
  1039  }
  1040  
  1041  // AddActiveChainIds is a paid mutator transaction binding the contract method 0xf8398fa4.
  1042  //
  1043  // Solidity: function addActiveChainIds(uint256[] chainIds) returns()
  1044  func (_HopL2OptimismBridge *HopL2OptimismBridgeTransactorSession) AddActiveChainIds(chainIds []*big.Int) (*types.Transaction, error) {
  1045  	return _HopL2OptimismBridge.Contract.AddActiveChainIds(&_HopL2OptimismBridge.TransactOpts, chainIds)
  1046  }
  1047  
  1048  // AddBonder is a paid mutator transaction binding the contract method 0x5325937f.
  1049  //
  1050  // Solidity: function addBonder(address bonder) returns()
  1051  func (_HopL2OptimismBridge *HopL2OptimismBridgeTransactor) AddBonder(opts *bind.TransactOpts, bonder common.Address) (*types.Transaction, error) {
  1052  	return _HopL2OptimismBridge.contract.Transact(opts, "addBonder", bonder)
  1053  }
  1054  
  1055  // AddBonder is a paid mutator transaction binding the contract method 0x5325937f.
  1056  //
  1057  // Solidity: function addBonder(address bonder) returns()
  1058  func (_HopL2OptimismBridge *HopL2OptimismBridgeSession) AddBonder(bonder common.Address) (*types.Transaction, error) {
  1059  	return _HopL2OptimismBridge.Contract.AddBonder(&_HopL2OptimismBridge.TransactOpts, bonder)
  1060  }
  1061  
  1062  // AddBonder is a paid mutator transaction binding the contract method 0x5325937f.
  1063  //
  1064  // Solidity: function addBonder(address bonder) returns()
  1065  func (_HopL2OptimismBridge *HopL2OptimismBridgeTransactorSession) AddBonder(bonder common.Address) (*types.Transaction, error) {
  1066  	return _HopL2OptimismBridge.Contract.AddBonder(&_HopL2OptimismBridge.TransactOpts, bonder)
  1067  }
  1068  
  1069  // BondWithdrawal is a paid mutator transaction binding the contract method 0x23c452cd.
  1070  //
  1071  // Solidity: function bondWithdrawal(address recipient, uint256 amount, bytes32 transferNonce, uint256 bonderFee) returns()
  1072  func (_HopL2OptimismBridge *HopL2OptimismBridgeTransactor) BondWithdrawal(opts *bind.TransactOpts, recipient common.Address, amount *big.Int, transferNonce [32]byte, bonderFee *big.Int) (*types.Transaction, error) {
  1073  	return _HopL2OptimismBridge.contract.Transact(opts, "bondWithdrawal", recipient, amount, transferNonce, bonderFee)
  1074  }
  1075  
  1076  // BondWithdrawal is a paid mutator transaction binding the contract method 0x23c452cd.
  1077  //
  1078  // Solidity: function bondWithdrawal(address recipient, uint256 amount, bytes32 transferNonce, uint256 bonderFee) returns()
  1079  func (_HopL2OptimismBridge *HopL2OptimismBridgeSession) BondWithdrawal(recipient common.Address, amount *big.Int, transferNonce [32]byte, bonderFee *big.Int) (*types.Transaction, error) {
  1080  	return _HopL2OptimismBridge.Contract.BondWithdrawal(&_HopL2OptimismBridge.TransactOpts, recipient, amount, transferNonce, bonderFee)
  1081  }
  1082  
  1083  // BondWithdrawal is a paid mutator transaction binding the contract method 0x23c452cd.
  1084  //
  1085  // Solidity: function bondWithdrawal(address recipient, uint256 amount, bytes32 transferNonce, uint256 bonderFee) returns()
  1086  func (_HopL2OptimismBridge *HopL2OptimismBridgeTransactorSession) BondWithdrawal(recipient common.Address, amount *big.Int, transferNonce [32]byte, bonderFee *big.Int) (*types.Transaction, error) {
  1087  	return _HopL2OptimismBridge.Contract.BondWithdrawal(&_HopL2OptimismBridge.TransactOpts, recipient, amount, transferNonce, bonderFee)
  1088  }
  1089  
  1090  // BondWithdrawalAndDistribute is a paid mutator transaction binding the contract method 0x3d12a85a.
  1091  //
  1092  // Solidity: function bondWithdrawalAndDistribute(address recipient, uint256 amount, bytes32 transferNonce, uint256 bonderFee, uint256 amountOutMin, uint256 deadline) returns()
  1093  func (_HopL2OptimismBridge *HopL2OptimismBridgeTransactor) BondWithdrawalAndDistribute(opts *bind.TransactOpts, recipient common.Address, amount *big.Int, transferNonce [32]byte, bonderFee *big.Int, amountOutMin *big.Int, deadline *big.Int) (*types.Transaction, error) {
  1094  	return _HopL2OptimismBridge.contract.Transact(opts, "bondWithdrawalAndDistribute", recipient, amount, transferNonce, bonderFee, amountOutMin, deadline)
  1095  }
  1096  
  1097  // BondWithdrawalAndDistribute is a paid mutator transaction binding the contract method 0x3d12a85a.
  1098  //
  1099  // Solidity: function bondWithdrawalAndDistribute(address recipient, uint256 amount, bytes32 transferNonce, uint256 bonderFee, uint256 amountOutMin, uint256 deadline) returns()
  1100  func (_HopL2OptimismBridge *HopL2OptimismBridgeSession) BondWithdrawalAndDistribute(recipient common.Address, amount *big.Int, transferNonce [32]byte, bonderFee *big.Int, amountOutMin *big.Int, deadline *big.Int) (*types.Transaction, error) {
  1101  	return _HopL2OptimismBridge.Contract.BondWithdrawalAndDistribute(&_HopL2OptimismBridge.TransactOpts, recipient, amount, transferNonce, bonderFee, amountOutMin, deadline)
  1102  }
  1103  
  1104  // BondWithdrawalAndDistribute is a paid mutator transaction binding the contract method 0x3d12a85a.
  1105  //
  1106  // Solidity: function bondWithdrawalAndDistribute(address recipient, uint256 amount, bytes32 transferNonce, uint256 bonderFee, uint256 amountOutMin, uint256 deadline) returns()
  1107  func (_HopL2OptimismBridge *HopL2OptimismBridgeTransactorSession) BondWithdrawalAndDistribute(recipient common.Address, amount *big.Int, transferNonce [32]byte, bonderFee *big.Int, amountOutMin *big.Int, deadline *big.Int) (*types.Transaction, error) {
  1108  	return _HopL2OptimismBridge.Contract.BondWithdrawalAndDistribute(&_HopL2OptimismBridge.TransactOpts, recipient, amount, transferNonce, bonderFee, amountOutMin, deadline)
  1109  }
  1110  
  1111  // CommitTransfers is a paid mutator transaction binding the contract method 0x32b949a2.
  1112  //
  1113  // Solidity: function commitTransfers(uint256 destinationChainId) returns()
  1114  func (_HopL2OptimismBridge *HopL2OptimismBridgeTransactor) CommitTransfers(opts *bind.TransactOpts, destinationChainId *big.Int) (*types.Transaction, error) {
  1115  	return _HopL2OptimismBridge.contract.Transact(opts, "commitTransfers", destinationChainId)
  1116  }
  1117  
  1118  // CommitTransfers is a paid mutator transaction binding the contract method 0x32b949a2.
  1119  //
  1120  // Solidity: function commitTransfers(uint256 destinationChainId) returns()
  1121  func (_HopL2OptimismBridge *HopL2OptimismBridgeSession) CommitTransfers(destinationChainId *big.Int) (*types.Transaction, error) {
  1122  	return _HopL2OptimismBridge.Contract.CommitTransfers(&_HopL2OptimismBridge.TransactOpts, destinationChainId)
  1123  }
  1124  
  1125  // CommitTransfers is a paid mutator transaction binding the contract method 0x32b949a2.
  1126  //
  1127  // Solidity: function commitTransfers(uint256 destinationChainId) returns()
  1128  func (_HopL2OptimismBridge *HopL2OptimismBridgeTransactorSession) CommitTransfers(destinationChainId *big.Int) (*types.Transaction, error) {
  1129  	return _HopL2OptimismBridge.Contract.CommitTransfers(&_HopL2OptimismBridge.TransactOpts, destinationChainId)
  1130  }
  1131  
  1132  // Distribute is a paid mutator transaction binding the contract method 0xcc29a306.
  1133  //
  1134  // Solidity: function distribute(address recipient, uint256 amount, uint256 amountOutMin, uint256 deadline, address relayer, uint256 relayerFee) returns()
  1135  func (_HopL2OptimismBridge *HopL2OptimismBridgeTransactor) Distribute(opts *bind.TransactOpts, recipient common.Address, amount *big.Int, amountOutMin *big.Int, deadline *big.Int, relayer common.Address, relayerFee *big.Int) (*types.Transaction, error) {
  1136  	return _HopL2OptimismBridge.contract.Transact(opts, "distribute", recipient, amount, amountOutMin, deadline, relayer, relayerFee)
  1137  }
  1138  
  1139  // Distribute is a paid mutator transaction binding the contract method 0xcc29a306.
  1140  //
  1141  // Solidity: function distribute(address recipient, uint256 amount, uint256 amountOutMin, uint256 deadline, address relayer, uint256 relayerFee) returns()
  1142  func (_HopL2OptimismBridge *HopL2OptimismBridgeSession) Distribute(recipient common.Address, amount *big.Int, amountOutMin *big.Int, deadline *big.Int, relayer common.Address, relayerFee *big.Int) (*types.Transaction, error) {
  1143  	return _HopL2OptimismBridge.Contract.Distribute(&_HopL2OptimismBridge.TransactOpts, recipient, amount, amountOutMin, deadline, relayer, relayerFee)
  1144  }
  1145  
  1146  // Distribute is a paid mutator transaction binding the contract method 0xcc29a306.
  1147  //
  1148  // Solidity: function distribute(address recipient, uint256 amount, uint256 amountOutMin, uint256 deadline, address relayer, uint256 relayerFee) returns()
  1149  func (_HopL2OptimismBridge *HopL2OptimismBridgeTransactorSession) Distribute(recipient common.Address, amount *big.Int, amountOutMin *big.Int, deadline *big.Int, relayer common.Address, relayerFee *big.Int) (*types.Transaction, error) {
  1150  	return _HopL2OptimismBridge.Contract.Distribute(&_HopL2OptimismBridge.TransactOpts, recipient, amount, amountOutMin, deadline, relayer, relayerFee)
  1151  }
  1152  
  1153  // RemoveActiveChainIds is a paid mutator transaction binding the contract method 0x9f600a0b.
  1154  //
  1155  // Solidity: function removeActiveChainIds(uint256[] chainIds) returns()
  1156  func (_HopL2OptimismBridge *HopL2OptimismBridgeTransactor) RemoveActiveChainIds(opts *bind.TransactOpts, chainIds []*big.Int) (*types.Transaction, error) {
  1157  	return _HopL2OptimismBridge.contract.Transact(opts, "removeActiveChainIds", chainIds)
  1158  }
  1159  
  1160  // RemoveActiveChainIds is a paid mutator transaction binding the contract method 0x9f600a0b.
  1161  //
  1162  // Solidity: function removeActiveChainIds(uint256[] chainIds) returns()
  1163  func (_HopL2OptimismBridge *HopL2OptimismBridgeSession) RemoveActiveChainIds(chainIds []*big.Int) (*types.Transaction, error) {
  1164  	return _HopL2OptimismBridge.Contract.RemoveActiveChainIds(&_HopL2OptimismBridge.TransactOpts, chainIds)
  1165  }
  1166  
  1167  // RemoveActiveChainIds is a paid mutator transaction binding the contract method 0x9f600a0b.
  1168  //
  1169  // Solidity: function removeActiveChainIds(uint256[] chainIds) returns()
  1170  func (_HopL2OptimismBridge *HopL2OptimismBridgeTransactorSession) RemoveActiveChainIds(chainIds []*big.Int) (*types.Transaction, error) {
  1171  	return _HopL2OptimismBridge.Contract.RemoveActiveChainIds(&_HopL2OptimismBridge.TransactOpts, chainIds)
  1172  }
  1173  
  1174  // RemoveBonder is a paid mutator transaction binding the contract method 0x04e6c2c0.
  1175  //
  1176  // Solidity: function removeBonder(address bonder) returns()
  1177  func (_HopL2OptimismBridge *HopL2OptimismBridgeTransactor) RemoveBonder(opts *bind.TransactOpts, bonder common.Address) (*types.Transaction, error) {
  1178  	return _HopL2OptimismBridge.contract.Transact(opts, "removeBonder", bonder)
  1179  }
  1180  
  1181  // RemoveBonder is a paid mutator transaction binding the contract method 0x04e6c2c0.
  1182  //
  1183  // Solidity: function removeBonder(address bonder) returns()
  1184  func (_HopL2OptimismBridge *HopL2OptimismBridgeSession) RemoveBonder(bonder common.Address) (*types.Transaction, error) {
  1185  	return _HopL2OptimismBridge.Contract.RemoveBonder(&_HopL2OptimismBridge.TransactOpts, bonder)
  1186  }
  1187  
  1188  // RemoveBonder is a paid mutator transaction binding the contract method 0x04e6c2c0.
  1189  //
  1190  // Solidity: function removeBonder(address bonder) returns()
  1191  func (_HopL2OptimismBridge *HopL2OptimismBridgeTransactorSession) RemoveBonder(bonder common.Address) (*types.Transaction, error) {
  1192  	return _HopL2OptimismBridge.Contract.RemoveBonder(&_HopL2OptimismBridge.TransactOpts, bonder)
  1193  }
  1194  
  1195  // RescueTransferRoot is a paid mutator transaction binding the contract method 0xcbd1642e.
  1196  //
  1197  // Solidity: function rescueTransferRoot(bytes32 rootHash, uint256 originalAmount, address recipient) returns()
  1198  func (_HopL2OptimismBridge *HopL2OptimismBridgeTransactor) RescueTransferRoot(opts *bind.TransactOpts, rootHash [32]byte, originalAmount *big.Int, recipient common.Address) (*types.Transaction, error) {
  1199  	return _HopL2OptimismBridge.contract.Transact(opts, "rescueTransferRoot", rootHash, originalAmount, recipient)
  1200  }
  1201  
  1202  // RescueTransferRoot is a paid mutator transaction binding the contract method 0xcbd1642e.
  1203  //
  1204  // Solidity: function rescueTransferRoot(bytes32 rootHash, uint256 originalAmount, address recipient) returns()
  1205  func (_HopL2OptimismBridge *HopL2OptimismBridgeSession) RescueTransferRoot(rootHash [32]byte, originalAmount *big.Int, recipient common.Address) (*types.Transaction, error) {
  1206  	return _HopL2OptimismBridge.Contract.RescueTransferRoot(&_HopL2OptimismBridge.TransactOpts, rootHash, originalAmount, recipient)
  1207  }
  1208  
  1209  // RescueTransferRoot is a paid mutator transaction binding the contract method 0xcbd1642e.
  1210  //
  1211  // Solidity: function rescueTransferRoot(bytes32 rootHash, uint256 originalAmount, address recipient) returns()
  1212  func (_HopL2OptimismBridge *HopL2OptimismBridgeTransactorSession) RescueTransferRoot(rootHash [32]byte, originalAmount *big.Int, recipient common.Address) (*types.Transaction, error) {
  1213  	return _HopL2OptimismBridge.Contract.RescueTransferRoot(&_HopL2OptimismBridge.TransactOpts, rootHash, originalAmount, recipient)
  1214  }
  1215  
  1216  // Send is a paid mutator transaction binding the contract method 0xa6bd1b33.
  1217  //
  1218  // Solidity: function send(uint256 chainId, address recipient, uint256 amount, uint256 bonderFee, uint256 amountOutMin, uint256 deadline) returns()
  1219  func (_HopL2OptimismBridge *HopL2OptimismBridgeTransactor) Send(opts *bind.TransactOpts, chainId *big.Int, recipient common.Address, amount *big.Int, bonderFee *big.Int, amountOutMin *big.Int, deadline *big.Int) (*types.Transaction, error) {
  1220  	return _HopL2OptimismBridge.contract.Transact(opts, "send", chainId, recipient, amount, bonderFee, amountOutMin, deadline)
  1221  }
  1222  
  1223  // Send is a paid mutator transaction binding the contract method 0xa6bd1b33.
  1224  //
  1225  // Solidity: function send(uint256 chainId, address recipient, uint256 amount, uint256 bonderFee, uint256 amountOutMin, uint256 deadline) returns()
  1226  func (_HopL2OptimismBridge *HopL2OptimismBridgeSession) Send(chainId *big.Int, recipient common.Address, amount *big.Int, bonderFee *big.Int, amountOutMin *big.Int, deadline *big.Int) (*types.Transaction, error) {
  1227  	return _HopL2OptimismBridge.Contract.Send(&_HopL2OptimismBridge.TransactOpts, chainId, recipient, amount, bonderFee, amountOutMin, deadline)
  1228  }
  1229  
  1230  // Send is a paid mutator transaction binding the contract method 0xa6bd1b33.
  1231  //
  1232  // Solidity: function send(uint256 chainId, address recipient, uint256 amount, uint256 bonderFee, uint256 amountOutMin, uint256 deadline) returns()
  1233  func (_HopL2OptimismBridge *HopL2OptimismBridgeTransactorSession) Send(chainId *big.Int, recipient common.Address, amount *big.Int, bonderFee *big.Int, amountOutMin *big.Int, deadline *big.Int) (*types.Transaction, error) {
  1234  	return _HopL2OptimismBridge.Contract.Send(&_HopL2OptimismBridge.TransactOpts, chainId, recipient, amount, bonderFee, amountOutMin, deadline)
  1235  }
  1236  
  1237  // SetAmmWrapper is a paid mutator transaction binding the contract method 0x64c6fdb4.
  1238  //
  1239  // Solidity: function setAmmWrapper(address _ammWrapper) returns()
  1240  func (_HopL2OptimismBridge *HopL2OptimismBridgeTransactor) SetAmmWrapper(opts *bind.TransactOpts, _ammWrapper common.Address) (*types.Transaction, error) {
  1241  	return _HopL2OptimismBridge.contract.Transact(opts, "setAmmWrapper", _ammWrapper)
  1242  }
  1243  
  1244  // SetAmmWrapper is a paid mutator transaction binding the contract method 0x64c6fdb4.
  1245  //
  1246  // Solidity: function setAmmWrapper(address _ammWrapper) returns()
  1247  func (_HopL2OptimismBridge *HopL2OptimismBridgeSession) SetAmmWrapper(_ammWrapper common.Address) (*types.Transaction, error) {
  1248  	return _HopL2OptimismBridge.Contract.SetAmmWrapper(&_HopL2OptimismBridge.TransactOpts, _ammWrapper)
  1249  }
  1250  
  1251  // SetAmmWrapper is a paid mutator transaction binding the contract method 0x64c6fdb4.
  1252  //
  1253  // Solidity: function setAmmWrapper(address _ammWrapper) returns()
  1254  func (_HopL2OptimismBridge *HopL2OptimismBridgeTransactorSession) SetAmmWrapper(_ammWrapper common.Address) (*types.Transaction, error) {
  1255  	return _HopL2OptimismBridge.Contract.SetAmmWrapper(&_HopL2OptimismBridge.TransactOpts, _ammWrapper)
  1256  }
  1257  
  1258  // SetDefaultGasLimit is a paid mutator transaction binding the contract method 0x524b6f70.
  1259  //
  1260  // Solidity: function setDefaultGasLimit(uint32 _defaultGasLimit) returns()
  1261  func (_HopL2OptimismBridge *HopL2OptimismBridgeTransactor) SetDefaultGasLimit(opts *bind.TransactOpts, _defaultGasLimit uint32) (*types.Transaction, error) {
  1262  	return _HopL2OptimismBridge.contract.Transact(opts, "setDefaultGasLimit", _defaultGasLimit)
  1263  }
  1264  
  1265  // SetDefaultGasLimit is a paid mutator transaction binding the contract method 0x524b6f70.
  1266  //
  1267  // Solidity: function setDefaultGasLimit(uint32 _defaultGasLimit) returns()
  1268  func (_HopL2OptimismBridge *HopL2OptimismBridgeSession) SetDefaultGasLimit(_defaultGasLimit uint32) (*types.Transaction, error) {
  1269  	return _HopL2OptimismBridge.Contract.SetDefaultGasLimit(&_HopL2OptimismBridge.TransactOpts, _defaultGasLimit)
  1270  }
  1271  
  1272  // SetDefaultGasLimit is a paid mutator transaction binding the contract method 0x524b6f70.
  1273  //
  1274  // Solidity: function setDefaultGasLimit(uint32 _defaultGasLimit) returns()
  1275  func (_HopL2OptimismBridge *HopL2OptimismBridgeTransactorSession) SetDefaultGasLimit(_defaultGasLimit uint32) (*types.Transaction, error) {
  1276  	return _HopL2OptimismBridge.Contract.SetDefaultGasLimit(&_HopL2OptimismBridge.TransactOpts, _defaultGasLimit)
  1277  }
  1278  
  1279  // SetHopBridgeTokenOwner is a paid mutator transaction binding the contract method 0x8295f258.
  1280  //
  1281  // Solidity: function setHopBridgeTokenOwner(address newOwner) returns()
  1282  func (_HopL2OptimismBridge *HopL2OptimismBridgeTransactor) SetHopBridgeTokenOwner(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) {
  1283  	return _HopL2OptimismBridge.contract.Transact(opts, "setHopBridgeTokenOwner", newOwner)
  1284  }
  1285  
  1286  // SetHopBridgeTokenOwner is a paid mutator transaction binding the contract method 0x8295f258.
  1287  //
  1288  // Solidity: function setHopBridgeTokenOwner(address newOwner) returns()
  1289  func (_HopL2OptimismBridge *HopL2OptimismBridgeSession) SetHopBridgeTokenOwner(newOwner common.Address) (*types.Transaction, error) {
  1290  	return _HopL2OptimismBridge.Contract.SetHopBridgeTokenOwner(&_HopL2OptimismBridge.TransactOpts, newOwner)
  1291  }
  1292  
  1293  // SetHopBridgeTokenOwner is a paid mutator transaction binding the contract method 0x8295f258.
  1294  //
  1295  // Solidity: function setHopBridgeTokenOwner(address newOwner) returns()
  1296  func (_HopL2OptimismBridge *HopL2OptimismBridgeTransactorSession) SetHopBridgeTokenOwner(newOwner common.Address) (*types.Transaction, error) {
  1297  	return _HopL2OptimismBridge.Contract.SetHopBridgeTokenOwner(&_HopL2OptimismBridge.TransactOpts, newOwner)
  1298  }
  1299  
  1300  // SetL1BridgeAddress is a paid mutator transaction binding the contract method 0xe1825d06.
  1301  //
  1302  // Solidity: function setL1BridgeAddress(address _l1BridgeAddress) returns()
  1303  func (_HopL2OptimismBridge *HopL2OptimismBridgeTransactor) SetL1BridgeAddress(opts *bind.TransactOpts, _l1BridgeAddress common.Address) (*types.Transaction, error) {
  1304  	return _HopL2OptimismBridge.contract.Transact(opts, "setL1BridgeAddress", _l1BridgeAddress)
  1305  }
  1306  
  1307  // SetL1BridgeAddress is a paid mutator transaction binding the contract method 0xe1825d06.
  1308  //
  1309  // Solidity: function setL1BridgeAddress(address _l1BridgeAddress) returns()
  1310  func (_HopL2OptimismBridge *HopL2OptimismBridgeSession) SetL1BridgeAddress(_l1BridgeAddress common.Address) (*types.Transaction, error) {
  1311  	return _HopL2OptimismBridge.Contract.SetL1BridgeAddress(&_HopL2OptimismBridge.TransactOpts, _l1BridgeAddress)
  1312  }
  1313  
  1314  // SetL1BridgeAddress is a paid mutator transaction binding the contract method 0xe1825d06.
  1315  //
  1316  // Solidity: function setL1BridgeAddress(address _l1BridgeAddress) returns()
  1317  func (_HopL2OptimismBridge *HopL2OptimismBridgeTransactorSession) SetL1BridgeAddress(_l1BridgeAddress common.Address) (*types.Transaction, error) {
  1318  	return _HopL2OptimismBridge.Contract.SetL1BridgeAddress(&_HopL2OptimismBridge.TransactOpts, _l1BridgeAddress)
  1319  }
  1320  
  1321  // SetL1BridgeCaller is a paid mutator transaction binding the contract method 0xaf33ae69.
  1322  //
  1323  // Solidity: function setL1BridgeCaller(address _l1BridgeCaller) returns()
  1324  func (_HopL2OptimismBridge *HopL2OptimismBridgeTransactor) SetL1BridgeCaller(opts *bind.TransactOpts, _l1BridgeCaller common.Address) (*types.Transaction, error) {
  1325  	return _HopL2OptimismBridge.contract.Transact(opts, "setL1BridgeCaller", _l1BridgeCaller)
  1326  }
  1327  
  1328  // SetL1BridgeCaller is a paid mutator transaction binding the contract method 0xaf33ae69.
  1329  //
  1330  // Solidity: function setL1BridgeCaller(address _l1BridgeCaller) returns()
  1331  func (_HopL2OptimismBridge *HopL2OptimismBridgeSession) SetL1BridgeCaller(_l1BridgeCaller common.Address) (*types.Transaction, error) {
  1332  	return _HopL2OptimismBridge.Contract.SetL1BridgeCaller(&_HopL2OptimismBridge.TransactOpts, _l1BridgeCaller)
  1333  }
  1334  
  1335  // SetL1BridgeCaller is a paid mutator transaction binding the contract method 0xaf33ae69.
  1336  //
  1337  // Solidity: function setL1BridgeCaller(address _l1BridgeCaller) returns()
  1338  func (_HopL2OptimismBridge *HopL2OptimismBridgeTransactorSession) SetL1BridgeCaller(_l1BridgeCaller common.Address) (*types.Transaction, error) {
  1339  	return _HopL2OptimismBridge.Contract.SetL1BridgeCaller(&_HopL2OptimismBridge.TransactOpts, _l1BridgeCaller)
  1340  }
  1341  
  1342  // SetL1Governance is a paid mutator transaction binding the contract method 0xe40272d7.
  1343  //
  1344  // Solidity: function setL1Governance(address _l1Governance) returns()
  1345  func (_HopL2OptimismBridge *HopL2OptimismBridgeTransactor) SetL1Governance(opts *bind.TransactOpts, _l1Governance common.Address) (*types.Transaction, error) {
  1346  	return _HopL2OptimismBridge.contract.Transact(opts, "setL1Governance", _l1Governance)
  1347  }
  1348  
  1349  // SetL1Governance is a paid mutator transaction binding the contract method 0xe40272d7.
  1350  //
  1351  // Solidity: function setL1Governance(address _l1Governance) returns()
  1352  func (_HopL2OptimismBridge *HopL2OptimismBridgeSession) SetL1Governance(_l1Governance common.Address) (*types.Transaction, error) {
  1353  	return _HopL2OptimismBridge.Contract.SetL1Governance(&_HopL2OptimismBridge.TransactOpts, _l1Governance)
  1354  }
  1355  
  1356  // SetL1Governance is a paid mutator transaction binding the contract method 0xe40272d7.
  1357  //
  1358  // Solidity: function setL1Governance(address _l1Governance) returns()
  1359  func (_HopL2OptimismBridge *HopL2OptimismBridgeTransactorSession) SetL1Governance(_l1Governance common.Address) (*types.Transaction, error) {
  1360  	return _HopL2OptimismBridge.Contract.SetL1Governance(&_HopL2OptimismBridge.TransactOpts, _l1Governance)
  1361  }
  1362  
  1363  // SetMaxPendingTransfers is a paid mutator transaction binding the contract method 0x4742bbfb.
  1364  //
  1365  // Solidity: function setMaxPendingTransfers(uint256 _maxPendingTransfers) returns()
  1366  func (_HopL2OptimismBridge *HopL2OptimismBridgeTransactor) SetMaxPendingTransfers(opts *bind.TransactOpts, _maxPendingTransfers *big.Int) (*types.Transaction, error) {
  1367  	return _HopL2OptimismBridge.contract.Transact(opts, "setMaxPendingTransfers", _maxPendingTransfers)
  1368  }
  1369  
  1370  // SetMaxPendingTransfers is a paid mutator transaction binding the contract method 0x4742bbfb.
  1371  //
  1372  // Solidity: function setMaxPendingTransfers(uint256 _maxPendingTransfers) returns()
  1373  func (_HopL2OptimismBridge *HopL2OptimismBridgeSession) SetMaxPendingTransfers(_maxPendingTransfers *big.Int) (*types.Transaction, error) {
  1374  	return _HopL2OptimismBridge.Contract.SetMaxPendingTransfers(&_HopL2OptimismBridge.TransactOpts, _maxPendingTransfers)
  1375  }
  1376  
  1377  // SetMaxPendingTransfers is a paid mutator transaction binding the contract method 0x4742bbfb.
  1378  //
  1379  // Solidity: function setMaxPendingTransfers(uint256 _maxPendingTransfers) returns()
  1380  func (_HopL2OptimismBridge *HopL2OptimismBridgeTransactorSession) SetMaxPendingTransfers(_maxPendingTransfers *big.Int) (*types.Transaction, error) {
  1381  	return _HopL2OptimismBridge.Contract.SetMaxPendingTransfers(&_HopL2OptimismBridge.TransactOpts, _maxPendingTransfers)
  1382  }
  1383  
  1384  // SetMessenger is a paid mutator transaction binding the contract method 0x66285967.
  1385  //
  1386  // Solidity: function setMessenger(address _messenger) returns()
  1387  func (_HopL2OptimismBridge *HopL2OptimismBridgeTransactor) SetMessenger(opts *bind.TransactOpts, _messenger common.Address) (*types.Transaction, error) {
  1388  	return _HopL2OptimismBridge.contract.Transact(opts, "setMessenger", _messenger)
  1389  }
  1390  
  1391  // SetMessenger is a paid mutator transaction binding the contract method 0x66285967.
  1392  //
  1393  // Solidity: function setMessenger(address _messenger) returns()
  1394  func (_HopL2OptimismBridge *HopL2OptimismBridgeSession) SetMessenger(_messenger common.Address) (*types.Transaction, error) {
  1395  	return _HopL2OptimismBridge.Contract.SetMessenger(&_HopL2OptimismBridge.TransactOpts, _messenger)
  1396  }
  1397  
  1398  // SetMessenger is a paid mutator transaction binding the contract method 0x66285967.
  1399  //
  1400  // Solidity: function setMessenger(address _messenger) returns()
  1401  func (_HopL2OptimismBridge *HopL2OptimismBridgeTransactorSession) SetMessenger(_messenger common.Address) (*types.Transaction, error) {
  1402  	return _HopL2OptimismBridge.Contract.SetMessenger(&_HopL2OptimismBridge.TransactOpts, _messenger)
  1403  }
  1404  
  1405  // SetMinimumBonderFeeRequirements is a paid mutator transaction binding the contract method 0xa9fa4ed5.
  1406  //
  1407  // Solidity: function setMinimumBonderFeeRequirements(uint256 _minBonderBps, uint256 _minBonderFeeAbsolute) returns()
  1408  func (_HopL2OptimismBridge *HopL2OptimismBridgeTransactor) SetMinimumBonderFeeRequirements(opts *bind.TransactOpts, _minBonderBps *big.Int, _minBonderFeeAbsolute *big.Int) (*types.Transaction, error) {
  1409  	return _HopL2OptimismBridge.contract.Transact(opts, "setMinimumBonderFeeRequirements", _minBonderBps, _minBonderFeeAbsolute)
  1410  }
  1411  
  1412  // SetMinimumBonderFeeRequirements is a paid mutator transaction binding the contract method 0xa9fa4ed5.
  1413  //
  1414  // Solidity: function setMinimumBonderFeeRequirements(uint256 _minBonderBps, uint256 _minBonderFeeAbsolute) returns()
  1415  func (_HopL2OptimismBridge *HopL2OptimismBridgeSession) SetMinimumBonderFeeRequirements(_minBonderBps *big.Int, _minBonderFeeAbsolute *big.Int) (*types.Transaction, error) {
  1416  	return _HopL2OptimismBridge.Contract.SetMinimumBonderFeeRequirements(&_HopL2OptimismBridge.TransactOpts, _minBonderBps, _minBonderFeeAbsolute)
  1417  }
  1418  
  1419  // SetMinimumBonderFeeRequirements is a paid mutator transaction binding the contract method 0xa9fa4ed5.
  1420  //
  1421  // Solidity: function setMinimumBonderFeeRequirements(uint256 _minBonderBps, uint256 _minBonderFeeAbsolute) returns()
  1422  func (_HopL2OptimismBridge *HopL2OptimismBridgeTransactorSession) SetMinimumBonderFeeRequirements(_minBonderBps *big.Int, _minBonderFeeAbsolute *big.Int) (*types.Transaction, error) {
  1423  	return _HopL2OptimismBridge.Contract.SetMinimumBonderFeeRequirements(&_HopL2OptimismBridge.TransactOpts, _minBonderBps, _minBonderFeeAbsolute)
  1424  }
  1425  
  1426  // SetMinimumForceCommitDelay is a paid mutator transaction binding the contract method 0x9bf43028.
  1427  //
  1428  // Solidity: function setMinimumForceCommitDelay(uint256 _minimumForceCommitDelay) returns()
  1429  func (_HopL2OptimismBridge *HopL2OptimismBridgeTransactor) SetMinimumForceCommitDelay(opts *bind.TransactOpts, _minimumForceCommitDelay *big.Int) (*types.Transaction, error) {
  1430  	return _HopL2OptimismBridge.contract.Transact(opts, "setMinimumForceCommitDelay", _minimumForceCommitDelay)
  1431  }
  1432  
  1433  // SetMinimumForceCommitDelay is a paid mutator transaction binding the contract method 0x9bf43028.
  1434  //
  1435  // Solidity: function setMinimumForceCommitDelay(uint256 _minimumForceCommitDelay) returns()
  1436  func (_HopL2OptimismBridge *HopL2OptimismBridgeSession) SetMinimumForceCommitDelay(_minimumForceCommitDelay *big.Int) (*types.Transaction, error) {
  1437  	return _HopL2OptimismBridge.Contract.SetMinimumForceCommitDelay(&_HopL2OptimismBridge.TransactOpts, _minimumForceCommitDelay)
  1438  }
  1439  
  1440  // SetMinimumForceCommitDelay is a paid mutator transaction binding the contract method 0x9bf43028.
  1441  //
  1442  // Solidity: function setMinimumForceCommitDelay(uint256 _minimumForceCommitDelay) returns()
  1443  func (_HopL2OptimismBridge *HopL2OptimismBridgeTransactorSession) SetMinimumForceCommitDelay(_minimumForceCommitDelay *big.Int) (*types.Transaction, error) {
  1444  	return _HopL2OptimismBridge.Contract.SetMinimumForceCommitDelay(&_HopL2OptimismBridge.TransactOpts, _minimumForceCommitDelay)
  1445  }
  1446  
  1447  // SetTransferRoot is a paid mutator transaction binding the contract method 0xfd31c5ba.
  1448  //
  1449  // Solidity: function setTransferRoot(bytes32 rootHash, uint256 totalAmount) returns()
  1450  func (_HopL2OptimismBridge *HopL2OptimismBridgeTransactor) SetTransferRoot(opts *bind.TransactOpts, rootHash [32]byte, totalAmount *big.Int) (*types.Transaction, error) {
  1451  	return _HopL2OptimismBridge.contract.Transact(opts, "setTransferRoot", rootHash, totalAmount)
  1452  }
  1453  
  1454  // SetTransferRoot is a paid mutator transaction binding the contract method 0xfd31c5ba.
  1455  //
  1456  // Solidity: function setTransferRoot(bytes32 rootHash, uint256 totalAmount) returns()
  1457  func (_HopL2OptimismBridge *HopL2OptimismBridgeSession) SetTransferRoot(rootHash [32]byte, totalAmount *big.Int) (*types.Transaction, error) {
  1458  	return _HopL2OptimismBridge.Contract.SetTransferRoot(&_HopL2OptimismBridge.TransactOpts, rootHash, totalAmount)
  1459  }
  1460  
  1461  // SetTransferRoot is a paid mutator transaction binding the contract method 0xfd31c5ba.
  1462  //
  1463  // Solidity: function setTransferRoot(bytes32 rootHash, uint256 totalAmount) returns()
  1464  func (_HopL2OptimismBridge *HopL2OptimismBridgeTransactorSession) SetTransferRoot(rootHash [32]byte, totalAmount *big.Int) (*types.Transaction, error) {
  1465  	return _HopL2OptimismBridge.Contract.SetTransferRoot(&_HopL2OptimismBridge.TransactOpts, rootHash, totalAmount)
  1466  }
  1467  
  1468  // SettleBondedWithdrawal is a paid mutator transaction binding the contract method 0xc7525dd3.
  1469  //
  1470  // Solidity: function settleBondedWithdrawal(address bonder, bytes32 transferId, bytes32 rootHash, uint256 transferRootTotalAmount, uint256 transferIdTreeIndex, bytes32[] siblings, uint256 totalLeaves) returns()
  1471  func (_HopL2OptimismBridge *HopL2OptimismBridgeTransactor) SettleBondedWithdrawal(opts *bind.TransactOpts, bonder common.Address, transferId [32]byte, rootHash [32]byte, transferRootTotalAmount *big.Int, transferIdTreeIndex *big.Int, siblings [][32]byte, totalLeaves *big.Int) (*types.Transaction, error) {
  1472  	return _HopL2OptimismBridge.contract.Transact(opts, "settleBondedWithdrawal", bonder, transferId, rootHash, transferRootTotalAmount, transferIdTreeIndex, siblings, totalLeaves)
  1473  }
  1474  
  1475  // SettleBondedWithdrawal is a paid mutator transaction binding the contract method 0xc7525dd3.
  1476  //
  1477  // Solidity: function settleBondedWithdrawal(address bonder, bytes32 transferId, bytes32 rootHash, uint256 transferRootTotalAmount, uint256 transferIdTreeIndex, bytes32[] siblings, uint256 totalLeaves) returns()
  1478  func (_HopL2OptimismBridge *HopL2OptimismBridgeSession) SettleBondedWithdrawal(bonder common.Address, transferId [32]byte, rootHash [32]byte, transferRootTotalAmount *big.Int, transferIdTreeIndex *big.Int, siblings [][32]byte, totalLeaves *big.Int) (*types.Transaction, error) {
  1479  	return _HopL2OptimismBridge.Contract.SettleBondedWithdrawal(&_HopL2OptimismBridge.TransactOpts, bonder, transferId, rootHash, transferRootTotalAmount, transferIdTreeIndex, siblings, totalLeaves)
  1480  }
  1481  
  1482  // SettleBondedWithdrawal is a paid mutator transaction binding the contract method 0xc7525dd3.
  1483  //
  1484  // Solidity: function settleBondedWithdrawal(address bonder, bytes32 transferId, bytes32 rootHash, uint256 transferRootTotalAmount, uint256 transferIdTreeIndex, bytes32[] siblings, uint256 totalLeaves) returns()
  1485  func (_HopL2OptimismBridge *HopL2OptimismBridgeTransactorSession) SettleBondedWithdrawal(bonder common.Address, transferId [32]byte, rootHash [32]byte, transferRootTotalAmount *big.Int, transferIdTreeIndex *big.Int, siblings [][32]byte, totalLeaves *big.Int) (*types.Transaction, error) {
  1486  	return _HopL2OptimismBridge.Contract.SettleBondedWithdrawal(&_HopL2OptimismBridge.TransactOpts, bonder, transferId, rootHash, transferRootTotalAmount, transferIdTreeIndex, siblings, totalLeaves)
  1487  }
  1488  
  1489  // SettleBondedWithdrawals is a paid mutator transaction binding the contract method 0xb162717e.
  1490  //
  1491  // Solidity: function settleBondedWithdrawals(address bonder, bytes32[] transferIds, uint256 totalAmount) returns()
  1492  func (_HopL2OptimismBridge *HopL2OptimismBridgeTransactor) SettleBondedWithdrawals(opts *bind.TransactOpts, bonder common.Address, transferIds [][32]byte, totalAmount *big.Int) (*types.Transaction, error) {
  1493  	return _HopL2OptimismBridge.contract.Transact(opts, "settleBondedWithdrawals", bonder, transferIds, totalAmount)
  1494  }
  1495  
  1496  // SettleBondedWithdrawals is a paid mutator transaction binding the contract method 0xb162717e.
  1497  //
  1498  // Solidity: function settleBondedWithdrawals(address bonder, bytes32[] transferIds, uint256 totalAmount) returns()
  1499  func (_HopL2OptimismBridge *HopL2OptimismBridgeSession) SettleBondedWithdrawals(bonder common.Address, transferIds [][32]byte, totalAmount *big.Int) (*types.Transaction, error) {
  1500  	return _HopL2OptimismBridge.Contract.SettleBondedWithdrawals(&_HopL2OptimismBridge.TransactOpts, bonder, transferIds, totalAmount)
  1501  }
  1502  
  1503  // SettleBondedWithdrawals is a paid mutator transaction binding the contract method 0xb162717e.
  1504  //
  1505  // Solidity: function settleBondedWithdrawals(address bonder, bytes32[] transferIds, uint256 totalAmount) returns()
  1506  func (_HopL2OptimismBridge *HopL2OptimismBridgeTransactorSession) SettleBondedWithdrawals(bonder common.Address, transferIds [][32]byte, totalAmount *big.Int) (*types.Transaction, error) {
  1507  	return _HopL2OptimismBridge.Contract.SettleBondedWithdrawals(&_HopL2OptimismBridge.TransactOpts, bonder, transferIds, totalAmount)
  1508  }
  1509  
  1510  // Stake is a paid mutator transaction binding the contract method 0xadc9772e.
  1511  //
  1512  // Solidity: function stake(address bonder, uint256 amount) payable returns()
  1513  func (_HopL2OptimismBridge *HopL2OptimismBridgeTransactor) Stake(opts *bind.TransactOpts, bonder common.Address, amount *big.Int) (*types.Transaction, error) {
  1514  	return _HopL2OptimismBridge.contract.Transact(opts, "stake", bonder, amount)
  1515  }
  1516  
  1517  // Stake is a paid mutator transaction binding the contract method 0xadc9772e.
  1518  //
  1519  // Solidity: function stake(address bonder, uint256 amount) payable returns()
  1520  func (_HopL2OptimismBridge *HopL2OptimismBridgeSession) Stake(bonder common.Address, amount *big.Int) (*types.Transaction, error) {
  1521  	return _HopL2OptimismBridge.Contract.Stake(&_HopL2OptimismBridge.TransactOpts, bonder, amount)
  1522  }
  1523  
  1524  // Stake is a paid mutator transaction binding the contract method 0xadc9772e.
  1525  //
  1526  // Solidity: function stake(address bonder, uint256 amount) payable returns()
  1527  func (_HopL2OptimismBridge *HopL2OptimismBridgeTransactorSession) Stake(bonder common.Address, amount *big.Int) (*types.Transaction, error) {
  1528  	return _HopL2OptimismBridge.Contract.Stake(&_HopL2OptimismBridge.TransactOpts, bonder, amount)
  1529  }
  1530  
  1531  // Unstake is a paid mutator transaction binding the contract method 0x2e17de78.
  1532  //
  1533  // Solidity: function unstake(uint256 amount) returns()
  1534  func (_HopL2OptimismBridge *HopL2OptimismBridgeTransactor) Unstake(opts *bind.TransactOpts, amount *big.Int) (*types.Transaction, error) {
  1535  	return _HopL2OptimismBridge.contract.Transact(opts, "unstake", amount)
  1536  }
  1537  
  1538  // Unstake is a paid mutator transaction binding the contract method 0x2e17de78.
  1539  //
  1540  // Solidity: function unstake(uint256 amount) returns()
  1541  func (_HopL2OptimismBridge *HopL2OptimismBridgeSession) Unstake(amount *big.Int) (*types.Transaction, error) {
  1542  	return _HopL2OptimismBridge.Contract.Unstake(&_HopL2OptimismBridge.TransactOpts, amount)
  1543  }
  1544  
  1545  // Unstake is a paid mutator transaction binding the contract method 0x2e17de78.
  1546  //
  1547  // Solidity: function unstake(uint256 amount) returns()
  1548  func (_HopL2OptimismBridge *HopL2OptimismBridgeTransactorSession) Unstake(amount *big.Int) (*types.Transaction, error) {
  1549  	return _HopL2OptimismBridge.Contract.Unstake(&_HopL2OptimismBridge.TransactOpts, amount)
  1550  }
  1551  
  1552  // Withdraw is a paid mutator transaction binding the contract method 0x0f7aadb7.
  1553  //
  1554  // Solidity: function withdraw(address recipient, uint256 amount, bytes32 transferNonce, uint256 bonderFee, uint256 amountOutMin, uint256 deadline, bytes32 rootHash, uint256 transferRootTotalAmount, uint256 transferIdTreeIndex, bytes32[] siblings, uint256 totalLeaves) returns()
  1555  func (_HopL2OptimismBridge *HopL2OptimismBridgeTransactor) Withdraw(opts *bind.TransactOpts, recipient common.Address, amount *big.Int, transferNonce [32]byte, bonderFee *big.Int, amountOutMin *big.Int, deadline *big.Int, rootHash [32]byte, transferRootTotalAmount *big.Int, transferIdTreeIndex *big.Int, siblings [][32]byte, totalLeaves *big.Int) (*types.Transaction, error) {
  1556  	return _HopL2OptimismBridge.contract.Transact(opts, "withdraw", recipient, amount, transferNonce, bonderFee, amountOutMin, deadline, rootHash, transferRootTotalAmount, transferIdTreeIndex, siblings, totalLeaves)
  1557  }
  1558  
  1559  // Withdraw is a paid mutator transaction binding the contract method 0x0f7aadb7.
  1560  //
  1561  // Solidity: function withdraw(address recipient, uint256 amount, bytes32 transferNonce, uint256 bonderFee, uint256 amountOutMin, uint256 deadline, bytes32 rootHash, uint256 transferRootTotalAmount, uint256 transferIdTreeIndex, bytes32[] siblings, uint256 totalLeaves) returns()
  1562  func (_HopL2OptimismBridge *HopL2OptimismBridgeSession) Withdraw(recipient common.Address, amount *big.Int, transferNonce [32]byte, bonderFee *big.Int, amountOutMin *big.Int, deadline *big.Int, rootHash [32]byte, transferRootTotalAmount *big.Int, transferIdTreeIndex *big.Int, siblings [][32]byte, totalLeaves *big.Int) (*types.Transaction, error) {
  1563  	return _HopL2OptimismBridge.Contract.Withdraw(&_HopL2OptimismBridge.TransactOpts, recipient, amount, transferNonce, bonderFee, amountOutMin, deadline, rootHash, transferRootTotalAmount, transferIdTreeIndex, siblings, totalLeaves)
  1564  }
  1565  
  1566  // Withdraw is a paid mutator transaction binding the contract method 0x0f7aadb7.
  1567  //
  1568  // Solidity: function withdraw(address recipient, uint256 amount, bytes32 transferNonce, uint256 bonderFee, uint256 amountOutMin, uint256 deadline, bytes32 rootHash, uint256 transferRootTotalAmount, uint256 transferIdTreeIndex, bytes32[] siblings, uint256 totalLeaves) returns()
  1569  func (_HopL2OptimismBridge *HopL2OptimismBridgeTransactorSession) Withdraw(recipient common.Address, amount *big.Int, transferNonce [32]byte, bonderFee *big.Int, amountOutMin *big.Int, deadline *big.Int, rootHash [32]byte, transferRootTotalAmount *big.Int, transferIdTreeIndex *big.Int, siblings [][32]byte, totalLeaves *big.Int) (*types.Transaction, error) {
  1570  	return _HopL2OptimismBridge.Contract.Withdraw(&_HopL2OptimismBridge.TransactOpts, recipient, amount, transferNonce, bonderFee, amountOutMin, deadline, rootHash, transferRootTotalAmount, transferIdTreeIndex, siblings, totalLeaves)
  1571  }
  1572  
  1573  // HopL2OptimismBridgeBonderAddedIterator is returned from FilterBonderAdded and is used to iterate over the raw logs and unpacked data for BonderAdded events raised by the HopL2OptimismBridge contract.
  1574  type HopL2OptimismBridgeBonderAddedIterator struct {
  1575  	Event *HopL2OptimismBridgeBonderAdded // Event containing the contract specifics and raw log
  1576  
  1577  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1578  	event    string              // Event name to use for unpacking event data
  1579  
  1580  	logs chan types.Log        // Log channel receiving the found contract events
  1581  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1582  	done bool                  // Whether the subscription completed delivering logs
  1583  	fail error                 // Occurred error to stop iteration
  1584  }
  1585  
  1586  // Next advances the iterator to the subsequent event, returning whether there
  1587  // are any more events found. In case of a retrieval or parsing error, false is
  1588  // returned and Error() can be queried for the exact failure.
  1589  func (it *HopL2OptimismBridgeBonderAddedIterator) Next() bool {
  1590  	// If the iterator failed, stop iterating
  1591  	if it.fail != nil {
  1592  		return false
  1593  	}
  1594  	// If the iterator completed, deliver directly whatever's available
  1595  	if it.done {
  1596  		select {
  1597  		case log := <-it.logs:
  1598  			it.Event = new(HopL2OptimismBridgeBonderAdded)
  1599  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1600  				it.fail = err
  1601  				return false
  1602  			}
  1603  			it.Event.Raw = log
  1604  			return true
  1605  
  1606  		default:
  1607  			return false
  1608  		}
  1609  	}
  1610  	// Iterator still in progress, wait for either a data or an error event
  1611  	select {
  1612  	case log := <-it.logs:
  1613  		it.Event = new(HopL2OptimismBridgeBonderAdded)
  1614  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1615  			it.fail = err
  1616  			return false
  1617  		}
  1618  		it.Event.Raw = log
  1619  		return true
  1620  
  1621  	case err := <-it.sub.Err():
  1622  		it.done = true
  1623  		it.fail = err
  1624  		return it.Next()
  1625  	}
  1626  }
  1627  
  1628  // Error returns any retrieval or parsing error occurred during filtering.
  1629  func (it *HopL2OptimismBridgeBonderAddedIterator) Error() error {
  1630  	return it.fail
  1631  }
  1632  
  1633  // Close terminates the iteration process, releasing any pending underlying
  1634  // resources.
  1635  func (it *HopL2OptimismBridgeBonderAddedIterator) Close() error {
  1636  	it.sub.Unsubscribe()
  1637  	return nil
  1638  }
  1639  
  1640  // HopL2OptimismBridgeBonderAdded represents a BonderAdded event raised by the HopL2OptimismBridge contract.
  1641  type HopL2OptimismBridgeBonderAdded struct {
  1642  	NewBonder common.Address
  1643  	Raw       types.Log // Blockchain specific contextual infos
  1644  }
  1645  
  1646  // FilterBonderAdded is a free log retrieval operation binding the contract event 0x2cec73b7434d3b91198ad1a618f63e6a0761ce281af5ec9ec76606d948d03e23.
  1647  //
  1648  // Solidity: event BonderAdded(address indexed newBonder)
  1649  func (_HopL2OptimismBridge *HopL2OptimismBridgeFilterer) FilterBonderAdded(opts *bind.FilterOpts, newBonder []common.Address) (*HopL2OptimismBridgeBonderAddedIterator, error) {
  1650  
  1651  	var newBonderRule []interface{}
  1652  	for _, newBonderItem := range newBonder {
  1653  		newBonderRule = append(newBonderRule, newBonderItem)
  1654  	}
  1655  
  1656  	logs, sub, err := _HopL2OptimismBridge.contract.FilterLogs(opts, "BonderAdded", newBonderRule)
  1657  	if err != nil {
  1658  		return nil, err
  1659  	}
  1660  	return &HopL2OptimismBridgeBonderAddedIterator{contract: _HopL2OptimismBridge.contract, event: "BonderAdded", logs: logs, sub: sub}, nil
  1661  }
  1662  
  1663  // WatchBonderAdded is a free log subscription operation binding the contract event 0x2cec73b7434d3b91198ad1a618f63e6a0761ce281af5ec9ec76606d948d03e23.
  1664  //
  1665  // Solidity: event BonderAdded(address indexed newBonder)
  1666  func (_HopL2OptimismBridge *HopL2OptimismBridgeFilterer) WatchBonderAdded(opts *bind.WatchOpts, sink chan<- *HopL2OptimismBridgeBonderAdded, newBonder []common.Address) (event.Subscription, error) {
  1667  
  1668  	var newBonderRule []interface{}
  1669  	for _, newBonderItem := range newBonder {
  1670  		newBonderRule = append(newBonderRule, newBonderItem)
  1671  	}
  1672  
  1673  	logs, sub, err := _HopL2OptimismBridge.contract.WatchLogs(opts, "BonderAdded", newBonderRule)
  1674  	if err != nil {
  1675  		return nil, err
  1676  	}
  1677  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1678  		defer sub.Unsubscribe()
  1679  		for {
  1680  			select {
  1681  			case log := <-logs:
  1682  				// New log arrived, parse the event and forward to the user
  1683  				event := new(HopL2OptimismBridgeBonderAdded)
  1684  				if err := _HopL2OptimismBridge.contract.UnpackLog(event, "BonderAdded", log); err != nil {
  1685  					return err
  1686  				}
  1687  				event.Raw = log
  1688  
  1689  				select {
  1690  				case sink <- event:
  1691  				case err := <-sub.Err():
  1692  					return err
  1693  				case <-quit:
  1694  					return nil
  1695  				}
  1696  			case err := <-sub.Err():
  1697  				return err
  1698  			case <-quit:
  1699  				return nil
  1700  			}
  1701  		}
  1702  	}), nil
  1703  }
  1704  
  1705  // ParseBonderAdded is a log parse operation binding the contract event 0x2cec73b7434d3b91198ad1a618f63e6a0761ce281af5ec9ec76606d948d03e23.
  1706  //
  1707  // Solidity: event BonderAdded(address indexed newBonder)
  1708  func (_HopL2OptimismBridge *HopL2OptimismBridgeFilterer) ParseBonderAdded(log types.Log) (*HopL2OptimismBridgeBonderAdded, error) {
  1709  	event := new(HopL2OptimismBridgeBonderAdded)
  1710  	if err := _HopL2OptimismBridge.contract.UnpackLog(event, "BonderAdded", log); err != nil {
  1711  		return nil, err
  1712  	}
  1713  	event.Raw = log
  1714  	return event, nil
  1715  }
  1716  
  1717  // HopL2OptimismBridgeBonderRemovedIterator is returned from FilterBonderRemoved and is used to iterate over the raw logs and unpacked data for BonderRemoved events raised by the HopL2OptimismBridge contract.
  1718  type HopL2OptimismBridgeBonderRemovedIterator struct {
  1719  	Event *HopL2OptimismBridgeBonderRemoved // Event containing the contract specifics and raw log
  1720  
  1721  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1722  	event    string              // Event name to use for unpacking event data
  1723  
  1724  	logs chan types.Log        // Log channel receiving the found contract events
  1725  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1726  	done bool                  // Whether the subscription completed delivering logs
  1727  	fail error                 // Occurred error to stop iteration
  1728  }
  1729  
  1730  // Next advances the iterator to the subsequent event, returning whether there
  1731  // are any more events found. In case of a retrieval or parsing error, false is
  1732  // returned and Error() can be queried for the exact failure.
  1733  func (it *HopL2OptimismBridgeBonderRemovedIterator) Next() bool {
  1734  	// If the iterator failed, stop iterating
  1735  	if it.fail != nil {
  1736  		return false
  1737  	}
  1738  	// If the iterator completed, deliver directly whatever's available
  1739  	if it.done {
  1740  		select {
  1741  		case log := <-it.logs:
  1742  			it.Event = new(HopL2OptimismBridgeBonderRemoved)
  1743  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1744  				it.fail = err
  1745  				return false
  1746  			}
  1747  			it.Event.Raw = log
  1748  			return true
  1749  
  1750  		default:
  1751  			return false
  1752  		}
  1753  	}
  1754  	// Iterator still in progress, wait for either a data or an error event
  1755  	select {
  1756  	case log := <-it.logs:
  1757  		it.Event = new(HopL2OptimismBridgeBonderRemoved)
  1758  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1759  			it.fail = err
  1760  			return false
  1761  		}
  1762  		it.Event.Raw = log
  1763  		return true
  1764  
  1765  	case err := <-it.sub.Err():
  1766  		it.done = true
  1767  		it.fail = err
  1768  		return it.Next()
  1769  	}
  1770  }
  1771  
  1772  // Error returns any retrieval or parsing error occurred during filtering.
  1773  func (it *HopL2OptimismBridgeBonderRemovedIterator) Error() error {
  1774  	return it.fail
  1775  }
  1776  
  1777  // Close terminates the iteration process, releasing any pending underlying
  1778  // resources.
  1779  func (it *HopL2OptimismBridgeBonderRemovedIterator) Close() error {
  1780  	it.sub.Unsubscribe()
  1781  	return nil
  1782  }
  1783  
  1784  // HopL2OptimismBridgeBonderRemoved represents a BonderRemoved event raised by the HopL2OptimismBridge contract.
  1785  type HopL2OptimismBridgeBonderRemoved struct {
  1786  	PreviousBonder common.Address
  1787  	Raw            types.Log // Blockchain specific contextual infos
  1788  }
  1789  
  1790  // FilterBonderRemoved is a free log retrieval operation binding the contract event 0x4234ba611d325b3ba434c4e1b037967b955b1274d4185ee9847b7491111a48ff.
  1791  //
  1792  // Solidity: event BonderRemoved(address indexed previousBonder)
  1793  func (_HopL2OptimismBridge *HopL2OptimismBridgeFilterer) FilterBonderRemoved(opts *bind.FilterOpts, previousBonder []common.Address) (*HopL2OptimismBridgeBonderRemovedIterator, error) {
  1794  
  1795  	var previousBonderRule []interface{}
  1796  	for _, previousBonderItem := range previousBonder {
  1797  		previousBonderRule = append(previousBonderRule, previousBonderItem)
  1798  	}
  1799  
  1800  	logs, sub, err := _HopL2OptimismBridge.contract.FilterLogs(opts, "BonderRemoved", previousBonderRule)
  1801  	if err != nil {
  1802  		return nil, err
  1803  	}
  1804  	return &HopL2OptimismBridgeBonderRemovedIterator{contract: _HopL2OptimismBridge.contract, event: "BonderRemoved", logs: logs, sub: sub}, nil
  1805  }
  1806  
  1807  // WatchBonderRemoved is a free log subscription operation binding the contract event 0x4234ba611d325b3ba434c4e1b037967b955b1274d4185ee9847b7491111a48ff.
  1808  //
  1809  // Solidity: event BonderRemoved(address indexed previousBonder)
  1810  func (_HopL2OptimismBridge *HopL2OptimismBridgeFilterer) WatchBonderRemoved(opts *bind.WatchOpts, sink chan<- *HopL2OptimismBridgeBonderRemoved, previousBonder []common.Address) (event.Subscription, error) {
  1811  
  1812  	var previousBonderRule []interface{}
  1813  	for _, previousBonderItem := range previousBonder {
  1814  		previousBonderRule = append(previousBonderRule, previousBonderItem)
  1815  	}
  1816  
  1817  	logs, sub, err := _HopL2OptimismBridge.contract.WatchLogs(opts, "BonderRemoved", previousBonderRule)
  1818  	if err != nil {
  1819  		return nil, err
  1820  	}
  1821  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1822  		defer sub.Unsubscribe()
  1823  		for {
  1824  			select {
  1825  			case log := <-logs:
  1826  				// New log arrived, parse the event and forward to the user
  1827  				event := new(HopL2OptimismBridgeBonderRemoved)
  1828  				if err := _HopL2OptimismBridge.contract.UnpackLog(event, "BonderRemoved", log); err != nil {
  1829  					return err
  1830  				}
  1831  				event.Raw = log
  1832  
  1833  				select {
  1834  				case sink <- event:
  1835  				case err := <-sub.Err():
  1836  					return err
  1837  				case <-quit:
  1838  					return nil
  1839  				}
  1840  			case err := <-sub.Err():
  1841  				return err
  1842  			case <-quit:
  1843  				return nil
  1844  			}
  1845  		}
  1846  	}), nil
  1847  }
  1848  
  1849  // ParseBonderRemoved is a log parse operation binding the contract event 0x4234ba611d325b3ba434c4e1b037967b955b1274d4185ee9847b7491111a48ff.
  1850  //
  1851  // Solidity: event BonderRemoved(address indexed previousBonder)
  1852  func (_HopL2OptimismBridge *HopL2OptimismBridgeFilterer) ParseBonderRemoved(log types.Log) (*HopL2OptimismBridgeBonderRemoved, error) {
  1853  	event := new(HopL2OptimismBridgeBonderRemoved)
  1854  	if err := _HopL2OptimismBridge.contract.UnpackLog(event, "BonderRemoved", log); err != nil {
  1855  		return nil, err
  1856  	}
  1857  	event.Raw = log
  1858  	return event, nil
  1859  }
  1860  
  1861  // HopL2OptimismBridgeMultipleWithdrawalsSettledIterator is returned from FilterMultipleWithdrawalsSettled and is used to iterate over the raw logs and unpacked data for MultipleWithdrawalsSettled events raised by the HopL2OptimismBridge contract.
  1862  type HopL2OptimismBridgeMultipleWithdrawalsSettledIterator struct {
  1863  	Event *HopL2OptimismBridgeMultipleWithdrawalsSettled // Event containing the contract specifics and raw log
  1864  
  1865  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1866  	event    string              // Event name to use for unpacking event data
  1867  
  1868  	logs chan types.Log        // Log channel receiving the found contract events
  1869  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1870  	done bool                  // Whether the subscription completed delivering logs
  1871  	fail error                 // Occurred error to stop iteration
  1872  }
  1873  
  1874  // Next advances the iterator to the subsequent event, returning whether there
  1875  // are any more events found. In case of a retrieval or parsing error, false is
  1876  // returned and Error() can be queried for the exact failure.
  1877  func (it *HopL2OptimismBridgeMultipleWithdrawalsSettledIterator) Next() bool {
  1878  	// If the iterator failed, stop iterating
  1879  	if it.fail != nil {
  1880  		return false
  1881  	}
  1882  	// If the iterator completed, deliver directly whatever's available
  1883  	if it.done {
  1884  		select {
  1885  		case log := <-it.logs:
  1886  			it.Event = new(HopL2OptimismBridgeMultipleWithdrawalsSettled)
  1887  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1888  				it.fail = err
  1889  				return false
  1890  			}
  1891  			it.Event.Raw = log
  1892  			return true
  1893  
  1894  		default:
  1895  			return false
  1896  		}
  1897  	}
  1898  	// Iterator still in progress, wait for either a data or an error event
  1899  	select {
  1900  	case log := <-it.logs:
  1901  		it.Event = new(HopL2OptimismBridgeMultipleWithdrawalsSettled)
  1902  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1903  			it.fail = err
  1904  			return false
  1905  		}
  1906  		it.Event.Raw = log
  1907  		return true
  1908  
  1909  	case err := <-it.sub.Err():
  1910  		it.done = true
  1911  		it.fail = err
  1912  		return it.Next()
  1913  	}
  1914  }
  1915  
  1916  // Error returns any retrieval or parsing error occurred during filtering.
  1917  func (it *HopL2OptimismBridgeMultipleWithdrawalsSettledIterator) Error() error {
  1918  	return it.fail
  1919  }
  1920  
  1921  // Close terminates the iteration process, releasing any pending underlying
  1922  // resources.
  1923  func (it *HopL2OptimismBridgeMultipleWithdrawalsSettledIterator) Close() error {
  1924  	it.sub.Unsubscribe()
  1925  	return nil
  1926  }
  1927  
  1928  // HopL2OptimismBridgeMultipleWithdrawalsSettled represents a MultipleWithdrawalsSettled event raised by the HopL2OptimismBridge contract.
  1929  type HopL2OptimismBridgeMultipleWithdrawalsSettled struct {
  1930  	Bonder            common.Address
  1931  	RootHash          [32]byte
  1932  	TotalBondsSettled *big.Int
  1933  	Raw               types.Log // Blockchain specific contextual infos
  1934  }
  1935  
  1936  // FilterMultipleWithdrawalsSettled is a free log retrieval operation binding the contract event 0x78e830d08be9d5f957414c84d685c061ecbd8467be98b42ebb64f0118b57d2ff.
  1937  //
  1938  // Solidity: event MultipleWithdrawalsSettled(address indexed bonder, bytes32 indexed rootHash, uint256 totalBondsSettled)
  1939  func (_HopL2OptimismBridge *HopL2OptimismBridgeFilterer) FilterMultipleWithdrawalsSettled(opts *bind.FilterOpts, bonder []common.Address, rootHash [][32]byte) (*HopL2OptimismBridgeMultipleWithdrawalsSettledIterator, error) {
  1940  
  1941  	var bonderRule []interface{}
  1942  	for _, bonderItem := range bonder {
  1943  		bonderRule = append(bonderRule, bonderItem)
  1944  	}
  1945  	var rootHashRule []interface{}
  1946  	for _, rootHashItem := range rootHash {
  1947  		rootHashRule = append(rootHashRule, rootHashItem)
  1948  	}
  1949  
  1950  	logs, sub, err := _HopL2OptimismBridge.contract.FilterLogs(opts, "MultipleWithdrawalsSettled", bonderRule, rootHashRule)
  1951  	if err != nil {
  1952  		return nil, err
  1953  	}
  1954  	return &HopL2OptimismBridgeMultipleWithdrawalsSettledIterator{contract: _HopL2OptimismBridge.contract, event: "MultipleWithdrawalsSettled", logs: logs, sub: sub}, nil
  1955  }
  1956  
  1957  // WatchMultipleWithdrawalsSettled is a free log subscription operation binding the contract event 0x78e830d08be9d5f957414c84d685c061ecbd8467be98b42ebb64f0118b57d2ff.
  1958  //
  1959  // Solidity: event MultipleWithdrawalsSettled(address indexed bonder, bytes32 indexed rootHash, uint256 totalBondsSettled)
  1960  func (_HopL2OptimismBridge *HopL2OptimismBridgeFilterer) WatchMultipleWithdrawalsSettled(opts *bind.WatchOpts, sink chan<- *HopL2OptimismBridgeMultipleWithdrawalsSettled, bonder []common.Address, rootHash [][32]byte) (event.Subscription, error) {
  1961  
  1962  	var bonderRule []interface{}
  1963  	for _, bonderItem := range bonder {
  1964  		bonderRule = append(bonderRule, bonderItem)
  1965  	}
  1966  	var rootHashRule []interface{}
  1967  	for _, rootHashItem := range rootHash {
  1968  		rootHashRule = append(rootHashRule, rootHashItem)
  1969  	}
  1970  
  1971  	logs, sub, err := _HopL2OptimismBridge.contract.WatchLogs(opts, "MultipleWithdrawalsSettled", bonderRule, rootHashRule)
  1972  	if err != nil {
  1973  		return nil, err
  1974  	}
  1975  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1976  		defer sub.Unsubscribe()
  1977  		for {
  1978  			select {
  1979  			case log := <-logs:
  1980  				// New log arrived, parse the event and forward to the user
  1981  				event := new(HopL2OptimismBridgeMultipleWithdrawalsSettled)
  1982  				if err := _HopL2OptimismBridge.contract.UnpackLog(event, "MultipleWithdrawalsSettled", log); err != nil {
  1983  					return err
  1984  				}
  1985  				event.Raw = log
  1986  
  1987  				select {
  1988  				case sink <- event:
  1989  				case err := <-sub.Err():
  1990  					return err
  1991  				case <-quit:
  1992  					return nil
  1993  				}
  1994  			case err := <-sub.Err():
  1995  				return err
  1996  			case <-quit:
  1997  				return nil
  1998  			}
  1999  		}
  2000  	}), nil
  2001  }
  2002  
  2003  // ParseMultipleWithdrawalsSettled is a log parse operation binding the contract event 0x78e830d08be9d5f957414c84d685c061ecbd8467be98b42ebb64f0118b57d2ff.
  2004  //
  2005  // Solidity: event MultipleWithdrawalsSettled(address indexed bonder, bytes32 indexed rootHash, uint256 totalBondsSettled)
  2006  func (_HopL2OptimismBridge *HopL2OptimismBridgeFilterer) ParseMultipleWithdrawalsSettled(log types.Log) (*HopL2OptimismBridgeMultipleWithdrawalsSettled, error) {
  2007  	event := new(HopL2OptimismBridgeMultipleWithdrawalsSettled)
  2008  	if err := _HopL2OptimismBridge.contract.UnpackLog(event, "MultipleWithdrawalsSettled", log); err != nil {
  2009  		return nil, err
  2010  	}
  2011  	event.Raw = log
  2012  	return event, nil
  2013  }
  2014  
  2015  // HopL2OptimismBridgeStakeIterator is returned from FilterStake and is used to iterate over the raw logs and unpacked data for Stake events raised by the HopL2OptimismBridge contract.
  2016  type HopL2OptimismBridgeStakeIterator struct {
  2017  	Event *HopL2OptimismBridgeStake // Event containing the contract specifics and raw log
  2018  
  2019  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  2020  	event    string              // Event name to use for unpacking event data
  2021  
  2022  	logs chan types.Log        // Log channel receiving the found contract events
  2023  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  2024  	done bool                  // Whether the subscription completed delivering logs
  2025  	fail error                 // Occurred error to stop iteration
  2026  }
  2027  
  2028  // Next advances the iterator to the subsequent event, returning whether there
  2029  // are any more events found. In case of a retrieval or parsing error, false is
  2030  // returned and Error() can be queried for the exact failure.
  2031  func (it *HopL2OptimismBridgeStakeIterator) Next() bool {
  2032  	// If the iterator failed, stop iterating
  2033  	if it.fail != nil {
  2034  		return false
  2035  	}
  2036  	// If the iterator completed, deliver directly whatever's available
  2037  	if it.done {
  2038  		select {
  2039  		case log := <-it.logs:
  2040  			it.Event = new(HopL2OptimismBridgeStake)
  2041  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2042  				it.fail = err
  2043  				return false
  2044  			}
  2045  			it.Event.Raw = log
  2046  			return true
  2047  
  2048  		default:
  2049  			return false
  2050  		}
  2051  	}
  2052  	// Iterator still in progress, wait for either a data or an error event
  2053  	select {
  2054  	case log := <-it.logs:
  2055  		it.Event = new(HopL2OptimismBridgeStake)
  2056  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2057  			it.fail = err
  2058  			return false
  2059  		}
  2060  		it.Event.Raw = log
  2061  		return true
  2062  
  2063  	case err := <-it.sub.Err():
  2064  		it.done = true
  2065  		it.fail = err
  2066  		return it.Next()
  2067  	}
  2068  }
  2069  
  2070  // Error returns any retrieval or parsing error occurred during filtering.
  2071  func (it *HopL2OptimismBridgeStakeIterator) Error() error {
  2072  	return it.fail
  2073  }
  2074  
  2075  // Close terminates the iteration process, releasing any pending underlying
  2076  // resources.
  2077  func (it *HopL2OptimismBridgeStakeIterator) Close() error {
  2078  	it.sub.Unsubscribe()
  2079  	return nil
  2080  }
  2081  
  2082  // HopL2OptimismBridgeStake represents a Stake event raised by the HopL2OptimismBridge contract.
  2083  type HopL2OptimismBridgeStake struct {
  2084  	Account common.Address
  2085  	Amount  *big.Int
  2086  	Raw     types.Log // Blockchain specific contextual infos
  2087  }
  2088  
  2089  // FilterStake is a free log retrieval operation binding the contract event 0xebedb8b3c678666e7f36970bc8f57abf6d8fa2e828c0da91ea5b75bf68ed101a.
  2090  //
  2091  // Solidity: event Stake(address indexed account, uint256 amount)
  2092  func (_HopL2OptimismBridge *HopL2OptimismBridgeFilterer) FilterStake(opts *bind.FilterOpts, account []common.Address) (*HopL2OptimismBridgeStakeIterator, error) {
  2093  
  2094  	var accountRule []interface{}
  2095  	for _, accountItem := range account {
  2096  		accountRule = append(accountRule, accountItem)
  2097  	}
  2098  
  2099  	logs, sub, err := _HopL2OptimismBridge.contract.FilterLogs(opts, "Stake", accountRule)
  2100  	if err != nil {
  2101  		return nil, err
  2102  	}
  2103  	return &HopL2OptimismBridgeStakeIterator{contract: _HopL2OptimismBridge.contract, event: "Stake", logs: logs, sub: sub}, nil
  2104  }
  2105  
  2106  // WatchStake is a free log subscription operation binding the contract event 0xebedb8b3c678666e7f36970bc8f57abf6d8fa2e828c0da91ea5b75bf68ed101a.
  2107  //
  2108  // Solidity: event Stake(address indexed account, uint256 amount)
  2109  func (_HopL2OptimismBridge *HopL2OptimismBridgeFilterer) WatchStake(opts *bind.WatchOpts, sink chan<- *HopL2OptimismBridgeStake, account []common.Address) (event.Subscription, error) {
  2110  
  2111  	var accountRule []interface{}
  2112  	for _, accountItem := range account {
  2113  		accountRule = append(accountRule, accountItem)
  2114  	}
  2115  
  2116  	logs, sub, err := _HopL2OptimismBridge.contract.WatchLogs(opts, "Stake", accountRule)
  2117  	if err != nil {
  2118  		return nil, err
  2119  	}
  2120  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2121  		defer sub.Unsubscribe()
  2122  		for {
  2123  			select {
  2124  			case log := <-logs:
  2125  				// New log arrived, parse the event and forward to the user
  2126  				event := new(HopL2OptimismBridgeStake)
  2127  				if err := _HopL2OptimismBridge.contract.UnpackLog(event, "Stake", log); err != nil {
  2128  					return err
  2129  				}
  2130  				event.Raw = log
  2131  
  2132  				select {
  2133  				case sink <- event:
  2134  				case err := <-sub.Err():
  2135  					return err
  2136  				case <-quit:
  2137  					return nil
  2138  				}
  2139  			case err := <-sub.Err():
  2140  				return err
  2141  			case <-quit:
  2142  				return nil
  2143  			}
  2144  		}
  2145  	}), nil
  2146  }
  2147  
  2148  // ParseStake is a log parse operation binding the contract event 0xebedb8b3c678666e7f36970bc8f57abf6d8fa2e828c0da91ea5b75bf68ed101a.
  2149  //
  2150  // Solidity: event Stake(address indexed account, uint256 amount)
  2151  func (_HopL2OptimismBridge *HopL2OptimismBridgeFilterer) ParseStake(log types.Log) (*HopL2OptimismBridgeStake, error) {
  2152  	event := new(HopL2OptimismBridgeStake)
  2153  	if err := _HopL2OptimismBridge.contract.UnpackLog(event, "Stake", log); err != nil {
  2154  		return nil, err
  2155  	}
  2156  	event.Raw = log
  2157  	return event, nil
  2158  }
  2159  
  2160  // HopL2OptimismBridgeTransferFromL1CompletedIterator is returned from FilterTransferFromL1Completed and is used to iterate over the raw logs and unpacked data for TransferFromL1Completed events raised by the HopL2OptimismBridge contract.
  2161  type HopL2OptimismBridgeTransferFromL1CompletedIterator struct {
  2162  	Event *HopL2OptimismBridgeTransferFromL1Completed // Event containing the contract specifics and raw log
  2163  
  2164  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  2165  	event    string              // Event name to use for unpacking event data
  2166  
  2167  	logs chan types.Log        // Log channel receiving the found contract events
  2168  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  2169  	done bool                  // Whether the subscription completed delivering logs
  2170  	fail error                 // Occurred error to stop iteration
  2171  }
  2172  
  2173  // Next advances the iterator to the subsequent event, returning whether there
  2174  // are any more events found. In case of a retrieval or parsing error, false is
  2175  // returned and Error() can be queried for the exact failure.
  2176  func (it *HopL2OptimismBridgeTransferFromL1CompletedIterator) Next() bool {
  2177  	// If the iterator failed, stop iterating
  2178  	if it.fail != nil {
  2179  		return false
  2180  	}
  2181  	// If the iterator completed, deliver directly whatever's available
  2182  	if it.done {
  2183  		select {
  2184  		case log := <-it.logs:
  2185  			it.Event = new(HopL2OptimismBridgeTransferFromL1Completed)
  2186  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2187  				it.fail = err
  2188  				return false
  2189  			}
  2190  			it.Event.Raw = log
  2191  			return true
  2192  
  2193  		default:
  2194  			return false
  2195  		}
  2196  	}
  2197  	// Iterator still in progress, wait for either a data or an error event
  2198  	select {
  2199  	case log := <-it.logs:
  2200  		it.Event = new(HopL2OptimismBridgeTransferFromL1Completed)
  2201  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2202  			it.fail = err
  2203  			return false
  2204  		}
  2205  		it.Event.Raw = log
  2206  		return true
  2207  
  2208  	case err := <-it.sub.Err():
  2209  		it.done = true
  2210  		it.fail = err
  2211  		return it.Next()
  2212  	}
  2213  }
  2214  
  2215  // Error returns any retrieval or parsing error occurred during filtering.
  2216  func (it *HopL2OptimismBridgeTransferFromL1CompletedIterator) Error() error {
  2217  	return it.fail
  2218  }
  2219  
  2220  // Close terminates the iteration process, releasing any pending underlying
  2221  // resources.
  2222  func (it *HopL2OptimismBridgeTransferFromL1CompletedIterator) Close() error {
  2223  	it.sub.Unsubscribe()
  2224  	return nil
  2225  }
  2226  
  2227  // HopL2OptimismBridgeTransferFromL1Completed represents a TransferFromL1Completed event raised by the HopL2OptimismBridge contract.
  2228  type HopL2OptimismBridgeTransferFromL1Completed struct {
  2229  	Recipient    common.Address
  2230  	Amount       *big.Int
  2231  	AmountOutMin *big.Int
  2232  	Deadline     *big.Int
  2233  	Relayer      common.Address
  2234  	RelayerFee   *big.Int
  2235  	Raw          types.Log // Blockchain specific contextual infos
  2236  }
  2237  
  2238  // FilterTransferFromL1Completed is a free log retrieval operation binding the contract event 0x320958176930804eb66c2343c7343fc0367dc16249590c0f195783bee199d094.
  2239  //
  2240  // Solidity: event TransferFromL1Completed(address indexed recipient, uint256 amount, uint256 amountOutMin, uint256 deadline, address indexed relayer, uint256 relayerFee)
  2241  func (_HopL2OptimismBridge *HopL2OptimismBridgeFilterer) FilterTransferFromL1Completed(opts *bind.FilterOpts, recipient []common.Address, relayer []common.Address) (*HopL2OptimismBridgeTransferFromL1CompletedIterator, error) {
  2242  
  2243  	var recipientRule []interface{}
  2244  	for _, recipientItem := range recipient {
  2245  		recipientRule = append(recipientRule, recipientItem)
  2246  	}
  2247  
  2248  	var relayerRule []interface{}
  2249  	for _, relayerItem := range relayer {
  2250  		relayerRule = append(relayerRule, relayerItem)
  2251  	}
  2252  
  2253  	logs, sub, err := _HopL2OptimismBridge.contract.FilterLogs(opts, "TransferFromL1Completed", recipientRule, relayerRule)
  2254  	if err != nil {
  2255  		return nil, err
  2256  	}
  2257  	return &HopL2OptimismBridgeTransferFromL1CompletedIterator{contract: _HopL2OptimismBridge.contract, event: "TransferFromL1Completed", logs: logs, sub: sub}, nil
  2258  }
  2259  
  2260  // WatchTransferFromL1Completed is a free log subscription operation binding the contract event 0x320958176930804eb66c2343c7343fc0367dc16249590c0f195783bee199d094.
  2261  //
  2262  // Solidity: event TransferFromL1Completed(address indexed recipient, uint256 amount, uint256 amountOutMin, uint256 deadline, address indexed relayer, uint256 relayerFee)
  2263  func (_HopL2OptimismBridge *HopL2OptimismBridgeFilterer) WatchTransferFromL1Completed(opts *bind.WatchOpts, sink chan<- *HopL2OptimismBridgeTransferFromL1Completed, recipient []common.Address, relayer []common.Address) (event.Subscription, error) {
  2264  
  2265  	var recipientRule []interface{}
  2266  	for _, recipientItem := range recipient {
  2267  		recipientRule = append(recipientRule, recipientItem)
  2268  	}
  2269  
  2270  	var relayerRule []interface{}
  2271  	for _, relayerItem := range relayer {
  2272  		relayerRule = append(relayerRule, relayerItem)
  2273  	}
  2274  
  2275  	logs, sub, err := _HopL2OptimismBridge.contract.WatchLogs(opts, "TransferFromL1Completed", recipientRule, relayerRule)
  2276  	if err != nil {
  2277  		return nil, err
  2278  	}
  2279  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2280  		defer sub.Unsubscribe()
  2281  		for {
  2282  			select {
  2283  			case log := <-logs:
  2284  				// New log arrived, parse the event and forward to the user
  2285  				event := new(HopL2OptimismBridgeTransferFromL1Completed)
  2286  				if err := _HopL2OptimismBridge.contract.UnpackLog(event, "TransferFromL1Completed", log); err != nil {
  2287  					return err
  2288  				}
  2289  				event.Raw = log
  2290  
  2291  				select {
  2292  				case sink <- event:
  2293  				case err := <-sub.Err():
  2294  					return err
  2295  				case <-quit:
  2296  					return nil
  2297  				}
  2298  			case err := <-sub.Err():
  2299  				return err
  2300  			case <-quit:
  2301  				return nil
  2302  			}
  2303  		}
  2304  	}), nil
  2305  }
  2306  
  2307  // ParseTransferFromL1Completed is a log parse operation binding the contract event 0x320958176930804eb66c2343c7343fc0367dc16249590c0f195783bee199d094.
  2308  //
  2309  // Solidity: event TransferFromL1Completed(address indexed recipient, uint256 amount, uint256 amountOutMin, uint256 deadline, address indexed relayer, uint256 relayerFee)
  2310  func (_HopL2OptimismBridge *HopL2OptimismBridgeFilterer) ParseTransferFromL1Completed(log types.Log) (*HopL2OptimismBridgeTransferFromL1Completed, error) {
  2311  	event := new(HopL2OptimismBridgeTransferFromL1Completed)
  2312  	if err := _HopL2OptimismBridge.contract.UnpackLog(event, "TransferFromL1Completed", log); err != nil {
  2313  		return nil, err
  2314  	}
  2315  	event.Raw = log
  2316  	return event, nil
  2317  }
  2318  
  2319  // HopL2OptimismBridgeTransferRootSetIterator is returned from FilterTransferRootSet and is used to iterate over the raw logs and unpacked data for TransferRootSet events raised by the HopL2OptimismBridge contract.
  2320  type HopL2OptimismBridgeTransferRootSetIterator struct {
  2321  	Event *HopL2OptimismBridgeTransferRootSet // Event containing the contract specifics and raw log
  2322  
  2323  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  2324  	event    string              // Event name to use for unpacking event data
  2325  
  2326  	logs chan types.Log        // Log channel receiving the found contract events
  2327  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  2328  	done bool                  // Whether the subscription completed delivering logs
  2329  	fail error                 // Occurred error to stop iteration
  2330  }
  2331  
  2332  // Next advances the iterator to the subsequent event, returning whether there
  2333  // are any more events found. In case of a retrieval or parsing error, false is
  2334  // returned and Error() can be queried for the exact failure.
  2335  func (it *HopL2OptimismBridgeTransferRootSetIterator) Next() bool {
  2336  	// If the iterator failed, stop iterating
  2337  	if it.fail != nil {
  2338  		return false
  2339  	}
  2340  	// If the iterator completed, deliver directly whatever's available
  2341  	if it.done {
  2342  		select {
  2343  		case log := <-it.logs:
  2344  			it.Event = new(HopL2OptimismBridgeTransferRootSet)
  2345  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2346  				it.fail = err
  2347  				return false
  2348  			}
  2349  			it.Event.Raw = log
  2350  			return true
  2351  
  2352  		default:
  2353  			return false
  2354  		}
  2355  	}
  2356  	// Iterator still in progress, wait for either a data or an error event
  2357  	select {
  2358  	case log := <-it.logs:
  2359  		it.Event = new(HopL2OptimismBridgeTransferRootSet)
  2360  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2361  			it.fail = err
  2362  			return false
  2363  		}
  2364  		it.Event.Raw = log
  2365  		return true
  2366  
  2367  	case err := <-it.sub.Err():
  2368  		it.done = true
  2369  		it.fail = err
  2370  		return it.Next()
  2371  	}
  2372  }
  2373  
  2374  // Error returns any retrieval or parsing error occurred during filtering.
  2375  func (it *HopL2OptimismBridgeTransferRootSetIterator) Error() error {
  2376  	return it.fail
  2377  }
  2378  
  2379  // Close terminates the iteration process, releasing any pending underlying
  2380  // resources.
  2381  func (it *HopL2OptimismBridgeTransferRootSetIterator) Close() error {
  2382  	it.sub.Unsubscribe()
  2383  	return nil
  2384  }
  2385  
  2386  // HopL2OptimismBridgeTransferRootSet represents a TransferRootSet event raised by the HopL2OptimismBridge contract.
  2387  type HopL2OptimismBridgeTransferRootSet struct {
  2388  	RootHash    [32]byte
  2389  	TotalAmount *big.Int
  2390  	Raw         types.Log // Blockchain specific contextual infos
  2391  }
  2392  
  2393  // FilterTransferRootSet is a free log retrieval operation binding the contract event 0xb33d2162aead99dab59e77a7a67ea025b776bf8ca8079e132afdf9b23e03bd42.
  2394  //
  2395  // Solidity: event TransferRootSet(bytes32 indexed rootHash, uint256 totalAmount)
  2396  func (_HopL2OptimismBridge *HopL2OptimismBridgeFilterer) FilterTransferRootSet(opts *bind.FilterOpts, rootHash [][32]byte) (*HopL2OptimismBridgeTransferRootSetIterator, error) {
  2397  
  2398  	var rootHashRule []interface{}
  2399  	for _, rootHashItem := range rootHash {
  2400  		rootHashRule = append(rootHashRule, rootHashItem)
  2401  	}
  2402  
  2403  	logs, sub, err := _HopL2OptimismBridge.contract.FilterLogs(opts, "TransferRootSet", rootHashRule)
  2404  	if err != nil {
  2405  		return nil, err
  2406  	}
  2407  	return &HopL2OptimismBridgeTransferRootSetIterator{contract: _HopL2OptimismBridge.contract, event: "TransferRootSet", logs: logs, sub: sub}, nil
  2408  }
  2409  
  2410  // WatchTransferRootSet is a free log subscription operation binding the contract event 0xb33d2162aead99dab59e77a7a67ea025b776bf8ca8079e132afdf9b23e03bd42.
  2411  //
  2412  // Solidity: event TransferRootSet(bytes32 indexed rootHash, uint256 totalAmount)
  2413  func (_HopL2OptimismBridge *HopL2OptimismBridgeFilterer) WatchTransferRootSet(opts *bind.WatchOpts, sink chan<- *HopL2OptimismBridgeTransferRootSet, rootHash [][32]byte) (event.Subscription, error) {
  2414  
  2415  	var rootHashRule []interface{}
  2416  	for _, rootHashItem := range rootHash {
  2417  		rootHashRule = append(rootHashRule, rootHashItem)
  2418  	}
  2419  
  2420  	logs, sub, err := _HopL2OptimismBridge.contract.WatchLogs(opts, "TransferRootSet", rootHashRule)
  2421  	if err != nil {
  2422  		return nil, err
  2423  	}
  2424  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2425  		defer sub.Unsubscribe()
  2426  		for {
  2427  			select {
  2428  			case log := <-logs:
  2429  				// New log arrived, parse the event and forward to the user
  2430  				event := new(HopL2OptimismBridgeTransferRootSet)
  2431  				if err := _HopL2OptimismBridge.contract.UnpackLog(event, "TransferRootSet", log); err != nil {
  2432  					return err
  2433  				}
  2434  				event.Raw = log
  2435  
  2436  				select {
  2437  				case sink <- event:
  2438  				case err := <-sub.Err():
  2439  					return err
  2440  				case <-quit:
  2441  					return nil
  2442  				}
  2443  			case err := <-sub.Err():
  2444  				return err
  2445  			case <-quit:
  2446  				return nil
  2447  			}
  2448  		}
  2449  	}), nil
  2450  }
  2451  
  2452  // ParseTransferRootSet is a log parse operation binding the contract event 0xb33d2162aead99dab59e77a7a67ea025b776bf8ca8079e132afdf9b23e03bd42.
  2453  //
  2454  // Solidity: event TransferRootSet(bytes32 indexed rootHash, uint256 totalAmount)
  2455  func (_HopL2OptimismBridge *HopL2OptimismBridgeFilterer) ParseTransferRootSet(log types.Log) (*HopL2OptimismBridgeTransferRootSet, error) {
  2456  	event := new(HopL2OptimismBridgeTransferRootSet)
  2457  	if err := _HopL2OptimismBridge.contract.UnpackLog(event, "TransferRootSet", log); err != nil {
  2458  		return nil, err
  2459  	}
  2460  	event.Raw = log
  2461  	return event, nil
  2462  }
  2463  
  2464  // HopL2OptimismBridgeTransferSentIterator is returned from FilterTransferSent and is used to iterate over the raw logs and unpacked data for TransferSent events raised by the HopL2OptimismBridge contract.
  2465  type HopL2OptimismBridgeTransferSentIterator struct {
  2466  	Event *HopL2OptimismBridgeTransferSent // Event containing the contract specifics and raw log
  2467  
  2468  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  2469  	event    string              // Event name to use for unpacking event data
  2470  
  2471  	logs chan types.Log        // Log channel receiving the found contract events
  2472  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  2473  	done bool                  // Whether the subscription completed delivering logs
  2474  	fail error                 // Occurred error to stop iteration
  2475  }
  2476  
  2477  // Next advances the iterator to the subsequent event, returning whether there
  2478  // are any more events found. In case of a retrieval or parsing error, false is
  2479  // returned and Error() can be queried for the exact failure.
  2480  func (it *HopL2OptimismBridgeTransferSentIterator) Next() bool {
  2481  	// If the iterator failed, stop iterating
  2482  	if it.fail != nil {
  2483  		return false
  2484  	}
  2485  	// If the iterator completed, deliver directly whatever's available
  2486  	if it.done {
  2487  		select {
  2488  		case log := <-it.logs:
  2489  			it.Event = new(HopL2OptimismBridgeTransferSent)
  2490  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2491  				it.fail = err
  2492  				return false
  2493  			}
  2494  			it.Event.Raw = log
  2495  			return true
  2496  
  2497  		default:
  2498  			return false
  2499  		}
  2500  	}
  2501  	// Iterator still in progress, wait for either a data or an error event
  2502  	select {
  2503  	case log := <-it.logs:
  2504  		it.Event = new(HopL2OptimismBridgeTransferSent)
  2505  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2506  			it.fail = err
  2507  			return false
  2508  		}
  2509  		it.Event.Raw = log
  2510  		return true
  2511  
  2512  	case err := <-it.sub.Err():
  2513  		it.done = true
  2514  		it.fail = err
  2515  		return it.Next()
  2516  	}
  2517  }
  2518  
  2519  // Error returns any retrieval or parsing error occurred during filtering.
  2520  func (it *HopL2OptimismBridgeTransferSentIterator) Error() error {
  2521  	return it.fail
  2522  }
  2523  
  2524  // Close terminates the iteration process, releasing any pending underlying
  2525  // resources.
  2526  func (it *HopL2OptimismBridgeTransferSentIterator) Close() error {
  2527  	it.sub.Unsubscribe()
  2528  	return nil
  2529  }
  2530  
  2531  // HopL2OptimismBridgeTransferSent represents a TransferSent event raised by the HopL2OptimismBridge contract.
  2532  type HopL2OptimismBridgeTransferSent struct {
  2533  	TransferId    [32]byte
  2534  	ChainId       *big.Int
  2535  	Recipient     common.Address
  2536  	Amount        *big.Int
  2537  	TransferNonce [32]byte
  2538  	BonderFee     *big.Int
  2539  	Index         *big.Int
  2540  	AmountOutMin  *big.Int
  2541  	Deadline      *big.Int
  2542  	Raw           types.Log // Blockchain specific contextual infos
  2543  }
  2544  
  2545  // FilterTransferSent is a free log retrieval operation binding the contract event 0xe35dddd4ea75d7e9b3fe93af4f4e40e778c3da4074c9d93e7c6536f1e803c1eb.
  2546  //
  2547  // Solidity: event TransferSent(bytes32 indexed transferId, uint256 indexed chainId, address indexed recipient, uint256 amount, bytes32 transferNonce, uint256 bonderFee, uint256 index, uint256 amountOutMin, uint256 deadline)
  2548  func (_HopL2OptimismBridge *HopL2OptimismBridgeFilterer) FilterTransferSent(opts *bind.FilterOpts, transferId [][32]byte, chainId []*big.Int, recipient []common.Address) (*HopL2OptimismBridgeTransferSentIterator, error) {
  2549  
  2550  	var transferIdRule []interface{}
  2551  	for _, transferIdItem := range transferId {
  2552  		transferIdRule = append(transferIdRule, transferIdItem)
  2553  	}
  2554  	var chainIdRule []interface{}
  2555  	for _, chainIdItem := range chainId {
  2556  		chainIdRule = append(chainIdRule, chainIdItem)
  2557  	}
  2558  	var recipientRule []interface{}
  2559  	for _, recipientItem := range recipient {
  2560  		recipientRule = append(recipientRule, recipientItem)
  2561  	}
  2562  
  2563  	logs, sub, err := _HopL2OptimismBridge.contract.FilterLogs(opts, "TransferSent", transferIdRule, chainIdRule, recipientRule)
  2564  	if err != nil {
  2565  		return nil, err
  2566  	}
  2567  	return &HopL2OptimismBridgeTransferSentIterator{contract: _HopL2OptimismBridge.contract, event: "TransferSent", logs: logs, sub: sub}, nil
  2568  }
  2569  
  2570  // WatchTransferSent is a free log subscription operation binding the contract event 0xe35dddd4ea75d7e9b3fe93af4f4e40e778c3da4074c9d93e7c6536f1e803c1eb.
  2571  //
  2572  // Solidity: event TransferSent(bytes32 indexed transferId, uint256 indexed chainId, address indexed recipient, uint256 amount, bytes32 transferNonce, uint256 bonderFee, uint256 index, uint256 amountOutMin, uint256 deadline)
  2573  func (_HopL2OptimismBridge *HopL2OptimismBridgeFilterer) WatchTransferSent(opts *bind.WatchOpts, sink chan<- *HopL2OptimismBridgeTransferSent, transferId [][32]byte, chainId []*big.Int, recipient []common.Address) (event.Subscription, error) {
  2574  
  2575  	var transferIdRule []interface{}
  2576  	for _, transferIdItem := range transferId {
  2577  		transferIdRule = append(transferIdRule, transferIdItem)
  2578  	}
  2579  	var chainIdRule []interface{}
  2580  	for _, chainIdItem := range chainId {
  2581  		chainIdRule = append(chainIdRule, chainIdItem)
  2582  	}
  2583  	var recipientRule []interface{}
  2584  	for _, recipientItem := range recipient {
  2585  		recipientRule = append(recipientRule, recipientItem)
  2586  	}
  2587  
  2588  	logs, sub, err := _HopL2OptimismBridge.contract.WatchLogs(opts, "TransferSent", transferIdRule, chainIdRule, recipientRule)
  2589  	if err != nil {
  2590  		return nil, err
  2591  	}
  2592  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2593  		defer sub.Unsubscribe()
  2594  		for {
  2595  			select {
  2596  			case log := <-logs:
  2597  				// New log arrived, parse the event and forward to the user
  2598  				event := new(HopL2OptimismBridgeTransferSent)
  2599  				if err := _HopL2OptimismBridge.contract.UnpackLog(event, "TransferSent", log); err != nil {
  2600  					return err
  2601  				}
  2602  				event.Raw = log
  2603  
  2604  				select {
  2605  				case sink <- event:
  2606  				case err := <-sub.Err():
  2607  					return err
  2608  				case <-quit:
  2609  					return nil
  2610  				}
  2611  			case err := <-sub.Err():
  2612  				return err
  2613  			case <-quit:
  2614  				return nil
  2615  			}
  2616  		}
  2617  	}), nil
  2618  }
  2619  
  2620  // ParseTransferSent is a log parse operation binding the contract event 0xe35dddd4ea75d7e9b3fe93af4f4e40e778c3da4074c9d93e7c6536f1e803c1eb.
  2621  //
  2622  // Solidity: event TransferSent(bytes32 indexed transferId, uint256 indexed chainId, address indexed recipient, uint256 amount, bytes32 transferNonce, uint256 bonderFee, uint256 index, uint256 amountOutMin, uint256 deadline)
  2623  func (_HopL2OptimismBridge *HopL2OptimismBridgeFilterer) ParseTransferSent(log types.Log) (*HopL2OptimismBridgeTransferSent, error) {
  2624  	event := new(HopL2OptimismBridgeTransferSent)
  2625  	if err := _HopL2OptimismBridge.contract.UnpackLog(event, "TransferSent", log); err != nil {
  2626  		return nil, err
  2627  	}
  2628  	event.Raw = log
  2629  	return event, nil
  2630  }
  2631  
  2632  // HopL2OptimismBridgeTransfersCommittedIterator is returned from FilterTransfersCommitted and is used to iterate over the raw logs and unpacked data for TransfersCommitted events raised by the HopL2OptimismBridge contract.
  2633  type HopL2OptimismBridgeTransfersCommittedIterator struct {
  2634  	Event *HopL2OptimismBridgeTransfersCommitted // Event containing the contract specifics and raw log
  2635  
  2636  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  2637  	event    string              // Event name to use for unpacking event data
  2638  
  2639  	logs chan types.Log        // Log channel receiving the found contract events
  2640  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  2641  	done bool                  // Whether the subscription completed delivering logs
  2642  	fail error                 // Occurred error to stop iteration
  2643  }
  2644  
  2645  // Next advances the iterator to the subsequent event, returning whether there
  2646  // are any more events found. In case of a retrieval or parsing error, false is
  2647  // returned and Error() can be queried for the exact failure.
  2648  func (it *HopL2OptimismBridgeTransfersCommittedIterator) Next() bool {
  2649  	// If the iterator failed, stop iterating
  2650  	if it.fail != nil {
  2651  		return false
  2652  	}
  2653  	// If the iterator completed, deliver directly whatever's available
  2654  	if it.done {
  2655  		select {
  2656  		case log := <-it.logs:
  2657  			it.Event = new(HopL2OptimismBridgeTransfersCommitted)
  2658  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2659  				it.fail = err
  2660  				return false
  2661  			}
  2662  			it.Event.Raw = log
  2663  			return true
  2664  
  2665  		default:
  2666  			return false
  2667  		}
  2668  	}
  2669  	// Iterator still in progress, wait for either a data or an error event
  2670  	select {
  2671  	case log := <-it.logs:
  2672  		it.Event = new(HopL2OptimismBridgeTransfersCommitted)
  2673  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2674  			it.fail = err
  2675  			return false
  2676  		}
  2677  		it.Event.Raw = log
  2678  		return true
  2679  
  2680  	case err := <-it.sub.Err():
  2681  		it.done = true
  2682  		it.fail = err
  2683  		return it.Next()
  2684  	}
  2685  }
  2686  
  2687  // Error returns any retrieval or parsing error occurred during filtering.
  2688  func (it *HopL2OptimismBridgeTransfersCommittedIterator) Error() error {
  2689  	return it.fail
  2690  }
  2691  
  2692  // Close terminates the iteration process, releasing any pending underlying
  2693  // resources.
  2694  func (it *HopL2OptimismBridgeTransfersCommittedIterator) Close() error {
  2695  	it.sub.Unsubscribe()
  2696  	return nil
  2697  }
  2698  
  2699  // HopL2OptimismBridgeTransfersCommitted represents a TransfersCommitted event raised by the HopL2OptimismBridge contract.
  2700  type HopL2OptimismBridgeTransfersCommitted struct {
  2701  	DestinationChainId *big.Int
  2702  	RootHash           [32]byte
  2703  	TotalAmount        *big.Int
  2704  	RootCommittedAt    *big.Int
  2705  	Raw                types.Log // Blockchain specific contextual infos
  2706  }
  2707  
  2708  // FilterTransfersCommitted is a free log retrieval operation binding the contract event 0xf52ad20d3b4f50d1c40901dfb95a9ce5270b2fc32694e5c668354721cd87aa74.
  2709  //
  2710  // Solidity: event TransfersCommitted(uint256 indexed destinationChainId, bytes32 indexed rootHash, uint256 totalAmount, uint256 rootCommittedAt)
  2711  func (_HopL2OptimismBridge *HopL2OptimismBridgeFilterer) FilterTransfersCommitted(opts *bind.FilterOpts, destinationChainId []*big.Int, rootHash [][32]byte) (*HopL2OptimismBridgeTransfersCommittedIterator, error) {
  2712  
  2713  	var destinationChainIdRule []interface{}
  2714  	for _, destinationChainIdItem := range destinationChainId {
  2715  		destinationChainIdRule = append(destinationChainIdRule, destinationChainIdItem)
  2716  	}
  2717  	var rootHashRule []interface{}
  2718  	for _, rootHashItem := range rootHash {
  2719  		rootHashRule = append(rootHashRule, rootHashItem)
  2720  	}
  2721  
  2722  	logs, sub, err := _HopL2OptimismBridge.contract.FilterLogs(opts, "TransfersCommitted", destinationChainIdRule, rootHashRule)
  2723  	if err != nil {
  2724  		return nil, err
  2725  	}
  2726  	return &HopL2OptimismBridgeTransfersCommittedIterator{contract: _HopL2OptimismBridge.contract, event: "TransfersCommitted", logs: logs, sub: sub}, nil
  2727  }
  2728  
  2729  // WatchTransfersCommitted is a free log subscription operation binding the contract event 0xf52ad20d3b4f50d1c40901dfb95a9ce5270b2fc32694e5c668354721cd87aa74.
  2730  //
  2731  // Solidity: event TransfersCommitted(uint256 indexed destinationChainId, bytes32 indexed rootHash, uint256 totalAmount, uint256 rootCommittedAt)
  2732  func (_HopL2OptimismBridge *HopL2OptimismBridgeFilterer) WatchTransfersCommitted(opts *bind.WatchOpts, sink chan<- *HopL2OptimismBridgeTransfersCommitted, destinationChainId []*big.Int, rootHash [][32]byte) (event.Subscription, error) {
  2733  
  2734  	var destinationChainIdRule []interface{}
  2735  	for _, destinationChainIdItem := range destinationChainId {
  2736  		destinationChainIdRule = append(destinationChainIdRule, destinationChainIdItem)
  2737  	}
  2738  	var rootHashRule []interface{}
  2739  	for _, rootHashItem := range rootHash {
  2740  		rootHashRule = append(rootHashRule, rootHashItem)
  2741  	}
  2742  
  2743  	logs, sub, err := _HopL2OptimismBridge.contract.WatchLogs(opts, "TransfersCommitted", destinationChainIdRule, rootHashRule)
  2744  	if err != nil {
  2745  		return nil, err
  2746  	}
  2747  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2748  		defer sub.Unsubscribe()
  2749  		for {
  2750  			select {
  2751  			case log := <-logs:
  2752  				// New log arrived, parse the event and forward to the user
  2753  				event := new(HopL2OptimismBridgeTransfersCommitted)
  2754  				if err := _HopL2OptimismBridge.contract.UnpackLog(event, "TransfersCommitted", log); err != nil {
  2755  					return err
  2756  				}
  2757  				event.Raw = log
  2758  
  2759  				select {
  2760  				case sink <- event:
  2761  				case err := <-sub.Err():
  2762  					return err
  2763  				case <-quit:
  2764  					return nil
  2765  				}
  2766  			case err := <-sub.Err():
  2767  				return err
  2768  			case <-quit:
  2769  				return nil
  2770  			}
  2771  		}
  2772  	}), nil
  2773  }
  2774  
  2775  // ParseTransfersCommitted is a log parse operation binding the contract event 0xf52ad20d3b4f50d1c40901dfb95a9ce5270b2fc32694e5c668354721cd87aa74.
  2776  //
  2777  // Solidity: event TransfersCommitted(uint256 indexed destinationChainId, bytes32 indexed rootHash, uint256 totalAmount, uint256 rootCommittedAt)
  2778  func (_HopL2OptimismBridge *HopL2OptimismBridgeFilterer) ParseTransfersCommitted(log types.Log) (*HopL2OptimismBridgeTransfersCommitted, error) {
  2779  	event := new(HopL2OptimismBridgeTransfersCommitted)
  2780  	if err := _HopL2OptimismBridge.contract.UnpackLog(event, "TransfersCommitted", log); err != nil {
  2781  		return nil, err
  2782  	}
  2783  	event.Raw = log
  2784  	return event, nil
  2785  }
  2786  
  2787  // HopL2OptimismBridgeUnstakeIterator is returned from FilterUnstake and is used to iterate over the raw logs and unpacked data for Unstake events raised by the HopL2OptimismBridge contract.
  2788  type HopL2OptimismBridgeUnstakeIterator struct {
  2789  	Event *HopL2OptimismBridgeUnstake // Event containing the contract specifics and raw log
  2790  
  2791  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  2792  	event    string              // Event name to use for unpacking event data
  2793  
  2794  	logs chan types.Log        // Log channel receiving the found contract events
  2795  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  2796  	done bool                  // Whether the subscription completed delivering logs
  2797  	fail error                 // Occurred error to stop iteration
  2798  }
  2799  
  2800  // Next advances the iterator to the subsequent event, returning whether there
  2801  // are any more events found. In case of a retrieval or parsing error, false is
  2802  // returned and Error() can be queried for the exact failure.
  2803  func (it *HopL2OptimismBridgeUnstakeIterator) Next() bool {
  2804  	// If the iterator failed, stop iterating
  2805  	if it.fail != nil {
  2806  		return false
  2807  	}
  2808  	// If the iterator completed, deliver directly whatever's available
  2809  	if it.done {
  2810  		select {
  2811  		case log := <-it.logs:
  2812  			it.Event = new(HopL2OptimismBridgeUnstake)
  2813  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2814  				it.fail = err
  2815  				return false
  2816  			}
  2817  			it.Event.Raw = log
  2818  			return true
  2819  
  2820  		default:
  2821  			return false
  2822  		}
  2823  	}
  2824  	// Iterator still in progress, wait for either a data or an error event
  2825  	select {
  2826  	case log := <-it.logs:
  2827  		it.Event = new(HopL2OptimismBridgeUnstake)
  2828  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2829  			it.fail = err
  2830  			return false
  2831  		}
  2832  		it.Event.Raw = log
  2833  		return true
  2834  
  2835  	case err := <-it.sub.Err():
  2836  		it.done = true
  2837  		it.fail = err
  2838  		return it.Next()
  2839  	}
  2840  }
  2841  
  2842  // Error returns any retrieval or parsing error occurred during filtering.
  2843  func (it *HopL2OptimismBridgeUnstakeIterator) Error() error {
  2844  	return it.fail
  2845  }
  2846  
  2847  // Close terminates the iteration process, releasing any pending underlying
  2848  // resources.
  2849  func (it *HopL2OptimismBridgeUnstakeIterator) Close() error {
  2850  	it.sub.Unsubscribe()
  2851  	return nil
  2852  }
  2853  
  2854  // HopL2OptimismBridgeUnstake represents a Unstake event raised by the HopL2OptimismBridge contract.
  2855  type HopL2OptimismBridgeUnstake struct {
  2856  	Account common.Address
  2857  	Amount  *big.Int
  2858  	Raw     types.Log // Blockchain specific contextual infos
  2859  }
  2860  
  2861  // FilterUnstake is a free log retrieval operation binding the contract event 0x85082129d87b2fe11527cb1b3b7a520aeb5aa6913f88a3d8757fe40d1db02fdd.
  2862  //
  2863  // Solidity: event Unstake(address indexed account, uint256 amount)
  2864  func (_HopL2OptimismBridge *HopL2OptimismBridgeFilterer) FilterUnstake(opts *bind.FilterOpts, account []common.Address) (*HopL2OptimismBridgeUnstakeIterator, error) {
  2865  
  2866  	var accountRule []interface{}
  2867  	for _, accountItem := range account {
  2868  		accountRule = append(accountRule, accountItem)
  2869  	}
  2870  
  2871  	logs, sub, err := _HopL2OptimismBridge.contract.FilterLogs(opts, "Unstake", accountRule)
  2872  	if err != nil {
  2873  		return nil, err
  2874  	}
  2875  	return &HopL2OptimismBridgeUnstakeIterator{contract: _HopL2OptimismBridge.contract, event: "Unstake", logs: logs, sub: sub}, nil
  2876  }
  2877  
  2878  // WatchUnstake is a free log subscription operation binding the contract event 0x85082129d87b2fe11527cb1b3b7a520aeb5aa6913f88a3d8757fe40d1db02fdd.
  2879  //
  2880  // Solidity: event Unstake(address indexed account, uint256 amount)
  2881  func (_HopL2OptimismBridge *HopL2OptimismBridgeFilterer) WatchUnstake(opts *bind.WatchOpts, sink chan<- *HopL2OptimismBridgeUnstake, account []common.Address) (event.Subscription, error) {
  2882  
  2883  	var accountRule []interface{}
  2884  	for _, accountItem := range account {
  2885  		accountRule = append(accountRule, accountItem)
  2886  	}
  2887  
  2888  	logs, sub, err := _HopL2OptimismBridge.contract.WatchLogs(opts, "Unstake", accountRule)
  2889  	if err != nil {
  2890  		return nil, err
  2891  	}
  2892  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2893  		defer sub.Unsubscribe()
  2894  		for {
  2895  			select {
  2896  			case log := <-logs:
  2897  				// New log arrived, parse the event and forward to the user
  2898  				event := new(HopL2OptimismBridgeUnstake)
  2899  				if err := _HopL2OptimismBridge.contract.UnpackLog(event, "Unstake", log); err != nil {
  2900  					return err
  2901  				}
  2902  				event.Raw = log
  2903  
  2904  				select {
  2905  				case sink <- event:
  2906  				case err := <-sub.Err():
  2907  					return err
  2908  				case <-quit:
  2909  					return nil
  2910  				}
  2911  			case err := <-sub.Err():
  2912  				return err
  2913  			case <-quit:
  2914  				return nil
  2915  			}
  2916  		}
  2917  	}), nil
  2918  }
  2919  
  2920  // ParseUnstake is a log parse operation binding the contract event 0x85082129d87b2fe11527cb1b3b7a520aeb5aa6913f88a3d8757fe40d1db02fdd.
  2921  //
  2922  // Solidity: event Unstake(address indexed account, uint256 amount)
  2923  func (_HopL2OptimismBridge *HopL2OptimismBridgeFilterer) ParseUnstake(log types.Log) (*HopL2OptimismBridgeUnstake, error) {
  2924  	event := new(HopL2OptimismBridgeUnstake)
  2925  	if err := _HopL2OptimismBridge.contract.UnpackLog(event, "Unstake", log); err != nil {
  2926  		return nil, err
  2927  	}
  2928  	event.Raw = log
  2929  	return event, nil
  2930  }
  2931  
  2932  // HopL2OptimismBridgeWithdrawalBondSettledIterator is returned from FilterWithdrawalBondSettled and is used to iterate over the raw logs and unpacked data for WithdrawalBondSettled events raised by the HopL2OptimismBridge contract.
  2933  type HopL2OptimismBridgeWithdrawalBondSettledIterator struct {
  2934  	Event *HopL2OptimismBridgeWithdrawalBondSettled // Event containing the contract specifics and raw log
  2935  
  2936  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  2937  	event    string              // Event name to use for unpacking event data
  2938  
  2939  	logs chan types.Log        // Log channel receiving the found contract events
  2940  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  2941  	done bool                  // Whether the subscription completed delivering logs
  2942  	fail error                 // Occurred error to stop iteration
  2943  }
  2944  
  2945  // Next advances the iterator to the subsequent event, returning whether there
  2946  // are any more events found. In case of a retrieval or parsing error, false is
  2947  // returned and Error() can be queried for the exact failure.
  2948  func (it *HopL2OptimismBridgeWithdrawalBondSettledIterator) Next() bool {
  2949  	// If the iterator failed, stop iterating
  2950  	if it.fail != nil {
  2951  		return false
  2952  	}
  2953  	// If the iterator completed, deliver directly whatever's available
  2954  	if it.done {
  2955  		select {
  2956  		case log := <-it.logs:
  2957  			it.Event = new(HopL2OptimismBridgeWithdrawalBondSettled)
  2958  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2959  				it.fail = err
  2960  				return false
  2961  			}
  2962  			it.Event.Raw = log
  2963  			return true
  2964  
  2965  		default:
  2966  			return false
  2967  		}
  2968  	}
  2969  	// Iterator still in progress, wait for either a data or an error event
  2970  	select {
  2971  	case log := <-it.logs:
  2972  		it.Event = new(HopL2OptimismBridgeWithdrawalBondSettled)
  2973  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2974  			it.fail = err
  2975  			return false
  2976  		}
  2977  		it.Event.Raw = log
  2978  		return true
  2979  
  2980  	case err := <-it.sub.Err():
  2981  		it.done = true
  2982  		it.fail = err
  2983  		return it.Next()
  2984  	}
  2985  }
  2986  
  2987  // Error returns any retrieval or parsing error occurred during filtering.
  2988  func (it *HopL2OptimismBridgeWithdrawalBondSettledIterator) Error() error {
  2989  	return it.fail
  2990  }
  2991  
  2992  // Close terminates the iteration process, releasing any pending underlying
  2993  // resources.
  2994  func (it *HopL2OptimismBridgeWithdrawalBondSettledIterator) Close() error {
  2995  	it.sub.Unsubscribe()
  2996  	return nil
  2997  }
  2998  
  2999  // HopL2OptimismBridgeWithdrawalBondSettled represents a WithdrawalBondSettled event raised by the HopL2OptimismBridge contract.
  3000  type HopL2OptimismBridgeWithdrawalBondSettled struct {
  3001  	Bonder     common.Address
  3002  	TransferId [32]byte
  3003  	RootHash   [32]byte
  3004  	Raw        types.Log // Blockchain specific contextual infos
  3005  }
  3006  
  3007  // FilterWithdrawalBondSettled is a free log retrieval operation binding the contract event 0x84eb21b24c31b27a3bc67dde4a598aad06db6e9415cd66544492b9616996143c.
  3008  //
  3009  // Solidity: event WithdrawalBondSettled(address indexed bonder, bytes32 indexed transferId, bytes32 indexed rootHash)
  3010  func (_HopL2OptimismBridge *HopL2OptimismBridgeFilterer) FilterWithdrawalBondSettled(opts *bind.FilterOpts, bonder []common.Address, transferId [][32]byte, rootHash [][32]byte) (*HopL2OptimismBridgeWithdrawalBondSettledIterator, error) {
  3011  
  3012  	var bonderRule []interface{}
  3013  	for _, bonderItem := range bonder {
  3014  		bonderRule = append(bonderRule, bonderItem)
  3015  	}
  3016  	var transferIdRule []interface{}
  3017  	for _, transferIdItem := range transferId {
  3018  		transferIdRule = append(transferIdRule, transferIdItem)
  3019  	}
  3020  	var rootHashRule []interface{}
  3021  	for _, rootHashItem := range rootHash {
  3022  		rootHashRule = append(rootHashRule, rootHashItem)
  3023  	}
  3024  
  3025  	logs, sub, err := _HopL2OptimismBridge.contract.FilterLogs(opts, "WithdrawalBondSettled", bonderRule, transferIdRule, rootHashRule)
  3026  	if err != nil {
  3027  		return nil, err
  3028  	}
  3029  	return &HopL2OptimismBridgeWithdrawalBondSettledIterator{contract: _HopL2OptimismBridge.contract, event: "WithdrawalBondSettled", logs: logs, sub: sub}, nil
  3030  }
  3031  
  3032  // WatchWithdrawalBondSettled is a free log subscription operation binding the contract event 0x84eb21b24c31b27a3bc67dde4a598aad06db6e9415cd66544492b9616996143c.
  3033  //
  3034  // Solidity: event WithdrawalBondSettled(address indexed bonder, bytes32 indexed transferId, bytes32 indexed rootHash)
  3035  func (_HopL2OptimismBridge *HopL2OptimismBridgeFilterer) WatchWithdrawalBondSettled(opts *bind.WatchOpts, sink chan<- *HopL2OptimismBridgeWithdrawalBondSettled, bonder []common.Address, transferId [][32]byte, rootHash [][32]byte) (event.Subscription, error) {
  3036  
  3037  	var bonderRule []interface{}
  3038  	for _, bonderItem := range bonder {
  3039  		bonderRule = append(bonderRule, bonderItem)
  3040  	}
  3041  	var transferIdRule []interface{}
  3042  	for _, transferIdItem := range transferId {
  3043  		transferIdRule = append(transferIdRule, transferIdItem)
  3044  	}
  3045  	var rootHashRule []interface{}
  3046  	for _, rootHashItem := range rootHash {
  3047  		rootHashRule = append(rootHashRule, rootHashItem)
  3048  	}
  3049  
  3050  	logs, sub, err := _HopL2OptimismBridge.contract.WatchLogs(opts, "WithdrawalBondSettled", bonderRule, transferIdRule, rootHashRule)
  3051  	if err != nil {
  3052  		return nil, err
  3053  	}
  3054  	return event.NewSubscription(func(quit <-chan struct{}) error {
  3055  		defer sub.Unsubscribe()
  3056  		for {
  3057  			select {
  3058  			case log := <-logs:
  3059  				// New log arrived, parse the event and forward to the user
  3060  				event := new(HopL2OptimismBridgeWithdrawalBondSettled)
  3061  				if err := _HopL2OptimismBridge.contract.UnpackLog(event, "WithdrawalBondSettled", log); err != nil {
  3062  					return err
  3063  				}
  3064  				event.Raw = log
  3065  
  3066  				select {
  3067  				case sink <- event:
  3068  				case err := <-sub.Err():
  3069  					return err
  3070  				case <-quit:
  3071  					return nil
  3072  				}
  3073  			case err := <-sub.Err():
  3074  				return err
  3075  			case <-quit:
  3076  				return nil
  3077  			}
  3078  		}
  3079  	}), nil
  3080  }
  3081  
  3082  // ParseWithdrawalBondSettled is a log parse operation binding the contract event 0x84eb21b24c31b27a3bc67dde4a598aad06db6e9415cd66544492b9616996143c.
  3083  //
  3084  // Solidity: event WithdrawalBondSettled(address indexed bonder, bytes32 indexed transferId, bytes32 indexed rootHash)
  3085  func (_HopL2OptimismBridge *HopL2OptimismBridgeFilterer) ParseWithdrawalBondSettled(log types.Log) (*HopL2OptimismBridgeWithdrawalBondSettled, error) {
  3086  	event := new(HopL2OptimismBridgeWithdrawalBondSettled)
  3087  	if err := _HopL2OptimismBridge.contract.UnpackLog(event, "WithdrawalBondSettled", log); err != nil {
  3088  		return nil, err
  3089  	}
  3090  	event.Raw = log
  3091  	return event, nil
  3092  }
  3093  
  3094  // HopL2OptimismBridgeWithdrawalBondedIterator is returned from FilterWithdrawalBonded and is used to iterate over the raw logs and unpacked data for WithdrawalBonded events raised by the HopL2OptimismBridge contract.
  3095  type HopL2OptimismBridgeWithdrawalBondedIterator struct {
  3096  	Event *HopL2OptimismBridgeWithdrawalBonded // Event containing the contract specifics and raw log
  3097  
  3098  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  3099  	event    string              // Event name to use for unpacking event data
  3100  
  3101  	logs chan types.Log        // Log channel receiving the found contract events
  3102  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  3103  	done bool                  // Whether the subscription completed delivering logs
  3104  	fail error                 // Occurred error to stop iteration
  3105  }
  3106  
  3107  // Next advances the iterator to the subsequent event, returning whether there
  3108  // are any more events found. In case of a retrieval or parsing error, false is
  3109  // returned and Error() can be queried for the exact failure.
  3110  func (it *HopL2OptimismBridgeWithdrawalBondedIterator) Next() bool {
  3111  	// If the iterator failed, stop iterating
  3112  	if it.fail != nil {
  3113  		return false
  3114  	}
  3115  	// If the iterator completed, deliver directly whatever's available
  3116  	if it.done {
  3117  		select {
  3118  		case log := <-it.logs:
  3119  			it.Event = new(HopL2OptimismBridgeWithdrawalBonded)
  3120  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  3121  				it.fail = err
  3122  				return false
  3123  			}
  3124  			it.Event.Raw = log
  3125  			return true
  3126  
  3127  		default:
  3128  			return false
  3129  		}
  3130  	}
  3131  	// Iterator still in progress, wait for either a data or an error event
  3132  	select {
  3133  	case log := <-it.logs:
  3134  		it.Event = new(HopL2OptimismBridgeWithdrawalBonded)
  3135  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  3136  			it.fail = err
  3137  			return false
  3138  		}
  3139  		it.Event.Raw = log
  3140  		return true
  3141  
  3142  	case err := <-it.sub.Err():
  3143  		it.done = true
  3144  		it.fail = err
  3145  		return it.Next()
  3146  	}
  3147  }
  3148  
  3149  // Error returns any retrieval or parsing error occurred during filtering.
  3150  func (it *HopL2OptimismBridgeWithdrawalBondedIterator) Error() error {
  3151  	return it.fail
  3152  }
  3153  
  3154  // Close terminates the iteration process, releasing any pending underlying
  3155  // resources.
  3156  func (it *HopL2OptimismBridgeWithdrawalBondedIterator) Close() error {
  3157  	it.sub.Unsubscribe()
  3158  	return nil
  3159  }
  3160  
  3161  // HopL2OptimismBridgeWithdrawalBonded represents a WithdrawalBonded event raised by the HopL2OptimismBridge contract.
  3162  type HopL2OptimismBridgeWithdrawalBonded struct {
  3163  	TransferId [32]byte
  3164  	Amount     *big.Int
  3165  	Raw        types.Log // Blockchain specific contextual infos
  3166  }
  3167  
  3168  // FilterWithdrawalBonded is a free log retrieval operation binding the contract event 0x0c3d250c7831051e78aa6a56679e590374c7c424415ffe4aa474491def2fe705.
  3169  //
  3170  // Solidity: event WithdrawalBonded(bytes32 indexed transferId, uint256 amount)
  3171  func (_HopL2OptimismBridge *HopL2OptimismBridgeFilterer) FilterWithdrawalBonded(opts *bind.FilterOpts, transferId [][32]byte) (*HopL2OptimismBridgeWithdrawalBondedIterator, error) {
  3172  
  3173  	var transferIdRule []interface{}
  3174  	for _, transferIdItem := range transferId {
  3175  		transferIdRule = append(transferIdRule, transferIdItem)
  3176  	}
  3177  
  3178  	logs, sub, err := _HopL2OptimismBridge.contract.FilterLogs(opts, "WithdrawalBonded", transferIdRule)
  3179  	if err != nil {
  3180  		return nil, err
  3181  	}
  3182  	return &HopL2OptimismBridgeWithdrawalBondedIterator{contract: _HopL2OptimismBridge.contract, event: "WithdrawalBonded", logs: logs, sub: sub}, nil
  3183  }
  3184  
  3185  // WatchWithdrawalBonded is a free log subscription operation binding the contract event 0x0c3d250c7831051e78aa6a56679e590374c7c424415ffe4aa474491def2fe705.
  3186  //
  3187  // Solidity: event WithdrawalBonded(bytes32 indexed transferId, uint256 amount)
  3188  func (_HopL2OptimismBridge *HopL2OptimismBridgeFilterer) WatchWithdrawalBonded(opts *bind.WatchOpts, sink chan<- *HopL2OptimismBridgeWithdrawalBonded, transferId [][32]byte) (event.Subscription, error) {
  3189  
  3190  	var transferIdRule []interface{}
  3191  	for _, transferIdItem := range transferId {
  3192  		transferIdRule = append(transferIdRule, transferIdItem)
  3193  	}
  3194  
  3195  	logs, sub, err := _HopL2OptimismBridge.contract.WatchLogs(opts, "WithdrawalBonded", transferIdRule)
  3196  	if err != nil {
  3197  		return nil, err
  3198  	}
  3199  	return event.NewSubscription(func(quit <-chan struct{}) error {
  3200  		defer sub.Unsubscribe()
  3201  		for {
  3202  			select {
  3203  			case log := <-logs:
  3204  				// New log arrived, parse the event and forward to the user
  3205  				event := new(HopL2OptimismBridgeWithdrawalBonded)
  3206  				if err := _HopL2OptimismBridge.contract.UnpackLog(event, "WithdrawalBonded", log); err != nil {
  3207  					return err
  3208  				}
  3209  				event.Raw = log
  3210  
  3211  				select {
  3212  				case sink <- event:
  3213  				case err := <-sub.Err():
  3214  					return err
  3215  				case <-quit:
  3216  					return nil
  3217  				}
  3218  			case err := <-sub.Err():
  3219  				return err
  3220  			case <-quit:
  3221  				return nil
  3222  			}
  3223  		}
  3224  	}), nil
  3225  }
  3226  
  3227  // ParseWithdrawalBonded is a log parse operation binding the contract event 0x0c3d250c7831051e78aa6a56679e590374c7c424415ffe4aa474491def2fe705.
  3228  //
  3229  // Solidity: event WithdrawalBonded(bytes32 indexed transferId, uint256 amount)
  3230  func (_HopL2OptimismBridge *HopL2OptimismBridgeFilterer) ParseWithdrawalBonded(log types.Log) (*HopL2OptimismBridgeWithdrawalBonded, error) {
  3231  	event := new(HopL2OptimismBridgeWithdrawalBonded)
  3232  	if err := _HopL2OptimismBridge.contract.UnpackLog(event, "WithdrawalBonded", log); err != nil {
  3233  		return nil, err
  3234  	}
  3235  	event.Raw = log
  3236  	return event, nil
  3237  }
  3238  
  3239  // HopL2OptimismBridgeWithdrewIterator is returned from FilterWithdrew and is used to iterate over the raw logs and unpacked data for Withdrew events raised by the HopL2OptimismBridge contract.
  3240  type HopL2OptimismBridgeWithdrewIterator struct {
  3241  	Event *HopL2OptimismBridgeWithdrew // Event containing the contract specifics and raw log
  3242  
  3243  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  3244  	event    string              // Event name to use for unpacking event data
  3245  
  3246  	logs chan types.Log        // Log channel receiving the found contract events
  3247  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  3248  	done bool                  // Whether the subscription completed delivering logs
  3249  	fail error                 // Occurred error to stop iteration
  3250  }
  3251  
  3252  // Next advances the iterator to the subsequent event, returning whether there
  3253  // are any more events found. In case of a retrieval or parsing error, false is
  3254  // returned and Error() can be queried for the exact failure.
  3255  func (it *HopL2OptimismBridgeWithdrewIterator) Next() bool {
  3256  	// If the iterator failed, stop iterating
  3257  	if it.fail != nil {
  3258  		return false
  3259  	}
  3260  	// If the iterator completed, deliver directly whatever's available
  3261  	if it.done {
  3262  		select {
  3263  		case log := <-it.logs:
  3264  			it.Event = new(HopL2OptimismBridgeWithdrew)
  3265  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  3266  				it.fail = err
  3267  				return false
  3268  			}
  3269  			it.Event.Raw = log
  3270  			return true
  3271  
  3272  		default:
  3273  			return false
  3274  		}
  3275  	}
  3276  	// Iterator still in progress, wait for either a data or an error event
  3277  	select {
  3278  	case log := <-it.logs:
  3279  		it.Event = new(HopL2OptimismBridgeWithdrew)
  3280  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  3281  			it.fail = err
  3282  			return false
  3283  		}
  3284  		it.Event.Raw = log
  3285  		return true
  3286  
  3287  	case err := <-it.sub.Err():
  3288  		it.done = true
  3289  		it.fail = err
  3290  		return it.Next()
  3291  	}
  3292  }
  3293  
  3294  // Error returns any retrieval or parsing error occurred during filtering.
  3295  func (it *HopL2OptimismBridgeWithdrewIterator) Error() error {
  3296  	return it.fail
  3297  }
  3298  
  3299  // Close terminates the iteration process, releasing any pending underlying
  3300  // resources.
  3301  func (it *HopL2OptimismBridgeWithdrewIterator) Close() error {
  3302  	it.sub.Unsubscribe()
  3303  	return nil
  3304  }
  3305  
  3306  // HopL2OptimismBridgeWithdrew represents a Withdrew event raised by the HopL2OptimismBridge contract.
  3307  type HopL2OptimismBridgeWithdrew struct {
  3308  	TransferId    [32]byte
  3309  	Recipient     common.Address
  3310  	Amount        *big.Int
  3311  	TransferNonce [32]byte
  3312  	Raw           types.Log // Blockchain specific contextual infos
  3313  }
  3314  
  3315  // FilterWithdrew is a free log retrieval operation binding the contract event 0x9475cdbde5fc71fe2ccd413c82878ee54d061b9f74f9e2e1a03ff1178821502c.
  3316  //
  3317  // Solidity: event Withdrew(bytes32 indexed transferId, address indexed recipient, uint256 amount, bytes32 transferNonce)
  3318  func (_HopL2OptimismBridge *HopL2OptimismBridgeFilterer) FilterWithdrew(opts *bind.FilterOpts, transferId [][32]byte, recipient []common.Address) (*HopL2OptimismBridgeWithdrewIterator, error) {
  3319  
  3320  	var transferIdRule []interface{}
  3321  	for _, transferIdItem := range transferId {
  3322  		transferIdRule = append(transferIdRule, transferIdItem)
  3323  	}
  3324  	var recipientRule []interface{}
  3325  	for _, recipientItem := range recipient {
  3326  		recipientRule = append(recipientRule, recipientItem)
  3327  	}
  3328  
  3329  	logs, sub, err := _HopL2OptimismBridge.contract.FilterLogs(opts, "Withdrew", transferIdRule, recipientRule)
  3330  	if err != nil {
  3331  		return nil, err
  3332  	}
  3333  	return &HopL2OptimismBridgeWithdrewIterator{contract: _HopL2OptimismBridge.contract, event: "Withdrew", logs: logs, sub: sub}, nil
  3334  }
  3335  
  3336  // WatchWithdrew is a free log subscription operation binding the contract event 0x9475cdbde5fc71fe2ccd413c82878ee54d061b9f74f9e2e1a03ff1178821502c.
  3337  //
  3338  // Solidity: event Withdrew(bytes32 indexed transferId, address indexed recipient, uint256 amount, bytes32 transferNonce)
  3339  func (_HopL2OptimismBridge *HopL2OptimismBridgeFilterer) WatchWithdrew(opts *bind.WatchOpts, sink chan<- *HopL2OptimismBridgeWithdrew, transferId [][32]byte, recipient []common.Address) (event.Subscription, error) {
  3340  
  3341  	var transferIdRule []interface{}
  3342  	for _, transferIdItem := range transferId {
  3343  		transferIdRule = append(transferIdRule, transferIdItem)
  3344  	}
  3345  	var recipientRule []interface{}
  3346  	for _, recipientItem := range recipient {
  3347  		recipientRule = append(recipientRule, recipientItem)
  3348  	}
  3349  
  3350  	logs, sub, err := _HopL2OptimismBridge.contract.WatchLogs(opts, "Withdrew", transferIdRule, recipientRule)
  3351  	if err != nil {
  3352  		return nil, err
  3353  	}
  3354  	return event.NewSubscription(func(quit <-chan struct{}) error {
  3355  		defer sub.Unsubscribe()
  3356  		for {
  3357  			select {
  3358  			case log := <-logs:
  3359  				// New log arrived, parse the event and forward to the user
  3360  				event := new(HopL2OptimismBridgeWithdrew)
  3361  				if err := _HopL2OptimismBridge.contract.UnpackLog(event, "Withdrew", log); err != nil {
  3362  					return err
  3363  				}
  3364  				event.Raw = log
  3365  
  3366  				select {
  3367  				case sink <- event:
  3368  				case err := <-sub.Err():
  3369  					return err
  3370  				case <-quit:
  3371  					return nil
  3372  				}
  3373  			case err := <-sub.Err():
  3374  				return err
  3375  			case <-quit:
  3376  				return nil
  3377  			}
  3378  		}
  3379  	}), nil
  3380  }
  3381  
  3382  // ParseWithdrew is a log parse operation binding the contract event 0x9475cdbde5fc71fe2ccd413c82878ee54d061b9f74f9e2e1a03ff1178821502c.
  3383  //
  3384  // Solidity: event Withdrew(bytes32 indexed transferId, address indexed recipient, uint256 amount, bytes32 transferNonce)
  3385  func (_HopL2OptimismBridge *HopL2OptimismBridgeFilterer) ParseWithdrew(log types.Log) (*HopL2OptimismBridgeWithdrew, error) {
  3386  	event := new(HopL2OptimismBridgeWithdrew)
  3387  	if err := _HopL2OptimismBridge.contract.UnpackLog(event, "Withdrew", log); err != nil {
  3388  		return nil, err
  3389  	}
  3390  	event.Raw = log
  3391  	return event, nil
  3392  }