func (_Sigmacore *SigmacoreFilterer) FilterLOGJOIN(opts *bind.FilterOpts, caller []common.Address, tokenIn []common.Address) (*SigmacoreLOGJOINIterator, error) {

	var callerRule []interface{}
	for _, callerItem := range caller {
		callerRule = append(callerRule, callerItem)
	}
	var tokenInRule []interface{}
	for _, tokenInItem := range tokenIn {
		tokenInRule = append(tokenInRule, tokenInItem)
	}

	logs, sub, err := _Sigmacore.contract.FilterLogs(opts, "LOG_JOIN", callerRule, tokenInRule)
	if err != nil {
		return nil, err
	}
	return &SigmacoreLOGJOINIterator{contract: _Sigmacore.contract, event: "LOG_JOIN", logs: logs, sub: sub}, nil
}
// FilterLOGJOIN is a free log retrieval operation binding the contract event 0x63982df10efd8dfaaaa0fcc7f50b2d93b7cba26ccc48adee2873220d485dc39a.
//
// Solidity: event LOG_JOIN(address indexed caller, address indexed tokenIn, uint256 tokenAmountIn)


event LOG_JOIN(address indexed caller, address indexed tokenIn, uint256 tokenAmountIn)
// FilterLOGJOIN is a free log retrieval operation binding the contract event 0x63982df10efd8dfaaaa0fcc7f50b2d93b7cba26ccc48adee2873220d485dc39a . // // Solidity : event LOG_JOIN ( address indexed caller address indexed tokenIn uint256 tokenAmountIn )
func (_Sigmacore *SigmacoreFilterer) FilterLOGJOIN(opts *bind.FilterOpts, caller []common.Address, tokenIn []common.Address) (*SigmacoreLOGJOINIterator, error) {
	var callerRule []interface{}
	for _, callerItem := range caller {
		callerRule = append(callerRule, callerItem)
	}
	var tokenInRule []interface{}
	for _, tokenInItem := range tokenIn {
		tokenInRule = append(tokenInRule, tokenInItem)
	}
	logs, sub, err := _Sigmacore.contract.FilterLogs(opts, "LOG_JOIN", callerRule, tokenInRule)
	if err != nil {
		return nil, err
	}
	return &SigmacoreLOGJOINIterator{contract: _Sigmacore.contract, event: "LOG_JOIN", logs: logs, sub: sub}, nil
}
func ( _Sigmacore * SigmacoreFilterer ) FilterLOGJOIN ( opts * bind . FilterOpts , caller [ ] common . Address , tokenIn [ ] common . Address ) ( * SigmacoreLOGJOINIterator , error ) { var callerRule [ ] interface { } for _ , callerItem := range caller { callerRule = append ( callerRule , callerItem ) } var tokenInRule [ ] interface { } for _ , tokenInItem := range tokenIn { tokenInRule = append ( tokenInRule , tokenInItem ) } logs , sub , err := _Sigmacore . contract . FilterLogs ( opts , " " , callerRule , tokenInRule ) if err != nil { return nil , err } return & SigmacoreLOGJOINIterator { contract : _Sigmacore . contract , event : " " , logs : logs , sub : sub } , nil }