You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
-[x] Manage user's private keys through encrypted keystore abstractions
35
65
36
-
**Trasactions operations:**
66
+
**Transactions operations:**
37
67
-[x] Sign transactions
38
68
-[x] Send transactions, call functions of smart-contracts, estimate gas costs
39
69
-[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
70
+
-[x] Check transaction results and get the receipt
71
+
-[x] Parse event logs for the transaction
42
72
-[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
-
73
+
-[x] Batched requests in concurrent mode, check balances of 580 tokens (from the latest MyEtherWallet repo) over 3 seconds
45
74
46
-
## Check this out
47
-
48
-
- Private key and transaction were created directly on an iOS device and sent directly to [Infura](https://infura.io) node
49
-
- Native API
50
-
- Security (as cool as a hard wallet! Right out-of-the-box! :box: )
51
-
- No unnecessary dependencies
52
-
- Possibility to work with all existing smart contracts
53
-
- Referencing the newest features introduced in Solidity
54
75
55
76
## Design decisions
56
77
57
-
- Not every JSON RPC function is exposed yet, priority is given to the ones required for mobile devices
78
+
- Not every JSON RPC function is exposed yet, and priority is given to the ones required for mobile devices
58
79
- Functionality was focused on serializing and signing transactions locally on the device to send raw transactions to Ethereum network
59
80
- Requirements for password input on every transaction are indeed a design decision. Interface designers can save user passwords with the user's consent
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
81
+
- 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
61
82
62
83
## Example
63
84
64
85
You can try it yourself by running the example project:
65
86
66
87
- 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`
88
+
-Move to the repo: `cd web3swift/Example/web3swiftExample`
89
+
- Install Dependencies: `pod install`
69
90
- Open: `open ./web3swiftExample.xcworkspace`
70
91
71
-
## Requirements
72
-
73
-
Web3swift requires Swift 4.1 and iOS 9.0 or macOS 10.11 although we recommend to use the latest iOS and MacOS versions for your own safety. Don't forget to set the iOS version in a Podfile, otherwise you get an error if the deployment target is less than the latest SDK.
74
92
75
-
## Communication
93
+
## Installation
76
94
77
-
- if you **need help**, use [Stack Overflow](https://stackoverflow.com/questions/tagged/web3swift) (tag 'web3swift')
78
-
- If you'd like to **ask a general question**, use [Stack Overflow](http://stackoverflow.com/questions/tagged/web3swift).
79
-
- If you **found a bug**, [open an issue](https://github.com/matterinc/web3swift/issues).
80
-
- If you **have a feature request**, [open an issue](https://github.com/matterinc/web3swift/issues).
81
-
- If you **want to contribute**, [submit a pull request](https://github.com/matterinc/web3swift/pulls).
95
+
### Requirements
82
96
83
-
## Installation
97
+
Web3swift requires `Swift 4.1` and `iOS 9.0` or `macOS 10.11` although we recommend using the latest iOS and MacOS versions for your safety. Don't forget to set the iOS version in a Podfile. Otherwise, you get an error if the deployment target is less than the latest SDK.
84
98
85
99
### CocoaPods
86
100
@@ -110,7 +124,7 @@ $ pod install
110
124
111
125
## Getting started
112
126
113
-
Here's a few use cases:
127
+
Here are a few use cases:
114
128
115
129
### Create Account
116
130
@@ -136,7 +150,7 @@ else {
136
150
fatalError("Couldn't create a KeystoreManager.")
137
151
}
138
152
139
-
//Next you create the a new Keystore:
153
+
//Next you create a new Keystore:
140
154
141
155
let newKeystore =try?EthereumKeystoreV3(password: "YOUR_PASSWORD")
## [Apps using this library](https://github.com/matterinc/web3swift/wiki/Apps-using-web3swift)
254
+
## Apps using this library
241
255
242
-
If you are using `web3swift` in your app or know of an app that uses it, please add it to this list. It would be much appreciated! 👍
256
+
If you are using `web3swift` in your app or know of an app that uses it, please add it to this list: [Apps using this library](https://github.com/matterinc/web3swift/wiki/Apps-using-web3swift)
@@ -255,35 +272,49 @@ If you've used this project in a live app, please let us know!
255
272
256
273
257
274
258
-
## Future plans
275
+
## Plans
259
276
260
277
- Full reference `web3js` functionality
261
278
- Light Ethereum subprotocol (LES) integration
262
279
263
280
264
-
## Special thanks to
265
-
266
-
- Gnosis team and their library [Bivrost-swift](https://github.com/gnosis/bivrost-swift) for inspiration for the ABI decoding approach
267
-
-[Trust iOS Wallet](https://github.com/TrustWallet/trust-wallet-ios) for the collaboration and discussion of the initial idea
268
-
- Official Ethereum and Solidity docs, everything was written from ground truth standards
269
-
270
-
## Contribution
281
+
### Extra features:
271
282
272
283
For the latest version, please check [develop](https://github.com/matterinc/web3swift/tree/develop) branch.
273
284
Changes made to this branch will be merged into the [master](https://github.com/matterinc/web3swift/tree/master) branch at some point.
274
285
275
-
- If you want to contribute, submit a [pull request](https://github.com/matterinc/web3swift/pulls) against a development `develop` branch.
276
-
- If you found a bug, [open an issue](https://github.com/matterinc/web3swift/issues).
277
-
- If you have a feature request, [open an issue](https://github.com/matterinc/web3swift/issues).
286
+
---
278
287
279
288
280
-
## Appreciation
289
+
## Stay in touch
281
290
282
291
When using this pod, please make references to this repo and give your start! :)
283
292
*Nothing makes developers happier than seeing someone else use our work and go wild with it.*
284
293
294
+
285
295
If you are using web3swift in your app or know of an app that uses it, please add it to [this list](https://github.com/matterinc/web3swift/wiki/Apps-using-web3swift).
286
296
297
+
298
+
### Contribution
299
+
300
+
301
+
- If you **have a feature request**, [open an issue](https://github.com/matterinc/web3swift/issues).
302
+
- If you **want to contribute**, [submit a pull request](https://github.com/matterinc/web3swift/pulls).
303
+
304
+
305
+
### Communication
306
+
307
+
- if you **need help**, use [Stack Overflow](https://stackoverflow.com/questions/tagged/web3swift) (tag 'web3swift')
308
+
- If you'd like to **ask a general question**, use [Stack Overflow](http://stackoverflow.com/questions/tagged/web3swift).
309
+
- If you **found a bug**, [open an issue](https://github.com/matterinc/web3swift/issues).
310
+
311
+
312
+
### Special thanks to
313
+
314
+
- Gnosis team and their library [Bivrost-swift](https://github.com/gnosis/bivrost-swift) for inspiration for the ABI decoding approach
315
+
-[Trust iOS Wallet](https://github.com/TrustWallet/trust-wallet-ios) for the collaboration and discussion of the initial idea
316
+
- Official Ethereum and Solidity docs, everything was written from ground truth standards
317
+
-
287
318
## Authors
288
319
289
320
Alex Vlasov, [@shamatar](https://github.com/shamatar), [email protected]
0 commit comments