Skip to content
Fast, simple and complete library for Ethereum in Objective-C.
C Objective-C Other
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
ethers.xcodeproj Initial Travis-CI support Mar 17, 2017
ethers Added better Recovery Param recovery to signed transactions and messa… Jan 21, 2018
ethersTests Added message signing. Dec 14, 2017
tools/extract-mnemonic Added some debug into to mnemonic extraction. Feb 9, 2017
.gitignore
.travis.yml
LICENSE.txt Added basic readme and license. Feb 8, 2017
README.md

README.md

ethers.objc

Everything you need to write your own Ethereum wallet and interact with the blockchain.

Please note this documentation is a work in progress, with many stubs and place holders. The bulk of the documentation is being put together in a readthedocs RST document and this is just to help out a (very) little in the meantime.

Features:

  • Simple and complete public API
  • Ready-to-go; drop the framework into your project and you are off to the races
  • Full testnet support
  • Geth Secret Storage Wallet support
  • BIP39 + BIP32 + BIP44 support (SLIP 44)
  • ICAP + checksum address support
  • Multiple providers and meta-providers
  • Secure; all private keys are stored in self-clearing memory
  • A large test suite to ensure correctness against other libraries
  • Open Source (MIT Licensed)

API

To use the Framework, add the ethers.Framework to your project and add:

@import ethers;

Fundamentals

Account

An account contains a private key used to sign transactions and prove ownership of an account.

  • Import/Export Geth Secret storage wallets
  • Generate and import BIP 39 mnemonic wallets (m/44'/60'/0'/0/0)

Provider

  • A provider is used to connect to the blockchain.

Common Objects

Address

  • Checksum Addresses
  • IBAN/ICAP Addresses

BigNumber

  • Explain why we need to use Bignumbers

Hash

  • BlockHash
  • TransactionHash

Promise

  • Async
  • Chainable and able to make a dependency tree

Detail Objects

Transaction

  • Serialize and deserialize transactions
  • EIP155 support

TransactionInfo

  • Information (possibly incomplete) about a transaction

BlockInfo

  • Information about a block

Providers

EtherscanProvider

InfuraProvider

  • Connect to INFURA with an optional API Access Token.

JsonRpcProvider

  • Connect to any Parity, Geth, et cetera node.

FallbackProvider

  • On error, try the next provider in the list.

RoundRobinProvider

  • Randomly selects from a list of providers, with fallback.

LightWalletProvider

  • Experimental
  • Still a lot of issues with the iOS Geth library (and xgo)
  • Makes the phone VERY hot

Utilities

SecureData

  • Create NSMutableData backed objects with a SecureAllocator to zero the memory when deallocated.
  • Convenience methods for operating on hex strings

Payment

  • Convert between ether value strings and wei
  • Parse payment URI

To Do

Contract API

Still need an equivalent to the Ethers.Contract object to parse an ABI, and generate ABI encoders/decoders.

License

MIT License.

Donations

Everything is released under the MIT license, so these is absolutely no need to donate anything. If you would like to buy me a coffee though, I certainly won't complain. =)

  • Ethereum: 0x2F40e3b51533698A14aFcf7Fe386050e22e1FdB2
  • Bitcoin: 18QMCEt71xUioVncupxy8ZajKooFkpG4Y6
You can’t perform that action at this time.