Gaselle smart contract enables various Dapps to attract new users by offering them using an app without registration or making financial transactions and verify whether Dapp is worthy for them.
Gaselle facilitates new users to utilize Dapps immediately without disclosing their identity or doing any monetary transactions. Gaselle minimizes costs by saving gas. It internally puts multiple ERC20 operations into a single transaction, which lowers down the amount of gas used per operation. Furthermore, Dapps can perform more operations in a single Ethereum block.
The transaction relies on the allowance mechanism of the ERC20 token and it sets Gaselle to pull the funds from a respective wallet. Gaselle generates the unique signature of a user using the private key and salt mechanism. If the user’s request is valid, then the operation is stored in the SQS queue. Gaselle waits for a few seconds for other operations. It packages all the operations into a single transaction, which minimizes gas per operation.
Gaselle supports DAI, MKR, ZRX, and WETH tokens and will extend to all ERC20 tokens in the future. With a special OTC contract, anyone can deploy and register his own ERC20 token into Gaselle smart contract.
Arbot is a service running on AWS platform. It syncs with few decentralized exchanges operating on Ethereum platform: Oasis, Radar Relay and The Ocean.
It provides a view of the joined order book across supported markets. Arbot’s goal is to capture situations when across two or more markets available orders allow it to simultaneously buy and sell assets with negative spread. Arbot performs the trades autonomously and reports them to Slack channel.
From a technical point of view, one of the interesting parts of the Arbot project was how it approached providing visibility of it’s internal state. Despite being a backend application, Arbot uses Redux for management of internal state. This state is synced over socket.io connection, which provides a read-only view of state to connected frontend client. Newly connected frontend session receives snapshot of current state of the backend and each subsequent change in the store is broadcasted to all frontend clients.