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
25
65
26
-
## Check this out
66
+
**Transactions operations:**
67
+
-[x] Sign transactions
68
+
-[x] Send transactions, call functions of smart-contracts, estimate gas costs
69
+
-[x] Serialize and deserialize transactions and results to native Swift types
70
+
-[x] Check transaction results and get the receipt
71
+
-[x] Parse event logs for the transaction
72
+
-[x] Convenience functions for chain state: block number, gas price
73
+
-[x] Batched requests in concurrent mode, check balances of 580 tokens (from the latest MyEtherWallet repo) over 3 seconds
27
74
28
-
- Private key and transaction were created directly on an iOS device and sent directly to [Infura](https://infura.io) node
29
-
- Native API
30
-
- Security (as cool as a hard wallet! Right out-of-the-box! :box: )
31
-
- No unnecessary dependencies
32
-
- Possibility to work with all existing smart contracts
33
-
- Referencing the newest features introduced in Solidity
34
75
35
76
## Design decisions
36
77
37
-
- 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
38
79
- Functionality was focused on serializing and signing transactions locally on the device to send raw transactions to Ethereum network
39
80
- Requirements for password input on every transaction are indeed a design decision. Interface designers can save user passwords with the user's consent
40
-
- 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
On Rinkeby TXid = 0xc6eca60ecac004a1501a4323a10edb7fa4cd1a0896675f6b51704c84dedad056
62
-
```
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
63
82
64
83
## Example
65
84
66
85
You can try it yourself by running the example project:
67
86
68
-
- Clone the repo
69
-
-`cd Example/web3swiftExample`
70
-
-run `pod install` from the `Example/web3swiftExample` directory.
71
-
-`open ./web3swiftExample.xcworkspace`
87
+
- Clone the repo: `git clone https://github.com/matterinc/web3swift.git`
88
+
-Move to the repo: `cd web3swift/Example/web3swiftExample`
89
+
-Install Dependencies: `pod install`
90
+
-Open: `open ./web3swiftExample.xcworkspace`
72
91
73
-
## Requirements
74
92
75
-
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.
93
+
## Installation
76
94
77
-
##Communication
95
+
### Requirements
78
96
79
-
- if you **need help**, use [Stack Overflow](https://stackoverflow.com/questions/tagged/web3swift) (tag 'web3swift')
80
-
- If you'd like to **ask a general question**, use [Stack Overflow](http://stackoverflow.com/questions/tagged/web3swift).
81
-
- If you **found a bug**, [open an issue](https://github.com/matterinc/web3swift/issues).
82
-
- If you **have a feature request**, [open an issue](https://github.com/matterinc/web3swift/issues).
83
-
- If you **want to contribute**, [submit a pull request](https://github.com/matterinc/web3swift/pulls).
84
-
85
-
## 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.
86
98
87
99
### CocoaPods
88
100
@@ -92,17 +104,15 @@ Web3swift requires Swift 4.1 and iOS 9.0 or macOS 10.11 although we recommend to
92
104
$ sudo gem install cocoapods
93
105
```
94
106
95
-
96
107
To integrate web3swift into your Xcode project using CocoaPods, specify it in your `Podfile`:
97
108
98
-
99
109
```ruby
100
110
source 'https://github.com/CocoaPods/Specs.git'
101
111
platform :ios, '9.0'
102
112
103
113
target '<Your Target Name>'do
104
114
use_frameworks!
105
-
pod 'web3swift', '~> 1.1.5'
115
+
pod 'web3swift'
106
116
end
107
117
```
108
118
@@ -111,22 +121,10 @@ Then, run the following command:
111
121
```bash
112
122
$ pod install
113
123
```
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
124
127
125
## Getting started
128
126
129
-
Here's a few use cases:
127
+
Here are a few use cases:
130
128
131
129
### Create Account
132
130
@@ -152,7 +150,7 @@ else {
152
150
fatalError("Couldn't create a KeystoreManager.")
153
151
}
154
152
155
-
//Next you create the a new Keystore:
153
+
//Next you create a new Keystore:
156
154
157
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
255
+
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)
257
+
It would be much appreciated! 👍
257
258
258
-
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! 👍
*[YOUR APP CAN BE THERE (click me)](https://github.com/matterinc/web3swift/wiki/Apps-using-web3swift/_edit):wink:
266
268
267
269
If you've used this project in a live app, please let us know!
268
270
269
271
*If you are using `web3swift` in your app or know of an app that uses it, please add it to [this](https://github.com/matterinc/web3swift/wiki/Apps-using-web3swift) list.*
270
272
271
273
272
274
273
-
## Future plans
275
+
## Plans
274
276
275
277
- Full reference `web3js` functionality
276
278
- Light Ethereum subprotocol (LES) integration
277
279
278
280
279
-
## Special thanks to
280
-
281
-
- Gnosis team and their library [Bivrost-swift](https://github.com/gnosis/bivrost-swift) for inspiration for the ABI decoding approach
282
-
-[Trust iOS Wallet](https://github.com/TrustWallet/trust-wallet-ios) for the collaboration and discussion of the initial idea
283
-
- Official Ethereum and Solidity docs, everything was written from ground truth standards
284
-
285
-
## Contribution
281
+
### Extra features:
286
282
287
283
For the latest version, please check [develop](https://github.com/matterinc/web3swift/tree/develop) branch.
288
284
Changes made to this branch will be merged into the [master](https://github.com/matterinc/web3swift/tree/master) branch at some point.
289
285
290
-
- If you want to contribute, submit a [pull request](https://github.com/matterinc/web3swift/pulls) against a development `develop` branch.
291
-
- If you found a bug, [open an issue](https://github.com/matterinc/web3swift/issues).
292
-
- If you have a feature request, [open an issue](https://github.com/matterinc/web3swift/issues).
286
+
---
293
287
294
288
295
-
## Appreciation
289
+
## Stay in touch
296
290
297
291
When using this pod, please make references to this repo and give your start! :)
298
292
*Nothing makes developers happier than seeing someone else use our work and go wild with it.*
299
293
294
+
300
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).
301
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
+
-
302
318
## Authors
303
319
304
320
Alex Vlasov, [@shamatar](https://github.com/shamatar), [email protected]
0 commit comments