$addresses * @return array */ public static function successfulSweepSet(array $addresses): array { $addresses = array_values(array_unique(array_filter( $addresses, static fn ($address) => is_string($address) && $address !== '' ))); if ($addresses === []) { return []; } $found = static::query() ->whereIn('from_address', $addresses) ->where('status', self::STATUS_SUCCESS) ->where('type', self::TYPE_OUT) ->distinct() ->pluck('from_address'); $set = []; foreach ($found as $address) { $set[(string) $address] = true; $set[strtolower((string) $address)] = true; } return $set; } /** * @param array $set */ public static function addressInSweepSet(string $address, array $set): bool { return isset($set[$address]) || isset($set[strtolower($address)]); } }