Author: Denis
It is proposed to create an alternative open-source version of the 1inch swap interface.
The alternative exchange interface will implement the same functions as the main 1inch exchange interface, but being an open source product, which allows each community member to make changes and put forward suggestions for improving the product
Creation of an alternative version of the interface in the development of which every community member can participate
The main technical task at the moment is to implement an interface that allows creating Fusion Swap Order and Limit Order based on token prices from open onchain or subgraph sources, such as Uniswap v2, v3, SushiSwap, PancakeSwap, and others.
For the technical implementation, Angular 17 (the current version at this moment) will be used, utilizing the new signal approach in this framework. The viem library will be used for onchain interaction.
Also, it is necessary to create a desktop version of the swap interface. For this purpose, an Electron wrapper (or similar technologies) and a distribution system through GitHub Releases will be used.
Rationale
For the implementation of the application, I chose from the three most popular solutions for web applications at the moment: React.js, Angular, and Vue.js. The main criteria for selection were:
Based on these criteria, I settled on Angular as this framework is my main tool. Currently, the Angular development team greatly facilitates the process of working with the framework, making it more flexible and adaptable. This framework provides a full range of solutions for implementing complete web applications, and importantly, TypeScript is native to Angular.
Viem was chosen as the most modern and lightweight implementation of the onchain middleware. It is well-suited for tree shaking and has very strict TypeScript support.
Although the main goal of the application is to fully transition to an onchain work system and to move away from various APIs, at this stage, we cannot completely abandon the use of external APIs. The only essential API, without which the application cannot function, is the API for sending fusion orders. To interact with this API, the 1inch Dev Portal will be used. Since the 1inch Dev Portal requires authorization and its security policies do not allow working with the API through web applications, setting up and maintaining a proxy is required. In turn, a completely open and unprotected proxy will become a kind of backdoor for anyone who wants to use it. This implies the need for setting up CORS policies and various security measures such as a Web Application Firewall.
Lead Developer: The team leader's responsibilities include creating the basic framework of the application, establishing and maintaining contribution rules for the community, writing application code, writing unit tests.
Cost for 12 months: $72000
Part-time UI/UX Designer: The designer's responsibilities include developing a design that differs from the main 1inch design and creating a unique style for the application
Cost for 12 months: $1000
Total: $73000
Receiving Address
For funding the project, the following address is proposed: 0x568D3086f5377e59BF2Ef77bd1051486b581b214.
GitHub repository: https://github.com/1inch-community/interface