@@ -9,19 +9,39 @@ The work for 2.0 release is about to start. Ideas for new more Swift idiomatic A
9
9
[ ![ Platform] ( https://img.shields.io/cocoapods/p/web3swift.svg?style=flat )] ( http://cocoapods.org/pods/web3swift )
10
10
[ ![ support] ( https://brianmacdonald.github.io/Ethonate/svg/eth-support-blue.svg )] ( https://brianmacdonald.github.io/Ethonate/address#0x6394b37Cf80A7358b38068f0CA4760ad49983a1B )
11
11
12
+ ** web3swift** is your toolbelt for any kind iteractions with Ethereum network.
13
+
14
+ ### Features:
15
+
12
16
- Swift implementation of [ web3.js] ( https://github.com/ethereum/web3.js/ ) functionality :zap :
13
17
- Interaction with remote node via JSON RPC :thought_balloon :
14
18
- Smart-contract ABI parsing :book :
15
19
- ABI deconding (V2 is supported with return of structures from public functions. Part of 0.4.22 Solidity compiler)
16
20
- RLP encoding
17
21
- Interactions (read/write to Smart contracts) :arrows_counterclockwise :
18
- - Local keystore management (geth compatible)
22
+ - Local keystore management (` geth ` compatible)
19
23
- Literally following the standards:
20
24
- [ BIP32] ( https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki ) HD Wallets: Deterministic Wallet
21
25
- [ BIP39] ( https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki ) (Seed phrases)
22
26
- [ BIP44] ( https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki ) (Key generation prefixes)
23
27
- [ EIP-155] ( https://github.com/ethereum/EIPs/blob/master/EIPS/eip-155.md ) (Replay attacks protection) * enforced!*
24
28
29
+ ### What you can do:
30
+
31
+ ** Account Managment:**
32
+ - [x] Create Account
33
+ - [x] Import Account
34
+ - [x] Manage user's private keys through encrypted keystore abstractions
35
+
36
+ ** Trasactions operations:**
37
+ - [x] Sign transactions
38
+ - [x] Send transactions, call functions of smart-contracts, estimate gas costs
39
+ - [x] Serialize and deserialize transactions and results to native Swift types
40
+ - [x] Check transaction results and get receipt
41
+ - [x] Parse event logs for transaction
42
+ - [x] Convenience functions for chain state: block number, gas price
43
+ - [x] Batched requests in concurrent mode, checks balances of 580 tokens (from the latest MyEtherWallet repo) over 3 seconds
44
+
25
45
26
46
## Check this out
27
47
@@ -39,36 +59,14 @@ The work for 2.0 release is about to start. Ideas for new more Swift idiomatic A
39
59
- Requirements for password input on every transaction are indeed a design decision. Interface designers can save user passwords with the user's consent
40
60
- Public function for private key export is exposed for user convenience, but marked as UNSAFE_ :) Normal workflow takes care of EIP155 compatibility and proper clearing of private key data from memory
41
61
42
- ### Here it is
43
- [ https://rinkeby.etherscan.io/tx/0xc6eca60ecac004a1501a4323a10edb7fa4cd1a0896675f6b51704c84dedad056 ] ( https://rinkeby.etherscan.io/tx/0xc6eca60ecac004a1501a4323a10edb7fa4cd1a0896675f6b51704c84dedad056 )
44
-
45
- ```
46
- Transaction
47
- Nonce: 35
48
- Gas price: 5000000000
49
- Gas limit: 21000
50
- To: 0x6394b37Cf80A7358b38068f0CA4760ad49983a1B
51
- Value: 1000000000000000
52
- Data: 0x
53
- v: 43
54
- r: 73059897783840535708732471549376620878882680550447969052675399628060606060727
55
- s: 12280625377431973240236065453692843538037349746280474092545114784968542260859
56
- Intrinsic chainID: Optional(4)
57
- Infered chainID: Optional(4)
58
- sender: Optional(web3swift.EthereumAddress(_address: "0x855adf524273c14b7260a188af0ae30e82e91959"))
59
-
60
- ["id": 1514485925, "result": 0xc6eca60ecac004a1501a4323a10edb7fa4cd1a0896675f6b51704c84dedad056, "jsonrpc": 2.0]
61
- On Rinkeby TXid = 0xc6eca60ecac004a1501a4323a10edb7fa4cd1a0896675f6b51704c84dedad056
62
- ```
63
-
64
62
## Example
65
63
66
64
You can try it yourself by running the example project:
67
65
68
- - Clone the repo
69
- - ` cd Example/web3swiftExample `
70
- - run ` pod install ` from the ` Example/web3swiftExample ` directory.
71
- - ` open ./web3swiftExample.xcworkspace `
66
+ - Clone the repo: ` git clone https://github.com/matterinc/web3swift.git `
67
+ - Movw to the repo: ` cd web3swift/ Example/web3swiftExample `
68
+ - Install Dependecies: ` pod install `
69
+ - Open: ` open ./web3swiftExample.xcworkspace `
72
70
73
71
## Requirements
74
72
@@ -92,17 +90,15 @@ Web3swift requires Swift 4.1 and iOS 9.0 or macOS 10.11 although we recommend to
92
90
$ sudo gem install cocoapods
93
91
```
94
92
95
-
96
93
To integrate web3swift into your Xcode project using CocoaPods, specify it in your ` Podfile ` :
97
94
98
-
99
95
``` ruby
100
96
source ' https://github.com/CocoaPods/Specs.git'
101
97
platform :ios , ' 9.0'
102
98
103
99
target ' <Your Target Name>' do
104
100
use_frameworks!
105
- pod ' web3swift' , ' ~> 1.1.5 '
101
+ pod ' web3swift'
106
102
end
107
103
```
108
104
@@ -111,18 +107,6 @@ Then, run the following command:
111
107
``` bash
112
108
$ pod install
113
109
```
114
- ## Features
115
-
116
- - [x] Create Account
117
- - [x] Import Account
118
- - [x] Sign transactions
119
- - [x] Send transactions, call functions of smart-contracts, estimate gas costs
120
- - [x] Serialize and deserialize transactions and results to native Swift types
121
- - [x] Convenience functions for chain state: block number, gas price
122
- - [x] Check transaction results and get receipt
123
- - [x] Parse event logs for transaction
124
- - [x] Manage user's private keys through encrypted keystore abstractions
125
- - [x] Batched requests in concurrent mode, checks balances of 580 tokens (from the latest MyEtherWallet repo) over 3 seconds
126
110
127
111
## Getting started
128
112
@@ -262,7 +246,8 @@ If you are using `web3swift` in your app or know of an app that uses it, please
262
246
* [ Ethereum & ERC20Tokens Wallet] ( https://itunes.apple.com/us/app/ethereum-erc20tokens-wallet/id1386738877?ls=1&mt=8 )
263
247
* [ BankexWallet] ( https://github.com/BANKEX/Pay-iOS )
264
248
* [ GeoChain] ( https://github.com/awallish/GeoChain )
265
- * [ YOUR APP CAN BE THERE (click me)] ( https://github.com/matterinc/web3swift/issues ) :wink :
249
+ * [ TRX-Wallet] ( https://github.com/NewHorizonLabs/TRX-Wallet )
250
+ * [ YOUR APP CAN BE THERE (click me)] ( https://github.com/matterinc/web3swift/wiki/Apps-using-web3swift/_edit ) :wink :
266
251
267
252
If you've used this project in a live app, please let us know!
268
253
0 commit comments