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