func (_Sigmacore *SigmacoreFilterer) FilterLOGSWAP(opts *bind.FilterOpts, caller []common.Address, tokenIn []common.Address, tokenOut []common.Address) (*SigmacoreLOGSWAPIterator, error) {

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

	logs, sub, err := _Sigmacore.contract.FilterLogs(opts, "LOG_SWAP", callerRule, tokenInRule, tokenOutRule)
	if err != nil {
		return nil, err
	}
	return &SigmacoreLOGSWAPIterator{contract: _Sigmacore.contract, event: "LOG_SWAP", logs: logs, sub: sub}, nil
}
// FilterLOGSWAP is a free log retrieval operation binding the contract event 0x908fb5ee8f16c6bc9bc3690973819f32a4d4b10188134543c88706e0e1d43378.
//
// Solidity: event LOG_SWAP(address indexed caller, address indexed tokenIn, address indexed tokenOut, uint256 tokenAmountIn, uint256 tokenAmountOut)


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