From d4bb33c419d619ea65eb932b440bc1f375853d3d Mon Sep 17 00:00:00 2001 From: Razvan Gabriel Date: Sat, 7 Dec 2024 15:07:29 +0200 Subject: [PATCH 1/5] refactor: drops to airdrops --- docs/api/01-overview.mdx | 42 +++++++++---------- docs/api/drops/01-overview.mdx | 14 +++---- docs/api/drops/02-endpoints.mdx | 8 ++-- docs/api/drops/_category_.json | 2 +- docs/api/drops/envio/01-similarities.mdx | 6 +-- docs/api/drops/envio/02-queries.md | 4 +- docs/api/drops/merkle-api/01-overview.mdx | 2 +- .../api/drops/merkle-api/02-functionality.mdx | 8 ++-- docs/api/drops/merkle-api/03-examples.mdx | 12 +++--- docs/api/drops/the-graph/02-queries.md | 4 +- docs/api/lockup/01-overview.mdx | 2 +- docs/apps/features/01-overview.mdx | 8 ++-- docs/apps/features/04-drops.mdx | 26 ++++++------ docs/apps/guides/02-url-schemes.mdx | 2 +- .../lockup/examples/04-create-airstream.mdx | 4 +- docs/support/01-faq.mdx | 26 ++++++------ docs/support/03-user-guides.mdx | 4 +- docusaurus.config.ts | 10 ++--- src/components/organisms/Header.tsx | 4 +- 19 files changed, 95 insertions(+), 93 deletions(-) diff --git a/docs/api/01-overview.mdx b/docs/api/01-overview.mdx index f3d82cfd..e2094d82 100644 --- a/docs/api/01-overview.mdx +++ b/docs/api/01-overview.mdx @@ -22,8 +22,8 @@ We document below: As an alternative to reading data from the contracts or listening to onchain events, we use a set of subgraphs and indexers. These act as a middleware between the chain and our interfaces and allow for caching, formatting and querying -data. For more advanced features like merkle generation (used in Drops) we've written out own SDKs and open sourced some -of them. +data. For more advanced features like merkle generation (used in Airdrops) we've written out own SDKs and open sourced +some of them. :::note Playground @@ -49,8 +49,8 @@ Sablier data from the official [endpoints](/api/lockup/endpoints). Every network - [Lockup subgraph](https://github.com/sablier-labs/subgraphs/apps/lockup) (Vesting) - [Flow endpoints](/api/flow/endpoints) - [Flow subgraph](https://github.com/sablier-labs/subgraphs/apps/flow) (Payments) -- [Drops endpoints](/api/drops/endpoints) -- [Drops subgraph](https://github.com/sablier-labs/subgraphs/apps/merkle) (Drops, Airstreams) +- [Airdrops endpoints](/api/airdrops/endpoints) +- [Airdrops subgraph](https://github.com/sablier-labs/subgraphs/apps/merkle) (Airdrops, Airstreams) - [The Graph docs](https://thegraph.com/docs/en/quick-start/) -## What are Drops / Airstreams? +## What are Airdrops / Airstreams? -**Drops** are large-scale campaigns developed to aid with token distribution towards millions of users. They rely on +**Airdrops** are large-scale campaigns developed to aid with token distribution towards millions of users. They rely on **merkle trees** to efficiently store eligibility details. Extending the classic instant airdrop, Sablier engineered Airstreams, a way to reward users with streams which vest @@ -53,5 +53,5 @@ The first step before diving into this guide is to become familiar with the [con #### Naming convention As per our endpoint [naming convention](api/overview#endpoints--slugs), subgraph deployments of Sablier Airstreams and -Instant Drops will follow the `sablier-v2-ms-*` (short for "merkle subgraph") structure (e.g. `sablier-v2-ms` for +Instant Airdrops will follow the `sablier-v2-ms-*` (short for "merkle subgraph") structure (e.g. `sablier-v2-ms` for Mainnet, `sablier-v2-ms-base` for Base). diff --git a/docs/api/drops/02-endpoints.mdx b/docs/api/drops/02-endpoints.mdx index 415987bd..2592cdb9 100644 --- a/docs/api/drops/02-endpoints.mdx +++ b/docs/api/drops/02-endpoints.mdx @@ -6,15 +6,15 @@ title: "Endpoints" import LinkPreview from "@site/src/components/LinkPreview"; -# Drops / Airstreams +# Airdrops / Airstreams ## The Graph This subgraph tracks events emitted by the `@sablier/lockup-periphery` contracts, specifically the ones in charge of -merkle distributions. It deals with drops-specific actions like the factory creating an airstream campaign, admin +merkle distributions. It deals with airdrops-specific actions like the factory creating an airstream campaign, admin clawbacks, or users claiming stream NFTs as defined in the attached Merkle tree. -Drops work in tandem with [vesting](/apps/features/vesting) as merkle distributions will produce new +Airdrops work in tandem with [vesting](/apps/features/vesting) as merkle distributions will produce new [lockup](/api/lockup/overview) streams. Be sure to check out that part of the docs too. :::important @@ -57,7 +57,7 @@ transitioned our subgraphs to either the Studio or The Decentralized Network (se ## Envio This indexers tracks the events emitted by the `@sablier/lockup-periphery` contracts, specifically the ones in charge of -merkle distributions. It deals with drops-specific actions like the factory creating an airstream campaign, admin +merkle distributions. It deals with airdrops-specific actions like the factory creating an airstream campaign, admin clawbacks, or users claiming stream NFTs as defined in the attached Merkle tree. :::tip Chains: Individual vs. Aggregated diff --git a/docs/api/drops/_category_.json b/docs/api/drops/_category_.json index 0106d345..cfe7af0e 100644 --- a/docs/api/drops/_category_.json +++ b/docs/api/drops/_category_.json @@ -1,5 +1,5 @@ { "collapsed": false, - "label": "Sablier Drops", + "label": "Sablier Airdrops", "position": 4 } diff --git a/docs/api/drops/envio/01-similarities.mdx b/docs/api/drops/envio/01-similarities.mdx index f7c5b41c..c366c4f0 100644 --- a/docs/api/drops/envio/01-similarities.mdx +++ b/docs/api/drops/envio/01-similarities.mdx @@ -9,11 +9,11 @@ title: "Similarities" Envio indexers are designed to mirror the functionality and structure of the The Graph subgraphs. For an introduction into the base Sablier primitives and some architectural choices, make sure to check out the -[merkle subgraph](/api/drops/the-graph/entities) before reading about the `merkle-envio` indexer. +[merkle subgraph](/api/airdrops/the-graph/entities) before reading about the `merkle-envio` indexer. The same (or similar) entities are used throughout both The Graph and Envio setups, as well as protocol and merkle deployments. -- [Entities](/api/drops/the-graph/entities) -- [Structure](/api/drops/the-graph/structure) +- [Entities](/api/airdrops/the-graph/entities) +- [Structure](/api/airdrops/the-graph/structure) - [Architecture and Data Flow](/api/lockup/the-graph/architecture) diff --git a/docs/api/drops/envio/02-queries.md b/docs/api/drops/envio/02-queries.md index 1bda34e7..86aeb55c 100644 --- a/docs/api/drops/envio/02-queries.md +++ b/docs/api/drops/envio/02-queries.md @@ -4,8 +4,8 @@ sidebar_position: 2 title: "Queries" --- -Building on top of the [entity structure](/api/drops/the-graph/entities) defined earlier, here are some common GraphQL -queries for fetching data from the Sablier subgraph. +Building on top of the [entity structure](/api/airdrops/the-graph/entities) defined earlier, here are some common +GraphQL queries for fetching data from the Sablier subgraph. ### Recent streams diff --git a/docs/api/drops/merkle-api/01-overview.mdx b/docs/api/drops/merkle-api/01-overview.mdx index 23f46fbd..63054fa5 100644 --- a/docs/api/drops/merkle-api/01-overview.mdx +++ b/docs/api/drops/merkle-api/01-overview.mdx @@ -8,7 +8,7 @@ import LinkPreview from "@site/src/components/LinkPreview"; ## Overview -Sablier's Drops rely on pre-configured merkle trees. This data structure contains the list of recipients as well as +Sablier's Airdrops rely on pre-configured merkle trees. This data structure contains the list of recipients as well as their individual claim details. ### General data flow diff --git a/docs/api/drops/merkle-api/02-functionality.mdx b/docs/api/drops/merkle-api/02-functionality.mdx index 7835b45f..0501ff58 100644 --- a/docs/api/drops/merkle-api/02-functionality.mdx +++ b/docs/api/drops/merkle-api/02-functionality.mdx @@ -18,7 +18,7 @@ keys). Feel free to reach out for any guidance or feedback. -The official endpoints can be seen in the [drops-endpoints](/api/drops/endpoints) registry. +The official endpoints can be seen in the [airdrops-endpoints](/api/airdrops/endpoints) registry. ## Create: `/api/create` @@ -123,11 +123,11 @@ This endpoint uses an authentication scheme. Please reach out if you need to use To check eligibility for an address, you'll be required to provide: - the address of the user -- the CID of the IPFS file (see the [create](/api/drops/merkle-api/functionality#create-apicreate) flow above for +- the CID of the IPFS file (see the [create](/api/airdrops/merkle-api/functionality#create-apicreate) flow above for context) the campaign is linked to To get a hold of the second item you can see some options here in the -[Common flows](/api/drops/merkle-api/examples#get-a-campaigns-cid) page. +[Common flows](/api/airdrops/merkle-api/examples#get-a-campaigns-cid) page. ### Description @@ -184,7 +184,7 @@ To check eligibility for an address, you'll be required to provide: - the CID of the IPFS file the campaign is linked to To get a hold of it you can see some options here in the -[Common flows](/api/drops/merkle-api/examples#get-a-campaigns-cid) page. +[Common flows](/api/airdrops/merkle-api/examples#get-a-campaigns-cid) page. ### Description diff --git a/docs/api/drops/merkle-api/03-examples.mdx b/docs/api/drops/merkle-api/03-examples.mdx index 7ab7b277..2dd47a9b 100644 --- a/docs/api/drops/merkle-api/03-examples.mdx +++ b/docs/api/drops/merkle-api/03-examples.mdx @@ -10,7 +10,8 @@ import Tabs from "@theme/Tabs"; # Examples of common flows Here are some common architectural flows you may need to integrate into your application. These include ways to gather -the prerequisite data necessary for each backend [functionality](/api/drops/merkle-api/functionality) described earlier. +the prerequisite data necessary for each backend [functionality](/api/airdrops/merkle-api/functionality) described +earlier. ## Get a campaign's CID @@ -175,9 +176,10 @@ To check if a user has already claimed their stream from a campaign you can: For approach "A" you'll need to perform the following actions: 1. Get a hold of the campaign's CID, Lockup contract address, and user address (for the first items, see the - [Get a campaign's CID](/api/drops/merkle-api/examples#get-a-campaigns-cid) example above) -2. Check the eligibility of a user (see [Eligibility](/api/drops/merkle-api/examples#check-eligibility-for-an-address) - example above) and extract their `index` + [Get a campaign's CID](/api/airdrops/merkle-api/examples#get-a-campaigns-cid) example above) +2. Check the eligibility of a user (see + [Eligibility](/api/airdrops/merkle-api/examples#check-eligibility-for-an-address) example above) and extract their + `index` 3. Call the `hasClaimed` method inside the `lockup` contract using the `index` retrieved at step 2 :::note @@ -190,7 +192,7 @@ generate a proof in case the recipient is eligible and to register their claim d #### Approach B For approach "B", run the same query as in the -[Get the tokenId after a claim](/api/drops/merkle-api/examples#get-the-tokenid-after-a-claim) example. If the query +[Get the tokenId after a claim](/api/airdrops/merkle-api/examples#get-the-tokenid-after-a-claim) example. If the query yields any results, that means the user has claimed their stream. :::tip diff --git a/docs/api/drops/the-graph/02-queries.md b/docs/api/drops/the-graph/02-queries.md index cdc31768..b27d4196 100644 --- a/docs/api/drops/the-graph/02-queries.md +++ b/docs/api/drops/the-graph/02-queries.md @@ -4,8 +4,8 @@ sidebar_position: 2 title: "Queries" --- -Building on top of the [entity structure](/api/drops/the-graph/entities) defined earlier, here are some common GraphQL -queries for fetching data from the Sablier subgraph. +Building on top of the [entity structure](/api/airdrops/the-graph/entities) defined earlier, here are some common +GraphQL queries for fetching data from the Sablier subgraph. ### Recent streams diff --git a/docs/api/lockup/01-overview.mdx b/docs/api/lockup/01-overview.mdx index baa2d392..b6447e6c 100644 --- a/docs/api/lockup/01-overview.mdx +++ b/docs/api/lockup/01-overview.mdx @@ -9,7 +9,7 @@ import LinkPreview from "@site/src/components/LinkPreview"; # Sablier Lockup Sablier's [Lockup](/concepts/lockup/overview) streams are used for the [vesting](/apps/features/vesting) and some of the -[drops](/apps/features/drops) functionality of the Sablier Interfaces. +[airdrops](/apps/features/airdrops) functionality of the Sablier Interfaces. Lockup-native functionality is powered by: diff --git a/docs/apps/features/01-overview.mdx b/docs/apps/features/01-overview.mdx index 4e1360b9..a29d0a9c 100644 --- a/docs/apps/features/01-overview.mdx +++ b/docs/apps/features/01-overview.mdx @@ -25,7 +25,7 @@ Our approach is to consider: | -------- | -------------------------- | ----------------------------------------------------------------------- | | Vesting | Sablier Lockup | Well defined rules and strict schedules | | Payments | Sablier Flow | Adapts with time, less collateral-intensive for senders | -| Drops | Sablier Lockup, Airstreams | Instant or vested over time, with pre-configured recipients and amounts | +| Airdrops | Sablier Lockup, Airstreams | Instant or vested over time, with pre-configured recipients and amounts | However, we invite everyone to use these features without any constraints and adapt them to their own unique use-case. @@ -39,11 +39,11 @@ vesting-related features documented in [this section](/apps/features/vesting). Read about the business use-case on the [dedicated webpage](https://sablier.com/payroll) or dive deeper into the vesting-related features documented in [this section](/apps/features/payments). -## Drops / Airstreams +## Airdrops / Airstreams Regardless of the type (Instant 🔜 or Airstreams) read more about the business use-case on the -[dedicated webpage](https://sablier.com/drops) or dive deeper into the vesting-related features documented in -[this section](/apps/features/drops). +[dedicated webpage](https://sablier.com/airdrops) or dive deeper into the vesting-related features documented in +[this section](/apps/features/airdrops). ## Others diff --git a/docs/apps/features/04-drops.mdx b/docs/apps/features/04-drops.mdx index 4ca06a28..1744eb16 100644 --- a/docs/apps/features/04-drops.mdx +++ b/docs/apps/features/04-drops.mdx @@ -1,18 +1,18 @@ --- -id: "drops" +id: "airdrops" sidebar_position: 4 -title: "Drops" +title: "Airdrops" --- -# Drops +# Airdrops The Sablier Interface can handle more than native streams. We developed a solution for distributing token streams to -millions of users called **Drops**. Start exploring at [app.sablier.com](https://app.sablier.com/drops/) or read more -about it on [sablier.com/drops](https://sablier.com/drops). +millions of users called **Airdrops**. Start exploring at [app.sablier.com](https://app.sablier.com/airdrops/) or read +more about it on [sablier.com/airdrops](https://sablier.com/airdrops). :::note -Drops allow for millions of recipients to receive an allocation. To see how they differ from +Airdrops allow for millions of recipients to receive an allocation. To see how they differ from [group streams](/apps/features/vesting#create-in-batches) (~60 streams at once) read our [FAQ](/support/faq). ::: @@ -29,9 +29,9 @@ solution which allows you to airdrop streams to a very large number of recipient Pick a vesting curve (e.g. linear or stepper), define the rules (e.g. duration, clawback window) and allow recipients to claim their allocations as streams. -## Instant Drops (Coming Soon 🔜) +## Instant Airdrops (Coming Soon 🔜) -![Banner Instant Drops](/banner/docs-banner-drops-instant.webp) +![Banner Instant Airdrops](/banner/docs-banner-drops-instant.webp) For communities that are still looking to distribute value quickly and efficiently, Sablier offers a one-time instant airdrop solution. This facilitates and easy onboarding of millions of users into the campaign creator's ecosystem, while @@ -67,13 +67,13 @@ Create a campaign by following these three simple steps: ### Public source -You can distribute a large number of streams per campaign through our app. If you'd like to support Drops in your own UI -or have additional requirements, you can do so by using a self-hosted [Merkle service](/api/drops/merkle-api/overview). -Feel free to get in touch for more details or premium support. +You can distribute a large number of streams per campaign through our app. If you'd like to support Airdrops in your own +UI or have additional requirements, you can do so by using a self-hosted +[Merkle service](/api/airdrops/merkle-api/overview). Feel free to get in touch for more details or premium support. ### Explore the dashboard -Enter the Dashboard and discover a detailed overview of the Drops you may be eligible for. +Enter the Dashboard and discover a detailed overview of the Airdrops you may be eligible for. Take advantage of the Search functionality to explore the chain and gain more insight into how others are using Sablier. @@ -102,7 +102,7 @@ interface. :::info To integrate this functionality into your own products/apps, have a look at the [API guides](/api/overview), especially -the [v2-merkle-api](/api/drops/merkle-api/overview) and the merkle subgraphs. +the [v2-merkle-api](/api/airdrops/merkle-api/overview) and the merkle subgraphs. ::: diff --git a/docs/apps/guides/02-url-schemes.mdx b/docs/apps/guides/02-url-schemes.mdx index b14c31be..82886b42 100644 --- a/docs/apps/guides/02-url-schemes.mdx +++ b/docs/apps/guides/02-url-schemes.mdx @@ -116,7 +116,7 @@ contract `alias`, the `chainId`, and the `streamId`, and then you add them to th | [app.sablier.com/stream/0xe72[...]bbabc-11155111](https://app.sablier.com/airstream/0xe72175dd12ac7efca6b7d12dfc913a5f661bbabc-11155111/) | Airstream on Sepolia | As you can see, the main format is `contractA-chainId`. This is supported both at the app and the subgraph level. Read -more about identifiers and aliases in our [subgraph documentation](/api/drops/the-graph/entities#identifying). +more about identifiers and aliases in our [subgraph documentation](/api/airdrops/the-graph/entities#identifying). ## Search Airstreams diff --git a/docs/guides/lockup/examples/04-create-airstream.mdx b/docs/guides/lockup/examples/04-create-airstream.mdx index 1c7554ec..2e4587f8 100644 --- a/docs/guides/lockup/examples/04-create-airstream.mdx +++ b/docs/guides/lockup/examples/04-create-airstream.mdx @@ -141,8 +141,8 @@ Airstreams use a Merkle tree data structure to store the airdrop data onchain. A create the contract and store the Merkle root onchain. Airdrop recipients can then call the contract on their own to claim their airdrop. -If you want to create the Merkle root programatically, you can follow -[our guide on Merkle API](/api/drops/merkle-api/overview). +If you want to create the Merkle root programmatically, you can follow +[our guide on Merkle API](/api/airdrops/merkle-api/overview). ```solidity baseParams.merkleRoot = 0x4e07408562bedb8b60ce05c1decfe3ad16b722309875f562c03d02d7aaacb123; diff --git a/docs/support/01-faq.mdx b/docs/support/01-faq.mdx index 999e0653..be319b04 100644 --- a/docs/support/01-faq.mdx +++ b/docs/support/01-faq.mdx @@ -82,7 +82,7 @@ transfers all the remaining funds (if any) to the recipient. On Lockup, once a stream is created, it is set in stone on the Ethereum blockchain. Whereas on Flow, a stream rate per second can be modified anytime by the creator. -### How are Drops (Airstreams) different than a group of normal streams? +### How are Airdrops (Airstreams) different than a group of normal streams? Creating streams through our forms (manual or CSV) will physically start those streams onchain, on the spot. This means you click to create a transaction, pay for the gas, and start all the streams for your recipients. @@ -91,15 +91,15 @@ Due to how block memory works (specifically the gas limit) you can only fit a li a single block before running out of space. This is great for small distributions like paying your contractors or a set of investors. -Meanwhile, Drops (Instant or Airstreams) leverage a "lazy creation" of streams. You deploy a contract that stores a list -of recipients and the streams they are entitles to claim. Every recipient will manually click to claim their allocation -and create their stream **only in that moment**. This allows for millions of recipients to be defined at once, with them -triggering the stream creation one after the other (as opposed to all at once). - -| Feature | Groups | Drops | -| ------------------------------ | -------------------------- | ---------------------------- | -| Number of streams | ~60 (depends on gas limit) | Millions | -| Gas to create streams | Sender paying | Recipient paying | -| Gas to deploy "Drops" contract | N/A | Sender paying | -| Streams show up onchain | On the spot (all at once) | Lazily (one after the other) | -| Good for | Investors, Employees | Airdrops | +Meanwhile, Airdrops (Instant or Airstreams) leverage a "lazy creation" of streams. You deploy a contract that stores a +list of recipients and the streams they are entitles to claim. Every recipient will manually click to claim their +allocation and create their stream **only in that moment**. This allows for millions of recipients to be defined at +once, with them triggering the stream creation one after the other (as opposed to all at once). + +| Feature | Groups | Airdrops | +| -------------------------------- | -------------------------- | ---------------------------- | +| Number of streams | ~60 (depends on gas limit) | Millions | +| Gas to create streams | Sender paying | Recipient paying | +| Gas to deploy "Airdrop" contract | N/A | Sender paying | +| Streams show up onchain | On the spot (all at once) | Lazily (one after the other) | +| Good for | Investors, Employees | Airdrops | diff --git a/docs/support/03-user-guides.mdx b/docs/support/03-user-guides.mdx index c00a052f..0c45a091 100644 --- a/docs/support/03-user-guides.mdx +++ b/docs/support/03-user-guides.mdx @@ -8,7 +8,7 @@ title: "Technical Guides" Hands-on guides for app-specific features: -- [CSV Support](/apps/guides/csv-support) (for streams and drops) +- [CSV Support](/apps/guides/csv-support) (for streams and airdrops) - [URL Schemes](/apps/guides/url-schemes) ## Guides for Contracts @@ -22,4 +22,4 @@ Hands-on guides for app-specific features: See the dedicated APIs [page](/api/overview). - [Popular subgraph queries](/api/lockup/the-graph/queries) -- [Merkle tree management](/api/drops/merkle-api/examples) for drops +- [Merkle tree management](/api/airdrops/merkle-api/examples) for airdrops diff --git a/docusaurus.config.ts b/docusaurus.config.ts index 33fc7eae..bed44460 100644 --- a/docusaurus.config.ts +++ b/docusaurus.config.ts @@ -78,16 +78,16 @@ const config: Config = { to: "/api/lockup/the-graph/entities", }, { - from: "/api/drops/the-graph", - to: "/api/drops/the-graph/entities", + from: "/api/airdrops/the-graph", + to: "/api/airdrops/the-graph/entities", }, { from: "/api/subgraphs/merkle", - to: "/api/drops/the-graph/entities", + to: "/api/airdrops/the-graph/entities", }, { from: "/api/merkle-api", - to: "/api/drops/merkle-api/overview", + to: "/api/airdrops/merkle-api/overview", }, { from: "/api/indexers/protocol", @@ -120,7 +120,7 @@ const config: Config = { }, { from: "/apps/features/airstreams", - to: "/apps/features/drops", + to: "/apps/features/airdrops", }, { from: "/apps/url-schemes", diff --git a/src/components/organisms/Header.tsx b/src/components/organisms/Header.tsx index 273511dc..29ae0bd0 100644 --- a/src/components/organisms/Header.tsx +++ b/src/components/organisms/Header.tsx @@ -1,8 +1,8 @@ import React from "react"; import styled from "@emotion/styled"; +import BoltIcon from "@heroicons/react/24/outline/BoltIcon"; import CodeBracketIcon from "@heroicons/react/24/outline/CodeBracketIcon"; import ComputerDesktopIcon from "@heroicons/react/24/outline/ComputerDesktopIcon"; -import CubeIcon from "@heroicons/react/24/outline/CubeIcon"; import DocumentTextIcon from "@heroicons/react/24/outline/DocumentTextIcon"; import LightBulbIcon from "@heroicons/react/24/outline/LightBulbIcon"; import Heading from "@theme/Heading"; @@ -129,7 +129,7 @@ export default function Header() { /> From d4ca78590e9403dcb60e1aaaa561460b4270e6ad Mon Sep 17 00:00:00 2001 From: Razvan Gabriel Date: Sat, 7 Dec 2024 15:17:54 +0200 Subject: [PATCH 2/5] fix: broke links in apps and api --- docs/api/05-development.mdx | 4 ++-- docs/api/{drops => airdrops}/01-overview.mdx | 4 ++-- docs/api/{drops => airdrops}/02-endpoints.mdx | 0 docs/api/{drops => airdrops}/_category_.json | 0 docs/api/{drops => airdrops}/envio/01-similarities.mdx | 2 -- docs/api/{drops => airdrops}/envio/02-queries.md | 0 docs/api/{drops => airdrops}/envio/_category_.json | 0 docs/api/{drops => airdrops}/merkle-api/01-overview.mdx | 2 -- docs/api/{drops => airdrops}/merkle-api/02-functionality.mdx | 0 docs/api/{drops => airdrops}/merkle-api/03-examples.mdx | 0 docs/api/{drops => airdrops}/merkle-api/_category_.json | 0 docs/api/{drops => airdrops}/the-graph/01-entities.mdx | 0 docs/api/{drops => airdrops}/the-graph/02-queries.md | 0 docs/api/{drops => airdrops}/the-graph/_category_.json | 0 docs/api/flow/01-overview.mdx | 4 ++-- docs/api/lockup/01-overview.mdx | 2 +- docs/api/lockup/envio/02-architecture.mdx | 2 +- docs/apps/features/{04-drops.mdx => 04-airdrops.mdx} | 0 18 files changed, 8 insertions(+), 12 deletions(-) rename docs/api/{drops => airdrops}/01-overview.mdx (88%) rename docs/api/{drops => airdrops}/02-endpoints.mdx (100%) rename docs/api/{drops => airdrops}/_category_.json (100%) rename docs/api/{drops => airdrops}/envio/01-similarities.mdx (83%) rename docs/api/{drops => airdrops}/envio/02-queries.md (100%) rename docs/api/{drops => airdrops}/envio/_category_.json (100%) rename docs/api/{drops => airdrops}/merkle-api/01-overview.mdx (99%) rename docs/api/{drops => airdrops}/merkle-api/02-functionality.mdx (100%) rename docs/api/{drops => airdrops}/merkle-api/03-examples.mdx (100%) rename docs/api/{drops => airdrops}/merkle-api/_category_.json (100%) rename docs/api/{drops => airdrops}/the-graph/01-entities.mdx (100%) rename docs/api/{drops => airdrops}/the-graph/02-queries.md (100%) rename docs/api/{drops => airdrops}/the-graph/_category_.json (100%) rename docs/apps/features/{04-drops.mdx => 04-airdrops.mdx} (100%) diff --git a/docs/api/05-development.mdx b/docs/api/05-development.mdx index a023d41d..56789e46 100644 --- a/docs/api/05-development.mdx +++ b/docs/api/05-development.mdx @@ -78,9 +78,9 @@ recommend using: If you're integrated the Sablier subgraphs, we recommend using request and response wrappers/middleware to format results coming from Envio's indexer in the same shape as those from The Graph. Suggestions: -1. Write queries in both systems (based on the [querying language specifics](differences#querying-language)) using the +1. Write queries in both systems (based on the [querying language specifics](/api/caveats#querying-language) using the same `operationName` and swap query strings between vendors based on it -2. Write response middleware that converts results into similar shapes (see these [important notes](differences)) +2. Write response middleware that converts results into similar shapes (see these [important notes](/api/caveats)) ` contract tracker `config.yaml`. Versions of the protocol will be tracked separately, which is why we have `Lockup_V20` (v2.0) and `Lockup_V21` (v2.1) in our configuration. Later on, inside the handler logic, we'll separate contracts by flavor. diff --git a/docs/apps/features/04-drops.mdx b/docs/apps/features/04-airdrops.mdx similarity index 100% rename from docs/apps/features/04-drops.mdx rename to docs/apps/features/04-airdrops.mdx From 5c7d4a91ff428cd86531f8ebc4bb2fa782a8ec34 Mon Sep 17 00:00:00 2001 From: Razvan Gabriel Date: Sat, 7 Dec 2024 15:21:59 +0200 Subject: [PATCH 3/5] chore: mention geofencing in a separate section --- docs/apps/features/04-airdrops.mdx | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/docs/apps/features/04-airdrops.mdx b/docs/apps/features/04-airdrops.mdx index 1744eb16..40478b24 100644 --- a/docs/apps/features/04-airdrops.mdx +++ b/docs/apps/features/04-airdrops.mdx @@ -114,3 +114,8 @@ and campaign-specific items like an eligibility criteria link. | | | ---------------------------------------- | | ![All](/screenshots/drops-settings.webp) | + +#### Geo-fencing / Geographical Restrictions + +You can choose a set of countries where access to the campaign will be restricted through the Sablier interface +(app.sablier.com). By default, some jurisdictions may already be restricted by the hosting provider or your ISP. From 7201206339a5315dafe110938f4fba7c9afa9911 Mon Sep 17 00:00:00 2001 From: smol-ninja Date: Sat, 7 Dec 2024 19:06:44 +0530 Subject: [PATCH 4/5] misisng common bracket --- docs/api/05-development.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/api/05-development.mdx b/docs/api/05-development.mdx index 56789e46..66d8191f 100644 --- a/docs/api/05-development.mdx +++ b/docs/api/05-development.mdx @@ -78,7 +78,7 @@ recommend using: If you're integrated the Sablier subgraphs, we recommend using request and response wrappers/middleware to format results coming from Envio's indexer in the same shape as those from The Graph. Suggestions: -1. Write queries in both systems (based on the [querying language specifics](/api/caveats#querying-language) using the +1. Write queries in both systems (based on the [querying language specifics](/api/caveats#querying-language)) using the same `operationName` and swap query strings between vendors based on it 2. Write response middleware that converts results into similar shapes (see these [important notes](/api/caveats)) From 6ab89503fb1d624c22f4fd5a7b472bb6e51840f2 Mon Sep 17 00:00:00 2001 From: smol-ninja Date: Sat, 7 Dec 2024 19:37:11 +0530 Subject: [PATCH 5/5] use heading 3 for geo fencing title --- docs/apps/features/04-airdrops.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/apps/features/04-airdrops.mdx b/docs/apps/features/04-airdrops.mdx index 40478b24..eee00aca 100644 --- a/docs/apps/features/04-airdrops.mdx +++ b/docs/apps/features/04-airdrops.mdx @@ -115,7 +115,7 @@ and campaign-specific items like an eligibility criteria link. | ---------------------------------------- | | ![All](/screenshots/drops-settings.webp) | -#### Geo-fencing / Geographical Restrictions +### Geo-fencing / Geographical Restrictions You can choose a set of countries where access to the campaign will be restricted through the Sablier interface (app.sablier.com). By default, some jurisdictions may already be restricted by the hosting provider or your ISP.