hermez-node/eth/contracts/erc777/ERC777.go
eth/contracts/erc777/ERC777.goRaw
1// Code generated - DO NOT EDIT.
2// This file is a generated binding and any manual changes will be lost.
3
4package ERC777
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// ERC777ABI is the input ABI used to generate the binding from.
30const ERC777ABI = "[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"address[]\",\"name\":\"defaultOperators\",\"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\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"tokenHolder\",\"type\":\"address\"}],\"name\":\"AuthorizedOperator\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"operatorData\",\"type\":\"bytes\"}],\"name\":\"Burned\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"operatorData\",\"type\":\"bytes\"}],\"name\":\"Minted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"tokenHolder\",\"type\":\"address\"}],\"name\":\"RevokedOperator\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"operatorData\",\"type\":\"bytes\"}],\"name\":\"Sent\",\"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\":[{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"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\":\"operator\",\"type\":\"address\"}],\"name\":\"authorizeOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenHolder\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"defaultOperators\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"granularity\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenHolder\",\"type\":\"address\"}],\"name\":\"isOperatorFor\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"operatorData\",\"type\":\"bytes\"}],\"name\":\"operatorBurn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"operatorData\",\"type\":\"bytes\"}],\"name\":\"operatorSend\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"revokeOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"send\",\"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\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]"
31
32// ERC777Bin is the compiled bytecode used for deploying new contracts.
33var ERC777Bin = "0x60806040523480156200001157600080fd5b506040516200237a3803806200237a833981810160405260608110156200003757600080fd5b81019080805160405193929190846401000000008211156200005857600080fd5b9083019060208201858111156200006e57600080fd5b82516401000000008111828201881017156200008957600080fd5b82525081516020918201929091019080838360005b83811015620000b85781810151838201526020016200009e565b50505050905090810190601f168015620000e65780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200010a57600080fd5b9083019060208201858111156200012057600080fd5b82516401000000008111828201881017156200013b57600080fd5b82525081516020918201929091019080838360005b838110156200016a57818101518382015260200162000150565b50505050905090810190601f168015620001985780820380516001836020036101000a031916815260200191505b5060405260200180516040519392919084640100000000821115620001bc57600080fd5b908301906020820185811115620001d257600080fd5b8251866020820283011164010000000082111715620001f057600080fd5b82525081516020918201928201910280838360005b838110156200021f57818101518382015260200162000205565b5050505091909101604052505084516200024392506002915060208601906200040b565b508151620002599060039060208501906200040b565b5080516200026f90600490602084019062000490565b5060005b600454811015620002cf57600160056000600484815481106200029257fe5b6000918252602080832091909101546001600160a01b031683528201929092526040019020805460ff191691151591909117905560010162000273565b50604080516329965a1d60e01b815230600482018190527fac7fbab5f54a3ca8194167523c6753bfeb96a445279294b6125b68cce2177054602483015260448201529051731820a4b7618bde71dce8cdc73aab6c95905fad24916329965a1d91606480830192600092919082900301818387803b1580156200035057600080fd5b505af115801562000365573d6000803e3d6000fd5b5050604080516329965a1d60e01b815230600482018190527faea199e31a596269b42cdafd93407f14436db6e4cad65417994c2eb37381e05a602483015260448201529051731820a4b7618bde71dce8cdc73aab6c95905fad2493506329965a1d9250606480830192600092919082900301818387803b158015620003e957600080fd5b505af1158015620003fe573d6000803e3d6000fd5b505050505050506200052e565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200044e57805160ff19168380011785556200047e565b828001600101855582156200047e579182015b828111156200047e57825182559160200191906001019062000461565b506200048c929150620004f6565b5090565b828054828255906000526020600020908101928215620004e8579160200282015b82811115620004e857825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190620004b1565b506200048c9291506200050d565b5b808211156200048c5760008155600101620004f7565b5b808211156200048c5780546001600160a01b03191681556001016200050e565b611e3c806200053e6000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c8063959b8c3f116100a2578063d95b637111610071578063d95b63711461052a578063dd62ed3e14610558578063fad8b32a14610586578063fc673c4f146105ac578063fe9d9303146106ea57610116565b8063959b8c3f1461041757806395d89b411461043d5780639bd9bbc614610445578063a9059cbb146104fe57610116565b806323b872dd116100e957806323b872dd1461024a578063313ce56714610280578063556f0dc71461029e57806362ad1b83146102a657806370a08231146103f157610116565b806306e485381461011b57806306fdde0314610173578063095ea7b3146101f057806318160ddd14610230575b600080fd5b610123610795565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561015f578181015183820152602001610147565b505050509050019250505060405180910390f35b61017b6107f7565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101b557818101518382015260200161019d565b50505050905090810190601f1680156101e25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61021c6004803603604081101561020657600080fd5b506001600160a01b038135169060200135610881565b604080519115158252519081900360200190f35b6102386108a3565b60408051918252519081900360200190f35b61021c6004803603606081101561026057600080fd5b506001600160a01b038135811691602081013590911690604001356108a9565b610288610a26565b6040805160ff9092168252519081900360200190f35b610238610a2b565b6103ef600480360360a08110156102bc57600080fd5b6001600160a01b03823581169260208101359091169160408201359190810190608081016060820135600160201b8111156102f657600080fd5b82018360208201111561030857600080fd5b803590602001918460018302840111600160201b8311171561032957600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561037b57600080fd5b82018360208201111561038d57600080fd5b803590602001918460018302840111600160201b831117156103ae57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610a30945050505050565b005b6102386004803603602081101561040757600080fd5b50356001600160a01b0316610a92565b6103ef6004803603602081101561042d57600080fd5b50356001600160a01b0316610aad565b61017b610bf9565b6103ef6004803603606081101561045b57600080fd5b6001600160a01b0382351691602081013591810190606081016040820135600160201b81111561048a57600080fd5b82018360208201111561049c57600080fd5b803590602001918460018302840111600160201b831117156104bd57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610c5a945050505050565b61021c6004803603604081101561051457600080fd5b506001600160a01b038135169060200135610c84565b61021c6004803603604081101561054057600080fd5b506001600160a01b0381358116916020013516610d5d565b6102386004803603604081101561056e57600080fd5b506001600160a01b0381358116916020013516610dff565b6103ef6004803603602081101561059c57600080fd5b50356001600160a01b0316610e2a565b6103ef600480360360808110156105c257600080fd5b6001600160a01b0382351691602081013591810190606081016040820135600160201b8111156105f157600080fd5b82018360208201111561060357600080fd5b803590602001918460018302840111600160201b8311171561062457600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561067657600080fd5b82018360208201111561068857600080fd5b803590602001918460018302840111600160201b831117156106a957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610f76945050505050565b6103ef6004803603604081101561070057600080fd5b81359190810190604081016020820135600160201b81111561072157600080fd5b82018360208201111561073357600080fd5b803590602001918460018302840111600160201b8311171561075457600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610fd4945050505050565b606060048054806020026020016040519081016040528092919081815260200182805480156107ed57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116107cf575b5050505050905090565b60028054604080516020601f60001961010060018716150201909416859004938401819004810282018101909252828152606093909290918301828280156107ed5780601f10610855576101008083540402835291602001916107ed565b820191906000526020600020905b81548152906001019060200180831161086357509395945050505050565b60008061088c610ffa565b9050610899818585610ffe565b5060019392505050565b60015490565b60006001600160a01b0383166108f05760405162461bcd60e51b8152600401808060200182810382526024815260200180611d226024913960400191505060405180910390fd5b6001600160a01b0384166109355760405162461bcd60e51b8152600401808060200182810382526026815260200180611d9b6026913960400191505060405180910390fd5b600061093f610ffa565b905061096d8186868660405180602001604052806000815250604051806020016040528060008152506110ea565b610999818686866040518060200160405280600081525060405180602001604052806000815250611317565b6109ed85826109e886604051806060016040528060298152602001611d72602991396001600160a01b03808c166000908152600860209081526040808320938b16835292905220549190611530565b610ffe565b610a1b81868686604051806020016040528060008152506040518060200160405280600081525060006115c7565b506001949350505050565b601290565b600190565b610a41610a3b610ffa565b86610d5d565b610a7c5760405162461bcd60e51b815260040180806020018281038252602c815260200180611d46602c913960400191505060405180910390fd5b610a8b8585858585600161184c565b5050505050565b6001600160a01b031660009081526020819052604090205490565b806001600160a01b0316610abf610ffa565b6001600160a01b03161415610b055760405162461bcd60e51b8152600401808060200182810382526024815260200180611c906024913960400191505060405180910390fd5b6001600160a01b03811660009081526005602052604090205460ff1615610b685760076000610b32610ffa565b6001600160a01b03908116825260208083019390935260409182016000908120918516815292529020805460ff19169055610baf565b600160066000610b76610ffa565b6001600160a01b03908116825260208083019390935260409182016000908120918616815292529020805460ff19169115159190911790555b610bb7610ffa565b6001600160a01b0316816001600160a01b03167ff4caeb2d6ca8932a215a353d0703c326ec2d81fc68170f320eb2ab49e9df61f960405160405180910390a350565b60038054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156107ed5780601f10610855576101008083540402835291602001916107ed565b610c7f610c65610ffa565b84848460405180602001604052806000815250600161184c565b505050565b60006001600160a01b038316610ccb5760405162461bcd60e51b8152600401808060200182810382526024815260200180611d226024913960400191505060405180910390fd5b6000610cd5610ffa565b9050610d038182868660405180602001604052806000815250604051806020016040528060008152506110ea565b610d2f818286866040518060200160405280600081525060405180602001604052806000815250611317565b61089981828686604051806020016040528060008152506040518060200160405280600081525060006115c7565b6000816001600160a01b0316836001600160a01b03161480610dc857506001600160a01b03831660009081526005602052604090205460ff168015610dc857506001600160a01b0380831660009081526007602090815260408083209387168352929052205460ff16155b80610df857506001600160a01b0380831660009081526006602090815260408083209387168352929052205460ff165b9392505050565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b610e32610ffa565b6001600160a01b0316816001600160a01b03161415610e825760405162461bcd60e51b8152600401808060200182810382526021815260200180611cb46021913960400191505060405180910390fd5b6001600160a01b03811660009081526005602052604090205460ff1615610eee57600160076000610eb1610ffa565b6001600160a01b03908116825260208083019390935260409182016000908120918616815292529020805460ff1916911515919091179055610f2c565b60066000610efa610ffa565b6001600160a01b03908116825260208083019390935260409182016000908120918516815292529020805460ff191690555b610f34610ffa565b6001600160a01b0316816001600160a01b03167f50546e66e5f44d728365dc3908c63bc5cfeeab470722c1677e3073a6ac294aa160405160405180910390a350565b610f87610f81610ffa565b85610d5d565b610fc25760405162461bcd60e51b815260040180806020018281038252602c815260200180611d46602c913960400191505060405180910390fd5b610fce84848484611923565b50505050565b610ff6610fdf610ffa565b838360405180602001604052806000815250611923565b5050565b3390565b6001600160a01b0383166110435760405162461bcd60e51b8152600401808060200182810382526025815260200180611c006025913960400191505060405180910390fd5b6001600160a01b0382166110885760405162461bcd60e51b8152600401808060200182810382526023815260200180611de46023913960400191505060405180910390fd5b6001600160a01b03808416600081815260086020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6040805163555ddc6560e11b81526001600160a01b03871660048201527f29ddb589b1fb5fc7cf394961c1adf5f8c6454761adf795e67fe149f658abe89560248201529051600091731820a4b7618bde71dce8cdc73aab6c95905fad249163aabbb8ca91604480820192602092909190829003018186803b15801561116e57600080fd5b505afa158015611182573d6000803e3d6000fd5b505050506040513d602081101561119857600080fd5b505190506001600160a01b0381161561130e57806001600160a01b03166375ab97828888888888886040518763ffffffff1660e01b815260040180876001600160a01b03168152602001866001600160a01b03168152602001856001600160a01b031681526020018481526020018060200180602001838103835285818151815260200191508051906020019080838360005b8381101561124357818101518382015260200161122b565b50505050905090810190601f1680156112705780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b838110156112a357818101518382015260200161128b565b50505050905090810190601f1680156112d05780820380516001836020036101000a031916815260200191505b5098505050505050505050600060405180830381600087803b1580156112f557600080fd5b505af1158015611309573d6000803e3d6000fd5b505050505b50505050505050565b61132386868686610fce565b61136083604051806060016040528060278152602001611c47602791396001600160a01b0388166000908152602081905260409020549190611530565b6001600160a01b03808716600090815260208190526040808220939093559086168152205461138f9084611b5d565b600080866001600160a01b03166001600160a01b0316815260200190815260200160002081905550836001600160a01b0316856001600160a01b0316876001600160a01b03167f06b541ddaa720db2b10a4d0cdac39b8d360425fc073085fac19bc82614677987868686604051808481526020018060200180602001838103835285818151815260200191508051906020019080838360005b83811015611440578181015183820152602001611428565b50505050905090810190601f16801561146d5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b838110156114a0578181015183820152602001611488565b50505050905090810190601f1680156114cd5780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a4836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3505050505050565b600081848411156115bf5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561158457818101518382015260200161156c565b50505050905090810190601f1680156115b15780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6040805163555ddc6560e11b81526001600160a01b03871660048201527fb281fc8c12954d22544db45de3159a39272895b169a852b314f9cc762e44c53b60248201529051600091731820a4b7618bde71dce8cdc73aab6c95905fad249163aabbb8ca91604480820192602092909190829003018186803b15801561164b57600080fd5b505afa15801561165f573d6000803e3d6000fd5b505050506040513d602081101561167557600080fd5b505190506001600160a01b038116156117ee57806001600160a01b03166223de298989898989896040518763ffffffff1660e01b815260040180876001600160a01b03168152602001866001600160a01b03168152602001856001600160a01b031681526020018481526020018060200180602001838103835285818151815260200191508051906020019080838360005b8381101561171f578181015183820152602001611707565b50505050905090810190601f16801561174c5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b8381101561177f578181015183820152602001611767565b50505050905090810190601f1680156117ac5780820380516001836020036101000a031916815260200191505b5098505050505050505050600060405180830381600087803b1580156117d157600080fd5b505af11580156117e5573d6000803e3d6000fd5b50505050611842565b811561184257611806866001600160a01b0316611bb7565b156118425760405162461bcd60e51b815260040180806020018281038252604d815260200180611cd5604d913960600191505060405180910390fd5b5050505050505050565b6001600160a01b0386166118915760405162461bcd60e51b8152600401808060200182810382526022815260200180611c256022913960400191505060405180910390fd5b6001600160a01b0385166118ec576040805162461bcd60e51b815260206004820181905260248201527f4552433737373a2073656e6420746f20746865207a65726f2061646472657373604482015290519081900360640190fd5b60006118f6610ffa565b90506119068188888888886110ea565b611914818888888888611317565b61130e818888888888886115c7565b6001600160a01b0384166119685760405162461bcd60e51b8152600401808060200182810382526022815260200180611c6e6022913960400191505060405180910390fd5b6000611972610ffa565b90506119818186600087610fce565b611990818660008787876110ea565b6119cd84604051806060016040528060238152602001611dc1602391396001600160a01b0388166000908152602081905260409020549190611530565b6001600160a01b0386166000908152602081905260409020556001546119f39085611bbd565b600181905550846001600160a01b0316816001600160a01b03167fa78a9be3a7b862d26933ad85fb11d80ef66b8f972d7cbba06621d583943a4098868686604051808481526020018060200180602001838103835285818151815260200191508051906020019080838360005b83811015611a78578181015183820152602001611a60565b50505050905090810190601f168015611aa55780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b83811015611ad8578181015183820152602001611ac0565b50505050905090810190601f168015611b055780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a36040805185815290516000916001600160a01b038816917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050505050565b600082820183811015610df8576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b3b151590565b6000610df883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061153056fe4552433737373a20617070726f76652066726f6d20746865207a65726f20616464726573734552433737373a2073656e642066726f6d20746865207a65726f20616464726573734552433737373a207472616e7366657220616d6f756e7420657863656564732062616c616e63654552433737373a206275726e2066726f6d20746865207a65726f20616464726573734552433737373a20617574686f72697a696e672073656c66206173206f70657261746f724552433737373a207265766f6b696e672073656c66206173206f70657261746f724552433737373a20746f6b656e20726563697069656e7420636f6e747261637420686173206e6f20696d706c656d656e74657220666f7220455243373737546f6b656e73526563697069656e744552433737373a207472616e7366657220746f20746865207a65726f20616464726573734552433737373a2063616c6c6572206973206e6f7420616e206f70657261746f7220666f7220686f6c6465724552433737373a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654552433737373a207472616e736665722066726f6d20746865207a65726f20616464726573734552433737373a206275726e20616d6f756e7420657863656564732062616c616e63654552433737373a20617070726f766520746f20746865207a65726f2061646472657373a26469706673582212202863824d471c52348cd21b5ed39b26e9f89d504a3e4ceee40a7a49fb1cca21e364736f6c634300060c0033"
34
35// DeployERC777 deploys a new Ethereum contract, binding an instance of ERC777 to it.
36func DeployERC777(auth *bind.TransactOpts, backend bind.ContractBackend, name string, symbol string, defaultOperators []common.Address) (common.Address, *types.Transaction, *ERC777, error) {
37 parsed, err := abi.JSON(strings.NewReader(ERC777ABI))
38 if err != nil {
39 return common.Address{}, nil, nil, err
40 }
41
42 address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(ERC777Bin), backend, name, symbol, defaultOperators)
43 if err != nil {
44 return common.Address{}, nil, nil, err
45 }
46 return address, tx, &ERC777{ERC777Caller: ERC777Caller{contract: contract}, ERC777Transactor: ERC777Transactor{contract: contract}, ERC777Filterer: ERC777Filterer{contract: contract}}, nil
47}
48
49// ERC777 is an auto generated Go binding around an Ethereum contract.
50type ERC777 struct {
51 ERC777Caller // Read-only binding to the contract
52 ERC777Transactor // Write-only binding to the contract
53 ERC777Filterer // Log filterer for contract events
54}
55
56// ERC777Caller is an auto generated read-only Go binding around an Ethereum contract.
57type ERC777Caller struct {
58 contract *bind.BoundContract // Generic contract wrapper for the low level calls
59}
60
61// ERC777Transactor is an auto generated write-only Go binding around an Ethereum contract.
62type ERC777Transactor struct {
63 contract *bind.BoundContract // Generic contract wrapper for the low level calls
64}
65
66// ERC777Filterer is an auto generated log filtering Go binding around an Ethereum contract events.
67type ERC777Filterer struct {
68 contract *bind.BoundContract // Generic contract wrapper for the low level calls
69}
70
71// ERC777Session is an auto generated Go binding around an Ethereum contract,
72// with pre-set call and transact options.
73type ERC777Session struct {
74 Contract *ERC777 // 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// ERC777CallerSession is an auto generated read-only Go binding around an Ethereum contract,
80// with pre-set call options.
81type ERC777CallerSession struct {
82 Contract *ERC777Caller // Generic contract caller binding to set the session for
83 CallOpts bind.CallOpts // Call options to use throughout this session
84}
85
86// ERC777TransactorSession is an auto generated write-only Go binding around an Ethereum contract,
87// with pre-set transact options.
88type ERC777TransactorSession struct {
89 Contract *ERC777Transactor // Generic contract transactor binding to set the session for
90 TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
91}
92
93// ERC777Raw is an auto generated low-level Go binding around an Ethereum contract.
94type ERC777Raw struct {
95 Contract *ERC777 // Generic contract binding to access the raw methods on
96}
97
98// ERC777CallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
99type ERC777CallerRaw struct {
100 Contract *ERC777Caller // Generic read-only contract binding to access the raw methods on
101}
102
103// ERC777TransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
104type ERC777TransactorRaw struct {
105 Contract *ERC777Transactor // Generic write-only contract binding to access the raw methods on
106}
107
108// NewERC777 creates a new instance of ERC777, bound to a specific deployed contract.
109func NewERC777(address common.Address, backend bind.ContractBackend) (*ERC777, error) {
110 contract, err := bindERC777(address, backend, backend, backend)
111 if err != nil {
112 return nil, err
113 }
114 return &ERC777{ERC777Caller: ERC777Caller{contract: contract}, ERC777Transactor: ERC777Transactor{contract: contract}, ERC777Filterer: ERC777Filterer{contract: contract}}, nil
115}
116
117// NewERC777Caller creates a new read-only instance of ERC777, bound to a specific deployed contract.
118func NewERC777Caller(address common.Address, caller bind.ContractCaller) (*ERC777Caller, error) {
119 contract, err := bindERC777(address, caller, nil, nil)
120 if err != nil {
121 return nil, err
122 }
123 return &ERC777Caller{contract: contract}, nil
124}
125
126// NewERC777Transactor creates a new write-only instance of ERC777, bound to a specific deployed contract.
127func NewERC777Transactor(address common.Address, transactor bind.ContractTransactor) (*ERC777Transactor, error) {
128 contract, err := bindERC777(address, nil, transactor, nil)
129 if err != nil {
130 return nil, err
131 }
132 return &ERC777Transactor{contract: contract}, nil
133}
134
135// NewERC777Filterer creates a new log filterer instance of ERC777, bound to a specific deployed contract.
136func NewERC777Filterer(address common.Address, filterer bind.ContractFilterer) (*ERC777Filterer, error) {
137 contract, err := bindERC777(address, nil, nil, filterer)
138 if err != nil {
139 return nil, err
140 }
141 return &ERC777Filterer{contract: contract}, nil
142}
143
144// bindERC777 binds a generic wrapper to an already deployed contract.
145func bindERC777(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
146 parsed, err := abi.JSON(strings.NewReader(ERC777ABI))
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 (_ERC777 *ERC777Raw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
158 return _ERC777.Contract.ERC777Caller.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 (_ERC777 *ERC777Raw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
164 return _ERC777.Contract.ERC777Transactor.contract.Transfer(opts)
165}
166
167// Transact invokes the (paid) contract method with params as input values.
168func (_ERC777 *ERC777Raw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
169 return _ERC777.Contract.ERC777Transactor.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 (_ERC777 *ERC777CallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
177 return _ERC777.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 (_ERC777 *ERC777TransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
183 return _ERC777.Contract.contract.Transfer(opts)
184}
185
186// Transact invokes the (paid) contract method with params as input values.
187func (_ERC777 *ERC777TransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
188 return _ERC777.Contract.contract.Transact(opts, method, params...)
189}
190
191// Allowance is a free data retrieval call binding the contract method 0xdd62ed3e.
192//
193// Solidity: function allowance(address holder, address spender) view returns(uint256)
194func (_ERC777 *ERC777Caller) Allowance(opts *bind.CallOpts, holder common.Address, spender common.Address) (*big.Int, error) {
195 var (
196 ret0 = new(*big.Int)
197 )
198 out := ret0
199 err := _ERC777.contract.Call(opts, out, "allowance", holder, spender)
200 return *ret0, err
201}
202
203// Allowance is a free data retrieval call binding the contract method 0xdd62ed3e.
204//
205// Solidity: function allowance(address holder, address spender) view returns(uint256)
206func (_ERC777 *ERC777Session) Allowance(holder common.Address, spender common.Address) (*big.Int, error) {
207 return _ERC777.Contract.Allowance(&_ERC777.CallOpts, holder, spender)
208}
209
210// Allowance is a free data retrieval call binding the contract method 0xdd62ed3e.
211//
212// Solidity: function allowance(address holder, address spender) view returns(uint256)
213func (_ERC777 *ERC777CallerSession) Allowance(holder common.Address, spender common.Address) (*big.Int, error) {
214 return _ERC777.Contract.Allowance(&_ERC777.CallOpts, holder, spender)
215}
216
217// BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
218//
219// Solidity: function balanceOf(address tokenHolder) view returns(uint256)
220func (_ERC777 *ERC777Caller) BalanceOf(opts *bind.CallOpts, tokenHolder common.Address) (*big.Int, error) {
221 var (
222 ret0 = new(*big.Int)
223 )
224 out := ret0
225 err := _ERC777.contract.Call(opts, out, "balanceOf", tokenHolder)
226 return *ret0, err
227}
228
229// BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
230//
231// Solidity: function balanceOf(address tokenHolder) view returns(uint256)
232func (_ERC777 *ERC777Session) BalanceOf(tokenHolder common.Address) (*big.Int, error) {
233 return _ERC777.Contract.BalanceOf(&_ERC777.CallOpts, tokenHolder)
234}
235
236// BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
237//
238// Solidity: function balanceOf(address tokenHolder) view returns(uint256)
239func (_ERC777 *ERC777CallerSession) BalanceOf(tokenHolder common.Address) (*big.Int, error) {
240 return _ERC777.Contract.BalanceOf(&_ERC777.CallOpts, tokenHolder)
241}
242
243// Decimals is a free data retrieval call binding the contract method 0x313ce567.
244//
245// Solidity: function decimals() pure returns(uint8)
246func (_ERC777 *ERC777Caller) Decimals(opts *bind.CallOpts) (uint8, error) {
247 var (
248 ret0 = new(uint8)
249 )
250 out := ret0
251 err := _ERC777.contract.Call(opts, out, "decimals")
252 return *ret0, err
253}
254
255// Decimals is a free data retrieval call binding the contract method 0x313ce567.
256//
257// Solidity: function decimals() pure returns(uint8)
258func (_ERC777 *ERC777Session) Decimals() (uint8, error) {
259 return _ERC777.Contract.Decimals(&_ERC777.CallOpts)
260}
261
262// Decimals is a free data retrieval call binding the contract method 0x313ce567.
263//
264// Solidity: function decimals() pure returns(uint8)
265func (_ERC777 *ERC777CallerSession) Decimals() (uint8, error) {
266 return _ERC777.Contract.Decimals(&_ERC777.CallOpts)
267}
268
269// DefaultOperators is a free data retrieval call binding the contract method 0x06e48538.
270//
271// Solidity: function defaultOperators() view returns(address[])
272func (_ERC777 *ERC777Caller) DefaultOperators(opts *bind.CallOpts) ([]common.Address, error) {
273 var (
274 ret0 = new([]common.Address)
275 )
276 out := ret0
277 err := _ERC777.contract.Call(opts, out, "defaultOperators")
278 return *ret0, err
279}
280
281// DefaultOperators is a free data retrieval call binding the contract method 0x06e48538.
282//
283// Solidity: function defaultOperators() view returns(address[])
284func (_ERC777 *ERC777Session) DefaultOperators() ([]common.Address, error) {
285 return _ERC777.Contract.DefaultOperators(&_ERC777.CallOpts)
286}
287
288// DefaultOperators is a free data retrieval call binding the contract method 0x06e48538.
289//
290// Solidity: function defaultOperators() view returns(address[])
291func (_ERC777 *ERC777CallerSession) DefaultOperators() ([]common.Address, error) {
292 return _ERC777.Contract.DefaultOperators(&_ERC777.CallOpts)
293}
294
295// Granularity is a free data retrieval call binding the contract method 0x556f0dc7.
296//
297// Solidity: function granularity() view returns(uint256)
298func (_ERC777 *ERC777Caller) Granularity(opts *bind.CallOpts) (*big.Int, error) {
299 var (
300 ret0 = new(*big.Int)
301 )
302 out := ret0
303 err := _ERC777.contract.Call(opts, out, "granularity")
304 return *ret0, err
305}
306
307// Granularity is a free data retrieval call binding the contract method 0x556f0dc7.
308//
309// Solidity: function granularity() view returns(uint256)
310func (_ERC777 *ERC777Session) Granularity() (*big.Int, error) {
311 return _ERC777.Contract.Granularity(&_ERC777.CallOpts)
312}
313
314// Granularity is a free data retrieval call binding the contract method 0x556f0dc7.
315//
316// Solidity: function granularity() view returns(uint256)
317func (_ERC777 *ERC777CallerSession) Granularity() (*big.Int, error) {
318 return _ERC777.Contract.Granularity(&_ERC777.CallOpts)
319}
320
321// IsOperatorFor is a free data retrieval call binding the contract method 0xd95b6371.
322//
323// Solidity: function isOperatorFor(address operator, address tokenHolder) view returns(bool)
324func (_ERC777 *ERC777Caller) IsOperatorFor(opts *bind.CallOpts, operator common.Address, tokenHolder common.Address) (bool, error) {
325 var (
326 ret0 = new(bool)
327 )
328 out := ret0
329 err := _ERC777.contract.Call(opts, out, "isOperatorFor", operator, tokenHolder)
330 return *ret0, err
331}
332
333// IsOperatorFor is a free data retrieval call binding the contract method 0xd95b6371.
334//
335// Solidity: function isOperatorFor(address operator, address tokenHolder) view returns(bool)
336func (_ERC777 *ERC777Session) IsOperatorFor(operator common.Address, tokenHolder common.Address) (bool, error) {
337 return _ERC777.Contract.IsOperatorFor(&_ERC777.CallOpts, operator, tokenHolder)
338}
339
340// IsOperatorFor is a free data retrieval call binding the contract method 0xd95b6371.
341//
342// Solidity: function isOperatorFor(address operator, address tokenHolder) view returns(bool)
343func (_ERC777 *ERC777CallerSession) IsOperatorFor(operator common.Address, tokenHolder common.Address) (bool, error) {
344 return _ERC777.Contract.IsOperatorFor(&_ERC777.CallOpts, operator, tokenHolder)
345}
346
347// Name is a free data retrieval call binding the contract method 0x06fdde03.
348//
349// Solidity: function name() view returns(string)
350func (_ERC777 *ERC777Caller) Name(opts *bind.CallOpts) (string, error) {
351 var (
352 ret0 = new(string)
353 )
354 out := ret0
355 err := _ERC777.contract.Call(opts, out, "name")
356 return *ret0, err
357}
358
359// Name is a free data retrieval call binding the contract method 0x06fdde03.
360//
361// Solidity: function name() view returns(string)
362func (_ERC777 *ERC777Session) Name() (string, error) {
363 return _ERC777.Contract.Name(&_ERC777.CallOpts)
364}
365
366// Name is a free data retrieval call binding the contract method 0x06fdde03.
367//
368// Solidity: function name() view returns(string)
369func (_ERC777 *ERC777CallerSession) Name() (string, error) {
370 return _ERC777.Contract.Name(&_ERC777.CallOpts)
371}
372
373// Symbol is a free data retrieval call binding the contract method 0x95d89b41.
374//
375// Solidity: function symbol() view returns(string)
376func (_ERC777 *ERC777Caller) Symbol(opts *bind.CallOpts) (string, error) {
377 var (
378 ret0 = new(string)
379 )
380 out := ret0
381 err := _ERC777.contract.Call(opts, out, "symbol")
382 return *ret0, err
383}
384
385// Symbol is a free data retrieval call binding the contract method 0x95d89b41.
386//
387// Solidity: function symbol() view returns(string)
388func (_ERC777 *ERC777Session) Symbol() (string, error) {
389 return _ERC777.Contract.Symbol(&_ERC777.CallOpts)
390}
391
392// Symbol is a free data retrieval call binding the contract method 0x95d89b41.
393//
394// Solidity: function symbol() view returns(string)
395func (_ERC777 *ERC777CallerSession) Symbol() (string, error) {
396 return _ERC777.Contract.Symbol(&_ERC777.CallOpts)
397}
398
399// TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
400//
401// Solidity: function totalSupply() view returns(uint256)
402func (_ERC777 *ERC777Caller) TotalSupply(opts *bind.CallOpts) (*big.Int, error) {
403 var (
404 ret0 = new(*big.Int)
405 )
406 out := ret0
407 err := _ERC777.contract.Call(opts, out, "totalSupply")
408 return *ret0, err
409}
410
411// TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
412//
413// Solidity: function totalSupply() view returns(uint256)
414func (_ERC777 *ERC777Session) TotalSupply() (*big.Int, error) {
415 return _ERC777.Contract.TotalSupply(&_ERC777.CallOpts)
416}
417
418// TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
419//
420// Solidity: function totalSupply() view returns(uint256)
421func (_ERC777 *ERC777CallerSession) TotalSupply() (*big.Int, error) {
422 return _ERC777.Contract.TotalSupply(&_ERC777.CallOpts)
423}
424
425// Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
426//
427// Solidity: function approve(address spender, uint256 value) returns(bool)
428func (_ERC777 *ERC777Transactor) Approve(opts *bind.TransactOpts, spender common.Address, value *big.Int) (*types.Transaction, error) {
429 return _ERC777.contract.Transact(opts, "approve", spender, value)
430}
431
432// Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
433//
434// Solidity: function approve(address spender, uint256 value) returns(bool)
435func (_ERC777 *ERC777Session) Approve(spender common.Address, value *big.Int) (*types.Transaction, error) {
436 return _ERC777.Contract.Approve(&_ERC777.TransactOpts, spender, value)
437}
438
439// Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
440//
441// Solidity: function approve(address spender, uint256 value) returns(bool)
442func (_ERC777 *ERC777TransactorSession) Approve(spender common.Address, value *big.Int) (*types.Transaction, error) {
443 return _ERC777.Contract.Approve(&_ERC777.TransactOpts, spender, value)
444}
445
446// AuthorizeOperator is a paid mutator transaction binding the contract method 0x959b8c3f.
447//
448// Solidity: function authorizeOperator(address operator) returns()
449func (_ERC777 *ERC777Transactor) AuthorizeOperator(opts *bind.TransactOpts, operator common.Address) (*types.Transaction, error) {
450 return _ERC777.contract.Transact(opts, "authorizeOperator", operator)
451}
452
453// AuthorizeOperator is a paid mutator transaction binding the contract method 0x959b8c3f.
454//
455// Solidity: function authorizeOperator(address operator) returns()
456func (_ERC777 *ERC777Session) AuthorizeOperator(operator common.Address) (*types.Transaction, error) {
457 return _ERC777.Contract.AuthorizeOperator(&_ERC777.TransactOpts, operator)
458}
459
460// AuthorizeOperator is a paid mutator transaction binding the contract method 0x959b8c3f.
461//
462// Solidity: function authorizeOperator(address operator) returns()
463func (_ERC777 *ERC777TransactorSession) AuthorizeOperator(operator common.Address) (*types.Transaction, error) {
464 return _ERC777.Contract.AuthorizeOperator(&_ERC777.TransactOpts, operator)
465}
466
467// Burn is a paid mutator transaction binding the contract method 0xfe9d9303.
468//
469// Solidity: function burn(uint256 amount, bytes data) returns()
470func (_ERC777 *ERC777Transactor) Burn(opts *bind.TransactOpts, amount *big.Int, data []byte) (*types.Transaction, error) {
471 return _ERC777.contract.Transact(opts, "burn", amount, data)
472}
473
474// Burn is a paid mutator transaction binding the contract method 0xfe9d9303.
475//
476// Solidity: function burn(uint256 amount, bytes data) returns()
477func (_ERC777 *ERC777Session) Burn(amount *big.Int, data []byte) (*types.Transaction, error) {
478 return _ERC777.Contract.Burn(&_ERC777.TransactOpts, amount, data)
479}
480
481// Burn is a paid mutator transaction binding the contract method 0xfe9d9303.
482//
483// Solidity: function burn(uint256 amount, bytes data) returns()
484func (_ERC777 *ERC777TransactorSession) Burn(amount *big.Int, data []byte) (*types.Transaction, error) {
485 return _ERC777.Contract.Burn(&_ERC777.TransactOpts, amount, data)
486}
487
488// OperatorBurn is a paid mutator transaction binding the contract method 0xfc673c4f.
489//
490// Solidity: function operatorBurn(address account, uint256 amount, bytes data, bytes operatorData) returns()
491func (_ERC777 *ERC777Transactor) OperatorBurn(opts *bind.TransactOpts, account common.Address, amount *big.Int, data []byte, operatorData []byte) (*types.Transaction, error) {
492 return _ERC777.contract.Transact(opts, "operatorBurn", account, amount, data, operatorData)
493}
494
495// OperatorBurn is a paid mutator transaction binding the contract method 0xfc673c4f.
496//
497// Solidity: function operatorBurn(address account, uint256 amount, bytes data, bytes operatorData) returns()
498func (_ERC777 *ERC777Session) OperatorBurn(account common.Address, amount *big.Int, data []byte, operatorData []byte) (*types.Transaction, error) {
499 return _ERC777.Contract.OperatorBurn(&_ERC777.TransactOpts, account, amount, data, operatorData)
500}
501
502// OperatorBurn is a paid mutator transaction binding the contract method 0xfc673c4f.
503//
504// Solidity: function operatorBurn(address account, uint256 amount, bytes data, bytes operatorData) returns()
505func (_ERC777 *ERC777TransactorSession) OperatorBurn(account common.Address, amount *big.Int, data []byte, operatorData []byte) (*types.Transaction, error) {
506 return _ERC777.Contract.OperatorBurn(&_ERC777.TransactOpts, account, amount, data, operatorData)
507}
508
509// OperatorSend is a paid mutator transaction binding the contract method 0x62ad1b83.
510//
511// Solidity: function operatorSend(address sender, address recipient, uint256 amount, bytes data, bytes operatorData) returns()
512func (_ERC777 *ERC777Transactor) OperatorSend(opts *bind.TransactOpts, sender common.Address, recipient common.Address, amount *big.Int, data []byte, operatorData []byte) (*types.Transaction, error) {
513 return _ERC777.contract.Transact(opts, "operatorSend", sender, recipient, amount, data, operatorData)
514}
515
516// OperatorSend is a paid mutator transaction binding the contract method 0x62ad1b83.
517//
518// Solidity: function operatorSend(address sender, address recipient, uint256 amount, bytes data, bytes operatorData) returns()
519func (_ERC777 *ERC777Session) OperatorSend(sender common.Address, recipient common.Address, amount *big.Int, data []byte, operatorData []byte) (*types.Transaction, error) {
520 return _ERC777.Contract.OperatorSend(&_ERC777.TransactOpts, sender, recipient, amount, data, operatorData)
521}
522
523// OperatorSend is a paid mutator transaction binding the contract method 0x62ad1b83.
524//
525// Solidity: function operatorSend(address sender, address recipient, uint256 amount, bytes data, bytes operatorData) returns()
526func (_ERC777 *ERC777TransactorSession) OperatorSend(sender common.Address, recipient common.Address, amount *big.Int, data []byte, operatorData []byte) (*types.Transaction, error) {
527 return _ERC777.Contract.OperatorSend(&_ERC777.TransactOpts, sender, recipient, amount, data, operatorData)
528}
529
530// RevokeOperator is a paid mutator transaction binding the contract method 0xfad8b32a.
531//
532// Solidity: function revokeOperator(address operator) returns()
533func (_ERC777 *ERC777Transactor) RevokeOperator(opts *bind.TransactOpts, operator common.Address) (*types.Transaction, error) {
534 return _ERC777.contract.Transact(opts, "revokeOperator", operator)
535}
536
537// RevokeOperator is a paid mutator transaction binding the contract method 0xfad8b32a.
538//
539// Solidity: function revokeOperator(address operator) returns()
540func (_ERC777 *ERC777Session) RevokeOperator(operator common.Address) (*types.Transaction, error) {
541 return _ERC777.Contract.RevokeOperator(&_ERC777.TransactOpts, operator)
542}
543
544// RevokeOperator is a paid mutator transaction binding the contract method 0xfad8b32a.
545//
546// Solidity: function revokeOperator(address operator) returns()
547func (_ERC777 *ERC777TransactorSession) RevokeOperator(operator common.Address) (*types.Transaction, error) {
548 return _ERC777.Contract.RevokeOperator(&_ERC777.TransactOpts, operator)
549}
550
551// Send is a paid mutator transaction binding the contract method 0x9bd9bbc6.
552//
553// Solidity: function send(address recipient, uint256 amount, bytes data) returns()
554func (_ERC777 *ERC777Transactor) Send(opts *bind.TransactOpts, recipient common.Address, amount *big.Int, data []byte) (*types.Transaction, error) {
555 return _ERC777.contract.Transact(opts, "send", recipient, amount, data)
556}
557
558// Send is a paid mutator transaction binding the contract method 0x9bd9bbc6.
559//
560// Solidity: function send(address recipient, uint256 amount, bytes data) returns()
561func (_ERC777 *ERC777Session) Send(recipient common.Address, amount *big.Int, data []byte) (*types.Transaction, error) {
562 return _ERC777.Contract.Send(&_ERC777.TransactOpts, recipient, amount, data)
563}
564
565// Send is a paid mutator transaction binding the contract method 0x9bd9bbc6.
566//
567// Solidity: function send(address recipient, uint256 amount, bytes data) returns()
568func (_ERC777 *ERC777TransactorSession) Send(recipient common.Address, amount *big.Int, data []byte) (*types.Transaction, error) {
569 return _ERC777.Contract.Send(&_ERC777.TransactOpts, recipient, amount, data)
570}
571
572// Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
573//
574// Solidity: function transfer(address recipient, uint256 amount) returns(bool)
575func (_ERC777 *ERC777Transactor) Transfer(opts *bind.TransactOpts, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
576 return _ERC777.contract.Transact(opts, "transfer", recipient, amount)
577}
578
579// Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
580//
581// Solidity: function transfer(address recipient, uint256 amount) returns(bool)
582func (_ERC777 *ERC777Session) Transfer(recipient common.Address, amount *big.Int) (*types.Transaction, error) {
583 return _ERC777.Contract.Transfer(&_ERC777.TransactOpts, recipient, amount)
584}
585
586// Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
587//
588// Solidity: function transfer(address recipient, uint256 amount) returns(bool)
589func (_ERC777 *ERC777TransactorSession) Transfer(recipient common.Address, amount *big.Int) (*types.Transaction, error) {
590 return _ERC777.Contract.Transfer(&_ERC777.TransactOpts, recipient, amount)
591}
592
593// TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
594//
595// Solidity: function transferFrom(address holder, address recipient, uint256 amount) returns(bool)
596func (_ERC777 *ERC777Transactor) TransferFrom(opts *bind.TransactOpts, holder common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
597 return _ERC777.contract.Transact(opts, "transferFrom", holder, recipient, amount)
598}
599
600// TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
601//
602// Solidity: function transferFrom(address holder, address recipient, uint256 amount) returns(bool)
603func (_ERC777 *ERC777Session) TransferFrom(holder common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
604 return _ERC777.Contract.TransferFrom(&_ERC777.TransactOpts, holder, recipient, amount)
605}
606
607// TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
608//
609// Solidity: function transferFrom(address holder, address recipient, uint256 amount) returns(bool)
610func (_ERC777 *ERC777TransactorSession) TransferFrom(holder common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
611 return _ERC777.Contract.TransferFrom(&_ERC777.TransactOpts, holder, recipient, amount)
612}
613
614// ERC777ApprovalIterator is returned from FilterApproval and is used to iterate over the raw logs and unpacked data for Approval events raised by the ERC777 contract.
615type ERC777ApprovalIterator struct {
616 Event *ERC777Approval // Event containing the contract specifics and raw log
617
618 contract *bind.BoundContract // Generic contract to use for unpacking event data
619 event string // Event name to use for unpacking event data
620
621 logs chan types.Log // Log channel receiving the found contract events
622 sub ethereum.Subscription // Subscription for errors, completion and termination
623 done bool // Whether the subscription completed delivering logs
624 fail error // Occurred error to stop iteration
625}
626
627// Next advances the iterator to the subsequent event, returning whether there
628// are any more events found. In case of a retrieval or parsing error, false is
629// returned and Error() can be queried for the exact failure.
630func (it *ERC777ApprovalIterator) Next() bool {
631 // If the iterator failed, stop iterating
632 if it.fail != nil {
633 return false
634 }
635 // If the iterator completed, deliver directly whatever's available
636 if it.done {
637 select {
638 case log := <-it.logs:
639 it.Event = new(ERC777Approval)
640 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
641 it.fail = err
642 return false
643 }
644 it.Event.Raw = log
645 return true
646
647 default:
648 return false
649 }
650 }
651 // Iterator still in progress, wait for either a data or an error event
652 select {
653 case log := <-it.logs:
654 it.Event = new(ERC777Approval)
655 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
656 it.fail = err
657 return false
658 }
659 it.Event.Raw = log
660 return true
661
662 case err := <-it.sub.Err():
663 it.done = true
664 it.fail = err
665 return it.Next()
666 }
667}
668
669// Error returns any retrieval or parsing error occurred during filtering.
670func (it *ERC777ApprovalIterator) Error() error {
671 return it.fail
672}
673
674// Close terminates the iteration process, releasing any pending underlying
675// resources.
676func (it *ERC777ApprovalIterator) Close() error {
677 it.sub.Unsubscribe()
678 return nil
679}
680
681// ERC777Approval represents a Approval event raised by the ERC777 contract.
682type ERC777Approval struct {
683 Owner common.Address
684 Spender common.Address
685 Value *big.Int
686 Raw types.Log // Blockchain specific contextual infos
687}
688
689// FilterApproval is a free log retrieval operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
690//
691// Solidity: event Approval(address indexed owner, address indexed spender, uint256 value)
692func (_ERC777 *ERC777Filterer) FilterApproval(opts *bind.FilterOpts, owner []common.Address, spender []common.Address) (*ERC777ApprovalIterator, error) {
693
694 var ownerRule []interface{}
695 for _, ownerItem := range owner {
696 ownerRule = append(ownerRule, ownerItem)
697 }
698 var spenderRule []interface{}
699 for _, spenderItem := range spender {
700 spenderRule = append(spenderRule, spenderItem)
701 }
702
703 logs, sub, err := _ERC777.contract.FilterLogs(opts, "Approval", ownerRule, spenderRule)
704 if err != nil {
705 return nil, err
706 }
707 return &ERC777ApprovalIterator{contract: _ERC777.contract, event: "Approval", logs: logs, sub: sub}, nil
708}
709
710// WatchApproval is a free log subscription operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
711//
712// Solidity: event Approval(address indexed owner, address indexed spender, uint256 value)
713func (_ERC777 *ERC777Filterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *ERC777Approval, owner []common.Address, spender []common.Address) (event.Subscription, error) {
714
715 var ownerRule []interface{}
716 for _, ownerItem := range owner {
717 ownerRule = append(ownerRule, ownerItem)
718 }
719 var spenderRule []interface{}
720 for _, spenderItem := range spender {
721 spenderRule = append(spenderRule, spenderItem)
722 }
723
724 logs, sub, err := _ERC777.contract.WatchLogs(opts, "Approval", ownerRule, spenderRule)
725 if err != nil {
726 return nil, err
727 }
728 return event.NewSubscription(func(quit <-chan struct{}) error {
729 defer sub.Unsubscribe()
730 for {
731 select {
732 case log := <-logs:
733 // New log arrived, parse the event and forward to the user
734 event := new(ERC777Approval)
735 if err := _ERC777.contract.UnpackLog(event, "Approval", log); err != nil {
736 return err
737 }
738 event.Raw = log
739
740 select {
741 case sink <- event:
742 case err := <-sub.Err():
743 return err
744 case <-quit:
745 return nil
746 }
747 case err := <-sub.Err():
748 return err
749 case <-quit:
750 return nil
751 }
752 }
753 }), nil
754}
755
756// ParseApproval is a log parse operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
757//
758// Solidity: event Approval(address indexed owner, address indexed spender, uint256 value)
759func (_ERC777 *ERC777Filterer) ParseApproval(log types.Log) (*ERC777Approval, error) {
760 event := new(ERC777Approval)
761 if err := _ERC777.contract.UnpackLog(event, "Approval", log); err != nil {
762 return nil, err
763 }
764 return event, nil
765}
766
767// ERC777AuthorizedOperatorIterator is returned from FilterAuthorizedOperator and is used to iterate over the raw logs and unpacked data for AuthorizedOperator events raised by the ERC777 contract.
768type ERC777AuthorizedOperatorIterator struct {
769 Event *ERC777AuthorizedOperator // Event containing the contract specifics and raw log
770
771 contract *bind.BoundContract // Generic contract to use for unpacking event data
772 event string // Event name to use for unpacking event data
773
774 logs chan types.Log // Log channel receiving the found contract events
775 sub ethereum.Subscription // Subscription for errors, completion and termination
776 done bool // Whether the subscription completed delivering logs
777 fail error // Occurred error to stop iteration
778}
779
780// Next advances the iterator to the subsequent event, returning whether there
781// are any more events found. In case of a retrieval or parsing error, false is
782// returned and Error() can be queried for the exact failure.
783func (it *ERC777AuthorizedOperatorIterator) Next() bool {
784 // If the iterator failed, stop iterating
785 if it.fail != nil {
786 return false
787 }
788 // If the iterator completed, deliver directly whatever's available
789 if it.done {
790 select {
791 case log := <-it.logs:
792 it.Event = new(ERC777AuthorizedOperator)
793 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
794 it.fail = err
795 return false
796 }
797 it.Event.Raw = log
798 return true
799
800 default:
801 return false
802 }
803 }
804 // Iterator still in progress, wait for either a data or an error event
805 select {
806 case log := <-it.logs:
807 it.Event = new(ERC777AuthorizedOperator)
808 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
809 it.fail = err
810 return false
811 }
812 it.Event.Raw = log
813 return true
814
815 case err := <-it.sub.Err():
816 it.done = true
817 it.fail = err
818 return it.Next()
819 }
820}
821
822// Error returns any retrieval or parsing error occurred during filtering.
823func (it *ERC777AuthorizedOperatorIterator) Error() error {
824 return it.fail
825}
826
827// Close terminates the iteration process, releasing any pending underlying
828// resources.
829func (it *ERC777AuthorizedOperatorIterator) Close() error {
830 it.sub.Unsubscribe()
831 return nil
832}
833
834// ERC777AuthorizedOperator represents a AuthorizedOperator event raised by the ERC777 contract.
835type ERC777AuthorizedOperator struct {
836 Operator common.Address
837 TokenHolder common.Address
838 Raw types.Log // Blockchain specific contextual infos
839}
840
841// FilterAuthorizedOperator is a free log retrieval operation binding the contract event 0xf4caeb2d6ca8932a215a353d0703c326ec2d81fc68170f320eb2ab49e9df61f9.
842//
843// Solidity: event AuthorizedOperator(address indexed operator, address indexed tokenHolder)
844func (_ERC777 *ERC777Filterer) FilterAuthorizedOperator(opts *bind.FilterOpts, operator []common.Address, tokenHolder []common.Address) (*ERC777AuthorizedOperatorIterator, error) {
845
846 var operatorRule []interface{}
847 for _, operatorItem := range operator {
848 operatorRule = append(operatorRule, operatorItem)
849 }
850 var tokenHolderRule []interface{}
851 for _, tokenHolderItem := range tokenHolder {
852 tokenHolderRule = append(tokenHolderRule, tokenHolderItem)
853 }
854
855 logs, sub, err := _ERC777.contract.FilterLogs(opts, "AuthorizedOperator", operatorRule, tokenHolderRule)
856 if err != nil {
857 return nil, err
858 }
859 return &ERC777AuthorizedOperatorIterator{contract: _ERC777.contract, event: "AuthorizedOperator", logs: logs, sub: sub}, nil
860}
861
862// WatchAuthorizedOperator is a free log subscription operation binding the contract event 0xf4caeb2d6ca8932a215a353d0703c326ec2d81fc68170f320eb2ab49e9df61f9.
863//
864// Solidity: event AuthorizedOperator(address indexed operator, address indexed tokenHolder)
865func (_ERC777 *ERC777Filterer) WatchAuthorizedOperator(opts *bind.WatchOpts, sink chan<- *ERC777AuthorizedOperator, operator []common.Address, tokenHolder []common.Address) (event.Subscription, error) {
866
867 var operatorRule []interface{}
868 for _, operatorItem := range operator {
869 operatorRule = append(operatorRule, operatorItem)
870 }
871 var tokenHolderRule []interface{}
872 for _, tokenHolderItem := range tokenHolder {
873 tokenHolderRule = append(tokenHolderRule, tokenHolderItem)
874 }
875
876 logs, sub, err := _ERC777.contract.WatchLogs(opts, "AuthorizedOperator", operatorRule, tokenHolderRule)
877 if err != nil {
878 return nil, err
879 }
880 return event.NewSubscription(func(quit <-chan struct{}) error {
881 defer sub.Unsubscribe()
882 for {
883 select {
884 case log := <-logs:
885 // New log arrived, parse the event and forward to the user
886 event := new(ERC777AuthorizedOperator)
887 if err := _ERC777.contract.UnpackLog(event, "AuthorizedOperator", log); err != nil {
888 return err
889 }
890 event.Raw = log
891
892 select {
893 case sink <- event:
894 case err := <-sub.Err():
895 return err
896 case <-quit:
897 return nil
898 }
899 case err := <-sub.Err():
900 return err
901 case <-quit:
902 return nil
903 }
904 }
905 }), nil
906}
907
908// ParseAuthorizedOperator is a log parse operation binding the contract event 0xf4caeb2d6ca8932a215a353d0703c326ec2d81fc68170f320eb2ab49e9df61f9.
909//
910// Solidity: event AuthorizedOperator(address indexed operator, address indexed tokenHolder)
911func (_ERC777 *ERC777Filterer) ParseAuthorizedOperator(log types.Log) (*ERC777AuthorizedOperator, error) {
912 event := new(ERC777AuthorizedOperator)
913 if err := _ERC777.contract.UnpackLog(event, "AuthorizedOperator", log); err != nil {
914 return nil, err
915 }
916 return event, nil
917}
918
919// ERC777BurnedIterator is returned from FilterBurned and is used to iterate over the raw logs and unpacked data for Burned events raised by the ERC777 contract.
920type ERC777BurnedIterator struct {
921 Event *ERC777Burned // Event containing the contract specifics and raw log
922
923 contract *bind.BoundContract // Generic contract to use for unpacking event data
924 event string // Event name to use for unpacking event data
925
926 logs chan types.Log // Log channel receiving the found contract events
927 sub ethereum.Subscription // Subscription for errors, completion and termination
928 done bool // Whether the subscription completed delivering logs
929 fail error // Occurred error to stop iteration
930}
931
932// Next advances the iterator to the subsequent event, returning whether there
933// are any more events found. In case of a retrieval or parsing error, false is
934// returned and Error() can be queried for the exact failure.
935func (it *ERC777BurnedIterator) Next() bool {
936 // If the iterator failed, stop iterating
937 if it.fail != nil {
938 return false
939 }
940 // If the iterator completed, deliver directly whatever's available
941 if it.done {
942 select {
943 case log := <-it.logs:
944 it.Event = new(ERC777Burned)
945 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
946 it.fail = err
947 return false
948 }
949 it.Event.Raw = log
950 return true
951
952 default:
953 return false
954 }
955 }
956 // Iterator still in progress, wait for either a data or an error event
957 select {
958 case log := <-it.logs:
959 it.Event = new(ERC777Burned)
960 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
961 it.fail = err
962 return false
963 }
964 it.Event.Raw = log
965 return true
966
967 case err := <-it.sub.Err():
968 it.done = true
969 it.fail = err
970 return it.Next()
971 }
972}
973
974// Error returns any retrieval or parsing error occurred during filtering.
975func (it *ERC777BurnedIterator) Error() error {
976 return it.fail
977}
978
979// Close terminates the iteration process, releasing any pending underlying
980// resources.
981func (it *ERC777BurnedIterator) Close() error {
982 it.sub.Unsubscribe()
983 return nil
984}
985
986// ERC777Burned represents a Burned event raised by the ERC777 contract.
987type ERC777Burned struct {
988 Operator common.Address
989 From common.Address
990 Amount *big.Int
991 Data []byte
992 OperatorData []byte
993 Raw types.Log // Blockchain specific contextual infos
994}
995
996// FilterBurned is a free log retrieval operation binding the contract event 0xa78a9be3a7b862d26933ad85fb11d80ef66b8f972d7cbba06621d583943a4098.
997//
998// Solidity: event Burned(address indexed operator, address indexed from, uint256 amount, bytes data, bytes operatorData)
999func (_ERC777 *ERC777Filterer) FilterBurned(opts *bind.FilterOpts, operator []common.Address, from []common.Address) (*ERC777BurnedIterator, error) {
1000
1001 var operatorRule []interface{}
1002 for _, operatorItem := range operator {
1003 operatorRule = append(operatorRule, operatorItem)
1004 }
1005 var fromRule []interface{}
1006 for _, fromItem := range from {
1007 fromRule = append(fromRule, fromItem)
1008 }
1009
1010 logs, sub, err := _ERC777.contract.FilterLogs(opts, "Burned", operatorRule, fromRule)
1011 if err != nil {
1012 return nil, err
1013 }
1014 return &ERC777BurnedIterator{contract: _ERC777.contract, event: "Burned", logs: logs, sub: sub}, nil
1015}
1016
1017// WatchBurned is a free log subscription operation binding the contract event 0xa78a9be3a7b862d26933ad85fb11d80ef66b8f972d7cbba06621d583943a4098.
1018//
1019// Solidity: event Burned(address indexed operator, address indexed from, uint256 amount, bytes data, bytes operatorData)
1020func (_ERC777 *ERC777Filterer) WatchBurned(opts *bind.WatchOpts, sink chan<- *ERC777Burned, operator []common.Address, from []common.Address) (event.Subscription, error) {
1021
1022 var operatorRule []interface{}
1023 for _, operatorItem := range operator {
1024 operatorRule = append(operatorRule, operatorItem)
1025 }
1026 var fromRule []interface{}
1027 for _, fromItem := range from {
1028 fromRule = append(fromRule, fromItem)
1029 }
1030
1031 logs, sub, err := _ERC777.contract.WatchLogs(opts, "Burned", operatorRule, fromRule)
1032 if err != nil {
1033 return nil, err
1034 }
1035 return event.NewSubscription(func(quit <-chan struct{}) error {
1036 defer sub.Unsubscribe()
1037 for {
1038 select {
1039 case log := <-logs:
1040 // New log arrived, parse the event and forward to the user
1041 event := new(ERC777Burned)
1042 if err := _ERC777.contract.UnpackLog(event, "Burned", log); err != nil {
1043 return err
1044 }
1045 event.Raw = log
1046
1047 select {
1048 case sink <- event:
1049 case err := <-sub.Err():
1050 return err
1051 case <-quit:
1052 return nil
1053 }
1054 case err := <-sub.Err():
1055 return err
1056 case <-quit:
1057 return nil
1058 }
1059 }
1060 }), nil
1061}
1062
1063// ParseBurned is a log parse operation binding the contract event 0xa78a9be3a7b862d26933ad85fb11d80ef66b8f972d7cbba06621d583943a4098.
1064//
1065// Solidity: event Burned(address indexed operator, address indexed from, uint256 amount, bytes data, bytes operatorData)
1066func (_ERC777 *ERC777Filterer) ParseBurned(log types.Log) (*ERC777Burned, error) {
1067 event := new(ERC777Burned)
1068 if err := _ERC777.contract.UnpackLog(event, "Burned", log); err != nil {
1069 return nil, err
1070 }
1071 return event, nil
1072}
1073
1074// ERC777MintedIterator is returned from FilterMinted and is used to iterate over the raw logs and unpacked data for Minted events raised by the ERC777 contract.
1075type ERC777MintedIterator struct {
1076 Event *ERC777Minted // Event containing the contract specifics and raw log
1077
1078 contract *bind.BoundContract // Generic contract to use for unpacking event data
1079 event string // Event name to use for unpacking event data
1080
1081 logs chan types.Log // Log channel receiving the found contract events
1082 sub ethereum.Subscription // Subscription for errors, completion and termination
1083 done bool // Whether the subscription completed delivering logs
1084 fail error // Occurred error to stop iteration
1085}
1086
1087// Next advances the iterator to the subsequent event, returning whether there
1088// are any more events found. In case of a retrieval or parsing error, false is
1089// returned and Error() can be queried for the exact failure.
1090func (it *ERC777MintedIterator) Next() bool {
1091 // If the iterator failed, stop iterating
1092 if it.fail != nil {
1093 return false
1094 }
1095 // If the iterator completed, deliver directly whatever's available
1096 if it.done {
1097 select {
1098 case log := <-it.logs:
1099 it.Event = new(ERC777Minted)
1100 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
1101 it.fail = err
1102 return false
1103 }
1104 it.Event.Raw = log
1105 return true
1106
1107 default:
1108 return false
1109 }
1110 }
1111 // Iterator still in progress, wait for either a data or an error event
1112 select {
1113 case log := <-it.logs:
1114 it.Event = new(ERC777Minted)
1115 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
1116 it.fail = err
1117 return false
1118 }
1119 it.Event.Raw = log
1120 return true
1121
1122 case err := <-it.sub.Err():
1123 it.done = true
1124 it.fail = err
1125 return it.Next()
1126 }
1127}
1128
1129// Error returns any retrieval or parsing error occurred during filtering.
1130func (it *ERC777MintedIterator) Error() error {
1131 return it.fail
1132}
1133
1134// Close terminates the iteration process, releasing any pending underlying
1135// resources.
1136func (it *ERC777MintedIterator) Close() error {
1137 it.sub.Unsubscribe()
1138 return nil
1139}
1140
1141// ERC777Minted represents a Minted event raised by the ERC777 contract.
1142type ERC777Minted struct {
1143 Operator common.Address
1144 To common.Address
1145 Amount *big.Int
1146 Data []byte
1147 OperatorData []byte
1148 Raw types.Log // Blockchain specific contextual infos
1149}
1150
1151// FilterMinted is a free log retrieval operation binding the contract event 0x2fe5be0146f74c5bce36c0b80911af6c7d86ff27e89d5cfa61fc681327954e5d.
1152//
1153// Solidity: event Minted(address indexed operator, address indexed to, uint256 amount, bytes data, bytes operatorData)
1154func (_ERC777 *ERC777Filterer) FilterMinted(opts *bind.FilterOpts, operator []common.Address, to []common.Address) (*ERC777MintedIterator, error) {
1155
1156 var operatorRule []interface{}
1157 for _, operatorItem := range operator {
1158 operatorRule = append(operatorRule, operatorItem)
1159 }
1160 var toRule []interface{}
1161 for _, toItem := range to {
1162 toRule = append(toRule, toItem)
1163 }
1164
1165 logs, sub, err := _ERC777.contract.FilterLogs(opts, "Minted", operatorRule, toRule)
1166 if err != nil {
1167 return nil, err
1168 }
1169 return &ERC777MintedIterator{contract: _ERC777.contract, event: "Minted", logs: logs, sub: sub}, nil
1170}
1171
1172// WatchMinted is a free log subscription operation binding the contract event 0x2fe5be0146f74c5bce36c0b80911af6c7d86ff27e89d5cfa61fc681327954e5d.
1173//
1174// Solidity: event Minted(address indexed operator, address indexed to, uint256 amount, bytes data, bytes operatorData)
1175func (_ERC777 *ERC777Filterer) WatchMinted(opts *bind.WatchOpts, sink chan<- *ERC777Minted, operator []common.Address, to []common.Address) (event.Subscription, error) {
1176
1177 var operatorRule []interface{}
1178 for _, operatorItem := range operator {
1179 operatorRule = append(operatorRule, operatorItem)
1180 }
1181 var toRule []interface{}
1182 for _, toItem := range to {
1183 toRule = append(toRule, toItem)
1184 }
1185
1186 logs, sub, err := _ERC777.contract.WatchLogs(opts, "Minted", operatorRule, toRule)
1187 if err != nil {
1188 return nil, err
1189 }
1190 return event.NewSubscription(func(quit <-chan struct{}) error {
1191 defer sub.Unsubscribe()
1192 for {
1193 select {
1194 case log := <-logs:
1195 // New log arrived, parse the event and forward to the user
1196 event := new(ERC777Minted)
1197 if err := _ERC777.contract.UnpackLog(event, "Minted", log); err != nil {
1198 return err
1199 }
1200 event.Raw = log
1201
1202 select {
1203 case sink <- event:
1204 case err := <-sub.Err():
1205 return err
1206 case <-quit:
1207 return nil
1208 }
1209 case err := <-sub.Err():
1210 return err
1211 case <-quit:
1212 return nil
1213 }
1214 }
1215 }), nil
1216}
1217
1218// ParseMinted is a log parse operation binding the contract event 0x2fe5be0146f74c5bce36c0b80911af6c7d86ff27e89d5cfa61fc681327954e5d.
1219//
1220// Solidity: event Minted(address indexed operator, address indexed to, uint256 amount, bytes data, bytes operatorData)
1221func (_ERC777 *ERC777Filterer) ParseMinted(log types.Log) (*ERC777Minted, error) {
1222 event := new(ERC777Minted)
1223 if err := _ERC777.contract.UnpackLog(event, "Minted", log); err != nil {
1224 return nil, err
1225 }
1226 return event, nil
1227}
1228
1229// ERC777RevokedOperatorIterator is returned from FilterRevokedOperator and is used to iterate over the raw logs and unpacked data for RevokedOperator events raised by the ERC777 contract.
1230type ERC777RevokedOperatorIterator struct {
1231 Event *ERC777RevokedOperator // Event containing the contract specifics and raw log
1232
1233 contract *bind.BoundContract // Generic contract to use for unpacking event data
1234 event string // Event name to use for unpacking event data
1235
1236 logs chan types.Log // Log channel receiving the found contract events
1237 sub ethereum.Subscription // Subscription for errors, completion and termination
1238 done bool // Whether the subscription completed delivering logs
1239 fail error // Occurred error to stop iteration
1240}
1241
1242// Next advances the iterator to the subsequent event, returning whether there
1243// are any more events found. In case of a retrieval or parsing error, false is
1244// returned and Error() can be queried for the exact failure.
1245func (it *ERC777RevokedOperatorIterator) Next() bool {
1246 // If the iterator failed, stop iterating
1247 if it.fail != nil {
1248 return false
1249 }
1250 // If the iterator completed, deliver directly whatever's available
1251 if it.done {
1252 select {
1253 case log := <-it.logs:
1254 it.Event = new(ERC777RevokedOperator)
1255 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
1256 it.fail = err
1257 return false
1258 }
1259 it.Event.Raw = log
1260 return true
1261
1262 default:
1263 return false
1264 }
1265 }
1266 // Iterator still in progress, wait for either a data or an error event
1267 select {
1268 case log := <-it.logs:
1269 it.Event = new(ERC777RevokedOperator)
1270 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
1271 it.fail = err
1272 return false
1273 }
1274 it.Event.Raw = log
1275 return true
1276
1277 case err := <-it.sub.Err():
1278 it.done = true
1279 it.fail = err
1280 return it.Next()
1281 }
1282}
1283
1284// Error returns any retrieval or parsing error occurred during filtering.
1285func (it *ERC777RevokedOperatorIterator) Error() error {
1286 return it.fail
1287}
1288
1289// Close terminates the iteration process, releasing any pending underlying
1290// resources.
1291func (it *ERC777RevokedOperatorIterator) Close() error {
1292 it.sub.Unsubscribe()
1293 return nil
1294}
1295
1296// ERC777RevokedOperator represents a RevokedOperator event raised by the ERC777 contract.
1297type ERC777RevokedOperator struct {
1298 Operator common.Address
1299 TokenHolder common.Address
1300 Raw types.Log // Blockchain specific contextual infos
1301}
1302
1303// FilterRevokedOperator is a free log retrieval operation binding the contract event 0x50546e66e5f44d728365dc3908c63bc5cfeeab470722c1677e3073a6ac294aa1.
1304//
1305// Solidity: event RevokedOperator(address indexed operator, address indexed tokenHolder)
1306func (_ERC777 *ERC777Filterer) FilterRevokedOperator(opts *bind.FilterOpts, operator []common.Address, tokenHolder []common.Address) (*ERC777RevokedOperatorIterator, error) {
1307
1308 var operatorRule []interface{}
1309 for _, operatorItem := range operator {
1310 operatorRule = append(operatorRule, operatorItem)
1311 }
1312 var tokenHolderRule []interface{}
1313 for _, tokenHolderItem := range tokenHolder {
1314 tokenHolderRule = append(tokenHolderRule, tokenHolderItem)
1315 }
1316
1317 logs, sub, err := _ERC777.contract.FilterLogs(opts, "RevokedOperator", operatorRule, tokenHolderRule)
1318 if err != nil {
1319 return nil, err
1320 }
1321 return &ERC777RevokedOperatorIterator{contract: _ERC777.contract, event: "RevokedOperator", logs: logs, sub: sub}, nil
1322}
1323
1324// WatchRevokedOperator is a free log subscription operation binding the contract event 0x50546e66e5f44d728365dc3908c63bc5cfeeab470722c1677e3073a6ac294aa1.
1325//
1326// Solidity: event RevokedOperator(address indexed operator, address indexed tokenHolder)
1327func (_ERC777 *ERC777Filterer) WatchRevokedOperator(opts *bind.WatchOpts, sink chan<- *ERC777RevokedOperator, operator []common.Address, tokenHolder []common.Address) (event.Subscription, error) {
1328
1329 var operatorRule []interface{}
1330 for _, operatorItem := range operator {
1331 operatorRule = append(operatorRule, operatorItem)
1332 }
1333 var tokenHolderRule []interface{}
1334 for _, tokenHolderItem := range tokenHolder {
1335 tokenHolderRule = append(tokenHolderRule, tokenHolderItem)
1336 }
1337
1338 logs, sub, err := _ERC777.contract.WatchLogs(opts, "RevokedOperator", operatorRule, tokenHolderRule)
1339 if err != nil {
1340 return nil, err
1341 }
1342 return event.NewSubscription(func(quit <-chan struct{}) error {
1343 defer sub.Unsubscribe()
1344 for {
1345 select {
1346 case log := <-logs:
1347 // New log arrived, parse the event and forward to the user
1348 event := new(ERC777RevokedOperator)
1349 if err := _ERC777.contract.UnpackLog(event, "RevokedOperator", log); err != nil {
1350 return err
1351 }
1352 event.Raw = log
1353
1354 select {
1355 case sink <- event:
1356 case err := <-sub.Err():
1357 return err
1358 case <-quit:
1359 return nil
1360 }
1361 case err := <-sub.Err():
1362 return err
1363 case <-quit:
1364 return nil
1365 }
1366 }
1367 }), nil
1368}
1369
1370// ParseRevokedOperator is a log parse operation binding the contract event 0x50546e66e5f44d728365dc3908c63bc5cfeeab470722c1677e3073a6ac294aa1.
1371//
1372// Solidity: event RevokedOperator(address indexed operator, address indexed tokenHolder)
1373func (_ERC777 *ERC777Filterer) ParseRevokedOperator(log types.Log) (*ERC777RevokedOperator, error) {
1374 event := new(ERC777RevokedOperator)
1375 if err := _ERC777.contract.UnpackLog(event, "RevokedOperator", log); err != nil {
1376 return nil, err
1377 }
1378 return event, nil
1379}
1380
1381// ERC777SentIterator is returned from FilterSent and is used to iterate over the raw logs and unpacked data for Sent events raised by the ERC777 contract.
1382type ERC777SentIterator struct {
1383 Event *ERC777Sent // Event containing the contract specifics and raw log
1384
1385 contract *bind.BoundContract // Generic contract to use for unpacking event data
1386 event string // Event name to use for unpacking event data
1387
1388 logs chan types.Log // Log channel receiving the found contract events
1389 sub ethereum.Subscription // Subscription for errors, completion and termination
1390 done bool // Whether the subscription completed delivering logs
1391 fail error // Occurred error to stop iteration
1392}
1393
1394// Next advances the iterator to the subsequent event, returning whether there
1395// are any more events found. In case of a retrieval or parsing error, false is
1396// returned and Error() can be queried for the exact failure.
1397func (it *ERC777SentIterator) Next() bool {
1398 // If the iterator failed, stop iterating
1399 if it.fail != nil {
1400 return false
1401 }
1402 // If the iterator completed, deliver directly whatever's available
1403 if it.done {
1404 select {
1405 case log := <-it.logs:
1406 it.Event = new(ERC777Sent)
1407 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
1408 it.fail = err
1409 return false
1410 }
1411 it.Event.Raw = log
1412 return true
1413
1414 default:
1415 return false
1416 }
1417 }
1418 // Iterator still in progress, wait for either a data or an error event
1419 select {
1420 case log := <-it.logs:
1421 it.Event = new(ERC777Sent)
1422 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
1423 it.fail = err
1424 return false
1425 }
1426 it.Event.Raw = log
1427 return true
1428
1429 case err := <-it.sub.Err():
1430 it.done = true
1431 it.fail = err
1432 return it.Next()
1433 }
1434}
1435
1436// Error returns any retrieval or parsing error occurred during filtering.
1437func (it *ERC777SentIterator) Error() error {
1438 return it.fail
1439}
1440
1441// Close terminates the iteration process, releasing any pending underlying
1442// resources.
1443func (it *ERC777SentIterator) Close() error {
1444 it.sub.Unsubscribe()
1445 return nil
1446}
1447
1448// ERC777Sent represents a Sent event raised by the ERC777 contract.
1449type ERC777Sent struct {
1450 Operator common.Address
1451 From common.Address
1452 To common.Address
1453 Amount *big.Int
1454 Data []byte
1455 OperatorData []byte
1456 Raw types.Log // Blockchain specific contextual infos
1457}
1458
1459// FilterSent is a free log retrieval operation binding the contract event 0x06b541ddaa720db2b10a4d0cdac39b8d360425fc073085fac19bc82614677987.
1460//
1461// Solidity: event Sent(address indexed operator, address indexed from, address indexed to, uint256 amount, bytes data, bytes operatorData)
1462func (_ERC777 *ERC777Filterer) FilterSent(opts *bind.FilterOpts, operator []common.Address, from []common.Address, to []common.Address) (*ERC777SentIterator, error) {
1463
1464 var operatorRule []interface{}
1465 for _, operatorItem := range operator {
1466 operatorRule = append(operatorRule, operatorItem)
1467 }
1468 var fromRule []interface{}
1469 for _, fromItem := range from {
1470 fromRule = append(fromRule, fromItem)
1471 }
1472 var toRule []interface{}
1473 for _, toItem := range to {
1474 toRule = append(toRule, toItem)
1475 }
1476
1477 logs, sub, err := _ERC777.contract.FilterLogs(opts, "Sent", operatorRule, fromRule, toRule)
1478 if err != nil {
1479 return nil, err
1480 }
1481 return &ERC777SentIterator{contract: _ERC777.contract, event: "Sent", logs: logs, sub: sub}, nil
1482}
1483
1484// WatchSent is a free log subscription operation binding the contract event 0x06b541ddaa720db2b10a4d0cdac39b8d360425fc073085fac19bc82614677987.
1485//
1486// Solidity: event Sent(address indexed operator, address indexed from, address indexed to, uint256 amount, bytes data, bytes operatorData)
1487func (_ERC777 *ERC777Filterer) WatchSent(opts *bind.WatchOpts, sink chan<- *ERC777Sent, operator []common.Address, from []common.Address, to []common.Address) (event.Subscription, error) {
1488
1489 var operatorRule []interface{}
1490 for _, operatorItem := range operator {
1491 operatorRule = append(operatorRule, operatorItem)
1492 }
1493 var fromRule []interface{}
1494 for _, fromItem := range from {
1495 fromRule = append(fromRule, fromItem)
1496 }
1497 var toRule []interface{}
1498 for _, toItem := range to {
1499 toRule = append(toRule, toItem)
1500 }
1501
1502 logs, sub, err := _ERC777.contract.WatchLogs(opts, "Sent", operatorRule, fromRule, toRule)
1503 if err != nil {
1504 return nil, err
1505 }
1506 return event.NewSubscription(func(quit <-chan struct{}) error {
1507 defer sub.Unsubscribe()
1508 for {
1509 select {
1510 case log := <-logs:
1511 // New log arrived, parse the event and forward to the user
1512 event := new(ERC777Sent)
1513 if err := _ERC777.contract.UnpackLog(event, "Sent", log); err != nil {
1514 return err
1515 }
1516 event.Raw = log
1517
1518 select {
1519 case sink <- event:
1520 case err := <-sub.Err():
1521 return err
1522 case <-quit:
1523 return nil
1524 }
1525 case err := <-sub.Err():
1526 return err
1527 case <-quit:
1528 return nil
1529 }
1530 }
1531 }), nil
1532}
1533
1534// ParseSent is a log parse operation binding the contract event 0x06b541ddaa720db2b10a4d0cdac39b8d360425fc073085fac19bc82614677987.
1535//
1536// Solidity: event Sent(address indexed operator, address indexed from, address indexed to, uint256 amount, bytes data, bytes operatorData)
1537func (_ERC777 *ERC777Filterer) ParseSent(log types.Log) (*ERC777Sent, error) {
1538 event := new(ERC777Sent)
1539 if err := _ERC777.contract.UnpackLog(event, "Sent", log); err != nil {
1540 return nil, err
1541 }
1542 return event, nil
1543}
1544
1545// ERC777TransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for Transfer events raised by the ERC777 contract.
1546type ERC777TransferIterator struct {
1547 Event *ERC777Transfer // Event containing the contract specifics and raw log
1548
1549 contract *bind.BoundContract // Generic contract to use for unpacking event data
1550 event string // Event name to use for unpacking event data
1551
1552 logs chan types.Log // Log channel receiving the found contract events
1553 sub ethereum.Subscription // Subscription for errors, completion and termination
1554 done bool // Whether the subscription completed delivering logs
1555 fail error // Occurred error to stop iteration
1556}
1557
1558// Next advances the iterator to the subsequent event, returning whether there
1559// are any more events found. In case of a retrieval or parsing error, false is
1560// returned and Error() can be queried for the exact failure.
1561func (it *ERC777TransferIterator) Next() bool {
1562 // If the iterator failed, stop iterating
1563 if it.fail != nil {
1564 return false
1565 }
1566 // If the iterator completed, deliver directly whatever's available
1567 if it.done {
1568 select {
1569 case log := <-it.logs:
1570 it.Event = new(ERC777Transfer)
1571 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
1572 it.fail = err
1573 return false
1574 }
1575 it.Event.Raw = log
1576 return true
1577
1578 default:
1579 return false
1580 }
1581 }
1582 // Iterator still in progress, wait for either a data or an error event
1583 select {
1584 case log := <-it.logs:
1585 it.Event = new(ERC777Transfer)
1586 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
1587 it.fail = err
1588 return false
1589 }
1590 it.Event.Raw = log
1591 return true
1592
1593 case err := <-it.sub.Err():
1594 it.done = true
1595 it.fail = err
1596 return it.Next()
1597 }
1598}
1599
1600// Error returns any retrieval or parsing error occurred during filtering.
1601func (it *ERC777TransferIterator) Error() error {
1602 return it.fail
1603}
1604
1605// Close terminates the iteration process, releasing any pending underlying
1606// resources.
1607func (it *ERC777TransferIterator) Close() error {
1608 it.sub.Unsubscribe()
1609 return nil
1610}
1611
1612// ERC777Transfer represents a Transfer event raised by the ERC777 contract.
1613type ERC777Transfer struct {
1614 From common.Address
1615 To common.Address
1616 Value *big.Int
1617 Raw types.Log // Blockchain specific contextual infos
1618}
1619
1620// FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
1621//
1622// Solidity: event Transfer(address indexed from, address indexed to, uint256 value)
1623func (_ERC777 *ERC777Filterer) FilterTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*ERC777TransferIterator, error) {
1624
1625 var fromRule []interface{}
1626 for _, fromItem := range from {
1627 fromRule = append(fromRule, fromItem)
1628 }
1629 var toRule []interface{}
1630 for _, toItem := range to {
1631 toRule = append(toRule, toItem)
1632 }
1633
1634 logs, sub, err := _ERC777.contract.FilterLogs(opts, "Transfer", fromRule, toRule)
1635 if err != nil {
1636 return nil, err
1637 }
1638 return &ERC777TransferIterator{contract: _ERC777.contract, event: "Transfer", logs: logs, sub: sub}, nil
1639}
1640
1641// WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
1642//
1643// Solidity: event Transfer(address indexed from, address indexed to, uint256 value)
1644func (_ERC777 *ERC777Filterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *ERC777Transfer, from []common.Address, to []common.Address) (event.Subscription, error) {
1645
1646 var fromRule []interface{}
1647 for _, fromItem := range from {
1648 fromRule = append(fromRule, fromItem)
1649 }
1650 var toRule []interface{}
1651 for _, toItem := range to {
1652 toRule = append(toRule, toItem)
1653 }
1654
1655 logs, sub, err := _ERC777.contract.WatchLogs(opts, "Transfer", fromRule, toRule)
1656 if err != nil {
1657 return nil, err
1658 }
1659 return event.NewSubscription(func(quit <-chan struct{}) error {
1660 defer sub.Unsubscribe()
1661 for {
1662 select {
1663 case log := <-logs:
1664 // New log arrived, parse the event and forward to the user
1665 event := new(ERC777Transfer)
1666 if err := _ERC777.contract.UnpackLog(event, "Transfer", log); err != nil {
1667 return err
1668 }
1669 event.Raw = log
1670
1671 select {
1672 case sink <- event:
1673 case err := <-sub.Err():
1674 return err
1675 case <-quit:
1676 return nil
1677 }
1678 case err := <-sub.Err():
1679 return err
1680 case <-quit:
1681 return nil
1682 }
1683 }
1684 }), nil
1685}
1686
1687// ParseTransfer is a log parse operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
1688//
1689// Solidity: event Transfer(address indexed from, address indexed to, uint256 value)
1690func (_ERC777 *ERC777Filterer) ParseTransfer(log types.Log) (*ERC777Transfer, error) {
1691 event := new(ERC777Transfer)
1692 if err := _ERC777.contract.UnpackLog(event, "Transfer", log); err != nil {
1693 return nil, err
1694 }
1695 return event, nil
1696}