Skip to content

Woodpile37/studio

 
 

Repository files navigation

TwitterDiscord

All Contributors

Description

Zapper Studio is a platform which enables developers in our community to integrate Web3 applications into Zapper. Integrations can support fetching tokens and contract positions, retrieving a wallet's balances, calculating TVL, and more to come in the future. These adapters enrich the Zapper API, and all of its consumers, including our own mobile and web apps.

Requirements

Ensure the following have been installed on your system:

  • Node v16.14.2 or above
  • pnpm

Getting Started

You can get started building immediately!

OpenAPI docs for studio is available on localhost:5001/docs. Which will give you a rough overview of all exposed endpoints you can test out.

If you wish to know how to integrate your application, please check out Zapper Studio docs for more details.

Installation

$ pnpm install

Running the app

$ pnpm dev

Creating a new app

pnpm studio create-app

Creating a new app group

pnpm studio create-group [app-id]

Generating code templates

pnpm studio create-token-fetcher [app-id]
pnpm studio create-contract-position-fetcher [app-id]
pnpm studio create-balance-fetcher [app-id]
pnpm studio create-tvl-fetcher [app-id]

Clearing the cache

Clears the file-system cache that persists app tokens, contract positions and any other app related data. Useful when your are doing modification to an app and it keeps on returning stale data.

pnpm studio clear-cache

Setting custom network providers

If default network providers are too slow or are failing, you can use customize your setup.

pnpm studio set-network-provider

Generating a typescript contract from an ABI

ABIs that are contained within the contracts/abis folder of your application can be leveraged to quickly spin up a typescript library for interacting with a given smart contract.

You can quickly spin up a typescript library for using an ABI by running the following command:

pnpm studio generate:contract-factory [app-id]

Enabling environment specific configuration

Simply copy .env.sample to .env and edit the configuration file.

ENABLED_APPS

Control which app to enable on startup. Particularly useful to keep local build times snappy. When developing your own app, it's recommended to add its identifier (aka: the folder name) and it's dependant apps (also their respective folder name) into this configuration key. See the .env file for further details.

Contributing

Read our Contribution Guide

Contributing new commands

You can generate a new cli command by running the hidden command:

pnpm studio new:command [my-command-name]

Need help ?

Join our community on Discord

License

This repository is under the Business Source License 1.1

Contributors ✨

Thanks goes to these wonderful people (emoji key):


Justin D'Errico

💻 💬 🚧

immasandwich

💻 💬 🚧

William Poulin

💻 💬 🚧

Xavier Drdak

💻 💬 🚧

0xMaxim

📖 💬

YYY

🐛

Jabun

🐛

brightiron

💻

wrap-that-potassium

💻

piersss

💻

Roman Kolpakov

💻

mehdi-loup

💻 💬 🚧

Dylan

💻

Kyle

💻 🐛

Mélen

💻

Papa Sougou Wele

💻 💬 🚧

Alexandre Sobolevski

💻 💬 🚧

Farhaan

💻

About

Zapper App Integrations

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 99.7%
  • Other 0.3%