Skip to content

Add new instance #19

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
Dec 18, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
94 changes: 88 additions & 6 deletions docs/deployments/mainnet.mdx
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
import Contracts from "/deployments/mainnet/cosmoshub/contracts.json";
import Denoms from "/deployments/mainnet/cosmoshub/denoms.json";
import ICA from "/deployments/mainnet/cosmoshub/ica.json";
import CosmosHubContracts from "/deployments/mainnet/cosmoshub/contracts.json";
import CosmosHubDenoms from "/deployments/mainnet/cosmoshub/denoms.json";
import CosmosHubICA from "/deployments/mainnet/cosmoshub/ica.json";

import CelestiaContracts from "/deployments/mainnet/celestia/contracts.json";
import CelestiaDenoms from "/deployments/mainnet/celestia/denoms.json";
import CelestiaICA from "/deployments/mainnet/celestia/ica.json";

# neutron-1 [mainnet]

Expand All @@ -17,7 +21,85 @@ Current Cosmos Hub Drop instance is running on `cosmoshub-4` mainnet.
</tr>
</thead>
<tbody>
{Contracts.map((contract) => {
{CosmosHubContracts.map((contract) => {
const href = `https://neutron.celat.one/neutron-1/contracts/${contract.address}`;
return (
<tr>
<td>
<code>{contract.name}</code>
</td>
<td>
<a href={href}>{contract.address}</a>
</td>
<td>
<code>{contract.checksum}</code>
</td>
</tr>
);
})}
</tbody>
</table>

### Denoms

<table>
<thead>
<tr>
<th>Symbol</th>
<th>Denom</th>
</tr>
</thead>
<tbody>
{CosmosHubDenoms.map((denom) => {
return (
<tr>
<td>{denom.symbol}</td>
<td>
<code>{denom.denom}</code>
</td>
</tr>
);
})}
</tbody>
</table>

### ICA addresses

<table>
<thead>
<tr>
<th>Contract</th>
<th>Address</th>
</tr>
</thead>
<tbody>
{CosmosHubICA.map((ica) => {
return (
<tr>
<td>{ica.contract}</td>
<td>
<code>{ica.address}</code>
</td>
</tr>
);
})}
</tbody>
</table>

## Celestia Instance

Current Celestia Drop instance is running on `celestia` mainnet.

<table>
<thead>
<tr>
<th>Contract</th>
<th>Address</th>
<th>Checksum</th>
</tr>
</thead>
<tbody>
{CelestiaContracts.map((contract) => {
const href = `https://neutron.celat.one/neutron-1/contracts/${contract.address}`;
return (
<tr>
Expand Down Expand Up @@ -46,7 +128,7 @@ Current Cosmos Hub Drop instance is running on `cosmoshub-4` mainnet.
</tr>
</thead>
<tbody>
{Denoms.map((denom) => {
{CelestiaDenoms.map((denom) => {
return (
<tr>
<td>{denom.symbol}</td>
Expand All @@ -69,7 +151,7 @@ Current Cosmos Hub Drop instance is running on `cosmoshub-4` mainnet.
</tr>
</thead>
<tbody>
{ICA.map((ica) => {
{CelestiaICA.map((ica) => {
return (
<tr>
<td>{ica.contract}</td>
Expand Down
178 changes: 172 additions & 6 deletions docs/deployments/testnet.mdx
Original file line number Diff line number Diff line change
@@ -1,9 +1,95 @@
import Contracts from "/deployments/testnet/cosmoshub/contracts.json";
import Denoms from "/deployments/testnet/cosmoshub/denoms.json";
import ICA from "/deployments/testnet/cosmoshub/ica.json";
import CosmosHubContracts from "/deployments/testnet/cosmoshub/contracts.json";
import CosmosHubDenoms from "/deployments/testnet/cosmoshub/denoms.json";
import CosmosHubICA from "/deployments/testnet/cosmoshub/ica.json";

import InitiaContracts from "/deployments/testnet/initia/contracts.json";
import InitiaDenoms from "/deployments/testnet/initia/denoms.json";
import InitiaICA from "/deployments/testnet/initia/ica.json";

import CelestiaContracts from "/deployments/testnet/celestia/contracts.json";
import CelestiaDenoms from "/deployments/testnet/celestia/denoms.json";
import CelestiaICA from "/deployments/testnet/celestia/ica.json";

# pion-1 [testnet]

## Initia Instance

### Contracts

<table>
<thead>
<tr>
<th>Contract</th>
<th>Address</th>
<th>Checksum</th>
</tr>
</thead>
<tbody>
{InitiaContracts.map((contract) => {
const href = `https://neutron.celat.one/pion-1/contracts/${contract.address}`;
return (
<tr>
<td>
<code>{contract.name}</code>
</td>
<td>
<a href={href}>{contract.address}</a>
</td>
<td>
<code>{contract.checksum}</code>
</td>
</tr>
);
})}
</tbody>
</table>

### Denoms

<table>
<thead>
<tr>
<th>Symbol</th>
<th>Denom</th>
</tr>
</thead>
<tbody>
{InitiaDenoms.map((denom) => {
return (
<tr>
<td>{denom.symbol}</td>
<td>
<code>{denom.denom}</code>
</td>
</tr>
);
})}
</tbody>
</table>

### ICA addresses

<table>
<thead>
<tr>
<th>Contract</th>
<th>Address</th>
</tr>
</thead>
<tbody>
{InitiaICA.map((ica) => {
return (
<tr>
<td>{ica.contract}</td>
<td>
<code>{ica.address}</code>
</td>
</tr>
);
})}
</tbody>
</table>

## Cosmos Hub Instance

Current Cosmos Hub Drop testnet instance uses `theta-testnet-001` testnet.
Expand All @@ -19,7 +105,87 @@ Current Cosmos Hub Drop testnet instance uses `theta-testnet-001` testnet.
</tr>
</thead>
<tbody>
{Contracts.map((contract) => {
{CosmosHubContracts.map((contract) => {
const href = `https://neutron.celat.one/pion-1/contracts/${contract.address}`;
return (
<tr>
<td>
<code>{contract.name}</code>
</td>
<td>
<a href={href}>{contract.address}</a>
</td>
<td>
<code>{contract.checksum}</code>
</td>
</tr>
);
})}
</tbody>
</table>

### Denoms

<table>
<thead>
<tr>
<th>Symbol</th>
<th>Denom</th>
</tr>
</thead>
<tbody>
{CosmosHubDenoms.map((denom) => {
return (
<tr>
<td>{denom.symbol}</td>
<td>
<code>{denom.denom}</code>
</td>
</tr>
);
})}
</tbody>
</table>

### ICA addresses

<table>
<thead>
<tr>
<th>Contract</th>
<th>Address</th>
</tr>
</thead>
<tbody>
{CosmosHubICA.map((ica) => {
return (
<tr>
<td>{ica.contract}</td>
<td>
<code>{ica.address}</code>
</td>
</tr>
);
})}
</tbody>
</table>

## Celestia testnet

Current Celestia Drop testnet instance uses `mocha-4` testnet.

### Contracts

<table>
<thead>
<tr>
<th>Contract</th>
<th>Address</th>
<th>Checksum</th>
</tr>
</thead>
<tbody>
{CelestiaContracts.map((contract) => {
const href = `https://neutron.celat.one/pion-1/contracts/${contract.address}`;
return (
<tr>
Expand Down Expand Up @@ -48,7 +214,7 @@ Current Cosmos Hub Drop testnet instance uses `theta-testnet-001` testnet.
</tr>
</thead>
<tbody>
{Denoms.map((denom) => {
{CelestiaDenoms.map((denom) => {
return (
<tr>
<td>{denom.symbol}</td>
Expand All @@ -71,7 +237,7 @@ Current Cosmos Hub Drop testnet instance uses `theta-testnet-001` testnet.
</tr>
</thead>
<tbody>
{ICA.map((ica) => {
{CelestiaICA.map((ica) => {
return (
<tr>
<td>{ica.contract}</td>
Expand Down
23 changes: 12 additions & 11 deletions docs/integrations/lsm_staking.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,14 @@
Liquidity Staking Module (LSM) allows users to transfer their staked assets from one address to another without unstaking them and waiting the entire unbonding period.
To learn more about it, visit the repository: https://github.com/iqlusioninc/liquidity-staking-module.

To achieve that, the LSM mints special tokens that represent staked asset ownership.
One can "tokenize" their staked assets, and by sending them, transfer ownership to another user or protocol.
To achieve that, the LSM mints special tokens that represent staked asset ownership.
One can "tokenize" their staked assets, and by sending them, transfer ownership to another user or protocol.
These tokens are called _LSM shares_ below for simplicity.

Each LSM share is represented by a unique denom.
Each LSM share is represented by a unique denom.
This means that one can send a partial share to someone but two different shares aren't fungible with each other.

Drop can accept such shares and mint dAssets based on them (i.e., if one has traditionally staked tokens delegated to a validator, they can tokenize their shares via the LSM, IBC transfer them to Neutron, and liquid stake with Drop to receive dAssets).
Drop can accept such shares and mint dAssets based on them (i.e., if one has traditionally staked tokens delegated to a validator, they can tokenize their shares via the LSM, IBC transfer them to Neutron, and liquid stake with Drop to receive dAssets).
Under the hood, this means that the ownership of those staked assets is transferred to Drop Protocol and the user gets their respective amount of dAssets in exchange.

## Tokenized share creation
Expand All @@ -37,19 +37,20 @@ Where:
- `cosmos_delegator_address` is an address of the user that currently has staked assets
- `validator_address` is the address of the validator the user’s assets are delegated to
- `tokenized_share_owner` is the address which will be getting rewards.
Regardless of the current owner of tokenized share tokens, the rewards will be distributed to the address specified here.
Regardless of the current owner of tokenized share tokens, the rewards will be distributed to the address specified here.

In order to reveal how many tokens a user has staked, use [this](https://cosmos-lcd.quickapi.com/swagger/#/Query/DelegatorDelegations) query.

Once the operation above is performed, a new denom is created and the user gets new minted tokens that represent staked tokens.
The denom has the following structure: `cosmosvaloper1**************************************/123`, so it consists of the validator address and an index of this LSM share.
Once the operation above is performed, a new denom is created and the user gets new minted tokens that represent staked tokens.
The denom has the following structure: `cosmosvaloper1**************************************/123`, so it consists of the validator address and an index of this LSM share.

## Drop LSM staking restrictions
## Drop LSM staking restrictions

That tokenized share can be staked with Drop only if it was produced by validatator from the Drop _validator list_.
That tokenized share can be staked with Drop only if it was produced by validatator from the Drop _validator list_.
To get this list you need to do the following:

- Query `core` contract config:

```json
{
"config": {}
Expand Down Expand Up @@ -102,7 +103,7 @@ To get this list you need to do the following:

## IBC transfer and staking LSM share with Drop

After one created a tokenized share on Cosmos Hub, it can be staked with Drop.
After one created a tokenized share on Cosmos Hub, it can be staked with Drop.
As well as with ATOM, transfer and stake can be done in one transaction (thankfully to IBC hooks):

```json
Expand Down Expand Up @@ -139,4 +140,4 @@ Where:

Alternatively, one can split the operations in two.
In this case, it will be regular IBC transfer for the LSM share, and regular staking with Drop.
LSM share staking process is the very same as [ASSET staking](overview#staking), but the coin attached to the message is an LSM share IBC-transferred to Neutron.
LSM share staking process is the very same as [ASSET staking](overview#staking), but the coin attached to the message is an LSM share IBC-transferred to Neutron.
Empty file removed static/.nojekyll
Empty file.
Loading
Loading