Skip to content
This repository was archived by the owner on Dec 15, 2023. It is now read-only.

Commit ec3cf5e

Browse files
authored
Merge pull request #199 from zeriontech/develop
Actualize master to 0.0.3
2 parents f89038d + f6eca6b commit ec3cf5e

11 files changed

+253
-40
lines changed

.travis.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# * http://www.objc.io/issue-6/travis-ci.html
33
# * https://github.com/supermarin/xcpretty#usage
44

5-
osx_image: xcode9.3
5+
osx_image: xcode10.2
66
language: objective-c
77
# cache: cocoapods
88
podfile: Example/Podfile
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
//
2+
// This source file is part of the Web3Swift.io open source project
3+
// Copyright 2019 The Web3Swift Authors
4+
// Licensed under Apache License v2.0
5+
//
6+
// MainnetAlchemyNetwork.swift
7+
//
8+
// Created by Vadim Koleoshkin on 27/03/2019
9+
//
10+
11+
import Foundation
12+
import Web3Swift
13+
14+
// Ethereum mainnet via alchemyapi.io service and a Web3Swift.io api key
15+
// This is a demo key provided by Alchemy for testing purposes only and has lower performance.
16+
// Sign up for an official key at https://alchemyapi.io if you plan to use this in any development, staging, or production environments.
17+
public final class MainnetAlchemyNetwork: Network {
18+
19+
private let origin: Network = AlchemyNetwork(chain: "mainnet", apiKey: "ETi2ntZoWxd6nTI1qE13Q4I1eLB8AMDl")
20+
21+
/**
22+
- returns:
23+
Id of a mainnet (should be 1)
24+
25+
- throws:
26+
`DescribedError` if something went wrong
27+
*/
28+
public func id() throws -> IntegerScalar {
29+
return try origin.id()
30+
}
31+
32+
/**
33+
- returns:
34+
`Data` for a JSON RPC call to mainnet
35+
36+
- throws:
37+
`DescribedError` if something went wrong
38+
*/
39+
public func call(method: String, params: Array<EthParameter>) throws -> Data {
40+
return try origin.call(
41+
method: method,
42+
params: params
43+
)
44+
}
45+
46+
}

Example/Podfile.lock

+20-16
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,18 @@
11
PODS:
2-
- BigInt.swift (1.0.0)
3-
- CryptoSwift (0.14.0)
2+
- BigInt (3.1.0):
3+
- SipHash (~> 1.2)
4+
- CryptoSwift (1.0.0)
45
- Nimble (7.3.4)
56
- Quick (1.3.4)
6-
- secp256k1_ios (0.1.1)
7+
- secp256k1_ios (0.1.3)
8+
- SipHash (1.2.2)
79
- SwiftLint (0.25.1)
8-
- SwiftyJSON (4.1.0)
9-
- Web3Swift.io (0.0.1):
10-
- BigInt.swift (= 1.0.0)
11-
- CryptoSwift (~> 0.14.0)
12-
- secp256k1_ios (= 0.1.1)
13-
- SwiftyJSON (= 4.1.0)
10+
- SwiftyJSON (4.3.0)
11+
- Web3Swift.io (0.0.2):
12+
- BigInt (~> 3.1)
13+
- CryptoSwift (~> 1.0)
14+
- secp256k1_ios (~> 0.1)
15+
- SwiftyJSON (~> 4.3)
1416

1517
DEPENDENCIES:
1618
- Nimble (~> 7.0)
@@ -20,11 +22,12 @@ DEPENDENCIES:
2022

2123
SPEC REPOS:
2224
https://github.com/cocoapods/specs.git:
23-
- BigInt.swift
25+
- BigInt
2426
- CryptoSwift
2527
- Nimble
2628
- Quick
2729
- secp256k1_ios
30+
- SipHash
2831
- SwiftyJSON
2932

3033
EXTERNAL SOURCES:
@@ -39,15 +42,16 @@ CHECKOUT OPTIONS:
3942
:git: https://github.com/Web3Swift/SwiftLint.git
4043

4144
SPEC CHECKSUMS:
42-
BigInt.swift: 1e0ddf08d82166e72dfb0fa8d40301d273081afc
43-
CryptoSwift: 35a10419f4dbf0619c13f8c1c180037e115323fa
45+
BigInt: 76b5dfdfa3e2e478d4ffdf161aeede5502e2742f
46+
CryptoSwift: d81eeaa59dc5a8d03720fe919a6fd07b51f7439f
4447
Nimble: 051e3d8912d40138fa5591c78594f95fb172af37
4548
Quick: f4f7f063c524394c73ed93ac70983c609805d481
46-
secp256k1_ios: 3c94e6cce14ff03924cb6dc10c5017f17011b79d
49+
secp256k1_ios: ac9ef04e761f43c58012b28548afa91493761f17
50+
SipHash: fad90a4683e420c52ef28063063dbbce248ea6d4
4751
SwiftLint: ce933681be10c3266e82576dad676fa815a602e9
48-
SwiftyJSON: c29297daf073d2aa016295d5809cdd68045c39b3
49-
Web3Swift.io: 8d7448b85e1b9afc4f59951631f22cab32d0a7db
52+
SwiftyJSON: 6faa0040f8b59dead0ee07436cbf76b73c08fd08
53+
Web3Swift.io: e22a1d2d05b6a9a5343a97305a7155c9b28c5d38
5054

5155
PODFILE CHECKSUM: da3580585a2e1577cba6b9aff6fe3cf1ca4b44d7
5256

53-
COCOAPODS: 1.6.0
57+
COCOAPODS: 1.6.1

Example/Tests/ABI/EncodedABIFunctionTests.swift

+23
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,29 @@ import Quick
1818

1919
final class EncodedABIFunctionTests: XCTestCase {
2020

21+
func testStringContucton() {
22+
expect{
23+
try EncodedABIFunction(
24+
signature: "baz(uint32,bool)",
25+
parameters: [
26+
ABIAddress(
27+
address: EthAddress(
28+
hex: "0x407d73d8a49eeb85d32cf465507dd71d507100c1"
29+
)
30+
)
31+
]
32+
).value()
33+
}.to(
34+
equal(
35+
Data(
36+
hex: "cdcd77c0" +
37+
"000000000000000000000000407d73d8a49eeb85d32cf465507dd71d507100c1"
38+
)
39+
),
40+
description: "Selector + address is expected to be encoded correctly"
41+
)
42+
}
43+
2144
func testTwoDimensionalDynamicArrayOfTwoEncoding() {
2245
expect{
2346
try EncodedABIFunction(
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
//
2+
// This source file is part of the Web3Swift.io open source project
3+
// Copyright 2019 The Web3Swift Authors
4+
// Licensed under Apache License v2.0
5+
//
6+
// AlchemyNetworkTests.swift
7+
//
8+
// Created by Vadim Koleoshkin on 27/03/2019
9+
//
10+
11+
import Nimble
12+
import Quick
13+
@testable import Web3Swift
14+
import XCTest
15+
16+
class AlchemyNetworkTests: XCTestCase {
17+
18+
/// Assert network call does not throw an error on valid params
19+
func testValidCall() {
20+
expect{
21+
try MainnetAlchemyNetwork().call(
22+
method: "eth_getBalance",
23+
params: [
24+
BytesParameter(
25+
bytes: Alice().address()
26+
)
27+
]
28+
)
29+
}.notTo(
30+
throwError(),
31+
description: "Make sure network call executed succesfully"
32+
)
33+
34+
}
35+
36+
func testValidID() {
37+
expect{
38+
try MainnetAlchemyNetwork().id().value()
39+
}.to(
40+
equal(1),
41+
description: "Network Mainnet is expected to have id 1"
42+
)
43+
}
44+
45+
func testEthereumBalanceCheck() {
46+
expect{
47+
try EthInteger(
48+
hex: try BalanceProcedure(
49+
network: MainnetAlchemyNetwork(),
50+
address: Alice().address(),
51+
state: LatestBlockChainState()
52+
).call()["result"].string()
53+
).value()
54+
}.to(
55+
equal(0),
56+
description: "Alice balance is expected to be equal 0"
57+
)
58+
}
59+
60+
}

Example/Web3Swift.xcodeproj/project.pbxproj

+20-4
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,8 @@
153153
8C77B9F3203DC77A0097DE61 /* BytesParameterTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8C77B9F2203DC77A0097DE61 /* BytesParameterTests.swift */; };
154154
8C77B9F5203DC9340097DE61 /* BooleanParameterTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8C77B9F4203DC9340097DE61 /* BooleanParameterTests.swift */; };
155155
8C77B9F9203DCA220097DE61 /* QuantityParameterTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8C77B9F8203DCA220097DE61 /* QuantityParameterTests.swift */; };
156+
8C7ED874224C635C0058C8FF /* AlchemyNetworkTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8C7ED873224C635C0058C8FF /* AlchemyNetworkTests.swift */; };
157+
8C7ED878224C647A0058C8FF /* MainnetAlchemyNetwork.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8C7ED877224C647A0058C8FF /* MainnetAlchemyNetwork.swift */; };
156158
8C8B79012107B99000F6EC2C /* EthUnsignedTransactionBytesTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8C8B79002107B99000F6EC2C /* EthUnsignedTransactionBytesTests.swift */; };
157159
8C8B79052107C01400F6EC2C /* EthManuallySignedTransactionBytesTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8C8B79042107C01400F6EC2C /* EthManuallySignedTransactionBytesTests.swift */; };
158160
8CA4CB6220D6CA6F009AAFA8 /* CompactHexStringTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA4CB6120D6CA6F009AAFA8 /* CompactHexStringTests.swift */; };
@@ -323,6 +325,8 @@
323325
8C77B9F2203DC77A0097DE61 /* BytesParameterTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BytesParameterTests.swift; sourceTree = "<group>"; };
324326
8C77B9F4203DC9340097DE61 /* BooleanParameterTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BooleanParameterTests.swift; sourceTree = "<group>"; };
325327
8C77B9F8203DCA220097DE61 /* QuantityParameterTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = QuantityParameterTests.swift; sourceTree = "<group>"; };
328+
8C7ED873224C635C0058C8FF /* AlchemyNetworkTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AlchemyNetworkTests.swift; sourceTree = "<group>"; };
329+
8C7ED877224C647A0058C8FF /* MainnetAlchemyNetwork.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainnetAlchemyNetwork.swift; sourceTree = "<group>"; };
326330
8C8B79002107B99000F6EC2C /* EthUnsignedTransactionBytesTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EthUnsignedTransactionBytesTests.swift; sourceTree = "<group>"; };
327331
8C8B79042107C01400F6EC2C /* EthManuallySignedTransactionBytesTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EthManuallySignedTransactionBytesTests.swift; sourceTree = "<group>"; };
328332
8CA4CB6120D6CA6F009AAFA8 /* CompactHexStringTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CompactHexStringTests.swift; sourceTree = "<group>"; };
@@ -386,6 +390,7 @@
386390
8C748B9220407E1800F40AF9 /* GethNetworkTests.swift */,
387391
8C748B942040848B00F40AF9 /* EthNetworkTests.swift */,
388392
8C748B9620408A4800F40AF9 /* InfuraNetworkTests.swift */,
393+
8C7ED873224C635C0058C8FF /* AlchemyNetworkTests.swift */,
389394
584FA10372E81BD021BBE091 /* GanacheLocalNetworkTests.swift */,
390395
584FAC3ECB551AEEC8ABD750 /* MainnetInfuraMetamaskNetworkTests.swift */,
391396
584FAA912A7641621F0BD442 /* VerifiedNetworkTests.swift */,
@@ -484,6 +489,7 @@
484489
children = (
485490
584FA888EDFB99F27887D65B /* GanacheLocalNetwork.swift */,
486491
584FA742AE71D7A00EE214B0 /* MainnetMetamaskNetwork.swift */,
492+
8C7ED877224C647A0058C8FF /* MainnetAlchemyNetwork.swift */,
487493
);
488494
path = Networks;
489495
sourceTree = "<group>";
@@ -977,8 +983,9 @@
977983
);
978984
inputPaths = (
979985
"${PODS_ROOT}/Target Support Files/Pods-Web3Swift_Tests/Pods-Web3Swift_Tests-frameworks.sh",
980-
"${BUILT_PRODUCTS_DIR}/BigInt.swift/BigInt.framework",
986+
"${BUILT_PRODUCTS_DIR}/BigInt/BigInt.framework",
981987
"${BUILT_PRODUCTS_DIR}/CryptoSwift/CryptoSwift.framework",
988+
"${BUILT_PRODUCTS_DIR}/SipHash/SipHash.framework",
982989
"${BUILT_PRODUCTS_DIR}/SwiftyJSON/SwiftyJSON.framework",
983990
"${BUILT_PRODUCTS_DIR}/Web3Swift.io/Web3Swift.framework",
984991
"${BUILT_PRODUCTS_DIR}/secp256k1_ios/secp256k1_ios.framework",
@@ -989,6 +996,7 @@
989996
outputPaths = (
990997
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/BigInt.framework",
991998
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CryptoSwift.framework",
999+
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SipHash.framework",
9921000
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SwiftyJSON.framework",
9931001
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Web3Swift.framework",
9941002
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/secp256k1_ios.framework",
@@ -1069,8 +1077,9 @@
10691077
);
10701078
inputPaths = (
10711079
"${PODS_ROOT}/Target Support Files/Pods-Web3Swift_Example/Pods-Web3Swift_Example-frameworks.sh",
1072-
"${BUILT_PRODUCTS_DIR}/BigInt.swift/BigInt.framework",
1080+
"${BUILT_PRODUCTS_DIR}/BigInt/BigInt.framework",
10731081
"${BUILT_PRODUCTS_DIR}/CryptoSwift/CryptoSwift.framework",
1082+
"${BUILT_PRODUCTS_DIR}/SipHash/SipHash.framework",
10741083
"${BUILT_PRODUCTS_DIR}/SwiftyJSON/SwiftyJSON.framework",
10751084
"${BUILT_PRODUCTS_DIR}/Web3Swift.io/Web3Swift.framework",
10761085
"${BUILT_PRODUCTS_DIR}/secp256k1_ios/secp256k1_ios.framework",
@@ -1079,6 +1088,7 @@
10791088
outputPaths = (
10801089
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/BigInt.framework",
10811090
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CryptoSwift.framework",
1091+
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SipHash.framework",
10821092
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SwiftyJSON.framework",
10831093
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Web3Swift.framework",
10841094
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/secp256k1_ios.framework",
@@ -1105,6 +1115,7 @@
11051115
buildActionMask = 2147483647;
11061116
files = (
11071117
8C748B8F20407AF100F40AF9 /* ObjectParameterTests.swift in Sources */,
1118+
8C7ED878224C647A0058C8FF /* MainnetAlchemyNetwork.swift in Sources */,
11081119
8C77B9F9203DCA220097DE61 /* QuantityParameterTests.swift in Sources */,
11091120
8C748B952040848B00F40AF9 /* EthNetworkTests.swift in Sources */,
11101121
8C77B9F3203DC77A0097DE61 /* BytesParameterTests.swift in Sources */,
@@ -1156,6 +1167,7 @@
11561167
584FA57D105290DBCD21DCD7 /* MainnetMetamaskNetwork.swift in Sources */,
11571168
584FA8DB9AC9BD077D9315A5 /* MainnetInfuraMetamaskNetworkTests.swift in Sources */,
11581169
584FA7F17D3B2B2F38437B3B /* RightZeroesPaddedBytesTests.swift in Sources */,
1170+
8C7ED874224C635C0058C8FF /* AlchemyNetworkTests.swift in Sources */,
11591171
584FA5C085BF5892631B17AF /* LeftZeroesPaddedBytesTests.swift in Sources */,
11601172
584FA4C51FE10AFE6858E23A /* EncodedABIFunctionTests.swift in Sources */,
11611173
584FAA14636513F543FBBB25 /* Keccak256BytesTests.swift in Sources */,
@@ -1325,7 +1337,7 @@
13251337
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
13261338
GCC_WARN_UNUSED_FUNCTION = YES;
13271339
GCC_WARN_UNUSED_VARIABLE = YES;
1328-
IPHONEOS_DEPLOYMENT_TARGET = 9.3;
1340+
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
13291341
MTL_ENABLE_DEBUG_INFO = YES;
13301342
ONLY_ACTIVE_ARCH = YES;
13311343
SDKROOT = iphoneos;
@@ -1371,7 +1383,7 @@
13711383
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
13721384
GCC_WARN_UNUSED_FUNCTION = YES;
13731385
GCC_WARN_UNUSED_VARIABLE = YES;
1374-
IPHONEOS_DEPLOYMENT_TARGET = 9.3;
1386+
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
13751387
MTL_ENABLE_DEBUG_INFO = NO;
13761388
SDKROOT = iphoneos;
13771389
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
@@ -1384,6 +1396,7 @@
13841396
baseConfigurationReference = EF31EFC3250D5A7EF77E859E /* Pods-Web3Swift_Example.debug.xcconfig */;
13851397
buildSettings = {
13861398
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
1399+
DEVELOPMENT_TEAM = "";
13871400
INFOPLIST_FILE = Web3Swift/Info.plist;
13881401
IPHONEOS_DEPLOYMENT_TARGET = 10;
13891402
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
@@ -1400,6 +1413,7 @@
14001413
baseConfigurationReference = 17A034A484746115F55C4602 /* Pods-Web3Swift_Example.release.xcconfig */;
14011414
buildSettings = {
14021415
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
1416+
DEVELOPMENT_TEAM = "";
14031417
INFOPLIST_FILE = Web3Swift/Info.plist;
14041418
IPHONEOS_DEPLOYMENT_TARGET = 10;
14051419
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
@@ -1415,6 +1429,7 @@
14151429
isa = XCBuildConfiguration;
14161430
baseConfigurationReference = F63B257E71ACEC57197C6918 /* Pods-Web3Swift_Tests.debug.xcconfig */;
14171431
buildSettings = {
1432+
DEVELOPMENT_TEAM = "";
14181433
GCC_PREPROCESSOR_DEFINITIONS = (
14191434
"DEBUG=1",
14201435
"$(inherited)",
@@ -1432,6 +1447,7 @@
14321447
isa = XCBuildConfiguration;
14331448
baseConfigurationReference = 1683BBDF32FA87183DA47238 /* Pods-Web3Swift_Tests.release.xcconfig */;
14341449
buildSettings = {
1450+
DEVELOPMENT_TEAM = "";
14351451
INFOPLIST_FILE = Tests/Info.plist;
14361452
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
14371453
PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.$(PRODUCT_NAME:rfc1034identifier)";

0 commit comments

Comments
 (0)