2. Why Are Tools So Important?
● The best tools can set a language or a platform apart
● Take for example Stripe vs Paypal
○ Stripe quickly gained market share because there systems
were easier to use and implement
● Ethereum/Solidity tools empower developers to make the best
projects the right way
● DevCon3 had a myriad of talks on new, better tools multiple
companies were developing to enhance the ecosystem
● EOS has a long way to go to create better development tools and
attract developers
3. The Basics: Truffle Suite
Truffle
- The easiest way to
start Solidity
development.
- Install and spin up a
new project as easy as
truffle init
Ganache
- Run your own private
Ethereum blockchain
- Test your applications in
a controlled environment
Drizzle
- A better way to handle
your dApp front end
- Manages syncing and
interactions with your
smart contract
https://truffleframework.com
4. Solidity IDEs
Web Based
EthFiddle
- Good for experimenting with
code snippets and sharing them
- Comparable to JSFiddle
Remix IDE
- An all inclusive online IDE that
will let you compile, deploy and
analyze smart contract code
- Great for beginners
Application Based
IntelliJ-Solidity
- Solidity language support for a
world class IDE
- Still in Alpha stage but still being
updated over time
EtherAtom
- Bringing many of Remix’s best
features to a local editor for
analyzing code and testing
5. Accessing Ethereum via APIs
- Reliable access to hosted
Ethereum nodes and IPFS
gateways.
- Allows you to do all of the
Ethereum JSON-RPC requests
you would normally make on
a local node.
- Easiest interface is web3.js
- Access human readable
content on addresses and
blocks separate from
standard web3.js calls
- Suitable for monitoring
information occuring on the
blockchain by a backend
system
6. Block 16 API
Endpoints
- Access to all the information, transactions, events on a per block level
- Access to token transfers and last 100 ethereum transactions on an
address level
- Endpoints combine calls for all block / uncles / transactions /
transaction receipts into one HTTP call which would normally be
somewhere from 250-500+ calls
Use Cases
- Scanning the entire blockchain and tracking it for transactions
occurring in real time on a separate backend
- Easily accessing assets data on an address
https://docs.block16.io
7. Canonical Smart Contracts
Zeppelin Solutions and DappHub have created many
audited smart contracts that are ready to be deployed at
any time and integrated into your application
Open Zeppelin
● Whitelists
● Crowdsale
● Lifecycle Management
● SafeMath
● Ownership
● Payment
● Token: ERC-20, 721, 827
Dapp Tools
● Multisig
● Authentication (Authority)
● Proxy
● Cache
● Token: ERC-20
8. Interfacing into Other Smart Contracts
● The beauty of the Ethereum ecosystem is that once
others deploy smart contracts the only thing you need
to interact with them on a smart contract level is an
Interface.
● Next generation contracts will link what would
normally be multiple transactions (steps) into once
succinct transaction through the use of proxy contracts.
● These proxy contracts send bytecode and data for the
sender as them but use Interfaces to interact with
contracts around them for the individual actions.
9. Case Study: Oasis Direct Atomic Swaps
Wrapped Ether Token Interface
Exchange Trading Interface
10. Case Study: Oasis Direct Atomic Swaps
1. Convert ETH -> W-ETH Token
- Send ETH to the deposit() function of
WEthInterface
- Call allowance() function to set the tokens able
to be transferred
2. Exchange Tokens
- Exchange tokens through OTC interface which
buys or sells one set of tokens for another on a
separate contract
3. Send Token to Original Sender of ETH
11. Thank you for your time!
Petros Ring
petros@block16.io
block16.io