The Swift Package Index logo.Swift Package Index

Has it really been five years since Swift Package Index launched? Read our anniversary blog post!

Build Information

Successful build of CryptoScraper, reference v0.3.0 (7be2a9), with Swift 6.2 (beta) for macOS (SPM) on 20 Jun 2025 01:06:42 UTC.

Swift 6 data race errors: 0

Build Command

env DEVELOPER_DIR=/Applications/Xcode-26.0.0-Beta.app xcrun swift build --arch arm64

Build Log

========================================
RunAll
========================================
Builder version: 4.64.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/foscomputerservices/CryptoScraper.git
Reference: v0.3.0
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/foscomputerservices/CryptoScraper
 * tag               v0.3.0     -> FETCH_HEAD
HEAD is now at 7be2a91 Merge pull request #15 from foscomputerservices/tron-blockchain
Cloned https://github.com/foscomputerservices/CryptoScraper.git
Revision (git rev-parse @):
7be2a9192f98c8f4f3c449725a29125f78332f6f
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/foscomputerservices/CryptoScraper.git at v0.3.0
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.2
Building package at path:  $PWD
https://github.com/foscomputerservices/CryptoScraper.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-26.0.0-Beta.app xcrun swift build --arch arm64
Building for debugging...
[0/6] Write sources
[5/6] Write swift-version-1EA4D86E10B52AF.txt
[7/20] Compiling ANKFoundation ANKSign.swift
[8/20] Compiling ANKFoundation ANKWords.swift
[9/21] Compiling ANKFoundation ANKSigned.swift
[10/21] Compiling ANKFoundation Aliases.swift
[11/21] Compiling ANKFoundation Text.swift
[12/21] Compiling ANKFoundation ANKIntOrUInt.swift
[13/21] Compiling ANKFoundation ANKLargeBinaryInteger.swift
[14/21] Compiling ANKFoundation ANKCoreInteger.swift
[15/21] Compiling ANKFoundation ANKFixedWidthInteger.swift
[16/21] Compiling ANKFoundation ANKBigEndianTextCodable.swift
[17/21] Compiling ANKFoundation ANKBinaryInteger.swift
[18/21] Compiling ANKFoundation ANKLargeFixedWidthInteger.swift
[19/21] Emitting module ANKFoundation
[20/21] Compiling ANKFoundation ANKBitPatternConvertible.swift
[21/21] Compiling ANKFoundation ANKContiguousBytes.swift
[22/65] Compiling ANKSignedKit ANKSigned+Negation.swift
[23/66] Compiling ANKSignedKit Exports.swift
[24/66] Compiling ANKSignedKit ANKSigned+Subtraction+Digit.swift
[25/66] Compiling ANKSignedKit ANKSigned+Text.swift
[26/66] Compiling ANKSignedKit ANKSigned.swift
[27/66] Compiling ANKFullWidthKit ANKFullWidth+0064.swift
[28/66] Compiling ANKFullWidthKit ANKFullWidth+0128.swift
[29/66] Compiling ANKSignedKit ANKSigned+Subtraction.swift
[30/66] Compiling ANKSignedKit ANKSigned+Numbers.swift
[31/66] Compiling ANKFullWidthKit ANKFullWidth+0384.swift
[32/66] Compiling ANKFullWidthKit ANKFullWidth+0512.swift
[33/66] Emitting module ANKSignedKit
[34/66] Compiling ANKFullWidthKit ANKFullWidth+0192.swift
[35/66] Compiling ANKFullWidthKit ANKFullWidth+0256.swift
[36/66] Compiling ANKFullWidthKit ANKFullWidth+4096.swift
[37/66] Compiling ANKFullWidthKit ANKFullWidth+Addition+Digit.swift
[38/66] Compiling ANKFullWidthKit ANKFullWidth+Addition.swift
[39/66] Compiling ANKFullWidthKit ANKFullWidth+Arithmetic.swift
[42/66] Compiling ANKFullWidthKit ANKFullWidth+1024.swift
[43/66] Compiling ANKFullWidthKit ANKFullWidth+2048.swift
[48/69] Compiling ANKFullWidthKit ANKFullWidth+Negation.swift
[49/69] Compiling ANKFullWidthKit ANKFullWidth+Numbers.swift
[50/69] Compiling ANKFullWidthKit ANKFullWidth+Shifts.swift
[51/69] Compiling ANKFullWidthKit Aliases.swift
[52/69] Compiling ANKFullWidthKit Arithmetic.swift
[53/69] Compiling ANKFullWidthKit Text.swift
[54/69] Compiling ANKFullWidthKit ANKFullWidth+Complements.swift
[55/69] Compiling ANKFullWidthKit ANKFullWidth+Division+Digit.swift
[56/69] Compiling ANKFullWidthKit ANKFullWidth+Division.swift
[57/69] Compiling ANKFullWidthKit ANKFullWidth+Bits.swift
[58/69] Compiling ANKFullWidthKit ANKFullWidth+Bitwise.swift
[59/69] Compiling ANKFullWidthKit ANKFullWidth+Comparisons.swift
[60/69] Compiling ANKFullWidthKit ANKFullWidth+Endianness.swift
[61/69] Compiling ANKFullWidthKit ANKFullWidth+Multiplication+Digit.swift
[62/69] Compiling ANKFullWidthKit ANKFullWidth+Multiplication.swift
[63/69] Compiling ANKFullWidthKit ANKFullWidth+Words+Pointers.swift
[64/69] Compiling ANKFullWidthKit ANKFullWidth+Words.swift
[65/69] Compiling ANKFullWidthKit ANKFullWidth.swift
[66/69] Compiling ANKFullWidthKit ANKFullWidth+Subtraction+Digit.swift
[67/69] Compiling ANKFullWidthKit ANKFullWidth+Subtraction.swift
[68/69] Compiling ANKFullWidthKit ANKFullWidth+Text.swift
[69/69] Emitting module ANKFullWidthKit
[70/71] Compiling AwesomeNumbersKit Exports.swift
[71/71] Emitting module AwesomeNumbersKit
[72/119] Emitting module CryptoScraper
[73/124] Compiling CryptoScraper CryptoInfo.swift
/Users/admin/builder/spi-builder-workspace/Sources/CryptoScraper/Utility/FoundationDataFetch.swift:90:32: warning: capture of non-sendable type 'ResultValue.Type' in an isolated closure
 88 |                     if let data {
 89 |                         do {
 90 |                             if ResultValue.self is String.Type {
    |                                `- warning: capture of non-sendable type 'ResultValue.Type' in an isolated closure
 91 |                                 result = String(data: data, encoding: .utf8) as? ResultValue
 92 |                             } else if ResultValue.self is String?.Type {
/Users/admin/builder/spi-builder-workspace/Sources/CryptoScraper/Utility/FoundationDataFetch.swift:82:60: warning: capture of non-sendable type 'ResultValue.Type' in an isolated closure
 80 |         }
 81 |
 82 |         return try await withCheckedThrowingContinuation { continuation in
    |                                                            `- warning: capture of non-sendable type 'ResultValue.Type' in an isolated closure
 83 |             urlSession
 84 |                 .dataTask(with: urlRequest) { data, _, e in
/Users/admin/builder/spi-builder-workspace/Sources/CryptoScraper/Utility/FoundationDataFetch.swift:143:22: warning: capture of non-sendable type 'ResultValue.Type' in an isolated closure
141 |         urlSession
142 |             .dataTask(with: urlRequest) { data, response, error in
143 |                 Self.completionHandler(
    |                      `- warning: capture of non-sendable type 'ResultValue.Type' in an isolated closure
144 |                     responseData: data,
145 |                     response: response,
/Users/admin/builder/spi-builder-workspace/Sources/CryptoScraper/Utility/FoundationDataFetch.swift:123:134: warning: capture of non-sendable type 'ResultValue.Type' in an isolated closure
121 |     }
122 |
123 |     func send<ResultValue: Decodable>(data: Data, to urlStr: String, httpMethod: String, headers: [(field: String, value: String)]?, callback: @escaping (Result<ResultValue, DataFetchError>) -> Void) {
    |                                                                                                                                      `- warning: capture of non-sendable type 'ResultValue.Type' in an isolated closure
124 |         guard let url = URL(string: urlStr) else {
125 |             callback(.failure(.message("Unable to convert \(urlStr) to URL???")))
[74/124] Compiling CryptoScraper CryptoScanner.swift
/Users/admin/builder/spi-builder-workspace/Sources/CryptoScraper/Utility/FoundationDataFetch.swift:90:32: warning: capture of non-sendable type 'ResultValue.Type' in an isolated closure
 88 |                     if let data {
 89 |                         do {
 90 |                             if ResultValue.self is String.Type {
    |                                `- warning: capture of non-sendable type 'ResultValue.Type' in an isolated closure
 91 |                                 result = String(data: data, encoding: .utf8) as? ResultValue
 92 |                             } else if ResultValue.self is String?.Type {
/Users/admin/builder/spi-builder-workspace/Sources/CryptoScraper/Utility/FoundationDataFetch.swift:82:60: warning: capture of non-sendable type 'ResultValue.Type' in an isolated closure
 80 |         }
 81 |
 82 |         return try await withCheckedThrowingContinuation { continuation in
    |                                                            `- warning: capture of non-sendable type 'ResultValue.Type' in an isolated closure
 83 |             urlSession
 84 |                 .dataTask(with: urlRequest) { data, _, e in
/Users/admin/builder/spi-builder-workspace/Sources/CryptoScraper/Utility/FoundationDataFetch.swift:143:22: warning: capture of non-sendable type 'ResultValue.Type' in an isolated closure
141 |         urlSession
142 |             .dataTask(with: urlRequest) { data, response, error in
143 |                 Self.completionHandler(
    |                      `- warning: capture of non-sendable type 'ResultValue.Type' in an isolated closure
144 |                     responseData: data,
145 |                     response: response,
/Users/admin/builder/spi-builder-workspace/Sources/CryptoScraper/Utility/FoundationDataFetch.swift:123:134: warning: capture of non-sendable type 'ResultValue.Type' in an isolated closure
121 |     }
122 |
123 |     func send<ResultValue: Decodable>(data: Data, to urlStr: String, httpMethod: String, headers: [(field: String, value: String)]?, callback: @escaping (Result<ResultValue, DataFetchError>) -> Void) {
    |                                                                                                                                      `- warning: capture of non-sendable type 'ResultValue.Type' in an isolated closure
124 |         guard let url = URL(string: urlStr) else {
125 |             callback(.failure(.message("Unable to convert \(urlStr) to URL???")))
[75/124] Compiling CryptoScraper CryptoTransaction.swift
/Users/admin/builder/spi-builder-workspace/Sources/CryptoScraper/Utility/FoundationDataFetch.swift:90:32: warning: capture of non-sendable type 'ResultValue.Type' in an isolated closure
 88 |                     if let data {
 89 |                         do {
 90 |                             if ResultValue.self is String.Type {
    |                                `- warning: capture of non-sendable type 'ResultValue.Type' in an isolated closure
 91 |                                 result = String(data: data, encoding: .utf8) as? ResultValue
 92 |                             } else if ResultValue.self is String?.Type {
/Users/admin/builder/spi-builder-workspace/Sources/CryptoScraper/Utility/FoundationDataFetch.swift:82:60: warning: capture of non-sendable type 'ResultValue.Type' in an isolated closure
 80 |         }
 81 |
 82 |         return try await withCheckedThrowingContinuation { continuation in
    |                                                            `- warning: capture of non-sendable type 'ResultValue.Type' in an isolated closure
 83 |             urlSession
 84 |                 .dataTask(with: urlRequest) { data, _, e in
/Users/admin/builder/spi-builder-workspace/Sources/CryptoScraper/Utility/FoundationDataFetch.swift:143:22: warning: capture of non-sendable type 'ResultValue.Type' in an isolated closure
141 |         urlSession
142 |             .dataTask(with: urlRequest) { data, response, error in
143 |                 Self.completionHandler(
    |                      `- warning: capture of non-sendable type 'ResultValue.Type' in an isolated closure
144 |                     responseData: data,
145 |                     response: response,
/Users/admin/builder/spi-builder-workspace/Sources/CryptoScraper/Utility/FoundationDataFetch.swift:123:134: warning: capture of non-sendable type 'ResultValue.Type' in an isolated closure
121 |     }
122 |
123 |     func send<ResultValue: Decodable>(data: Data, to urlStr: String, httpMethod: String, headers: [(field: String, value: String)]?, callback: @escaping (Result<ResultValue, DataFetchError>) -> Void) {
    |                                                                                                                                      `- warning: capture of non-sendable type 'ResultValue.Type' in an isolated closure
124 |         guard let url = URL(string: urlStr) else {
125 |             callback(.failure(.message("Unable to convert \(urlStr) to URL???")))
[76/124] Compiling CryptoScraper FoundationDataFetch.swift
/Users/admin/builder/spi-builder-workspace/Sources/CryptoScraper/Utility/FoundationDataFetch.swift:90:32: warning: capture of non-sendable type 'ResultValue.Type' in an isolated closure
 88 |                     if let data {
 89 |                         do {
 90 |                             if ResultValue.self is String.Type {
    |                                `- warning: capture of non-sendable type 'ResultValue.Type' in an isolated closure
 91 |                                 result = String(data: data, encoding: .utf8) as? ResultValue
 92 |                             } else if ResultValue.self is String?.Type {
/Users/admin/builder/spi-builder-workspace/Sources/CryptoScraper/Utility/FoundationDataFetch.swift:82:60: warning: capture of non-sendable type 'ResultValue.Type' in an isolated closure
 80 |         }
 81 |
 82 |         return try await withCheckedThrowingContinuation { continuation in
    |                                                            `- warning: capture of non-sendable type 'ResultValue.Type' in an isolated closure
 83 |             urlSession
 84 |                 .dataTask(with: urlRequest) { data, _, e in
/Users/admin/builder/spi-builder-workspace/Sources/CryptoScraper/Utility/FoundationDataFetch.swift:143:22: warning: capture of non-sendable type 'ResultValue.Type' in an isolated closure
141 |         urlSession
142 |             .dataTask(with: urlRequest) { data, response, error in
143 |                 Self.completionHandler(
    |                      `- warning: capture of non-sendable type 'ResultValue.Type' in an isolated closure
144 |                     responseData: data,
145 |                     response: response,
/Users/admin/builder/spi-builder-workspace/Sources/CryptoScraper/Utility/FoundationDataFetch.swift:123:134: warning: capture of non-sendable type 'ResultValue.Type' in an isolated closure
121 |     }
122 |
123 |     func send<ResultValue: Decodable>(data: Data, to urlStr: String, httpMethod: String, headers: [(field: String, value: String)]?, callback: @escaping (Result<ResultValue, DataFetchError>) -> Void) {
    |                                                                                                                                      `- warning: capture of non-sendable type 'ResultValue.Type' in an isolated closure
124 |         guard let url = URL(string: urlStr) else {
125 |             callback(.failure(.message("Unable to convert \(urlStr) to URL???")))
[77/124] Compiling CryptoScraper JSONDecoder.swift
/Users/admin/builder/spi-builder-workspace/Sources/CryptoScraper/Utility/FoundationDataFetch.swift:90:32: warning: capture of non-sendable type 'ResultValue.Type' in an isolated closure
 88 |                     if let data {
 89 |                         do {
 90 |                             if ResultValue.self is String.Type {
    |                                `- warning: capture of non-sendable type 'ResultValue.Type' in an isolated closure
 91 |                                 result = String(data: data, encoding: .utf8) as? ResultValue
 92 |                             } else if ResultValue.self is String?.Type {
/Users/admin/builder/spi-builder-workspace/Sources/CryptoScraper/Utility/FoundationDataFetch.swift:82:60: warning: capture of non-sendable type 'ResultValue.Type' in an isolated closure
 80 |         }
 81 |
 82 |         return try await withCheckedThrowingContinuation { continuation in
    |                                                            `- warning: capture of non-sendable type 'ResultValue.Type' in an isolated closure
 83 |             urlSession
 84 |                 .dataTask(with: urlRequest) { data, _, e in
/Users/admin/builder/spi-builder-workspace/Sources/CryptoScraper/Utility/FoundationDataFetch.swift:143:22: warning: capture of non-sendable type 'ResultValue.Type' in an isolated closure
141 |         urlSession
142 |             .dataTask(with: urlRequest) { data, response, error in
143 |                 Self.completionHandler(
    |                      `- warning: capture of non-sendable type 'ResultValue.Type' in an isolated closure
144 |                     responseData: data,
145 |                     response: response,
/Users/admin/builder/spi-builder-workspace/Sources/CryptoScraper/Utility/FoundationDataFetch.swift:123:134: warning: capture of non-sendable type 'ResultValue.Type' in an isolated closure
121 |     }
122 |
123 |     func send<ResultValue: Decodable>(data: Data, to urlStr: String, httpMethod: String, headers: [(field: String, value: String)]?, callback: @escaping (Result<ResultValue, DataFetchError>) -> Void) {
    |                                                                                                                                      `- warning: capture of non-sendable type 'ResultValue.Type' in an isolated closure
124 |         guard let url = URL(string: urlStr) else {
125 |             callback(.failure(.message("Unable to convert \(urlStr) to URL???")))
[78/124] Compiling CryptoScraper CoinGeckoAggregator+Coins.swift
[79/124] Compiling CryptoScraper CoinGeckoAggregator.swift
[80/124] Compiling CryptoScraper CoinGeckoError.swift
[81/124] Compiling CryptoScraper CoinMarketCapAggregator+Coins.swift
[82/124] Compiling CryptoScraper CoinMarketCapAggregator.swift
[83/124] Compiling CryptoScraper CoinMarketCapError.swift
[84/124] Compiling CryptoScraper Exports.swift
[85/124] Compiling CryptoScraper DateFormatter.swift
[86/124] Compiling CryptoScraper Decodable.swift
[87/124] Compiling CryptoScraper DecodingError.swift
[88/124] Compiling CryptoScraper TronScan+Accounts.swift
[89/124] Compiling CryptoScraper TronScan+Transactions.swift
[90/124] Compiling CryptoScraper TronScan.swift
[91/124] Compiling CryptoScraper CryptoScraper.swift
[92/124] Compiling CryptoScraper CoinGeckoAggregator+Availability.swift
[93/124] Compiling CryptoScraper MaticContract.swift
[94/124] Compiling CryptoScraper PolygonChain.swift
[95/124] Compiling CryptoScraper PolygonScan.swift
[96/124] Compiling CryptoScraper TronChain.swift
[97/124] Compiling CryptoScraper TronContract.swift
[98/124] Compiling CryptoScraper URL.swift
[99/124] Compiling CryptoScraper CryptoAmount.swift
[100/124] Compiling CryptoScraper CryptoChain.swift
[101/124] Compiling CryptoScraper CryptoContract.swift
[102/124] Compiling CryptoScraper CryptoDataAggregator.swift
[103/124] Compiling CryptoScraper FantomChain.swift
[104/124] Compiling CryptoScraper FantomContract.swift
[105/124] Compiling CryptoScraper OptimismChain.swift
[106/124] Compiling CryptoScraper OptimismContract.swift
[107/124] Compiling CryptoScraper OptimisticEtherscan.swift
[108/124] Compiling CryptoScraper EthereumScanner+Tokens.swift
[109/124] Compiling CryptoScraper EthereumScanner+Transactions.swift
[110/124] Compiling CryptoScraper EthereumScanner.swift
[111/124] Compiling CryptoScraper Etherscan.swift
[112/124] Compiling CryptoScraper FTMScan.swift
[113/124] Compiling CryptoScraper BNBContract.swift
[114/124] Compiling CryptoScraper BinanceSmartChain.swift
[115/124] Compiling CryptoScraper BscScan.swift
[116/124] Compiling CryptoScraper BitcoinChain.swift
[117/124] Compiling CryptoScraper BitcoinContract.swift
[118/124] Compiling CryptoScraper BlockChainInfo+Accounts.swift
[119/124] Compiling CryptoScraper BlockChainInfo+Transactions.swift
[120/124] Compiling CryptoScraper BlockChainInfo.swift
[121/124] Compiling CryptoScraper BlockChains.swift
[122/124] Compiling CryptoScraper EthereumChain.swift
[123/124] Compiling CryptoScraper EthereumContract.swift
[124/124] Compiling CryptoScraper EthereumScanner+Accounts.swift
Build complete! (13.30s)
Fetching https://github.com/oscbyspro/AwesomeNumbersKit.git
[1/7731] Fetching awesomenumberskit
Fetched https://github.com/oscbyspro/AwesomeNumbersKit.git from cache (1.11s)
Computing version for https://github.com/oscbyspro/AwesomeNumbersKit.git
Computed https://github.com/oscbyspro/AwesomeNumbersKit.git at 0.6.2 (1.65s)
Creating working copy for https://github.com/oscbyspro/AwesomeNumbersKit.git
Working copy of https://github.com/oscbyspro/AwesomeNumbersKit.git resolved at 0.6.2
Build complete.
{
  "dependencies" : [
    {
      "identity" : "awesomenumberskit",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "0.3.4",
            "upper_bound" : "1.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/oscbyspro/AwesomeNumbersKit.git"
    }
  ],
  "manifest_display_name" : "CryptoScraper",
  "name" : "CryptoScraper",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "12.0"
    },
    {
      "name" : "ios",
      "version" : "15.0"
    }
  ],
  "products" : [
    {
      "name" : "CryptoScraper",
      "targets" : [
        "CryptoScraper"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "CryptoScraperTests",
      "module_type" : "SwiftTarget",
      "name" : "CryptoScraperTests",
      "path" : "Tests/CryptoScraperTests",
      "sources" : [
        "BlockChains/BinanceSmartChain/BNBContractTests.swift",
        "BlockChains/BinanceSmartChain/BscScan/BscScanTests.swift",
        "BlockChains/Bitcoin/BitcoinContractTests.swift",
        "BlockChains/Bitcoin/BlockChainInfo/BlockChainInfoTests.swift",
        "BlockChains/BlockChainsTests.swift",
        "BlockChains/Ethereum/EthereumContractTests.swift",
        "BlockChains/Ethereum/Etherscan/EtherScanTests.swift",
        "BlockChains/Fantom/FTMScan/FTMScanTests.swift",
        "BlockChains/Fantom/FantomContractTests.swift",
        "BlockChains/Optimism/OptimismContractTests.swift",
        "BlockChains/Optimism/OptimisticEtherscan/OptimisticEtherscanTests.swift",
        "BlockChains/Polygon/MaticContractTests.swift",
        "BlockChains/Polygon/PolygonScan/PolygonScanTests.swift",
        "BlockChains/Tron/TronContractTests.swift",
        "BlockChains/Tron/TronScan/TronScanTests.swift",
        "CryptoScraperTests.swift",
        "DataAggregators/CoinGecko/CoinGeckoAggregatorTests.swift",
        "DataAggregators/CoinMarketCap/CoinMarketCapAggregatorTests.swift",
        "Utility/FoundationDataFetchTests.swift",
        "Utility/JSONDecoderTests.swift"
      ],
      "target_dependencies" : [
        "CryptoScraper"
      ],
      "type" : "test"
    },
    {
      "c99name" : "CryptoScraper",
      "module_type" : "SwiftTarget",
      "name" : "CryptoScraper",
      "path" : "Sources/CryptoScraper",
      "product_dependencies" : [
        "AwesomeNumbersKit"
      ],
      "product_memberships" : [
        "CryptoScraper"
      ],
      "sources" : [
        "BlockChains/BinanceSmartChain/BNBContract.swift",
        "BlockChains/BinanceSmartChain/BinanceSmartChain.swift",
        "BlockChains/BinanceSmartChain/BscScan/BscScan.swift",
        "BlockChains/Bitcoin/BitcoinChain.swift",
        "BlockChains/Bitcoin/BitcoinContract.swift",
        "BlockChains/Bitcoin/BlockChainInfo/BlockChainInfo+Accounts.swift",
        "BlockChains/Bitcoin/BlockChainInfo/BlockChainInfo+Transactions.swift",
        "BlockChains/Bitcoin/BlockChainInfo/BlockChainInfo.swift",
        "BlockChains/BlockChains.swift",
        "BlockChains/Ethereum/EthereumChain.swift",
        "BlockChains/Ethereum/EthereumContract.swift",
        "BlockChains/Ethereum/EthereumScanner/EthereumScanner+Accounts.swift",
        "BlockChains/Ethereum/EthereumScanner/EthereumScanner+Tokens.swift",
        "BlockChains/Ethereum/EthereumScanner/EthereumScanner+Transactions.swift",
        "BlockChains/Ethereum/EthereumScanner/EthereumScanner.swift",
        "BlockChains/Ethereum/Etherscan/Etherscan.swift",
        "BlockChains/Fantom/FTMScan/FTMScan.swift",
        "BlockChains/Fantom/FantomChain.swift",
        "BlockChains/Fantom/FantomContract.swift",
        "BlockChains/Optimism/OptimismChain.swift",
        "BlockChains/Optimism/OptimismContract.swift",
        "BlockChains/Optimism/OptimisticEtherscan/OptimisticEtherscan.swift",
        "BlockChains/Polygon/MaticContract.swift",
        "BlockChains/Polygon/PolygonChain.swift",
        "BlockChains/Polygon/PolygonScan/PolygonScan.swift",
        "BlockChains/Tron/TronChain.swift",
        "BlockChains/Tron/TronContract.swift",
        "BlockChains/Tron/TronScan/TronScan+Accounts.swift",
        "BlockChains/Tron/TronScan/TronScan+Transactions.swift",
        "BlockChains/Tron/TronScan/TronScan.swift",
        "CryptoScraper.swift",
        "DataAggregators/CoinGecko/CoinGeckoAggregator+Availability.swift",
        "DataAggregators/CoinGecko/CoinGeckoAggregator+Coins.swift",
        "DataAggregators/CoinGecko/CoinGeckoAggregator.swift",
        "DataAggregators/CoinGecko/CoinGeckoError.swift",
        "DataAggregators/CoinMarketCap/CoinMarketCapAggregator+Coins.swift",
        "DataAggregators/CoinMarketCap/CoinMarketCapAggregator.swift",
        "DataAggregators/CoinMarketCap/CoinMarketCapError.swift",
        "Exports.swift",
        "Extensions/DateFormatter.swift",
        "Extensions/Decodable.swift",
        "Extensions/DecodingError.swift",
        "Extensions/URL.swift",
        "Protocols/CryptoAmount.swift",
        "Protocols/CryptoChain.swift",
        "Protocols/CryptoContract.swift",
        "Protocols/CryptoDataAggregator.swift",
        "Protocols/CryptoInfo.swift",
        "Protocols/CryptoScanner.swift",
        "Protocols/CryptoTransaction.swift",
        "Utility/FoundationDataFetch.swift",
        "Utility/JSONDecoder.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.7"
}
Done.