From e88fc9690329830cc4e720ccfd2a31b19bd21853 Mon Sep 17 00:00:00 2001 From: Shun Usami Date: Fri, 13 Sep 2019 23:10:24 +0900 Subject: [PATCH] :recycle: Update tests to Swift5 - Refactor buildPublicKeyHashOut to be compiler friendly --- BitcoinKit.xcodeproj/project.pbxproj | 4 ++-- Sources/BitcoinKit/Scripts/Script.swift | 9 +++++++-- Tests/BitcoinKitTests/PointMultiplicationTests.swift | 8 ++++---- Tests/BitcoinKitTests/SerializationTests.swift | 6 +++--- WalletExample/WalletExample.xcodeproj/project.pbxproj | 4 ++-- 5 files changed, 18 insertions(+), 13 deletions(-) diff --git a/BitcoinKit.xcodeproj/project.pbxproj b/BitcoinKit.xcodeproj/project.pbxproj index 920349b0..54e5ffb0 100644 --- a/BitcoinKit.xcodeproj/project.pbxproj +++ b/BitcoinKit.xcodeproj/project.pbxproj @@ -1547,7 +1547,7 @@ PRODUCT_BUNDLE_IDENTIFIER = com.bitcoinkit.BitcoinKitTests; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG BitcoinKitXcode"; - SWIFT_VERSION = 4.2; + SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; }; name = Debug; @@ -1568,7 +1568,7 @@ PRODUCT_BUNDLE_IDENTIFIER = com.bitcoinkit.BitcoinKitTests; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_ACTIVE_COMPILATION_CONDITIONS = BitcoinKitXcode; - SWIFT_VERSION = 4.2; + SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; }; name = Release; diff --git a/Sources/BitcoinKit/Scripts/Script.swift b/Sources/BitcoinKit/Scripts/Script.swift index 804704b9..14ec3d27 100644 --- a/Sources/BitcoinKit/Scripts/Script.swift +++ b/Sources/BitcoinKit/Scripts/Script.swift @@ -474,8 +474,13 @@ extension Script { // Standard Transaction to Bitcoin address (pay-to-pubkey-hash) // scriptPubKey: OP_DUP OP_HASH160 OP_EQUALVERIFY OP_CHECKSIG public static func buildPublicKeyHashOut(pubKeyHash: Data) -> Data { - let tmp: Data = Data() + OpCode.OP_DUP + OpCode.OP_HASH160 + UInt8(pubKeyHash.count) + pubKeyHash + OpCode.OP_EQUALVERIFY - return tmp + OpCode.OP_CHECKSIG + let script = try! Script() + .append(.OP_DUP) + .append(.OP_HASH160) + .appendData(pubKeyHash) + .append(.OP_EQUALVERIFY) + .append(.OP_CHECKSIG) + return script.data } public static func buildPublicKeyUnlockingScript(signature: Data, pubkey: PublicKey, hashType: SighashType) -> Data { diff --git a/Tests/BitcoinKitTests/PointMultiplicationTests.swift b/Tests/BitcoinKitTests/PointMultiplicationTests.swift index 29906f7a..f613c9eb 100644 --- a/Tests/BitcoinKitTests/PointMultiplicationTests.swift +++ b/Tests/BitcoinKitTests/PointMultiplicationTests.swift @@ -12,28 +12,28 @@ import XCTest class PointMultiplicationTests: XCTestCase { func testPointMultiplication() { - let gX = Data(bytes: [ + let gX = Data([ 0x79, 0xBE, 0x66, 0x7E, 0xF9, 0xDC, 0xBB, 0xAC, 0x55, 0xA0, 0x62, 0x95, 0xCE, 0x87, 0x0B, 0x07, 0x02, 0x9B, 0xFC, 0xDB, 0x2D, 0xCE, 0x28, 0xD9, 0x59, 0xF2, 0x81, 0x5B, 0x16, 0xF8, 0x17, 0x98 ]) - let gY = Data(bytes: [ + let gY = Data([ 0x48, 0x3A, 0xDA, 0x77, 0x26, 0xA3, 0xC4, 0x65, 0x5D, 0xA4, 0xFB, 0xFC, 0x0E, 0x11, 0x08, 0xA8, 0xFD, 0x17, 0xB4, 0x48, 0xA6, 0x85, 0x54, 0x19, 0x9C, 0x47, 0xD0, 0x8F, 0xFB, 0x10, 0xD4, 0xB8 ]) - let curveOrderPlusOne = Data(bytes: [ + let curveOrderPlusOne = Data([ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xBA, 0xAE, 0xDC, 0xE6, 0xAF, 0x48, 0xA0, 0x3B, 0xBF, 0xD2, 0x5E, 0x8C, 0xD0, 0x36, 0x41, 0x42 ]) - let one = Data(bytes: [ + let one = Data([ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, diff --git a/Tests/BitcoinKitTests/SerializationTests.swift b/Tests/BitcoinKitTests/SerializationTests.swift index 2e0a84bb..217346f6 100644 --- a/Tests/BitcoinKitTests/SerializationTests.swift +++ b/Tests/BitcoinKitTests/SerializationTests.swift @@ -35,21 +35,21 @@ class SerializationTests: XCTestCase { } func testUInt32toHex() { - let d = Data(bytes: [1, 2, 3, 4]) + let d = Data([1, 2, 3, 4]) let i: UInt32 = d.to(type: UInt32.self) XCTAssertEqual(i.hex, "04030201") XCTAssertEqual(i, 0x04030201) } func testUInt64toHex() { - let d = Data(bytes: [1, 2, 3, 4, 5, 6, 7, 8]) + let d = Data([1, 2, 3, 4, 5, 6, 7, 8]) let i: UInt64 = d.to(type: UInt64.self) XCTAssertEqual(i.hex, "0807060504030201") XCTAssertEqual(i, 0x0807060504030201) } func testDataToUInt256() { - let d = Data(bytes: [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2]) + let d = Data([1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2]) let i: UInt256 = d.to(type: UInt256.self) XCTAssertEqual(i.hex, "0200000000000000000000000000000000000000000000000000000000000001") } diff --git a/WalletExample/WalletExample.xcodeproj/project.pbxproj b/WalletExample/WalletExample.xcodeproj/project.pbxproj index 8a0499ba..e696c6ba 100644 --- a/WalletExample/WalletExample.xcodeproj/project.pbxproj +++ b/WalletExample/WalletExample.xcodeproj/project.pbxproj @@ -301,7 +301,7 @@ ); PRODUCT_BUNDLE_IDENTIFIER = tech.yenom.WalletExample; PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 4.2; + SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; }; name = Debug; @@ -318,7 +318,7 @@ ); PRODUCT_BUNDLE_IDENTIFIER = tech.yenom.WalletExample; PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 4.2; + SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; }; name = Release;