Skip to content

Commit

Permalink
docs: seperate OPL and OPL sdk
Browse files Browse the repository at this point in the history
  • Loading branch information
rube-de committed Oct 24, 2024
1 parent 31621e9 commit 1f1f266
Show file tree
Hide file tree
Showing 8 changed files with 299 additions and 178 deletions.
11 changes: 8 additions & 3 deletions docs/dapp/diagrams/opl-contract-flow.mmd
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
sequenceDiagram
User ->> Home Contract: Transaction
Home Contract -->> SGN: SGN Watches Events
participant User
participant Home as Home Contract<br/>(Host)
participant SGN
participant Executor
participant Sapphire as Sapphire Contract<br/>(Enclave)
User ->> Home: Transaction
Home -->> SGN: SGN Watches Events
SGN -->> Executor: Waits for SGN Approval
Executor ->> Sapphire Contract: Submit Proof Tx
Executor ->> Sapphire: Submit Proof Tx
2 changes: 1 addition & 1 deletion docs/dapp/diagrams/opl-contract-flow.mmd.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
162 changes: 0 additions & 162 deletions docs/dapp/opl/README.md

This file was deleted.

55 changes: 55 additions & 0 deletions docs/dapp/opl/README.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
---
description: Integrating privacy into dApps on other blockchains
---

import DocCard from '@theme/DocCard';
import DocCardList from '@theme/DocCardList';
import {findSidebarItem} from '@site/src/sidebarUtils';

# Oasis Privacy Layer (OPL)

The Oasis Privacy Layer (OPL) is a powerful solution that enables developers
to integrate privacy features into their decentralized applications (dApps)
across multiple EVM-compatible networks.

- **Privacy-First**: OPL leverages the [Sapphire]'s privacy features to ensure
that data remains confidential and transactions are encrypted end-to-end.
- **Cross-Chain Compatibility**: OPL is compatible with multiple blockchains
through message bridging protocols, making it easy to integrate privacy
regardless of the chain your dApp is built on.

For more information about OPL and to catch the latest news, please visit the
[official OPL page].

[official OPL page]: https://oasisprotocol.org/opl
[Sapphire]: https://oasisprotocol.org/sapphire

## How OPL Works

The OPL is made possible through message bridges, which enable secure
communication between OPL-enabled contracts on Sapphire and smart contracts on
other chains. This allows dApps to access privacy-preserving capabilities while
keeping their main logic on their primary chain.

![Oasis Privacy Layer diagram](../images/opl/privacy-layer-diagram.png)

### Message Bridges

You can integrate message bridges into your dApps using one of these three methods:

- **OPL-SDK**: A wrapper provided by the Oasis Protocol that simplifies the integration of message bridging with Oasis’s privacy features.
- **Celer Inter-Chain Messaging (IM)**: A generalized message bridging solution by Celer, which lets you build more complex solutions.
- **Router Protocol CrossTalk**: An extensible cross-chain framework that enables seamless state transitions across multiple chains.

<DocCardList items={[
findSidebarItem('/dapp/opl/opl-sdk/'),
findSidebarItem('/dapp/opl/celer/'),
findSidebarItem('/dapp/opl/router-protocol/')
]} />

## Examples

<DocCardList items={[
findSidebarItem('/dapp/opl/secret-ballot-example/'),
findSidebarItem('/dapp/opl/router-protocol/pingpong-example'),
]} />
89 changes: 89 additions & 0 deletions docs/dapp/opl/celer/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
---
description: A message bridge by Celer
---

# Celer Inter-Chain Messaging (IM)


## Monitoring

The Celer IM Scan API can be used to retrieve status and message details by
providing the globally unique transaction ID from the chain which originated the
message.

https://api.celerscan.com/scan/searchByTxHash?tx=0x...

For details of the response format, see the [Query IM Tx Status] page of the
Celer-IM documentation. Using this API lets you to check if messages have been
delivered.

[Query IM Tx Status]: https://im-docs.celer.network/developer/development-guide/query-im-tx-status

## Executor

The Executor is an essential part of the Celer IM framework. The Executor monitors the Celer *State Guardian Network*(SGN) for messages ready to be submitted (with enough validator signatures) and submits the message execution transactions to the MessageBus contract.

It is necessary to run a [Message Executor] which monitors the Celer SGN for cross-chain messages and then submits the proof on-chain to deliver them to the target contract.

To set up an executor, you can either follow this [documentation] to set up your own, or fill out this [form][celer-form] for Celer to set up a hosted executor service for you.

If you are participating in a Hackathon or Grant, [please fill out the relay
request form](https://form.typeform.com/to/RsiUR9Xz) to be allowed to use the
shared Message Executor.

In most cases, we recommend dApp developers use the shared executor services provided by the Celer Network team so that you do not need to worry about the executor server configuration and operation.

[Message Executor]: https://im-docs.celer.network/developer/development-guide/message-executor
[documentation]: https://im-docs.celer.network/developer/development-guide/message-executor/integration-guide
[celer-form]:https://form.typeform.com/to/RsiUR9Xz

## Supported Networks

### Mainnets

| Name | Int ID | Hex ID | autoswitch name |
| ---- | ------ | ------ | --------------- |
| Ape | 16350 | 0x3fde | ape |
| Arbitrum Nova | 42170 | 0xa4ba | arbitrum-nova |
| Arbitrum One | 42161 | a4b1 | arbitrum-one |
| Astar | 592 | 0x250 | astar |
| Aurora | 1313161554 | 0x4e454152 | aurora |
| Avalanche | 43114 | 0xa86a | avalanche |
| Binance Smart Chain | 56 | 0x38 | bsc |
| Ethereum | 1 | 0x1 | ethereum |
| Fantom | 250 | 0xfa | fantom |
| Filecoin | 314 | 0x13a | filecoin |
| Milkomeda C1 | 2001 | 0x7d1 | milkomeda |
| Moonriver | 1285 | 0x505 | moonriver |
| Polygon | 137 | 0x89 | polygon |
| Sapphire | 23294 | 0x5afe | sapphire |
| Syscoin | 57 | 0x39 | syscoin |
| Polygon zkEVM | 1101 | 0x44d | polygon-zkevm |
| Optimism | 10 | 0xa | optimism |
| zkSync Era | 324 | 0x144 | zksync-era |

### Testnets

| Name | Int ID | Hex ID | autoswitch name |
| ---- | ------ | ------ | --------------- |
| Arbitrum Testnet | 421611 | 0x66eeb | arbitrum-testnet |
| Avalanche C-Chain Fuji Testnet | 43113 | 0xa869 | avalanche-fuji |
| BSC Testnet | 97 | 0x61 | bsc-testnet |
| ConsenSys zkEVM Testnet | 59140 | 0xe704 | zkevm-testnet |
| Dexalot Testnet | 432201 | 0x69849 | dexalot-testnet |
| Fantom Testnet | 4002 | 0xfa2 | fantom-testnet |
| Filecoin Hyperspace Testnet | 3141 | 0xc45 | filecoin-testnet |
| FNCY Testnet | 923018 | 0xe158a | fncy-testnet |
| Godwoken Testnet | 71401 | 0x116e9 | godwoken-testnet |
| Goerli Testnet | 5 | 0x5 | goerli |
| Polygon Mumbai Testnet | 80001 | 0x13881 | polygon-mumbai |
| Polygon zkEVM Testnet | 1442 | 0x5a2 | zkevm-testnet |
| Sapphire Testnet | 23295 | 0x5aff | sapphire-testnet |
| Scroll Alpha Testnet | 534353 | 0x82751 | scroll-testnet |
| Shibuya Testnet | 81 | 0x51 | shibuya-testnet |

In the following sections we will look at a concrete example on how to build a
confidential, cross-chain DAO-voting dApp from scratch using the Oasis Privacy Layer!



Loading

0 comments on commit 1f1f266

Please sign in to comment.