diff --git a/.github/workflows/checks.yml b/.github/workflows/checks.yml index 7c7e2465f..fc8bf3593 100644 --- a/.github/workflows/checks.yml +++ b/.github/workflows/checks.yml @@ -10,13 +10,13 @@ concurrency: env: GH_TOKEN: ${{ github.token }} # TODO: Remove below env once stable release of starknet foundry is available - SNFOUNDRY_SHA: 3d227d0aa6bf896f912144088f3c7bf0424f4c13 + SNFOUNDRY_SHA: 208348df1ef1bfa4e332af0d3997d5e5fc4c57d4 jobs: test_and_lint: runs-on: macos-15 env: - DEVNET_SHA: aafa74e4297734bacba72d0faa7c711eacecfc7a # v0.5.0-rc.1 + DEVNET_SHA: b4460c7b5d0679632d471bf72b9713805d38c0f0 # v0.6.0 steps: - uses: actions/checkout@v4 - name: Setup Xcode diff --git a/Tests/StarknetTests/Utils/DevnetClient/DevnetClient.swift b/Tests/StarknetTests/Utils/DevnetClient/DevnetClient.swift index bf94190e1..cc782087a 100644 --- a/Tests/StarknetTests/Utils/DevnetClient/DevnetClient.swift +++ b/Tests/StarknetTests/Utils/DevnetClient/DevnetClient.swift @@ -4,7 +4,6 @@ import Foundation protocol DevnetClientProtocol { var rpcUrl: String { get } - var mintUrl: String { get } var host: String { get } var port: Int { get } @@ -155,7 +154,6 @@ func makeDevnetClient() -> DevnetClientProtocol { let seed: Int let baseUrl: String let rpcUrl: String - let mintUrl: String let constants: DevnetClientConstants.Type = DevnetClientConstants.self @@ -166,7 +164,6 @@ func makeDevnetClient() -> DevnetClientProtocol { baseUrl = "http://\(host):\(port)" rpcUrl = "\(baseUrl)/rpc" - mintUrl = "\(baseUrl)/mint" devnetPath = ProcessInfo.processInfo.environment["DEVNET_PATH"] ?? "starknet-devnet" scarbPath = ProcessInfo.processInfo.environment["SCARB_PATH"] ?? "scarb" @@ -305,18 +302,18 @@ func makeDevnetClient() -> DevnetClientProtocol { public func prefundAccount(address: Felt, amount: BigUInt, unit: StarknetPriceUnit) async throws { try guardDevnetIsRunning() - let url = URL(string: mintUrl)! + let url = URL(string: rpcUrl)! var request = URLRequest(url: url) request.httpMethod = "POST" - let payload = PrefundPayload(address: address, amount: amount, unit: unit) - + let mintPayload = PrefundPayload(address: address, amount: amount, unit: unit) + let requestPayload = DevnetMintRequest(params: mintPayload) // TODO(#209): Once we can use UInt128, we can simply set - // body as `request.httpBody = try JSONEncoder().encode(payload)` + // body as `request.httpBody = try JSONEncoder().encode(requestPayload)` // Following adjustment is needed to remove quotes from the amount field // in the JSON body, because ATM we can't use UInt128 in the payload. - let data = try JSONEncoder().encode(payload) + let data = try JSONEncoder().encode(requestPayload) guard var json = String(data: data, encoding: .utf8) else { throw DevnetClientError.prefundError diff --git a/Tests/StarknetTests/Utils/DevnetClient/DevnetClientModels.swift b/Tests/StarknetTests/Utils/DevnetClient/DevnetClientModels.swift index f0f591c1f..cb0b0505f 100644 --- a/Tests/StarknetTests/Utils/DevnetClient/DevnetClientModels.swift +++ b/Tests/StarknetTests/Utils/DevnetClient/DevnetClientModels.swift @@ -93,6 +93,20 @@ struct PrefundPayload: Codable { } } +struct DevnetMintRequest: Codable { + let jsonrpc: String + let method: String + let params: PrefundPayload + let id: Int + + init(params: PrefundPayload, id: Int = 0) { + self.jsonrpc = "2.0" + self.method = "devnet_mint" + self.params = params + self.id = id + } +} + // Simplified receipt that is intended to support any JSON-RPC version starting 0.3, // to avoid DevnetClient relying on StarknetTransactionReceipt. // Only use it for checking whether a transaction was successful.