Coder Social home page Coder Social logo

johndpope / web3swift-1 Goto Github PK

View Code? Open in Web Editor NEW

This project forked from web3swift-team/web3swift

0.0 3.0 0.0 7.15 MB

Elegant Web3js functionality in Swift. Native ABI parsing and smart contract interactions.

License: Apache License 2.0

Ruby 0.23% Swift 99.67% C 0.03% Objective-C 0.06%

web3swift-1's Introduction

matter-github-swift

web3swift

Version License Platform support Build Status

Ask questions

web3swift is your toolbelt for any kind interactions with Ethereum network.


Features

  • Swift implementation of web3.js functionality ⚑
  • Interaction with remote node via JSON RPC πŸ’­
  • Smart-contract ABI parsing πŸ“–
  • ABI deconding (V2 is supported with return of structures from public functions. Part of 0.4.22 Solidity compiler)
  • RLP encoding
  • Interactions (read/write to Smart contracts) πŸ”„
  • Local keystore management (geth compatible)
  • Batched requests in concurrent mode
  • Literally following the standards:
    • BIP32 HD Wallets: Deterministic Wallet
    • BIP39 (Seed phrases)
    • BIP44 (Key generation prefixes)
    • EIP-155 (Replay attacks protection) enforced!
  • Comprehensive Unit and Integration Test Coverage
  • Complete Documentation

Design Decisions

  • Not every JSON RPC function is exposed yet, and priority is given to the ones required for mobile devices
  • Functionality was focused on serializing and signing transactions locally on the device to send raw transactions to Ethereum network
  • Requirements for password input on every transaction are indeed a design decision. Interface designers can save user passwords with the user's consent
  • 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

Requirements

  • iOS 9.0+ / macOS 10.11+
  • Xcode 9.0+
  • Swift 4.1+

Migration Guides

Communication

When using this lib, please make references to this repo and give your start! :) Nothing makes developers happier than seeing someone else use our work and go wild with it.

If you are using web3swift in your app or know of an app that uses it, please add it to this list.

Installation

CocoaPods

CocoaPods is a dependency manager for Cocoa projects. You can install it with the following command:

$ sudo gem install cocoapods

To integrate web3swift into your Xcode project using CocoaPods, specify it in your Podfile:

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '9.0'

target '<Your Target Name>' do
    use_frameworks!
    pod 'web3swift'
end

Then, run the following command:

$ pod install

Carthage

Carthage is a decentralized dependency manager that builds your dependencies and provides you with binary frameworks.

You can install Carthage with Homebrew using the following command:

$ brew update
$ brew install carthage

To integrate web3swift into your Xcode project using Carthage, specify it in your Cartfile:

github "web3swift/web3swift" ~> 1.1.9

Run carthage update to build the framework and drag the built web3swift.framework into your Xcode project.

Example Project

You can try lib by running the example project:

  • Clone the repo: git clone https://github.com/matterinc/web3swift.git
  • Move to the repo: cd web3swift/Example/web3swiftExample
  • Install Dependencies: pod install
  • Open: open ./web3swiftExample.xcworkspace

Credits

Alex Vlasov, @shamatar, [email protected]

Petr Korolev, @skywinder

Security Disclosure

If you believe you have identified a security vulnerability with web3swift, you should report it as soon as possible via email to Alex Vlasov [email protected]. Please do not post it to a public issue tracker.

Donations

The Matters are charged with open-sorсe and do not require money for using their web3swift lib. We want to continue to do everything we can to move the needle forward. If you use any of our libraries for work, see if your employers would be interested in donating. Any amount you can donate today to help us reach our goal would be greatly appreciated.

Our Ether wallet address: 0xe22b8979739d724343bd002f9f432f5990879901

Donate

License

web3swift is available under the Apache License 2.0 license. See the LICENSE for details.

web3swift-1's People

Contributors

shamatar avatar skywinder avatar baldyash avatar fesenkog avatar dsemenovsky avatar wingsofovnia avatar chapiron avatar currybab avatar plazmathron avatar

Watchers

John D. Pope avatar James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.