From bc0bbdab486dbac689fd4f8c5b92b4a6bca58237 Mon Sep 17 00:00:00 2001 From: Maksim Zdobnikau Date: Wed, 17 Jan 2024 12:40:57 +0100 Subject: [PATCH] Clean up tests; Add strk contract address to devnet constants --- .../StarknetTests/Accounts/AccountTest.swift | 20 +++++++++---------- .../Devnet/DevnetClientTests.swift | 2 +- .../Providers/ProviderTests.swift | 5 +++-- .../DevnetClient/DevnetClientModels.swift | 3 ++- 4 files changed, 16 insertions(+), 14 deletions(-) diff --git a/Tests/StarknetTests/Accounts/AccountTest.swift b/Tests/StarknetTests/Accounts/AccountTest.swift index 41269915d..85437c5d2 100644 --- a/Tests/StarknetTests/Accounts/AccountTest.swift +++ b/Tests/StarknetTests/Accounts/AccountTest.swift @@ -2,8 +2,6 @@ import XCTest @testable import Starknet -let erc20Address: Felt = "0x49D36570D4E46F48E99674BD3FCC84644DDD6B96F7C741B1562B82F9E004DC7" - final class AccountTests: XCTestCase { static var devnetClient: DevnetClientProtocol! @@ -11,6 +9,7 @@ final class AccountTests: XCTestCase { var signer: StarknetSignerProtocol! var account: StarknetAccountProtocol! var accountContractClassHash: Felt! + var ethContractAddress: Felt! override func setUp() async throws { try await super.setUp() @@ -20,8 +19,9 @@ final class AccountTests: XCTestCase { } provider = StarknetProvider(starknetChainId: .testnet, url: Self.devnetClient.rpcUrl)! - accountContractClassHash = AccountTests.devnetClient.constants.accountContractClassHash - let accountDetails = AccountTests.devnetClient.constants.predeployedAccount1 + accountContractClassHash = Self.devnetClient.constants.accountContractClassHash + ethContractAddress = Self.devnetClient.constants.ethErc20ContractAddress + let accountDetails = Self.devnetClient.constants.predeployedAccount1 signer = StarkCurveSigner(privateKey: accountDetails.privateKey)! account = StarknetAccount(address: accountDetails.address, signer: signer, provider: provider, cairoVersion: .zero) } @@ -52,7 +52,7 @@ final class AccountTests: XCTestCase { 0, ] - let call = StarknetCall(contractAddress: erc20Address, entrypoint: starknetSelector(from: "transfer"), calldata: calldata) + let call = StarknetCall(contractAddress: ethContractAddress, entrypoint: starknetSelector(from: "transfer"), calldata: calldata) let result = try await account.executeV1(call: call) @@ -68,7 +68,7 @@ final class AccountTests: XCTestCase { 0, ] - let call = StarknetCall(contractAddress: erc20Address, entrypoint: starknetSelector(from: "transfer"), calldata: calldata) + let call = StarknetCall(contractAddress: ethContractAddress, entrypoint: starknetSelector(from: "transfer"), calldata: calldata) let result = try await account.executeV3(calls: [call]) @@ -84,7 +84,7 @@ final class AccountTests: XCTestCase { 0, ] - let call = StarknetCall(contractAddress: erc20Address, entrypoint: starknetSelector(from: "transfer"), calldata: calldata) + let call = StarknetCall(contractAddress: ethContractAddress, entrypoint: starknetSelector(from: "transfer"), calldata: calldata) let nonce = try await account.getNonce() let feeEstimate = try await account.estimateFeeV1(call: call, nonce: nonce) @@ -106,7 +106,7 @@ final class AccountTests: XCTestCase { 0, ] - let call = StarknetCall(contractAddress: erc20Address, entrypoint: starknetSelector(from: "transfer"), calldata: calldata) + let call = StarknetCall(contractAddress: ethContractAddress, entrypoint: starknetSelector(from: "transfer"), calldata: calldata) let nonce = try await account.getNonce() let feeEstimate = try await account.estimateFeeV3(call: call, nonce: nonce) @@ -134,8 +134,8 @@ final class AccountTests: XCTestCase { 0, ] - let call1 = StarknetCall(contractAddress: AccountTests.devnetClient.constants.erc20ContractAddress, entrypoint: starknetSelector(from: "transfer"), calldata: calldata1) - let call2 = StarknetCall(contractAddress: AccountTests.devnetClient.constants.erc20ContractAddress, entrypoint: starknetSelector(from: "transfer"), calldata: calldata2) + let call1 = StarknetCall(contractAddress: ethContractAddress, entrypoint: starknetSelector(from: "transfer"), calldata: calldata1) + let call2 = StarknetCall(contractAddress: AccountTests.devnetClient.constants.ethErc20ContractAddress, entrypoint: starknetSelector(from: "transfer"), calldata: calldata2) let result = try await account.executeV1(calls: [call1, call2]) diff --git a/Tests/StarknetTests/Devnet/DevnetClientTests.swift b/Tests/StarknetTests/Devnet/DevnetClientTests.swift index 9b98ef616..0fc7710c5 100644 --- a/Tests/StarknetTests/Devnet/DevnetClientTests.swift +++ b/Tests/StarknetTests/Devnet/DevnetClientTests.swift @@ -55,7 +55,7 @@ final class DevnetClientTests: XCTestCase { 1000, 0, ] - let invokeResult = try await client.invokeContract(contractAddress: client.constants.erc20ContractAddress, function: "transfer", calldata: calldata) + let invokeResult = try await client.invokeContract(contractAddress: client.constants.ethErc20ContractAddress, function: "transfer", calldata: calldata) try await client.assertTransactionSucceeded(transactionHash: invokeResult.transactionHash) } } diff --git a/Tests/StarknetTests/Providers/ProviderTests.swift b/Tests/StarknetTests/Providers/ProviderTests.swift index bde89343f..5829dffc2 100644 --- a/Tests/StarknetTests/Providers/ProviderTests.swift +++ b/Tests/StarknetTests/Providers/ProviderTests.swift @@ -9,6 +9,7 @@ final class ProviderTests: XCTestCase { var signer: StarknetSignerProtocol! var account: StarknetAccountProtocol! var accountContractClassHash: Felt! + var ethContractAddress: Felt! override class func setUp() { super.setUp() @@ -28,7 +29,7 @@ final class ProviderTests: XCTestCase { } provider = makeStarknetProvider(url: Self.devnetClient.rpcUrl) - + ethContractAddress = Self.devnetClient.constants.ethErc20ContractAddress accountContractClassHash = Self.devnetClient.constants.accountContractClassHash let accountDetails = Self.devnetClient.constants.predeployedAccount2 signer = StarkCurveSigner(privateKey: accountDetails.privateKey)! @@ -90,7 +91,7 @@ final class ProviderTests: XCTestCase { } func testGetClassHash() async throws { - let classHash = try await provider.getClassHashAt(erc20Address) + let classHash = try await provider.getClassHashAt(ethContractAddress) print(classHash) } diff --git a/Tests/StarknetTests/Utils/DevnetClient/DevnetClientModels.swift b/Tests/StarknetTests/Utils/DevnetClient/DevnetClientModels.swift index 50b5dbf6c..b77032643 100644 --- a/Tests/StarknetTests/Utils/DevnetClient/DevnetClientModels.swift +++ b/Tests/StarknetTests/Utils/DevnetClient/DevnetClientModels.swift @@ -6,7 +6,8 @@ enum DevnetClientConstants { // Source: https://github.com/0xSpaceShard/starknet-devnet-rs/blob/323f907bc3e3e4dc66b403ec6f8b58744e8d6f9a/crates/starknet/src/constants.rs static let accountContractClassHash: Felt = "0x4d07e40e93398ed3c76981e72dd1fd22557a78ce36c0515f679e27f0bb5bc5f" static let erc20ContractClassHash: Felt = "0x6a22bf63c7bc07effa39a25dfbd21523d211db0100a0afd054d172b81840eaf" - static let erc20ContractAddress: Felt = "0x49d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7" + static let ethErc20ContractAddress: Felt = "0x49d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7" + static let strkErc20ContractAddress: Felt = "0x4718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d" static let udcContractClassHash: Felt = "0x7b3e05f48f0c69e4a65ce5e076a66271a527aff2c34ce1083ec6e1526997a69" static let udcContractAddress: Felt = "0x41a78e741e5af2fec34b695679bc6891742439f7afb8484ecd7766661ad02bf" // Source: starknet-devnet-rs cli