mirror of https://github.com/status-im/go-waku.git
1223 lines
75 KiB
Go
1223 lines
75 KiB
Go
|
// Code generated - DO NOT EDIT.
|
||
|
// This file is a generated binding and any manual changes will be lost.
|
||
|
|
||
|
package contracts
|
||
|
|
||
|
import (
|
||
|
"math/big"
|
||
|
"strings"
|
||
|
|
||
|
ethereum "github.com/ethereum/go-ethereum"
|
||
|
"github.com/ethereum/go-ethereum/accounts/abi"
|
||
|
"github.com/ethereum/go-ethereum/accounts/abi/bind"
|
||
|
"github.com/ethereum/go-ethereum/common"
|
||
|
"github.com/ethereum/go-ethereum/core/types"
|
||
|
"github.com/ethereum/go-ethereum/event"
|
||
|
)
|
||
|
|
||
|
// Reference imports to suppress errors if they are not otherwise used.
|
||
|
var (
|
||
|
_ = big.NewInt
|
||
|
_ = strings.NewReader
|
||
|
_ = ethereum.NotFound
|
||
|
_ = bind.Bind
|
||
|
_ = common.Big1
|
||
|
_ = types.BloomLookup
|
||
|
_ = event.NewSubscription
|
||
|
)
|
||
|
|
||
|
// IPoseidonHasherABI is the input ABI used to generate the binding from.
|
||
|
const IPoseidonHasherABI = "[{\"inputs\":[{\"internalType\":\"uint256[2]\",\"name\":\"input\",\"type\":\"uint256[2]\"}],\"name\":\"hash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"identity\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}]"
|
||
|
|
||
|
// IPoseidonHasherFuncSigs maps the 4-byte function signature to its string representation.
|
||
|
var IPoseidonHasherFuncSigs = map[string]string{
|
||
|
"561558fe": "hash(uint256[2])",
|
||
|
"2c159a1a": "identity()",
|
||
|
}
|
||
|
|
||
|
// IPoseidonHasher is an auto generated Go binding around an Ethereum contract.
|
||
|
type IPoseidonHasher struct {
|
||
|
IPoseidonHasherCaller // Read-only binding to the contract
|
||
|
IPoseidonHasherTransactor // Write-only binding to the contract
|
||
|
IPoseidonHasherFilterer // Log filterer for contract events
|
||
|
}
|
||
|
|
||
|
// IPoseidonHasherCaller is an auto generated read-only Go binding around an Ethereum contract.
|
||
|
type IPoseidonHasherCaller struct {
|
||
|
contract *bind.BoundContract // Generic contract wrapper for the low level calls
|
||
|
}
|
||
|
|
||
|
// IPoseidonHasherTransactor is an auto generated write-only Go binding around an Ethereum contract.
|
||
|
type IPoseidonHasherTransactor struct {
|
||
|
contract *bind.BoundContract // Generic contract wrapper for the low level calls
|
||
|
}
|
||
|
|
||
|
// IPoseidonHasherFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
|
||
|
type IPoseidonHasherFilterer struct {
|
||
|
contract *bind.BoundContract // Generic contract wrapper for the low level calls
|
||
|
}
|
||
|
|
||
|
// IPoseidonHasherSession is an auto generated Go binding around an Ethereum contract,
|
||
|
// with pre-set call and transact options.
|
||
|
type IPoseidonHasherSession struct {
|
||
|
Contract *IPoseidonHasher // Generic contract binding to set the session for
|
||
|
CallOpts bind.CallOpts // Call options to use throughout this session
|
||
|
TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
|
||
|
}
|
||
|
|
||
|
// IPoseidonHasherCallerSession is an auto generated read-only Go binding around an Ethereum contract,
|
||
|
// with pre-set call options.
|
||
|
type IPoseidonHasherCallerSession struct {
|
||
|
Contract *IPoseidonHasherCaller // Generic contract caller binding to set the session for
|
||
|
CallOpts bind.CallOpts // Call options to use throughout this session
|
||
|
}
|
||
|
|
||
|
// IPoseidonHasherTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
|
||
|
// with pre-set transact options.
|
||
|
type IPoseidonHasherTransactorSession struct {
|
||
|
Contract *IPoseidonHasherTransactor // Generic contract transactor binding to set the session for
|
||
|
TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
|
||
|
}
|
||
|
|
||
|
// IPoseidonHasherRaw is an auto generated low-level Go binding around an Ethereum contract.
|
||
|
type IPoseidonHasherRaw struct {
|
||
|
Contract *IPoseidonHasher // Generic contract binding to access the raw methods on
|
||
|
}
|
||
|
|
||
|
// IPoseidonHasherCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
|
||
|
type IPoseidonHasherCallerRaw struct {
|
||
|
Contract *IPoseidonHasherCaller // Generic read-only contract binding to access the raw methods on
|
||
|
}
|
||
|
|
||
|
// IPoseidonHasherTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
|
||
|
type IPoseidonHasherTransactorRaw struct {
|
||
|
Contract *IPoseidonHasherTransactor // Generic write-only contract binding to access the raw methods on
|
||
|
}
|
||
|
|
||
|
// NewIPoseidonHasher creates a new instance of IPoseidonHasher, bound to a specific deployed contract.
|
||
|
func NewIPoseidonHasher(address common.Address, backend bind.ContractBackend) (*IPoseidonHasher, error) {
|
||
|
contract, err := bindIPoseidonHasher(address, backend, backend, backend)
|
||
|
if err != nil {
|
||
|
return nil, err
|
||
|
}
|
||
|
return &IPoseidonHasher{IPoseidonHasherCaller: IPoseidonHasherCaller{contract: contract}, IPoseidonHasherTransactor: IPoseidonHasherTransactor{contract: contract}, IPoseidonHasherFilterer: IPoseidonHasherFilterer{contract: contract}}, nil
|
||
|
}
|
||
|
|
||
|
// NewIPoseidonHasherCaller creates a new read-only instance of IPoseidonHasher, bound to a specific deployed contract.
|
||
|
func NewIPoseidonHasherCaller(address common.Address, caller bind.ContractCaller) (*IPoseidonHasherCaller, error) {
|
||
|
contract, err := bindIPoseidonHasher(address, caller, nil, nil)
|
||
|
if err != nil {
|
||
|
return nil, err
|
||
|
}
|
||
|
return &IPoseidonHasherCaller{contract: contract}, nil
|
||
|
}
|
||
|
|
||
|
// NewIPoseidonHasherTransactor creates a new write-only instance of IPoseidonHasher, bound to a specific deployed contract.
|
||
|
func NewIPoseidonHasherTransactor(address common.Address, transactor bind.ContractTransactor) (*IPoseidonHasherTransactor, error) {
|
||
|
contract, err := bindIPoseidonHasher(address, nil, transactor, nil)
|
||
|
if err != nil {
|
||
|
return nil, err
|
||
|
}
|
||
|
return &IPoseidonHasherTransactor{contract: contract}, nil
|
||
|
}
|
||
|
|
||
|
// NewIPoseidonHasherFilterer creates a new log filterer instance of IPoseidonHasher, bound to a specific deployed contract.
|
||
|
func NewIPoseidonHasherFilterer(address common.Address, filterer bind.ContractFilterer) (*IPoseidonHasherFilterer, error) {
|
||
|
contract, err := bindIPoseidonHasher(address, nil, nil, filterer)
|
||
|
if err != nil {
|
||
|
return nil, err
|
||
|
}
|
||
|
return &IPoseidonHasherFilterer{contract: contract}, nil
|
||
|
}
|
||
|
|
||
|
// bindIPoseidonHasher binds a generic wrapper to an already deployed contract.
|
||
|
func bindIPoseidonHasher(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
|
||
|
parsed, err := abi.JSON(strings.NewReader(IPoseidonHasherABI))
|
||
|
if err != nil {
|
||
|
return nil, err
|
||
|
}
|
||
|
return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
|
||
|
}
|
||
|
|
||
|
// Call invokes the (constant) contract method with params as input values and
|
||
|
// sets the output to result. The result type might be a single field for simple
|
||
|
// returns, a slice of interfaces for anonymous returns and a struct for named
|
||
|
// returns.
|
||
|
func (_IPoseidonHasher *IPoseidonHasherRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
|
||
|
return _IPoseidonHasher.Contract.IPoseidonHasherCaller.contract.Call(opts, result, method, params...)
|
||
|
}
|
||
|
|
||
|
// Transfer initiates a plain transaction to move funds to the contract, calling
|
||
|
// its default method if one is available.
|
||
|
func (_IPoseidonHasher *IPoseidonHasherRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
|
||
|
return _IPoseidonHasher.Contract.IPoseidonHasherTransactor.contract.Transfer(opts)
|
||
|
}
|
||
|
|
||
|
// Transact invokes the (paid) contract method with params as input values.
|
||
|
func (_IPoseidonHasher *IPoseidonHasherRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
|
||
|
return _IPoseidonHasher.Contract.IPoseidonHasherTransactor.contract.Transact(opts, method, params...)
|
||
|
}
|
||
|
|
||
|
// Call invokes the (constant) contract method with params as input values and
|
||
|
// sets the output to result. The result type might be a single field for simple
|
||
|
// returns, a slice of interfaces for anonymous returns and a struct for named
|
||
|
// returns.
|
||
|
func (_IPoseidonHasher *IPoseidonHasherCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
|
||
|
return _IPoseidonHasher.Contract.contract.Call(opts, result, method, params...)
|
||
|
}
|
||
|
|
||
|
// Transfer initiates a plain transaction to move funds to the contract, calling
|
||
|
// its default method if one is available.
|
||
|
func (_IPoseidonHasher *IPoseidonHasherTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
|
||
|
return _IPoseidonHasher.Contract.contract.Transfer(opts)
|
||
|
}
|
||
|
|
||
|
// Transact invokes the (paid) contract method with params as input values.
|
||
|
func (_IPoseidonHasher *IPoseidonHasherTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
|
||
|
return _IPoseidonHasher.Contract.contract.Transact(opts, method, params...)
|
||
|
}
|
||
|
|
||
|
// Hash is a free data retrieval call binding the contract method 0x561558fe.
|
||
|
//
|
||
|
// Solidity: function hash(uint256[2] input) pure returns(uint256 result)
|
||
|
func (_IPoseidonHasher *IPoseidonHasherCaller) Hash(opts *bind.CallOpts, input [2]*big.Int) (*big.Int, error) {
|
||
|
var out []interface{}
|
||
|
err := _IPoseidonHasher.contract.Call(opts, &out, "hash", input)
|
||
|
|
||
|
if err != nil {
|
||
|
return *new(*big.Int), err
|
||
|
}
|
||
|
|
||
|
out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
|
||
|
|
||
|
return out0, err
|
||
|
|
||
|
}
|
||
|
|
||
|
// Hash is a free data retrieval call binding the contract method 0x561558fe.
|
||
|
//
|
||
|
// Solidity: function hash(uint256[2] input) pure returns(uint256 result)
|
||
|
func (_IPoseidonHasher *IPoseidonHasherSession) Hash(input [2]*big.Int) (*big.Int, error) {
|
||
|
return _IPoseidonHasher.Contract.Hash(&_IPoseidonHasher.CallOpts, input)
|
||
|
}
|
||
|
|
||
|
// Hash is a free data retrieval call binding the contract method 0x561558fe.
|
||
|
//
|
||
|
// Solidity: function hash(uint256[2] input) pure returns(uint256 result)
|
||
|
func (_IPoseidonHasher *IPoseidonHasherCallerSession) Hash(input [2]*big.Int) (*big.Int, error) {
|
||
|
return _IPoseidonHasher.Contract.Hash(&_IPoseidonHasher.CallOpts, input)
|
||
|
}
|
||
|
|
||
|
// Identity is a free data retrieval call binding the contract method 0x2c159a1a.
|
||
|
//
|
||
|
// Solidity: function identity() pure returns(uint256)
|
||
|
func (_IPoseidonHasher *IPoseidonHasherCaller) Identity(opts *bind.CallOpts) (*big.Int, error) {
|
||
|
var out []interface{}
|
||
|
err := _IPoseidonHasher.contract.Call(opts, &out, "identity")
|
||
|
|
||
|
if err != nil {
|
||
|
return *new(*big.Int), err
|
||
|
}
|
||
|
|
||
|
out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
|
||
|
|
||
|
return out0, err
|
||
|
|
||
|
}
|
||
|
|
||
|
// Identity is a free data retrieval call binding the contract method 0x2c159a1a.
|
||
|
//
|
||
|
// Solidity: function identity() pure returns(uint256)
|
||
|
func (_IPoseidonHasher *IPoseidonHasherSession) Identity() (*big.Int, error) {
|
||
|
return _IPoseidonHasher.Contract.Identity(&_IPoseidonHasher.CallOpts)
|
||
|
}
|
||
|
|
||
|
// Identity is a free data retrieval call binding the contract method 0x2c159a1a.
|
||
|
//
|
||
|
// Solidity: function identity() pure returns(uint256)
|
||
|
func (_IPoseidonHasher *IPoseidonHasherCallerSession) Identity() (*big.Int, error) {
|
||
|
return _IPoseidonHasher.Contract.Identity(&_IPoseidonHasher.CallOpts)
|
||
|
}
|
||
|
|
||
|
// PoseidonHasherABI is the input ABI used to generate the binding from.
|
||
|
const PoseidonHasherABI = "[{\"inputs\":[{\"internalType\":\"uint256[2]\",\"name\":\"input\",\"type\":\"uint256[2]\"}],\"name\":\"hash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"identity\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}]"
|
||
|
|
||
|
// PoseidonHasherFuncSigs maps the 4-byte function signature to its string representation.
|
||
|
var PoseidonHasherFuncSigs = map[string]string{
|
||
|
"561558fe": "hash(uint256[2])",
|
||
|
"2c159a1a": "identity()",
|
||
|
}
|
||
|
|
||
|
// PoseidonHasherBin is the compiled bytecode used for deploying new contracts.
|
||
|
var PoseidonHasherBin = "0x608060405234801561001057600080fd5b50612142806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80632c159a1a1461003b578063561558fe14610055575b600080fd5b6100436100a0565b60408051918252519081900360200190f35b6100436004803603604081101561006b57600080fd5b604080518082018252918301929181830191839060029083908390808284376000920191909152509194506100af9350505050565b60006100aa6100c0565b905090565b60006100ba826100e4565b92915050565b7f2ff267fd23782a5625e6d804f0a7fa700b8dc6084e2e7a5aff7cd4b1c506d30b90565b60007f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016040517f165d45ae851912f9a33800b04cc6617b184bf67db11ce904dc82601244551ae281527f10fc284d0af588165f4fc650fe7c53b1d80fbaac16d30518bf142117f42f820460208201527f06b687bd3c688aa9a03545d0835bca75ae82c434bf7d5fb065a2818b5c74814f60408201527f01057eb8e4bba26f12f4ea819251708d72e0605e6de827e990c3ba4ae13f5ecd60608201527e23779a38eb9ef4a9beaf4dc0a2ab5233a28ce6d10ad2512230a275b83017c360808201527f012e5dfdd4f34081753b70c897773f5d2987c8bbae32ad202a27cd61d7fba2fb7f0d1807f022a8d80d9304a1522087b8692dc0acf7b43fea28782d2ae672c0b11f7f17d468d0e6541de501481931453ed1e4a250e5e301f27dc91fe3b4bd522aa53c7f1ea09a4bd33f14eafd75e775d85e568fa668938fdd2f16fad1d4d2d2b9862b007f061f2e832c23bee84c2f09d63d371cc5eda2f749cdbe9a6a6d20469e9fa36e8b8851017f061f2e832c23bee84c2f09d63d371cc5eda2f749cdbe9a6a6d20469e9fa36e8b60208a0151017f061f2e832c23bee84c2f09d63d371cc5eda2f749cdbe9a6a6d20469e9fa36e8b8883840989848b83840909935089838409905089838b83840909925089828309905089828b8384090991507f0e4d154ca9b7f5111958289f43ed5bbc4d4f6118d45d9aefeb778179d921a59b9050808a60408b015184098b60208c015186098c8c518809010101818b8a85098c60808d015187098d60608e01518909010101828c8886098d8a88098e8c8a0901010193508b82830992508b828d8586090991508b81820992508b818d8586090990508b84850992508b848d8586090993507f298d683000ab71c72fe4371cf6cd37bb584b6d816a653ee4bfea62518a337e079250828c60408d015186098d60208e015184098e8e5186090101019550828c8b86098d60808e015184098e60608f015186090101019450828c8886098d8a84098e8c860901010193508b86870992508b868d8586090995508b85860992508b858d8586090994508b84850992508b848d8586090993507f2f860295bc93d694e74905913ddcae47290b9b5abb43a537fe40d9305bd1e1679250828c60408d015186098d60208e015188098e8e518a090101019150828c8b86098d60808e015188098e60608f01518a090101019050828c8886098d8a88098e8c8a0901010193508b82830992508b828d8586090991508b81820992508b818d8586090990508b84850992508b848d8586090993507f1dd8b95942d95c7896be7f3f455e595cbfee5e1023c5d45e6573c8513f1f3dfa9250828c60408d015186098d60208e015184098e8e5186090101019550828c8b86098d60808e015184098e60608f015186090101019450828c8886098d8a84098e8c860901010193508b86870992508b868d8586090995507f189aa3023aeaa7267dd3c74e2c8b9cba363546619bb9c54bcb02b22fe64c51619250828c60408d015186098d60208e015188098e8e518a090101019150828c8b86098d60808e015188098e60608f01518a090101019050828c8886098d8a88098e8c8a0901010193508b82830992508b828d8586090991507f0da6b697fd05fe54a523131d91e2a7f6ac18184e237c1b20ab1936616f08e5239250828c60408d015186098d60208e015184098e8e5186090101019550828c8b86098d60808e015184098e60608f015186090101019450828c8886098d8a84098e8c860901010193508b86870992508b868d8586090995507f019df963bfafa7f0e34cf092f33ce93b38b9d130fb44f276196e59f16e63ac5a9250828c60408d015186098d60208e015188098e8e518a090101019150828c8b86098d60808e015188098e60608f01518a090101019050828c8886098d8a88098e8c8a0901010193508b82830992508b828d8586090991507f295332d5ab168bc3c5eb671528c9896b7bd5034fb02472ff2af4fa1087ae658f9250828c60408d015186098d60208e015184098e8e5186090101019550828c8b86098d60808e015184098e60608f015186090101019450828c8886098d8a84098e8c860901010193508b86870992508b868d8586090995507f0f423b84792458876c314228be9361a604c75010411b87add91b791df2f980fa9250828c60408d015186098d60208e015188098e8e518a090101019150828c8b86098d60808e015188098e60608f01518a090101019050828c8886098d8a88098e8c8a0901010193508b82830992508b828d8586090991507f1171744890a155b5ad9cde4f1f5c4eab878f3730a9fc71f546eb737c84abec5f9250828c60408d015186098d60208e015184098e8e5186090101019550828c8b86098d60808e015184098e60608f015186090101019450828c88
|
||
|
|
||
|
// DeployPoseidonHasher deploys a new Ethereum contract, binding an instance of PoseidonHasher to it.
|
||
|
func DeployPoseidonHasher(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *PoseidonHasher, error) {
|
||
|
parsed, err := abi.JSON(strings.NewReader(PoseidonHasherABI))
|
||
|
if err != nil {
|
||
|
return common.Address{}, nil, nil, err
|
||
|
}
|
||
|
|
||
|
address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(PoseidonHasherBin), backend)
|
||
|
if err != nil {
|
||
|
return common.Address{}, nil, nil, err
|
||
|
}
|
||
|
return address, tx, &PoseidonHasher{PoseidonHasherCaller: PoseidonHasherCaller{contract: contract}, PoseidonHasherTransactor: PoseidonHasherTransactor{contract: contract}, PoseidonHasherFilterer: PoseidonHasherFilterer{contract: contract}}, nil
|
||
|
}
|
||
|
|
||
|
// PoseidonHasher is an auto generated Go binding around an Ethereum contract.
|
||
|
type PoseidonHasher struct {
|
||
|
PoseidonHasherCaller // Read-only binding to the contract
|
||
|
PoseidonHasherTransactor // Write-only binding to the contract
|
||
|
PoseidonHasherFilterer // Log filterer for contract events
|
||
|
}
|
||
|
|
||
|
// PoseidonHasherCaller is an auto generated read-only Go binding around an Ethereum contract.
|
||
|
type PoseidonHasherCaller struct {
|
||
|
contract *bind.BoundContract // Generic contract wrapper for the low level calls
|
||
|
}
|
||
|
|
||
|
// PoseidonHasherTransactor is an auto generated write-only Go binding around an Ethereum contract.
|
||
|
type PoseidonHasherTransactor struct {
|
||
|
contract *bind.BoundContract // Generic contract wrapper for the low level calls
|
||
|
}
|
||
|
|
||
|
// PoseidonHasherFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
|
||
|
type PoseidonHasherFilterer struct {
|
||
|
contract *bind.BoundContract // Generic contract wrapper for the low level calls
|
||
|
}
|
||
|
|
||
|
// PoseidonHasherSession is an auto generated Go binding around an Ethereum contract,
|
||
|
// with pre-set call and transact options.
|
||
|
type PoseidonHasherSession struct {
|
||
|
Contract *PoseidonHasher // Generic contract binding to set the session for
|
||
|
CallOpts bind.CallOpts // Call options to use throughout this session
|
||
|
TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
|
||
|
}
|
||
|
|
||
|
// PoseidonHasherCallerSession is an auto generated read-only Go binding around an Ethereum contract,
|
||
|
// with pre-set call options.
|
||
|
type PoseidonHasherCallerSession struct {
|
||
|
Contract *PoseidonHasherCaller // Generic contract caller binding to set the session for
|
||
|
CallOpts bind.CallOpts // Call options to use throughout this session
|
||
|
}
|
||
|
|
||
|
// PoseidonHasherTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
|
||
|
// with pre-set transact options.
|
||
|
type PoseidonHasherTransactorSession struct {
|
||
|
Contract *PoseidonHasherTransactor // Generic contract transactor binding to set the session for
|
||
|
TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
|
||
|
}
|
||
|
|
||
|
// PoseidonHasherRaw is an auto generated low-level Go binding around an Ethereum contract.
|
||
|
type PoseidonHasherRaw struct {
|
||
|
Contract *PoseidonHasher // Generic contract binding to access the raw methods on
|
||
|
}
|
||
|
|
||
|
// PoseidonHasherCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
|
||
|
type PoseidonHasherCallerRaw struct {
|
||
|
Contract *PoseidonHasherCaller // Generic read-only contract binding to access the raw methods on
|
||
|
}
|
||
|
|
||
|
// PoseidonHasherTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
|
||
|
type PoseidonHasherTransactorRaw struct {
|
||
|
Contract *PoseidonHasherTransactor // Generic write-only contract binding to access the raw methods on
|
||
|
}
|
||
|
|
||
|
// NewPoseidonHasher creates a new instance of PoseidonHasher, bound to a specific deployed contract.
|
||
|
func NewPoseidonHasher(address common.Address, backend bind.ContractBackend) (*PoseidonHasher, error) {
|
||
|
contract, err := bindPoseidonHasher(address, backend, backend, backend)
|
||
|
if err != nil {
|
||
|
return nil, err
|
||
|
}
|
||
|
return &PoseidonHasher{PoseidonHasherCaller: PoseidonHasherCaller{contract: contract}, PoseidonHasherTransactor: PoseidonHasherTransactor{contract: contract}, PoseidonHasherFilterer: PoseidonHasherFilterer{contract: contract}}, nil
|
||
|
}
|
||
|
|
||
|
// NewPoseidonHasherCaller creates a new read-only instance of PoseidonHasher, bound to a specific deployed contract.
|
||
|
func NewPoseidonHasherCaller(address common.Address, caller bind.ContractCaller) (*PoseidonHasherCaller, error) {
|
||
|
contract, err := bindPoseidonHasher(address, caller, nil, nil)
|
||
|
if err != nil {
|
||
|
return nil, err
|
||
|
}
|
||
|
return &PoseidonHasherCaller{contract: contract}, nil
|
||
|
}
|
||
|
|
||
|
// NewPoseidonHasherTransactor creates a new write-only instance of PoseidonHasher, bound to a specific deployed contract.
|
||
|
func NewPoseidonHasherTransactor(address common.Address, transactor bind.ContractTransactor) (*PoseidonHasherTransactor, error) {
|
||
|
contract, err := bindPoseidonHasher(address, nil, transactor, nil)
|
||
|
if err != nil {
|
||
|
return nil, err
|
||
|
}
|
||
|
return &PoseidonHasherTransactor{contract: contract}, nil
|
||
|
}
|
||
|
|
||
|
// NewPoseidonHasherFilterer creates a new log filterer instance of PoseidonHasher, bound to a specific deployed contract.
|
||
|
func NewPoseidonHasherFilterer(address common.Address, filterer bind.ContractFilterer) (*PoseidonHasherFilterer, error) {
|
||
|
contract, err := bindPoseidonHasher(address, nil, nil, filterer)
|
||
|
if err != nil {
|
||
|
return nil, err
|
||
|
}
|
||
|
return &PoseidonHasherFilterer{contract: contract}, nil
|
||
|
}
|
||
|
|
||
|
// bindPoseidonHasher binds a generic wrapper to an already deployed contract.
|
||
|
func bindPoseidonHasher(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
|
||
|
parsed, err := abi.JSON(strings.NewReader(PoseidonHasherABI))
|
||
|
if err != nil {
|
||
|
return nil, err
|
||
|
}
|
||
|
return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
|
||
|
}
|
||
|
|
||
|
// Call invokes the (constant) contract method with params as input values and
|
||
|
// sets the output to result. The result type might be a single field for simple
|
||
|
// returns, a slice of interfaces for anonymous returns and a struct for named
|
||
|
// returns.
|
||
|
func (_PoseidonHasher *PoseidonHasherRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
|
||
|
return _PoseidonHasher.Contract.PoseidonHasherCaller.contract.Call(opts, result, method, params...)
|
||
|
}
|
||
|
|
||
|
// Transfer initiates a plain transaction to move funds to the contract, calling
|
||
|
// its default method if one is available.
|
||
|
func (_PoseidonHasher *PoseidonHasherRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
|
||
|
return _PoseidonHasher.Contract.PoseidonHasherTransactor.contract.Transfer(opts)
|
||
|
}
|
||
|
|
||
|
// Transact invokes the (paid) contract method with params as input values.
|
||
|
func (_PoseidonHasher *PoseidonHasherRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
|
||
|
return _PoseidonHasher.Contract.PoseidonHasherTransactor.contract.Transact(opts, method, params...)
|
||
|
}
|
||
|
|
||
|
// Call invokes the (constant) contract method with params as input values and
|
||
|
// sets the output to result. The result type might be a single field for simple
|
||
|
// returns, a slice of interfaces for anonymous returns and a struct for named
|
||
|
// returns.
|
||
|
func (_PoseidonHasher *PoseidonHasherCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
|
||
|
return _PoseidonHasher.Contract.contract.Call(opts, result, method, params...)
|
||
|
}
|
||
|
|
||
|
// Transfer initiates a plain transaction to move funds to the contract, calling
|
||
|
// its default method if one is available.
|
||
|
func (_PoseidonHasher *PoseidonHasherTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
|
||
|
return _PoseidonHasher.Contract.contract.Transfer(opts)
|
||
|
}
|
||
|
|
||
|
// Transact invokes the (paid) contract method with params as input values.
|
||
|
func (_PoseidonHasher *PoseidonHasherTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
|
||
|
return _PoseidonHasher.Contract.contract.Transact(opts, method, params...)
|
||
|
}
|
||
|
|
||
|
// Hash is a free data retrieval call binding the contract method 0x561558fe.
|
||
|
//
|
||
|
// Solidity: function hash(uint256[2] input) pure returns(uint256 result)
|
||
|
func (_PoseidonHasher *PoseidonHasherCaller) Hash(opts *bind.CallOpts, input [2]*big.Int) (*big.Int, error) {
|
||
|
var out []interface{}
|
||
|
err := _PoseidonHasher.contract.Call(opts, &out, "hash", input)
|
||
|
|
||
|
if err != nil {
|
||
|
return *new(*big.Int), err
|
||
|
}
|
||
|
|
||
|
out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
|
||
|
|
||
|
return out0, err
|
||
|
|
||
|
}
|
||
|
|
||
|
// Hash is a free data retrieval call binding the contract method 0x561558fe.
|
||
|
//
|
||
|
// Solidity: function hash(uint256[2] input) pure returns(uint256 result)
|
||
|
func (_PoseidonHasher *PoseidonHasherSession) Hash(input [2]*big.Int) (*big.Int, error) {
|
||
|
return _PoseidonHasher.Contract.Hash(&_PoseidonHasher.CallOpts, input)
|
||
|
}
|
||
|
|
||
|
// Hash is a free data retrieval call binding the contract method 0x561558fe.
|
||
|
//
|
||
|
// Solidity: function hash(uint256[2] input) pure returns(uint256 result)
|
||
|
func (_PoseidonHasher *PoseidonHasherCallerSession) Hash(input [2]*big.Int) (*big.Int, error) {
|
||
|
return _PoseidonHasher.Contract.Hash(&_PoseidonHasher.CallOpts, input)
|
||
|
}
|
||
|
|
||
|
// Identity is a free data retrieval call binding the contract method 0x2c159a1a.
|
||
|
//
|
||
|
// Solidity: function identity() pure returns(uint256)
|
||
|
func (_PoseidonHasher *PoseidonHasherCaller) Identity(opts *bind.CallOpts) (*big.Int, error) {
|
||
|
var out []interface{}
|
||
|
err := _PoseidonHasher.contract.Call(opts, &out, "identity")
|
||
|
|
||
|
if err != nil {
|
||
|
return *new(*big.Int), err
|
||
|
}
|
||
|
|
||
|
out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
|
||
|
|
||
|
return out0, err
|
||
|
|
||
|
}
|
||
|
|
||
|
// Identity is a free data retrieval call binding the contract method 0x2c159a1a.
|
||
|
//
|
||
|
// Solidity: function identity() pure returns(uint256)
|
||
|
func (_PoseidonHasher *PoseidonHasherSession) Identity() (*big.Int, error) {
|
||
|
return _PoseidonHasher.Contract.Identity(&_PoseidonHasher.CallOpts)
|
||
|
}
|
||
|
|
||
|
// Identity is a free data retrieval call binding the contract method 0x2c159a1a.
|
||
|
//
|
||
|
// Solidity: function identity() pure returns(uint256)
|
||
|
func (_PoseidonHasher *PoseidonHasherCallerSession) Identity() (*big.Int, error) {
|
||
|
return _PoseidonHasher.Contract.Identity(&_PoseidonHasher.CallOpts)
|
||
|
}
|
||
|
|
||
|
// RLNABI is the input ABI used to generate the binding from.
|
||
|
const RLNABI = "[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"membershipDeposit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"depth\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_poseidonHasher\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"pubkey\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"MemberRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"pubkey\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"MemberWithdrawn\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEPTH\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MEMBERSHIP_DEPOSIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SET_SIZE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"members\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"poseidonHasher\",\"outputs\":[{\"internalType\":\"contractIPoseidonHasher\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pubkeyIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"pubkey\",\"type\":\"uint256\"}],\"name\":\"register\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"pubkeys\",\"type\":\"uint256[]\"}],\"name\":\"registerBatch\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"secret\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_pubkeyIndex\",\"type\":\"uint256\"},{\"internalType\":\"addresspayable\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"secrets\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"pubkeyIndexes\",\"type\":\"uint256[]\"},{\"internalType\":\"addresspayable[]\",\"name\":\"receivers\",\"type\":\"address[]\"}],\"name\":\"withdrawBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]"
|
||
|
|
||
|
// RLNFuncSigs maps the 4-byte function signature to its string representation.
|
||
|
var RLNFuncSigs = map[string]string{
|
||
|
"98366e35": "DEPTH()",
|
||
|
"f220b9ec": "MEMBERSHIP_DEPOSIT()",
|
||
|
"d0383d68": "SET_SIZE()",
|
||
|
"5daf08ca": "members(uint256)",
|
||
|
"331b6ab3": "poseidonHasher()",
|
||
|
"61579a93": "pubkeyIndex()",
|
||
|
"f207564e": "register(uint256)",
|
||
|
"69e4863f": "registerBatch(uint256[])",
|
||
|
"0ad58d2f": "withdraw(uint256,uint256,address)",
|
||
|
"a9d85eba": "withdrawBatch(uint256[],uint256[],address[])",
|
||
|
}
|
||
|
|
||
|
// RLNBin is the compiled bytecode used for deploying new contracts.
|
||
|
var RLNBin = "0x60e06040526000805534801561001457600080fd5b50604051610c33380380610c338339818101604052606081101561003757600080fd5b5080516020820151604090920151608082905260a08390526001831b60c0819052600280546001600160a01b0319166001600160a01b0390931692909217909155909190610b776100bc6000398061037a52806105c352806105e752806106eb52508061047f5250806103f2528061065d52806106c7528061087b5250610b776000f3fe6080604052600436106100915760003560e01c806398366e351161005957806398366e35146101c7578063a9d85eba146101dc578063d0383d68146102f7578063f207564e1461030c578063f220b9ec1461032957610091565b80630ad58d2f14610096578063331b6ab3146100d75780635daf08ca1461010857806361579a931461014457806369e4863f14610159575b600080fd5b3480156100a257600080fd5b506100d5600480360360608110156100b957600080fd5b50803590602081013590604001356001600160a01b031661033e565b005b3480156100e357600080fd5b506100ec61034e565b604080516001600160a01b039092168252519081900360200190f35b34801561011457600080fd5b506101326004803603602081101561012b57600080fd5b503561035d565b60408051918252519081900360200190f35b34801561015057600080fd5b5061013261036f565b6100d56004803603602081101561016f57600080fd5b810190602081018135600160201b81111561018957600080fd5b82018360208201111561019b57600080fd5b803590602001918460208302840111600160201b831117156101bc57600080fd5b509092509050610375565b3480156101d357600080fd5b5061013261047d565b3480156101e857600080fd5b506100d5600480360360608110156101ff57600080fd5b810190602081018135600160201b81111561021957600080fd5b82018360208201111561022b57600080fd5b803590602001918460208302840111600160201b8311171561024c57600080fd5b919390929091602081019035600160201b81111561026957600080fd5b82018360208201111561027b57600080fd5b803590602001918460208302840111600160201b8311171561029c57600080fd5b919390929091602081019035600160201b8111156102b957600080fd5b8201836020820111156102cb57600080fd5b803590602001918460208302840111600160201b831117156102ec57600080fd5b5090925090506104a1565b34801561030357600080fd5b506101326105c1565b6100d56004803603602081101561032257600080fd5b50356105e5565b34801561033557600080fd5b506101326106c5565b6103498383836106e9565b505050565b6002546001600160a01b031681565b60016020526000908152604090205481565b60005481565b6000547f000000000000000000000000000000000000000000000000000000000000000090820111156103ef576040805162461bcd60e51b815260206004820152601f60248201527f524c4e2c20726567697374657242617463683a207365742069732066756c6c00604482015290519081900360640190fd5b347f000000000000000000000000000000000000000000000000000000000000000082021461044f5760405162461bcd60e51b8152600401808060200182810382526037815260200180610a3a6037913960400191505060405180910390fd5b60005b818110156103495761047583838381811061046957fe5b905060200201356108f4565b600101610452565b7f000000000000000000000000000000000000000000000000000000000000000081565b84806104de5760405162461bcd60e51b8152600401808060200182810382526023815260200180610a176023913960400191505060405180910390fd5b80841461051c5760405162461bcd60e51b81526004018080602001828103825260368152602001806109e16036913960400191505060405180910390fd5b80821461055a5760405162461bcd60e51b8152600401808060200182810382526031815260200180610a716031913960400191505060405180910390fd5b60005b818110156105b7576105af88888381811061057457fe5b9050602002013587878481811061058757fe5b9050602002013586868581811061059a57fe5b905060200201356001600160a01b03166106e9565b60010161055d565b5050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f00000000000000000000000000000000000000000000000000000000000000006000541061065b576040805162461bcd60e51b815260206004820152601a60248201527f524c4e2c2072656769737465723a207365742069732066756c6c000000000000604482015290519081900360640190fd5b7f000000000000000000000000000000000000000000000000000000000000000034146106b95760405162461bcd60e51b8152600401808060200182810382526032815260200180610aa26032913960400191505060405180910390fd5b6106c2816108f4565b50565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000082106107475760405162461bcd60e51b8152600401808060200182810382526024815260200180610ad46024913960400
|
||
|
|
||
|
// DeployRLN deploys a new Ethereum contract, binding an instance of RLN to it.
|
||
|
func DeployRLN(auth *bind.TransactOpts, backend bind.ContractBackend, membershipDeposit *big.Int, depth *big.Int, _poseidonHasher common.Address) (common.Address, *types.Transaction, *RLN, error) {
|
||
|
parsed, err := abi.JSON(strings.NewReader(RLNABI))
|
||
|
if err != nil {
|
||
|
return common.Address{}, nil, nil, err
|
||
|
}
|
||
|
|
||
|
address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(RLNBin), backend, membershipDeposit, depth, _poseidonHasher)
|
||
|
if err != nil {
|
||
|
return common.Address{}, nil, nil, err
|
||
|
}
|
||
|
return address, tx, &RLN{RLNCaller: RLNCaller{contract: contract}, RLNTransactor: RLNTransactor{contract: contract}, RLNFilterer: RLNFilterer{contract: contract}}, nil
|
||
|
}
|
||
|
|
||
|
// RLN is an auto generated Go binding around an Ethereum contract.
|
||
|
type RLN struct {
|
||
|
RLNCaller // Read-only binding to the contract
|
||
|
RLNTransactor // Write-only binding to the contract
|
||
|
RLNFilterer // Log filterer for contract events
|
||
|
}
|
||
|
|
||
|
// RLNCaller is an auto generated read-only Go binding around an Ethereum contract.
|
||
|
type RLNCaller struct {
|
||
|
contract *bind.BoundContract // Generic contract wrapper for the low level calls
|
||
|
}
|
||
|
|
||
|
// RLNTransactor is an auto generated write-only Go binding around an Ethereum contract.
|
||
|
type RLNTransactor struct {
|
||
|
contract *bind.BoundContract // Generic contract wrapper for the low level calls
|
||
|
}
|
||
|
|
||
|
// RLNFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
|
||
|
type RLNFilterer struct {
|
||
|
contract *bind.BoundContract // Generic contract wrapper for the low level calls
|
||
|
}
|
||
|
|
||
|
// RLNSession is an auto generated Go binding around an Ethereum contract,
|
||
|
// with pre-set call and transact options.
|
||
|
type RLNSession struct {
|
||
|
Contract *RLN // Generic contract binding to set the session for
|
||
|
CallOpts bind.CallOpts // Call options to use throughout this session
|
||
|
TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
|
||
|
}
|
||
|
|
||
|
// RLNCallerSession is an auto generated read-only Go binding around an Ethereum contract,
|
||
|
// with pre-set call options.
|
||
|
type RLNCallerSession struct {
|
||
|
Contract *RLNCaller // Generic contract caller binding to set the session for
|
||
|
CallOpts bind.CallOpts // Call options to use throughout this session
|
||
|
}
|
||
|
|
||
|
// RLNTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
|
||
|
// with pre-set transact options.
|
||
|
type RLNTransactorSession struct {
|
||
|
Contract *RLNTransactor // Generic contract transactor binding to set the session for
|
||
|
TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
|
||
|
}
|
||
|
|
||
|
// RLNRaw is an auto generated low-level Go binding around an Ethereum contract.
|
||
|
type RLNRaw struct {
|
||
|
Contract *RLN // Generic contract binding to access the raw methods on
|
||
|
}
|
||
|
|
||
|
// RLNCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
|
||
|
type RLNCallerRaw struct {
|
||
|
Contract *RLNCaller // Generic read-only contract binding to access the raw methods on
|
||
|
}
|
||
|
|
||
|
// RLNTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
|
||
|
type RLNTransactorRaw struct {
|
||
|
Contract *RLNTransactor // Generic write-only contract binding to access the raw methods on
|
||
|
}
|
||
|
|
||
|
// NewRLN creates a new instance of RLN, bound to a specific deployed contract.
|
||
|
func NewRLN(address common.Address, backend bind.ContractBackend) (*RLN, error) {
|
||
|
contract, err := bindRLN(address, backend, backend, backend)
|
||
|
if err != nil {
|
||
|
return nil, err
|
||
|
}
|
||
|
return &RLN{RLNCaller: RLNCaller{contract: contract}, RLNTransactor: RLNTransactor{contract: contract}, RLNFilterer: RLNFilterer{contract: contract}}, nil
|
||
|
}
|
||
|
|
||
|
// NewRLNCaller creates a new read-only instance of RLN, bound to a specific deployed contract.
|
||
|
func NewRLNCaller(address common.Address, caller bind.ContractCaller) (*RLNCaller, error) {
|
||
|
contract, err := bindRLN(address, caller, nil, nil)
|
||
|
if err != nil {
|
||
|
return nil, err
|
||
|
}
|
||
|
return &RLNCaller{contract: contract}, nil
|
||
|
}
|
||
|
|
||
|
// NewRLNTransactor creates a new write-only instance of RLN, bound to a specific deployed contract.
|
||
|
func NewRLNTransactor(address common.Address, transactor bind.ContractTransactor) (*RLNTransactor, error) {
|
||
|
contract, err := bindRLN(address, nil, transactor, nil)
|
||
|
if err != nil {
|
||
|
return nil, err
|
||
|
}
|
||
|
return &RLNTransactor{contract: contract}, nil
|
||
|
}
|
||
|
|
||
|
// NewRLNFilterer creates a new log filterer instance of RLN, bound to a specific deployed contract.
|
||
|
func NewRLNFilterer(address common.Address, filterer bind.ContractFilterer) (*RLNFilterer, error) {
|
||
|
contract, err := bindRLN(address, nil, nil, filterer)
|
||
|
if err != nil {
|
||
|
return nil, err
|
||
|
}
|
||
|
return &RLNFilterer{contract: contract}, nil
|
||
|
}
|
||
|
|
||
|
// bindRLN binds a generic wrapper to an already deployed contract.
|
||
|
func bindRLN(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
|
||
|
parsed, err := abi.JSON(strings.NewReader(RLNABI))
|
||
|
if err != nil {
|
||
|
return nil, err
|
||
|
}
|
||
|
return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
|
||
|
}
|
||
|
|
||
|
// Call invokes the (constant) contract method with params as input values and
|
||
|
// sets the output to result. The result type might be a single field for simple
|
||
|
// returns, a slice of interfaces for anonymous returns and a struct for named
|
||
|
// returns.
|
||
|
func (_RLN *RLNRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
|
||
|
return _RLN.Contract.RLNCaller.contract.Call(opts, result, method, params...)
|
||
|
}
|
||
|
|
||
|
// Transfer initiates a plain transaction to move funds to the contract, calling
|
||
|
// its default method if one is available.
|
||
|
func (_RLN *RLNRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
|
||
|
return _RLN.Contract.RLNTransactor.contract.Transfer(opts)
|
||
|
}
|
||
|
|
||
|
// Transact invokes the (paid) contract method with params as input values.
|
||
|
func (_RLN *RLNRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
|
||
|
return _RLN.Contract.RLNTransactor.contract.Transact(opts, method, params...)
|
||
|
}
|
||
|
|
||
|
// Call invokes the (constant) contract method with params as input values and
|
||
|
// sets the output to result. The result type might be a single field for simple
|
||
|
// returns, a slice of interfaces for anonymous returns and a struct for named
|
||
|
// returns.
|
||
|
func (_RLN *RLNCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
|
||
|
return _RLN.Contract.contract.Call(opts, result, method, params...)
|
||
|
}
|
||
|
|
||
|
// Transfer initiates a plain transaction to move funds to the contract, calling
|
||
|
// its default method if one is available.
|
||
|
func (_RLN *RLNTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
|
||
|
return _RLN.Contract.contract.Transfer(opts)
|
||
|
}
|
||
|
|
||
|
// Transact invokes the (paid) contract method with params as input values.
|
||
|
func (_RLN *RLNTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
|
||
|
return _RLN.Contract.contract.Transact(opts, method, params...)
|
||
|
}
|
||
|
|
||
|
// DEPTH is a free data retrieval call binding the contract method 0x98366e35.
|
||
|
//
|
||
|
// Solidity: function DEPTH() view returns(uint256)
|
||
|
func (_RLN *RLNCaller) DEPTH(opts *bind.CallOpts) (*big.Int, error) {
|
||
|
var out []interface{}
|
||
|
err := _RLN.contract.Call(opts, &out, "DEPTH")
|
||
|
|
||
|
if err != nil {
|
||
|
return *new(*big.Int), err
|
||
|
}
|
||
|
|
||
|
out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
|
||
|
|
||
|
return out0, err
|
||
|
|
||
|
}
|
||
|
|
||
|
// DEPTH is a free data retrieval call binding the contract method 0x98366e35.
|
||
|
//
|
||
|
// Solidity: function DEPTH() view returns(uint256)
|
||
|
func (_RLN *RLNSession) DEPTH() (*big.Int, error) {
|
||
|
return _RLN.Contract.DEPTH(&_RLN.CallOpts)
|
||
|
}
|
||
|
|
||
|
// DEPTH is a free data retrieval call binding the contract method 0x98366e35.
|
||
|
//
|
||
|
// Solidity: function DEPTH() view returns(uint256)
|
||
|
func (_RLN *RLNCallerSession) DEPTH() (*big.Int, error) {
|
||
|
return _RLN.Contract.DEPTH(&_RLN.CallOpts)
|
||
|
}
|
||
|
|
||
|
// MEMBERSHIPDEPOSIT is a free data retrieval call binding the contract method 0xf220b9ec.
|
||
|
//
|
||
|
// Solidity: function MEMBERSHIP_DEPOSIT() view returns(uint256)
|
||
|
func (_RLN *RLNCaller) MEMBERSHIPDEPOSIT(opts *bind.CallOpts) (*big.Int, error) {
|
||
|
var out []interface{}
|
||
|
err := _RLN.contract.Call(opts, &out, "MEMBERSHIP_DEPOSIT")
|
||
|
|
||
|
if err != nil {
|
||
|
return *new(*big.Int), err
|
||
|
}
|
||
|
|
||
|
out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
|
||
|
|
||
|
return out0, err
|
||
|
|
||
|
}
|
||
|
|
||
|
// MEMBERSHIPDEPOSIT is a free data retrieval call binding the contract method 0xf220b9ec.
|
||
|
//
|
||
|
// Solidity: function MEMBERSHIP_DEPOSIT() view returns(uint256)
|
||
|
func (_RLN *RLNSession) MEMBERSHIPDEPOSIT() (*big.Int, error) {
|
||
|
return _RLN.Contract.MEMBERSHIPDEPOSIT(&_RLN.CallOpts)
|
||
|
}
|
||
|
|
||
|
// MEMBERSHIPDEPOSIT is a free data retrieval call binding the contract method 0xf220b9ec.
|
||
|
//
|
||
|
// Solidity: function MEMBERSHIP_DEPOSIT() view returns(uint256)
|
||
|
func (_RLN *RLNCallerSession) MEMBERSHIPDEPOSIT() (*big.Int, error) {
|
||
|
return _RLN.Contract.MEMBERSHIPDEPOSIT(&_RLN.CallOpts)
|
||
|
}
|
||
|
|
||
|
// SETSIZE is a free data retrieval call binding the contract method 0xd0383d68.
|
||
|
//
|
||
|
// Solidity: function SET_SIZE() view returns(uint256)
|
||
|
func (_RLN *RLNCaller) SETSIZE(opts *bind.CallOpts) (*big.Int, error) {
|
||
|
var out []interface{}
|
||
|
err := _RLN.contract.Call(opts, &out, "SET_SIZE")
|
||
|
|
||
|
if err != nil {
|
||
|
return *new(*big.Int), err
|
||
|
}
|
||
|
|
||
|
out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
|
||
|
|
||
|
return out0, err
|
||
|
|
||
|
}
|
||
|
|
||
|
// SETSIZE is a free data retrieval call binding the contract method 0xd0383d68.
|
||
|
//
|
||
|
// Solidity: function SET_SIZE() view returns(uint256)
|
||
|
func (_RLN *RLNSession) SETSIZE() (*big.Int, error) {
|
||
|
return _RLN.Contract.SETSIZE(&_RLN.CallOpts)
|
||
|
}
|
||
|
|
||
|
// SETSIZE is a free data retrieval call binding the contract method 0xd0383d68.
|
||
|
//
|
||
|
// Solidity: function SET_SIZE() view returns(uint256)
|
||
|
func (_RLN *RLNCallerSession) SETSIZE() (*big.Int, error) {
|
||
|
return _RLN.Contract.SETSIZE(&_RLN.CallOpts)
|
||
|
}
|
||
|
|
||
|
// Members is a free data retrieval call binding the contract method 0x5daf08ca.
|
||
|
//
|
||
|
// Solidity: function members(uint256 ) view returns(uint256)
|
||
|
func (_RLN *RLNCaller) Members(opts *bind.CallOpts, arg0 *big.Int) (*big.Int, error) {
|
||
|
var out []interface{}
|
||
|
err := _RLN.contract.Call(opts, &out, "members", arg0)
|
||
|
|
||
|
if err != nil {
|
||
|
return *new(*big.Int), err
|
||
|
}
|
||
|
|
||
|
out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
|
||
|
|
||
|
return out0, err
|
||
|
|
||
|
}
|
||
|
|
||
|
// Members is a free data retrieval call binding the contract method 0x5daf08ca.
|
||
|
//
|
||
|
// Solidity: function members(uint256 ) view returns(uint256)
|
||
|
func (_RLN *RLNSession) Members(arg0 *big.Int) (*big.Int, error) {
|
||
|
return _RLN.Contract.Members(&_RLN.CallOpts, arg0)
|
||
|
}
|
||
|
|
||
|
// Members is a free data retrieval call binding the contract method 0x5daf08ca.
|
||
|
//
|
||
|
// Solidity: function members(uint256 ) view returns(uint256)
|
||
|
func (_RLN *RLNCallerSession) Members(arg0 *big.Int) (*big.Int, error) {
|
||
|
return _RLN.Contract.Members(&_RLN.CallOpts, arg0)
|
||
|
}
|
||
|
|
||
|
// PoseidonHasher is a free data retrieval call binding the contract method 0x331b6ab3.
|
||
|
//
|
||
|
// Solidity: function poseidonHasher() view returns(address)
|
||
|
func (_RLN *RLNCaller) PoseidonHasher(opts *bind.CallOpts) (common.Address, error) {
|
||
|
var out []interface{}
|
||
|
err := _RLN.contract.Call(opts, &out, "poseidonHasher")
|
||
|
|
||
|
if err != nil {
|
||
|
return *new(common.Address), err
|
||
|
}
|
||
|
|
||
|
out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
|
||
|
|
||
|
return out0, err
|
||
|
|
||
|
}
|
||
|
|
||
|
// PoseidonHasher is a free data retrieval call binding the contract method 0x331b6ab3.
|
||
|
//
|
||
|
// Solidity: function poseidonHasher() view returns(address)
|
||
|
func (_RLN *RLNSession) PoseidonHasher() (common.Address, error) {
|
||
|
return _RLN.Contract.PoseidonHasher(&_RLN.CallOpts)
|
||
|
}
|
||
|
|
||
|
// PoseidonHasher is a free data retrieval call binding the contract method 0x331b6ab3.
|
||
|
//
|
||
|
// Solidity: function poseidonHasher() view returns(address)
|
||
|
func (_RLN *RLNCallerSession) PoseidonHasher() (common.Address, error) {
|
||
|
return _RLN.Contract.PoseidonHasher(&_RLN.CallOpts)
|
||
|
}
|
||
|
|
||
|
// PubkeyIndex is a free data retrieval call binding the contract method 0x61579a93.
|
||
|
//
|
||
|
// Solidity: function pubkeyIndex() view returns(uint256)
|
||
|
func (_RLN *RLNCaller) PubkeyIndex(opts *bind.CallOpts) (*big.Int, error) {
|
||
|
var out []interface{}
|
||
|
err := _RLN.contract.Call(opts, &out, "pubkeyIndex")
|
||
|
|
||
|
if err != nil {
|
||
|
return *new(*big.Int), err
|
||
|
}
|
||
|
|
||
|
out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
|
||
|
|
||
|
return out0, err
|
||
|
|
||
|
}
|
||
|
|
||
|
// PubkeyIndex is a free data retrieval call binding the contract method 0x61579a93.
|
||
|
//
|
||
|
// Solidity: function pubkeyIndex() view returns(uint256)
|
||
|
func (_RLN *RLNSession) PubkeyIndex() (*big.Int, error) {
|
||
|
return _RLN.Contract.PubkeyIndex(&_RLN.CallOpts)
|
||
|
}
|
||
|
|
||
|
// PubkeyIndex is a free data retrieval call binding the contract method 0x61579a93.
|
||
|
//
|
||
|
// Solidity: function pubkeyIndex() view returns(uint256)
|
||
|
func (_RLN *RLNCallerSession) PubkeyIndex() (*big.Int, error) {
|
||
|
return _RLN.Contract.PubkeyIndex(&_RLN.CallOpts)
|
||
|
}
|
||
|
|
||
|
// Register is a paid mutator transaction binding the contract method 0xf207564e.
|
||
|
//
|
||
|
// Solidity: function register(uint256 pubkey) payable returns()
|
||
|
func (_RLN *RLNTransactor) Register(opts *bind.TransactOpts, pubkey *big.Int) (*types.Transaction, error) {
|
||
|
return _RLN.contract.Transact(opts, "register", pubkey)
|
||
|
}
|
||
|
|
||
|
// Register is a paid mutator transaction binding the contract method 0xf207564e.
|
||
|
//
|
||
|
// Solidity: function register(uint256 pubkey) payable returns()
|
||
|
func (_RLN *RLNSession) Register(pubkey *big.Int) (*types.Transaction, error) {
|
||
|
return _RLN.Contract.Register(&_RLN.TransactOpts, pubkey)
|
||
|
}
|
||
|
|
||
|
// Register is a paid mutator transaction binding the contract method 0xf207564e.
|
||
|
//
|
||
|
// Solidity: function register(uint256 pubkey) payable returns()
|
||
|
func (_RLN *RLNTransactorSession) Register(pubkey *big.Int) (*types.Transaction, error) {
|
||
|
return _RLN.Contract.Register(&_RLN.TransactOpts, pubkey)
|
||
|
}
|
||
|
|
||
|
// RegisterBatch is a paid mutator transaction binding the contract method 0x69e4863f.
|
||
|
//
|
||
|
// Solidity: function registerBatch(uint256[] pubkeys) payable returns()
|
||
|
func (_RLN *RLNTransactor) RegisterBatch(opts *bind.TransactOpts, pubkeys []*big.Int) (*types.Transaction, error) {
|
||
|
return _RLN.contract.Transact(opts, "registerBatch", pubkeys)
|
||
|
}
|
||
|
|
||
|
// RegisterBatch is a paid mutator transaction binding the contract method 0x69e4863f.
|
||
|
//
|
||
|
// Solidity: function registerBatch(uint256[] pubkeys) payable returns()
|
||
|
func (_RLN *RLNSession) RegisterBatch(pubkeys []*big.Int) (*types.Transaction, error) {
|
||
|
return _RLN.Contract.RegisterBatch(&_RLN.TransactOpts, pubkeys)
|
||
|
}
|
||
|
|
||
|
// RegisterBatch is a paid mutator transaction binding the contract method 0x69e4863f.
|
||
|
//
|
||
|
// Solidity: function registerBatch(uint256[] pubkeys) payable returns()
|
||
|
func (_RLN *RLNTransactorSession) RegisterBatch(pubkeys []*big.Int) (*types.Transaction, error) {
|
||
|
return _RLN.Contract.RegisterBatch(&_RLN.TransactOpts, pubkeys)
|
||
|
}
|
||
|
|
||
|
// Withdraw is a paid mutator transaction binding the contract method 0x0ad58d2f.
|
||
|
//
|
||
|
// Solidity: function withdraw(uint256 secret, uint256 _pubkeyIndex, address receiver) returns()
|
||
|
func (_RLN *RLNTransactor) Withdraw(opts *bind.TransactOpts, secret *big.Int, _pubkeyIndex *big.Int, receiver common.Address) (*types.Transaction, error) {
|
||
|
return _RLN.contract.Transact(opts, "withdraw", secret, _pubkeyIndex, receiver)
|
||
|
}
|
||
|
|
||
|
// Withdraw is a paid mutator transaction binding the contract method 0x0ad58d2f.
|
||
|
//
|
||
|
// Solidity: function withdraw(uint256 secret, uint256 _pubkeyIndex, address receiver) returns()
|
||
|
func (_RLN *RLNSession) Withdraw(secret *big.Int, _pubkeyIndex *big.Int, receiver common.Address) (*types.Transaction, error) {
|
||
|
return _RLN.Contract.Withdraw(&_RLN.TransactOpts, secret, _pubkeyIndex, receiver)
|
||
|
}
|
||
|
|
||
|
// Withdraw is a paid mutator transaction binding the contract method 0x0ad58d2f.
|
||
|
//
|
||
|
// Solidity: function withdraw(uint256 secret, uint256 _pubkeyIndex, address receiver) returns()
|
||
|
func (_RLN *RLNTransactorSession) Withdraw(secret *big.Int, _pubkeyIndex *big.Int, receiver common.Address) (*types.Transaction, error) {
|
||
|
return _RLN.Contract.Withdraw(&_RLN.TransactOpts, secret, _pubkeyIndex, receiver)
|
||
|
}
|
||
|
|
||
|
// WithdrawBatch is a paid mutator transaction binding the contract method 0xa9d85eba.
|
||
|
//
|
||
|
// Solidity: function withdrawBatch(uint256[] secrets, uint256[] pubkeyIndexes, address[] receivers) returns()
|
||
|
func (_RLN *RLNTransactor) WithdrawBatch(opts *bind.TransactOpts, secrets []*big.Int, pubkeyIndexes []*big.Int, receivers []common.Address) (*types.Transaction, error) {
|
||
|
return _RLN.contract.Transact(opts, "withdrawBatch", secrets, pubkeyIndexes, receivers)
|
||
|
}
|
||
|
|
||
|
// WithdrawBatch is a paid mutator transaction binding the contract method 0xa9d85eba.
|
||
|
//
|
||
|
// Solidity: function withdrawBatch(uint256[] secrets, uint256[] pubkeyIndexes, address[] receivers) returns()
|
||
|
func (_RLN *RLNSession) WithdrawBatch(secrets []*big.Int, pubkeyIndexes []*big.Int, receivers []common.Address) (*types.Transaction, error) {
|
||
|
return _RLN.Contract.WithdrawBatch(&_RLN.TransactOpts, secrets, pubkeyIndexes, receivers)
|
||
|
}
|
||
|
|
||
|
// WithdrawBatch is a paid mutator transaction binding the contract method 0xa9d85eba.
|
||
|
//
|
||
|
// Solidity: function withdrawBatch(uint256[] secrets, uint256[] pubkeyIndexes, address[] receivers) returns()
|
||
|
func (_RLN *RLNTransactorSession) WithdrawBatch(secrets []*big.Int, pubkeyIndexes []*big.Int, receivers []common.Address) (*types.Transaction, error) {
|
||
|
return _RLN.Contract.WithdrawBatch(&_RLN.TransactOpts, secrets, pubkeyIndexes, receivers)
|
||
|
}
|
||
|
|
||
|
// RLNMemberRegisteredIterator is returned from FilterMemberRegistered and is used to iterate over the raw logs and unpacked data for MemberRegistered events raised by the RLN contract.
|
||
|
type RLNMemberRegisteredIterator struct {
|
||
|
Event *RLNMemberRegistered // Event containing the contract specifics and raw log
|
||
|
|
||
|
contract *bind.BoundContract // Generic contract to use for unpacking event data
|
||
|
event string // Event name to use for unpacking event data
|
||
|
|
||
|
logs chan types.Log // Log channel receiving the found contract events
|
||
|
sub ethereum.Subscription // Subscription for errors, completion and termination
|
||
|
done bool // Whether the subscription completed delivering logs
|
||
|
fail error // Occurred error to stop iteration
|
||
|
}
|
||
|
|
||
|
// Next advances the iterator to the subsequent event, returning whether there
|
||
|
// are any more events found. In case of a retrieval or parsing error, false is
|
||
|
// returned and Error() can be queried for the exact failure.
|
||
|
func (it *RLNMemberRegisteredIterator) Next() bool {
|
||
|
// If the iterator failed, stop iterating
|
||
|
if it.fail != nil {
|
||
|
return false
|
||
|
}
|
||
|
// If the iterator completed, deliver directly whatever's available
|
||
|
if it.done {
|
||
|
select {
|
||
|
case log := <-it.logs:
|
||
|
it.Event = new(RLNMemberRegistered)
|
||
|
if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
|
||
|
it.fail = err
|
||
|
return false
|
||
|
}
|
||
|
it.Event.Raw = log
|
||
|
return true
|
||
|
|
||
|
default:
|
||
|
return false
|
||
|
}
|
||
|
}
|
||
|
// Iterator still in progress, wait for either a data or an error event
|
||
|
select {
|
||
|
case log := <-it.logs:
|
||
|
it.Event = new(RLNMemberRegistered)
|
||
|
if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
|
||
|
it.fail = err
|
||
|
return false
|
||
|
}
|
||
|
it.Event.Raw = log
|
||
|
return true
|
||
|
|
||
|
case err := <-it.sub.Err():
|
||
|
it.done = true
|
||
|
it.fail = err
|
||
|
return it.Next()
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Error returns any retrieval or parsing error occurred during filtering.
|
||
|
func (it *RLNMemberRegisteredIterator) Error() error {
|
||
|
return it.fail
|
||
|
}
|
||
|
|
||
|
// Close terminates the iteration process, releasing any pending underlying
|
||
|
// resources.
|
||
|
func (it *RLNMemberRegisteredIterator) Close() error {
|
||
|
it.sub.Unsubscribe()
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
// RLNMemberRegistered represents a MemberRegistered event raised by the RLN contract.
|
||
|
type RLNMemberRegistered struct {
|
||
|
Pubkey *big.Int
|
||
|
Index *big.Int
|
||
|
Raw types.Log // Blockchain specific contextual infos
|
||
|
}
|
||
|
|
||
|
// FilterMemberRegistered is a free log retrieval operation binding the contract event 0x5a92c2530f207992057b9c3e544108ffce3beda4a63719f316967c49bf6159d2.
|
||
|
//
|
||
|
// Solidity: event MemberRegistered(uint256 indexed pubkey, uint256 indexed index)
|
||
|
func (_RLN *RLNFilterer) FilterMemberRegistered(opts *bind.FilterOpts, pubkey []*big.Int, index []*big.Int) (*RLNMemberRegisteredIterator, error) {
|
||
|
|
||
|
var pubkeyRule []interface{}
|
||
|
for _, pubkeyItem := range pubkey {
|
||
|
pubkeyRule = append(pubkeyRule, pubkeyItem)
|
||
|
}
|
||
|
var indexRule []interface{}
|
||
|
for _, indexItem := range index {
|
||
|
indexRule = append(indexRule, indexItem)
|
||
|
}
|
||
|
|
||
|
logs, sub, err := _RLN.contract.FilterLogs(opts, "MemberRegistered", pubkeyRule, indexRule)
|
||
|
if err != nil {
|
||
|
return nil, err
|
||
|
}
|
||
|
return &RLNMemberRegisteredIterator{contract: _RLN.contract, event: "MemberRegistered", logs: logs, sub: sub}, nil
|
||
|
}
|
||
|
|
||
|
// WatchMemberRegistered is a free log subscription operation binding the contract event 0x5a92c2530f207992057b9c3e544108ffce3beda4a63719f316967c49bf6159d2.
|
||
|
//
|
||
|
// Solidity: event MemberRegistered(uint256 indexed pubkey, uint256 indexed index)
|
||
|
func (_RLN *RLNFilterer) WatchMemberRegistered(opts *bind.WatchOpts, sink chan<- *RLNMemberRegistered, pubkey []*big.Int, index []*big.Int) (event.Subscription, error) {
|
||
|
|
||
|
var pubkeyRule []interface{}
|
||
|
for _, pubkeyItem := range pubkey {
|
||
|
pubkeyRule = append(pubkeyRule, pubkeyItem)
|
||
|
}
|
||
|
var indexRule []interface{}
|
||
|
for _, indexItem := range index {
|
||
|
indexRule = append(indexRule, indexItem)
|
||
|
}
|
||
|
|
||
|
logs, sub, err := _RLN.contract.WatchLogs(opts, "MemberRegistered", pubkeyRule, indexRule)
|
||
|
if err != nil {
|
||
|
return nil, err
|
||
|
}
|
||
|
return event.NewSubscription(func(quit <-chan struct{}) error {
|
||
|
defer sub.Unsubscribe()
|
||
|
for {
|
||
|
select {
|
||
|
case log := <-logs:
|
||
|
// New log arrived, parse the event and forward to the user
|
||
|
event := new(RLNMemberRegistered)
|
||
|
if err := _RLN.contract.UnpackLog(event, "MemberRegistered", log); err != nil {
|
||
|
return err
|
||
|
}
|
||
|
event.Raw = log
|
||
|
|
||
|
select {
|
||
|
case sink <- event:
|
||
|
case err := <-sub.Err():
|
||
|
return err
|
||
|
case <-quit:
|
||
|
return nil
|
||
|
}
|
||
|
case err := <-sub.Err():
|
||
|
return err
|
||
|
case <-quit:
|
||
|
return nil
|
||
|
}
|
||
|
}
|
||
|
}), nil
|
||
|
}
|
||
|
|
||
|
// ParseMemberRegistered is a log parse operation binding the contract event 0x5a92c2530f207992057b9c3e544108ffce3beda4a63719f316967c49bf6159d2.
|
||
|
//
|
||
|
// Solidity: event MemberRegistered(uint256 indexed pubkey, uint256 indexed index)
|
||
|
func (_RLN *RLNFilterer) ParseMemberRegistered(log types.Log) (*RLNMemberRegistered, error) {
|
||
|
event := new(RLNMemberRegistered)
|
||
|
if err := _RLN.contract.UnpackLog(event, "MemberRegistered", log); err != nil {
|
||
|
return nil, err
|
||
|
}
|
||
|
event.Raw = log
|
||
|
return event, nil
|
||
|
}
|
||
|
|
||
|
// RLNMemberWithdrawnIterator is returned from FilterMemberWithdrawn and is used to iterate over the raw logs and unpacked data for MemberWithdrawn events raised by the RLN contract.
|
||
|
type RLNMemberWithdrawnIterator struct {
|
||
|
Event *RLNMemberWithdrawn // Event containing the contract specifics and raw log
|
||
|
|
||
|
contract *bind.BoundContract // Generic contract to use for unpacking event data
|
||
|
event string // Event name to use for unpacking event data
|
||
|
|
||
|
logs chan types.Log // Log channel receiving the found contract events
|
||
|
sub ethereum.Subscription // Subscription for errors, completion and termination
|
||
|
done bool // Whether the subscription completed delivering logs
|
||
|
fail error // Occurred error to stop iteration
|
||
|
}
|
||
|
|
||
|
// Next advances the iterator to the subsequent event, returning whether there
|
||
|
// are any more events found. In case of a retrieval or parsing error, false is
|
||
|
// returned and Error() can be queried for the exact failure.
|
||
|
func (it *RLNMemberWithdrawnIterator) Next() bool {
|
||
|
// If the iterator failed, stop iterating
|
||
|
if it.fail != nil {
|
||
|
return false
|
||
|
}
|
||
|
// If the iterator completed, deliver directly whatever's available
|
||
|
if it.done {
|
||
|
select {
|
||
|
case log := <-it.logs:
|
||
|
it.Event = new(RLNMemberWithdrawn)
|
||
|
if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
|
||
|
it.fail = err
|
||
|
return false
|
||
|
}
|
||
|
it.Event.Raw = log
|
||
|
return true
|
||
|
|
||
|
default:
|
||
|
return false
|
||
|
}
|
||
|
}
|
||
|
// Iterator still in progress, wait for either a data or an error event
|
||
|
select {
|
||
|
case log := <-it.logs:
|
||
|
it.Event = new(RLNMemberWithdrawn)
|
||
|
if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
|
||
|
it.fail = err
|
||
|
return false
|
||
|
}
|
||
|
it.Event.Raw = log
|
||
|
return true
|
||
|
|
||
|
case err := <-it.sub.Err():
|
||
|
it.done = true
|
||
|
it.fail = err
|
||
|
return it.Next()
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Error returns any retrieval or parsing error occurred during filtering.
|
||
|
func (it *RLNMemberWithdrawnIterator) Error() error {
|
||
|
return it.fail
|
||
|
}
|
||
|
|
||
|
// Close terminates the iteration process, releasing any pending underlying
|
||
|
// resources.
|
||
|
func (it *RLNMemberWithdrawnIterator) Close() error {
|
||
|
it.sub.Unsubscribe()
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
// RLNMemberWithdrawn represents a MemberWithdrawn event raised by the RLN contract.
|
||
|
type RLNMemberWithdrawn struct {
|
||
|
Pubkey *big.Int
|
||
|
Index *big.Int
|
||
|
Raw types.Log // Blockchain specific contextual infos
|
||
|
}
|
||
|
|
||
|
// FilterMemberWithdrawn is a free log retrieval operation binding the contract event 0x62ec3a516d22a993ce5cb4e7593e878c74f4d799dde522a88dc27a994fd5a943.
|
||
|
//
|
||
|
// Solidity: event MemberWithdrawn(uint256 indexed pubkey, uint256 indexed index)
|
||
|
func (_RLN *RLNFilterer) FilterMemberWithdrawn(opts *bind.FilterOpts, pubkey []*big.Int, index []*big.Int) (*RLNMemberWithdrawnIterator, error) {
|
||
|
|
||
|
var pubkeyRule []interface{}
|
||
|
for _, pubkeyItem := range pubkey {
|
||
|
pubkeyRule = append(pubkeyRule, pubkeyItem)
|
||
|
}
|
||
|
var indexRule []interface{}
|
||
|
for _, indexItem := range index {
|
||
|
indexRule = append(indexRule, indexItem)
|
||
|
}
|
||
|
|
||
|
logs, sub, err := _RLN.contract.FilterLogs(opts, "MemberWithdrawn", pubkeyRule, indexRule)
|
||
|
if err != nil {
|
||
|
return nil, err
|
||
|
}
|
||
|
return &RLNMemberWithdrawnIterator{contract: _RLN.contract, event: "MemberWithdrawn", logs: logs, sub: sub}, nil
|
||
|
}
|
||
|
|
||
|
// WatchMemberWithdrawn is a free log subscription operation binding the contract event 0x62ec3a516d22a993ce5cb4e7593e878c74f4d799dde522a88dc27a994fd5a943.
|
||
|
//
|
||
|
// Solidity: event MemberWithdrawn(uint256 indexed pubkey, uint256 indexed index)
|
||
|
func (_RLN *RLNFilterer) WatchMemberWithdrawn(opts *bind.WatchOpts, sink chan<- *RLNMemberWithdrawn, pubkey []*big.Int, index []*big.Int) (event.Subscription, error) {
|
||
|
|
||
|
var pubkeyRule []interface{}
|
||
|
for _, pubkeyItem := range pubkey {
|
||
|
pubkeyRule = append(pubkeyRule, pubkeyItem)
|
||
|
}
|
||
|
var indexRule []interface{}
|
||
|
for _, indexItem := range index {
|
||
|
indexRule = append(indexRule, indexItem)
|
||
|
}
|
||
|
|
||
|
logs, sub, err := _RLN.contract.WatchLogs(opts, "MemberWithdrawn", pubkeyRule, indexRule)
|
||
|
if err != nil {
|
||
|
return nil, err
|
||
|
}
|
||
|
return event.NewSubscription(func(quit <-chan struct{}) error {
|
||
|
defer sub.Unsubscribe()
|
||
|
for {
|
||
|
select {
|
||
|
case log := <-logs:
|
||
|
// New log arrived, parse the event and forward to the user
|
||
|
event := new(RLNMemberWithdrawn)
|
||
|
if err := _RLN.contract.UnpackLog(event, "MemberWithdrawn", log); err != nil {
|
||
|
return err
|
||
|
}
|
||
|
event.Raw = log
|
||
|
|
||
|
select {
|
||
|
case sink <- event:
|
||
|
case err := <-sub.Err():
|
||
|
return err
|
||
|
case <-quit:
|
||
|
return nil
|
||
|
}
|
||
|
case err := <-sub.Err():
|
||
|
return err
|
||
|
case <-quit:
|
||
|
return nil
|
||
|
}
|
||
|
}
|
||
|
}), nil
|
||
|
}
|
||
|
|
||
|
// ParseMemberWithdrawn is a log parse operation binding the contract event 0x62ec3a516d22a993ce5cb4e7593e878c74f4d799dde522a88dc27a994fd5a943.
|
||
|
//
|
||
|
// Solidity: event MemberWithdrawn(uint256 indexed pubkey, uint256 indexed index)
|
||
|
func (_RLN *RLNFilterer) ParseMemberWithdrawn(log types.Log) (*RLNMemberWithdrawn, error) {
|
||
|
event := new(RLNMemberWithdrawn)
|
||
|
if err := _RLN.contract.UnpackLog(event, "MemberWithdrawn", log); err != nil {
|
||
|
return nil, err
|
||
|
}
|
||
|
event.Raw = log
|
||
|
return event, nil
|
||
|
}
|