Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Tests/HederaE2ETests/NodeCreateTransaction.swift
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ internal class NodeCreate: XCTestCase {
let endpoint2 = Endpoint(ipAddress: nil, port: 123, domainName: "testing.com")

// Convert hex string to byte array
let validGossipCert = Data(validGossipCertDer.data(using: .utf8)!)
let validGossipCert = validGossipCertDer.data(using: .utf8)!

// Generate new admin key
let adminKey = PrivateKey.generateEd25519()
Expand Down
68 changes: 68 additions & 0 deletions Tests/HederaE2ETests/NodeDeleteTransaction.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
/*
* ‌
* Hedera Swift SDK
*
* Copyright (C) 2022 - 2024 Hedera Hashgraph, LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/

import Hedera
import XCTest

internal class NodeDelete: XCTestCase {
private var shouldSkipTest: Bool {
return true
}

internal let testNodeId: UInt64 = 2
internal let testFileId: FileId = FileId(150)

// File hash taken from network (change this to match)
internal let testFileHash: String =
"f933337c1585674b4e273072f48b140fc0aa81aea962c8cfa1f0cef5e04981bcd7c596c1df0ec6a26f0610940a5de5f9"

internal func testNodeDelete() async throws {
if shouldSkipTest {
throw XCTSkip("Temporarily disabled to pass CI; awaiting Solo service CI integration")
}

let testEnv = try TestEnvironment.nonFree

let fileHashBytes = testFileHash.data(using: .utf8)!

_ = try await NodeDeleteTransaction()
.nodeId(testNodeId)
.freezeWith(testEnv.client)
.execute(testEnv.client)

_ = try await FreezeTransaction()
.freezeType(FreezeType.prepareUpgrade)
.fileId(testFileId)
.fileHash(fileHashBytes)
.freezeWith(testEnv.client)
.execute(testEnv.client)

let response = try await FreezeTransaction()
.freezeType(FreezeType.freezeUpgrade)
.startTime(.now + .seconds(5))
.fileId(testFileId)
.fileHash(fileHashBytes)
.freezeWith(testEnv.client)
.execute(testEnv.client)

let _ = try await response.getReceipt(testEnv.client)

Check warning on line 65 in Tests/HederaE2ETests/NodeDeleteTransaction.swift

View check run for this annotation

Codacy Production / Codacy Static Code Analysis

Tests/HederaE2ETests/NodeDeleteTransaction.swift#L65

Prefer `_ = foo()` over `let _ = foo()` when discarding a result from a function
}

}
88 changes: 88 additions & 0 deletions Tests/HederaE2ETests/NodeUpdateTransaction.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
/*
* ‌
* Hedera Swift SDK
*
* Copyright (C) 2022 - 2024 Hedera Hashgraph, LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/

import Hedera
import XCTest

internal class NodeUpdate: XCTestCase {
private var shouldSkipTest: Bool {
return true
}

let testNodeId: UInt64 = 2

Check warning on line 29 in Tests/HederaE2ETests/NodeUpdateTransaction.swift

View check run for this annotation

Codacy Production / Codacy Static Code Analysis

Tests/HederaE2ETests/NodeUpdateTransaction.swift#L29

All declarations should specify Access Control Level keywords explicitly
let testAccountId = AccountId(4)

Check warning on line 30 in Tests/HederaE2ETests/NodeUpdateTransaction.swift

View check run for this annotation

Codacy Production / Codacy Static Code Analysis

Tests/HederaE2ETests/NodeUpdateTransaction.swift#L30

All declarations should specify Access Control Level keywords explicitly
let testFileId = FileId(150)

Check warning on line 31 in Tests/HederaE2ETests/NodeUpdateTransaction.swift

View check run for this annotation

Codacy Production / Codacy Static Code Analysis

Tests/HederaE2ETests/NodeUpdateTransaction.swift#L31

All declarations should specify Access Control Level keywords explicitly

// File hash taken from network (change this to match)
internal let testFileHash =
"d9ec902a9fb8dc0f1a43c84b451c59dfe47622d9e5c33965a0ace77003fcad9e0b71478976dbee9dee5d2403f9267b18"

internal let testEndpoint1 = Endpoint(port: 123, domainName: "test.com")
internal let testEndpoint2 = Endpoint(port: 123, domainName: "test2.com")

internal let testGossipCertificateDer =
"3082052830820310a003020102020101300d06092a864886f70d01010c05003010310e300c060355040313056e6f6465333024170d3234313030383134333233395a181332313234313030383134333233392e3337395a3010310e300c060355040313056e6f64653330820222300d06092a864886f70d01010105000382020f003082020a0282020100af111cff0c4ad8125d2f4b8691ce87332fecc867f7a94ddc0f3f96514cc4224d44af516394f7384c1ef0a515d29aa6116b65bc7e4d7e2d848cf79fbfffedae3a6583b3957a438bdd780c4981b800676ea509bc8c619ae04093b5fc642c4484152f0e8bcaabf19eae025b630028d183a2f47caf6d9f1075efb30a4248679d871beef1b7e9115382270cbdb68682fae4b1fd592cadb414d918c0a8c23795c7c5a91e22b3e90c410825a2bc1a840efc5bf9976a7f474c7ed7dc047e4ddd2db631b68bb4475f173baa3edc234c4bed79c83e2f826f79e07d0aade2d984da447a8514135bfa4145274a7f62959a23c4f0fae5adc6855974e7c04164951d052beb5d45cb1f3cdfd005da894dea9151cb62ba43f4731c6bb0c83e10fd842763ba6844ef499f71bc67fa13e4917fb39f2ad18112170d31cdcb3c61c9e3253accf703dbd8427fdcb87ece78b787b6cfdc091e8fedea8ad95dc64074e1fc6d0e42ea2337e18a5e54e4aaab3791a98dfcef282e2ae1caec9cf986fabe8f36e6a21c8711647177e492d264415e765a86c58599cd97b103cb4f6a01d2edd06e3b60470cf64daca7aecf831197b466cae04baeeac19840a05394bef628aed04b611cfa13677724b08ddfd662b02fd0ef0af17eb7f4fb8c1c17fbe9324f6dc7bcc02449622636cc45ec04909b3120ab4df4726b21bf79e955fe8f832699d2196dcd7a58bfeafb170203010001a38186308183300f0603551d130101ff04053003020100300e0603551d0f0101ff0404030204b030200603551d250101ff0416301406082b0601050507030106082b06010505070302301d0603551d0e04160414643118e05209035edd83d44a0c368de2fb2fe4c0301f0603551d23041830168014643118e05209035edd83d44a0c368de2fb2fe4c0300d06092a864886f70d01010c05000382020100ad41c32bb52650eb4b76fce439c9404e84e4538a94916b3dc7983e8b5c58890556e7384601ca7440dde68233bb07b97bf879b64487b447df510897d2a0a4e789c409a9b237a6ad240ad5464f2ce80c58ddc4d07a29a74eb25e1223db6c00e334d7a27d32bfa6183a82f5e35bccf497c2445a526eabb0c068aba9b94cc092ea4756b0dcfb574f6179f0089e52b174ccdbd04123eeb6d70daeabd8513fcba6be0bc2b45ca9a69802dae11cc4d9ff6053b3a87fd8b0c6bf72fffc3b81167f73cca2b3fd656c5d353c8defca8a76e2ad535f984870a590af4e28fed5c5a125bf360747c5e7742e7813d1bd39b5498c8eb6ba72f267eda034314fdbc596f6b967a0ef8be5231d364e634444c84e64bd7919425171016fcd9bb05f01c58a303dee28241f6e860fc3aac3d92aad7dac2801ce79a3b41a0e1f1509fc0d86e96d94edb18616c000152490f64561713102128990fedd3a5fa642f2ff22dc11bc4dc5b209986a0c3e4eb2bdfdd40e9fdf246f702441cac058dd8d0d51eb0796e2bea2ce1b37b2a2f468505e1f8980a9f66d719df034a6fbbd2f9585991d259678fb9a4aebdc465d22c240351ed44abffbdd11b79a706fdf7c40158d3da87f68d7bd557191a8016b5b899c07bf1b87590feb4fa4203feea9a2a7a73ec224813a12b7a21e5dc93fcde4f0a7620f570d31fe27e9b8d65b74db7dc18a5e51adc42d7805d4661938"

func testNodeUpdate() async throws {

Check warning on line 43 in Tests/HederaE2ETests/NodeUpdateTransaction.swift

View check run for this annotation

Codacy Production / Codacy Static Code Analysis

Tests/HederaE2ETests/NodeUpdateTransaction.swift#L43

All declarations should specify Access Control Level keywords explicitly
if shouldSkipTest {
throw XCTSkip("Temporarily disabled to pass CI; awaiting Solo service CI integration")
}

let testEnv = try TestEnvironment.nonFree

let adminKey = PrivateKey.generateEd25519()

let gossipEndpoints: [Endpoint] = [testEndpoint1, testEndpoint2]

let grpcServiceEndpoints: [Endpoint] = [testEndpoint1, testEndpoint2]

let gossipCaCertificate = testGossipCertificateDer.data(using: .utf8)!

let fileHashBytes = testFileHash.data(using: .utf8)!

let _ = try await NodeUpdateTransaction()

Check warning on line 60 in Tests/HederaE2ETests/NodeUpdateTransaction.swift

View check run for this annotation

Codacy Production / Codacy Static Code Analysis

Tests/HederaE2ETests/NodeUpdateTransaction.swift#L60

Prefer `_ = foo()` over `let _ = foo()` when discarding a result from a function
.nodeId(testNodeId)
.accountId(testAccountId)
.gossipEndpoints(gossipEndpoints)
.serviceEndpoints(grpcServiceEndpoints)
.gossipCaCertificate(gossipCaCertificate)
.adminKey(.single(adminKey.publicKey))
.freezeWith(testEnv.client)
.sign(adminKey)
.execute(testEnv.client)

let _ = try await FreezeTransaction()

Check warning on line 71 in Tests/HederaE2ETests/NodeUpdateTransaction.swift

View check run for this annotation

Codacy Production / Codacy Static Code Analysis

Tests/HederaE2ETests/NodeUpdateTransaction.swift#L71

Prefer `_ = foo()` over `let _ = foo()` when discarding a result from a function
.freezeType(FreezeType.prepareUpgrade)
.fileId(testFileId)
.fileHash(fileHashBytes)
.freezeWith(testEnv.client)
.execute(testEnv.client)

let response = try await FreezeTransaction()
.freezeType(FreezeType.freezeUpgrade)
.startTime(.now + .seconds(5))
.fileId(testFileId)
.fileHash(fileHashBytes)
.freezeWith(testEnv.client)
.execute(testEnv.client)

let receipt = try await response.getReceipt(testEnv.client)
}
}