arnaucube
arnaucube/hermez-nodePublic Self-hosted repository
hermez-node/eth/contracts/tokenHEZ/HEZ.go
eth/contracts/tokenHEZ/HEZ.goRaw
   1// Code generated - DO NOT EDIT.
   2// This file is a generated binding and any manual changes will be lost.
   3
   4package HEZ
   5
   6import (
   7	"math/big"
   8	"strings"
   9
  10	ethereum "github.com/ethereum/go-ethereum"
  11	"github.com/ethereum/go-ethereum/accounts/abi"
  12	"github.com/ethereum/go-ethereum/accounts/abi/bind"
  13	"github.com/ethereum/go-ethereum/common"
  14	"github.com/ethereum/go-ethereum/core/types"
  15	"github.com/ethereum/go-ethereum/event"
  16	"github.com/hermeznetwork/tracerr"
  17)
  18
  19// Reference imports to suppress errors if they are not otherwise used.
  20var (
  21	_ = big.NewInt
  22	_ = strings.NewReader
  23	_ = ethereum.NotFound
  24	_ = bind.Bind
  25	_ = common.Big1
  26	_ = types.BloomLookup
  27	_ = event.NewSubscription
  28)
  29
  30// HEZABI is the input ABI used to generate the binding from.
  31const HEZABI = "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"initialHolder\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"authorizer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"nonce\",\"type\":\"bytes32\"}],\"name\":\"AuthorizationUsed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"EIP712DOMAIN_HASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NAME_HASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PERMIT_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TRANSFER_WITH_AUTHORIZATION_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VERSION_HASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"authorizationState\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initialBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"validAfter\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"validBefore\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"nonce\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"transferWithAuthorization\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]"
  32
  33// HEZBin is the compiled bytecode used for deploying new contracts.
  34var HEZBin = "0x608060405234801561001057600080fd5b506040516111153803806111158339818101604052602081101561003357600080fd5b505161004a816a52b7d2dcc80cd2e4000000610050565b506101b1565b610069816000546100f260201b6109531790919060201c565b60009081556001600160a01b03831681526001602090815260409091205461009a9183906109536100f2821b17901c565b6001600160a01b03831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6040805180820190915260118152704d4154483a4144445f4f564552464c4f5760781b602082015281830190838210156101aa5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561016f578181015183820152602001610157565b50505050905090810190601f16801561019c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5092915050565b610f55806101c06000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c806370a08231116100b8578063a9059cbb1161007c578063a9059cbb14610308578063c473af3314610334578063d505accf1461033c578063dd62ed3e1461038f578063e3ee160e146103bd578063e94a01021461041c57610137565b806370a08231146102a45780637ecebe00146102ca57806395d89b41146102f05780639e4e7318146102f8578063a0cc6a681461030057610137565b806323b872dd116100ff57806323b872dd1461022357806330adf81f14610259578063313ce567146102615780633408e4701461027f57806342966c681461028757610137565b806304622c2e1461013c57806306fdde0314610156578063095ea7b3146101d357806318160ddd1461021357806318369a2a1461021b575b600080fd5b610144610448565b60408051918252519081900360200190f35b61015e61046c565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610198578181015183820152602001610180565b50505050905090810190601f1680156101c55780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101ff600480360360408110156101e957600080fd5b506001600160a01b03813516906020013561049c565b604080519115158252519081900360200190f35b6101446104b2565b6101446104b8565b6101ff6004803603606081101561023957600080fd5b506001600160a01b038135811691602081013590911690604001356104c7565b610144610539565b61026961055d565b6040805160ff9092168252519081900360200190f35b610144610562565b6101ff6004803603602081101561029d57600080fd5b5035610566565b610144600480360360208110156102ba57600080fd5b50356001600160a01b031661057a565b610144600480360360208110156102e057600080fd5b50356001600160a01b031661058c565b61015e61059e565b6101446105bd565b6101446105e1565b6101ff6004803603604081101561031e57600080fd5b506001600160a01b038135169060200135610605565b610144610612565b61038d600480360360e081101561035257600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135610636565b005b610144600480360360408110156103a557600080fd5b506001600160a01b0381358116916020013516610736565b61038d60048036036101208110156103d457600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060808101359060a08101359060ff60c0820135169060e0810135906101000135610753565b6101ff6004803603604081101561043257600080fd5b506001600160a01b038135169060200135610933565b7f64c0a41a0260272b78f2a5bd50d5ff7c1779bc3bba16dcff4550c7c642b0e4b481565b604051806040016040528060148152602001732432b936b2bd102732ba3bb7b935902a37b5b2b760611b81525081565b60006104a9338484610a12565b50600192915050565b60005481565b6a52b7d2dcc80cd2e400000081565b6001600160a01b03831660009081526002602090815260408083203384529091528120546000198114610523576104fe8184610a74565b6001600160a01b03861660009081526002602090815260408083203384529091529020555b61052e858585610af0565b506001949350505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b4690565b60006105723383610bfa565b506001919050565b60016020526000908152604090205481565b60036020526000908152604090205481565b604051806040016040528060038152602001622422ad60e91b81525081565b7fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc681565b7f7c7c6cdb67a18743f49ec6fa9b35f50d52ed05cbed4cc592e13b44501c1a226781565b60006104a9338484610af0565b7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81565b4284101561068b576040805162461bcd60e51b815260206004820152601960248201527f48455a3a3a7065726d69743a20415554485f4558504952454400000000000000604482015290519081900360640190fd5b6001600160a01b0380881660008181526003602090815260409182902080546001810190915582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98184015280840194909452938a1660608401526080830189905260a083019390935260c08083018890528151808403909101815260e0909201905280519101206107218882868686610c8c565b61072c888888610a12565b5050505050505050565b600260209081526000928352604080842090915290825290205481565b8542116107915760405162461bcd60e51b8152600401808060200182810382526032815260200180610e926032913960400191505060405180910390fd5b8442106107cf5760405162461bcd60e51b815260040180806020018281038252602c815260200180610e44602c913960400191505060405180910390fd5b6001600160a01b038916600090815260046020908152604080832087845290915290205460ff16156108325760405162461bcd60e51b8152600401808060200182810382526031815260200180610eef6031913960400191505060405180910390fd5b604080517f7c7c6cdb67a18743f49ec6fa9b35f50d52ed05cbed4cc592e13b44501c1a22676020808301919091526001600160a01b03808d16838501528b166060830152608082018a905260a0820189905260c0820188905260e08083018890528351808403909101815261010090920190925280519101206108b88a82868686610c8c565b6001600160a01b038a1660009081526004602090815260408083208884529091529020805460ff191660011790556108f18a8a8a610af0565b60405185906001600160a01b038c16907f98de503528ee59b575ef0c0a2576a82497bfc029a5685b209e9ec333479b10a590600090a350505050505050505050565b600460209081526000928352604080842090915290825290205460ff1681565b6040805180820190915260118152704d4154483a4144445f4f564552464c4f5760781b60208201528183019083821015610a0b5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156109d05781810151838201526020016109b8565b50505050905090810190601f1680156109fd5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5092915050565b6001600160a01b03808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6040805180820190915260128152714d4154483a5355425f554e444552464c4f5760701b60208201528183039083821115610a0b5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156109d05781810151838201526020016109b8565b6001600160a01b0382163014801590610b1157506001600160a01b03821615155b610b4c5760405162461bcd60e51b8152600401808060200182810382526022815260200180610e706022913960400191505060405180910390fd5b6001600160a01b038316600090815260016020526040902054610b6f9082610a74565b6001600160a01b038085166000908152600160205260408082209390935590841681522054610b9e9082610953565b6001600160a01b0380841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b6001600160a01b038216600090815260016020526040902054610c1d9082610a74565b6001600160a01b03831660009081526001602052604081209190915554610c449082610a74565b60009081556040805183815290516001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f7f64c0a41a0260272b78f2a5bd50d5ff7c1779bc3bba16dcff4550c7c642b0e4b47fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6610cf9610562565b6040805160208082019690965280820194909452606084019290925260808301523060a0808401919091528151808403909101815260c08301825280519084012061190160f01b60e084015260e283018190526101028084018a9052825180850390910181526101228401808452815191860191909120600091829052610142850180855281905260ff8a1661016286015261018285018990526101a285018890529251919550919391926001926101c2808301939192601f198301929081900390910190855afa158015610dd2573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811615801590610e085750876001600160a01b0316816001600160a01b0316145b61072c5760405162461bcd60e51b815260040180806020018281038252602b815260200180610ec4602b913960400191505060405180910390fdfe48455a3a3a7472616e7366657257697468417574686f72697a6174696f6e3a20415554485f4558504952454448455a3a3a5f7472616e736665723a204e4f545f56414c49445f5452414e5346455248455a3a3a7472616e7366657257697468417574686f72697a6174696f6e3a20415554485f4e4f545f5945545f56414c494448455a3a3a5f76616c69646174655369676e6564446174613a20494e56414c49445f5349474e415455524548455a3a3a7472616e7366657257697468417574686f72697a6174696f6e3a20415554485f414c52454144595f55534544a26469706673582212205aeb9e56ca4697b469366e6fc34ffebcc82c53ce1a5ae2775970617ccc42be4a64736f6c634300060c0033"
  35
  36// DeployHEZ deploys a new Ethereum contract, binding an instance of HEZ to it.
  37func DeployHEZ(auth *bind.TransactOpts, backend bind.ContractBackend, initialHolder common.Address) (common.Address, *types.Transaction, *HEZ, error) {
  38	parsed, err := abi.JSON(strings.NewReader(HEZABI))
  39	if err != nil {
  40		return common.Address{}, nil, nil, tracerr.Wrap(err)
  41	}
  42
  43	address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(HEZBin), backend, initialHolder)
  44	if err != nil {
  45		return common.Address{}, nil, nil, tracerr.Wrap(err)
  46	}
  47	return address, tx, &HEZ{HEZCaller: HEZCaller{contract: contract}, HEZTransactor: HEZTransactor{contract: contract}, HEZFilterer: HEZFilterer{contract: contract}}, nil
  48}
  49
  50// HEZ is an auto generated Go binding around an Ethereum contract.
  51type HEZ struct {
  52	HEZCaller     // Read-only binding to the contract
  53	HEZTransactor // Write-only binding to the contract
  54	HEZFilterer   // Log filterer for contract events
  55}
  56
  57// HEZCaller is an auto generated read-only Go binding around an Ethereum contract.
  58type HEZCaller struct {
  59	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  60}
  61
  62// HEZTransactor is an auto generated write-only Go binding around an Ethereum contract.
  63type HEZTransactor struct {
  64	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  65}
  66
  67// HEZFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
  68type HEZFilterer struct {
  69	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  70}
  71
  72// HEZSession is an auto generated Go binding around an Ethereum contract,
  73// with pre-set call and transact options.
  74type HEZSession struct {
  75	Contract     *HEZ              // Generic contract binding to set the session for
  76	CallOpts     bind.CallOpts     // Call options to use throughout this session
  77	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
  78}
  79
  80// HEZCallerSession is an auto generated read-only Go binding around an Ethereum contract,
  81// with pre-set call options.
  82type HEZCallerSession struct {
  83	Contract *HEZCaller    // Generic contract caller binding to set the session for
  84	CallOpts bind.CallOpts // Call options to use throughout this session
  85}
  86
  87// HEZTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
  88// with pre-set transact options.
  89type HEZTransactorSession struct {
  90	Contract     *HEZTransactor    // Generic contract transactor binding to set the session for
  91	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
  92}
  93
  94// HEZRaw is an auto generated low-level Go binding around an Ethereum contract.
  95type HEZRaw struct {
  96	Contract *HEZ // Generic contract binding to access the raw methods on
  97}
  98
  99// HEZCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
 100type HEZCallerRaw struct {
 101	Contract *HEZCaller // Generic read-only contract binding to access the raw methods on
 102}
 103
 104// HEZTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
 105type HEZTransactorRaw struct {
 106	Contract *HEZTransactor // Generic write-only contract binding to access the raw methods on
 107}
 108
 109// NewHEZ creates a new instance of HEZ, bound to a specific deployed contract.
 110func NewHEZ(address common.Address, backend bind.ContractBackend) (*HEZ, error) {
 111	contract, err := bindHEZ(address, backend, backend, backend)
 112	if err != nil {
 113		return nil, tracerr.Wrap(err)
 114	}
 115	return &HEZ{HEZCaller: HEZCaller{contract: contract}, HEZTransactor: HEZTransactor{contract: contract}, HEZFilterer: HEZFilterer{contract: contract}}, nil
 116}
 117
 118// NewHEZCaller creates a new read-only instance of HEZ, bound to a specific deployed contract.
 119func NewHEZCaller(address common.Address, caller bind.ContractCaller) (*HEZCaller, error) {
 120	contract, err := bindHEZ(address, caller, nil, nil)
 121	if err != nil {
 122		return nil, tracerr.Wrap(err)
 123	}
 124	return &HEZCaller{contract: contract}, nil
 125}
 126
 127// NewHEZTransactor creates a new write-only instance of HEZ, bound to a specific deployed contract.
 128func NewHEZTransactor(address common.Address, transactor bind.ContractTransactor) (*HEZTransactor, error) {
 129	contract, err := bindHEZ(address, nil, transactor, nil)
 130	if err != nil {
 131		return nil, tracerr.Wrap(err)
 132	}
 133	return &HEZTransactor{contract: contract}, nil
 134}
 135
 136// NewHEZFilterer creates a new log filterer instance of HEZ, bound to a specific deployed contract.
 137func NewHEZFilterer(address common.Address, filterer bind.ContractFilterer) (*HEZFilterer, error) {
 138	contract, err := bindHEZ(address, nil, nil, filterer)
 139	if err != nil {
 140		return nil, tracerr.Wrap(err)
 141	}
 142	return &HEZFilterer{contract: contract}, nil
 143}
 144
 145// bindHEZ binds a generic wrapper to an already deployed contract.
 146func bindHEZ(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
 147	parsed, err := abi.JSON(strings.NewReader(HEZABI))
 148	if err != nil {
 149		return nil, tracerr.Wrap(err)
 150	}
 151	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
 152}
 153
 154// Call invokes the (constant) contract method with params as input values and
 155// sets the output to result. The result type might be a single field for simple
 156// returns, a slice of interfaces for anonymous returns and a struct for named
 157// returns.
 158func (_HEZ *HEZRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
 159	return _HEZ.Contract.HEZCaller.contract.Call(opts, result, method, params...)
 160}
 161
 162// Transfer initiates a plain transaction to move funds to the contract, calling
 163// its default method if one is available.
 164func (_HEZ *HEZRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 165	return _HEZ.Contract.HEZTransactor.contract.Transfer(opts)
 166}
 167
 168// Transact invokes the (paid) contract method with params as input values.
 169func (_HEZ *HEZRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 170	return _HEZ.Contract.HEZTransactor.contract.Transact(opts, method, params...)
 171}
 172
 173// Call invokes the (constant) contract method with params as input values and
 174// sets the output to result. The result type might be a single field for simple
 175// returns, a slice of interfaces for anonymous returns and a struct for named
 176// returns.
 177func (_HEZ *HEZCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
 178	return _HEZ.Contract.contract.Call(opts, result, method, params...)
 179}
 180
 181// Transfer initiates a plain transaction to move funds to the contract, calling
 182// its default method if one is available.
 183func (_HEZ *HEZTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 184	return _HEZ.Contract.contract.Transfer(opts)
 185}
 186
 187// Transact invokes the (paid) contract method with params as input values.
 188func (_HEZ *HEZTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 189	return _HEZ.Contract.contract.Transact(opts, method, params...)
 190}
 191
 192// EIP712DOMAINHASH is a free data retrieval call binding the contract method 0xc473af33.
 193//
 194// Solidity: function EIP712DOMAIN_HASH() view returns(bytes32)
 195func (_HEZ *HEZCaller) EIP712DOMAINHASH(opts *bind.CallOpts) ([32]byte, error) {
 196	var (
 197		ret0 = new([32]byte)
 198	)
 199	out := ret0
 200	err := _HEZ.contract.Call(opts, out, "EIP712DOMAIN_HASH")
 201	return *ret0, tracerr.Wrap(err)
 202}
 203
 204// EIP712DOMAINHASH is a free data retrieval call binding the contract method 0xc473af33.
 205//
 206// Solidity: function EIP712DOMAIN_HASH() view returns(bytes32)
 207func (_HEZ *HEZSession) EIP712DOMAINHASH() ([32]byte, error) {
 208	return _HEZ.Contract.EIP712DOMAINHASH(&_HEZ.CallOpts)
 209}
 210
 211// EIP712DOMAINHASH is a free data retrieval call binding the contract method 0xc473af33.
 212//
 213// Solidity: function EIP712DOMAIN_HASH() view returns(bytes32)
 214func (_HEZ *HEZCallerSession) EIP712DOMAINHASH() ([32]byte, error) {
 215	return _HEZ.Contract.EIP712DOMAINHASH(&_HEZ.CallOpts)
 216}
 217
 218// NAMEHASH is a free data retrieval call binding the contract method 0x04622c2e.
 219//
 220// Solidity: function NAME_HASH() view returns(bytes32)
 221func (_HEZ *HEZCaller) NAMEHASH(opts *bind.CallOpts) ([32]byte, error) {
 222	var (
 223		ret0 = new([32]byte)
 224	)
 225	out := ret0
 226	err := _HEZ.contract.Call(opts, out, "NAME_HASH")
 227	return *ret0, tracerr.Wrap(err)
 228}
 229
 230// NAMEHASH is a free data retrieval call binding the contract method 0x04622c2e.
 231//
 232// Solidity: function NAME_HASH() view returns(bytes32)
 233func (_HEZ *HEZSession) NAMEHASH() ([32]byte, error) {
 234	return _HEZ.Contract.NAMEHASH(&_HEZ.CallOpts)
 235}
 236
 237// NAMEHASH is a free data retrieval call binding the contract method 0x04622c2e.
 238//
 239// Solidity: function NAME_HASH() view returns(bytes32)
 240func (_HEZ *HEZCallerSession) NAMEHASH() ([32]byte, error) {
 241	return _HEZ.Contract.NAMEHASH(&_HEZ.CallOpts)
 242}
 243
 244// PERMITTYPEHASH is a free data retrieval call binding the contract method 0x30adf81f.
 245//
 246// Solidity: function PERMIT_TYPEHASH() view returns(bytes32)
 247func (_HEZ *HEZCaller) PERMITTYPEHASH(opts *bind.CallOpts) ([32]byte, error) {
 248	var (
 249		ret0 = new([32]byte)
 250	)
 251	out := ret0
 252	err := _HEZ.contract.Call(opts, out, "PERMIT_TYPEHASH")
 253	return *ret0, tracerr.Wrap(err)
 254}
 255
 256// PERMITTYPEHASH is a free data retrieval call binding the contract method 0x30adf81f.
 257//
 258// Solidity: function PERMIT_TYPEHASH() view returns(bytes32)
 259func (_HEZ *HEZSession) PERMITTYPEHASH() ([32]byte, error) {
 260	return _HEZ.Contract.PERMITTYPEHASH(&_HEZ.CallOpts)
 261}
 262
 263// PERMITTYPEHASH is a free data retrieval call binding the contract method 0x30adf81f.
 264//
 265// Solidity: function PERMIT_TYPEHASH() view returns(bytes32)
 266func (_HEZ *HEZCallerSession) PERMITTYPEHASH() ([32]byte, error) {
 267	return _HEZ.Contract.PERMITTYPEHASH(&_HEZ.CallOpts)
 268}
 269
 270// TRANSFERWITHAUTHORIZATIONTYPEHASH is a free data retrieval call binding the contract method 0xa0cc6a68.
 271//
 272// Solidity: function TRANSFER_WITH_AUTHORIZATION_TYPEHASH() view returns(bytes32)
 273func (_HEZ *HEZCaller) TRANSFERWITHAUTHORIZATIONTYPEHASH(opts *bind.CallOpts) ([32]byte, error) {
 274	var (
 275		ret0 = new([32]byte)
 276	)
 277	out := ret0
 278	err := _HEZ.contract.Call(opts, out, "TRANSFER_WITH_AUTHORIZATION_TYPEHASH")
 279	return *ret0, tracerr.Wrap(err)
 280}
 281
 282// TRANSFERWITHAUTHORIZATIONTYPEHASH is a free data retrieval call binding the contract method 0xa0cc6a68.
 283//
 284// Solidity: function TRANSFER_WITH_AUTHORIZATION_TYPEHASH() view returns(bytes32)
 285func (_HEZ *HEZSession) TRANSFERWITHAUTHORIZATIONTYPEHASH() ([32]byte, error) {
 286	return _HEZ.Contract.TRANSFERWITHAUTHORIZATIONTYPEHASH(&_HEZ.CallOpts)
 287}
 288
 289// TRANSFERWITHAUTHORIZATIONTYPEHASH is a free data retrieval call binding the contract method 0xa0cc6a68.
 290//
 291// Solidity: function TRANSFER_WITH_AUTHORIZATION_TYPEHASH() view returns(bytes32)
 292func (_HEZ *HEZCallerSession) TRANSFERWITHAUTHORIZATIONTYPEHASH() ([32]byte, error) {
 293	return _HEZ.Contract.TRANSFERWITHAUTHORIZATIONTYPEHASH(&_HEZ.CallOpts)
 294}
 295
 296// VERSIONHASH is a free data retrieval call binding the contract method 0x9e4e7318.
 297//
 298// Solidity: function VERSION_HASH() view returns(bytes32)
 299func (_HEZ *HEZCaller) VERSIONHASH(opts *bind.CallOpts) ([32]byte, error) {
 300	var (
 301		ret0 = new([32]byte)
 302	)
 303	out := ret0
 304	err := _HEZ.contract.Call(opts, out, "VERSION_HASH")
 305	return *ret0, tracerr.Wrap(err)
 306}
 307
 308// VERSIONHASH is a free data retrieval call binding the contract method 0x9e4e7318.
 309//
 310// Solidity: function VERSION_HASH() view returns(bytes32)
 311func (_HEZ *HEZSession) VERSIONHASH() ([32]byte, error) {
 312	return _HEZ.Contract.VERSIONHASH(&_HEZ.CallOpts)
 313}
 314
 315// VERSIONHASH is a free data retrieval call binding the contract method 0x9e4e7318.
 316//
 317// Solidity: function VERSION_HASH() view returns(bytes32)
 318func (_HEZ *HEZCallerSession) VERSIONHASH() ([32]byte, error) {
 319	return _HEZ.Contract.VERSIONHASH(&_HEZ.CallOpts)
 320}
 321
 322// Allowance is a free data retrieval call binding the contract method 0xdd62ed3e.
 323//
 324// Solidity: function allowance(address , address ) view returns(uint256)
 325func (_HEZ *HEZCaller) Allowance(opts *bind.CallOpts, arg0 common.Address, arg1 common.Address) (*big.Int, error) {
 326	var (
 327		ret0 = new(*big.Int)
 328	)
 329	out := ret0
 330	err := _HEZ.contract.Call(opts, out, "allowance", arg0, arg1)
 331	return *ret0, tracerr.Wrap(err)
 332}
 333
 334// Allowance is a free data retrieval call binding the contract method 0xdd62ed3e.
 335//
 336// Solidity: function allowance(address , address ) view returns(uint256)
 337func (_HEZ *HEZSession) Allowance(arg0 common.Address, arg1 common.Address) (*big.Int, error) {
 338	return _HEZ.Contract.Allowance(&_HEZ.CallOpts, arg0, arg1)
 339}
 340
 341// Allowance is a free data retrieval call binding the contract method 0xdd62ed3e.
 342//
 343// Solidity: function allowance(address , address ) view returns(uint256)
 344func (_HEZ *HEZCallerSession) Allowance(arg0 common.Address, arg1 common.Address) (*big.Int, error) {
 345	return _HEZ.Contract.Allowance(&_HEZ.CallOpts, arg0, arg1)
 346}
 347
 348// AuthorizationState is a free data retrieval call binding the contract method 0xe94a0102.
 349//
 350// Solidity: function authorizationState(address , bytes32 ) view returns(bool)
 351func (_HEZ *HEZCaller) AuthorizationState(opts *bind.CallOpts, arg0 common.Address, arg1 [32]byte) (bool, error) {
 352	var (
 353		ret0 = new(bool)
 354	)
 355	out := ret0
 356	err := _HEZ.contract.Call(opts, out, "authorizationState", arg0, arg1)
 357	return *ret0, tracerr.Wrap(err)
 358}
 359
 360// AuthorizationState is a free data retrieval call binding the contract method 0xe94a0102.
 361//
 362// Solidity: function authorizationState(address , bytes32 ) view returns(bool)
 363func (_HEZ *HEZSession) AuthorizationState(arg0 common.Address, arg1 [32]byte) (bool, error) {
 364	return _HEZ.Contract.AuthorizationState(&_HEZ.CallOpts, arg0, arg1)
 365}
 366
 367// AuthorizationState is a free data retrieval call binding the contract method 0xe94a0102.
 368//
 369// Solidity: function authorizationState(address , bytes32 ) view returns(bool)
 370func (_HEZ *HEZCallerSession) AuthorizationState(arg0 common.Address, arg1 [32]byte) (bool, error) {
 371	return _HEZ.Contract.AuthorizationState(&_HEZ.CallOpts, arg0, arg1)
 372}
 373
 374// BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 375//
 376// Solidity: function balanceOf(address ) view returns(uint256)
 377func (_HEZ *HEZCaller) BalanceOf(opts *bind.CallOpts, arg0 common.Address) (*big.Int, error) {
 378	var (
 379		ret0 = new(*big.Int)
 380	)
 381	out := ret0
 382	err := _HEZ.contract.Call(opts, out, "balanceOf", arg0)
 383	return *ret0, tracerr.Wrap(err)
 384}
 385
 386// BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 387//
 388// Solidity: function balanceOf(address ) view returns(uint256)
 389func (_HEZ *HEZSession) BalanceOf(arg0 common.Address) (*big.Int, error) {
 390	return _HEZ.Contract.BalanceOf(&_HEZ.CallOpts, arg0)
 391}
 392
 393// BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 394//
 395// Solidity: function balanceOf(address ) view returns(uint256)
 396func (_HEZ *HEZCallerSession) BalanceOf(arg0 common.Address) (*big.Int, error) {
 397	return _HEZ.Contract.BalanceOf(&_HEZ.CallOpts, arg0)
 398}
 399
 400// Decimals is a free data retrieval call binding the contract method 0x313ce567.
 401//
 402// Solidity: function decimals() view returns(uint8)
 403func (_HEZ *HEZCaller) Decimals(opts *bind.CallOpts) (uint8, error) {
 404	var (
 405		ret0 = new(uint8)
 406	)
 407	out := ret0
 408	err := _HEZ.contract.Call(opts, out, "decimals")
 409	return *ret0, tracerr.Wrap(err)
 410}
 411
 412// Decimals is a free data retrieval call binding the contract method 0x313ce567.
 413//
 414// Solidity: function decimals() view returns(uint8)
 415func (_HEZ *HEZSession) Decimals() (uint8, error) {
 416	return _HEZ.Contract.Decimals(&_HEZ.CallOpts)
 417}
 418
 419// Decimals is a free data retrieval call binding the contract method 0x313ce567.
 420//
 421// Solidity: function decimals() view returns(uint8)
 422func (_HEZ *HEZCallerSession) Decimals() (uint8, error) {
 423	return _HEZ.Contract.Decimals(&_HEZ.CallOpts)
 424}
 425
 426// GetChainId is a free data retrieval call binding the contract method 0x3408e470.
 427//
 428// Solidity: function getChainId() pure returns(uint256 chainId)
 429func (_HEZ *HEZCaller) GetChainId(opts *bind.CallOpts) (*big.Int, error) {
 430	var (
 431		ret0 = new(*big.Int)
 432	)
 433	out := ret0
 434	err := _HEZ.contract.Call(opts, out, "getChainId")
 435	return *ret0, tracerr.Wrap(err)
 436}
 437
 438// GetChainId is a free data retrieval call binding the contract method 0x3408e470.
 439//
 440// Solidity: function getChainId() pure returns(uint256 chainId)
 441func (_HEZ *HEZSession) GetChainId() (*big.Int, error) {
 442	return _HEZ.Contract.GetChainId(&_HEZ.CallOpts)
 443}
 444
 445// GetChainId is a free data retrieval call binding the contract method 0x3408e470.
 446//
 447// Solidity: function getChainId() pure returns(uint256 chainId)
 448func (_HEZ *HEZCallerSession) GetChainId() (*big.Int, error) {
 449	return _HEZ.Contract.GetChainId(&_HEZ.CallOpts)
 450}
 451
 452// InitialBalance is a free data retrieval call binding the contract method 0x18369a2a.
 453//
 454// Solidity: function initialBalance() view returns(uint256)
 455func (_HEZ *HEZCaller) InitialBalance(opts *bind.CallOpts) (*big.Int, error) {
 456	var (
 457		ret0 = new(*big.Int)
 458	)
 459	out := ret0
 460	err := _HEZ.contract.Call(opts, out, "initialBalance")
 461	return *ret0, tracerr.Wrap(err)
 462}
 463
 464// InitialBalance is a free data retrieval call binding the contract method 0x18369a2a.
 465//
 466// Solidity: function initialBalance() view returns(uint256)
 467func (_HEZ *HEZSession) InitialBalance() (*big.Int, error) {
 468	return _HEZ.Contract.InitialBalance(&_HEZ.CallOpts)
 469}
 470
 471// InitialBalance is a free data retrieval call binding the contract method 0x18369a2a.
 472//
 473// Solidity: function initialBalance() view returns(uint256)
 474func (_HEZ *HEZCallerSession) InitialBalance() (*big.Int, error) {
 475	return _HEZ.Contract.InitialBalance(&_HEZ.CallOpts)
 476}
 477
 478// Name is a free data retrieval call binding the contract method 0x06fdde03.
 479//
 480// Solidity: function name() view returns(string)
 481func (_HEZ *HEZCaller) Name(opts *bind.CallOpts) (string, error) {
 482	var (
 483		ret0 = new(string)
 484	)
 485	out := ret0
 486	err := _HEZ.contract.Call(opts, out, "name")
 487	return *ret0, tracerr.Wrap(err)
 488}
 489
 490// Name is a free data retrieval call binding the contract method 0x06fdde03.
 491//
 492// Solidity: function name() view returns(string)
 493func (_HEZ *HEZSession) Name() (string, error) {
 494	return _HEZ.Contract.Name(&_HEZ.CallOpts)
 495}
 496
 497// Name is a free data retrieval call binding the contract method 0x06fdde03.
 498//
 499// Solidity: function name() view returns(string)
 500func (_HEZ *HEZCallerSession) Name() (string, error) {
 501	return _HEZ.Contract.Name(&_HEZ.CallOpts)
 502}
 503
 504// Nonces is a free data retrieval call binding the contract method 0x7ecebe00.
 505//
 506// Solidity: function nonces(address ) view returns(uint256)
 507func (_HEZ *HEZCaller) Nonces(opts *bind.CallOpts, arg0 common.Address) (*big.Int, error) {
 508	var (
 509		ret0 = new(*big.Int)
 510	)
 511	out := ret0
 512	err := _HEZ.contract.Call(opts, out, "nonces", arg0)
 513	return *ret0, tracerr.Wrap(err)
 514}
 515
 516// Nonces is a free data retrieval call binding the contract method 0x7ecebe00.
 517//
 518// Solidity: function nonces(address ) view returns(uint256)
 519func (_HEZ *HEZSession) Nonces(arg0 common.Address) (*big.Int, error) {
 520	return _HEZ.Contract.Nonces(&_HEZ.CallOpts, arg0)
 521}
 522
 523// Nonces is a free data retrieval call binding the contract method 0x7ecebe00.
 524//
 525// Solidity: function nonces(address ) view returns(uint256)
 526func (_HEZ *HEZCallerSession) Nonces(arg0 common.Address) (*big.Int, error) {
 527	return _HEZ.Contract.Nonces(&_HEZ.CallOpts, arg0)
 528}
 529
 530// Symbol is a free data retrieval call binding the contract method 0x95d89b41.
 531//
 532// Solidity: function symbol() view returns(string)
 533func (_HEZ *HEZCaller) Symbol(opts *bind.CallOpts) (string, error) {
 534	var (
 535		ret0 = new(string)
 536	)
 537	out := ret0
 538	err := _HEZ.contract.Call(opts, out, "symbol")
 539	return *ret0, tracerr.Wrap(err)
 540}
 541
 542// Symbol is a free data retrieval call binding the contract method 0x95d89b41.
 543//
 544// Solidity: function symbol() view returns(string)
 545func (_HEZ *HEZSession) Symbol() (string, error) {
 546	return _HEZ.Contract.Symbol(&_HEZ.CallOpts)
 547}
 548
 549// Symbol is a free data retrieval call binding the contract method 0x95d89b41.
 550//
 551// Solidity: function symbol() view returns(string)
 552func (_HEZ *HEZCallerSession) Symbol() (string, error) {
 553	return _HEZ.Contract.Symbol(&_HEZ.CallOpts)
 554}
 555
 556// TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
 557//
 558// Solidity: function totalSupply() view returns(uint256)
 559func (_HEZ *HEZCaller) TotalSupply(opts *bind.CallOpts) (*big.Int, error) {
 560	var (
 561		ret0 = new(*big.Int)
 562	)
 563	out := ret0
 564	err := _HEZ.contract.Call(opts, out, "totalSupply")
 565	return *ret0, tracerr.Wrap(err)
 566}
 567
 568// TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
 569//
 570// Solidity: function totalSupply() view returns(uint256)
 571func (_HEZ *HEZSession) TotalSupply() (*big.Int, error) {
 572	return _HEZ.Contract.TotalSupply(&_HEZ.CallOpts)
 573}
 574
 575// TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
 576//
 577// Solidity: function totalSupply() view returns(uint256)
 578func (_HEZ *HEZCallerSession) TotalSupply() (*big.Int, error) {
 579	return _HEZ.Contract.TotalSupply(&_HEZ.CallOpts)
 580}
 581
 582// Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 583//
 584// Solidity: function approve(address spender, uint256 value) returns(bool)
 585func (_HEZ *HEZTransactor) Approve(opts *bind.TransactOpts, spender common.Address, value *big.Int) (*types.Transaction, error) {
 586	return _HEZ.contract.Transact(opts, "approve", spender, value)
 587}
 588
 589// Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 590//
 591// Solidity: function approve(address spender, uint256 value) returns(bool)
 592func (_HEZ *HEZSession) Approve(spender common.Address, value *big.Int) (*types.Transaction, error) {
 593	return _HEZ.Contract.Approve(&_HEZ.TransactOpts, spender, value)
 594}
 595
 596// Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 597//
 598// Solidity: function approve(address spender, uint256 value) returns(bool)
 599func (_HEZ *HEZTransactorSession) Approve(spender common.Address, value *big.Int) (*types.Transaction, error) {
 600	return _HEZ.Contract.Approve(&_HEZ.TransactOpts, spender, value)
 601}
 602
 603// Burn is a paid mutator transaction binding the contract method 0x42966c68.
 604//
 605// Solidity: function burn(uint256 value) returns(bool)
 606func (_HEZ *HEZTransactor) Burn(opts *bind.TransactOpts, value *big.Int) (*types.Transaction, error) {
 607	return _HEZ.contract.Transact(opts, "burn", value)
 608}
 609
 610// Burn is a paid mutator transaction binding the contract method 0x42966c68.
 611//
 612// Solidity: function burn(uint256 value) returns(bool)
 613func (_HEZ *HEZSession) Burn(value *big.Int) (*types.Transaction, error) {
 614	return _HEZ.Contract.Burn(&_HEZ.TransactOpts, value)
 615}
 616
 617// Burn is a paid mutator transaction binding the contract method 0x42966c68.
 618//
 619// Solidity: function burn(uint256 value) returns(bool)
 620func (_HEZ *HEZTransactorSession) Burn(value *big.Int) (*types.Transaction, error) {
 621	return _HEZ.Contract.Burn(&_HEZ.TransactOpts, value)
 622}
 623
 624// Permit is a paid mutator transaction binding the contract method 0xd505accf.
 625//
 626// Solidity: function permit(address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) returns()
 627func (_HEZ *HEZTransactor) Permit(opts *bind.TransactOpts, owner common.Address, spender common.Address, value *big.Int, deadline *big.Int, v uint8, r [32]byte, s [32]byte) (*types.Transaction, error) {
 628	return _HEZ.contract.Transact(opts, "permit", owner, spender, value, deadline, v, r, s)
 629}
 630
 631// Permit is a paid mutator transaction binding the contract method 0xd505accf.
 632//
 633// Solidity: function permit(address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) returns()
 634func (_HEZ *HEZSession) Permit(owner common.Address, spender common.Address, value *big.Int, deadline *big.Int, v uint8, r [32]byte, s [32]byte) (*types.Transaction, error) {
 635	return _HEZ.Contract.Permit(&_HEZ.TransactOpts, owner, spender, value, deadline, v, r, s)
 636}
 637
 638// Permit is a paid mutator transaction binding the contract method 0xd505accf.
 639//
 640// Solidity: function permit(address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) returns()
 641func (_HEZ *HEZTransactorSession) Permit(owner common.Address, spender common.Address, value *big.Int, deadline *big.Int, v uint8, r [32]byte, s [32]byte) (*types.Transaction, error) {
 642	return _HEZ.Contract.Permit(&_HEZ.TransactOpts, owner, spender, value, deadline, v, r, s)
 643}
 644
 645// Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
 646//
 647// Solidity: function transfer(address to, uint256 value) returns(bool)
 648func (_HEZ *HEZTransactor) Transfer(opts *bind.TransactOpts, to common.Address, value *big.Int) (*types.Transaction, error) {
 649	return _HEZ.contract.Transact(opts, "transfer", to, value)
 650}
 651
 652// Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
 653//
 654// Solidity: function transfer(address to, uint256 value) returns(bool)
 655func (_HEZ *HEZSession) Transfer(to common.Address, value *big.Int) (*types.Transaction, error) {
 656	return _HEZ.Contract.Transfer(&_HEZ.TransactOpts, to, value)
 657}
 658
 659// Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
 660//
 661// Solidity: function transfer(address to, uint256 value) returns(bool)
 662func (_HEZ *HEZTransactorSession) Transfer(to common.Address, value *big.Int) (*types.Transaction, error) {
 663	return _HEZ.Contract.Transfer(&_HEZ.TransactOpts, to, value)
 664}
 665
 666// TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 667//
 668// Solidity: function transferFrom(address from, address to, uint256 value) returns(bool)
 669func (_HEZ *HEZTransactor) TransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, value *big.Int) (*types.Transaction, error) {
 670	return _HEZ.contract.Transact(opts, "transferFrom", from, to, value)
 671}
 672
 673// TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 674//
 675// Solidity: function transferFrom(address from, address to, uint256 value) returns(bool)
 676func (_HEZ *HEZSession) TransferFrom(from common.Address, to common.Address, value *big.Int) (*types.Transaction, error) {
 677	return _HEZ.Contract.TransferFrom(&_HEZ.TransactOpts, from, to, value)
 678}
 679
 680// TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 681//
 682// Solidity: function transferFrom(address from, address to, uint256 value) returns(bool)
 683func (_HEZ *HEZTransactorSession) TransferFrom(from common.Address, to common.Address, value *big.Int) (*types.Transaction, error) {
 684	return _HEZ.Contract.TransferFrom(&_HEZ.TransactOpts, from, to, value)
 685}
 686
 687// TransferWithAuthorization is a paid mutator transaction binding the contract method 0xe3ee160e.
 688//
 689// Solidity: function transferWithAuthorization(address from, address to, uint256 value, uint256 validAfter, uint256 validBefore, bytes32 nonce, uint8 v, bytes32 r, bytes32 s) returns()
 690func (_HEZ *HEZTransactor) TransferWithAuthorization(opts *bind.TransactOpts, from common.Address, to common.Address, value *big.Int, validAfter *big.Int, validBefore *big.Int, nonce [32]byte, v uint8, r [32]byte, s [32]byte) (*types.Transaction, error) {
 691	return _HEZ.contract.Transact(opts, "transferWithAuthorization", from, to, value, validAfter, validBefore, nonce, v, r, s)
 692}
 693
 694// TransferWithAuthorization is a paid mutator transaction binding the contract method 0xe3ee160e.
 695//
 696// Solidity: function transferWithAuthorization(address from, address to, uint256 value, uint256 validAfter, uint256 validBefore, bytes32 nonce, uint8 v, bytes32 r, bytes32 s) returns()
 697func (_HEZ *HEZSession) TransferWithAuthorization(from common.Address, to common.Address, value *big.Int, validAfter *big.Int, validBefore *big.Int, nonce [32]byte, v uint8, r [32]byte, s [32]byte) (*types.Transaction, error) {
 698	return _HEZ.Contract.TransferWithAuthorization(&_HEZ.TransactOpts, from, to, value, validAfter, validBefore, nonce, v, r, s)
 699}
 700
 701// TransferWithAuthorization is a paid mutator transaction binding the contract method 0xe3ee160e.
 702//
 703// Solidity: function transferWithAuthorization(address from, address to, uint256 value, uint256 validAfter, uint256 validBefore, bytes32 nonce, uint8 v, bytes32 r, bytes32 s) returns()
 704func (_HEZ *HEZTransactorSession) TransferWithAuthorization(from common.Address, to common.Address, value *big.Int, validAfter *big.Int, validBefore *big.Int, nonce [32]byte, v uint8, r [32]byte, s [32]byte) (*types.Transaction, error) {
 705	return _HEZ.Contract.TransferWithAuthorization(&_HEZ.TransactOpts, from, to, value, validAfter, validBefore, nonce, v, r, s)
 706}
 707
 708// HEZApprovalIterator is returned from FilterApproval and is used to iterate over the raw logs and unpacked data for Approval events raised by the HEZ contract.
 709type HEZApprovalIterator struct {
 710	Event *HEZApproval // Event containing the contract specifics and raw log
 711
 712	contract *bind.BoundContract // Generic contract to use for unpacking event data
 713	event    string              // Event name to use for unpacking event data
 714
 715	logs chan types.Log        // Log channel receiving the found contract events
 716	sub  ethereum.Subscription // Subscription for errors, completion and termination
 717	done bool                  // Whether the subscription completed delivering logs
 718	fail error                 // Occurred error to stop iteration
 719}
 720
 721// Next advances the iterator to the subsequent event, returning whether there
 722// are any more events found. In case of a retrieval or parsing error, false is
 723// returned and Error() can be queried for the exact failure.
 724func (it *HEZApprovalIterator) Next() bool {
 725	// If the iterator failed, stop iterating
 726	if it.fail != nil {
 727		return false
 728	}
 729	// If the iterator completed, deliver directly whatever's available
 730	if it.done {
 731		select {
 732		case log := <-it.logs:
 733			it.Event = new(HEZApproval)
 734			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 735				it.fail = err
 736				return false
 737			}
 738			it.Event.Raw = log
 739			return true
 740
 741		default:
 742			return false
 743		}
 744	}
 745	// Iterator still in progress, wait for either a data or an error event
 746	select {
 747	case log := <-it.logs:
 748		it.Event = new(HEZApproval)
 749		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 750			it.fail = err
 751			return false
 752		}
 753		it.Event.Raw = log
 754		return true
 755
 756	case err := <-it.sub.Err():
 757		it.done = true
 758		it.fail = err
 759		return it.Next()
 760	}
 761}
 762
 763// Error returns any retrieval or parsing error occurred during filtering.
 764func (it *HEZApprovalIterator) Error() error {
 765	return it.fail
 766}
 767
 768// Close terminates the iteration process, releasing any pending underlying
 769// resources.
 770func (it *HEZApprovalIterator) Close() error {
 771	it.sub.Unsubscribe()
 772	return nil
 773}
 774
 775// HEZApproval represents a Approval event raised by the HEZ contract.
 776type HEZApproval struct {
 777	Owner   common.Address
 778	Spender common.Address
 779	Value   *big.Int
 780	Raw     types.Log // Blockchain specific contextual infos
 781}
 782
 783// FilterApproval is a free log retrieval operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 784//
 785// Solidity: event Approval(address indexed owner, address indexed spender, uint256 value)
 786func (_HEZ *HEZFilterer) FilterApproval(opts *bind.FilterOpts, owner []common.Address, spender []common.Address) (*HEZApprovalIterator, error) {
 787
 788	var ownerRule []interface{}
 789	for _, ownerItem := range owner {
 790		ownerRule = append(ownerRule, ownerItem)
 791	}
 792	var spenderRule []interface{}
 793	for _, spenderItem := range spender {
 794		spenderRule = append(spenderRule, spenderItem)
 795	}
 796
 797	logs, sub, err := _HEZ.contract.FilterLogs(opts, "Approval", ownerRule, spenderRule)
 798	if err != nil {
 799		return nil, tracerr.Wrap(err)
 800	}
 801	return &HEZApprovalIterator{contract: _HEZ.contract, event: "Approval", logs: logs, sub: sub}, nil
 802}
 803
 804// WatchApproval is a free log subscription operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 805//
 806// Solidity: event Approval(address indexed owner, address indexed spender, uint256 value)
 807func (_HEZ *HEZFilterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *HEZApproval, owner []common.Address, spender []common.Address) (event.Subscription, error) {
 808
 809	var ownerRule []interface{}
 810	for _, ownerItem := range owner {
 811		ownerRule = append(ownerRule, ownerItem)
 812	}
 813	var spenderRule []interface{}
 814	for _, spenderItem := range spender {
 815		spenderRule = append(spenderRule, spenderItem)
 816	}
 817
 818	logs, sub, err := _HEZ.contract.WatchLogs(opts, "Approval", ownerRule, spenderRule)
 819	if err != nil {
 820		return nil, tracerr.Wrap(err)
 821	}
 822	return event.NewSubscription(func(quit <-chan struct{}) error {
 823		defer sub.Unsubscribe()
 824		for {
 825			select {
 826			case log := <-logs:
 827				// New log arrived, parse the event and forward to the user
 828				event := new(HEZApproval)
 829				if err := _HEZ.contract.UnpackLog(event, "Approval", log); err != nil {
 830					return tracerr.Wrap(err)
 831				}
 832				event.Raw = log
 833
 834				select {
 835				case sink <- event:
 836				case err := <-sub.Err():
 837					return tracerr.Wrap(err)
 838				case <-quit:
 839					return nil
 840				}
 841			case err := <-sub.Err():
 842				return tracerr.Wrap(err)
 843			case <-quit:
 844				return nil
 845			}
 846		}
 847	}), nil
 848}
 849
 850// ParseApproval is a log parse operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 851//
 852// Solidity: event Approval(address indexed owner, address indexed spender, uint256 value)
 853func (_HEZ *HEZFilterer) ParseApproval(log types.Log) (*HEZApproval, error) {
 854	event := new(HEZApproval)
 855	if err := _HEZ.contract.UnpackLog(event, "Approval", log); err != nil {
 856		return nil, tracerr.Wrap(err)
 857	}
 858	return event, nil
 859}
 860
 861// HEZAuthorizationUsedIterator is returned from FilterAuthorizationUsed and is used to iterate over the raw logs and unpacked data for AuthorizationUsed events raised by the HEZ contract.
 862type HEZAuthorizationUsedIterator struct {
 863	Event *HEZAuthorizationUsed // Event containing the contract specifics and raw log
 864
 865	contract *bind.BoundContract // Generic contract to use for unpacking event data
 866	event    string              // Event name to use for unpacking event data
 867
 868	logs chan types.Log        // Log channel receiving the found contract events
 869	sub  ethereum.Subscription // Subscription for errors, completion and termination
 870	done bool                  // Whether the subscription completed delivering logs
 871	fail error                 // Occurred error to stop iteration
 872}
 873
 874// Next advances the iterator to the subsequent event, returning whether there
 875// are any more events found. In case of a retrieval or parsing error, false is
 876// returned and Error() can be queried for the exact failure.
 877func (it *HEZAuthorizationUsedIterator) Next() bool {
 878	// If the iterator failed, stop iterating
 879	if it.fail != nil {
 880		return false
 881	}
 882	// If the iterator completed, deliver directly whatever's available
 883	if it.done {
 884		select {
 885		case log := <-it.logs:
 886			it.Event = new(HEZAuthorizationUsed)
 887			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 888				it.fail = err
 889				return false
 890			}
 891			it.Event.Raw = log
 892			return true
 893
 894		default:
 895			return false
 896		}
 897	}
 898	// Iterator still in progress, wait for either a data or an error event
 899	select {
 900	case log := <-it.logs:
 901		it.Event = new(HEZAuthorizationUsed)
 902		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 903			it.fail = err
 904			return false
 905		}
 906		it.Event.Raw = log
 907		return true
 908
 909	case err := <-it.sub.Err():
 910		it.done = true
 911		it.fail = err
 912		return it.Next()
 913	}
 914}
 915
 916// Error returns any retrieval or parsing error occurred during filtering.
 917func (it *HEZAuthorizationUsedIterator) Error() error {
 918	return it.fail
 919}
 920
 921// Close terminates the iteration process, releasing any pending underlying
 922// resources.
 923func (it *HEZAuthorizationUsedIterator) Close() error {
 924	it.sub.Unsubscribe()
 925	return nil
 926}
 927
 928// HEZAuthorizationUsed represents a AuthorizationUsed event raised by the HEZ contract.
 929type HEZAuthorizationUsed struct {
 930	Authorizer common.Address
 931	Nonce      [32]byte
 932	Raw        types.Log // Blockchain specific contextual infos
 933}
 934
 935// FilterAuthorizationUsed is a free log retrieval operation binding the contract event 0x98de503528ee59b575ef0c0a2576a82497bfc029a5685b209e9ec333479b10a5.
 936//
 937// Solidity: event AuthorizationUsed(address indexed authorizer, bytes32 indexed nonce)
 938func (_HEZ *HEZFilterer) FilterAuthorizationUsed(opts *bind.FilterOpts, authorizer []common.Address, nonce [][32]byte) (*HEZAuthorizationUsedIterator, error) {
 939
 940	var authorizerRule []interface{}
 941	for _, authorizerItem := range authorizer {
 942		authorizerRule = append(authorizerRule, authorizerItem)
 943	}
 944	var nonceRule []interface{}
 945	for _, nonceItem := range nonce {
 946		nonceRule = append(nonceRule, nonceItem)
 947	}
 948
 949	logs, sub, err := _HEZ.contract.FilterLogs(opts, "AuthorizationUsed", authorizerRule, nonceRule)
 950	if err != nil {
 951		return nil, tracerr.Wrap(err)
 952	}
 953	return &HEZAuthorizationUsedIterator{contract: _HEZ.contract, event: "AuthorizationUsed", logs: logs, sub: sub}, nil
 954}
 955
 956// WatchAuthorizationUsed is a free log subscription operation binding the contract event 0x98de503528ee59b575ef0c0a2576a82497bfc029a5685b209e9ec333479b10a5.
 957//
 958// Solidity: event AuthorizationUsed(address indexed authorizer, bytes32 indexed nonce)
 959func (_HEZ *HEZFilterer) WatchAuthorizationUsed(opts *bind.WatchOpts, sink chan<- *HEZAuthorizationUsed, authorizer []common.Address, nonce [][32]byte) (event.Subscription, error) {
 960
 961	var authorizerRule []interface{}
 962	for _, authorizerItem := range authorizer {
 963		authorizerRule = append(authorizerRule, authorizerItem)
 964	}
 965	var nonceRule []interface{}
 966	for _, nonceItem := range nonce {
 967		nonceRule = append(nonceRule, nonceItem)
 968	}
 969
 970	logs, sub, err := _HEZ.contract.WatchLogs(opts, "AuthorizationUsed", authorizerRule, nonceRule)
 971	if err != nil {
 972		return nil, tracerr.Wrap(err)
 973	}
 974	return event.NewSubscription(func(quit <-chan struct{}) error {
 975		defer sub.Unsubscribe()
 976		for {
 977			select {
 978			case log := <-logs:
 979				// New log arrived, parse the event and forward to the user
 980				event := new(HEZAuthorizationUsed)
 981				if err := _HEZ.contract.UnpackLog(event, "AuthorizationUsed", log); err != nil {
 982					return tracerr.Wrap(err)
 983				}
 984				event.Raw = log
 985
 986				select {
 987				case sink <- event:
 988				case err := <-sub.Err():
 989					return tracerr.Wrap(err)
 990				case <-quit:
 991					return nil
 992				}
 993			case err := <-sub.Err():
 994				return tracerr.Wrap(err)
 995			case <-quit:
 996				return nil
 997			}
 998		}
 999	}), nil
1000}
1001
1002// ParseAuthorizationUsed is a log parse operation binding the contract event 0x98de503528ee59b575ef0c0a2576a82497bfc029a5685b209e9ec333479b10a5.
1003//
1004// Solidity: event AuthorizationUsed(address indexed authorizer, bytes32 indexed nonce)
1005func (_HEZ *HEZFilterer) ParseAuthorizationUsed(log types.Log) (*HEZAuthorizationUsed, error) {
1006	event := new(HEZAuthorizationUsed)
1007	if err := _HEZ.contract.UnpackLog(event, "AuthorizationUsed", log); err != nil {
1008		return nil, tracerr.Wrap(err)
1009	}
1010	return event, nil
1011}
1012
1013// HEZTransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for Transfer events raised by the HEZ contract.
1014type HEZTransferIterator struct {
1015	Event *HEZTransfer // Event containing the contract specifics and raw log
1016
1017	contract *bind.BoundContract // Generic contract to use for unpacking event data
1018	event    string              // Event name to use for unpacking event data
1019
1020	logs chan types.Log        // Log channel receiving the found contract events
1021	sub  ethereum.Subscription // Subscription for errors, completion and termination
1022	done bool                  // Whether the subscription completed delivering logs
1023	fail error                 // Occurred error to stop iteration
1024}
1025
1026// Next advances the iterator to the subsequent event, returning whether there
1027// are any more events found. In case of a retrieval or parsing error, false is
1028// returned and Error() can be queried for the exact failure.
1029func (it *HEZTransferIterator) Next() bool {
1030	// If the iterator failed, stop iterating
1031	if it.fail != nil {
1032		return false
1033	}
1034	// If the iterator completed, deliver directly whatever's available
1035	if it.done {
1036		select {
1037		case log := <-it.logs:
1038			it.Event = new(HEZTransfer)
1039			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
1040				it.fail = err
1041				return false
1042			}
1043			it.Event.Raw = log
1044			return true
1045
1046		default:
1047			return false
1048		}
1049	}
1050	// Iterator still in progress, wait for either a data or an error event
1051	select {
1052	case log := <-it.logs:
1053		it.Event = new(HEZTransfer)
1054		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
1055			it.fail = err
1056			return false
1057		}
1058		it.Event.Raw = log
1059		return true
1060
1061	case err := <-it.sub.Err():
1062		it.done = true
1063		it.fail = err
1064		return it.Next()
1065	}
1066}
1067
1068// Error returns any retrieval or parsing error occurred during filtering.
1069func (it *HEZTransferIterator) Error() error {
1070	return it.fail
1071}
1072
1073// Close terminates the iteration process, releasing any pending underlying
1074// resources.
1075func (it *HEZTransferIterator) Close() error {
1076	it.sub.Unsubscribe()
1077	return nil
1078}
1079
1080// HEZTransfer represents a Transfer event raised by the HEZ contract.
1081type HEZTransfer struct {
1082	From  common.Address
1083	To    common.Address
1084	Value *big.Int
1085	Raw   types.Log // Blockchain specific contextual infos
1086}
1087
1088// FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
1089//
1090// Solidity: event Transfer(address indexed from, address indexed to, uint256 value)
1091func (_HEZ *HEZFilterer) FilterTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*HEZTransferIterator, error) {
1092
1093	var fromRule []interface{}
1094	for _, fromItem := range from {
1095		fromRule = append(fromRule, fromItem)
1096	}
1097	var toRule []interface{}
1098	for _, toItem := range to {
1099		toRule = append(toRule, toItem)
1100	}
1101
1102	logs, sub, err := _HEZ.contract.FilterLogs(opts, "Transfer", fromRule, toRule)
1103	if err != nil {
1104		return nil, tracerr.Wrap(err)
1105	}
1106	return &HEZTransferIterator{contract: _HEZ.contract, event: "Transfer", logs: logs, sub: sub}, nil
1107}
1108
1109// WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
1110//
1111// Solidity: event Transfer(address indexed from, address indexed to, uint256 value)
1112func (_HEZ *HEZFilterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *HEZTransfer, from []common.Address, to []common.Address) (event.Subscription, error) {
1113
1114	var fromRule []interface{}
1115	for _, fromItem := range from {
1116		fromRule = append(fromRule, fromItem)
1117	}
1118	var toRule []interface{}
1119	for _, toItem := range to {
1120		toRule = append(toRule, toItem)
1121	}
1122
1123	logs, sub, err := _HEZ.contract.WatchLogs(opts, "Transfer", fromRule, toRule)
1124	if err != nil {
1125		return nil, tracerr.Wrap(err)
1126	}
1127	return event.NewSubscription(func(quit <-chan struct{}) error {
1128		defer sub.Unsubscribe()
1129		for {
1130			select {
1131			case log := <-logs:
1132				// New log arrived, parse the event and forward to the user
1133				event := new(HEZTransfer)
1134				if err := _HEZ.contract.UnpackLog(event, "Transfer", log); err != nil {
1135					return tracerr.Wrap(err)
1136				}
1137				event.Raw = log
1138
1139				select {
1140				case sink <- event:
1141				case err := <-sub.Err():
1142					return tracerr.Wrap(err)
1143				case <-quit:
1144					return nil
1145				}
1146			case err := <-sub.Err():
1147				return tracerr.Wrap(err)
1148			case <-quit:
1149				return nil
1150			}
1151		}
1152	}), nil
1153}
1154
1155// ParseTransfer is a log parse operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
1156//
1157// Solidity: event Transfer(address indexed from, address indexed to, uint256 value)
1158func (_HEZ *HEZFilterer) ParseTransfer(log types.Log) (*HEZTransfer, error) {
1159	event := new(HEZTransfer)
1160	if err := _HEZ.contract.UnpackLog(event, "Transfer", log); err != nil {
1161		return nil, tracerr.Wrap(err)
1162	}
1163	return event, nil
1164}