• Stars
    star
    157
  • Rank 238,399 (Top 5 %)
  • Language
    C
  • License
    MIT License
  • Created almost 8 years ago
  • Updated almost 3 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Fast, simple and complete library for Ethereum in Objective-C.

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

More Repositories

1

ethers.js

Complete Ethereum library and wallet implementation in JavaScript.
TypeScript
7,852
star
2

EthersWallet-ios

Ethereum Wallet and Dapp Browser for iOS.
Objective-C
303
star
3

ethers-ens

Deprecated; please see `@ethersproject/cli` instead
JavaScript
48
star
4

ethers.io

Frontend website HTML, JavaScript and CSS for ethers.io.
JavaScript
41
star
5

tutorial-simplestore

Tutorial for creating a simple storage contract using Ethers.
JavaScript
21
star
6

ethers-web3-bridge

Allow Web3 instances to connect and use Ethers Providers and Signers.
JavaScript
20
star
7

ethers-cli

Deprecated; please see the `@ethersproject/cli` package instead
HTML
17
star
8

ext-provider-multicall

Ethers extension for a multicall-based provider to batch calls.
TypeScript
14
star
9

ancillary-bsc

[Experimental] The Ancillary Package for Binance Smart Chain (BSC)
TypeScript
14
star
10

ethers-ledger

Deprecated; please see `@ethersproject/hardware-wallets` instead
JavaScript
13
star
11

website

Websites for ethers.
JavaScript
8
star
12

ext-evm

Ethers extension package for EVM utilities.
7
star
13

ext-provider-ganache

Ethers extension for the GanacheProvider which provides a simple interface to a Ganache in-memory Ethereum instance.
TypeScript
7
star
14

ethers-aion

An Aion-flavored version of ethers.js.
JavaScript
7
star
15

ext-signer-ledger

Ethers extension for LedgerSigner for Ledger Hardware Wallet support.
TypeScript
6
star
16

ethers-server

Deprecated; this service is no longer in use by anything anymore
JavaScript
5
star
17

documentation

Deprecated; please use the `ethers.js` package instead
Python
5
star
18

ext-provider-plugin-multicoin

Ethers extension for a ProviderPlugin that enables all supported ENS coinTypes in the EnsRsolver.
TypeScript
4
star
19

testcase-generation-scripts

Scripts to generate test vectors for ethers, using other known-correct libraries.
TypeScript
4
star
20

ext-signer

Ethers extension package for additional Signers
4
star
21

ethers-web3

Deprecated; please see `ethers.js` instead
JavaScript
4
star
22

sync-s3-action

GitHub Action to sync an S3 bucket with a folder.
JavaScript
3
star
23

ext-utils-optimism

Ethers extension package for additional Optimism-specific utilities.
TypeScript
2
star
24

hijack-npm-action

GitHub action to run a faux NPM registry which intercepts select npm packages and injects local versions.
TypeScript
2
star
25

ancillary-exchain

An ethers-compatible provider for OKExChain.
TypeScript
2
star
26

ethers-io.github.io

Deprecated; please see `ethers.js` instead
HTML
1
star
27

ext-react

Ethers Extension to simplify developing React application with Ethers.
TypeScript
1
star