/studio

Zapper App Integrations

Primary LanguageTypeScriptOtherNOASSERTION

Twitter β€’ Discord

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]

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

πŸ’»

tonzgao

πŸ’»

leifu

πŸ’»

Dominik Prediger

πŸ’» πŸ›

Kakashi

πŸ’»

Andrew Leonard

πŸ’»

Michael

πŸ’»

liuyepiaoxiang

πŸ’»

Apoorv Singal

πŸ’»

The Ol' Dirty Bubble

πŸ’»

Connor Mulhall

πŸ’»

Kosiso

πŸ’»

kinesis-labs

πŸ’»

marcomariscal

πŸ’»

CronosLabsDev

πŸ’»

BastionProvider

πŸ’»

David Esposto

πŸ’»

Weston Nelson

πŸ’»

coslendteam

πŸ’»

liz

πŸ’»

oo-00

πŸ’»

takao-aurigami

πŸ’»

SΓ©bastien Audet

πŸ’» πŸ’¬ 🚧

BlueBit Finance

πŸ’»

Clonescody

πŸ’»

Emerald

πŸ’»

EvLorne

πŸ’»

Kratos

πŸ’»

reganwrench

πŸ’»

scruffy-dev

πŸ’»

Γ‰mile Filteau-Tessier

πŸ’» πŸ’¬ 🚧

Sam | Zapper

πŸ“– πŸ’¬

Single Finance Lab

πŸ’»

FiboApe

πŸ’»

David

πŸ’» πŸ›

0xAlunara

πŸ’»

Eugene Lepeico

πŸ’»

FredCoen

πŸ’»

VaporwaveFinance

πŸ’»

peezebit

πŸ’»

p7m

πŸ’»

0xoats

πŸ›

croc12344

πŸ’»

peteris

πŸ’»

Mike Shultz

πŸ’» πŸ›

Benjamin Hughes

πŸ’» πŸ›

0xButterfield

πŸ’»

Mark

πŸ’»

yuval-weiss

πŸ›

volt62

πŸ’»

0xNeo

πŸ’»

0xR

πŸ’»

DINNGO Dev

πŸ’»

rekt0x

πŸ’»

Mickey

πŸ’» πŸ›

crypslato

πŸ’»

Msordet

πŸ’» πŸ’¬ 🚧

0x A.K.

πŸ’»

Julien THOMAS

πŸ’»

koffeebot

πŸ’»

Justin Greenberg

πŸ’»

Maxime Bedard

πŸ’» πŸ’¬ 🚧

Steven Enamakel

πŸ’»

gauloiseth

πŸ’»

Eugene

πŸ’»

Rob

πŸ’»

Vedant Dalvi

πŸ’»

ibeandyy

πŸ’»

0xdapper

πŸ’»

Oleh Vovnianko

πŸ’»

akashiceth

πŸ’»