Upgrade driven development, Solidity 0.5.7, Etherlime & building assets marketplaces
Blockchain Dev Weekly Digest 31.03.19
Ladies and gents, welcome to my favourite time of the week where we review the developer-mind-worthy developments and contents from the past 7 days.
This week we have news from Solidity, Etherlime, Truffle, ForgAE, and Infura. In addition, there’s also a few wonderful articles and learning pieces coming from 0xcert, Zeppelin and more.
Languages, Tools and Libraries updates
Solidity 0.5.7
Resources:
https://github.com/ethereum/solidity/releases/tag/v0.5.7
https://blog.ethereum.org/2019/03/26/solidity-optimizer-and-abiencoderv2-bug/
Solidity team has gotten in a nasty streak these couple of weeks. After the bugfix release 0.5.6 last week, this one we have another bugfix release — 0.5.7.
This release contains a bugfix for the experimental ABIEncoder v2. The problem comes down to sending arrays to external contracts through the use of the abi.encode function. So if you are not sending arrays through abi.encode you are probably safe and don’t need to panic.
If you are using this function there are still more conditions to be met in order for this bug to manifest itself. Read the conditions here.
Important note from the official statement about this bug is that it is much more likely to result in malfunctioning than exploitation, but regardless of that, if you are affected, please do make hasty steps to move away from it.
Other minor bugfixes in this version concern the solc optimizer. Part of the bugs with it concerning overflows were fixed in the last version and the rest have supposedly been removed in this one.
Etherlime 1.0.6
Resource: https://github.com/LimeChain/etherlime/releases/tag/v1.0.6
Etherlime has released a new minor version, setting up the ground for the upcoming feature rich release next week.
By popular demand, this release contains augmentation of the etherlime ganache
command with parameters for setting default gas limits.
Truffle 5.0.10
Resource: https://github.com/trufflesuite/truffle/releases/tag/v5.0.10
Version 5.0.10 of Truffle is here with the following improvements on the debugger:
- support for some globally-available variables
- ability to use an external list of breakpoints
- fix to properly handle failed calls
In addition, there are improvements on the compilation process, where now we have more info in the build files and the error messages about version mismatch are improved.
Forgae 1.3.2
Resource:
https://github.com/aeternity/aepp-forgae-js/releases/tag/v1.3.0
https://github.com/aeternity/aepp-forgae-js/releases/tag/v1.3.2
Forgae, the deployment and development tool for the Aeternity network, has a new version - 1.3.2. This version introduces the new feature forgae shape,
allowing the developer to scaffold a new client-side project through the use of the tool. The first shape available is for the front-end web framework Vue.js
What is more, there are improvements on the init
command and the addition of anoptions
parameter for the Deployer object.
Infura WebSocket API Upgrade
Resource: https://blog.infura.io/websocket-api-upgrade-now-live-e3406cc70d14
Infura has released a new upgrade of their WebSocket API. This upgrade does not introduce new features but rather stabilises the somewhat shaky websocket API. Some notable things that have been improved:
- Fixed the 1 hour idle timeout
- New subscriptions endpoints
- Stable and consistent responses to the same queries regardless of the conditions
Knowledge sharing
Building your own Art Marketplace with 0xcert
Wonderful tutorial by Merunas Grincalaitis has surfaced this week. It teaches the reader how to build their own Digital Art Marketplace based on non-fungible tokens.
Key takeaway from the tutorial is that the cornerstone of this solution is the 0xcert framework.
0xcert is a collection of libraries and smart contracts allowing the developers to easily define and encode their own asset based marketplaces — the asset being ERC721 NFT.
The tutorial does a good service to the reader by giving both the Pros and Cons of the solution and by successfully highlighting the good documentation of 0xcert, while pointing the improvements that might be done.
The end result: in 12 minutes of reading you will know how to build your own 0xcert based Marketplace — I’d say give it a go.
Querying Ethereum Efficiently — mass get balances of eth and token much faster
Resource: https://github.com/rstormsf/ico_per_week/tree/004_eth_call_batch
Roman Storm, an expert Solidity developer, has gone to efficiently tackle a weird task that all of us need to perform from time to time. The task in hand is getting multiple users eth and erc20 token balances.
The idea in this tutorial is to use Solidity contract for this optimisation instead of single calls. Very neat idea!
Upgrade Driven Development Workshop Video By Zeppelin
Resource: https://www.youtube.com/watch?v=dV1DWSzHuBE
In my opinion, upgradeability is something that is relatively unknown to blockchain devs. Dennison Bertram of Zeppelin Solutions has given an hour long workshop on how you can learn to think about it and code it up. All of this is accomplished through ZeppelinOS and ZepKit. If you are new to upgradeability or ZeppelinOS, the video above is an incredibly potent way to go about learning it.
Like what you read and perhaps curious about what LimeChain is up to?
Follow us on:
Sources:
Thanks to all the people that have messaged me about the news this week!
About the author: George Spasov, Co-founder and Blockchain Architect @LimeChain, has developed a multitude of blockchain projects — public and private — and is a prominent member of several blockchains communities. He is most recognized for his work on Etherlime — the ECF and ETHPrize ethers.js-based development and deployment framework, LimePay — the UX solution for executing blockchain transactions with a credit card and being one of the first members of the MetaCartel — the meta-transactions community.