github.com/cryptotooltop/go-ethereum@v0.0.0-20231103184714-151d1922f3e5/rollup/sync_service/bindings.go (about)

     1  // Code generated - DO NOT EDIT.
     2  // This file is a generated binding and any manual changes will be lost.
     3  
     4  // generated using:
     5  // forge flatten src/L1/rollup/L1MessageQueue.sol > flatten.sol
     6  // go run github.com/scroll-tech/go-ethereum/cmd/abigen@develop --sol flatten.sol --pkg rollup --out ./L1MessageQueue.go --contract L1MessageQueue
     7  
     8  package sync_service
     9  
    10  import (
    11  	"math/big"
    12  	"strings"
    13  
    14  	ethereum "github.com/scroll-tech/go-ethereum"
    15  	"github.com/scroll-tech/go-ethereum/accounts/abi"
    16  	"github.com/scroll-tech/go-ethereum/accounts/abi/bind"
    17  	"github.com/scroll-tech/go-ethereum/common"
    18  	"github.com/scroll-tech/go-ethereum/core/types"
    19  )
    20  
    21  // L1MessageQueueMetaData contains all meta data concerning the L1MessageQueue contract.
    22  var L1MessageQueueMetaData = &bind.MetaData{
    23  	ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"startIndex\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"count\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"skippedBitmap\",\"type\":\"uint256\"}],\"name\":\"DequeueTransaction\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"queueIndex\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"QueueTransaction\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_oldGateway\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_newGateway\",\"type\":\"address\"}],\"name\":\"UpdateEnforcedTxGateway\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_oldGasOracle\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_newGasOracle\",\"type\":\"address\"}],\"name\":\"UpdateGasOracle\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_oldMaxGasLimit\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_newMaxGasLimit\",\"type\":\"uint256\"}],\"name\":\"UpdateMaxGasLimit\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"appendCrossDomainMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"appendEnforcedTransaction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_calldata\",\"type\":\"bytes\"}],\"name\":\"calculateIntrinsicGasFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_queueIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"computeTransactionHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"enforcedTxGateway\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_gasLimit\",\"type\":\"uint256\"}],\"name\":\"estimateCrossDomainMessageFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gasOracle\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_queueIndex\",\"type\":\"uint256\"}],\"name\":\"getCrossDomainMessage\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_messenger\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_scrollChain\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_enforcedTxGateway\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_gasOracle\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_maxGasLimit\",\"type\":\"uint256\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxGasLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"messageQueue\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"messenger\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nextCrossDomainMessageIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingQueueIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_startIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_count\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_skippedBitmap\",\"type\":\"uint256\"}],\"name\":\"popCrossDomainMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"scrollChain\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newGateway\",\"type\":\"address\"}],\"name\":\"updateEnforcedTxGateway\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newGasOracle\",\"type\":\"address\"}],\"name\":\"updateGasOracle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_newMaxGasLimit\",\"type\":\"uint256\"}],\"name\":\"updateMaxGasLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]",
    24  }
    25  
    26  // L1MessageQueueABI is the input ABI used to generate the binding from.
    27  // Deprecated: Use L1MessageQueueMetaData.ABI instead.
    28  var L1MessageQueueABI = L1MessageQueueMetaData.ABI
    29  
    30  // L1MessageQueueFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
    31  type L1MessageQueueFilterer struct {
    32  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    33  }
    34  
    35  // NewL1MessageQueueFilterer creates a new log filterer instance of L1MessageQueue, bound to a specific deployed contract.
    36  func NewL1MessageQueueFilterer(address common.Address, filterer bind.ContractFilterer) (*L1MessageQueueFilterer, error) {
    37  	contract, err := bindL1MessageQueue(address, nil, nil, filterer)
    38  	if err != nil {
    39  		return nil, err
    40  	}
    41  	return &L1MessageQueueFilterer{contract: contract}, nil
    42  }
    43  
    44  // bindL1MessageQueue binds a generic wrapper to an already deployed contract.
    45  func bindL1MessageQueue(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
    46  	parsed, err := abi.JSON(strings.NewReader(L1MessageQueueABI))
    47  	if err != nil {
    48  		return nil, err
    49  	}
    50  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
    51  }
    52  
    53  // L1MessageQueueQueueTransactionIterator is returned from FilterQueueTransaction and is used to iterate over the raw logs and unpacked data for QueueTransaction events raised by the L1MessageQueue contract.
    54  type L1MessageQueueQueueTransactionIterator struct {
    55  	Event *L1MessageQueueQueueTransaction // Event containing the contract specifics and raw log
    56  
    57  	contract *bind.BoundContract // Generic contract to use for unpacking event data
    58  	event    string              // Event name to use for unpacking event data
    59  
    60  	logs chan types.Log        // Log channel receiving the found contract events
    61  	sub  ethereum.Subscription // Subscription for errors, completion and termination
    62  	done bool                  // Whether the subscription completed delivering logs
    63  	fail error                 // Occurred error to stop iteration
    64  }
    65  
    66  // Next advances the iterator to the subsequent event, returning whether there
    67  // are any more events found. In case of a retrieval or parsing error, false is
    68  // returned and Error() can be queried for the exact failure.
    69  func (it *L1MessageQueueQueueTransactionIterator) Next() bool {
    70  	// If the iterator failed, stop iterating
    71  	if it.fail != nil {
    72  		return false
    73  	}
    74  	// If the iterator completed, deliver directly whatever's available
    75  	if it.done {
    76  		select {
    77  		case log := <-it.logs:
    78  			it.Event = new(L1MessageQueueQueueTransaction)
    79  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
    80  				it.fail = err
    81  				return false
    82  			}
    83  			it.Event.Raw = log
    84  			return true
    85  
    86  		default:
    87  			return false
    88  		}
    89  	}
    90  	// Iterator still in progress, wait for either a data or an error event
    91  	select {
    92  	case log := <-it.logs:
    93  		it.Event = new(L1MessageQueueQueueTransaction)
    94  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
    95  			it.fail = err
    96  			return false
    97  		}
    98  		it.Event.Raw = log
    99  		return true
   100  
   101  	case err := <-it.sub.Err():
   102  		it.done = true
   103  		it.fail = err
   104  		return it.Next()
   105  	}
   106  }
   107  
   108  // Error returns any retrieval or parsing error occurred during filtering.
   109  func (it *L1MessageQueueQueueTransactionIterator) Error() error {
   110  	return it.fail
   111  }
   112  
   113  // Close terminates the iteration process, releasing any pending underlying
   114  // resources.
   115  func (it *L1MessageQueueQueueTransactionIterator) Close() error {
   116  	it.sub.Unsubscribe()
   117  	return nil
   118  }
   119  
   120  // L1MessageQueueQueueTransaction represents a QueueTransaction event raised by the L1MessageQueue contract.
   121  type L1MessageQueueQueueTransaction struct {
   122  	Sender     common.Address
   123  	Target     common.Address
   124  	Value      *big.Int
   125  	QueueIndex uint64
   126  	GasLimit   *big.Int
   127  	Data       []byte
   128  	Raw        types.Log // Blockchain specific contextual infos
   129  }
   130  
   131  // FilterQueueTransaction is a free log retrieval operation binding the contract event 0x69cfcb8e6d4192b8aba9902243912587f37e550d75c1fa801491fce26717f37e.
   132  //
   133  // Solidity: event QueueTransaction(address indexed sender, address indexed target, uint256 value, uint64 queueIndex, uint256 gasLimit, bytes data)
   134  func (_L1MessageQueue *L1MessageQueueFilterer) FilterQueueTransaction(opts *bind.FilterOpts, sender []common.Address, target []common.Address) (*L1MessageQueueQueueTransactionIterator, error) {
   135  
   136  	var senderRule []interface{}
   137  	for _, senderItem := range sender {
   138  		senderRule = append(senderRule, senderItem)
   139  	}
   140  	var targetRule []interface{}
   141  	for _, targetItem := range target {
   142  		targetRule = append(targetRule, targetItem)
   143  	}
   144  
   145  	logs, sub, err := _L1MessageQueue.contract.FilterLogs(opts, "QueueTransaction", senderRule, targetRule)
   146  	if err != nil {
   147  		return nil, err
   148  	}
   149  	return &L1MessageQueueQueueTransactionIterator{contract: _L1MessageQueue.contract, event: "QueueTransaction", logs: logs, sub: sub}, nil
   150  }