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