2022-07-28 14:04:33 +00:00
// 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.
2022-08-15 17:14:07 +00:00
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\":false,\"internalType\":\"uint256\",\"name\":\"pubkey\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"MemberRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"pubkey\",\"type\":\"uint256\"},{\"indexed\":false,\"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\"}]"
2022-07-28 14:04:33 +00:00
// 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.
2022-08-15 17:14:07 +00:00
var RLNBin = " 0x60e06040526000805534801561001457600080fd5b50604051610c4f380380610c4f8339818101604052606081101561003757600080fd5b5080516020820151604090920151608082905260a08390526001831b60c0819052600280546001600160a01b0319166001600160a01b0390931692909217909155909190610b936100bc6000398061037a52806105c352806105e752806106eb52508061047f5250806103f2528061065d52806106c7528061087b5250610b936000f3fe6080604052600436106100915760003560e01c806398366e351161005957806398366e35146101c7578063a9d85eba146101dc578063d0383d68146102f7578063f207564e1461030c578063f220b9ec1461032957610091565b80630ad58d2f14610096578063331b6ab3146100d75780635daf08ca1461010857806361579a931461014457806369e4863f14610159575b600080fd5b3480156100a257600080fd5b506100d5600480360360608110156100b957600080fd5b50803590602081013590604001356001600160a01b031661033e565b005b3480156100e357600080fd5b506100ec61034e565b604080516001600160a01b039092168252519081900360200190f35b34801561011457600080fd5b506101326004803603602081101561012b57600080fd5b503561035d565b60408051918252519081900360200190f35b34801561015057600080fd5b5061013261036f565b6100d56004803603602081101561016f57600080fd5b810190602081018135600160201b81111561018957600080fd5b82018360208201111561019b57600080fd5b803590602001918460208302840111600160201b831117156101bc57600080fd5b509092509050610375565b3480156101d357600080fd5b5061013261047d565b3480156101e857600080fd5b506100d5600480360360608110156101ff57600080fd5b810190602081018135600160201b81111561021957600080fd5b82018360208201111561022b57600080fd5b803590602001918460208302840111600160201b8311171561024c57600080fd5b919390929091602081019035600160201b81111561026957600080fd5b82018360208201111561027b57600080fd5b803590602001918460208302840111600160201b8311171561029c57600080fd5b919390929091602081019035600160201b8111156102b957600080fd5b8201836020820111156102cb57600080fd5b803590602001918460208302840111600160201b831117156102ec57600080fd5b5090925090506104a1565b34801561030357600080fd5b506101326105c1565b6100d56004803603602081101561032257600080fd5b50356105e5565b34801561033557600080fd5b506101326106c5565b6103498383836106e9565b505050565b6002546001600160a01b031681565b60016020526000908152604090205481565b60005481565b6000547f000000000000000000000000000000000000000000000000000000000000000090820111156103ef576040805162461bcd60e51b815260206004820152601f60248201527f524c4e2c20726567697374657242617463683a207365742069732066756c6c00604482015290519081900360640190fd5b347f000000000000000000000000000000000000000000000000000000000000000082021461044f5760405162461bcd60e51b8152600401808060200182810382526037815260200180610a566037913960400191505060405180910390fd5b60005b818110156103495761047583838381811061046957fe5b90506020020135610902565b600101610452565b7f000000000000000000000000000000000000000000000000000000000000000081565b84806104de5760405162461bcd60e51b8152600401808060200182810382526023815260200180610a336023913960400191505060405180910390fd5b80841461051c5760405162461bcd60e51b81526004018080602001828103825260368152602001806109fd6036913960400191505060405180910390fd5b80821461055a5760405162461bcd60e51b8152600401808060200182810382526031815260200180610a8d6031913960400191505060405180910390fd5b60005b818110156105b7576105af88888381811061057457fe5b9050602002013587878481811061058757fe5b9050602002013586868581811061059a57fe5b905060200201356001600160a01b03166106e9565b60010161055d565b5050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f00000000000000000000000000000000000000000000000000000000000000006000541061065b576040805162461bcd60e51b815260206004820152601a60248201527f524c4e2c2072656769737465723a207365742069732066756c6c000000000000604482015290519081900360640190fd5b7f000000000000000000000000000000000000000000000000000000000000000034146106b95760405162461bcd60e51b8152600401808060200182810382526032815260200180610abe6032913960400191505060405180910390fd5b6106c281610902565b50565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000082106107475760405162461bcd60e51b8152600401808060200182810382526024815260200180610af06024913960400
2022-07-28 14:04:33 +00:00
// 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.
//
2022-08-15 17:14:07 +00:00
// Solidity: event MemberRegistered(uint256 pubkey, uint256 index)
func ( _RLN * RLNFilterer ) FilterMemberRegistered ( opts * bind . FilterOpts ) ( * RLNMemberRegisteredIterator , error ) {
2022-07-28 14:04:33 +00:00
2022-08-15 17:14:07 +00:00
logs , sub , err := _RLN . contract . FilterLogs ( opts , "MemberRegistered" )
2022-07-28 14:04:33 +00:00
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.
//
2022-08-15 17:14:07 +00:00
// Solidity: event MemberRegistered(uint256 pubkey, uint256 index)
func ( _RLN * RLNFilterer ) WatchMemberRegistered ( opts * bind . WatchOpts , sink chan <- * RLNMemberRegistered ) ( event . Subscription , error ) {
2022-07-28 14:04:33 +00:00
2022-08-15 17:14:07 +00:00
logs , sub , err := _RLN . contract . WatchLogs ( opts , "MemberRegistered" )
2022-07-28 14:04:33 +00:00
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.
//
2022-08-15 17:14:07 +00:00
// Solidity: event MemberRegistered(uint256 pubkey, uint256 index)
2022-07-28 14:04:33 +00:00
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.
//
2022-08-15 17:14:07 +00:00
// Solidity: event MemberWithdrawn(uint256 pubkey, uint256 index)
func ( _RLN * RLNFilterer ) FilterMemberWithdrawn ( opts * bind . FilterOpts ) ( * RLNMemberWithdrawnIterator , error ) {
2022-07-28 14:04:33 +00:00
2022-08-15 17:14:07 +00:00
logs , sub , err := _RLN . contract . FilterLogs ( opts , "MemberWithdrawn" )
2022-07-28 14:04:33 +00:00
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.
//
2022-08-15 17:14:07 +00:00
// Solidity: event MemberWithdrawn(uint256 pubkey, uint256 index)
func ( _RLN * RLNFilterer ) WatchMemberWithdrawn ( opts * bind . WatchOpts , sink chan <- * RLNMemberWithdrawn ) ( event . Subscription , error ) {
2022-07-28 14:04:33 +00:00
2022-08-15 17:14:07 +00:00
logs , sub , err := _RLN . contract . WatchLogs ( opts , "MemberWithdrawn" )
2022-07-28 14:04:33 +00:00
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.
//
2022-08-15 17:14:07 +00:00
// Solidity: event MemberWithdrawn(uint256 pubkey, uint256 index)
2022-07-28 14:04:33 +00:00
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
}