The Swift Package Index logo.Swift Package Index

Track the adoption of Swift 6 strict concurrency checks for data race safety. How many packages are Ready for Swift 6?

Build Information

Failed to build CryptoScraper, reference main (66a6dd), with Swift 6.0 for Linux on 3 Nov 2024 00:21:02 UTC.

Build Command

bash -c docker run --pull=always --rm -v "checkouts-4606859-0":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:basic-6.0-latest swift build --triple x86_64-unknown-linux-gnu -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete 2>&1

Build Log

 7 |
 8 | /// A straightforward implementation of ``TokenInfo``
 9 | public struct SimpleTokenInfo<Contract: CryptoContract>: TokenInfo {
   |               `- note: consider making generic struct 'SimpleTokenInfo' conform to the 'Sendable' protocol
10 |     public let contractAddress: Contract
11 |     public let equivalentContracts: Set<Contract>
/host/spi-builder-workspace/Sources/CryptoScraper/DataAggregators/CoinGecko/CoinGeckoError.swift:9:16: warning: stored property 'status' of 'Sendable'-conforming struct 'CoinGeckoError' has non-sendable type 'CoinGeckoError.ErrorStatus'; this is an error in the Swift 6 language mode
 7 |
 8 | public struct CoinGeckoError: Decodable, Error {
 9 |     public let status: ErrorStatus
   |                `- warning: stored property 'status' of 'Sendable'-conforming struct 'CoinGeckoError' has non-sendable type 'CoinGeckoError.ErrorStatus'; this is an error in the Swift 6 language mode
10 |
11 |     public var rateLimitReached: Bool {
   :
13 |     }
14 |
15 |     public struct ErrorStatus: Decodable {
   |                   `- note: consider making struct 'ErrorStatus' conform to the 'Sendable' protocol
16 |         public let errorCode: Int
17 |         public let errorMessage: String
/host/spi-builder-workspace/Sources/CryptoScraper/DataAggregators/CoinMarketCap/CoinMarketCapAggregator+Coins.swift:130:13: warning: var 'unknownChain' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
128 | }
129 |
130 | private var unknownChain = Set<String>()
    |             |- warning: var 'unknownChain' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |             |- note: convert 'unknownChain' to a 'let' constant to make 'Sendable' shared state immutable
    |             |- note: annotate 'unknownChain' with '@MainActor' if property should only be accessed from the main actor
    |             `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
131 |
132 | private extension String {
/host/spi-builder-workspace/Sources/CryptoScraper/DataAggregators/CoinMarketCap/CoinMarketCapAggregator+Coins.swift:20:18: warning: non-sendable type 'CurrencyMapResponse' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
 18 |             response = try await Self.endPoint
 19 |                 .appending(path: "v1/cryptocurrency/map")
 20 |                 .fetch(
    |                  `- warning: non-sendable type 'CurrencyMapResponse' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
 21 |                     headers: headers(),
 22 |                     errorType: CoinMarketCapResponseError.self
    :
 39 | }
 40 |
 41 | struct CurrencyMapResponse: Decodable {
    |        `- note: consider making struct 'CurrencyMapResponse' conform to the 'Sendable' protocol
 42 |     fileprivate let data: [CurrencyMapItem]
 43 |     let status: CoinMarketCapError.ErrorStatus
/host/spi-builder-workspace/Sources/CryptoScraper/DataAggregators/CoinMarketCap/CoinMarketCapAggregator+Coins.swift:12:10: warning: non-sendable type 'Set<SimpleTokenInfo<Contract>>' returned by actor-isolated instance method 'tokens(for:)' satisfying protocol requirement cannot cross actor boundary; this is an error in the Swift 6 language mode
 10 |     ///
 11 |     /// - See also: https://coinmarketcap.com/api/documentation/v1/#operation/getV1CryptocurrencyMap
 12 |     func tokens<Contract: CryptoContract>(for contract: Contract.Type) async throws -> Set<SimpleTokenInfo<Contract>> {
    |          `- warning: non-sendable type 'Set<SimpleTokenInfo<Contract>>' returned by actor-isolated instance method 'tokens(for:)' satisfying protocol requirement cannot cross actor boundary; this is an error in the Swift 6 language mode
 13 |         let response: CurrencyMapResponse
 14 |
/host/spi-builder-workspace/Sources/CryptoScraper/Protocols/SimpleTokenInfo.swift:9:15: note: consider making generic struct 'SimpleTokenInfo' conform to the 'Sendable' protocol
 7 |
 8 | /// A straightforward implementation of ``TokenInfo``
 9 | public struct SimpleTokenInfo<Contract: CryptoContract>: TokenInfo {
   |               `- note: consider making generic struct 'SimpleTokenInfo' conform to the 'Sendable' protocol
10 |     public let contractAddress: Contract
11 |     public let equivalentContracts: Set<Contract>
/host/spi-builder-workspace/Sources/CryptoScraper/DataAggregators/CoinMarketCap/CoinMarketCapError.swift:12:16: warning: stored property 'status' of 'Sendable'-conforming struct 'CoinMarketCapError' has non-sendable type 'CoinMarketCapError.ErrorStatus'; this is an error in the Swift 6 language mode
10 | /// - See also: https://coinmarketcap.com/api/documentation/v1/#section/Standards-and-Conventions
11 | public struct CoinMarketCapError: Decodable, Error {
12 |     public let status: ErrorStatus
   |                `- warning: stored property 'status' of 'Sendable'-conforming struct 'CoinMarketCapError' has non-sendable type 'CoinMarketCapError.ErrorStatus'; this is an error in the Swift 6 language mode
13 |
14 |     /// Returns **true** when the API Key's rate limit was exceeded
   :
17 |     }
18 |
19 |     public struct ErrorStatus: Decodable {
   |                   `- note: consider making struct 'ErrorStatus' conform to the 'Sendable' protocol
20 |         public let timestamp: String
21 |         public let errorCode: Int
/host/spi-builder-workspace/Sources/CryptoScraper/Extensions/UInt128+Codable.swift:33:46: error: generic parameter 'Magnitude' could not be inferred
31 | extension NBKDoubleWidth {
32 |     @inlinable init(stringLiteral source: String) {
33 |         let decoder = NBK.IntegerDescription.DecoderDecodingRadix()
   |                                              |- error: generic parameter 'Magnitude' could not be inferred
   |                                              `- note: explicitly specify the generic arguments to fix this issue
34 |         if let value: Self = decoder.decode(source) { self = value } else {
35 |             fatalError("Unable to convert \(source) to NBKDoubleWidth")
[1926/1959] Compiling CryptoScraper Exports.swift
/host/spi-builder-workspace/Sources/CryptoScraper/DataAggregators/CoinGecko/CoinGeckoAggregator+Coins.swift:100:13: warning: var 'unknownChain' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 98 | }
 99 |
100 | private var unknownChain = Set<String>()
    |             |- warning: var 'unknownChain' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |             |- note: convert 'unknownChain' to a 'let' constant to make 'Sendable' shared state immutable
    |             |- note: annotate 'unknownChain' with '@MainActor' if property should only be accessed from the main actor
    |             `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
101 |
102 | private extension String {
/host/spi-builder-workspace/Sources/CryptoScraper/DataAggregators/CoinGecko/CoinGeckoAggregator+Coins.swift:10:10: warning: non-sendable type 'Set<SimpleTokenInfo<Contract>>' returned by actor-isolated instance method 'tokens(for:)' satisfying protocol requirement cannot cross actor boundary; this is an error in the Swift 6 language mode
  8 | public extension CoinGeckoAggregator {
  9 |     /// Returns the known tokens for a given ``CryptoContract`` type
 10 |     func tokens<Contract: CryptoContract>(for contract: Contract.Type) async throws -> Set<SimpleTokenInfo<Contract>> {
    |          `- warning: non-sendable type 'Set<SimpleTokenInfo<Contract>>' returned by actor-isolated instance method 'tokens(for:)' satisfying protocol requirement cannot cross actor boundary; this is an error in the Swift 6 language mode
 11 |         let response: [CoinGeckoTokenResponse]
 12 |         if let cachedTokensResponse {
/host/spi-builder-workspace/Sources/CryptoScraper/Protocols/SimpleTokenInfo.swift:9:15: note: consider making generic struct 'SimpleTokenInfo' conform to the 'Sendable' protocol
 7 |
 8 | /// A straightforward implementation of ``TokenInfo``
 9 | public struct SimpleTokenInfo<Contract: CryptoContract>: TokenInfo {
   |               `- note: consider making generic struct 'SimpleTokenInfo' conform to the 'Sendable' protocol
10 |     public let contractAddress: Contract
11 |     public let equivalentContracts: Set<Contract>
/host/spi-builder-workspace/Sources/CryptoScraper/DataAggregators/CoinGecko/CoinGeckoError.swift:9:16: warning: stored property 'status' of 'Sendable'-conforming struct 'CoinGeckoError' has non-sendable type 'CoinGeckoError.ErrorStatus'; this is an error in the Swift 6 language mode
 7 |
 8 | public struct CoinGeckoError: Decodable, Error {
 9 |     public let status: ErrorStatus
   |                `- warning: stored property 'status' of 'Sendable'-conforming struct 'CoinGeckoError' has non-sendable type 'CoinGeckoError.ErrorStatus'; this is an error in the Swift 6 language mode
10 |
11 |     public var rateLimitReached: Bool {
   :
13 |     }
14 |
15 |     public struct ErrorStatus: Decodable {
   |                   `- note: consider making struct 'ErrorStatus' conform to the 'Sendable' protocol
16 |         public let errorCode: Int
17 |         public let errorMessage: String
/host/spi-builder-workspace/Sources/CryptoScraper/DataAggregators/CoinMarketCap/CoinMarketCapAggregator+Coins.swift:130:13: warning: var 'unknownChain' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
128 | }
129 |
130 | private var unknownChain = Set<String>()
    |             |- warning: var 'unknownChain' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |             |- note: convert 'unknownChain' to a 'let' constant to make 'Sendable' shared state immutable
    |             |- note: annotate 'unknownChain' with '@MainActor' if property should only be accessed from the main actor
    |             `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
131 |
132 | private extension String {
/host/spi-builder-workspace/Sources/CryptoScraper/DataAggregators/CoinMarketCap/CoinMarketCapAggregator+Coins.swift:20:18: warning: non-sendable type 'CurrencyMapResponse' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
 18 |             response = try await Self.endPoint
 19 |                 .appending(path: "v1/cryptocurrency/map")
 20 |                 .fetch(
    |                  `- warning: non-sendable type 'CurrencyMapResponse' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
 21 |                     headers: headers(),
 22 |                     errorType: CoinMarketCapResponseError.self
    :
 39 | }
 40 |
 41 | struct CurrencyMapResponse: Decodable {
    |        `- note: consider making struct 'CurrencyMapResponse' conform to the 'Sendable' protocol
 42 |     fileprivate let data: [CurrencyMapItem]
 43 |     let status: CoinMarketCapError.ErrorStatus
/host/spi-builder-workspace/Sources/CryptoScraper/DataAggregators/CoinMarketCap/CoinMarketCapAggregator+Coins.swift:12:10: warning: non-sendable type 'Set<SimpleTokenInfo<Contract>>' returned by actor-isolated instance method 'tokens(for:)' satisfying protocol requirement cannot cross actor boundary; this is an error in the Swift 6 language mode
 10 |     ///
 11 |     /// - See also: https://coinmarketcap.com/api/documentation/v1/#operation/getV1CryptocurrencyMap
 12 |     func tokens<Contract: CryptoContract>(for contract: Contract.Type) async throws -> Set<SimpleTokenInfo<Contract>> {
    |          `- warning: non-sendable type 'Set<SimpleTokenInfo<Contract>>' returned by actor-isolated instance method 'tokens(for:)' satisfying protocol requirement cannot cross actor boundary; this is an error in the Swift 6 language mode
 13 |         let response: CurrencyMapResponse
 14 |
/host/spi-builder-workspace/Sources/CryptoScraper/Protocols/SimpleTokenInfo.swift:9:15: note: consider making generic struct 'SimpleTokenInfo' conform to the 'Sendable' protocol
 7 |
 8 | /// A straightforward implementation of ``TokenInfo``
 9 | public struct SimpleTokenInfo<Contract: CryptoContract>: TokenInfo {
   |               `- note: consider making generic struct 'SimpleTokenInfo' conform to the 'Sendable' protocol
10 |     public let contractAddress: Contract
11 |     public let equivalentContracts: Set<Contract>
/host/spi-builder-workspace/Sources/CryptoScraper/DataAggregators/CoinMarketCap/CoinMarketCapError.swift:12:16: warning: stored property 'status' of 'Sendable'-conforming struct 'CoinMarketCapError' has non-sendable type 'CoinMarketCapError.ErrorStatus'; this is an error in the Swift 6 language mode
10 | /// - See also: https://coinmarketcap.com/api/documentation/v1/#section/Standards-and-Conventions
11 | public struct CoinMarketCapError: Decodable, Error {
12 |     public let status: ErrorStatus
   |                `- warning: stored property 'status' of 'Sendable'-conforming struct 'CoinMarketCapError' has non-sendable type 'CoinMarketCapError.ErrorStatus'; this is an error in the Swift 6 language mode
13 |
14 |     /// Returns **true** when the API Key's rate limit was exceeded
   :
17 |     }
18 |
19 |     public struct ErrorStatus: Decodable {
   |                   `- note: consider making struct 'ErrorStatus' conform to the 'Sendable' protocol
20 |         public let timestamp: String
21 |         public let errorCode: Int
/host/spi-builder-workspace/Sources/CryptoScraper/Extensions/UInt128+Codable.swift:33:46: error: generic parameter 'Magnitude' could not be inferred
31 | extension NBKDoubleWidth {
32 |     @inlinable init(stringLiteral source: String) {
33 |         let decoder = NBK.IntegerDescription.DecoderDecodingRadix()
   |                                              |- error: generic parameter 'Magnitude' could not be inferred
   |                                              `- note: explicitly specify the generic arguments to fix this issue
34 |         if let value: Self = decoder.decode(source) { self = value } else {
35 |             fatalError("Unable to convert \(source) to NBKDoubleWidth")
[1927/1959] Compiling CryptoScraper UInt128+Codable.swift
/host/spi-builder-workspace/Sources/CryptoScraper/DataAggregators/CoinGecko/CoinGeckoAggregator+Coins.swift:100:13: warning: var 'unknownChain' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 98 | }
 99 |
100 | private var unknownChain = Set<String>()
    |             |- warning: var 'unknownChain' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |             |- note: convert 'unknownChain' to a 'let' constant to make 'Sendable' shared state immutable
    |             |- note: annotate 'unknownChain' with '@MainActor' if property should only be accessed from the main actor
    |             `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
101 |
102 | private extension String {
/host/spi-builder-workspace/Sources/CryptoScraper/DataAggregators/CoinGecko/CoinGeckoAggregator+Coins.swift:10:10: warning: non-sendable type 'Set<SimpleTokenInfo<Contract>>' returned by actor-isolated instance method 'tokens(for:)' satisfying protocol requirement cannot cross actor boundary; this is an error in the Swift 6 language mode
  8 | public extension CoinGeckoAggregator {
  9 |     /// Returns the known tokens for a given ``CryptoContract`` type
 10 |     func tokens<Contract: CryptoContract>(for contract: Contract.Type) async throws -> Set<SimpleTokenInfo<Contract>> {
    |          `- warning: non-sendable type 'Set<SimpleTokenInfo<Contract>>' returned by actor-isolated instance method 'tokens(for:)' satisfying protocol requirement cannot cross actor boundary; this is an error in the Swift 6 language mode
 11 |         let response: [CoinGeckoTokenResponse]
 12 |         if let cachedTokensResponse {
/host/spi-builder-workspace/Sources/CryptoScraper/Protocols/SimpleTokenInfo.swift:9:15: note: consider making generic struct 'SimpleTokenInfo' conform to the 'Sendable' protocol
 7 |
 8 | /// A straightforward implementation of ``TokenInfo``
 9 | public struct SimpleTokenInfo<Contract: CryptoContract>: TokenInfo {
   |               `- note: consider making generic struct 'SimpleTokenInfo' conform to the 'Sendable' protocol
10 |     public let contractAddress: Contract
11 |     public let equivalentContracts: Set<Contract>
/host/spi-builder-workspace/Sources/CryptoScraper/DataAggregators/CoinGecko/CoinGeckoError.swift:9:16: warning: stored property 'status' of 'Sendable'-conforming struct 'CoinGeckoError' has non-sendable type 'CoinGeckoError.ErrorStatus'; this is an error in the Swift 6 language mode
 7 |
 8 | public struct CoinGeckoError: Decodable, Error {
 9 |     public let status: ErrorStatus
   |                `- warning: stored property 'status' of 'Sendable'-conforming struct 'CoinGeckoError' has non-sendable type 'CoinGeckoError.ErrorStatus'; this is an error in the Swift 6 language mode
10 |
11 |     public var rateLimitReached: Bool {
   :
13 |     }
14 |
15 |     public struct ErrorStatus: Decodable {
   |                   `- note: consider making struct 'ErrorStatus' conform to the 'Sendable' protocol
16 |         public let errorCode: Int
17 |         public let errorMessage: String
/host/spi-builder-workspace/Sources/CryptoScraper/DataAggregators/CoinMarketCap/CoinMarketCapAggregator+Coins.swift:130:13: warning: var 'unknownChain' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
128 | }
129 |
130 | private var unknownChain = Set<String>()
    |             |- warning: var 'unknownChain' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |             |- note: convert 'unknownChain' to a 'let' constant to make 'Sendable' shared state immutable
    |             |- note: annotate 'unknownChain' with '@MainActor' if property should only be accessed from the main actor
    |             `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
131 |
132 | private extension String {
/host/spi-builder-workspace/Sources/CryptoScraper/DataAggregators/CoinMarketCap/CoinMarketCapAggregator+Coins.swift:20:18: warning: non-sendable type 'CurrencyMapResponse' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
 18 |             response = try await Self.endPoint
 19 |                 .appending(path: "v1/cryptocurrency/map")
 20 |                 .fetch(
    |                  `- warning: non-sendable type 'CurrencyMapResponse' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
 21 |                     headers: headers(),
 22 |                     errorType: CoinMarketCapResponseError.self
    :
 39 | }
 40 |
 41 | struct CurrencyMapResponse: Decodable {
    |        `- note: consider making struct 'CurrencyMapResponse' conform to the 'Sendable' protocol
 42 |     fileprivate let data: [CurrencyMapItem]
 43 |     let status: CoinMarketCapError.ErrorStatus
/host/spi-builder-workspace/Sources/CryptoScraper/DataAggregators/CoinMarketCap/CoinMarketCapAggregator+Coins.swift:12:10: warning: non-sendable type 'Set<SimpleTokenInfo<Contract>>' returned by actor-isolated instance method 'tokens(for:)' satisfying protocol requirement cannot cross actor boundary; this is an error in the Swift 6 language mode
 10 |     ///
 11 |     /// - See also: https://coinmarketcap.com/api/documentation/v1/#operation/getV1CryptocurrencyMap
 12 |     func tokens<Contract: CryptoContract>(for contract: Contract.Type) async throws -> Set<SimpleTokenInfo<Contract>> {
    |          `- warning: non-sendable type 'Set<SimpleTokenInfo<Contract>>' returned by actor-isolated instance method 'tokens(for:)' satisfying protocol requirement cannot cross actor boundary; this is an error in the Swift 6 language mode
 13 |         let response: CurrencyMapResponse
 14 |
/host/spi-builder-workspace/Sources/CryptoScraper/Protocols/SimpleTokenInfo.swift:9:15: note: consider making generic struct 'SimpleTokenInfo' conform to the 'Sendable' protocol
 7 |
 8 | /// A straightforward implementation of ``TokenInfo``
 9 | public struct SimpleTokenInfo<Contract: CryptoContract>: TokenInfo {
   |               `- note: consider making generic struct 'SimpleTokenInfo' conform to the 'Sendable' protocol
10 |     public let contractAddress: Contract
11 |     public let equivalentContracts: Set<Contract>
/host/spi-builder-workspace/Sources/CryptoScraper/DataAggregators/CoinMarketCap/CoinMarketCapError.swift:12:16: warning: stored property 'status' of 'Sendable'-conforming struct 'CoinMarketCapError' has non-sendable type 'CoinMarketCapError.ErrorStatus'; this is an error in the Swift 6 language mode
10 | /// - See also: https://coinmarketcap.com/api/documentation/v1/#section/Standards-and-Conventions
11 | public struct CoinMarketCapError: Decodable, Error {
12 |     public let status: ErrorStatus
   |                `- warning: stored property 'status' of 'Sendable'-conforming struct 'CoinMarketCapError' has non-sendable type 'CoinMarketCapError.ErrorStatus'; this is an error in the Swift 6 language mode
13 |
14 |     /// Returns **true** when the API Key's rate limit was exceeded
   :
17 |     }
18 |
19 |     public struct ErrorStatus: Decodable {
   |                   `- note: consider making struct 'ErrorStatus' conform to the 'Sendable' protocol
20 |         public let timestamp: String
21 |         public let errorCode: Int
/host/spi-builder-workspace/Sources/CryptoScraper/Extensions/UInt128+Codable.swift:33:46: error: generic parameter 'Magnitude' could not be inferred
31 | extension NBKDoubleWidth {
32 |     @inlinable init(stringLiteral source: String) {
33 |         let decoder = NBK.IntegerDescription.DecoderDecodingRadix()
   |                                              |- error: generic parameter 'Magnitude' could not be inferred
   |                                              `- note: explicitly specify the generic arguments to fix this issue
34 |         if let value: Self = decoder.decode(source) { self = value } else {
35 |             fatalError("Unable to convert \(source) to NBKDoubleWidth")
[1928/1959] Compiling CryptoScraper BNBContract.swift
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/BinanceSmartChain/BinanceSmartChain.swift:50:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'BinanceSmartChain' may have shared mutable state; this is an error in the Swift 6 language mode
 6 | import Foundation
 7 |
 8 | public final class BinanceSmartChain: CryptoChain {
   |                    `- note: class 'BinanceSmartChain' does not conform to the 'Sendable' protocol
 9 |     // MARK: CryptoChain
10 |
   :
48 |     static let bnbContractAddress = "bnb"
49 |
50 |     public static let `default`: BinanceSmartChain = .init()
   |                       |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'BinanceSmartChain' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'default' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
51 |
52 |     private init() {
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/BinanceSmartChain/BscScan/BscScan.swift:14:23: warning: static property 'supportedERCTokenTypes' is not concurrency-safe because non-'Sendable' type 'Set<ERCTokenType>' may have shared mutable state; this is an error in the Swift 6 language mode
12 |     public typealias Contract = BNBContract
13 |
14 |     public static let supportedERCTokenTypes: Set<ERCTokenType> = [.erc20, .erc721]
   |                       |- warning: static property 'supportedERCTokenTypes' is not concurrency-safe because non-'Sendable' type 'Set<ERCTokenType>' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'supportedERCTokenTypes' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
15 |     public static let endPoint: URL = .init(string: "https://api.bscscan.com/api")!
16 |     public static let apiKeyName: String = "BSC_SCAN_KEY"
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Ethereum/EthereumScanner/EthereumScanner.swift:8:13: note: consider making enum 'ERCTokenType' conform to the 'Sendable' protocol
 6 | import Foundation
 7 |
 8 | public enum ERCTokenType: CaseIterable {
   |             `- note: consider making enum 'ERCTokenType' conform to the 'Sendable' protocol
 9 |     case erc20
10 |     case erc721
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/BinanceSmartChain/BscScan/BscScan.swift:19:24: warning: static property '_apiKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
17 |     public let userReadableName: String = "BscScan"
18 |
19 |     private static var _apiKey: String?
   |                        |- warning: static property '_apiKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                        |- note: convert '_apiKey' to a 'let' constant to make 'Sendable' shared state immutable
   |                        |- note: annotate '_apiKey' with '@MainActor' if property should only be accessed from the main actor
   |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
20 |     public static var apiKey: String? {
21 |         get { _apiKey ?? ProcessInfo.processInfo.environment[apiKeyName] }
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Bitcoin/BitcoinChain.swift:54:23: warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
52 |     static let btcContractAddress: String = "btc"
53 |
54 |     public static var `default`: BitcoinChain = .init()
   |                       |- warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'default' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: annotate 'default' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
55 |
56 |     public init() {
[1929/1959] Compiling CryptoScraper BinanceSmartChain.swift
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/BinanceSmartChain/BinanceSmartChain.swift:50:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'BinanceSmartChain' may have shared mutable state; this is an error in the Swift 6 language mode
 6 | import Foundation
 7 |
 8 | public final class BinanceSmartChain: CryptoChain {
   |                    `- note: class 'BinanceSmartChain' does not conform to the 'Sendable' protocol
 9 |     // MARK: CryptoChain
10 |
   :
48 |     static let bnbContractAddress = "bnb"
49 |
50 |     public static let `default`: BinanceSmartChain = .init()
   |                       |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'BinanceSmartChain' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'default' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
51 |
52 |     private init() {
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/BinanceSmartChain/BscScan/BscScan.swift:14:23: warning: static property 'supportedERCTokenTypes' is not concurrency-safe because non-'Sendable' type 'Set<ERCTokenType>' may have shared mutable state; this is an error in the Swift 6 language mode
12 |     public typealias Contract = BNBContract
13 |
14 |     public static let supportedERCTokenTypes: Set<ERCTokenType> = [.erc20, .erc721]
   |                       |- warning: static property 'supportedERCTokenTypes' is not concurrency-safe because non-'Sendable' type 'Set<ERCTokenType>' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'supportedERCTokenTypes' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
15 |     public static let endPoint: URL = .init(string: "https://api.bscscan.com/api")!
16 |     public static let apiKeyName: String = "BSC_SCAN_KEY"
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Ethereum/EthereumScanner/EthereumScanner.swift:8:13: note: consider making enum 'ERCTokenType' conform to the 'Sendable' protocol
 6 | import Foundation
 7 |
 8 | public enum ERCTokenType: CaseIterable {
   |             `- note: consider making enum 'ERCTokenType' conform to the 'Sendable' protocol
 9 |     case erc20
10 |     case erc721
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/BinanceSmartChain/BscScan/BscScan.swift:19:24: warning: static property '_apiKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
17 |     public let userReadableName: String = "BscScan"
18 |
19 |     private static var _apiKey: String?
   |                        |- warning: static property '_apiKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                        |- note: convert '_apiKey' to a 'let' constant to make 'Sendable' shared state immutable
   |                        |- note: annotate '_apiKey' with '@MainActor' if property should only be accessed from the main actor
   |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
20 |     public static var apiKey: String? {
21 |         get { _apiKey ?? ProcessInfo.processInfo.environment[apiKeyName] }
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Bitcoin/BitcoinChain.swift:54:23: warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
52 |     static let btcContractAddress: String = "btc"
53 |
54 |     public static var `default`: BitcoinChain = .init()
   |                       |- warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'default' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: annotate 'default' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
55 |
56 |     public init() {
[1930/1959] Compiling CryptoScraper BscScan.swift
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/BinanceSmartChain/BinanceSmartChain.swift:50:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'BinanceSmartChain' may have shared mutable state; this is an error in the Swift 6 language mode
 6 | import Foundation
 7 |
 8 | public final class BinanceSmartChain: CryptoChain {
   |                    `- note: class 'BinanceSmartChain' does not conform to the 'Sendable' protocol
 9 |     // MARK: CryptoChain
10 |
   :
48 |     static let bnbContractAddress = "bnb"
49 |
50 |     public static let `default`: BinanceSmartChain = .init()
   |                       |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'BinanceSmartChain' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'default' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
51 |
52 |     private init() {
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/BinanceSmartChain/BscScan/BscScan.swift:14:23: warning: static property 'supportedERCTokenTypes' is not concurrency-safe because non-'Sendable' type 'Set<ERCTokenType>' may have shared mutable state; this is an error in the Swift 6 language mode
12 |     public typealias Contract = BNBContract
13 |
14 |     public static let supportedERCTokenTypes: Set<ERCTokenType> = [.erc20, .erc721]
   |                       |- warning: static property 'supportedERCTokenTypes' is not concurrency-safe because non-'Sendable' type 'Set<ERCTokenType>' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'supportedERCTokenTypes' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
15 |     public static let endPoint: URL = .init(string: "https://api.bscscan.com/api")!
16 |     public static let apiKeyName: String = "BSC_SCAN_KEY"
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Ethereum/EthereumScanner/EthereumScanner.swift:8:13: note: consider making enum 'ERCTokenType' conform to the 'Sendable' protocol
 6 | import Foundation
 7 |
 8 | public enum ERCTokenType: CaseIterable {
   |             `- note: consider making enum 'ERCTokenType' conform to the 'Sendable' protocol
 9 |     case erc20
10 |     case erc721
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/BinanceSmartChain/BscScan/BscScan.swift:19:24: warning: static property '_apiKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
17 |     public let userReadableName: String = "BscScan"
18 |
19 |     private static var _apiKey: String?
   |                        |- warning: static property '_apiKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                        |- note: convert '_apiKey' to a 'let' constant to make 'Sendable' shared state immutable
   |                        |- note: annotate '_apiKey' with '@MainActor' if property should only be accessed from the main actor
   |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
20 |     public static var apiKey: String? {
21 |         get { _apiKey ?? ProcessInfo.processInfo.environment[apiKeyName] }
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Bitcoin/BitcoinChain.swift:54:23: warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
52 |     static let btcContractAddress: String = "btc"
53 |
54 |     public static var `default`: BitcoinChain = .init()
   |                       |- warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'default' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: annotate 'default' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
55 |
56 |     public init() {
[1931/1959] Compiling CryptoScraper BTCTokenInfo.swift
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/BinanceSmartChain/BinanceSmartChain.swift:50:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'BinanceSmartChain' may have shared mutable state; this is an error in the Swift 6 language mode
 6 | import Foundation
 7 |
 8 | public final class BinanceSmartChain: CryptoChain {
   |                    `- note: class 'BinanceSmartChain' does not conform to the 'Sendable' protocol
 9 |     // MARK: CryptoChain
10 |
   :
48 |     static let bnbContractAddress = "bnb"
49 |
50 |     public static let `default`: BinanceSmartChain = .init()
   |                       |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'BinanceSmartChain' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'default' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
51 |
52 |     private init() {
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/BinanceSmartChain/BscScan/BscScan.swift:14:23: warning: static property 'supportedERCTokenTypes' is not concurrency-safe because non-'Sendable' type 'Set<ERCTokenType>' may have shared mutable state; this is an error in the Swift 6 language mode
12 |     public typealias Contract = BNBContract
13 |
14 |     public static let supportedERCTokenTypes: Set<ERCTokenType> = [.erc20, .erc721]
   |                       |- warning: static property 'supportedERCTokenTypes' is not concurrency-safe because non-'Sendable' type 'Set<ERCTokenType>' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'supportedERCTokenTypes' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
15 |     public static let endPoint: URL = .init(string: "https://api.bscscan.com/api")!
16 |     public static let apiKeyName: String = "BSC_SCAN_KEY"
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Ethereum/EthereumScanner/EthereumScanner.swift:8:13: note: consider making enum 'ERCTokenType' conform to the 'Sendable' protocol
 6 | import Foundation
 7 |
 8 | public enum ERCTokenType: CaseIterable {
   |             `- note: consider making enum 'ERCTokenType' conform to the 'Sendable' protocol
 9 |     case erc20
10 |     case erc721
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/BinanceSmartChain/BscScan/BscScan.swift:19:24: warning: static property '_apiKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
17 |     public let userReadableName: String = "BscScan"
18 |
19 |     private static var _apiKey: String?
   |                        |- warning: static property '_apiKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                        |- note: convert '_apiKey' to a 'let' constant to make 'Sendable' shared state immutable
   |                        |- note: annotate '_apiKey' with '@MainActor' if property should only be accessed from the main actor
   |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
20 |     public static var apiKey: String? {
21 |         get { _apiKey ?? ProcessInfo.processInfo.environment[apiKeyName] }
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Bitcoin/BitcoinChain.swift:54:23: warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
52 |     static let btcContractAddress: String = "btc"
53 |
54 |     public static var `default`: BitcoinChain = .init()
   |                       |- warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'default' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: annotate 'default' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
55 |
56 |     public init() {
[1932/1959] Compiling CryptoScraper BitcoinChain.swift
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/BinanceSmartChain/BinanceSmartChain.swift:50:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'BinanceSmartChain' may have shared mutable state; this is an error in the Swift 6 language mode
 6 | import Foundation
 7 |
 8 | public final class BinanceSmartChain: CryptoChain {
   |                    `- note: class 'BinanceSmartChain' does not conform to the 'Sendable' protocol
 9 |     // MARK: CryptoChain
10 |
   :
48 |     static let bnbContractAddress = "bnb"
49 |
50 |     public static let `default`: BinanceSmartChain = .init()
   |                       |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'BinanceSmartChain' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'default' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
51 |
52 |     private init() {
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/BinanceSmartChain/BscScan/BscScan.swift:14:23: warning: static property 'supportedERCTokenTypes' is not concurrency-safe because non-'Sendable' type 'Set<ERCTokenType>' may have shared mutable state; this is an error in the Swift 6 language mode
12 |     public typealias Contract = BNBContract
13 |
14 |     public static let supportedERCTokenTypes: Set<ERCTokenType> = [.erc20, .erc721]
   |                       |- warning: static property 'supportedERCTokenTypes' is not concurrency-safe because non-'Sendable' type 'Set<ERCTokenType>' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'supportedERCTokenTypes' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
15 |     public static let endPoint: URL = .init(string: "https://api.bscscan.com/api")!
16 |     public static let apiKeyName: String = "BSC_SCAN_KEY"
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Ethereum/EthereumScanner/EthereumScanner.swift:8:13: note: consider making enum 'ERCTokenType' conform to the 'Sendable' protocol
 6 | import Foundation
 7 |
 8 | public enum ERCTokenType: CaseIterable {
   |             `- note: consider making enum 'ERCTokenType' conform to the 'Sendable' protocol
 9 |     case erc20
10 |     case erc721
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/BinanceSmartChain/BscScan/BscScan.swift:19:24: warning: static property '_apiKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
17 |     public let userReadableName: String = "BscScan"
18 |
19 |     private static var _apiKey: String?
   |                        |- warning: static property '_apiKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                        |- note: convert '_apiKey' to a 'let' constant to make 'Sendable' shared state immutable
   |                        |- note: annotate '_apiKey' with '@MainActor' if property should only be accessed from the main actor
   |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
20 |     public static var apiKey: String? {
21 |         get { _apiKey ?? ProcessInfo.processInfo.environment[apiKeyName] }
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Bitcoin/BitcoinChain.swift:54:23: warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
52 |     static let btcContractAddress: String = "btc"
53 |
54 |     public static var `default`: BitcoinChain = .init()
   |                       |- warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'default' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: annotate 'default' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
55 |
56 |     public init() {
[1933/1959] Compiling CryptoScraper BitcoinContract.swift
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/BinanceSmartChain/BinanceSmartChain.swift:50:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'BinanceSmartChain' may have shared mutable state; this is an error in the Swift 6 language mode
 6 | import Foundation
 7 |
 8 | public final class BinanceSmartChain: CryptoChain {
   |                    `- note: class 'BinanceSmartChain' does not conform to the 'Sendable' protocol
 9 |     // MARK: CryptoChain
10 |
   :
48 |     static let bnbContractAddress = "bnb"
49 |
50 |     public static let `default`: BinanceSmartChain = .init()
   |                       |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'BinanceSmartChain' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'default' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
51 |
52 |     private init() {
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/BinanceSmartChain/BscScan/BscScan.swift:14:23: warning: static property 'supportedERCTokenTypes' is not concurrency-safe because non-'Sendable' type 'Set<ERCTokenType>' may have shared mutable state; this is an error in the Swift 6 language mode
12 |     public typealias Contract = BNBContract
13 |
14 |     public static let supportedERCTokenTypes: Set<ERCTokenType> = [.erc20, .erc721]
   |                       |- warning: static property 'supportedERCTokenTypes' is not concurrency-safe because non-'Sendable' type 'Set<ERCTokenType>' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'supportedERCTokenTypes' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
15 |     public static let endPoint: URL = .init(string: "https://api.bscscan.com/api")!
16 |     public static let apiKeyName: String = "BSC_SCAN_KEY"
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Ethereum/EthereumScanner/EthereumScanner.swift:8:13: note: consider making enum 'ERCTokenType' conform to the 'Sendable' protocol
 6 | import Foundation
 7 |
 8 | public enum ERCTokenType: CaseIterable {
   |             `- note: consider making enum 'ERCTokenType' conform to the 'Sendable' protocol
 9 |     case erc20
10 |     case erc721
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/BinanceSmartChain/BscScan/BscScan.swift:19:24: warning: static property '_apiKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
17 |     public let userReadableName: String = "BscScan"
18 |
19 |     private static var _apiKey: String?
   |                        |- warning: static property '_apiKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                        |- note: convert '_apiKey' to a 'let' constant to make 'Sendable' shared state immutable
   |                        |- note: annotate '_apiKey' with '@MainActor' if property should only be accessed from the main actor
   |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
20 |     public static var apiKey: String? {
21 |         get { _apiKey ?? ProcessInfo.processInfo.environment[apiKeyName] }
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Bitcoin/BitcoinChain.swift:54:23: warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
52 |     static let btcContractAddress: String = "btc"
53 |
54 |     public static var `default`: BitcoinChain = .init()
   |                       |- warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'default' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: annotate 'default' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
55 |
56 |     public init() {
[1934/1959] Compiling CryptoScraper BitcoinExplorer+Accounts.swift
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/BinanceSmartChain/BinanceSmartChain.swift:50:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'BinanceSmartChain' may have shared mutable state; this is an error in the Swift 6 language mode
 6 | import Foundation
 7 |
 8 | public final class BinanceSmartChain: CryptoChain {
   |                    `- note: class 'BinanceSmartChain' does not conform to the 'Sendable' protocol
 9 |     // MARK: CryptoChain
10 |
   :
48 |     static let bnbContractAddress = "bnb"
49 |
50 |     public static let `default`: BinanceSmartChain = .init()
   |                       |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'BinanceSmartChain' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'default' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
51 |
52 |     private init() {
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/BinanceSmartChain/BscScan/BscScan.swift:14:23: warning: static property 'supportedERCTokenTypes' is not concurrency-safe because non-'Sendable' type 'Set<ERCTokenType>' may have shared mutable state; this is an error in the Swift 6 language mode
12 |     public typealias Contract = BNBContract
13 |
14 |     public static let supportedERCTokenTypes: Set<ERCTokenType> = [.erc20, .erc721]
   |                       |- warning: static property 'supportedERCTokenTypes' is not concurrency-safe because non-'Sendable' type 'Set<ERCTokenType>' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'supportedERCTokenTypes' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
15 |     public static let endPoint: URL = .init(string: "https://api.bscscan.com/api")!
16 |     public static let apiKeyName: String = "BSC_SCAN_KEY"
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Ethereum/EthereumScanner/EthereumScanner.swift:8:13: note: consider making enum 'ERCTokenType' conform to the 'Sendable' protocol
 6 | import Foundation
 7 |
 8 | public enum ERCTokenType: CaseIterable {
   |             `- note: consider making enum 'ERCTokenType' conform to the 'Sendable' protocol
 9 |     case erc20
10 |     case erc721
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/BinanceSmartChain/BscScan/BscScan.swift:19:24: warning: static property '_apiKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
17 |     public let userReadableName: String = "BscScan"
18 |
19 |     private static var _apiKey: String?
   |                        |- warning: static property '_apiKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                        |- note: convert '_apiKey' to a 'let' constant to make 'Sendable' shared state immutable
   |                        |- note: annotate '_apiKey' with '@MainActor' if property should only be accessed from the main actor
   |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
20 |     public static var apiKey: String? {
21 |         get { _apiKey ?? ProcessInfo.processInfo.environment[apiKeyName] }
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Bitcoin/BitcoinChain.swift:54:23: warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
52 |     static let btcContractAddress: String = "btc"
53 |
54 |     public static var `default`: BitcoinChain = .init()
   |                       |- warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'default' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: annotate 'default' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
55 |
56 |     public init() {
[1935/1959] Compiling CryptoScraper BitcoinExplorer+Transactions.swift
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/BinanceSmartChain/BinanceSmartChain.swift:50:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'BinanceSmartChain' may have shared mutable state; this is an error in the Swift 6 language mode
 6 | import Foundation
 7 |
 8 | public final class BinanceSmartChain: CryptoChain {
   |                    `- note: class 'BinanceSmartChain' does not conform to the 'Sendable' protocol
 9 |     // MARK: CryptoChain
10 |
   :
48 |     static let bnbContractAddress = "bnb"
49 |
50 |     public static let `default`: BinanceSmartChain = .init()
   |                       |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'BinanceSmartChain' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'default' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
51 |
52 |     private init() {
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/BinanceSmartChain/BscScan/BscScan.swift:14:23: warning: static property 'supportedERCTokenTypes' is not concurrency-safe because non-'Sendable' type 'Set<ERCTokenType>' may have shared mutable state; this is an error in the Swift 6 language mode
12 |     public typealias Contract = BNBContract
13 |
14 |     public static let supportedERCTokenTypes: Set<ERCTokenType> = [.erc20, .erc721]
   |                       |- warning: static property 'supportedERCTokenTypes' is not concurrency-safe because non-'Sendable' type 'Set<ERCTokenType>' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'supportedERCTokenTypes' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
15 |     public static let endPoint: URL = .init(string: "https://api.bscscan.com/api")!
16 |     public static let apiKeyName: String = "BSC_SCAN_KEY"
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Ethereum/EthereumScanner/EthereumScanner.swift:8:13: note: consider making enum 'ERCTokenType' conform to the 'Sendable' protocol
 6 | import Foundation
 7 |
 8 | public enum ERCTokenType: CaseIterable {
   |             `- note: consider making enum 'ERCTokenType' conform to the 'Sendable' protocol
 9 |     case erc20
10 |     case erc721
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/BinanceSmartChain/BscScan/BscScan.swift:19:24: warning: static property '_apiKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
17 |     public let userReadableName: String = "BscScan"
18 |
19 |     private static var _apiKey: String?
   |                        |- warning: static property '_apiKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                        |- note: convert '_apiKey' to a 'let' constant to make 'Sendable' shared state immutable
   |                        |- note: annotate '_apiKey' with '@MainActor' if property should only be accessed from the main actor
   |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
20 |     public static var apiKey: String? {
21 |         get { _apiKey ?? ProcessInfo.processInfo.environment[apiKeyName] }
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Bitcoin/BitcoinChain.swift:54:23: warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
52 |     static let btcContractAddress: String = "btc"
53 |
54 |     public static var `default`: BitcoinChain = .init()
   |                       |- warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'default' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: annotate 'default' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
55 |
56 |     public init() {
[1936/1959] Compiling CryptoScraper TronScan+Accounts.swift
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Tron/TronChain.swift:52:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'TronChain' may have shared mutable state; this is an error in the Swift 6 language mode
 6 | import Foundation
 7 |
 8 | public final class TronChain: CryptoChain {
   |                    `- note: class 'TronChain' does not conform to the 'Sendable' protocol
 9 |     // MARK: CryptoChain
10 |
   :
50 |     static let trxContractAddress = "TRX"
51 |
52 |     public static let `default`: TronChain = .init()
   |                       |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'TronChain' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'default' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
53 |
54 |     private init() {
[1937/1959] Compiling CryptoScraper TronScan+Transactions.swift
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Tron/TronChain.swift:52:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'TronChain' may have shared mutable state; this is an error in the Swift 6 language mode
 6 | import Foundation
 7 |
 8 | public final class TronChain: CryptoChain {
   |                    `- note: class 'TronChain' does not conform to the 'Sendable' protocol
 9 |     // MARK: CryptoChain
10 |
   :
50 |     static let trxContractAddress = "TRX"
51 |
52 |     public static let `default`: TronChain = .init()
   |                       |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'TronChain' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'default' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
53 |
54 |     private init() {
[1938/1959] Compiling CryptoScraper TronScan.swift
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Tron/TronChain.swift:52:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'TronChain' may have shared mutable state; this is an error in the Swift 6 language mode
 6 | import Foundation
 7 |
 8 | public final class TronChain: CryptoChain {
   |                    `- note: class 'TronChain' does not conform to the 'Sendable' protocol
 9 |     // MARK: CryptoChain
10 |
   :
50 |     static let trxContractAddress = "TRX"
51 |
52 |     public static let `default`: TronChain = .init()
   |                       |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'TronChain' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'default' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
53 |
54 |     private init() {
[1939/1959] Compiling CryptoScraper ZeroAmountChain.swift
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Tron/TronChain.swift:52:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'TronChain' may have shared mutable state; this is an error in the Swift 6 language mode
 6 | import Foundation
 7 |
 8 | public final class TronChain: CryptoChain {
   |                    `- note: class 'TronChain' does not conform to the 'Sendable' protocol
 9 |     // MARK: CryptoChain
10 |
   :
50 |     static let trxContractAddress = "TRX"
51 |
52 |     public static let `default`: TronChain = .init()
   |                       |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'TronChain' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'default' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
53 |
54 |     private init() {
[1940/1959] Compiling CryptoScraper ZeroAmountContract.swift
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Tron/TronChain.swift:52:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'TronChain' may have shared mutable state; this is an error in the Swift 6 language mode
 6 | import Foundation
 7 |
 8 | public final class TronChain: CryptoChain {
   |                    `- note: class 'TronChain' does not conform to the 'Sendable' protocol
 9 |     // MARK: CryptoChain
10 |
   :
50 |     static let trxContractAddress = "TRX"
51 |
52 |     public static let `default`: TronChain = .init()
   |                       |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'TronChain' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'default' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
53 |
54 |     private init() {
[1941/1959] Compiling CryptoScraper ZeroAmountScanner.swift
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Tron/TronChain.swift:52:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'TronChain' may have shared mutable state; this is an error in the Swift 6 language mode
 6 | import Foundation
 7 |
 8 | public final class TronChain: CryptoChain {
   |                    `- note: class 'TronChain' does not conform to the 'Sendable' protocol
 9 |     // MARK: CryptoChain
10 |
   :
50 |     static let trxContractAddress = "TRX"
51 |
52 |     public static let `default`: TronChain = .init()
   |                       |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'TronChain' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'default' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
53 |
54 |     private init() {
[1942/1959] Compiling CryptoScraper CryptoScraper.swift
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Tron/TronChain.swift:52:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'TronChain' may have shared mutable state; this is an error in the Swift 6 language mode
 6 | import Foundation
 7 |
 8 | public final class TronChain: CryptoChain {
   |                    `- note: class 'TronChain' does not conform to the 'Sendable' protocol
 9 |     // MARK: CryptoChain
10 |
   :
50 |     static let trxContractAddress = "TRX"
51 |
52 |     public static let `default`: TronChain = .init()
   |                       |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'TronChain' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'default' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
53 |
54 |     private init() {
[1943/1959] Compiling CryptoScraper CoinGeckoAggregator+Availability.swift
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Tron/TronChain.swift:52:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'TronChain' may have shared mutable state; this is an error in the Swift 6 language mode
 6 | import Foundation
 7 |
 8 | public final class TronChain: CryptoChain {
   |                    `- note: class 'TronChain' does not conform to the 'Sendable' protocol
 9 |     // MARK: CryptoChain
10 |
   :
50 |     static let trxContractAddress = "TRX"
51 |
52 |     public static let `default`: TronChain = .init()
   |                       |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'TronChain' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'default' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
53 |
54 |     private init() {
[1944/1959] Compiling CryptoScraper EthereumScanner+Accounts.swift
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Ethereum/EthereumChain.swift:50:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'EthereumChain' may have shared mutable state; this is an error in the Swift 6 language mode
 6 | import Foundation
 7 |
 8 | public final class EthereumChain: CryptoChain {
   |                    `- note: class 'EthereumChain' does not conform to the 'Sendable' protocol
 9 |     // MARK: CryptoChain
10 |
   :
48 |     static let ethContractAddress = "eth"
49 |
50 |     public static let `default`: EthereumChain = .init()
   |                       |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'EthereumChain' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'default' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
51 |
52 |     private init() {
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Ethereum/Etherscan/Etherscan.swift:14:23: warning: static property 'supportedERCTokenTypes' is not concurrency-safe because non-'Sendable' type 'Set<ERCTokenType>' may have shared mutable state; this is an error in the Swift 6 language mode
12 |     public typealias Contract = EthereumContract
13 |
14 |     public static let supportedERCTokenTypes: Set<ERCTokenType> = Set(ERCTokenType.allCases)
   |                       |- warning: static property 'supportedERCTokenTypes' is not concurrency-safe because non-'Sendable' type 'Set<ERCTokenType>' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'supportedERCTokenTypes' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
15 |     public static let endPoint: URL = .init(string: "https://api.etherscan.io/api")!
16 |     public static let apiKeyName: String = "ETHER_SCAN_KEY"
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Ethereum/EthereumScanner/EthereumScanner.swift:8:13: note: consider making enum 'ERCTokenType' conform to the 'Sendable' protocol
 6 | import Foundation
 7 |
 8 | public enum ERCTokenType: CaseIterable {
   |             `- note: consider making enum 'ERCTokenType' conform to the 'Sendable' protocol
 9 |     case erc20
10 |     case erc721
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Ethereum/Etherscan/Etherscan.swift:19:24: warning: static property '_apiKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
17 |     public let userReadableName: String = "Etherscan"
18 |
19 |     private static var _apiKey: String?
   |                        |- warning: static property '_apiKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                        |- note: convert '_apiKey' to a 'let' constant to make 'Sendable' shared state immutable
   |                        |- note: annotate '_apiKey' with '@MainActor' if property should only be accessed from the main actor
   |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
20 |     public static var apiKey: String? {
21 |         get { _apiKey ?? ProcessInfo.processInfo.environment[apiKeyName] }
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Fantom/FTMScan/FTMScan.swift:14:23: warning: static property 'supportedERCTokenTypes' is not concurrency-safe because non-'Sendable' type 'Set<ERCTokenType>' may have shared mutable state; this is an error in the Swift 6 language mode
12 |     public typealias Contract = FantomContract
13 |
14 |     public static let supportedERCTokenTypes: Set<ERCTokenType> = [.erc20]
   |                       |- warning: static property 'supportedERCTokenTypes' is not concurrency-safe because non-'Sendable' type 'Set<ERCTokenType>' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'supportedERCTokenTypes' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
15 |     public static let endPoint: URL = .init(string: "https://api.ftmscan.com/api")!
16 |     public static let apiKeyName: String = "FTM_SCAN_KEY"
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Ethereum/EthereumScanner/EthereumScanner.swift:8:13: note: consider making enum 'ERCTokenType' conform to the 'Sendable' protocol
 6 | import Foundation
 7 |
 8 | public enum ERCTokenType: CaseIterable {
   |             `- note: consider making enum 'ERCTokenType' conform to the 'Sendable' protocol
 9 |     case erc20
10 |     case erc721
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Fantom/FTMScan/FTMScan.swift:19:24: warning: static property '_apiKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
17 |     public let userReadableName: String = "FTMScan"
18 |
19 |     private static var _apiKey: String?
   |                        |- warning: static property '_apiKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                        |- note: convert '_apiKey' to a 'let' constant to make 'Sendable' shared state immutable
   |                        |- note: annotate '_apiKey' with '@MainActor' if property should only be accessed from the main actor
   |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
20 |     public static var apiKey: String? {
21 |         get { _apiKey ?? ProcessInfo.processInfo.environment[apiKeyName] }
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Fantom/FantomChain.swift:50:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'FantomChain' may have shared mutable state; this is an error in the Swift 6 language mode
 6 | import Foundation
 7 |
 8 | public final class FantomChain: CryptoChain {
   |                    `- note: class 'FantomChain' does not conform to the 'Sendable' protocol
 9 |     // MARK: CryptoChain
10 |
   :
48 |     static let ftmContractAddress = "ftm"
49 |
50 |     public static let `default`: FantomChain = .init()
   |                       |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'FantomChain' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'default' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
51 |
52 |     private init() {
[1945/1959] Compiling CryptoScraper EthereumScanner+Tokens.swift
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Ethereum/EthereumChain.swift:50:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'EthereumChain' may have shared mutable state; this is an error in the Swift 6 language mode
 6 | import Foundation
 7 |
 8 | public final class EthereumChain: CryptoChain {
   |                    `- note: class 'EthereumChain' does not conform to the 'Sendable' protocol
 9 |     // MARK: CryptoChain
10 |
   :
48 |     static let ethContractAddress = "eth"
49 |
50 |     public static let `default`: EthereumChain = .init()
   |                       |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'EthereumChain' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'default' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
51 |
52 |     private init() {
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Ethereum/Etherscan/Etherscan.swift:14:23: warning: static property 'supportedERCTokenTypes' is not concurrency-safe because non-'Sendable' type 'Set<ERCTokenType>' may have shared mutable state; this is an error in the Swift 6 language mode
12 |     public typealias Contract = EthereumContract
13 |
14 |     public static let supportedERCTokenTypes: Set<ERCTokenType> = Set(ERCTokenType.allCases)
   |                       |- warning: static property 'supportedERCTokenTypes' is not concurrency-safe because non-'Sendable' type 'Set<ERCTokenType>' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'supportedERCTokenTypes' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
15 |     public static let endPoint: URL = .init(string: "https://api.etherscan.io/api")!
16 |     public static let apiKeyName: String = "ETHER_SCAN_KEY"
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Ethereum/EthereumScanner/EthereumScanner.swift:8:13: note: consider making enum 'ERCTokenType' conform to the 'Sendable' protocol
 6 | import Foundation
 7 |
 8 | public enum ERCTokenType: CaseIterable {
   |             `- note: consider making enum 'ERCTokenType' conform to the 'Sendable' protocol
 9 |     case erc20
10 |     case erc721
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Ethereum/Etherscan/Etherscan.swift:19:24: warning: static property '_apiKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
17 |     public let userReadableName: String = "Etherscan"
18 |
19 |     private static var _apiKey: String?
   |                        |- warning: static property '_apiKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                        |- note: convert '_apiKey' to a 'let' constant to make 'Sendable' shared state immutable
   |                        |- note: annotate '_apiKey' with '@MainActor' if property should only be accessed from the main actor
   |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
20 |     public static var apiKey: String? {
21 |         get { _apiKey ?? ProcessInfo.processInfo.environment[apiKeyName] }
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Fantom/FTMScan/FTMScan.swift:14:23: warning: static property 'supportedERCTokenTypes' is not concurrency-safe because non-'Sendable' type 'Set<ERCTokenType>' may have shared mutable state; this is an error in the Swift 6 language mode
12 |     public typealias Contract = FantomContract
13 |
14 |     public static let supportedERCTokenTypes: Set<ERCTokenType> = [.erc20]
   |                       |- warning: static property 'supportedERCTokenTypes' is not concurrency-safe because non-'Sendable' type 'Set<ERCTokenType>' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'supportedERCTokenTypes' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
15 |     public static let endPoint: URL = .init(string: "https://api.ftmscan.com/api")!
16 |     public static let apiKeyName: String = "FTM_SCAN_KEY"
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Ethereum/EthereumScanner/EthereumScanner.swift:8:13: note: consider making enum 'ERCTokenType' conform to the 'Sendable' protocol
 6 | import Foundation
 7 |
 8 | public enum ERCTokenType: CaseIterable {
   |             `- note: consider making enum 'ERCTokenType' conform to the 'Sendable' protocol
 9 |     case erc20
10 |     case erc721
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Fantom/FTMScan/FTMScan.swift:19:24: warning: static property '_apiKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
17 |     public let userReadableName: String = "FTMScan"
18 |
19 |     private static var _apiKey: String?
   |                        |- warning: static property '_apiKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                        |- note: convert '_apiKey' to a 'let' constant to make 'Sendable' shared state immutable
   |                        |- note: annotate '_apiKey' with '@MainActor' if property should only be accessed from the main actor
   |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
20 |     public static var apiKey: String? {
21 |         get { _apiKey ?? ProcessInfo.processInfo.environment[apiKeyName] }
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Fantom/FantomChain.swift:50:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'FantomChain' may have shared mutable state; this is an error in the Swift 6 language mode
 6 | import Foundation
 7 |
 8 | public final class FantomChain: CryptoChain {
   |                    `- note: class 'FantomChain' does not conform to the 'Sendable' protocol
 9 |     // MARK: CryptoChain
10 |
   :
48 |     static let ftmContractAddress = "ftm"
49 |
50 |     public static let `default`: FantomChain = .init()
   |                       |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'FantomChain' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'default' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
51 |
52 |     private init() {
[1946/1959] Compiling CryptoScraper EthereumScanner+Transactions.swift
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Ethereum/EthereumChain.swift:50:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'EthereumChain' may have shared mutable state; this is an error in the Swift 6 language mode
 6 | import Foundation
 7 |
 8 | public final class EthereumChain: CryptoChain {
   |                    `- note: class 'EthereumChain' does not conform to the 'Sendable' protocol
 9 |     // MARK: CryptoChain
10 |
   :
48 |     static let ethContractAddress = "eth"
49 |
50 |     public static let `default`: EthereumChain = .init()
   |                       |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'EthereumChain' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'default' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
51 |
52 |     private init() {
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Ethereum/Etherscan/Etherscan.swift:14:23: warning: static property 'supportedERCTokenTypes' is not concurrency-safe because non-'Sendable' type 'Set<ERCTokenType>' may have shared mutable state; this is an error in the Swift 6 language mode
12 |     public typealias Contract = EthereumContract
13 |
14 |     public static let supportedERCTokenTypes: Set<ERCTokenType> = Set(ERCTokenType.allCases)
   |                       |- warning: static property 'supportedERCTokenTypes' is not concurrency-safe because non-'Sendable' type 'Set<ERCTokenType>' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'supportedERCTokenTypes' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
15 |     public static let endPoint: URL = .init(string: "https://api.etherscan.io/api")!
16 |     public static let apiKeyName: String = "ETHER_SCAN_KEY"
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Ethereum/EthereumScanner/EthereumScanner.swift:8:13: note: consider making enum 'ERCTokenType' conform to the 'Sendable' protocol
 6 | import Foundation
 7 |
 8 | public enum ERCTokenType: CaseIterable {
   |             `- note: consider making enum 'ERCTokenType' conform to the 'Sendable' protocol
 9 |     case erc20
10 |     case erc721
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Ethereum/Etherscan/Etherscan.swift:19:24: warning: static property '_apiKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
17 |     public let userReadableName: String = "Etherscan"
18 |
19 |     private static var _apiKey: String?
   |                        |- warning: static property '_apiKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                        |- note: convert '_apiKey' to a 'let' constant to make 'Sendable' shared state immutable
   |                        |- note: annotate '_apiKey' with '@MainActor' if property should only be accessed from the main actor
   |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
20 |     public static var apiKey: String? {
21 |         get { _apiKey ?? ProcessInfo.processInfo.environment[apiKeyName] }
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Fantom/FTMScan/FTMScan.swift:14:23: warning: static property 'supportedERCTokenTypes' is not concurrency-safe because non-'Sendable' type 'Set<ERCTokenType>' may have shared mutable state; this is an error in the Swift 6 language mode
12 |     public typealias Contract = FantomContract
13 |
14 |     public static let supportedERCTokenTypes: Set<ERCTokenType> = [.erc20]
   |                       |- warning: static property 'supportedERCTokenTypes' is not concurrency-safe because non-'Sendable' type 'Set<ERCTokenType>' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'supportedERCTokenTypes' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
15 |     public static let endPoint: URL = .init(string: "https://api.ftmscan.com/api")!
16 |     public static let apiKeyName: String = "FTM_SCAN_KEY"
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Ethereum/EthereumScanner/EthereumScanner.swift:8:13: note: consider making enum 'ERCTokenType' conform to the 'Sendable' protocol
 6 | import Foundation
 7 |
 8 | public enum ERCTokenType: CaseIterable {
   |             `- note: consider making enum 'ERCTokenType' conform to the 'Sendable' protocol
 9 |     case erc20
10 |     case erc721
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Fantom/FTMScan/FTMScan.swift:19:24: warning: static property '_apiKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
17 |     public let userReadableName: String = "FTMScan"
18 |
19 |     private static var _apiKey: String?
   |                        |- warning: static property '_apiKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                        |- note: convert '_apiKey' to a 'let' constant to make 'Sendable' shared state immutable
   |                        |- note: annotate '_apiKey' with '@MainActor' if property should only be accessed from the main actor
   |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
20 |     public static var apiKey: String? {
21 |         get { _apiKey ?? ProcessInfo.processInfo.environment[apiKeyName] }
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Fantom/FantomChain.swift:50:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'FantomChain' may have shared mutable state; this is an error in the Swift 6 language mode
 6 | import Foundation
 7 |
 8 | public final class FantomChain: CryptoChain {
   |                    `- note: class 'FantomChain' does not conform to the 'Sendable' protocol
 9 |     // MARK: CryptoChain
10 |
   :
48 |     static let ftmContractAddress = "ftm"
49 |
50 |     public static let `default`: FantomChain = .init()
   |                       |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'FantomChain' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'default' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
51 |
52 |     private init() {
[1947/1959] Compiling CryptoScraper EthereumScanner.swift
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Ethereum/EthereumChain.swift:50:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'EthereumChain' may have shared mutable state; this is an error in the Swift 6 language mode
 6 | import Foundation
 7 |
 8 | public final class EthereumChain: CryptoChain {
   |                    `- note: class 'EthereumChain' does not conform to the 'Sendable' protocol
 9 |     // MARK: CryptoChain
10 |
   :
48 |     static let ethContractAddress = "eth"
49 |
50 |     public static let `default`: EthereumChain = .init()
   |                       |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'EthereumChain' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'default' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
51 |
52 |     private init() {
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Ethereum/Etherscan/Etherscan.swift:14:23: warning: static property 'supportedERCTokenTypes' is not concurrency-safe because non-'Sendable' type 'Set<ERCTokenType>' may have shared mutable state; this is an error in the Swift 6 language mode
12 |     public typealias Contract = EthereumContract
13 |
14 |     public static let supportedERCTokenTypes: Set<ERCTokenType> = Set(ERCTokenType.allCases)
   |                       |- warning: static property 'supportedERCTokenTypes' is not concurrency-safe because non-'Sendable' type 'Set<ERCTokenType>' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'supportedERCTokenTypes' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
15 |     public static let endPoint: URL = .init(string: "https://api.etherscan.io/api")!
16 |     public static let apiKeyName: String = "ETHER_SCAN_KEY"
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Ethereum/EthereumScanner/EthereumScanner.swift:8:13: note: consider making enum 'ERCTokenType' conform to the 'Sendable' protocol
 6 | import Foundation
 7 |
 8 | public enum ERCTokenType: CaseIterable {
   |             `- note: consider making enum 'ERCTokenType' conform to the 'Sendable' protocol
 9 |     case erc20
10 |     case erc721
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Ethereum/Etherscan/Etherscan.swift:19:24: warning: static property '_apiKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
17 |     public let userReadableName: String = "Etherscan"
18 |
19 |     private static var _apiKey: String?
   |                        |- warning: static property '_apiKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                        |- note: convert '_apiKey' to a 'let' constant to make 'Sendable' shared state immutable
   |                        |- note: annotate '_apiKey' with '@MainActor' if property should only be accessed from the main actor
   |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
20 |     public static var apiKey: String? {
21 |         get { _apiKey ?? ProcessInfo.processInfo.environment[apiKeyName] }
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Fantom/FTMScan/FTMScan.swift:14:23: warning: static property 'supportedERCTokenTypes' is not concurrency-safe because non-'Sendable' type 'Set<ERCTokenType>' may have shared mutable state; this is an error in the Swift 6 language mode
12 |     public typealias Contract = FantomContract
13 |
14 |     public static let supportedERCTokenTypes: Set<ERCTokenType> = [.erc20]
   |                       |- warning: static property 'supportedERCTokenTypes' is not concurrency-safe because non-'Sendable' type 'Set<ERCTokenType>' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'supportedERCTokenTypes' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
15 |     public static let endPoint: URL = .init(string: "https://api.ftmscan.com/api")!
16 |     public static let apiKeyName: String = "FTM_SCAN_KEY"
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Ethereum/EthereumScanner/EthereumScanner.swift:8:13: note: consider making enum 'ERCTokenType' conform to the 'Sendable' protocol
 6 | import Foundation
 7 |
 8 | public enum ERCTokenType: CaseIterable {
   |             `- note: consider making enum 'ERCTokenType' conform to the 'Sendable' protocol
 9 |     case erc20
10 |     case erc721
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Fantom/FTMScan/FTMScan.swift:19:24: warning: static property '_apiKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
17 |     public let userReadableName: String = "FTMScan"
18 |
19 |     private static var _apiKey: String?
   |                        |- warning: static property '_apiKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                        |- note: convert '_apiKey' to a 'let' constant to make 'Sendable' shared state immutable
   |                        |- note: annotate '_apiKey' with '@MainActor' if property should only be accessed from the main actor
   |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
20 |     public static var apiKey: String? {
21 |         get { _apiKey ?? ProcessInfo.processInfo.environment[apiKeyName] }
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Fantom/FantomChain.swift:50:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'FantomChain' may have shared mutable state; this is an error in the Swift 6 language mode
 6 | import Foundation
 7 |
 8 | public final class FantomChain: CryptoChain {
   |                    `- note: class 'FantomChain' does not conform to the 'Sendable' protocol
 9 |     // MARK: CryptoChain
10 |
   :
48 |     static let ftmContractAddress = "ftm"
49 |
50 |     public static let `default`: FantomChain = .init()
   |                       |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'FantomChain' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'default' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
51 |
52 |     private init() {
[1948/1959] Compiling CryptoScraper Etherscan.swift
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Ethereum/EthereumChain.swift:50:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'EthereumChain' may have shared mutable state; this is an error in the Swift 6 language mode
 6 | import Foundation
 7 |
 8 | public final class EthereumChain: CryptoChain {
   |                    `- note: class 'EthereumChain' does not conform to the 'Sendable' protocol
 9 |     // MARK: CryptoChain
10 |
   :
48 |     static let ethContractAddress = "eth"
49 |
50 |     public static let `default`: EthereumChain = .init()
   |                       |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'EthereumChain' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'default' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
51 |
52 |     private init() {
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Ethereum/Etherscan/Etherscan.swift:14:23: warning: static property 'supportedERCTokenTypes' is not concurrency-safe because non-'Sendable' type 'Set<ERCTokenType>' may have shared mutable state; this is an error in the Swift 6 language mode
12 |     public typealias Contract = EthereumContract
13 |
14 |     public static let supportedERCTokenTypes: Set<ERCTokenType> = Set(ERCTokenType.allCases)
   |                       |- warning: static property 'supportedERCTokenTypes' is not concurrency-safe because non-'Sendable' type 'Set<ERCTokenType>' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'supportedERCTokenTypes' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
15 |     public static let endPoint: URL = .init(string: "https://api.etherscan.io/api")!
16 |     public static let apiKeyName: String = "ETHER_SCAN_KEY"
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Ethereum/EthereumScanner/EthereumScanner.swift:8:13: note: consider making enum 'ERCTokenType' conform to the 'Sendable' protocol
 6 | import Foundation
 7 |
 8 | public enum ERCTokenType: CaseIterable {
   |             `- note: consider making enum 'ERCTokenType' conform to the 'Sendable' protocol
 9 |     case erc20
10 |     case erc721
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Ethereum/Etherscan/Etherscan.swift:19:24: warning: static property '_apiKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
17 |     public let userReadableName: String = "Etherscan"
18 |
19 |     private static var _apiKey: String?
   |                        |- warning: static property '_apiKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                        |- note: convert '_apiKey' to a 'let' constant to make 'Sendable' shared state immutable
   |                        |- note: annotate '_apiKey' with '@MainActor' if property should only be accessed from the main actor
   |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
20 |     public static var apiKey: String? {
21 |         get { _apiKey ?? ProcessInfo.processInfo.environment[apiKeyName] }
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Fantom/FTMScan/FTMScan.swift:14:23: warning: static property 'supportedERCTokenTypes' is not concurrency-safe because non-'Sendable' type 'Set<ERCTokenType>' may have shared mutable state; this is an error in the Swift 6 language mode
12 |     public typealias Contract = FantomContract
13 |
14 |     public static let supportedERCTokenTypes: Set<ERCTokenType> = [.erc20]
   |                       |- warning: static property 'supportedERCTokenTypes' is not concurrency-safe because non-'Sendable' type 'Set<ERCTokenType>' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'supportedERCTokenTypes' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
15 |     public static let endPoint: URL = .init(string: "https://api.ftmscan.com/api")!
16 |     public static let apiKeyName: String = "FTM_SCAN_KEY"
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Ethereum/EthereumScanner/EthereumScanner.swift:8:13: note: consider making enum 'ERCTokenType' conform to the 'Sendable' protocol
 6 | import Foundation
 7 |
 8 | public enum ERCTokenType: CaseIterable {
   |             `- note: consider making enum 'ERCTokenType' conform to the 'Sendable' protocol
 9 |     case erc20
10 |     case erc721
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Fantom/FTMScan/FTMScan.swift:19:24: warning: static property '_apiKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
17 |     public let userReadableName: String = "FTMScan"
18 |
19 |     private static var _apiKey: String?
   |                        |- warning: static property '_apiKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                        |- note: convert '_apiKey' to a 'let' constant to make 'Sendable' shared state immutable
   |                        |- note: annotate '_apiKey' with '@MainActor' if property should only be accessed from the main actor
   |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
20 |     public static var apiKey: String? {
21 |         get { _apiKey ?? ProcessInfo.processInfo.environment[apiKeyName] }
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Fantom/FantomChain.swift:50:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'FantomChain' may have shared mutable state; this is an error in the Swift 6 language mode
 6 | import Foundation
 7 |
 8 | public final class FantomChain: CryptoChain {
   |                    `- note: class 'FantomChain' does not conform to the 'Sendable' protocol
 9 |     // MARK: CryptoChain
10 |
   :
48 |     static let ftmContractAddress = "ftm"
49 |
50 |     public static let `default`: FantomChain = .init()
   |                       |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'FantomChain' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'default' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
51 |
52 |     private init() {
[1949/1959] Compiling CryptoScraper FTMScan.swift
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Ethereum/EthereumChain.swift:50:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'EthereumChain' may have shared mutable state; this is an error in the Swift 6 language mode
 6 | import Foundation
 7 |
 8 | public final class EthereumChain: CryptoChain {
   |                    `- note: class 'EthereumChain' does not conform to the 'Sendable' protocol
 9 |     // MARK: CryptoChain
10 |
   :
48 |     static let ethContractAddress = "eth"
49 |
50 |     public static let `default`: EthereumChain = .init()
   |                       |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'EthereumChain' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'default' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
51 |
52 |     private init() {
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Ethereum/Etherscan/Etherscan.swift:14:23: warning: static property 'supportedERCTokenTypes' is not concurrency-safe because non-'Sendable' type 'Set<ERCTokenType>' may have shared mutable state; this is an error in the Swift 6 language mode
12 |     public typealias Contract = EthereumContract
13 |
14 |     public static let supportedERCTokenTypes: Set<ERCTokenType> = Set(ERCTokenType.allCases)
   |                       |- warning: static property 'supportedERCTokenTypes' is not concurrency-safe because non-'Sendable' type 'Set<ERCTokenType>' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'supportedERCTokenTypes' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
15 |     public static let endPoint: URL = .init(string: "https://api.etherscan.io/api")!
16 |     public static let apiKeyName: String = "ETHER_SCAN_KEY"
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Ethereum/EthereumScanner/EthereumScanner.swift:8:13: note: consider making enum 'ERCTokenType' conform to the 'Sendable' protocol
 6 | import Foundation
 7 |
 8 | public enum ERCTokenType: CaseIterable {
   |             `- note: consider making enum 'ERCTokenType' conform to the 'Sendable' protocol
 9 |     case erc20
10 |     case erc721
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Ethereum/Etherscan/Etherscan.swift:19:24: warning: static property '_apiKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
17 |     public let userReadableName: String = "Etherscan"
18 |
19 |     private static var _apiKey: String?
   |                        |- warning: static property '_apiKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                        |- note: convert '_apiKey' to a 'let' constant to make 'Sendable' shared state immutable
   |                        |- note: annotate '_apiKey' with '@MainActor' if property should only be accessed from the main actor
   |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
20 |     public static var apiKey: String? {
21 |         get { _apiKey ?? ProcessInfo.processInfo.environment[apiKeyName] }
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Fantom/FTMScan/FTMScan.swift:14:23: warning: static property 'supportedERCTokenTypes' is not concurrency-safe because non-'Sendable' type 'Set<ERCTokenType>' may have shared mutable state; this is an error in the Swift 6 language mode
12 |     public typealias Contract = FantomContract
13 |
14 |     public static let supportedERCTokenTypes: Set<ERCTokenType> = [.erc20]
   |                       |- warning: static property 'supportedERCTokenTypes' is not concurrency-safe because non-'Sendable' type 'Set<ERCTokenType>' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'supportedERCTokenTypes' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
15 |     public static let endPoint: URL = .init(string: "https://api.ftmscan.com/api")!
16 |     public static let apiKeyName: String = "FTM_SCAN_KEY"
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Ethereum/EthereumScanner/EthereumScanner.swift:8:13: note: consider making enum 'ERCTokenType' conform to the 'Sendable' protocol
 6 | import Foundation
 7 |
 8 | public enum ERCTokenType: CaseIterable {
   |             `- note: consider making enum 'ERCTokenType' conform to the 'Sendable' protocol
 9 |     case erc20
10 |     case erc721
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Fantom/FTMScan/FTMScan.swift:19:24: warning: static property '_apiKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
17 |     public let userReadableName: String = "FTMScan"
18 |
19 |     private static var _apiKey: String?
   |                        |- warning: static property '_apiKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                        |- note: convert '_apiKey' to a 'let' constant to make 'Sendable' shared state immutable
   |                        |- note: annotate '_apiKey' with '@MainActor' if property should only be accessed from the main actor
   |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
20 |     public static var apiKey: String? {
21 |         get { _apiKey ?? ProcessInfo.processInfo.environment[apiKeyName] }
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Fantom/FantomChain.swift:50:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'FantomChain' may have shared mutable state; this is an error in the Swift 6 language mode
 6 | import Foundation
 7 |
 8 | public final class FantomChain: CryptoChain {
   |                    `- note: class 'FantomChain' does not conform to the 'Sendable' protocol
 9 |     // MARK: CryptoChain
10 |
   :
48 |     static let ftmContractAddress = "ftm"
49 |
50 |     public static let `default`: FantomChain = .init()
   |                       |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'FantomChain' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'default' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
51 |
52 |     private init() {
[1950/1959] Compiling CryptoScraper FantomChain.swift
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Ethereum/EthereumChain.swift:50:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'EthereumChain' may have shared mutable state; this is an error in the Swift 6 language mode
 6 | import Foundation
 7 |
 8 | public final class EthereumChain: CryptoChain {
   |                    `- note: class 'EthereumChain' does not conform to the 'Sendable' protocol
 9 |     // MARK: CryptoChain
10 |
   :
48 |     static let ethContractAddress = "eth"
49 |
50 |     public static let `default`: EthereumChain = .init()
   |                       |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'EthereumChain' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'default' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
51 |
52 |     private init() {
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Ethereum/Etherscan/Etherscan.swift:14:23: warning: static property 'supportedERCTokenTypes' is not concurrency-safe because non-'Sendable' type 'Set<ERCTokenType>' may have shared mutable state; this is an error in the Swift 6 language mode
12 |     public typealias Contract = EthereumContract
13 |
14 |     public static let supportedERCTokenTypes: Set<ERCTokenType> = Set(ERCTokenType.allCases)
   |                       |- warning: static property 'supportedERCTokenTypes' is not concurrency-safe because non-'Sendable' type 'Set<ERCTokenType>' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'supportedERCTokenTypes' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
15 |     public static let endPoint: URL = .init(string: "https://api.etherscan.io/api")!
16 |     public static let apiKeyName: String = "ETHER_SCAN_KEY"
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Ethereum/EthereumScanner/EthereumScanner.swift:8:13: note: consider making enum 'ERCTokenType' conform to the 'Sendable' protocol
 6 | import Foundation
 7 |
 8 | public enum ERCTokenType: CaseIterable {
   |             `- note: consider making enum 'ERCTokenType' conform to the 'Sendable' protocol
 9 |     case erc20
10 |     case erc721
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Ethereum/Etherscan/Etherscan.swift:19:24: warning: static property '_apiKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
17 |     public let userReadableName: String = "Etherscan"
18 |
19 |     private static var _apiKey: String?
   |                        |- warning: static property '_apiKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                        |- note: convert '_apiKey' to a 'let' constant to make 'Sendable' shared state immutable
   |                        |- note: annotate '_apiKey' with '@MainActor' if property should only be accessed from the main actor
   |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
20 |     public static var apiKey: String? {
21 |         get { _apiKey ?? ProcessInfo.processInfo.environment[apiKeyName] }
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Fantom/FTMScan/FTMScan.swift:14:23: warning: static property 'supportedERCTokenTypes' is not concurrency-safe because non-'Sendable' type 'Set<ERCTokenType>' may have shared mutable state; this is an error in the Swift 6 language mode
12 |     public typealias Contract = FantomContract
13 |
14 |     public static let supportedERCTokenTypes: Set<ERCTokenType> = [.erc20]
   |                       |- warning: static property 'supportedERCTokenTypes' is not concurrency-safe because non-'Sendable' type 'Set<ERCTokenType>' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'supportedERCTokenTypes' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
15 |     public static let endPoint: URL = .init(string: "https://api.ftmscan.com/api")!
16 |     public static let apiKeyName: String = "FTM_SCAN_KEY"
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Ethereum/EthereumScanner/EthereumScanner.swift:8:13: note: consider making enum 'ERCTokenType' conform to the 'Sendable' protocol
 6 | import Foundation
 7 |
 8 | public enum ERCTokenType: CaseIterable {
   |             `- note: consider making enum 'ERCTokenType' conform to the 'Sendable' protocol
 9 |     case erc20
10 |     case erc721
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Fantom/FTMScan/FTMScan.swift:19:24: warning: static property '_apiKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
17 |     public let userReadableName: String = "FTMScan"
18 |
19 |     private static var _apiKey: String?
   |                        |- warning: static property '_apiKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                        |- note: convert '_apiKey' to a 'let' constant to make 'Sendable' shared state immutable
   |                        |- note: annotate '_apiKey' with '@MainActor' if property should only be accessed from the main actor
   |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
20 |     public static var apiKey: String? {
21 |         get { _apiKey ?? ProcessInfo.processInfo.environment[apiKeyName] }
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Fantom/FantomChain.swift:50:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'FantomChain' may have shared mutable state; this is an error in the Swift 6 language mode
 6 | import Foundation
 7 |
 8 | public final class FantomChain: CryptoChain {
   |                    `- note: class 'FantomChain' does not conform to the 'Sendable' protocol
 9 |     // MARK: CryptoChain
10 |
   :
48 |     static let ftmContractAddress = "ftm"
49 |
50 |     public static let `default`: FantomChain = .init()
   |                       |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'FantomChain' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'default' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
51 |
52 |     private init() {
[1951/1959] Compiling CryptoScraper FantomContract.swift
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Ethereum/EthereumChain.swift:50:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'EthereumChain' may have shared mutable state; this is an error in the Swift 6 language mode
 6 | import Foundation
 7 |
 8 | public final class EthereumChain: CryptoChain {
   |                    `- note: class 'EthereumChain' does not conform to the 'Sendable' protocol
 9 |     // MARK: CryptoChain
10 |
   :
48 |     static let ethContractAddress = "eth"
49 |
50 |     public static let `default`: EthereumChain = .init()
   |                       |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'EthereumChain' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'default' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
51 |
52 |     private init() {
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Ethereum/Etherscan/Etherscan.swift:14:23: warning: static property 'supportedERCTokenTypes' is not concurrency-safe because non-'Sendable' type 'Set<ERCTokenType>' may have shared mutable state; this is an error in the Swift 6 language mode
12 |     public typealias Contract = EthereumContract
13 |
14 |     public static let supportedERCTokenTypes: Set<ERCTokenType> = Set(ERCTokenType.allCases)
   |                       |- warning: static property 'supportedERCTokenTypes' is not concurrency-safe because non-'Sendable' type 'Set<ERCTokenType>' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'supportedERCTokenTypes' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
15 |     public static let endPoint: URL = .init(string: "https://api.etherscan.io/api")!
16 |     public static let apiKeyName: String = "ETHER_SCAN_KEY"
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Ethereum/EthereumScanner/EthereumScanner.swift:8:13: note: consider making enum 'ERCTokenType' conform to the 'Sendable' protocol
 6 | import Foundation
 7 |
 8 | public enum ERCTokenType: CaseIterable {
   |             `- note: consider making enum 'ERCTokenType' conform to the 'Sendable' protocol
 9 |     case erc20
10 |     case erc721
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Ethereum/Etherscan/Etherscan.swift:19:24: warning: static property '_apiKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
17 |     public let userReadableName: String = "Etherscan"
18 |
19 |     private static var _apiKey: String?
   |                        |- warning: static property '_apiKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                        |- note: convert '_apiKey' to a 'let' constant to make 'Sendable' shared state immutable
   |                        |- note: annotate '_apiKey' with '@MainActor' if property should only be accessed from the main actor
   |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
20 |     public static var apiKey: String? {
21 |         get { _apiKey ?? ProcessInfo.processInfo.environment[apiKeyName] }
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Fantom/FTMScan/FTMScan.swift:14:23: warning: static property 'supportedERCTokenTypes' is not concurrency-safe because non-'Sendable' type 'Set<ERCTokenType>' may have shared mutable state; this is an error in the Swift 6 language mode
12 |     public typealias Contract = FantomContract
13 |
14 |     public static let supportedERCTokenTypes: Set<ERCTokenType> = [.erc20]
   |                       |- warning: static property 'supportedERCTokenTypes' is not concurrency-safe because non-'Sendable' type 'Set<ERCTokenType>' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'supportedERCTokenTypes' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
15 |     public static let endPoint: URL = .init(string: "https://api.ftmscan.com/api")!
16 |     public static let apiKeyName: String = "FTM_SCAN_KEY"
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Ethereum/EthereumScanner/EthereumScanner.swift:8:13: note: consider making enum 'ERCTokenType' conform to the 'Sendable' protocol
 6 | import Foundation
 7 |
 8 | public enum ERCTokenType: CaseIterable {
   |             `- note: consider making enum 'ERCTokenType' conform to the 'Sendable' protocol
 9 |     case erc20
10 |     case erc721
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Fantom/FTMScan/FTMScan.swift:19:24: warning: static property '_apiKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
17 |     public let userReadableName: String = "FTMScan"
18 |
19 |     private static var _apiKey: String?
   |                        |- warning: static property '_apiKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                        |- note: convert '_apiKey' to a 'let' constant to make 'Sendable' shared state immutable
   |                        |- note: annotate '_apiKey' with '@MainActor' if property should only be accessed from the main actor
   |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
20 |     public static var apiKey: String? {
21 |         get { _apiKey ?? ProcessInfo.processInfo.environment[apiKeyName] }
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Fantom/FantomChain.swift:50:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'FantomChain' may have shared mutable state; this is an error in the Swift 6 language mode
 6 | import Foundation
 7 |
 8 | public final class FantomChain: CryptoChain {
   |                    `- note: class 'FantomChain' does not conform to the 'Sendable' protocol
 9 |     // MARK: CryptoChain
10 |
   :
48 |     static let ftmContractAddress = "ftm"
49 |
50 |     public static let `default`: FantomChain = .init()
   |                       |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'FantomChain' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'default' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
51 |
52 |     private init() {
[1952/1959] Compiling CryptoScraper OptimismChain.swift
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Optimism/OptimismChain.swift:50:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'OptimismChain' may have shared mutable state; this is an error in the Swift 6 language mode
 6 | import Foundation
 7 |
 8 | public final class OptimismChain: CryptoChain {
   |                    `- note: class 'OptimismChain' does not conform to the 'Sendable' protocol
 9 |     // MARK: CryptoChain
10 |
   :
48 |     static let opContractAddress = EthereumChain.ethContractAddress // ETH is the chain token
49 |
50 |     public static let `default`: OptimismChain = .init()
   |                       |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'OptimismChain' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'default' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
51 |
52 |     private init() {
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Optimism/OptimisticEtherscan/OptimisticEtherscan.swift:14:23: warning: static property 'supportedERCTokenTypes' is not concurrency-safe because non-'Sendable' type 'Set<ERCTokenType>' may have shared mutable state; this is an error in the Swift 6 language mode
12 |     public typealias Contract = OptimismContract
13 |
14 |     public static let supportedERCTokenTypes: Set<ERCTokenType> = [.erc20]
   |                       |- warning: static property 'supportedERCTokenTypes' is not concurrency-safe because non-'Sendable' type 'Set<ERCTokenType>' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'supportedERCTokenTypes' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
15 |     public static let endPoint: URL = .init(string: "https://api-optimistic.etherscan.io/api")!
16 |     public static let apiKeyName: String = "OPTIMISTIC_ETHER_SCAN_KEY"
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Ethereum/EthereumScanner/EthereumScanner.swift:8:13: note: consider making enum 'ERCTokenType' conform to the 'Sendable' protocol
 6 | import Foundation
 7 |
 8 | public enum ERCTokenType: CaseIterable {
   |             `- note: consider making enum 'ERCTokenType' conform to the 'Sendable' protocol
 9 |     case erc20
10 |     case erc721
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Optimism/OptimisticEtherscan/OptimisticEtherscan.swift:19:24: warning: static property '_apiKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
17 |     public let userReadableName: String = "OptimisticEtherscan"
18 |
19 |     private static var _apiKey: String?
   |                        |- warning: static property '_apiKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                        |- note: convert '_apiKey' to a 'let' constant to make 'Sendable' shared state immutable
   |                        |- note: annotate '_apiKey' with '@MainActor' if property should only be accessed from the main actor
   |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
20 |     public static var apiKey: String? {
21 |         get { _apiKey ?? ProcessInfo.processInfo.environment[apiKeyName] }
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Polygon/PolygonChain.swift:50:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'PolygonChain' may have shared mutable state; this is an error in the Swift 6 language mode
 6 | import Foundation
 7 |
 8 | public final class PolygonChain: CryptoChain {
   |                    `- note: class 'PolygonChain' does not conform to the 'Sendable' protocol
 9 |     // MARK: CryptoChain
10 |
   :
48 |     static let maticContractAddress = "matic"
49 |
50 |     public static let `default`: PolygonChain = .init()
   |                       |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'PolygonChain' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'default' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
51 |
52 |     private init() {
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Polygon/PolygonScan/PolygonScan.swift:14:23: warning: static property 'supportedERCTokenTypes' is not concurrency-safe because non-'Sendable' type 'Set<ERCTokenType>' may have shared mutable state; this is an error in the Swift 6 language mode
12 |     public typealias Contract = MaticContract
13 |
14 |     public static let supportedERCTokenTypes: Set<ERCTokenType> = [.erc20]
   |                       |- warning: static property 'supportedERCTokenTypes' is not concurrency-safe because non-'Sendable' type 'Set<ERCTokenType>' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'supportedERCTokenTypes' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
15 |     public static let endPoint: URL = .init(string: "https://api.polygonscan.com/api")!
16 |     public static let apiKeyName: String = "POLYGON_SCAN_KEY"
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Ethereum/EthereumScanner/EthereumScanner.swift:8:13: note: consider making enum 'ERCTokenType' conform to the 'Sendable' protocol
 6 | import Foundation
 7 |
 8 | public enum ERCTokenType: CaseIterable {
   |             `- note: consider making enum 'ERCTokenType' conform to the 'Sendable' protocol
 9 |     case erc20
10 |     case erc721
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Polygon/PolygonScan/PolygonScan.swift:19:24: warning: static property '_apiKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
17 |     public let userReadableName: String = "PolygonScan"
18 |
19 |     private static var _apiKey: String?
   |                        |- warning: static property '_apiKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                        |- note: convert '_apiKey' to a 'let' constant to make 'Sendable' shared state immutable
   |                        |- note: annotate '_apiKey' with '@MainActor' if property should only be accessed from the main actor
   |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
20 |     public static var apiKey: String? {
21 |         get { _apiKey ?? ProcessInfo.processInfo.environment[apiKeyName] }
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Tron/TronChain.swift:52:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'TronChain' may have shared mutable state; this is an error in the Swift 6 language mode
 6 | import Foundation
 7 |
 8 | public final class TronChain: CryptoChain {
   |                    `- note: class 'TronChain' does not conform to the 'Sendable' protocol
 9 |     // MARK: CryptoChain
10 |
   :
50 |     static let trxContractAddress = "TRX"
51 |
52 |     public static let `default`: TronChain = .init()
   |                       |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'TronChain' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'default' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
53 |
54 |     private init() {
[1953/1959] Compiling CryptoScraper OptimismContract.swift
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Optimism/OptimismChain.swift:50:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'OptimismChain' may have shared mutable state; this is an error in the Swift 6 language mode
 6 | import Foundation
 7 |
 8 | public final class OptimismChain: CryptoChain {
   |                    `- note: class 'OptimismChain' does not conform to the 'Sendable' protocol
 9 |     // MARK: CryptoChain
10 |
   :
48 |     static let opContractAddress = EthereumChain.ethContractAddress // ETH is the chain token
49 |
50 |     public static let `default`: OptimismChain = .init()
   |                       |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'OptimismChain' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'default' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
51 |
52 |     private init() {
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Optimism/OptimisticEtherscan/OptimisticEtherscan.swift:14:23: warning: static property 'supportedERCTokenTypes' is not concurrency-safe because non-'Sendable' type 'Set<ERCTokenType>' may have shared mutable state; this is an error in the Swift 6 language mode
12 |     public typealias Contract = OptimismContract
13 |
14 |     public static let supportedERCTokenTypes: Set<ERCTokenType> = [.erc20]
   |                       |- warning: static property 'supportedERCTokenTypes' is not concurrency-safe because non-'Sendable' type 'Set<ERCTokenType>' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'supportedERCTokenTypes' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
15 |     public static let endPoint: URL = .init(string: "https://api-optimistic.etherscan.io/api")!
16 |     public static let apiKeyName: String = "OPTIMISTIC_ETHER_SCAN_KEY"
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Ethereum/EthereumScanner/EthereumScanner.swift:8:13: note: consider making enum 'ERCTokenType' conform to the 'Sendable' protocol
 6 | import Foundation
 7 |
 8 | public enum ERCTokenType: CaseIterable {
   |             `- note: consider making enum 'ERCTokenType' conform to the 'Sendable' protocol
 9 |     case erc20
10 |     case erc721
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Optimism/OptimisticEtherscan/OptimisticEtherscan.swift:19:24: warning: static property '_apiKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
17 |     public let userReadableName: String = "OptimisticEtherscan"
18 |
19 |     private static var _apiKey: String?
   |                        |- warning: static property '_apiKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                        |- note: convert '_apiKey' to a 'let' constant to make 'Sendable' shared state immutable
   |                        |- note: annotate '_apiKey' with '@MainActor' if property should only be accessed from the main actor
   |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
20 |     public static var apiKey: String? {
21 |         get { _apiKey ?? ProcessInfo.processInfo.environment[apiKeyName] }
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Polygon/PolygonChain.swift:50:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'PolygonChain' may have shared mutable state; this is an error in the Swift 6 language mode
 6 | import Foundation
 7 |
 8 | public final class PolygonChain: CryptoChain {
   |                    `- note: class 'PolygonChain' does not conform to the 'Sendable' protocol
 9 |     // MARK: CryptoChain
10 |
   :
48 |     static let maticContractAddress = "matic"
49 |
50 |     public static let `default`: PolygonChain = .init()
   |                       |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'PolygonChain' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'default' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
51 |
52 |     private init() {
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Polygon/PolygonScan/PolygonScan.swift:14:23: warning: static property 'supportedERCTokenTypes' is not concurrency-safe because non-'Sendable' type 'Set<ERCTokenType>' may have shared mutable state; this is an error in the Swift 6 language mode
12 |     public typealias Contract = MaticContract
13 |
14 |     public static let supportedERCTokenTypes: Set<ERCTokenType> = [.erc20]
   |                       |- warning: static property 'supportedERCTokenTypes' is not concurrency-safe because non-'Sendable' type 'Set<ERCTokenType>' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'supportedERCTokenTypes' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
15 |     public static let endPoint: URL = .init(string: "https://api.polygonscan.com/api")!
16 |     public static let apiKeyName: String = "POLYGON_SCAN_KEY"
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Ethereum/EthereumScanner/EthereumScanner.swift:8:13: note: consider making enum 'ERCTokenType' conform to the 'Sendable' protocol
 6 | import Foundation
 7 |
 8 | public enum ERCTokenType: CaseIterable {
   |             `- note: consider making enum 'ERCTokenType' conform to the 'Sendable' protocol
 9 |     case erc20
10 |     case erc721
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Polygon/PolygonScan/PolygonScan.swift:19:24: warning: static property '_apiKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
17 |     public let userReadableName: String = "PolygonScan"
18 |
19 |     private static var _apiKey: String?
   |                        |- warning: static property '_apiKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                        |- note: convert '_apiKey' to a 'let' constant to make 'Sendable' shared state immutable
   |                        |- note: annotate '_apiKey' with '@MainActor' if property should only be accessed from the main actor
   |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
20 |     public static var apiKey: String? {
21 |         get { _apiKey ?? ProcessInfo.processInfo.environment[apiKeyName] }
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Tron/TronChain.swift:52:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'TronChain' may have shared mutable state; this is an error in the Swift 6 language mode
 6 | import Foundation
 7 |
 8 | public final class TronChain: CryptoChain {
   |                    `- note: class 'TronChain' does not conform to the 'Sendable' protocol
 9 |     // MARK: CryptoChain
10 |
   :
50 |     static let trxContractAddress = "TRX"
51 |
52 |     public static let `default`: TronChain = .init()
   |                       |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'TronChain' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'default' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
53 |
54 |     private init() {
[1954/1959] Compiling CryptoScraper OptimisticEtherscan.swift
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Optimism/OptimismChain.swift:50:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'OptimismChain' may have shared mutable state; this is an error in the Swift 6 language mode
 6 | import Foundation
 7 |
 8 | public final class OptimismChain: CryptoChain {
   |                    `- note: class 'OptimismChain' does not conform to the 'Sendable' protocol
 9 |     // MARK: CryptoChain
10 |
   :
48 |     static let opContractAddress = EthereumChain.ethContractAddress // ETH is the chain token
49 |
50 |     public static let `default`: OptimismChain = .init()
   |                       |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'OptimismChain' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'default' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
51 |
52 |     private init() {
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Optimism/OptimisticEtherscan/OptimisticEtherscan.swift:14:23: warning: static property 'supportedERCTokenTypes' is not concurrency-safe because non-'Sendable' type 'Set<ERCTokenType>' may have shared mutable state; this is an error in the Swift 6 language mode
12 |     public typealias Contract = OptimismContract
13 |
14 |     public static let supportedERCTokenTypes: Set<ERCTokenType> = [.erc20]
   |                       |- warning: static property 'supportedERCTokenTypes' is not concurrency-safe because non-'Sendable' type 'Set<ERCTokenType>' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'supportedERCTokenTypes' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
15 |     public static let endPoint: URL = .init(string: "https://api-optimistic.etherscan.io/api")!
16 |     public static let apiKeyName: String = "OPTIMISTIC_ETHER_SCAN_KEY"
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Ethereum/EthereumScanner/EthereumScanner.swift:8:13: note: consider making enum 'ERCTokenType' conform to the 'Sendable' protocol
 6 | import Foundation
 7 |
 8 | public enum ERCTokenType: CaseIterable {
   |             `- note: consider making enum 'ERCTokenType' conform to the 'Sendable' protocol
 9 |     case erc20
10 |     case erc721
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Optimism/OptimisticEtherscan/OptimisticEtherscan.swift:19:24: warning: static property '_apiKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
17 |     public let userReadableName: String = "OptimisticEtherscan"
18 |
19 |     private static var _apiKey: String?
   |                        |- warning: static property '_apiKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                        |- note: convert '_apiKey' to a 'let' constant to make 'Sendable' shared state immutable
   |                        |- note: annotate '_apiKey' with '@MainActor' if property should only be accessed from the main actor
   |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
20 |     public static var apiKey: String? {
21 |         get { _apiKey ?? ProcessInfo.processInfo.environment[apiKeyName] }
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Polygon/PolygonChain.swift:50:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'PolygonChain' may have shared mutable state; this is an error in the Swift 6 language mode
 6 | import Foundation
 7 |
 8 | public final class PolygonChain: CryptoChain {
   |                    `- note: class 'PolygonChain' does not conform to the 'Sendable' protocol
 9 |     // MARK: CryptoChain
10 |
   :
48 |     static let maticContractAddress = "matic"
49 |
50 |     public static let `default`: PolygonChain = .init()
   |                       |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'PolygonChain' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'default' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
51 |
52 |     private init() {
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Polygon/PolygonScan/PolygonScan.swift:14:23: warning: static property 'supportedERCTokenTypes' is not concurrency-safe because non-'Sendable' type 'Set<ERCTokenType>' may have shared mutable state; this is an error in the Swift 6 language mode
12 |     public typealias Contract = MaticContract
13 |
14 |     public static let supportedERCTokenTypes: Set<ERCTokenType> = [.erc20]
   |                       |- warning: static property 'supportedERCTokenTypes' is not concurrency-safe because non-'Sendable' type 'Set<ERCTokenType>' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'supportedERCTokenTypes' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
15 |     public static let endPoint: URL = .init(string: "https://api.polygonscan.com/api")!
16 |     public static let apiKeyName: String = "POLYGON_SCAN_KEY"
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Ethereum/EthereumScanner/EthereumScanner.swift:8:13: note: consider making enum 'ERCTokenType' conform to the 'Sendable' protocol
 6 | import Foundation
 7 |
 8 | public enum ERCTokenType: CaseIterable {
   |             `- note: consider making enum 'ERCTokenType' conform to the 'Sendable' protocol
 9 |     case erc20
10 |     case erc721
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Polygon/PolygonScan/PolygonScan.swift:19:24: warning: static property '_apiKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
17 |     public let userReadableName: String = "PolygonScan"
18 |
19 |     private static var _apiKey: String?
   |                        |- warning: static property '_apiKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                        |- note: convert '_apiKey' to a 'let' constant to make 'Sendable' shared state immutable
   |                        |- note: annotate '_apiKey' with '@MainActor' if property should only be accessed from the main actor
   |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
20 |     public static var apiKey: String? {
21 |         get { _apiKey ?? ProcessInfo.processInfo.environment[apiKeyName] }
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Tron/TronChain.swift:52:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'TronChain' may have shared mutable state; this is an error in the Swift 6 language mode
 6 | import Foundation
 7 |
 8 | public final class TronChain: CryptoChain {
   |                    `- note: class 'TronChain' does not conform to the 'Sendable' protocol
 9 |     // MARK: CryptoChain
10 |
   :
50 |     static let trxContractAddress = "TRX"
51 |
52 |     public static let `default`: TronChain = .init()
   |                       |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'TronChain' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'default' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
53 |
54 |     private init() {
[1955/1959] Compiling CryptoScraper MaticContract.swift
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Optimism/OptimismChain.swift:50:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'OptimismChain' may have shared mutable state; this is an error in the Swift 6 language mode
 6 | import Foundation
 7 |
 8 | public final class OptimismChain: CryptoChain {
   |                    `- note: class 'OptimismChain' does not conform to the 'Sendable' protocol
 9 |     // MARK: CryptoChain
10 |
   :
48 |     static let opContractAddress = EthereumChain.ethContractAddress // ETH is the chain token
49 |
50 |     public static let `default`: OptimismChain = .init()
   |                       |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'OptimismChain' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'default' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
51 |
52 |     private init() {
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Optimism/OptimisticEtherscan/OptimisticEtherscan.swift:14:23: warning: static property 'supportedERCTokenTypes' is not concurrency-safe because non-'Sendable' type 'Set<ERCTokenType>' may have shared mutable state; this is an error in the Swift 6 language mode
12 |     public typealias Contract = OptimismContract
13 |
14 |     public static let supportedERCTokenTypes: Set<ERCTokenType> = [.erc20]
   |                       |- warning: static property 'supportedERCTokenTypes' is not concurrency-safe because non-'Sendable' type 'Set<ERCTokenType>' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'supportedERCTokenTypes' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
15 |     public static let endPoint: URL = .init(string: "https://api-optimistic.etherscan.io/api")!
16 |     public static let apiKeyName: String = "OPTIMISTIC_ETHER_SCAN_KEY"
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Ethereum/EthereumScanner/EthereumScanner.swift:8:13: note: consider making enum 'ERCTokenType' conform to the 'Sendable' protocol
 6 | import Foundation
 7 |
 8 | public enum ERCTokenType: CaseIterable {
   |             `- note: consider making enum 'ERCTokenType' conform to the 'Sendable' protocol
 9 |     case erc20
10 |     case erc721
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Optimism/OptimisticEtherscan/OptimisticEtherscan.swift:19:24: warning: static property '_apiKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
17 |     public let userReadableName: String = "OptimisticEtherscan"
18 |
19 |     private static var _apiKey: String?
   |                        |- warning: static property '_apiKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                        |- note: convert '_apiKey' to a 'let' constant to make 'Sendable' shared state immutable
   |                        |- note: annotate '_apiKey' with '@MainActor' if property should only be accessed from the main actor
   |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
20 |     public static var apiKey: String? {
21 |         get { _apiKey ?? ProcessInfo.processInfo.environment[apiKeyName] }
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Polygon/PolygonChain.swift:50:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'PolygonChain' may have shared mutable state; this is an error in the Swift 6 language mode
 6 | import Foundation
 7 |
 8 | public final class PolygonChain: CryptoChain {
   |                    `- note: class 'PolygonChain' does not conform to the 'Sendable' protocol
 9 |     // MARK: CryptoChain
10 |
   :
48 |     static let maticContractAddress = "matic"
49 |
50 |     public static let `default`: PolygonChain = .init()
   |                       |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'PolygonChain' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'default' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
51 |
52 |     private init() {
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Polygon/PolygonScan/PolygonScan.swift:14:23: warning: static property 'supportedERCTokenTypes' is not concurrency-safe because non-'Sendable' type 'Set<ERCTokenType>' may have shared mutable state; this is an error in the Swift 6 language mode
12 |     public typealias Contract = MaticContract
13 |
14 |     public static let supportedERCTokenTypes: Set<ERCTokenType> = [.erc20]
   |                       |- warning: static property 'supportedERCTokenTypes' is not concurrency-safe because non-'Sendable' type 'Set<ERCTokenType>' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'supportedERCTokenTypes' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
15 |     public static let endPoint: URL = .init(string: "https://api.polygonscan.com/api")!
16 |     public static let apiKeyName: String = "POLYGON_SCAN_KEY"
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Ethereum/EthereumScanner/EthereumScanner.swift:8:13: note: consider making enum 'ERCTokenType' conform to the 'Sendable' protocol
 6 | import Foundation
 7 |
 8 | public enum ERCTokenType: CaseIterable {
   |             `- note: consider making enum 'ERCTokenType' conform to the 'Sendable' protocol
 9 |     case erc20
10 |     case erc721
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Polygon/PolygonScan/PolygonScan.swift:19:24: warning: static property '_apiKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
17 |     public let userReadableName: String = "PolygonScan"
18 |
19 |     private static var _apiKey: String?
   |                        |- warning: static property '_apiKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                        |- note: convert '_apiKey' to a 'let' constant to make 'Sendable' shared state immutable
   |                        |- note: annotate '_apiKey' with '@MainActor' if property should only be accessed from the main actor
   |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
20 |     public static var apiKey: String? {
21 |         get { _apiKey ?? ProcessInfo.processInfo.environment[apiKeyName] }
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Tron/TronChain.swift:52:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'TronChain' may have shared mutable state; this is an error in the Swift 6 language mode
 6 | import Foundation
 7 |
 8 | public final class TronChain: CryptoChain {
   |                    `- note: class 'TronChain' does not conform to the 'Sendable' protocol
 9 |     // MARK: CryptoChain
10 |
   :
50 |     static let trxContractAddress = "TRX"
51 |
52 |     public static let `default`: TronChain = .init()
   |                       |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'TronChain' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'default' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
53 |
54 |     private init() {
[1956/1959] Compiling CryptoScraper PolygonChain.swift
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Optimism/OptimismChain.swift:50:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'OptimismChain' may have shared mutable state; this is an error in the Swift 6 language mode
 6 | import Foundation
 7 |
 8 | public final class OptimismChain: CryptoChain {
   |                    `- note: class 'OptimismChain' does not conform to the 'Sendable' protocol
 9 |     // MARK: CryptoChain
10 |
   :
48 |     static let opContractAddress = EthereumChain.ethContractAddress // ETH is the chain token
49 |
50 |     public static let `default`: OptimismChain = .init()
   |                       |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'OptimismChain' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'default' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
51 |
52 |     private init() {
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Optimism/OptimisticEtherscan/OptimisticEtherscan.swift:14:23: warning: static property 'supportedERCTokenTypes' is not concurrency-safe because non-'Sendable' type 'Set<ERCTokenType>' may have shared mutable state; this is an error in the Swift 6 language mode
12 |     public typealias Contract = OptimismContract
13 |
14 |     public static let supportedERCTokenTypes: Set<ERCTokenType> = [.erc20]
   |                       |- warning: static property 'supportedERCTokenTypes' is not concurrency-safe because non-'Sendable' type 'Set<ERCTokenType>' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'supportedERCTokenTypes' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
15 |     public static let endPoint: URL = .init(string: "https://api-optimistic.etherscan.io/api")!
16 |     public static let apiKeyName: String = "OPTIMISTIC_ETHER_SCAN_KEY"
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Ethereum/EthereumScanner/EthereumScanner.swift:8:13: note: consider making enum 'ERCTokenType' conform to the 'Sendable' protocol
 6 | import Foundation
 7 |
 8 | public enum ERCTokenType: CaseIterable {
   |             `- note: consider making enum 'ERCTokenType' conform to the 'Sendable' protocol
 9 |     case erc20
10 |     case erc721
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Optimism/OptimisticEtherscan/OptimisticEtherscan.swift:19:24: warning: static property '_apiKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
17 |     public let userReadableName: String = "OptimisticEtherscan"
18 |
19 |     private static var _apiKey: String?
   |                        |- warning: static property '_apiKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                        |- note: convert '_apiKey' to a 'let' constant to make 'Sendable' shared state immutable
   |                        |- note: annotate '_apiKey' with '@MainActor' if property should only be accessed from the main actor
   |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
20 |     public static var apiKey: String? {
21 |         get { _apiKey ?? ProcessInfo.processInfo.environment[apiKeyName] }
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Polygon/PolygonChain.swift:50:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'PolygonChain' may have shared mutable state; this is an error in the Swift 6 language mode
 6 | import Foundation
 7 |
 8 | public final class PolygonChain: CryptoChain {
   |                    `- note: class 'PolygonChain' does not conform to the 'Sendable' protocol
 9 |     // MARK: CryptoChain
10 |
   :
48 |     static let maticContractAddress = "matic"
49 |
50 |     public static let `default`: PolygonChain = .init()
   |                       |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'PolygonChain' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'default' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
51 |
52 |     private init() {
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Polygon/PolygonScan/PolygonScan.swift:14:23: warning: static property 'supportedERCTokenTypes' is not concurrency-safe because non-'Sendable' type 'Set<ERCTokenType>' may have shared mutable state; this is an error in the Swift 6 language mode
12 |     public typealias Contract = MaticContract
13 |
14 |     public static let supportedERCTokenTypes: Set<ERCTokenType> = [.erc20]
   |                       |- warning: static property 'supportedERCTokenTypes' is not concurrency-safe because non-'Sendable' type 'Set<ERCTokenType>' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'supportedERCTokenTypes' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
15 |     public static let endPoint: URL = .init(string: "https://api.polygonscan.com/api")!
16 |     public static let apiKeyName: String = "POLYGON_SCAN_KEY"
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Ethereum/EthereumScanner/EthereumScanner.swift:8:13: note: consider making enum 'ERCTokenType' conform to the 'Sendable' protocol
 6 | import Foundation
 7 |
 8 | public enum ERCTokenType: CaseIterable {
   |             `- note: consider making enum 'ERCTokenType' conform to the 'Sendable' protocol
 9 |     case erc20
10 |     case erc721
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Polygon/PolygonScan/PolygonScan.swift:19:24: warning: static property '_apiKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
17 |     public let userReadableName: String = "PolygonScan"
18 |
19 |     private static var _apiKey: String?
   |                        |- warning: static property '_apiKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                        |- note: convert '_apiKey' to a 'let' constant to make 'Sendable' shared state immutable
   |                        |- note: annotate '_apiKey' with '@MainActor' if property should only be accessed from the main actor
   |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
20 |     public static var apiKey: String? {
21 |         get { _apiKey ?? ProcessInfo.processInfo.environment[apiKeyName] }
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Tron/TronChain.swift:52:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'TronChain' may have shared mutable state; this is an error in the Swift 6 language mode
 6 | import Foundation
 7 |
 8 | public final class TronChain: CryptoChain {
   |                    `- note: class 'TronChain' does not conform to the 'Sendable' protocol
 9 |     // MARK: CryptoChain
10 |
   :
50 |     static let trxContractAddress = "TRX"
51 |
52 |     public static let `default`: TronChain = .init()
   |                       |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'TronChain' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'default' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
53 |
54 |     private init() {
[1957/1959] Compiling CryptoScraper PolygonScan.swift
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Optimism/OptimismChain.swift:50:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'OptimismChain' may have shared mutable state; this is an error in the Swift 6 language mode
 6 | import Foundation
 7 |
 8 | public final class OptimismChain: CryptoChain {
   |                    `- note: class 'OptimismChain' does not conform to the 'Sendable' protocol
 9 |     // MARK: CryptoChain
10 |
   :
48 |     static let opContractAddress = EthereumChain.ethContractAddress // ETH is the chain token
49 |
50 |     public static let `default`: OptimismChain = .init()
   |                       |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'OptimismChain' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'default' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
51 |
52 |     private init() {
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Optimism/OptimisticEtherscan/OptimisticEtherscan.swift:14:23: warning: static property 'supportedERCTokenTypes' is not concurrency-safe because non-'Sendable' type 'Set<ERCTokenType>' may have shared mutable state; this is an error in the Swift 6 language mode
12 |     public typealias Contract = OptimismContract
13 |
14 |     public static let supportedERCTokenTypes: Set<ERCTokenType> = [.erc20]
   |                       |- warning: static property 'supportedERCTokenTypes' is not concurrency-safe because non-'Sendable' type 'Set<ERCTokenType>' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'supportedERCTokenTypes' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
15 |     public static let endPoint: URL = .init(string: "https://api-optimistic.etherscan.io/api")!
16 |     public static let apiKeyName: String = "OPTIMISTIC_ETHER_SCAN_KEY"
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Ethereum/EthereumScanner/EthereumScanner.swift:8:13: note: consider making enum 'ERCTokenType' conform to the 'Sendable' protocol
 6 | import Foundation
 7 |
 8 | public enum ERCTokenType: CaseIterable {
   |             `- note: consider making enum 'ERCTokenType' conform to the 'Sendable' protocol
 9 |     case erc20
10 |     case erc721
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Optimism/OptimisticEtherscan/OptimisticEtherscan.swift:19:24: warning: static property '_apiKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
17 |     public let userReadableName: String = "OptimisticEtherscan"
18 |
19 |     private static var _apiKey: String?
   |                        |- warning: static property '_apiKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                        |- note: convert '_apiKey' to a 'let' constant to make 'Sendable' shared state immutable
   |                        |- note: annotate '_apiKey' with '@MainActor' if property should only be accessed from the main actor
   |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
20 |     public static var apiKey: String? {
21 |         get { _apiKey ?? ProcessInfo.processInfo.environment[apiKeyName] }
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Polygon/PolygonChain.swift:50:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'PolygonChain' may have shared mutable state; this is an error in the Swift 6 language mode
 6 | import Foundation
 7 |
 8 | public final class PolygonChain: CryptoChain {
   |                    `- note: class 'PolygonChain' does not conform to the 'Sendable' protocol
 9 |     // MARK: CryptoChain
10 |
   :
48 |     static let maticContractAddress = "matic"
49 |
50 |     public static let `default`: PolygonChain = .init()
   |                       |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'PolygonChain' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'default' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
51 |
52 |     private init() {
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Polygon/PolygonScan/PolygonScan.swift:14:23: warning: static property 'supportedERCTokenTypes' is not concurrency-safe because non-'Sendable' type 'Set<ERCTokenType>' may have shared mutable state; this is an error in the Swift 6 language mode
12 |     public typealias Contract = MaticContract
13 |
14 |     public static let supportedERCTokenTypes: Set<ERCTokenType> = [.erc20]
   |                       |- warning: static property 'supportedERCTokenTypes' is not concurrency-safe because non-'Sendable' type 'Set<ERCTokenType>' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'supportedERCTokenTypes' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
15 |     public static let endPoint: URL = .init(string: "https://api.polygonscan.com/api")!
16 |     public static let apiKeyName: String = "POLYGON_SCAN_KEY"
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Ethereum/EthereumScanner/EthereumScanner.swift:8:13: note: consider making enum 'ERCTokenType' conform to the 'Sendable' protocol
 6 | import Foundation
 7 |
 8 | public enum ERCTokenType: CaseIterable {
   |             `- note: consider making enum 'ERCTokenType' conform to the 'Sendable' protocol
 9 |     case erc20
10 |     case erc721
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Polygon/PolygonScan/PolygonScan.swift:19:24: warning: static property '_apiKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
17 |     public let userReadableName: String = "PolygonScan"
18 |
19 |     private static var _apiKey: String?
   |                        |- warning: static property '_apiKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                        |- note: convert '_apiKey' to a 'let' constant to make 'Sendable' shared state immutable
   |                        |- note: annotate '_apiKey' with '@MainActor' if property should only be accessed from the main actor
   |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
20 |     public static var apiKey: String? {
21 |         get { _apiKey ?? ProcessInfo.processInfo.environment[apiKeyName] }
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Tron/TronChain.swift:52:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'TronChain' may have shared mutable state; this is an error in the Swift 6 language mode
 6 | import Foundation
 7 |
 8 | public final class TronChain: CryptoChain {
   |                    `- note: class 'TronChain' does not conform to the 'Sendable' protocol
 9 |     // MARK: CryptoChain
10 |
   :
50 |     static let trxContractAddress = "TRX"
51 |
52 |     public static let `default`: TronChain = .init()
   |                       |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'TronChain' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'default' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
53 |
54 |     private init() {
[1958/1959] Compiling CryptoScraper TronChain.swift
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Optimism/OptimismChain.swift:50:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'OptimismChain' may have shared mutable state; this is an error in the Swift 6 language mode
 6 | import Foundation
 7 |
 8 | public final class OptimismChain: CryptoChain {
   |                    `- note: class 'OptimismChain' does not conform to the 'Sendable' protocol
 9 |     // MARK: CryptoChain
10 |
   :
48 |     static let opContractAddress = EthereumChain.ethContractAddress // ETH is the chain token
49 |
50 |     public static let `default`: OptimismChain = .init()
   |                       |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'OptimismChain' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'default' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
51 |
52 |     private init() {
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Optimism/OptimisticEtherscan/OptimisticEtherscan.swift:14:23: warning: static property 'supportedERCTokenTypes' is not concurrency-safe because non-'Sendable' type 'Set<ERCTokenType>' may have shared mutable state; this is an error in the Swift 6 language mode
12 |     public typealias Contract = OptimismContract
13 |
14 |     public static let supportedERCTokenTypes: Set<ERCTokenType> = [.erc20]
   |                       |- warning: static property 'supportedERCTokenTypes' is not concurrency-safe because non-'Sendable' type 'Set<ERCTokenType>' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'supportedERCTokenTypes' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
15 |     public static let endPoint: URL = .init(string: "https://api-optimistic.etherscan.io/api")!
16 |     public static let apiKeyName: String = "OPTIMISTIC_ETHER_SCAN_KEY"
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Ethereum/EthereumScanner/EthereumScanner.swift:8:13: note: consider making enum 'ERCTokenType' conform to the 'Sendable' protocol
 6 | import Foundation
 7 |
 8 | public enum ERCTokenType: CaseIterable {
   |             `- note: consider making enum 'ERCTokenType' conform to the 'Sendable' protocol
 9 |     case erc20
10 |     case erc721
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Optimism/OptimisticEtherscan/OptimisticEtherscan.swift:19:24: warning: static property '_apiKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
17 |     public let userReadableName: String = "OptimisticEtherscan"
18 |
19 |     private static var _apiKey: String?
   |                        |- warning: static property '_apiKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                        |- note: convert '_apiKey' to a 'let' constant to make 'Sendable' shared state immutable
   |                        |- note: annotate '_apiKey' with '@MainActor' if property should only be accessed from the main actor
   |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
20 |     public static var apiKey: String? {
21 |         get { _apiKey ?? ProcessInfo.processInfo.environment[apiKeyName] }
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Polygon/PolygonChain.swift:50:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'PolygonChain' may have shared mutable state; this is an error in the Swift 6 language mode
 6 | import Foundation
 7 |
 8 | public final class PolygonChain: CryptoChain {
   |                    `- note: class 'PolygonChain' does not conform to the 'Sendable' protocol
 9 |     // MARK: CryptoChain
10 |
   :
48 |     static let maticContractAddress = "matic"
49 |
50 |     public static let `default`: PolygonChain = .init()
   |                       |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'PolygonChain' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'default' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
51 |
52 |     private init() {
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Polygon/PolygonScan/PolygonScan.swift:14:23: warning: static property 'supportedERCTokenTypes' is not concurrency-safe because non-'Sendable' type 'Set<ERCTokenType>' may have shared mutable state; this is an error in the Swift 6 language mode
12 |     public typealias Contract = MaticContract
13 |
14 |     public static let supportedERCTokenTypes: Set<ERCTokenType> = [.erc20]
   |                       |- warning: static property 'supportedERCTokenTypes' is not concurrency-safe because non-'Sendable' type 'Set<ERCTokenType>' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'supportedERCTokenTypes' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
15 |     public static let endPoint: URL = .init(string: "https://api.polygonscan.com/api")!
16 |     public static let apiKeyName: String = "POLYGON_SCAN_KEY"
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Ethereum/EthereumScanner/EthereumScanner.swift:8:13: note: consider making enum 'ERCTokenType' conform to the 'Sendable' protocol
 6 | import Foundation
 7 |
 8 | public enum ERCTokenType: CaseIterable {
   |             `- note: consider making enum 'ERCTokenType' conform to the 'Sendable' protocol
 9 |     case erc20
10 |     case erc721
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Polygon/PolygonScan/PolygonScan.swift:19:24: warning: static property '_apiKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
17 |     public let userReadableName: String = "PolygonScan"
18 |
19 |     private static var _apiKey: String?
   |                        |- warning: static property '_apiKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                        |- note: convert '_apiKey' to a 'let' constant to make 'Sendable' shared state immutable
   |                        |- note: annotate '_apiKey' with '@MainActor' if property should only be accessed from the main actor
   |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
20 |     public static var apiKey: String? {
21 |         get { _apiKey ?? ProcessInfo.processInfo.environment[apiKeyName] }
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Tron/TronChain.swift:52:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'TronChain' may have shared mutable state; this is an error in the Swift 6 language mode
 6 | import Foundation
 7 |
 8 | public final class TronChain: CryptoChain {
   |                    `- note: class 'TronChain' does not conform to the 'Sendable' protocol
 9 |     // MARK: CryptoChain
10 |
   :
50 |     static let trxContractAddress = "TRX"
51 |
52 |     public static let `default`: TronChain = .init()
   |                       |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'TronChain' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'default' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
53 |
54 |     private init() {
[1959/1959] Compiling CryptoScraper TronContract.swift
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Optimism/OptimismChain.swift:50:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'OptimismChain' may have shared mutable state; this is an error in the Swift 6 language mode
 6 | import Foundation
 7 |
 8 | public final class OptimismChain: CryptoChain {
   |                    `- note: class 'OptimismChain' does not conform to the 'Sendable' protocol
 9 |     // MARK: CryptoChain
10 |
   :
48 |     static let opContractAddress = EthereumChain.ethContractAddress // ETH is the chain token
49 |
50 |     public static let `default`: OptimismChain = .init()
   |                       |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'OptimismChain' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'default' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
51 |
52 |     private init() {
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Optimism/OptimisticEtherscan/OptimisticEtherscan.swift:14:23: warning: static property 'supportedERCTokenTypes' is not concurrency-safe because non-'Sendable' type 'Set<ERCTokenType>' may have shared mutable state; this is an error in the Swift 6 language mode
12 |     public typealias Contract = OptimismContract
13 |
14 |     public static let supportedERCTokenTypes: Set<ERCTokenType> = [.erc20]
   |                       |- warning: static property 'supportedERCTokenTypes' is not concurrency-safe because non-'Sendable' type 'Set<ERCTokenType>' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'supportedERCTokenTypes' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
15 |     public static let endPoint: URL = .init(string: "https://api-optimistic.etherscan.io/api")!
16 |     public static let apiKeyName: String = "OPTIMISTIC_ETHER_SCAN_KEY"
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Ethereum/EthereumScanner/EthereumScanner.swift:8:13: note: consider making enum 'ERCTokenType' conform to the 'Sendable' protocol
 6 | import Foundation
 7 |
 8 | public enum ERCTokenType: CaseIterable {
   |             `- note: consider making enum 'ERCTokenType' conform to the 'Sendable' protocol
 9 |     case erc20
10 |     case erc721
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Optimism/OptimisticEtherscan/OptimisticEtherscan.swift:19:24: warning: static property '_apiKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
17 |     public let userReadableName: String = "OptimisticEtherscan"
18 |
19 |     private static var _apiKey: String?
   |                        |- warning: static property '_apiKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                        |- note: convert '_apiKey' to a 'let' constant to make 'Sendable' shared state immutable
   |                        |- note: annotate '_apiKey' with '@MainActor' if property should only be accessed from the main actor
   |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
20 |     public static var apiKey: String? {
21 |         get { _apiKey ?? ProcessInfo.processInfo.environment[apiKeyName] }
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Polygon/PolygonChain.swift:50:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'PolygonChain' may have shared mutable state; this is an error in the Swift 6 language mode
 6 | import Foundation
 7 |
 8 | public final class PolygonChain: CryptoChain {
   |                    `- note: class 'PolygonChain' does not conform to the 'Sendable' protocol
 9 |     // MARK: CryptoChain
10 |
   :
48 |     static let maticContractAddress = "matic"
49 |
50 |     public static let `default`: PolygonChain = .init()
   |                       |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'PolygonChain' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'default' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
51 |
52 |     private init() {
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Polygon/PolygonScan/PolygonScan.swift:14:23: warning: static property 'supportedERCTokenTypes' is not concurrency-safe because non-'Sendable' type 'Set<ERCTokenType>' may have shared mutable state; this is an error in the Swift 6 language mode
12 |     public typealias Contract = MaticContract
13 |
14 |     public static let supportedERCTokenTypes: Set<ERCTokenType> = [.erc20]
   |                       |- warning: static property 'supportedERCTokenTypes' is not concurrency-safe because non-'Sendable' type 'Set<ERCTokenType>' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'supportedERCTokenTypes' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
15 |     public static let endPoint: URL = .init(string: "https://api.polygonscan.com/api")!
16 |     public static let apiKeyName: String = "POLYGON_SCAN_KEY"
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Ethereum/EthereumScanner/EthereumScanner.swift:8:13: note: consider making enum 'ERCTokenType' conform to the 'Sendable' protocol
 6 | import Foundation
 7 |
 8 | public enum ERCTokenType: CaseIterable {
   |             `- note: consider making enum 'ERCTokenType' conform to the 'Sendable' protocol
 9 |     case erc20
10 |     case erc721
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Polygon/PolygonScan/PolygonScan.swift:19:24: warning: static property '_apiKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
17 |     public let userReadableName: String = "PolygonScan"
18 |
19 |     private static var _apiKey: String?
   |                        |- warning: static property '_apiKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                        |- note: convert '_apiKey' to a 'let' constant to make 'Sendable' shared state immutable
   |                        |- note: annotate '_apiKey' with '@MainActor' if property should only be accessed from the main actor
   |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
20 |     public static var apiKey: String? {
21 |         get { _apiKey ?? ProcessInfo.processInfo.environment[apiKeyName] }
/host/spi-builder-workspace/Sources/CryptoScraper/BlockChains/Tron/TronChain.swift:52:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'TronChain' may have shared mutable state; this is an error in the Swift 6 language mode
 6 | import Foundation
 7 |
 8 | public final class TronChain: CryptoChain {
   |                    `- note: class 'TronChain' does not conform to the 'Sendable' protocol
 9 |     // MARK: CryptoChain
10 |
   :
50 |     static let trxContractAddress = "TRX"
51 |
52 |     public static let `default`: TronChain = .init()
   |                       |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'TronChain' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'default' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
53 |
54 |     private init() {
BUILD FAILURE 6.0 linux