From 4ada5bd959da8d26d430dab9f8cac775bde96aa2 Mon Sep 17 00:00:00 2001 From: Bojan Angjelkoski Date: Mon, 21 Oct 2024 14:33:31 +0000 Subject: [PATCH 01/17] GITBOOK-3: No subject --- .gitbook/README.md | 28 ++ .gitbook/SUMMARY.md | 76 ++++++ .../developers/cosmwasm-developers/README.md | 2 + .../developers/cosmwasm-developers/page-1.md | 2 + .../developers/exchange-developers/README.md | 2 + .../exchange-developers/provider-oracle.md | 2 + .gitbook/developers/modules.md | 2 + .gitbook/getting-started/README.md | 2 + .../getting-started/token-standards/README.md | 35 +++ .../token-standards/cw20-standard.md | 2 + .../token-standards/inj-coin.md | 68 +++++ .../token-standards/token-factory.md | 7 + .../getting-started/transactions/README.md | 19 ++ .../transactions/gas-and-fees.md | 44 ++++ .../getting-started/transactions/messages.md | 2 + .gitbook/getting-started/wallet/README.md | 6 + .gitbook/getting-started/wallet/accounts.md | 101 ++++++++ .gitbook/getting-started/wallet/auction.md | 25 ++ .../getting-started/wallet/create-a-wallet.md | 3 + .gitbook/getting-started/wallet/governance.md | 25 ++ .gitbook/getting-started/wallet/staking.md | 21 ++ .gitbook/guides/README.md | 2 + .gitbook/guides/bridge/README.md | 2 + .gitbook/guides/launch-a-market.md | 43 +++ .gitbook/guides/launch-a-token.md | 237 +++++++++++++++++ .gitbook/nodes/getting-started/README.md | 2 + .../getting-started/interact-with-a-node.md | 194 ++++++++++++++ .../1.-setting-up-the-keyring.md | 90 +++++++ .../getting-started/running-a-node/README.md | 42 +++ .gitbook/nodes/private-nodes.md | 11 + .gitbook/nodes/public-endpoints.md | 46 ++++ .gitbook/nodes/validators.md | 2 + .gitbook/other/glossary.md | 245 ++++++++++++++++++ .gitbook/other/references.md | 66 +++++ .gitbook/toolkits/README.md | 2 + .gitbook/toolkits/cosmosvisor.md | 152 +++++++++++ .gitbook/toolkits/injectived/README.md | 3 + .gitbook/toolkits/injectived/advanced.md | 2 + .../toolkits/injectived/install-injectived.md | 2 + .../toolkits/injectived/using-injectived.md | 2 + .gitbook/traders/traders.md | 2 + 41 files changed, 1621 insertions(+) create mode 100644 .gitbook/README.md create mode 100644 .gitbook/SUMMARY.md create mode 100644 .gitbook/developers/cosmwasm-developers/README.md create mode 100644 .gitbook/developers/cosmwasm-developers/page-1.md create mode 100644 .gitbook/developers/exchange-developers/README.md create mode 100644 .gitbook/developers/exchange-developers/provider-oracle.md create mode 100644 .gitbook/developers/modules.md create mode 100644 .gitbook/getting-started/README.md create mode 100644 .gitbook/getting-started/token-standards/README.md create mode 100644 .gitbook/getting-started/token-standards/cw20-standard.md create mode 100644 .gitbook/getting-started/token-standards/inj-coin.md create mode 100644 .gitbook/getting-started/token-standards/token-factory.md create mode 100644 .gitbook/getting-started/transactions/README.md create mode 100644 .gitbook/getting-started/transactions/gas-and-fees.md create mode 100644 .gitbook/getting-started/transactions/messages.md create mode 100644 .gitbook/getting-started/wallet/README.md create mode 100644 .gitbook/getting-started/wallet/accounts.md create mode 100644 .gitbook/getting-started/wallet/auction.md create mode 100644 .gitbook/getting-started/wallet/create-a-wallet.md create mode 100644 .gitbook/getting-started/wallet/governance.md create mode 100644 .gitbook/getting-started/wallet/staking.md create mode 100644 .gitbook/guides/README.md create mode 100644 .gitbook/guides/bridge/README.md create mode 100644 .gitbook/guides/launch-a-market.md create mode 100644 .gitbook/guides/launch-a-token.md create mode 100644 .gitbook/nodes/getting-started/README.md create mode 100644 .gitbook/nodes/getting-started/interact-with-a-node.md create mode 100644 .gitbook/nodes/getting-started/running-a-node/1.-setting-up-the-keyring.md create mode 100644 .gitbook/nodes/getting-started/running-a-node/README.md create mode 100644 .gitbook/nodes/private-nodes.md create mode 100644 .gitbook/nodes/public-endpoints.md create mode 100644 .gitbook/nodes/validators.md create mode 100644 .gitbook/other/glossary.md create mode 100644 .gitbook/other/references.md create mode 100644 .gitbook/toolkits/README.md create mode 100644 .gitbook/toolkits/cosmosvisor.md create mode 100644 .gitbook/toolkits/injectived/README.md create mode 100644 .gitbook/toolkits/injectived/advanced.md create mode 100644 .gitbook/toolkits/injectived/install-injectived.md create mode 100644 .gitbook/toolkits/injectived/using-injectived.md create mode 100644 .gitbook/traders/traders.md diff --git a/.gitbook/README.md b/.gitbook/README.md new file mode 100644 index 00000000..9942c66c --- /dev/null +++ b/.gitbook/README.md @@ -0,0 +1,28 @@ +# About Injective + +Injective is a lightning-fast, interoperable, layer-one blockchain optimized for building premier Web3 financial applications. Injective provides developers with robust plug-and-play modules such as a fully decentralized orderbook, binary options, real-world asset (RWA) module, and more, allowing developers to build a diverse array of sophisticated applications. + +### What is Injective?[​](https://docs.injective.network/learn/introduction#what-is-injective) + +Injective is the blockchain built for finance. + +Injective is the only blockchain where developers can find robust out-of-the-box modules, such as a completely decentralized orderbook that can be utilized to build a diverse array of sophisticated applications. Moreover, Injective is an open, interoperable smart contracts platform. + +Injective is built with the Cosmos SDK, enabling instant transaction finality through the Tendermint proof-of-stake consensus framework. Moreover, Injective excels in enabling swift cross-chain transactions, seamlessly bridging prominent layer-one networks like Ethereum, Solana, Cosmos Hub, and more. + +The Injective ecosystem is a network of decentralized applications that focus on providing the best in-class user experience. By providing the unrestricted and unprecedented ability to access decentralized financial markets, products, services, and toolings, the Injective ecosystem empowers individuals with the ability to allocate capital more efficiently. + +### Why Build on Injective?[​](https://docs.injective.network/learn/introduction#why-build-on-injective) + +* Optimized for decentralized finance: Injective provides out-of-the-box financial primitives such as a fully decentralized orderbook to allow developers to create mainstream dApps. For instance, applications can leverage the orderbook to launch exchanges, prediction markets, and various other on-chain strategies. +* Interoperable: Injective is natively interoperable across many sovereign blockchain networks while also being IBC-enabled. Injective can facilitate seamless cross-chain transactions across Ethereum, Moonbeam, IBC-enabled chains such as CosmosHub, and Wormhole integrated chains such as Solana, Avalanche, etc. +* Build dApps Using CosmWasm: Injective supports CosmWasm, a novel smart contracting platform built for the Cosmos ecosystem. This means developers can easily launch their own smart-contract powered applications on Injective. Smart-contracts that work on other chains supporting CosmWasm can seamlessly be migrated to Injective. +* Launch Ethereum and IBC compatible tokens: Since Injective supports cross-chain transactions with Ethereum and all IBC-enabled chains, tokens launched on Injective can be exposed to multiple networks by default. +* Intuitive developer experience: Utilize flexible and expressive development environments powered by Rust and Golang. + +Start building on Injective[\ +](https://docs.unichain.org/docs/getting-started/setting-up-a-wallet) +--------------------------------------------------------------------- + +
Getting Startedtestgetting-started
Are you a developer?Broken link
Are you a node operator or validator?
Are you a trader?
+ diff --git a/.gitbook/SUMMARY.md b/.gitbook/SUMMARY.md new file mode 100644 index 00000000..6ab7306a --- /dev/null +++ b/.gitbook/SUMMARY.md @@ -0,0 +1,76 @@ +# Table of contents + +* [About Injective](README.md) +* [Getting Started](getting-started/README.md) + * [Wallet](getting-started/wallet/README.md) + * [Create a wallet](getting-started/wallet/create-a-wallet.md) + * [Staking](getting-started/wallet/staking.md) + * [Governance](getting-started/wallet/governance.md) + * [Auction](getting-started/wallet/auction.md) + * [Accounts](getting-started/wallet/accounts.md) + * [Token Standards](getting-started/token-standards/README.md) + * [INJ coin](getting-started/token-standards/inj-coin.md) + * [Token Factory](getting-started/token-standards/token-factory.md) + * [CW20 Standard](getting-started/token-standards/cw20-standard.md) + * [Transactions](getting-started/transactions/README.md) + * [Gas and Fees](getting-started/transactions/gas-and-fees.md) + * [Messages](getting-started/transactions/messages.md) +* [Guides](guides/README.md) + * [Create Wallet](https://blog.injective.com/en/how-to-create-an-injective-wallet-2/) + * [Bridge](guides/bridge/README.md) + * [From Ethereum](https://blog.injective.com/en/how-to-bridge-from-ethereum-to-injective-using-metamask/) + * [Using Wormhole](https://blog.injective.com/en/how-to-bridge-to-injective-using-wormhole/) + * [Using IBC from Cosmos](https://blog.injective.com/en/how-to-bridge-from-cosmos-to-injective-using-keplr/) + * [From Solana](https://blog.injective.com/en/how-to-bridge-from-solana-to-injective-using-phantom/) + * [Launch a token](guides/launch-a-token.md) + * [Launch a market](guides/launch-a-market.md) +* [Toolkits](toolkits/README.md) + * [injectived](toolkits/injectived/README.md) + * [Install injectived](toolkits/injectived/install-injectived.md) + * [Using injectived](toolkits/injectived/using-injectived.md) + * [Advanced](toolkits/injectived/advanced.md) + * [Injective TS SDK](https://docs.ts.injective.network) + * [Injective Go SDK](https://github.com/InjectiveLabs/sdk-go/) + * [Injective Python SDK](https://github.com/InjectiveLabs/sdk-python) + * [Injective CW SDK](https://github.com/InjectiveLabs/cw-injective) + * [The Graph](https://docs.substreams.dev/documentation/how-to-guides/injective) + * [Cosmosvisor](toolkits/cosmosvisor.md) + +## Nodes + +* [Getting Started](nodes/getting-started/README.md) + * [Running a node](nodes/getting-started/running-a-node/README.md) + * [1. Setting up the keyring](nodes/getting-started/running-a-node/1.-setting-up-the-keyring.md) + * [Interact with a node](nodes/getting-started/interact-with-a-node.md) +* [Validators](nodes/validators.md) +* [Public Endpoints](nodes/public-endpoints.md) +* [Private Nodes](nodes/private-nodes.md) + +## Developers + +* [Exchange Developers](developers/exchange-developers/README.md) + * [Provider Oracle](developers/exchange-developers/provider-oracle.md) +* [Cosmwasm Developers](developers/cosmwasm-developers/README.md) + * [Page 1](developers/cosmwasm-developers/page-1.md) +* [Modules](developers/modules.md) +* [Documentation](https://docs.ts.injective.network) + +## Traders + +* [Traders](traders/traders.md) +* [Documentation](https://docs.trading.injective.network) +* [API Reference](https://api.injective.exchange/) + +## Other + +* [References](other/references.md) +* [Glossary](other/glossary.md) + +## Useful Links + +* [Injective Indexer Setup](https://injective.notion.site/Injective-Exchange-Service-Setup-Guide-7e59980634d54991862300670583d46a) +* [Injective 101](https://injective.notion.site/Injective-d48cbe6cb04141e082ff2c85a73ba67a?pvs=4) +* [Injective Hub](https://hub.injective.network) +* [Injective Explorer](https://explorer.injective.network) +* [Chain API Reference](https://sentry.lcd.injective.network/swagger/#/) +* [Indexer API Reference ](https://api.injective.network/swagger/#/) diff --git a/.gitbook/developers/cosmwasm-developers/README.md b/.gitbook/developers/cosmwasm-developers/README.md new file mode 100644 index 00000000..176f9d78 --- /dev/null +++ b/.gitbook/developers/cosmwasm-developers/README.md @@ -0,0 +1,2 @@ +# Cosmwasm Developers + diff --git a/.gitbook/developers/cosmwasm-developers/page-1.md b/.gitbook/developers/cosmwasm-developers/page-1.md new file mode 100644 index 00000000..6f8b4979 --- /dev/null +++ b/.gitbook/developers/cosmwasm-developers/page-1.md @@ -0,0 +1,2 @@ +# Page 1 + diff --git a/.gitbook/developers/exchange-developers/README.md b/.gitbook/developers/exchange-developers/README.md new file mode 100644 index 00000000..ea2e89d0 --- /dev/null +++ b/.gitbook/developers/exchange-developers/README.md @@ -0,0 +1,2 @@ +# Exchange Developers + diff --git a/.gitbook/developers/exchange-developers/provider-oracle.md b/.gitbook/developers/exchange-developers/provider-oracle.md new file mode 100644 index 00000000..5bffd48b --- /dev/null +++ b/.gitbook/developers/exchange-developers/provider-oracle.md @@ -0,0 +1,2 @@ +# Provider Oracle + diff --git a/.gitbook/developers/modules.md b/.gitbook/developers/modules.md new file mode 100644 index 00000000..f0dc8066 --- /dev/null +++ b/.gitbook/developers/modules.md @@ -0,0 +1,2 @@ +# Modules + diff --git a/.gitbook/getting-started/README.md b/.gitbook/getting-started/README.md new file mode 100644 index 00000000..31dd91e8 --- /dev/null +++ b/.gitbook/getting-started/README.md @@ -0,0 +1,2 @@ +# Getting Started + diff --git a/.gitbook/getting-started/token-standards/README.md b/.gitbook/getting-started/token-standards/README.md new file mode 100644 index 00000000..e66f1514 --- /dev/null +++ b/.gitbook/getting-started/token-standards/README.md @@ -0,0 +1,35 @@ +# Token Standards + +Injective provides a variety of different token standards one can use when creating a dApp. In this document, we will cover the different types of tokens, as well as recommendations and guidance for using each. + +## Denom + +A denom is how assets are represented within the Bank module of Injective. These assets can be used for trading, creating new markets on the exchange module, participating in auctions, transferring to another address, etc. + +Depending on the origin of the denom and how it was created on Injective we have different types of denoms: + +* **Native denoms** - there is only one denom of this type, the `inj` denom which represented the native coin of Injective, +* **Peggy denoms** - these denoms represent assets bridged over from Ethereum to Injective using the Peggy bridge. They have the following format `peggy{ERC20_CONTRACT_ADDRESS}` +* **IBC denoms** - these denoms represent assets bridged over from other Cosmos chains through IBC. They have the following format `ibc/{hash}`. +* **Insurance Fund Denoms** - these denoms represent token shares of the insurance funds created on Injective. They have the following format `share{id}` +* **Factory Denoms** - these `tokenfactory` denoms allows any account to create a new token with the name `factory/{creator address}/{subdenom}`. Because tokens are namespaced by creator address, this allows token minting to be permissionless, due to not needing to resolve name collisions. Special usecase for these denoms is representing a CW20 token from Cosmwasm on the Injective native bank module. They have the following format `factory/{CW20_ADAPTER_CONTRACT}/{CW20_CONTRACT_ADDRESS}` where the `CW20_ADAPTER_CONTRACT` is the adapter contract address that converts CW20 and the native Bank module. + +We'll share more details about these denom types later on in this document. + +### **Token** + +Token is simply a denom on the Injective chain with some meta information. The metadata includes information like symbol, name, decimals, logo for the particular denom, etc. The metadata of the denom is quite important for a dApp developer as information on the chain is stored in its raw form (for example `1inj` on the chain is represented as `1*10^18inj`) so we need to have a way to show the user human-readable information (numbers, logo, symbol, etc). + +### Token Metadata + +Assets on Injective are represented as denoms. Denoms (and the amounts) are not human readable and this is why we need to have a way to "attach" token metadata information for a particular denom. + +Let's recap the types of denoms we have in the Getting Started section: + +* **Native denoms** - there is only one denom of this type, the `inj` denom which represented the native coin of Injective, +* **Peggy denoms** - these denoms represent assets bridged over from Ethereum to Injective using the Peggy bridge. They have the following format `peggy{ERC20_CONTRACT_ADDRESS}` +* **IBC denoms** - these denoms represent assets bridged over from other Cosmos chains through IBC. They have the following format `ibc/{hash}`. +* **Insurance Fund Denoms** - these denoms represent token shares of the insurance funds created on Injective. The have the following format `share{id}` +* **Factory Denoms** - + +We maintain our token metadata list off-chain for faster access to the[ injective-lists](https://github.com/InjectiveLabs/injective-lists/tree/master/tokens) repository. diff --git a/.gitbook/getting-started/token-standards/cw20-standard.md b/.gitbook/getting-started/token-standards/cw20-standard.md new file mode 100644 index 00000000..195c33b7 --- /dev/null +++ b/.gitbook/getting-started/token-standards/cw20-standard.md @@ -0,0 +1,2 @@ +# CW20 Standard + diff --git a/.gitbook/getting-started/token-standards/inj-coin.md b/.gitbook/getting-started/token-standards/inj-coin.md new file mode 100644 index 00000000..1c545dee --- /dev/null +++ b/.gitbook/getting-started/token-standards/inj-coin.md @@ -0,0 +1,68 @@ +# INJ coin + +INJ is the native asset powering Injective and its broader ecosystem. Each component of INJ is deliberately engineered to cultivate a thriving Web3 ecosystem. As the native asset of the blockchain, INJ plays a central role in facilitating various operations on Injective. Integral to Injective’s custom implementation of the Tendermint Proof-of-Stake (PoS) consensus framework, INJ is crucial for securing the network through staking. Additionally, INJ functions as Injective’s governance token and serves as a means of exchange within the broader Injective ecosystem. Notably, INJ distinguishes itself from other native assets on PoS chains by leveraging core Injective modules to engineer deflationary characteristics through an innovative burn and a dynamic supply mechanism. + +### Base Denomination + +INJ uses [Atto](https://en.wikipedia.org/wiki/Atto-) as the base denomination to maintain parity with Ethereum. + +``` +1 inj = 1×10⁻¹⁸ INJ +``` + +This matches Ethereum's denomination: + +``` +1 wei = 1x10⁻¹⁸ ETH +``` + +### Injective Tokenomics and Utility + +#### 1. Security and Staking + +Injective is secured via staking, which is an essential use case for INJ. Validators and delegators can freely participate in the Injective network via staking. Validators operate nodes on Injective, and delegators can assign INJ to a particular node of choice. Staked INJ enables a robust decentralized environment in which security is ensured via penalty and reward systems. + +A validator’s staked INJ is subject to slashing in the event of malicious behavior or failure to effectively fulfill responsibilities. Additionally, INJ is used to reward validators for participation in transaction validation and block creation. Rewards for validators comprise newly minted INJ (block rewards) and a portion of the associated transaction fees. + +Holders of INJ may also participate in staking without necessarily having to operate a node to earn a share of validator rewards. To do so, users delegate INJ to validator(s), which can be done through supported browser wallets, or directly through the Injective Hub. In return for locking up INJ, users earn a share of the validator’s INJ rewards, less the fee charged by the selected validator (commission), distributed pro rata. A user’s staked INJ is also subject to slashing in the event the validator delegated to incurs a slashing event. This ensures that both validators and delegators are aligned in contributing to the overall security of the network. + +Beyond securing the Injective chain, INJ also extends its security serviceability to the broader ecosystem through Electro Chains. These Injective-based rollups offer a myriad of technical advantages, such as supporting multiple virtual ma- chines as seen with inEVM.5 Since these rollups settle to Injective, INJ powers the foundational security layer for these networks. This interconnected security framework underscores the pivotal role of INJ in maintaining the integrity and robustness of not only the Injective network, but also the diverse ecosystem of Electro Chains. + +#### 2. Governance + +INJ is utilized for community led governance across all parameters of the chain. Injective uniquely has a permissioning layer for smart contract uploads as well, meaning that the community of stakers must vote in order to instantiate a smart contract on mainnet. This empowers the community to directly govern all parameters of Injective as a whole. + +For governance, INJ is used for proposal creation and token-weighted voting on active proposals. As a spam deterrent, Injective requires a minimum deposit, made in INJ, for the proposal to move on to the voting stage. This deposit threshold can either be met entirely by the proposer, or cumulatively by other users contributing INJ to the proposal deposit. If the minimum deposit amount is not reached by the time the maximum deposit period elapses, the proposal will be automatically rejected, and the deposit(s) burned. Additionally, if the proposal does not pass upon voting period expiry, the proposal deposit is burned. + +Proposal voting occurs during a preset voting period, which is set via gover- nance and invariably applied to all governance votes. During the voting process, only staked INJ is eligible to participate in voting. Hence, only validators and delegators can vote on active proposals. Voting power is token-weighted, meaning that 1 INJ equals 1 vote. Delegators are not required to actively participate in governance to maintain their status. However, they have the option to vote directly on proposals. If a delegator does not vote, their voting power will automatically be inherited by the validator to whom they have delegated, for that specific voting event. + +INJ is used to govern all aspects of the chain, including: + +* Auction Module Parameters +* Exchange Module Custom proposals and Parameters +* Insurance Module Parameters +* Oracle Module Custom proposals +* Peggy Module Parameters +* Wasmx Module Parameters +* Software upgrades +* Cosmos-SDK module parameters for the [auth](https://docs.cosmos.network/main/modules/auth#parameters), [bank](https://docs.cosmos.network/main/modules/bank), [crisis](https://docs.cosmos.network/main/modules/crisis), [distribution](https://docs.cosmos.network/main/modules/distribution), [gov](https://docs.cosmos.network/main/modules/gov), [mint](https://docs.cosmos.network/main/modules/mint), [slashing](https://docs.cosmos.network/main/modules/slashing), and [staking](https://docs.cosmos.network/main/modules/staking) modules. + +Full details on the governance process can be found [here](https://blog.injectiveprotocol.com/injective-governance-proposal-procedure). + +#### 3. Medium of Exchange + +INJ is used as the default asset to facilitate the purchase and sale of goods and services between parties on the blockchain. Common examples of this are paying for transaction fees (gas), buying/selling NFTs, paying for trading fees, or depositing the asset as collateral. While most goods and services can be denominated in any asset, all transaction fees incurred on Injective are paid in INJ. Additionally, all protocol revenue generated by applications leveraging Injective’s shared liquidity layer via the exchange module is accumulated in INJ. + +#### 4. Exchange dApps Incentives + +The exchange protocol implements a global minimum trading fee of $r\_m=0.1%$ for makers and $r\_t=0.2%$ for takers. As an incentive mechanism to encourage exchange dApps to source trading activity on the exchange protocol, exchange dApps that originate orders into the shared orderbook are rewarded with $\beta = 40%$ of the trading fees arising from all orders that they source. + +#### 5. Exchange Fee Value Accrual + +The remaining $60%$ of the exchange fee will undergo an on-chain buy-back-and-burn event where the aggregate exchange fee basket is auctioned off to the highest bidder in exchange for INJ. The INJ proceeds of this auction are then burned, thus deflating the total INJ supply. + +More details on the auction mechanism can be found here. + +#### 6. Backing Collateral for Derivatives + +INJ can be utilized as an alternative to stablecoins as margin and collateral for Injective's derivatives markets. In some derivative markets, INJ can also be used as backing collateral for insurance pool staking, where stakers can earn interest on their locked tokens. diff --git a/.gitbook/getting-started/token-standards/token-factory.md b/.gitbook/getting-started/token-standards/token-factory.md new file mode 100644 index 00000000..e731c1d1 --- /dev/null +++ b/.gitbook/getting-started/token-standards/token-factory.md @@ -0,0 +1,7 @@ +# Token Factory + +TokenFactory tokens are tokens that are natively integrated into the bank module of the Cosmos SDK. Their name takes on the format `factory/{creatorAddress}/{subdenom}`. Because tokens are namespaced by the creator address, this allows for permissionless token minting, due to not needing to resolve name collisions. + +This integration provides support for tracking and querying the total supply of all assets, unlike the CW20 standard, which requires querying the smart contract directly. For this reason, using the TokenFactory standard is recommended. Products such as Helix or Mito, for example, are built on the Injective exchange module, which exclusively uses bank tokens. TokenFactory tokens can be created via the injectived CLI, as well as via smart contract. Tokens bridged into Injective via Wormhole are also TokenFactory tokens. + +To learn more about creating your token on Injective, see [here](https://docs.injective.network/develop/guides/token-launch/). To read more about the TokenFactory standard, see [here](https://docs.injective.network/develop/modules/injective/tokenfactory/). diff --git a/.gitbook/getting-started/transactions/README.md b/.gitbook/getting-started/transactions/README.md new file mode 100644 index 00000000..ec92e401 --- /dev/null +++ b/.gitbook/getting-started/transactions/README.md @@ -0,0 +1,19 @@ +# Transactions + +When users want to interact with Injective and make state changes, they create transactions. Once the transaction is created, it requires a signature from the private key linked to the account initiating the particular state change. Following the signature, the transaction is broadcasted to Injective. + +After being broadcasted and passing all validations (including signature validation, values validations, etc.), the transaction is included in a block that undergoes network approval via the consensus process. + +### Messages + +In simpler terms, messages are the instructions given to Injective about the desired state change. Messages are module-specific objects that trigger state transitions within the scope of the module they belong to. Every transaction must have at least one message. + +Additionally, multiple messages can be packed within the same transaction. + +### Transaction Context + +Besides Messages, every transaction has a context. The context includes `fees`, `accountDetails`, `memo`, `signatures`, etc. + +### Transaction Flow + +Every transaction we want to broadcast to Injective has the same flow. The flow consists of three steps: preparing, signing and broadcasting the transaction. diff --git a/.gitbook/getting-started/transactions/gas-and-fees.md b/.gitbook/getting-started/transactions/gas-and-fees.md new file mode 100644 index 00000000..6a7a4adb --- /dev/null +++ b/.gitbook/getting-started/transactions/gas-and-fees.md @@ -0,0 +1,44 @@ +# Gas and Fees + +## Gas and Fees + +{% hint style="info" %} +Learn about the differences between `Gas` and `Fees` on Injective. + +Pre-requisite Readings -> [Cosmos SDK Gas](https://docs.cosmos.network/main/build/modules/auth#gas--fees) +{% endhint %} + +Gas represents the amount of computational effort required to execute specific operations on the state machine. + +Injective utilizes the concept of gas to track the resource usage of operations during execution. Operations on the Cosmos SDK (which the Injective Protocol is built on) are represented as read or writes done to the chain's store. + +A fee is calculated and charged to the user during a message execution. This fee is calculated from the sum of all gas consumed in a message execution: + +``` +fee = gas * gas price +``` + +Gas is used to make sure that operations do not require an excess amount of computational power to complete and to deter bad-acting users from spamming the network. + +:::tip minimum gas price The minimum gas price set by validators is currently 160,000,000inj. To find the amount paid in INJ, multiply the gas price by the gas amount and divide by 1e18 (INJ has 18 decimals). + +For example: if gas wanted is 104,519, then gas fees = 160,000,000 \* 104,519 / 1e18 = 0.000016723 INJ ::: + +### Cosmos SDK `Gas` + +In the Cosmos SDK, gas is tracked in the main `GasMeter` and the `BlockGasMeter`: + +* `GasMeter`: keeps track of the gas consumed during executions that lead to state transitions. It is reset on every transaction execution. +* `BlockGasMeter`: keeps track of the gas consumed in a block and enforces that the gas does not go over a predefined limit. This limit is defined in the Tendermint consensus parameters and can be changed via governance parameter change proposals. + +More information regarding gas in Cosmos SDK can be found [here](https://docs.cosmos.network/main/basics/gas-fees.html). + +In Cosmos, there are types of operations that are not triggered by transactions that can also result in state transitions. Concrete examples are the `BeginBlock` and `EndBlock` operations and the `AnteHandler` checks, which might also read and write to the store before running the state transition from a transaction. + +#### `BeginBlock` and `EndBlock` + +These operations are defined by the Tendermint Core's Application Blockchain Interface (ABCI) and are defined by each Cosmos SDK module. As their name suggest, they are executed at the beginning and at the end of each block processing respectively (i.e pre and post transaction execution). + +#### `AnteHandler` + +The Cosmos SDK [`AnteHandler`](https://docs.cosmos.network/main/basics/gas-fees.html#antehandler) performs basic checks prior to transaction execution. These checks are usually signature verification, transaction field validation, transaction fees, etc. diff --git a/.gitbook/getting-started/transactions/messages.md b/.gitbook/getting-started/transactions/messages.md new file mode 100644 index 00000000..15939643 --- /dev/null +++ b/.gitbook/getting-started/transactions/messages.md @@ -0,0 +1,2 @@ +# Messages + diff --git a/.gitbook/getting-started/wallet/README.md b/.gitbook/getting-started/wallet/README.md new file mode 100644 index 00000000..a2ee144a --- /dev/null +++ b/.gitbook/getting-started/wallet/README.md @@ -0,0 +1,6 @@ +# Wallet + +The Injective Wallet allows you to monitor your assets on Injective. Assets can be native tokens on Injective, as well as bridged assets from Ethereum, Solana, Polygon and various IBC-enabled chains.[\ +](https://docs.injective.network/learn/injective-hub/) + +There are a variety of different wallets that are supported on Injective. Users can choose to submit transactions on Injective using either their Ethereum native wallets or their Cosmos native wallets. diff --git a/.gitbook/getting-started/wallet/accounts.md b/.gitbook/getting-started/wallet/accounts.md new file mode 100644 index 00000000..ce25ce08 --- /dev/null +++ b/.gitbook/getting-started/wallet/accounts.md @@ -0,0 +1,101 @@ +# Accounts + +This section describes the built-in accounts system of Injective. + +{% hint style="info" %} +This document describes the built-in accounts system of Injective. + +Pre-requisite Readings: + +* [Cosmos SDK Accounts](https://docs.cosmos.network/main/basics/accounts) +* [Ethereum Accounts](https://ethereum.org/en/whitepaper/#ethereum-accounts) +{% endhint %} + +Injective defines its custom `Account` type that uses Ethereum's ECDSA secp256k1 curve for keys. This satisfies the [EIP84](https://github.com/ethereum/EIPs/issues/84) for full [BIP44](https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki) paths. The root HD path for Injective-based accounts is `m/44'/60'/0'/0`. + +### Addresses and Public Keys + +There are 3 main types of `Addresses`/`PubKeys` available by default on Injective: + +* Addresses and Keys for **accounts**, that identify users (e.g. the sender of a `message`). They are derived using the **`eth_secp256k1`** curve. +* Addresses and Keys for **validator operators**, which identify the operators of validators. They are derived using the **`eth_secp256k1`** curve. +* Addresses and Keys for **consensus nodes**, which identify the validator nodes participating in consensus. They are derived using the **`ed25519`** curve. + +| | Address bech32 Prefix | Pubkey bech32 Prefix | Curve | Address byte length | Pubkey byte length | +| ------------------ | --------------------- | -------------------- | --------------- | ------------------- | ------------------ | +| Accounts | `inj` | `injpub` | `eth_secp256k1` | `20` | `33` (compressed) | +| Validator Operator | `injvaloper` | `injvaloperpub` | `eth_secp256k1` | `20` | `33` (compressed) | +| Consensus Nodes | `injvalcons` | `injvalconspub` | `ed25519` | `20` | `32` | + +### Address formats for clients + +`EthAccount`s can be represented in both [Bech32](https://en.bitcoin.it/wiki/Bech32) and hex format for Ethereum's Web3 tooling compatibility. + +The Bech32 format is the default format for Cosmos-SDK queries and transactions through CLI and REST clients. The hex format is the Ethereum `common.Address` representation of a Cosmos `sdk.AccAddress`. + +* Address (Bech32): `inj14au322k9munkmx5wrchz9q30juf5wjgz2cfqku` +* Address ([EIP55](https://eips.ethereum.org/EIPS/eip-55) Hex): `0xAF79152AC5dF276D9A8e1E2E22822f9713474902` +* Compressed Public Key: `{"@type":"/injective.crypto.v1beta1.ethsecp256k1.PubKey","key":"ApNNebT58zlZxO2yjHiRTJ7a7ufjIzeq5HhLrbmtg9Y/"}` + +You can query an account address using the Cosmos CLI or REST clients: + +```bash +# NOTE: the --output (-o) flag will define the output format in JSON or YAML (text) +injectived q auth account $(injectived keys show -a) -o text +| + '@type': /injective.types.v1beta1.EthAccount + base_account: + account_number: "3" + address: inj14au322k9munkmx5wrchz9q30juf5wjgz2cfqku + pub_key: null + sequence: "0" + code_hash: xdJGAYb3IzySfn2y3McDwOUAtlPKgic7e/rYBF2FpHA= +``` + +```bash +# GET /cosmos/auth/v1beta1/accounts/{address} +curl -X GET "http://localhost:10337/cosmos/auth/v1beta1/accounts/inj14au322k9munkmx5wrchz9q30juf5wjgz2cfqku" -H "accept: application/json" +``` + +See the [Swagger API](https://lcd.injective.network/swagger/) reference for the full docs on the accounts API. + +{% hint style="info" %} +The Cosmos SDK Keyring output (i.e `injectived keys`) only supports addresses in Bech32 format. +{% endhint %} + +### Derive Injective Account from a private key/mnemonic + +Below is an example of how to derive an Injective Account from a private key and/or a mnemonic phrase: + +```js +import { Wallet } from 'ethers' +import { Address as EthereumUtilsAddress } from 'ethereumjs-util' + +const mnemonic = "indoor dish desk flag debris potato excuse depart ticket judge file exit" +const privateKey = "afdfd9c3d2095ef696594f6cedcae59e72dcd697e2a7521b1578140422a4f890" +const defaultDerivationPath = "m/44'/60'/0'/0/0" +const defaultBech32Prefix = 'inj' +const isPrivateKey: boolean = true /* just for the example */ + +const wallet = isPrivateKey ? Wallet.fromMnemonic(mnemonic, defaultDerivationPath) : new Wallet(privateKey) +const ethereumAddress = wallet.address +const addressBuffer = EthereumUtilsAddress.fromString(ethereumAddress.toString()).toBuffer() +const injectiveAddress = bech32.encode(defaultBech32Prefix, bech32.toWords(addressBuffer)) +``` + +Below is an example of how to derive a public key from a private key: + +```js +import secp256k1 from 'secp256k1' + +const privateKey = "afdfd9c3d2095ef696594f6cedcae59e72dcd697e2a7521b1578140422a4f890" +const privateKeyHex = Buffer.from(privateKey.toString(), 'hex') +const publicKeyByte = secp256k1.publicKeyCreate(privateKeyHex) + +const buf1 = Buffer.from([10]) +const buf2 = Buffer.from([publicKeyByte.length]) +const buf3 = Buffer.from(publicKeyByte) + +const publicKey = Buffer.concat([buf1, buf2, buf3]).toString('base64') +const type = '/injective.crypto.v1beta1.ethsecp256k1.PubKey' +``` diff --git a/.gitbook/getting-started/wallet/auction.md b/.gitbook/getting-started/wallet/auction.md new file mode 100644 index 00000000..2cb4527d --- /dev/null +++ b/.gitbook/getting-started/wallet/auction.md @@ -0,0 +1,25 @@ +# Auction + +## Burn Auction + +INJ 2.0, released in 2023, made it possible for any application to contribute to the Auction Fund, not just those using the exchange module. + +Additionally, Injective’s April 2024 INJ Burn Upgrade expanded access to this feature, allowing for individual users to make contributions. As a result, any project or user can directly contribute to the Injective Burn Auction, which in turn can boost the overall value and effectiveness of the Burn Auction. + +As of May 2024, over 5,920,000 INJ (∼$154,000,000) has been removed from the total token supply through the Burn Auction. The Burn Auction occurs weekly, ending at 9:00 UTC-4:00. Participation can be conducted via the Injective Hub or direct interaction with the chain itself. + +The complete versatility of INJ is realized through a combination of mechanisms that operate in tandem. Building on Injective’s innovative approach to supply dynamics, the asset is positioned to exhibit deflationary properties through a well-engineered system designed to remove INJ from circulation. This process is facilitated by Injective’s novel Burn Auction system, which effectively reduces the total supply. + +Held regularly, the Burn Auction invites participants to bid on a basket of tokens accumulated from a portion of the revenue generated by participating applications and direct contributions from individual users. The auction operates as an English Auction, where bids are placed using INJ. The highest bidder receives the entire basket of assets at the auction’s expiry. The winning INJ bid is then burned, removing it from the total token supply. + +The Burn Auction is made possible by two modules that are native to Injective, `exchange` and `auction`. These modules are available out-of-the-box for anyone building on Injective, as part of Injective’s core offering of plug-and-play financial primitives. + +### Exchange Module + +The exchange module is one of Injective’s central differentiators from other blockchains. This technical instrument is what powers the shared liquidity environment on Injective and fuels the Burn Auction. The entire process of orderbook management, trade execution, order matching, and settlement occurs on-chain through the logic codified by the module. + +The design feature that is key to the Burn Auction is the built-in revenue-sharing structure for applications employing the exchange module. Herein, a portion of the accrued revenue is allocated to the auction module for inclusion in the current Burn Auction event, while the remaining portion is retained by the application utilizing the module to power its exchange services. + +### Auction Module + +The auction module provides two essential services for the operation of the Burn Auction: token collection and auction orchestration. For token collection, the module periodically gathers tokens from the exchange module, pooling them into an Auction Fund. Importantly, the Auction Fund also receives tokens from applications that do not utilize the exchange module but have opted into participation, as well as from individual user contributions. The auction process itself involves several tasks managed by the auction module, including coordination of the bidding process, determining the winner, delivering the won assets, and burning the winning INJ bid. diff --git a/.gitbook/getting-started/wallet/create-a-wallet.md b/.gitbook/getting-started/wallet/create-a-wallet.md new file mode 100644 index 00000000..3534bb87 --- /dev/null +++ b/.gitbook/getting-started/wallet/create-a-wallet.md @@ -0,0 +1,3 @@ +# Create a wallet + +Creating a wallet on Injective is as simply as sending some funds to your Injective address. diff --git a/.gitbook/getting-started/wallet/governance.md b/.gitbook/getting-started/wallet/governance.md new file mode 100644 index 00000000..5ce7e366 --- /dev/null +++ b/.gitbook/getting-started/wallet/governance.md @@ -0,0 +1,25 @@ +# Governance + +## Governance + +Injective is a community-run blockchain and users who have staked INJ can participate in governance as it relates to the blockchain. Proposals can be submitted to make revisions to Injective programs, tech upgrades, or any other Injective related changes that impact the entire Injective ecosystem. + +Within Injective Hub, new proposals are submitted through the governance portal and voted on by the entire community. + +### Submitting a request + +To submit a new request, you must create a proposal that outlines what you would like to change, what areas within Injective this change may impact, and why you are requesting this change. + +Upon creating a proposal, you must deposit at least 10 INJ (10e19 inj) to submit it for governance. This is to ensure that you are an active participant of the Injective community, and thus eligible to make proposal requests. + +For the proposal to pass to the voting stage, 100 INJ (10e20 inj) must also be deposited. This can be deposited directly by you or in collaboration with other community members. + +### Voting Period + +Once the proposal and deposit is submitted, the proposal will go through a four-day voting period. + +33.4% of INJ holders must vote on a proposal for the vote to be considered, and 50% of those votes must be “yes” for the proposal to pass. + +### Voting Outcome + +If a proposal passes, Injective contributors will begin to work together to put into effect the new request. If 33.4% of the total vote is `NoWithVeto`, quorum is not met, or the minimum deposit isn't reached, the deposit will be burned. All other vote outcomes get their deposits refunded. diff --git a/.gitbook/getting-started/wallet/staking.md b/.gitbook/getting-started/wallet/staking.md new file mode 100644 index 00000000..6f2be082 --- /dev/null +++ b/.gitbook/getting-started/wallet/staking.md @@ -0,0 +1,21 @@ +# Staking + +Staking is the process of locking up your assets (in this case INJ) in order to validate transactions on the blockchain. Users who stake their assets are usually eligible for staking rewards. + +Injective follows a proof-of-stake mechanism, in which users can stake their INJ tokens with certain Injective nodes that validate transactions (validators). In return, the user can obtain staking rewards in INJ. + +### Stake INJ + +Stake your INJ to a validator to start earning rewards. + +### Withdraw staking rewards + +Rewards start accruing the moment you stake INJ. Monitor your rewards in the staking section of Injective Hub. Once you have earned a sufficient amount of rewards, you may withdraw them at any time. + +### Redelegate + +Redelegating lets you instantly transfer staked INJ from one validator to another without undergoing the 21-day unstaking period. + +### Undelegate + +Undelegating INJ is the process of unstaking your assets from a validator, which takes 21 days to complete. diff --git a/.gitbook/guides/README.md b/.gitbook/guides/README.md new file mode 100644 index 00000000..b955b433 --- /dev/null +++ b/.gitbook/guides/README.md @@ -0,0 +1,2 @@ +# Guides + diff --git a/.gitbook/guides/bridge/README.md b/.gitbook/guides/bridge/README.md new file mode 100644 index 00000000..6b7a386e --- /dev/null +++ b/.gitbook/guides/bridge/README.md @@ -0,0 +1,2 @@ +# Bridge + diff --git a/.gitbook/guides/launch-a-market.md b/.gitbook/guides/launch-a-market.md new file mode 100644 index 00000000..92f43ca5 --- /dev/null +++ b/.gitbook/guides/launch-a-market.md @@ -0,0 +1,43 @@ +# Launch a market + +{% hint style="info" %} +The prerequisite for launching a market is to [launch-a-token.md](launch-a-token.md "mention") +{% endhint %} + +Launching a trading pair on Injective is quick, easy, and best of all it's permissionless! + +The following tutorial assumes the pair is listed with an ERC-20 token bridged from Ethereum as the base asset, paired with INJ as the quote asset. + +For an Injective-native token, skip the bridging portion and head straight to step 6. + +1. Navigate to the [Injective Bridge](http://bridge.injective.network/) to begin the process of bridging your chosen ERC-20 token from Ethereum to Injective using the Peggy bridge. + +![Injective Bridge](https://docs.injective.network/assets/images/ltp1-c1209664f44de66d2d290c78215a52db.png) + +2. Click the dropdown, scroll to the bottom, and click "add" next to the advanced tool to add a custom ERC-20 token using the token address, which you may want to verify on a trusted source like CoinGecko. + +![Launch trading Pair](https://docs.injective.network/assets/images/ltp2-2cf6d9420ceec3e5a88fd4de94f6229b.png) + +3. Copy and paste the correct contract address, and click "add." + +![Launch trading Pair](https://docs.injective.network/assets/images/ltp3-26764cf278d2d93dcc46433762c7e594.png) + +4. Now enter the desired amount of the ERC-20 token you wish to bridge, click "approve," confirm the transaction, then click "review," confirm the transaction, and wait. + +![Launch trading Pair](https://docs.injective.network/assets/images/ltp4-f8f97c3328c04389962ac3deb9b137a9.png) ![Launch trading Pair](https://docs.injective.network/assets/images/ltp6-7812b6fe19b088c68b8d2a9bda8df05c.png) ![Launch trading Pair](https://docs.injective.network/assets/images/ltp7-d83a52c9fc794a2934ea8f2a5371595a.png) ![Launch trading Pair](https://docs.injective.network/assets/images/ltp8-da76aaaa5ee9f233ea47bbcb1f5b53bf.png) + +5. Once the approve spend and deposit transactions are confirmed on the Ethereum blockchain, you will see the progress of the bridging transaction. Once the transaction is confirmed on Injective, your bridged ERC-20 token will be available in your Injective wallet. (Note, if you used MetaMask with the source chain, by default your bridged tokens will be sent to the inj address linked to your MetaMask. This can be changed by clicking the lock icon next to the recipient address at the beginning of step 4.) + +![Launch trading Pair](https://docs.injective.network/assets/images/ltp9-28e71eabdedb5ca3cf4fb995e1a25af8.png) + +6. After the bridging transaction is complete, you're able to list the token permissionlessly on Injective by navigating to the [Injective Hub](http://hub.injective.network/proposal/create). + +![Launch trading Pair](https://docs.injective.network/assets/images/ltp10-aa2a95266e47c43e095ad88926a07db3.png) + +7. Choose "instant spot market launch" from the first dropdown, and specify a ticker. In this example, let's use PEPE/INJ. Now choose the base token from the dropdown. However, beware, several tokens might exist under the same ticker. Always match the correct token address. In this case, as the token was bridged using the Peggy bridge, the address will be peggy followed by the ERC-20 contract address. + +![Launch trading Pair](https://docs.injective.network/assets/images/ltp11-690a7c29af0ed5b64d282bb0da8cb0cd.png) + +8. Now choose the correct quote denom, in this case, inj. (Note, if you wish to pair the token with USDT, make sure to select the "correct" USDT address, which is peggy followed by the ERC-20 contract address for USDT.) Finally, specify a minimum price tick size and minimum quantity tick size. Because PEPE/INJ would trade at a fraction of a penny, the minimum ticks are set accordingly. + +![Launch trading Pair](https://docs.injective.network/assets/images/ltp11-690a7c29af0ed5b64d282bb0da8cb0cd.png) diff --git a/.gitbook/guides/launch-a-token.md b/.gitbook/guides/launch-a-token.md new file mode 100644 index 00000000..fc66519a --- /dev/null +++ b/.gitbook/guides/launch-a-token.md @@ -0,0 +1,237 @@ +# Launch a token + +Within this document, we'll explain how to launch a token on Injective. + +There are two options on how to launch a token on Injective + +## Bridging + +The easiest way to launch a token on Injective is by bridging your existing assets from one of the supported networks that Injective is interoperable with. There are guides in the [bridge](bridge/ "mention")sections that you can reference to bridge assets from other networks to Injective. + +Once the briding process is completed, a token will be created on Injective which you can then use to [launch-a-market.md](launch-a-market.md "mention"). + +## Creating new token + +You can also create a new token on Injective using the `tokenFactory` module. There are multiple ways on how to achieve this. + +### Using the InjectiveHub + +The [InjectiveHub](https://hub.injective.network/token-factory/) web app provides you the ability to create and manage tokens seamlessly, creating a market on Injective's [native orderbook](https://docs.injective.network/develop/modules/injective/exchange), etc. + +### Using the TokenStation[​](https://docs.injective.network/develop/guides/token-launch/#3-via-tokenstation) + +The [TokenStation](https://www.tokenstation.app/) web app provides you the ability to create and manage tokens seamlessly, creating a market on Injective's [native orderbook](https://docs.injective.network/develop/modules/injective/exchange), launching an airdrop, and much more. + +### Using the DojoSwap[​](https://docs.injective.network/develop/guides/token-launch/#4-via-dojoswap) + +Similar to above, you can utilize [DojoSwap's Market Creation module](https://docs.dojo.trading/introduction/market-creation) to create, manage, and list your token, along with several other useful features. + +### Programmatically + +#### Using TypeScript + +You can learn more about Launching a token on the [TypeScript Documentation](https://docs.ts.injective.network/readme/assets/creating-tokens). + +#### Using Injective CLI + +{% hint style="info" %} +You have to have `injectived` installed locally before proceeding with this tutorial. You cal learn more about it on the [getting-started](../nodes/getting-started/ "mention")page in the Nodes section. +{% endhint %} + +Once you have `injectived` installed and a key added, you can use the CLI to launch your token: + +1. **Create a tokenfactory denom** + +The fee for creating a factory denom is `0.1 INJ`. + +```bash +injectived tx tokenfactory create-denom ak --from=YOUR_KEY --chain-id=injective-888 --node=https://testnet.tm.injective.network:443 --gas-prices=500000000inj --gas 1000000 +``` + +Tokens are namespaced by the creator address to be permissionless and avoid name collision. In the example above, the subdenom is `ak` but the denom naming will be `factory/{creator address}/{subdenom}`. + +2. **Submit token metadata** + +To get your token visible on Injective dApps, you have to submit it's metadata. + +```bash +injectived tx tokenfactory set-denom-metadata "My Token Description" 'factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/ak' AKK AKCoin AK '' '' '[ +{"denom":"factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/ak","exponent":0,"aliases":[]}, +{"denom":"AKK","exponent":6,"aliases":[]} +]' 6 --from=YOUR_KEY --chain-id=injective-888 --node=https://sentry.testnet.tm.injective.network:443 --gas-prices=500000000inj --gas 1000000 +``` + +This command expects the following arguments: + +
injectived tx tokenfactory set-denom-metadata [description] [base] [display] [name] [symbol] [uri] [uri-hash] [denom-unit (json)] [decimals]
+
+ +3. #### Mint tokens + +Once you have created your token and submitted the token metadata, it's time to mint your tokens. + +```bash +injectived tx tokenfactory mint 1000000factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/ak --from=gov --chain-id=injective-888 --node=https://sentry.testnet.tm.injective.network:443 --gas-prices=500000000inj --gas 1000000 +``` + +This command will mint 1 token, assuming your token has 6 decimals. + +4. **Burn tokens** + +The admin of the token, can also burn the tokens. + +```bash +injectived tx tokenfactory burn 1000000factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/ak --from=gov --chain-id=injective-888 --node=https://sentry.testnet.tm.injective.network:443 --gas-prices=500000000inj --gas 1000000 +``` + +5. **Change admin** + +It's recommended once you have minted the initial supply to change admin to the `null` address to make sure that the supply of the token cannot be manipulated. Once again, the admin of the token can mint and burn supply anytime. The `NEW_ADDRESS`, as explained above in most of the cases should be set to `inj1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqe2hm49`. + +```bash +injectived tx tokenfactory change-admin factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/ak NEW_ADDRESS --from=gov --chain-id=injective-888 --node=https://sentry.testnet.tm.injective.network:443 --gas-prices=500000000inj --gas 1000000 +``` + +{% hint style="info" %} +The examples above are for testnet. If you want to run them on mainnet, do the following changes: + +`injective-888` > `injective-1` + +`https://sentry.testnet.tm.injective.network:443` > `http://sentry.tm.injective.network:443` +{% endhint %} + +#### Using Cosmwasm + +To create and manage a bank token programmatically via a smart contract, one can use the following messages found in the [`injective-cosmwasm`](https://github.com/InjectiveLabs/cw-injective/blob/6b2d549ff99912b9b16dbf91a06c83db99b5dace/packages/injective-cosmwasm/src/msg.rs#L399-L434) package: + +\ +`create_new_denom_msg` + +```rust +pub fn create_new_denom_msg(sender: String, subdenom: String) -> CosmosMsg { + InjectiveMsgWrapper { + route: InjectiveRoute::Tokenfactory, + msg_data: InjectiveMsg::CreateDenom { sender, subdenom }, + } + .into() +} +``` + +Purpose: Creates a message to create a new token denomination using the tokenfactory module. + +Parameters: + +* `sender`: The address of the account initiating the creation. +* `subdenom`: The sub-denomination identifier for the new token. + +Returns: A `CosmosMsg` wrapped in an `InjectiveMsgWrapper`, ready to be sent to the Injective blockchain. + +Example: + +```rust +let new_denom_message = create_new_denom_msg( + env.contract.address, // Sender's address + "mytoken".to_string(), // Sub-denomination identifier +); +``` + +#### `create_set_token_metadata_msg` + +```rust +pub fn create_set_token_metadata_msg(denom: String, name: String, symbol: String, decimals: u8) -> CosmosMsg { + InjectiveMsgWrapper { + route: InjectiveRoute::Tokenfactory, + msg_data: InjectiveMsg::SetTokenMetadata { + denom, + name, + symbol, + decimals, + }, + } + .into() +} +``` + +Purpose: Creates a message to set or update metadata for a token. + +Parameters: + +* `denom`: The denomination identifier of the token. +* `name`: The full name of the token. +* `symbol`: The symbol of the token. +* `decimals`: The number of decimal places the token uses. + +Returns: A `CosmosMsg` wrapped in an `InjectiveMsgWrapper`, ready to be sent to the Injective blockchain. + +Example: + +```rust +let metadata_message = create_set_token_metadata_msg( + "mytoken".to_string(), // Denomination identifier + "My Custom Token".to_string(), // Full name + "MYT".to_string(), // Symbol + 18, // Number of decimals +); +``` + +#### `create_mint_tokens_msg` + +```rust +pub fn create_mint_tokens_msg(sender: Addr, amount: Coin, mint_to: String) -> CosmosMsg { + InjectiveMsgWrapper { + route: InjectiveRoute::Tokenfactory, + msg_data: InjectiveMsg::Mint { sender, amount, mint_to }, + } + .into() +} +``` + +Purpose: Creates a message to mint new tokens. The token must be a tokenfactory token and the sender must be the token admin. + +Parameters: + +* `sender`: The address of the account initiating the mint operation. +* `amount`: The amount of tokens to mint. +* `mint_to`: The recipient address where the newly minted tokens should be sent. + +Returns: A `CosmosMsg` wrapped in an `InjectiveMsgWrapper`, ready to be sent to the Injective blockchain. + +Example: + +```rust +let mint_message = create_mint_tokens_msg( + env.contract.address, // Sender's address + Coin::new(1000, "factory//mytoken"), // Amount to mint + "inj1...".to_string(), // Recipient's address +); +``` + +#### `create_burn_tokens_msg` + +```rust +pub fn create_burn_tokens_msg(sender: Addr, amount: Coin) -> CosmosMsg { + InjectiveMsgWrapper { + route: InjectiveRoute::Tokenfactory, + msg_data: InjectiveMsg::Burn { sender, amount }, + } + .into() +} +``` + +Purpose: Creates a message to burn tokens. The token must be a tokenfactory token and the sender must be the token admin. + +Parameters: + +* `sender`: The address of the account initiating the burn operation. +* `amount`: The amount of tokens to burn. + +Returns: A `CosmosMsg` wrapped in an `InjectiveMsgWrapper`, ready to be sent to the Injective blockchain. + +Example: + +```rust +let burn_message = create_burn_tokens_msg( + env.contract.address, // Sender's address + Coin::new(500, "factory//mytoken"), // Amount to burn +); +``` diff --git a/.gitbook/nodes/getting-started/README.md b/.gitbook/nodes/getting-started/README.md new file mode 100644 index 00000000..31dd91e8 --- /dev/null +++ b/.gitbook/nodes/getting-started/README.md @@ -0,0 +1,2 @@ +# Getting Started + diff --git a/.gitbook/nodes/getting-started/interact-with-a-node.md b/.gitbook/nodes/getting-started/interact-with-a-node.md new file mode 100644 index 00000000..ec63666f --- /dev/null +++ b/.gitbook/nodes/getting-started/interact-with-a-node.md @@ -0,0 +1,194 @@ +# Interact with a node + +There are multiple ways to interact with a node: the CLI, gRPC, or the REST endpoints. + +## Using the CLI + +You can use the `injectived` CLI to interact with a node. If you are interacting with a node in your local private network, make sure the node is running in the terminal before you use the CLI. + +For more details on how to use `injectived`, go to Using `injectived`. + +## Using gRPC + +The Protobuf ecosystem developed tools for different use cases, including code-generation from `*.proto` files into various languages. These tools allow clients to be built easily. Often, the client connection (i.e. the transport) can be plugged and replaced very easily. Let's explore a popular transport method, gRPC. + +Since the code generation library largely depends on your own tech stack, we will only present two alternatives: + +* `grpcurl` for generic debugging and testing +* programmatically via Go, Python, or TS + +### grpcurl + +[grpcurl](https://github.com/fullstorydev/grpcurl) is like `curl` but for gRPC. It is also available as a Go library, but we will use it only as a CLI command for debugging and testing purposes. Follow the instructions in the previous link to install it. + +Assuming you have a local node running (either a localnet, or connected a live network), you should be able to run the following command to list the Protobuf services available (you can replace `localhost:9000` by the gRPC server endpoint of another node, which is configured under the `grpc.address` field inside `app.toml`: + +```bash +grpcurl -plaintext localhost:9090 list +``` + +You should see a list of gRPC services, like `cosmos.bank.v1beta1.Query`. This is called reflection, which is a Protobuf endpoint returning a description of all available endpoints. Each of these represents a different Protobuf service, and each service exposes multiple RPC methods you can query against. + +In order to get a description of the service you can run the following command: + +```bash +# Service we want to inspect +grpcurl \ + localhost:9090 \ + describe cosmos.bank.v1beta1.Query +``` + +It's also possible to execute an RPC call to query the node for information: + +```bash +grpcurl \ + -plaintext + -d '{"address":"$MY_VALIDATOR"}' \ + localhost:9090 \ + cosmos.bank.v1beta1.Query/AllBalances +``` + +#### **Query for historical state using grpcurl** + +You may also query for historical data by passing some [gRPC metadata](https://github.com/grpc/grpc-go/blob/master/Documentation/grpc-metadata.md) to the query: the `x-cosmos-block-height` metadata should contain the block to query. Using grpcurl as above, the command looks like: + +```bash +grpcurl \ + -plaintext \ + -H "x-cosmos-block-height: 279256" \ + -d '{"address":"$MY_VALIDATOR"}' \ + localhost:9090 \ + cosmos.bank.v1beta1.Query/AllBalances +``` + +Assuming the state at that block has not yet been pruned by the node, this query should return a non-empty response. + +### Programmatically + +{% hint style="info" %} +The following examples are in Go, but the Python and TS SDKs can also be used to programatically interact with a node/Injective. + +* [TypeScript Examples](https://docs.ts.injective.network/core-modules) +* [Python Examples](https://github.com/InjectiveLabs/sdk-python/tree/master/examples) +{% endhint %} + +The following snippet shows how to query the state using gRPC inside a Go program. The idea is to create a gRPC connection, and use the Protobuf-generated client code to query the gRPC server. + +```go +import ( + "context" + "fmt" + + "google.golang.org/grpc" + + sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/cosmos/cosmos-sdk/types/tx" +) + +func queryState() error { + myAddress, err := sdk.AccAddressFromBech32("inj...") + if err != nil { + return err + } + + // Create a connection to the gRPC server. + grpcConn := grpc.Dial( + "127.0.0.1:9090", // your gRPC server address. + grpc.WithInsecure(), // The SDK doesn't support any transport security mechanism. + ) + defer grpcConn.Close() + + // This creates a gRPC client to query the x/bank service. + bankClient := banktypes.NewQueryClient(grpcConn) + bankRes, err := bankClient.Balance( + context.Background(), + &banktypes.QueryBalanceRequest{Address: myAddress, Denom: "inj"}, + ) + if err != nil { + return err + } + + fmt.Println(bankRes.GetBalance()) // Prints the account balance + + return nil +} +``` + +#### **Query for historical state using Go** + +Querying for historical blocks is done by adding the block height metadata in the gRPC request. + +```go +import ( + "context" + "fmt" + + "google.golang.org/grpc" + "google.golang.org/grpc/metadata" + + grpctypes "github.com/cosmos/cosmos-sdk/types/grpc" + "github.com/cosmos/cosmos-sdk/types/tx" +) + +func queryState() error { + // --snip-- + + var header metadata.MD + bankRes, err = bankClient.Balance( + metadata.AppendToOutgoingContext(context.Background(), grpctypes.GRPCBlockHeightHeader, "12"), // Add metadata to request + &banktypes.QueryBalanceRequest{Address: myAddress, Denom: denom}, + grpc.Header(&header), // Retrieve header from response + ) + if err != nil { + return err + } + blockHeight = header.Get(grpctypes.GRPCBlockHeightHeader) + + fmt.Println(blockHeight) // Prints the block height (12) + + return nil +} +``` + +## Using the REST Endpoints + +All gRPC services on the Cosmos SDK are made available for more convenient REST-based queries through gRPC-gateway. The format of the URL path is based on the Protobuf service method's full-qualified name, but may contain small customizations so that final URLs look more idiomatic. For example, the REST endpoint for the `cosmos.bank.v1beta1.Query/AllBalances` method is `GET /cosmos/bank/v1beta1/balances/{address}`. Request arguments are passed as query parameters. + +The following examples assume you are using REST Endpoints to interact with your node in your local private network. You can change the domain to public networks. + +As a concrete example, the `curl` command to make balances request is: + +```bash +curl \ + -X GET \ + -H "Content-Type: application/json" \ + http://localhost:1317/cosmos/bank/v1beta1/balances/$MY_VALIDATOR +``` + +Make sure to replace `localhost:1317` with the REST endpoint of your node, configured under the `api.address` field. + +The list of all available REST endpoints is available as a Swagger specification file, it can be viewed at `localhost:1317/swagger`. Make sure that the `api.swagger` field is set to true in your `app.toml` file. + +#### Query for historical state using REST + +Querying for historical state is done using the HTTP header `x-cosmos-block-height`. For example, a curl command would look like: + +```bash +curl \ + -X GET \ + -H "Content-Type: application/json" \ + -H "x-cosmos-block-height: 279256" + http://localhost:1317/cosmos/bank/v1beta1/balances/$MY_VALIDATOR +``` + +Assuming the state at that block has not yet been pruned by the node, this query should return a non-empty response. + +## Cross-Origin Resource Sharing (CORS) + +[CORS policies](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) are not enabled by default to help with security. If you would like to use the rest-server in a public environment we recommend you provide a reverse proxy, this can be done with [nginx](https://www.nginx.com/). For testing and development purposes there is an `enabled-unsafe-cors` field inside `app.toml`. + +## Sending Transactions + +Sending transactions using gRPC and REST requires some additional steps: generating the transaction, signing it, and finally broadcasting it. + +You can learn more in [transactions](../../getting-started/transactions/ "mention"). diff --git a/.gitbook/nodes/getting-started/running-a-node/1.-setting-up-the-keyring.md b/.gitbook/nodes/getting-started/running-a-node/1.-setting-up-the-keyring.md new file mode 100644 index 00000000..caa45f68 --- /dev/null +++ b/.gitbook/nodes/getting-started/running-a-node/1.-setting-up-the-keyring.md @@ -0,0 +1,90 @@ +# 1. Setting up the keyring + +{% hint style="info" %} +This document describes how to configure and use the keyring and its various backends for an Injective node. `injectived` should be installed prior to setting up the keyring. See the [Install `injectived` page](../../../toolkits/injectived/install-injectived.md) for more information. +{% endhint %} + +The keyring holds the private/public keypairs used to interact with the node. For instance, a validator key needs to be set up before running the Injective node, so that blocks can be correctly signed. The private key can be stored in different locations, called "backends", such as a file or the operating system's own key storage. + +### Available backends for the keyring + +#### The `os` backend + +The `os` backend relies on operating system-specific defaults to handle key storage securely. Typically, an operating system's credential sub-system handles password prompts, private keys storage, and user sessions according to the user's password policies. Here is a list of the most popular operating systems and their respective passwords manager: + +* macOS (since Mac OS 8.6): [Keychain](https://support.apple.com/en-gb/guide/keychain-access/welcome/mac) +* Windows: [Credentials Management API](https://docs.microsoft.com/en-us/windows/win32/secauthn/credentials-management) +* GNU/Linux: + * [libsecret](https://gitlab.gnome.org/GNOME/libsecret) + * [kwallet](https://api.kde.org/frameworks/kwallet/html/index.html) + +GNU/Linux distributions that use GNOME as default desktop environment typically come with [Seahorse](https://wiki.gnome.org/Apps/Seahorse). Users of KDE based distributions are commonly provided with [KDE Wallet Manager](https://userbase.kde.org/KDE\_Wallet\_Manager). Whilst the former is in fact a `libsecret` convenient frontend, the latter is a `kwallet` client. + +`os` is the default option since operating system's default credentials managers are designed to meet users' most common needs and provide them with a comfortable experience without compromising on security. + +The recommended backends for headless environments are `file` and `pass`. + +#### The `file` backend + +The `file` stores the keyring encrypted within the app's configuration directory. This keyring will request a password each time it is accessed, which may occur multiple times in a single command resulting in repeated password prompts. If using bash scripts to execute commands using the `file` option you may want to utilize the following format for multiple prompts: + +```bash +# assuming that KEYPASSWD is set in the environment +yes $KEYPASSWD | injectived keys add me +yes $KEYPASSWD | injectived keys show me +# start injectived with keyring-backend flag +injectived --keyring-backend=file start +``` + +{% hint style="info" %} +The first time you add a key to an empty keyring, you will be prompted to type the password twice. +{% endhint %} + +#### The `pass` backend + +The `pass` backend uses the [pass](https://www.passwordstore.org/) utility to manage on-disk encryption of keys' sensitive data and metadata. Keys are stored inside `gpg` encrypted files within app-specific directories. `pass` is available for the most popular UNIX operating systems as well as GNU/Linux distributions. Please refer to its manual page for information on how to download and install it. + +:::tip **pass** uses [GnuPG](https://gnupg.org/) for encryption. `gpg` automatically invokes the `gpg-agent` daemon upon execution, which handles the caching of GnuPG credentials. Please refer to `gpg-agent` man page for more information on how to configure cache parameters such as credentials TTL and passphrase expiration. ::: + +The password store must be set up prior to first use: + +```sh +pass init +``` + +Replace `` with your GPG key ID. You can use your personal GPG key or an alternative one you may want to use specifically to encrypt the password store. + +#### The `kwallet` backend + +The `kwallet` backend uses `KDE Wallet Manager`, which comes installed by default on the GNU/Linux distributions that ships KDE as default desktop environment. Please refer to [KWallet Handbook](https://docs.kde.org/stable5/en/kdeutils/kwallet5/index.html) for more information. + +#### The `test` backend + +The `test` backend is a password-less variation of the `file` backend. Keys are stored unencrypted on disk. + +**Provided for testing purposes only. The `test` backend is not recommended for use in production environments**. + +#### The `memory` backend + +The `memory` backend stores keys in memory. The keys are immediately deleted after the program has exited. + +**Provided for testing purposes only. The `memory` backend is not recommended for use in production environments**. + +### Adding keys to the keyring + +You can use `injectived keys` for help about the keys command and `injectived keys [command] --help` for more information about a particular subcommand. + +:::tip You can also enable auto-completion with the `injectived completion` command. For example, at the start of a bash session, run `. <(injectived completion)`, and all `injectived` subcommands will be auto-completed. ::: + +To create a new key in the keyring, run the `add` subcommand with a `` argument. For the purpose of this tutorial, we will solely use the `test` backend, and call our new key `my_validator`. This key will be used in the next section. + +```bash +$ injectived keys add my_validator --keyring-backend test + +# Put the generated address in a variable for later use. +MY_VALIDATOR_ADDRESS=$(injectived keys show my_validator -a --keyring-backend test) +``` + +This command generates a new 24-word mnemonic phrase, persists it to the relevant backend, and outputs information about the keypair. If this keypair will be used to hold value-bearing tokens, be sure to write down the mnemonic phrase somewhere safe! + +By default, the keyring generates a `eth_secp256k1` keypair. The keyring also supports `ed25519` keys, which may be created by passing the `--algo ed25519` flag. A keyring can of course hold both types of keys simultaneously. diff --git a/.gitbook/nodes/getting-started/running-a-node/README.md b/.gitbook/nodes/getting-started/running-a-node/README.md new file mode 100644 index 00000000..50eb7cef --- /dev/null +++ b/.gitbook/nodes/getting-started/running-a-node/README.md @@ -0,0 +1,42 @@ +# Running a node + +It is highly recommended that you set up a local private network before joining a public network. This will help you get familiar with the setup process and provide an environment for testing. + +**Private Network** + +* Join by setting up a standalone network locally + +**Public Network** + +* Use the network via public endpoints; or +* Join by running a node + +Anyone can set up their node with endpoints to communicate with the Injective blockchain. For convenience, there are also some public endpoints available to querying the chain. These are recommended for development and testing purposes. For maximum control and reliability, running your own node is recommended. + +### Preparation For Running a Node + +If you choose to run a node (either to set up a private network or join the public network), you must set up the keyring. You can also choose to install Cosmovisor, which assists with chain upgrades for minimal downtime. + +### Interacting With The Node + +Once the node is up and running, there are a few ways to interact with a node, namely using the gPRC endpoints, REST endpoints, or `injectived` CLI. + +### Contents + +**Preparation** + +1. **Set Up Keyring** +2. **Install Cosmosvisor** + +**Join a Network** + +1. **Set Up a Local Private Network** +2. **Join via Public Endpoints** +3. **Run Node and Join Testnet** +4. **Run Node and Join Mainnet** +5. **Upgrading Your Node** +6. **Running a Node for API Traders** + +**Interact with a Node** + +1. **Interacting With a Node** diff --git a/.gitbook/nodes/private-nodes.md b/.gitbook/nodes/private-nodes.md new file mode 100644 index 00000000..91791dcd --- /dev/null +++ b/.gitbook/nodes/private-nodes.md @@ -0,0 +1,11 @@ +# Private Nodes + +As a developer, you may be interested in having a private/dedicated node or indexing solutions powering your dApp. + +Here is a list of companies offering private Injective infrastructure services. For more information, click on their websites below + +* [AllNodes](https://www.allnodes.com/inj) +* [NewMetric](https://app.newmetric.xyz/) +* [NowNodes](https://nownodes.io/injective-inj) +* [RockX](https://access.rockx.com/product/injective-blockchain-api-for-web3-builders) + diff --git a/.gitbook/nodes/public-endpoints.md b/.gitbook/nodes/public-endpoints.md new file mode 100644 index 00000000..7328cafa --- /dev/null +++ b/.gitbook/nodes/public-endpoints.md @@ -0,0 +1,46 @@ +# Public Endpoints + +{% hint style="info" %} +We **do not recommend** using these in production for applications having high usage/traffic. There are thousands of developers using the public infrastructure and we cannot promise 100% uptime and reliability. +{% endhint %} + +## Mainnet + +#### Find the [real-time status](https://status.injective.network/) of the endpoints and of the Injective network. + +| Service | Address | +| ---------------- | ------------------------------------------------------------- | +| RPC | https://sentry.tm.injective.network:443 | +| LCD | https://sentry.lcd.injective.network:443 | +| WebSocket | wss://sentry.tm.injective.network:443/websocket | +| Chain Stream | sentry.chain.stream.injective.network:443 | +| gRPC | sentry.chain.grpc.injective.network:443 | +| gRPC-Web | https://sentry.chain.grpc-web.injective.network:443 | +| Indexer gRPC | sentry.exchange.grpc.injective.network:443 | +| Indexer gRPC-Web | https://sentry.exchange.grpc-web.injective.network:443 | +| Indexer Swagger | https://sentry.exchange.grpc-web.injective.network/swagger/#/ | +| External API | https://external.api.injective.network | +| Swagger | https://sentry.lcd.injective.network/swagger/#/ | +| Hub | https://hub.injective.network/ | +| Explorer | https://explorer.injective.network/ | +| Faucet | https://inj.supply/ | + +## Testnet + +#### Find the [real-time status](https://testnet.status.injective.network) of the endpoints and the Injective testnet network. + +| Service | Address | +| ---------------- | --------------------------------------------------------------------- | +| RPC | https://testnet.sentry.tm.injective.network:443 | +| LCD | https://testnet.sentry.lcd.injective.network:443 | +| WebSocket | wss://testnet.sentry.tm.injective.network:443/websocket | +| Chain Stream | testnet.sentry.chain.stream.injective.network:443 | +| gRPC | testnet.sentry.chain.grpc.injective.network:443 | +| gRPC-Web | https://testnet.sentry.chain.grpc-web.injective.network:443 | +| Indexer gRPC | testnet.sentry.exchange.grpc.injective.network:443 | +| Indexer gRPC-Web | https://testnet.sentry.exchange.grpc-web.injective.network:443 | +| Swagger | https://testnet.sentry.lcd.injective.network/swagger/ | +| Indexer Swagger | https://testnet.sentry.exchange.grpc-web.injective.network/swagger/#/ | +| Hub | https://testnet.hub.injective.network/ | +| Explorer | https://testnet.explorer.injective.network/ | +| Faucet | https://testnet.faucet.injective.network/ | diff --git a/.gitbook/nodes/validators.md b/.gitbook/nodes/validators.md new file mode 100644 index 00000000..57a2276b --- /dev/null +++ b/.gitbook/nodes/validators.md @@ -0,0 +1,2 @@ +# Validators + diff --git a/.gitbook/other/glossary.md b/.gitbook/other/glossary.md new file mode 100644 index 00000000..86705ed6 --- /dev/null +++ b/.gitbook/other/glossary.md @@ -0,0 +1,245 @@ +# Glossary + +Use this glossary to learn about terms specific to Injective. + +### Active set + +The validators that participate in consensus and receive rewards. + +### Airdrops + +Additional rewards given to delegators through certain validators that are separate from staking rewards. Airdrops are generally given by applications in the Injective ecosystem to increase visibility. + +### Arbitrage + +A process by which users seek to capitalize on a price difference across markets. Arbitrageurs typically purchase assets in one market and sell them in another market for a higher price. + +### Blockchain + +An unchangeable ledger of transactions copied among a network of independent computer systems. + +### Blocks + +Groups of information stored on a blockchain. Each block contains transactions that are grouped, verified, and signed by validators. + +### Bonded validator + +A validator in the active set participating in consensus. Bonded validators are able to earn rewards. + +### Bonding + +When a user delegates or bonds INJ to a validator to receive staking rewards. Validators never have ownership of a delegator's INJ, even when bonded. Delegating, bonding, and staking generally refer to the same process. + +### Burn + +The permanent destruction of assets. Injective burns INJ after each burn auction. + +### Burn Auction + +A weekly event in which community members can use INJ to bid for 60% of all exchange fees collected by Injective. The INJ used by the winning bidder will be burnt. + +### Commission + +The percentage of staking rewards a validator keeps before distributing the rest of the rewards to delegators. A validator’s income relies solely on this commission. Validators set their own commission rates. + +### Community pool + +A special fund designated for funding community projects. Any community member can create a governance proposal to spend the tokens in the community pool. If the proposal passes, the funds are spent as specified in the proposal. + +### Consensus + +A system used by validators or miners to agree that each block of transactions in a blockchain is correct. Injective uses the Tendermint consensus framework. Validators earn rewards for participating in consensus. Visit the [Tendermint official documentation site](https://docs.tendermint.com/) for more information. + +### Cosmos-SDK + +The open-source framework the Injective blockchain is built on. For more information, check out the [Cosmos SDK Documentation](https://docs.cosmos.network/). + +### CosmWasm + +The library utilized by Injective to power on-chain smart contracts. For more information, check out the CosmWasm Documentation. + +### dApp + +Decentralized application. An application built on a decentralized platform. + +### DDoS + +Distributed denial of service attack. When an attacker floods a network with traffic or requests in order to disrupt service. + +### DeFi + +Decentralized finance. A movement away from traditional finance and toward systems that do not require financial intermediaries. + +### Delegate + +When users or delegators add their INJ to a validator's stake in exchange for rewards. Delegated INJ is bonded to a validator. Validators never have ownership of a delegator's INJ. Delegating, bonding, and staking generally refer to the same process. + +### Delegator + +A user who delegates, bonds, or stakes INJ to a validator to earn rewards. Delegating, bonding, and staking generally refer to the same process. + +### Devnet + +Development network. A network that operates independently of the mainnet, allowing users to test new features or products without disrupting the primary network. + +### Frequent Batch Auction (FBA) + +The model used by Injective for on-chain order matching. This model uses capital more efficiently compared to Continuous Double Auction (CDA), which is utilized by most of the Centralized exchanges offering crypto derivatives and traditional financial markets. The Frequent Batch Auction model also eliminates front-running possibilities. + +### Full node + +A computer connected to the \[Injective mainnet that can validate transactions and interact with Injective. All active validators run full nodes. + +### Gas Fees + +Compute fees added on to all transactions to avoid spamming. Validators set minimum gas prices and reject transactions that have implied gas prices below this threshold. + +### Governance + +Governance is the democratic process that allows users and validators to make changes to Injective. Community members submit, vote, and implement proposals. One staked INJ is equal to one vote. + +### Governance proposal + +A written submission for a change or addition to the Injective protocol. Topics of proposals can vary from community pool spending, software changes, parameter changes, or any change pertaining to Injective. + +### IBC + +Inter-Blockchain Communication. The technology that enables different blockchains to interact with each other. IBC allows for assets to be traded and transacted across different blockchains. + +### INJ + +The native token of Injective. + +### injectived + +The command-line interface for interacting with an Injective node. + +For more information on injectived, see `injectived` guides. + +### Injective core + +The official source code for Injective. + +For more information on the Injective core, see Injective core modules. + +### Injective Hub + +Inejctive's platform for wallets, governance, staking and INJ burn auctions. + +To learn about the features of Injective Hub, visit the Injective Hub guide. + +### Inactive set + +Validators that are not in the active set. These validators do not participate in consensus and do not earn rewards. + +### Jailed + +Validators who misbehave are jailed or excluded from the active set for a period of time. + +### Maximum Extractable Value (MEV) + +The maximum value that can be extracted from block production in excess of the standard block reward and gas fees by including, excluding, and changing the order of transactions in a block. + +Injective is MEV-resistant. + +### Module + +A section of the Injective core that represents a particular function of Injective. Visit the Injective core module specifications for more information. + +### Oracle + +A 3rd party service enabling Injective to access external, real-world data. Typically, this is the price feed. + +### Pools + +Groups of tokens. Supply pools represent the total supply of tokens in a market. + +### Proof of Stake + +A validation method utilized by blockchains in which validators are chosen to propose blocks according to the number of coins they hold. + +### Quorum + +The minimum amount of votes needed to make an election viable. 33% of all staked INJ must vote to meet quorum. If quorum is not met before the voting period ends, the proposal fails, and the proposer's deposit is burned. + +### Redelegate + +When a delegator wants to transfer their bonded INJ to a different validator. Redelegating INJ is instant and does not require a 21-day unbonding period. + +### Rewards + +Revenue generated from fees given to validators and disbursed to delegators. + +### Self-delegation + +The amount of INJ a validator bonds to themselves. Also referred to as self-bond. + +### Slashing + +Punishment for validators that misbehave. Validators lose part of their stake when they get slashed. + +### Slippage + +The difference in an asset’s price between the start and end of a transaction. + +### Stake + +The amount of INJ bonded to a validator. + +### Staking + +When a user delegates or bonds their INJ to an active validator to receive rewards. Bonded INJ adds to a validator's stake. Validators provide their stakes as collateral to participate in the consensus process. Validators with larger stakes are chosen to participate more often. Validators receive staking rewards for their participation. A validator's stake can be slashed if the validator misbehaves. Validators never have ownership of a delegator's INJ, even when staking. + +For more information on staking, visit the concepts page. + +### Tendermint consensus + +The consensus framework used by Injective. First, a validator proposes a new block. Other validators vote on the block in two rounds. If a block receives a two-thirds majority or greater of yes votes in both rounds, it gets added to the blockchain. Validators get rewarded with the block's transaction fees. Proposers get rewarded extra. Each validator is chosen to propose based on their weight. Check out the [Tendermint official documentation](https://docs.tendermint.com/) for more information. + +### Mainnet + +Injective's blockchain network where all transactions take place. + +### Testnet + +A version of the mainnet used for testing. The testnet does not use real assets. You can use the testnet to get familiar with transactions and the overall network. + +### Total stake + +The total amount of INJ bonded to a delegator, including self-bonded INJ. + +### Unbonded validator + +A validator that is not in the active set and does not participate in consensus or receive rewards. Some unbonded validators may be jailed. + +### Unbonding validator + +A validator transitioning from the active set to the inactive set. An unbonding validator does not participate in consensus or earn rewards. The unbonding process takes 21 days. + +### Unbonded INJ + +INJ that can be freely traded and is not staked to a validator. + +### Unbonding + +When a delegator decides to undelegate their INJ from a validator. This process takes 21 days. No rewards accrue during this period. This action cannot be stopped once executed. + +### Unbonding INJ + +INJ that is transitioning from bonded to unbonded. INJ that is unbonding cannot be traded freely. The unbonding process takes 21 days. No rewards accrue during this period. This action cannot be stopped once executed. + +### Undelegate + +When a delegator no longer wants to have their INJ bonded to a validator. This process takes 21 days. No rewards accrue during this period. This action cannot be stopped once executed. + +### Uptime + +The amount of time a validator is active in a given timeframe. Validators with low up time may be slashed. + +### Validator + +An Injective blockchain miner that is responsible for verifying transactions on the blockchain. Validators run programs called full nodes that allow them to participate in consensus, verify blocks, participate in governance, and receive rewards. Only the active set of validators can participate in consensus. + +### Weight + +The measure of a validator's total stake. Validators with higher weights get selected more often to propose blocks. A validator's weight is also a measure of their voting power in governance. diff --git a/.gitbook/other/references.md b/.gitbook/other/references.md new file mode 100644 index 00000000..548cfe62 --- /dev/null +++ b/.gitbook/other/references.md @@ -0,0 +1,66 @@ +# References + +## Developer Resources + +### Developer Tools and Resources + +Developer tools and resources to get you building on Injective + +| **Resource** | **Description** | +| --------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ | +| Cosmovisor | Small process manager around Cosmos SDK binaries that monitors the governance module | +| [Injective 101](https://injective.notion.site/Injective-101-589dedc4c9c04531aae503dbb235d443) | One-stop-shop for Injective resources | +| Injectived | Command-line interface and node daemon that connects to Injective | +| [Injective Explorer](https://explorer.injective.network/) | Analytics platform that enables anyone to search addresses, trades, tokens, transactions, and other activities on Injective | +| Injective Local | Injective testnet and ecosystem containerized with Docker and orchestrated with a simple docker-compose file. | +| [Injective REST API](https://lcd.injective.network/swagger/) | Swagger API explorer | +| Injective TypeScript SDK | TypeScript monorepo that contains packages which can be used to interact with Injective from a Node.js or browser environments | +| [Injective Python and Go SDK](https://api.injective.exchange/) | Detailed API documentation for interacting with Injective via P | +| [Real-time Status (Mainnet)](https://status.injective.network/) | Real-time status of the endpoints and of the Injective network | +| [Real-time Status (Testnet)](https://testnet.status.injective.network) | Real-time status of the endpoints and of the Injective testnet network | + +### Ecosystem Tools and Resources + +Tools and resources developed by ecosystem developers and partners + +| **Resource** | **Description** | +| -------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | +| [Desig](https://desig.io/) | Multi-party computation (MPC) multisig solution | +| [DiscoverINJ](https://alpha.discoverinj.com/console) | UI smart contract query / execute | +| [The Graph](https://substreams.streamingfast.io/intro-injective) | Substreams for extracting data from the Injective blockchain. | +| [NewMetric](https://app.newmetric.xyz/) | Custom, high-performance RPC nodes | +| [Notifi](https://injective.com/notifications/) | Receive notifications for the latest chain updates, ecosystem developments, market insights, and more via Notifi | +| [Pyth](https://docs.pyth.network/home) | Price feed oracles and market data | +| [Starship](https://docs.cosmology.zone/starship) | Unified development environment that allows Cosmos developers to spin up a fully simulated mini-cosmos ecosystem and write end-to-end test cases | +| [SubQuery](https://github.com/subquery/cosmos-subql-starter/tree/main/Injective/injective-starter) | Open-source data indexer providing custom APIs | +| [Synternet](https://docs.synternet.com/build/data-layer/developer-portal/subscribe-to-streams) | Subscribe or publish real-time live data stream | +| [Wormhole](https://docs.wormhole.com/wormhole) | Cross-chain messaging protocol | + +### Helpful Repos + +Helpful repositories for developing on and integrating Injective + +| **Repo** | **Description** | +| ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | +| [CosmWasm101](https://github.com/InjectiveLabs/CosmWasm101) | Guide to match the CosmWasm 101 presentation for the 2023 Injective Global Hackathon | +| [cw20-adapter](https://github.com/InjectiveLabs/cw20-adapter/tree/master/contracts/cw20-adapter) | Contract that allows exchanging CW-20 tokens for Injective-chain issued native tokens (using the TokenFactory module) and vice-versa | +| [cw-injective](https://github.com/InjectiveLabs/cw-injective) | Packages that can be used to integrate CosmWasm with Injective | +| [injective-ts-examples](https://github.com/InjectiveLabs/injective-ts-examples) | Helpful repo to get started building on the injective-ts library | +| [injective-ui](https://github.com/InjectiveLabs/injective-ui) | Collection of UI packages to ease development on Injective | +| [swap-contract](https://github.com/InjectiveLabs/swap-contract) | Open source atomic token swap contract that showcasing an instant swap between two different tokens | +| [test-tube](https://github.com/injectiveLabs/test-tube) | Generic library for building testing environments for CosmWasm smart contracts | + +### Developer Support + +Find developer support on Discord or Telegram + +1. Join the [Injective Discord server](https://discord.gg/injective) and find the relevant channel. +2. Join the [Injective Developer Telegram channel](https://t.me/+8Y\_0HOFLhnRlZDU9). + +### Public Endpoints + +For a list of public endpoints see here. + +### Private / Dedicated Node Services + +For a full list of private node services see here. diff --git a/.gitbook/toolkits/README.md b/.gitbook/toolkits/README.md new file mode 100644 index 00000000..1ed9e27c --- /dev/null +++ b/.gitbook/toolkits/README.md @@ -0,0 +1,2 @@ +# Toolkits + diff --git a/.gitbook/toolkits/cosmosvisor.md b/.gitbook/toolkits/cosmosvisor.md new file mode 100644 index 00000000..b65dc9e0 --- /dev/null +++ b/.gitbook/toolkits/cosmosvisor.md @@ -0,0 +1,152 @@ +# Cosmosvisor + +`Cosmovisor` is a small process manager around Cosmos SDK binaries that monitors the governance module via `stdout` to see if there's a chain upgrade proposal coming in. If it sees a proposal that gets approved, it can be run manually or automatically to download the new code, stop the node, run the migration script, replace the node binary, and start with the new genesis file. + +### Installation + +Run: + +`go get github.com/cosmos/cosmos-sdk/cosmovisor/cmd/cosmovisor` + +### Command Line Arguments And Environment Variables + +All arguments passed to the `cosmovisor` program will be passed to the current daemon binary (as a subprocess). It will return `/dev/stdout` and `/dev/stderr` of the subprocess as its own. Because of that, it cannot accept any command line arguments, nor print anything to output (unless it terminates unexpectedly before executing a binary). + +`cosmovisor` reads its configuration from environment variables: + +* `DAEMON_HOME` is the location where upgrade binaries should be kept (e.g. `$HOME/.injectived`). +* `DAEMON_NAME` is the name of the binary itself (eg. `injectived`). +* `DAEMON_ALLOW_DOWNLOAD_BINARIES` (_optional_) if set to `true` will enable auto-downloading of new binaries (for security reasons, this is intended for full nodes rather than validators). +* `DAEMON_RESTART_AFTER_UPGRADE` (_optional_) if set to `true` it will restart the sub-process with the same command line arguments and flags (but new binary) after a successful upgrade. By default, `cosmovisor` dies afterwards and allows the supervisor to restart it if needed. Note that this will not auto-restart the child if there was an error. +* `DAEMON_LOG_BUFFER_SIZE` (_optional_) is the buffer size for cosmovisor to scan log. If not set, it will use the default [64](https://github.com/golang/go/blob/2217e89ba326875470a856cd0da79f3ec9a896b8/src/bufio/scan.go#L80). (e.g. set to `256` or `512`) It is to avoid scanning stuck in case of long line of the log. + +### Data Folder Layout + +`$DAEMON_HOME/cosmovisor` is expected to belong completely to `cosmovisor` and subprocesses that are controlled by it. The folder content is organised as follows: + +``` +. +├── current -> genesis or upgrades/ +├── genesis +│   └── bin +│   └── $DAEMON_NAME +└── upgrades + └── + └── bin + └── $DAEMON_NAME +``` + +Each version of the Cosmos SDK application is stored under either `genesis` or `upgrades/`, which holds `bin/$DAEMON_NAME` along with any other needed files such as auxiliary client programs or libraries. `current` is a symbolic link to the currently active folder (so `current/bin/$DAEMON_NAME` is the currently active binary). + +_Note: the `name` variable in `upgrades/` holds the URI-encoded name of the upgrade as specified in the upgrade module plan._ + +Please note that `$DAEMON_HOME/cosmovisor` just stores the _binaries_ and associated _program code_. The `cosmovisor` binary can be stored in any typical location (eg `/usr/local/bin`). The actual blockchain program will store it's data under their default data directory (e.g. `$HOME/.injectived`) which is independent of the `$DAEMON_HOME`. You can choose to set `$DAEMON_HOME` to the actual binary's home directory and then end up with a configuation like the following, but this is left as a choice to the system admininstrator for best directory layout: + +``` +.injectived +├── config +├── data +└── cosmovisor +``` + +### Usage + +The system administrator admin is responsible for: + +* installing the `cosmovisor` binary and configure the host's init system (e.g. `systemd`, `launchd`, etc) along with the environmental variables appropriately; +* installing the `genesis` folder manually; +* installing the `upgrades/` folders manually. + +`cosmovisor` will set the `current` link to point to `genesis` at first start (when no `current` link exists) and handles binaries switch overs at the correct points in time, so that the system administrator can prepare days in advance and relax at upgrade time. + +Note that blockchain applications that wish to support upgrades may package up a genesis `cosmovisor` tarball with this information, just as they prepare the genesis binary tarball. In fact, they may offer a tarball will all upgrades up to current point for easy download for those who wish to sync a fullnode from start. + +The `DAEMON` specific code and operations (e.g. tendermint config, the application db, syncing blocks, etc) are performed as normal. Application binaries' directives such as command-line flags and environment variables work normally. + +### Auto-Download + +Generally, the system requires that the system administrator place all relevant binaries on the disk before the upgrade happens. However, for people who don't need such control and want an easier setup (maybe they are syncing a non-validating fullnode and want to do little maintenance), there is another option. + +If you set `DAEMON_ALLOW_DOWNLOAD_BINARIES=on` then when an upgrade is triggered and no local binary can be found, the `cosmovisor` will attempt to download and install the binary itself. The plan stored in the upgrade module has an info field for arbitrary json. This info is expected to be outputed on the halt log message. There are two valid format to specify a download in such a message: + +1. Store an os/architecture -> binary URI map in the upgrade plan info field as JSON under the `"binaries"` key, eg: + +```json +{ + "binaries": { + "linux/amd64":"https://example.com/gaia.zip?checksum=sha256:aec070645fe53ee3b3763059376134f058cc337247c978add178b6ccdfb0019f" + } +} +``` + +2. Store a link to a file that contains all information in the above format (eg. if you want to specify lots of binaries, changelog info, etc without filling up the blockchain). + +e.g. `https://example.com/testnet-1001-info.json?checksum=sha256:deaaa99fda9407c4dbe1d04bd49bab0cc3c1dd76fa392cd55a9425be074af01e` + +This file contained in the link will be retrieved by [go-getter](https://github.com/hashicorp/go-getter) and the `"binaries"` field will be parsed as above. + +If there is no local binary, `DAEMON_ALLOW_DOWNLOAD_BINARIES=on`, and we can access a canonical url for the new binary, then the `cosmovisor` will download it with [go-getter](https://github.com/hashicorp/go-getter) and unpack it into the `upgrades/` folder to be run as if we installed it manually. + +Note that for this mechanism to provide strong security guarantees, all URLS should include a sha{256,512} checksum. This ensures that no false binary is run, even if someone hacks the server or hijacks the DNS. go-getter will always ensure the downloaded file matches the checksum if it is provided. go-getter will also handle unpacking archives into directories (so these download links should be a zip of all data in the `bin` directory). + +To properly create a checksum on linux, you can use the `sha256sum` utility. e.g. `sha256sum ./testdata/repo/zip_directory/autod.zip` which should return `29139e1381b8177aec909fab9a75d11381cab5adf7d3af0c05ff1c9c117743a7`. You can also use `sha512sum` if you like longer hashes, or `md5sum` if you like to use broken hashes. Make sure to set the hash algorithm properly in the checksum argument to the url. + +### Example: injectived + +The following instructions provide a demonstration of `cosmovisor`'s integration with the `injectived` application shipped along the Cosmos SDK's source code. + +First compile `injectived`: + +``` +cd injective-core/ +make build +``` + +Create a new key and setup the `injectived` node: + +``` +rm -rf $HOME/.injectived +./build/injectived keys --keyring-backend=file add validator +./build/injectived init testing --chain-id=injective-1 +./build/injectived add-genesis-account --keyring-backend=file $(./build/injectived keys --keyring-backend=file show validator -a) 1000000000inj +./build/injectived gentx --keyring-backend=file --chain-id=injective-1 validator 100000inj +./build/injectived collect-gentxs +``` + +Set the required environment variables: + +``` +export DAEMON_NAME=injectived # binary name +export DAEMON_HOME=$HOME/.injectived # daemon's home directory +``` + +Create the `cosmovisor`’s genesis folders and deploy the binary: + +``` +mkdir -p $DAEMON_HOME/cosmovisor/genesis/bin +cp ./build/injectived $DAEMON_HOME/cosmovisor/genesis/bin +``` + +For the sake of this demonstration, we would amend `voting_params.voting_period` in `.injectived/config/genesis.json` to a reduced time \~5 minutes (300s) and eventually launch `cosmosvisor`: + +``` +cosmovisor start +``` + +Submit a software upgrade proposal: + +``` +./build/injectived tx gov submit-proposal software-upgrade test1 --title="upgrade-demo" --description="upgrade" --from=validator --upgrade-height=100 --deposit=10000000inj --chain-id=injective-1 --keyring-backend=test -y +``` + +Query the proposal to ensure it was correctly broadcast and added to a block: + +``` +./build/injectived query gov proposal 1 +``` + +Submit a `Yes` vote for the upgrade proposal: + +``` +./build/injectived tx gov vote 1 yes --from=validator --keyring-backend=file --chain-id=injective-1 -y +``` diff --git a/.gitbook/toolkits/injectived/README.md b/.gitbook/toolkits/injectived/README.md new file mode 100644 index 00000000..4aee128d --- /dev/null +++ b/.gitbook/toolkits/injectived/README.md @@ -0,0 +1,3 @@ +# injectived + +`injectived` is the command-line interface and node daemon that connects to Injective. Injective core is the official Golang reference implementation of the Injective node software. diff --git a/.gitbook/toolkits/injectived/advanced.md b/.gitbook/toolkits/injectived/advanced.md new file mode 100644 index 00000000..0fb91367 --- /dev/null +++ b/.gitbook/toolkits/injectived/advanced.md @@ -0,0 +1,2 @@ +# Advanced + diff --git a/.gitbook/toolkits/injectived/install-injectived.md b/.gitbook/toolkits/injectived/install-injectived.md new file mode 100644 index 00000000..5ee38686 --- /dev/null +++ b/.gitbook/toolkits/injectived/install-injectived.md @@ -0,0 +1,2 @@ +# Install injectived + diff --git a/.gitbook/toolkits/injectived/using-injectived.md b/.gitbook/toolkits/injectived/using-injectived.md new file mode 100644 index 00000000..105e2c7a --- /dev/null +++ b/.gitbook/toolkits/injectived/using-injectived.md @@ -0,0 +1,2 @@ +# Using injectived + diff --git a/.gitbook/traders/traders.md b/.gitbook/traders/traders.md new file mode 100644 index 00000000..31e29968 --- /dev/null +++ b/.gitbook/traders/traders.md @@ -0,0 +1,2 @@ +# Traders + From 370ade71ffa9257c80214358420612dff016405d Mon Sep 17 00:00:00 2001 From: Bojan Angjelkoski Date: Mon, 21 Oct 2024 16:39:05 +0200 Subject: [PATCH 02/17] chore: add modules --- .gitbook/developers/modules.md | 2 - .gitbook/developers/modules/README.md | 22 + .gitbook/developers/modules/core/README.md | 14 + .../developers/modules/core/auth/README.md | 710 ++++ .../developers/modules/core/authz/README.md | 355 ++ .../developers/modules/core/bank/README.md | 1039 ++++++ .../developers/modules/core/circuit/README.md | 170 + .../modules/core/consensus/README.md | 7 + .../developers/modules/core/crisis/README.md | 110 + .../modules/core/distribution/README.md | 1049 ++++++ .../modules/core/evidence/README.md | 440 +++ .../modules/core/feegrant/README.md | 396 +++ .../developers/modules/core/genutil/README.md | 89 + .../developers/modules/core/gov/README.md | 2547 ++++++++++++++ .../developers/modules/core/group/README.md | 2166 ++++++++++++ .../developers/modules/core/mint/README.md | 383 +++ .../developers/modules/core/nft/README.md | 89 + .../developers/modules/core/params/README.md | 79 + .../modules/core/slashing/README.md | 813 +++++ .../developers/modules/core/staking/README.md | 3058 +++++++++++++++++ .../developers/modules/core/upgrade/README.md | 619 ++++ .../developers/modules/injective/README.md | 14 + .../modules/injective/auction/01_state.md | 60 + .../modules/injective/auction/02_messages.md | 32 + .../modules/injective/auction/03_end_block.md | 21 + .../modules/injective/auction/04_events.md | 28 + .../modules/injective/auction/05_params.md | 14 + .../modules/injective/auction/README.md | 15 + .../modules/injective/auction/img.png | Bin 0 -> 198989 bytes .../exchange/00_derivative_market_concepts.md | 244 ++ .../exchange/01_spot_market_concepts.md | 135 + .../exchange/02_binary_options_markets.md | 115 + .../injective/exchange/02_other_concepts.md | 69 + .../modules/injective/exchange/03_state.md | 594 ++++ .../exchange/04_state_transitions.md | 447 +++ .../modules/injective/exchange/05_messages.md | 443 +++ .../injective/exchange/06_proposals.md | 404 +++ .../injective/exchange/07_begin_block.md | 74 + .../injective/exchange/08_end_block.md | 78 + .../modules/injective/exchange/09_events.md | 169 + .../modules/injective/exchange/10_params.md | 35 + .../11_msg_privileged_execute_contract.md | 127 + .../modules/injective/exchange/README.md | 29 + .../modules/injective/insurance/01_state.md | 92 + .../insurance/02_state_transitions.md | 124 + .../injective/insurance/03_messages.md | 95 + .../injective/insurance/04_end_block.md | 8 + .../modules/injective/insurance/05_events.md | 39 + .../modules/injective/insurance/06_params.md | 13 + .../insurance/07_future_improvements.md | 11 + .../modules/injective/insurance/README.md | 19 + .../modules/injective/ocr/01_concepts.md | 60 + .../modules/injective/ocr/02_state.md | 218 ++ .../modules/injective/ocr/03_messages.md | 227 ++ .../modules/injective/ocr/04_proposals.md | 50 + .../modules/injective/ocr/05_begin_block.md | 13 + .../modules/injective/ocr/06_hooks.md | 17 + .../modules/injective/ocr/07_events.md | 102 + .../modules/injective/ocr/08_params.md | 14 + .../modules/injective/ocr/README.md | 21 + .../modules/injective/oracle/01_state.md | 275 ++ .../modules/injective/oracle/02_keeper.md | 120 + .../modules/injective/oracle/03_messages.md | 190 + .../modules/injective/oracle/04_proposals.md | 227 ++ .../modules/injective/oracle/05_events.md | 96 + .../oracle/06_future_improvements.md | 10 + .../modules/injective/oracle/README.md | 39 + .../modules/injective/peggy/01_definitions.md | 36 + .../modules/injective/peggy/02_workflow.md | 164 + .../modules/injective/peggy/03_state.md | 265 ++ .../modules/injective/peggy/04_messages.md | 199 ++ .../modules/injective/peggy/05_slashing.md | 91 + .../modules/injective/peggy/06_end_block.md | 51 + .../modules/injective/peggy/07_events.md | 143 + .../modules/injective/peggy/08_params.md | 112 + .../injective/peggy/09_relay_semantics.md | 53 + .../injective/peggy/10_future_improvements.md | 22 + .../modules/injective/peggy/README.md | 39 + .../injective/peggy/images/SendToCosmos.png | Bin 0 -> 302926 bytes .../injective/peggy/images/SendToEth.png | Bin 0 -> 486210 bytes .../injective/peggy/images/valsetupdate.png | Bin 0 -> 517707 bytes .../injective/permissions/01_concepts.md | 57 + .../modules/injective/permissions/02_state.md | 93 + .../permissions/03_state_transitions.md | 188 + .../modules/injective/permissions/README.md | 13 + .../injective/tokenfactory/01_concepts.md | 23 + .../injective/tokenfactory/02_state.md | 74 + .../injective/tokenfactory/03_messages.md | 145 + .../injective/tokenfactory/04_events.md | 54 + .../injective/tokenfactory/05_params.md | 19 + .../modules/injective/tokenfactory/README.md | 14 + .../modules/injective/wasmx/01_concepts.md | 53 + .../modules/injective/wasmx/02_data.md | 38 + .../modules/injective/wasmx/03_proposals.md | 130 + .../modules/injective/wasmx/04_messages.md | 90 + .../modules/injective/wasmx/05_params.md | 21 + .../modules/injective/wasmx/README.md | 17 + .gitignore | 1 + 98 files changed, 21587 insertions(+), 2 deletions(-) delete mode 100644 .gitbook/developers/modules.md create mode 100644 .gitbook/developers/modules/README.md create mode 100644 .gitbook/developers/modules/core/README.md create mode 100644 .gitbook/developers/modules/core/auth/README.md create mode 100644 .gitbook/developers/modules/core/authz/README.md create mode 100644 .gitbook/developers/modules/core/bank/README.md create mode 100644 .gitbook/developers/modules/core/circuit/README.md create mode 100644 .gitbook/developers/modules/core/consensus/README.md create mode 100644 .gitbook/developers/modules/core/crisis/README.md create mode 100644 .gitbook/developers/modules/core/distribution/README.md create mode 100644 .gitbook/developers/modules/core/evidence/README.md create mode 100644 .gitbook/developers/modules/core/feegrant/README.md create mode 100644 .gitbook/developers/modules/core/genutil/README.md create mode 100644 .gitbook/developers/modules/core/gov/README.md create mode 100644 .gitbook/developers/modules/core/group/README.md create mode 100644 .gitbook/developers/modules/core/mint/README.md create mode 100644 .gitbook/developers/modules/core/nft/README.md create mode 100644 .gitbook/developers/modules/core/params/README.md create mode 100644 .gitbook/developers/modules/core/slashing/README.md create mode 100644 .gitbook/developers/modules/core/staking/README.md create mode 100644 .gitbook/developers/modules/core/upgrade/README.md create mode 100644 .gitbook/developers/modules/injective/README.md create mode 100644 .gitbook/developers/modules/injective/auction/01_state.md create mode 100644 .gitbook/developers/modules/injective/auction/02_messages.md create mode 100644 .gitbook/developers/modules/injective/auction/03_end_block.md create mode 100644 .gitbook/developers/modules/injective/auction/04_events.md create mode 100644 .gitbook/developers/modules/injective/auction/05_params.md create mode 100644 .gitbook/developers/modules/injective/auction/README.md create mode 100644 .gitbook/developers/modules/injective/auction/img.png create mode 100644 .gitbook/developers/modules/injective/exchange/00_derivative_market_concepts.md create mode 100644 .gitbook/developers/modules/injective/exchange/01_spot_market_concepts.md create mode 100644 .gitbook/developers/modules/injective/exchange/02_binary_options_markets.md create mode 100644 .gitbook/developers/modules/injective/exchange/02_other_concepts.md create mode 100644 .gitbook/developers/modules/injective/exchange/03_state.md create mode 100644 .gitbook/developers/modules/injective/exchange/04_state_transitions.md create mode 100644 .gitbook/developers/modules/injective/exchange/05_messages.md create mode 100644 .gitbook/developers/modules/injective/exchange/06_proposals.md create mode 100644 .gitbook/developers/modules/injective/exchange/07_begin_block.md create mode 100644 .gitbook/developers/modules/injective/exchange/08_end_block.md create mode 100644 .gitbook/developers/modules/injective/exchange/09_events.md create mode 100644 .gitbook/developers/modules/injective/exchange/10_params.md create mode 100644 .gitbook/developers/modules/injective/exchange/11_msg_privileged_execute_contract.md create mode 100644 .gitbook/developers/modules/injective/exchange/README.md create mode 100644 .gitbook/developers/modules/injective/insurance/01_state.md create mode 100644 .gitbook/developers/modules/injective/insurance/02_state_transitions.md create mode 100644 .gitbook/developers/modules/injective/insurance/03_messages.md create mode 100644 .gitbook/developers/modules/injective/insurance/04_end_block.md create mode 100644 .gitbook/developers/modules/injective/insurance/05_events.md create mode 100644 .gitbook/developers/modules/injective/insurance/06_params.md create mode 100644 .gitbook/developers/modules/injective/insurance/07_future_improvements.md create mode 100644 .gitbook/developers/modules/injective/insurance/README.md create mode 100644 .gitbook/developers/modules/injective/ocr/01_concepts.md create mode 100644 .gitbook/developers/modules/injective/ocr/02_state.md create mode 100644 .gitbook/developers/modules/injective/ocr/03_messages.md create mode 100644 .gitbook/developers/modules/injective/ocr/04_proposals.md create mode 100644 .gitbook/developers/modules/injective/ocr/05_begin_block.md create mode 100644 .gitbook/developers/modules/injective/ocr/06_hooks.md create mode 100644 .gitbook/developers/modules/injective/ocr/07_events.md create mode 100644 .gitbook/developers/modules/injective/ocr/08_params.md create mode 100644 .gitbook/developers/modules/injective/ocr/README.md create mode 100644 .gitbook/developers/modules/injective/oracle/01_state.md create mode 100644 .gitbook/developers/modules/injective/oracle/02_keeper.md create mode 100644 .gitbook/developers/modules/injective/oracle/03_messages.md create mode 100644 .gitbook/developers/modules/injective/oracle/04_proposals.md create mode 100644 .gitbook/developers/modules/injective/oracle/05_events.md create mode 100644 .gitbook/developers/modules/injective/oracle/06_future_improvements.md create mode 100644 .gitbook/developers/modules/injective/oracle/README.md create mode 100644 .gitbook/developers/modules/injective/peggy/01_definitions.md create mode 100644 .gitbook/developers/modules/injective/peggy/02_workflow.md create mode 100644 .gitbook/developers/modules/injective/peggy/03_state.md create mode 100644 .gitbook/developers/modules/injective/peggy/04_messages.md create mode 100644 .gitbook/developers/modules/injective/peggy/05_slashing.md create mode 100644 .gitbook/developers/modules/injective/peggy/06_end_block.md create mode 100644 .gitbook/developers/modules/injective/peggy/07_events.md create mode 100644 .gitbook/developers/modules/injective/peggy/08_params.md create mode 100644 .gitbook/developers/modules/injective/peggy/09_relay_semantics.md create mode 100644 .gitbook/developers/modules/injective/peggy/10_future_improvements.md create mode 100644 .gitbook/developers/modules/injective/peggy/README.md create mode 100644 .gitbook/developers/modules/injective/peggy/images/SendToCosmos.png create mode 100644 .gitbook/developers/modules/injective/peggy/images/SendToEth.png create mode 100644 .gitbook/developers/modules/injective/peggy/images/valsetupdate.png create mode 100644 .gitbook/developers/modules/injective/permissions/01_concepts.md create mode 100644 .gitbook/developers/modules/injective/permissions/02_state.md create mode 100644 .gitbook/developers/modules/injective/permissions/03_state_transitions.md create mode 100644 .gitbook/developers/modules/injective/permissions/README.md create mode 100644 .gitbook/developers/modules/injective/tokenfactory/01_concepts.md create mode 100644 .gitbook/developers/modules/injective/tokenfactory/02_state.md create mode 100644 .gitbook/developers/modules/injective/tokenfactory/03_messages.md create mode 100644 .gitbook/developers/modules/injective/tokenfactory/04_events.md create mode 100644 .gitbook/developers/modules/injective/tokenfactory/05_params.md create mode 100644 .gitbook/developers/modules/injective/tokenfactory/README.md create mode 100644 .gitbook/developers/modules/injective/wasmx/01_concepts.md create mode 100644 .gitbook/developers/modules/injective/wasmx/02_data.md create mode 100644 .gitbook/developers/modules/injective/wasmx/03_proposals.md create mode 100644 .gitbook/developers/modules/injective/wasmx/04_messages.md create mode 100644 .gitbook/developers/modules/injective/wasmx/05_params.md create mode 100644 .gitbook/developers/modules/injective/wasmx/README.md diff --git a/.gitbook/developers/modules.md b/.gitbook/developers/modules.md deleted file mode 100644 index f0dc8066..00000000 --- a/.gitbook/developers/modules.md +++ /dev/null @@ -1,2 +0,0 @@ -# Modules - diff --git a/.gitbook/developers/modules/README.md b/.gitbook/developers/modules/README.md new file mode 100644 index 00000000..3a4a9ddf --- /dev/null +++ b/.gitbook/developers/modules/README.md @@ -0,0 +1,22 @@ +import { + HomepageCard as Card, + HomepageSection as Section, +} from "../../../src/components/HomepageComponents"; +import { DistributedIcon, CoreModulesIcon } from "../../../src/icons"; + +# Injective Modules + +
+ } + /> + } + /> +
diff --git a/.gitbook/developers/modules/core/README.md b/.gitbook/developers/modules/core/README.md new file mode 100644 index 00000000..b0790a93 --- /dev/null +++ b/.gitbook/developers/modules/core/README.md @@ -0,0 +1,14 @@ +import { + HomepageSection as Section +} from "../../../../src/components/HomepageComponents"; +import ComponentsGrid from "@theme/DocCardList"; + +# Core Modules + +
+ +
diff --git a/.gitbook/developers/modules/core/auth/README.md b/.gitbook/developers/modules/core/auth/README.md new file mode 100644 index 00000000..bd9f18a3 --- /dev/null +++ b/.gitbook/developers/modules/core/auth/README.md @@ -0,0 +1,710 @@ +--- +sidebar_position: 1 +--- + +# `x/auth` + +## Abstract + +This document specifies the auth module of the Cosmos SDK. + +The auth module is responsible for specifying the base transaction and account types +for an application, since the SDK itself is agnostic to these particulars. It contains +the middlewares, where all basic transaction validity checks (signatures, nonces, auxiliary fields) +are performed, and exposes the account keeper, which allows other modules to read, write, and modify accounts. + +This module is used in the Cosmos Hub. + +## Contents + +* [Concepts](#concepts) + * [Gas & Fees](#gas--fees) +* [State](#state) + * [Accounts](#accounts) +* [AnteHandlers](#antehandlers) +* [Keepers](#keepers) + * [Account Keeper](#account-keeper) +* [Parameters](#parameters) +* [Client](#client) + * [CLI](#cli) + * [gRPC](#grpc) + * [REST](#rest) + +## Concepts + +**Note:** The auth module is different from the [authz module](../authz/). + +The differences are: + +* `auth` - authentication of accounts and transactions for Cosmos SDK applications and is responsible for specifying the base transaction and account types. +* `authz` - authorization for accounts to perform actions on behalf of other accounts and enables a granter to grant authorizations to a grantee that allows the grantee to execute messages on behalf of the granter. + +### Gas & Fees + +Fees serve two purposes for an operator of the network. + +Fees limit the growth of the state stored by every full node and allow for +general purpose censorship of transactions of little economic value. Fees +are best suited as an anti-spam mechanism where validators are disinterested in +the use of the network and identities of users. + +Fees are determined by the gas limits and gas prices transactions provide, where +`fees = ceil(gasLimit * gasPrices)`. Txs incur gas costs for all state reads/writes, +signature verification, as well as costs proportional to the tx size. Operators +should set minimum gas prices when starting their nodes. They must set the unit +costs of gas in each token denomination they wish to support: + +`simd start ... --minimum-gas-prices=0.00001stake;0.05photinos` + +When adding transactions to mempool or gossipping transactions, validators check +if the transaction's gas prices, which are determined by the provided fees, meet +any of the validator's minimum gas prices. In other words, a transaction must +provide a fee of at least one denomination that matches a validator's minimum +gas price. + +CometBFT does not currently provide fee based mempool prioritization, and fee +based mempool filtering is local to node and not part of consensus. But with +minimum gas prices set, such a mechanism could be implemented by node operators. + +Because the market value for tokens will fluctuate, validators are expected to +dynamically adjust their minimum gas prices to a level that would encourage the +use of the network. + +## State + +### Accounts + +Accounts contain authentication information for a uniquely identified external user of an SDK blockchain, +including public key, address, and account number / sequence number for replay protection. For efficiency, +since account balances must also be fetched to pay fees, account structs also store the balance of a user +as `sdk.Coins`. + +Accounts are exposed externally as an interface, and stored internally as +either a base account or vesting account. Module clients wishing to add more +account types may do so. + +* `0x01 | Address -> ProtocolBuffer(account)` + +#### Account Interface + +The account interface exposes methods to read and write standard account information. +Note that all of these methods operate on an account struct conforming to the +interface - in order to write the account to the store, the account keeper will +need to be used. + +```go +// AccountI is an interface used to store coins at a given address within state. +// It presumes a notion of sequence numbers for replay protection, +// a notion of account numbers for replay protection for previously pruned accounts, +// and a pubkey for authentication purposes. +// +// Many complex conditions can be used in the concrete struct which implements AccountI. +type AccountI interface { + proto.Message + + GetAddress() sdk.AccAddress + SetAddress(sdk.AccAddress) error // errors if already set. + + GetPubKey() crypto.PubKey // can return nil. + SetPubKey(crypto.PubKey) error + + GetAccountNumber() uint64 + SetAccountNumber(uint64) error + + GetSequence() uint64 + SetSequence(uint64) error + + // Ensure that account implements stringer + String() string +} +``` + +##### Base Account + +A base account is the simplest and most common account type, which just stores all requisite +fields directly in a struct. + +```protobuf +// BaseAccount defines a base account type. It contains all the necessary fields +// for basic account functionality. Any custom account type should extend this +// type for additional functionality (e.g. vesting). +message BaseAccount { + string address = 1; + google.protobuf.Any pub_key = 2; + uint64 account_number = 3; + uint64 sequence = 4; +} +``` + +### Vesting Account + +See [Vesting](https://docs.cosmos.network/main/modules/auth/vesting/). + +## AnteHandlers + +The `x/auth` module presently has no transaction handlers of its own, but does expose the special `AnteHandler`, used for performing basic validity checks on a transaction, such that it could be thrown out of the mempool. +The `AnteHandler` can be seen as a set of decorators that check transactions within the current context, per [ADR 010](https://github.com/cosmos/cosmos-sdk/blob/main/docs/architecture/adr-010-modular-antehandler.md). + +Note that the `AnteHandler` is called on both `CheckTx` and `DeliverTx`, as CometBFT proposers presently have the ability to include in their proposed block transactions which fail `CheckTx`. + +### Decorators + +The auth module provides `AnteDecorator`s that are recursively chained together into a single `AnteHandler` in the following order: + +* `SetUpContextDecorator`: Sets the `GasMeter` in the `Context` and wraps the next `AnteHandler` with a defer clause to recover from any downstream `OutOfGas` panics in the `AnteHandler` chain to return an error with information on gas provided and gas used. + +* `RejectExtensionOptionsDecorator`: Rejects all extension options which can optionally be included in protobuf transactions. + +* `MempoolFeeDecorator`: Checks if the `tx` fee is above local mempool `minFee` parameter during `CheckTx`. + +* `ValidateBasicDecorator`: Calls `tx.ValidateBasic` and returns any non-nil error. + +* `TxTimeoutHeightDecorator`: Check for a `tx` height timeout. + +* `ValidateMemoDecorator`: Validates `tx` memo with application parameters and returns any non-nil error. + +* `ConsumeGasTxSizeDecorator`: Consumes gas proportional to the `tx` size based on application parameters. + +* `DeductFeeDecorator`: Deducts the `FeeAmount` from first signer of the `tx`. If the `x/feegrant` module is enabled and a fee granter is set, it deducts fees from the fee granter account. + +* `SetPubKeyDecorator`: Sets the pubkey from a `tx`'s signers that does not already have its corresponding pubkey saved in the state machine and in the current context. + +* `ValidateSigCountDecorator`: Validates the number of signatures in `tx` based on app-parameters. + +* `SigGasConsumeDecorator`: Consumes parameter-defined amount of gas for each signature. This requires pubkeys to be set in context for all signers as part of `SetPubKeyDecorator`. + +* `SigVerificationDecorator`: Verifies all signatures are valid. This requires pubkeys to be set in context for all signers as part of `SetPubKeyDecorator`. + +* `IncrementSequenceDecorator`: Increments the account sequence for each signer to prevent replay attacks. + +## Keepers + +The auth module only exposes one keeper, the account keeper, which can be used to read and write accounts. + +### Account Keeper + +Presently only one fully-permissioned account keeper is exposed, which has the ability to both read and write +all fields of all accounts, and to iterate over all stored accounts. + +```go +// AccountKeeperI is the interface contract that x/auth's keeper implements. +type AccountKeeperI interface { + // Return a new account with the next account number and the specified address. Does not save the new account to the store. + NewAccountWithAddress(sdk.Context, sdk.AccAddress) types.AccountI + + // Return a new account with the next account number. Does not save the new account to the store. + NewAccount(sdk.Context, types.AccountI) types.AccountI + + // Check if an account exists in the store. + HasAccount(sdk.Context, sdk.AccAddress) bool + + // Retrieve an account from the store. + GetAccount(sdk.Context, sdk.AccAddress) types.AccountI + + // Set an account in the store. + SetAccount(sdk.Context, types.AccountI) + + // Remove an account from the store. + RemoveAccount(sdk.Context, types.AccountI) + + // Iterate over all accounts, calling the provided function. Stop iteration when it returns true. + IterateAccounts(sdk.Context, func(types.AccountI) bool) + + // Fetch the public key of an account at a specified address + GetPubKey(sdk.Context, sdk.AccAddress) (crypto.PubKey, error) + + // Fetch the sequence of an account at a specified address. + GetSequence(sdk.Context, sdk.AccAddress) (uint64, error) + + // Fetch the next account number, and increment the internal counter. + NextAccountNumber(sdk.Context) uint64 +} +``` + +## Parameters + +The auth module contains the following parameters: + +| Key | Type | Example | +| ---------------------- | --------------- | ------- | +| MaxMemoCharacters | uint64 | 256 | +| TxSigLimit | uint64 | 7 | +| TxSizeCostPerByte | uint64 | 10 | +| SigVerifyCostED25519 | uint64 | 590 | +| SigVerifyCostSecp256k1 | uint64 | 1000 | + +## Client + +### CLI + +A user can query and interact with the `auth` module using the CLI. + +### Query + +The `query` commands allow users to query `auth` state. + +```bash +simd query auth --help +``` + +#### account + +The `account` command allow users to query for an account by it's address. + +```bash +simd query auth account [address] [flags] +``` + +Example: + +```bash +simd query auth account cosmos1... +``` + +Example Output: + +```bash +'@type': /cosmos.auth.v1beta1.BaseAccount +account_number: "0" +address: cosmos1zwg6tpl8aw4rawv8sgag9086lpw5hv33u5ctr2 +pub_key: + '@type': /cosmos.crypto.secp256k1.PubKey + key: ApDrE38zZdd7wLmFS9YmqO684y5DG6fjZ4rVeihF/AQD +sequence: "1" +``` + +#### accounts + +The `accounts` command allow users to query all the available accounts. + +```bash +simd query auth accounts [flags] +``` + +Example: + +```bash +simd query auth accounts +``` + +Example Output: + +```bash +accounts: +- '@type': /cosmos.auth.v1beta1.BaseAccount + account_number: "0" + address: cosmos1zwg6tpl8aw4rawv8sgag9086lpw5hv33u5ctr2 + pub_key: + '@type': /cosmos.crypto.secp256k1.PubKey + key: ApDrE38zZdd7wLmFS9YmqO684y5DG6fjZ4rVeihF/AQD + sequence: "1" +- '@type': /cosmos.auth.v1beta1.ModuleAccount + base_account: + account_number: "8" + address: cosmos1yl6hdjhmkf37639730gffanpzndzdpmhwlkfhr + pub_key: null + sequence: "0" + name: transfer + permissions: + - minter + - burner +- '@type': /cosmos.auth.v1beta1.ModuleAccount + base_account: + account_number: "4" + address: cosmos1fl48vsnmsdzcv85q5d2q4z5ajdha8yu34mf0eh + pub_key: null + sequence: "0" + name: bonded_tokens_pool + permissions: + - burner + - staking +- '@type': /cosmos.auth.v1beta1.ModuleAccount + base_account: + account_number: "5" + address: cosmos1tygms3xhhs3yv487phx3dw4a95jn7t7lpm470r + pub_key: null + sequence: "0" + name: not_bonded_tokens_pool + permissions: + - burner + - staking +- '@type': /cosmos.auth.v1beta1.ModuleAccount + base_account: + account_number: "6" + address: cosmos10d07y265gmmuvt4z0w9aw880jnsr700j6zn9kn + pub_key: null + sequence: "0" + name: gov + permissions: + - burner +- '@type': /cosmos.auth.v1beta1.ModuleAccount + base_account: + account_number: "3" + address: cosmos1jv65s3grqf6v6jl3dp4t6c9t9rk99cd88lyufl + pub_key: null + sequence: "0" + name: distribution + permissions: [] +- '@type': /cosmos.auth.v1beta1.BaseAccount + account_number: "1" + address: cosmos147k3r7v2tvwqhcmaxcfql7j8rmkrlsemxshd3j + pub_key: null + sequence: "0" +- '@type': /cosmos.auth.v1beta1.ModuleAccount + base_account: + account_number: "7" + address: cosmos1m3h30wlvsf8llruxtpukdvsy0km2kum8g38c8q + pub_key: null + sequence: "0" + name: mint + permissions: + - minter +- '@type': /cosmos.auth.v1beta1.ModuleAccount + base_account: + account_number: "2" + address: cosmos17xpfvakm2amg962yls6f84z3kell8c5lserqta + pub_key: null + sequence: "0" + name: fee_collector + permissions: [] +pagination: + next_key: null + total: "0" +``` + +#### params + +The `params` command allow users to query the current auth parameters. + +```bash +simd query auth params [flags] +``` + +Example: + +```bash +simd query auth params +``` + +Example Output: + +```bash +max_memo_characters: "256" +sig_verify_cost_ed25519: "590" +sig_verify_cost_secp256k1: "1000" +tx_sig_limit: "7" +tx_size_cost_per_byte: "10" +``` + +### Transactions + +The `auth` module supports transactions commands to help you with signing and more. Compared to other modules you can access directly the `auth` module transactions commands using the only `tx` command. + +Use directly the `--help` flag to get more information about the `tx` command. + +```bash +simd tx --help +``` + +#### `sign` + +The `sign` command allows users to sign transactions that was generated offline. + +```bash +simd tx sign tx.json --from $ALICE > tx.signed.json +``` + +The result is a signed transaction that can be broadcasted to the network thanks to the broadcast command. + +More information about the `sign` command can be found running `simd tx sign --help`. + +#### `sign-batch` + +The `sign-batch` command allows users to sign multiples offline generated transactions. +The transactions can be in one file, with one tx per line, or in multiple files. + +```bash +simd tx sign txs.json --from $ALICE > tx.signed.json +``` + +or + +```bash +simd tx sign tx1.json tx2.json tx3.json --from $ALICE > tx.signed.json +``` + +The result is multiples signed transactions. For combining the signed transactions into one transactions, use the `--append` flag. + +More information about the `sign-batch` command can be found running `simd tx sign-batch --help`. + +#### `multi-sign` + +The `multi-sign` command allows users to sign transactions that was generated offline by a multisig account. + +```bash +simd tx multisign transaction.json k1k2k3 k1sig.json k2sig.json k3sig.json +``` + +Where `k1k2k3` is the multisig account address, `k1sig.json` is the signature of the first signer, `k2sig.json` is the signature of the second signer, and `k3sig.json` is the signature of the third signer. + +##### Nested multisig transactions + +To allow transactions to be signed by nested multisigs, meaning that a participant of a multisig account can be another multisig account, the `--skip-signature-verification` flag must be used. + +```bash +# First aggregate signatures of the multisig participant +simd tx multi-sign transaction.json ms1 ms1p1sig.json ms1p2sig.json --signature-only --skip-signature-verification > ms1sig.json + +# Then use the aggregated signatures and the other signatures to sign the final transaction +simd tx multi-sign transaction.json k1ms1 k1sig.json ms1sig.json --skip-signature-verification +``` + +Where `ms1` is the nested multisig account address, `ms1p1sig.json` is the signature of the first participant of the nested multisig account, `ms1p2sig.json` is the signature of the second participant of the nested multisig account, and `ms1sig.json` is the aggregated signature of the nested multisig account. + +`k1ms1` is a multisig account comprised of an individual signer and another nested multisig account (`ms1`). `k1sig.json` is the signature of the first signer of the individual member. + +More information about the `multi-sign` command can be found running `simd tx multi-sign --help`. + +#### `multisign-batch` + +The `multisign-batch` works the same way as `sign-batch`, but for multisig accounts. +With the difference that the `multisign-batch` command requires all transactions to be in one file, and the `--append` flag does not exist. + +More information about the `multisign-batch` command can be found running `simd tx multisign-batch --help`. + +#### `validate-signatures` + +The `validate-signatures` command allows users to validate the signatures of a signed transaction. + +```bash +$ simd tx validate-signatures tx.signed.json +Signers: + 0: cosmos1l6vsqhh7rnwsyr2kyz3jjg3qduaz8gwgyl8275 + +Signatures: + 0: cosmos1l6vsqhh7rnwsyr2kyz3jjg3qduaz8gwgyl8275 [OK] +``` + +More information about the `validate-signatures` command can be found running `simd tx validate-signatures --help`. + +#### `broadcast` + +The `broadcast` command allows users to broadcast a signed transaction to the network. + +```bash +simd tx broadcast tx.signed.json +``` + +More information about the `broadcast` command can be found running `simd tx broadcast --help`. + + +### gRPC + +A user can query the `auth` module using gRPC endpoints. + +#### Account + +The `account` endpoint allow users to query for an account by it's address. + +```bash +cosmos.auth.v1beta1.Query/Account +``` + +Example: + +```bash +grpcurl -plaintext \ + -d '{"address":"cosmos1.."}' \ + localhost:9090 \ + cosmos.auth.v1beta1.Query/Account +``` + +Example Output: + +```bash +{ + "account":{ + "@type":"/cosmos.auth.v1beta1.BaseAccount", + "address":"cosmos1zwg6tpl8aw4rawv8sgag9086lpw5hv33u5ctr2", + "pubKey":{ + "@type":"/cosmos.crypto.secp256k1.PubKey", + "key":"ApDrE38zZdd7wLmFS9YmqO684y5DG6fjZ4rVeihF/AQD" + }, + "sequence":"1" + } +} +``` + +#### Accounts + +The `accounts` endpoint allow users to query all the available accounts. + +```bash +cosmos.auth.v1beta1.Query/Accounts +``` + +Example: + +```bash +grpcurl -plaintext \ + localhost:9090 \ + cosmos.auth.v1beta1.Query/Accounts +``` + +Example Output: + +```bash +{ + "accounts":[ + { + "@type":"/cosmos.auth.v1beta1.BaseAccount", + "address":"cosmos1zwg6tpl8aw4rawv8sgag9086lpw5hv33u5ctr2", + "pubKey":{ + "@type":"/cosmos.crypto.secp256k1.PubKey", + "key":"ApDrE38zZdd7wLmFS9YmqO684y5DG6fjZ4rVeihF/AQD" + }, + "sequence":"1" + }, + { + "@type":"/cosmos.auth.v1beta1.ModuleAccount", + "baseAccount":{ + "address":"cosmos1yl6hdjhmkf37639730gffanpzndzdpmhwlkfhr", + "accountNumber":"8" + }, + "name":"transfer", + "permissions":[ + "minter", + "burner" + ] + }, + { + "@type":"/cosmos.auth.v1beta1.ModuleAccount", + "baseAccount":{ + "address":"cosmos1fl48vsnmsdzcv85q5d2q4z5ajdha8yu34mf0eh", + "accountNumber":"4" + }, + "name":"bonded_tokens_pool", + "permissions":[ + "burner", + "staking" + ] + }, + { + "@type":"/cosmos.auth.v1beta1.ModuleAccount", + "baseAccount":{ + "address":"cosmos1tygms3xhhs3yv487phx3dw4a95jn7t7lpm470r", + "accountNumber":"5" + }, + "name":"not_bonded_tokens_pool", + "permissions":[ + "burner", + "staking" + ] + }, + { + "@type":"/cosmos.auth.v1beta1.ModuleAccount", + "baseAccount":{ + "address":"cosmos10d07y265gmmuvt4z0w9aw880jnsr700j6zn9kn", + "accountNumber":"6" + }, + "name":"gov", + "permissions":[ + "burner" + ] + }, + { + "@type":"/cosmos.auth.v1beta1.ModuleAccount", + "baseAccount":{ + "address":"cosmos1jv65s3grqf6v6jl3dp4t6c9t9rk99cd88lyufl", + "accountNumber":"3" + }, + "name":"distribution" + }, + { + "@type":"/cosmos.auth.v1beta1.BaseAccount", + "accountNumber":"1", + "address":"cosmos147k3r7v2tvwqhcmaxcfql7j8rmkrlsemxshd3j" + }, + { + "@type":"/cosmos.auth.v1beta1.ModuleAccount", + "baseAccount":{ + "address":"cosmos1m3h30wlvsf8llruxtpukdvsy0km2kum8g38c8q", + "accountNumber":"7" + }, + "name":"mint", + "permissions":[ + "minter" + ] + }, + { + "@type":"/cosmos.auth.v1beta1.ModuleAccount", + "baseAccount":{ + "address":"cosmos17xpfvakm2amg962yls6f84z3kell8c5lserqta", + "accountNumber":"2" + }, + "name":"fee_collector" + } + ], + "pagination":{ + "total":"9" + } +} +``` + +#### Params + +The `params` endpoint allow users to query the current auth parameters. + +```bash +cosmos.auth.v1beta1.Query/Params +``` + +Example: + +```bash +grpcurl -plaintext \ + localhost:9090 \ + cosmos.auth.v1beta1.Query/Params +``` + +Example Output: + +```bash +{ + "params": { + "maxMemoCharacters": "256", + "txSigLimit": "7", + "txSizeCostPerByte": "10", + "sigVerifyCostEd25519": "590", + "sigVerifyCostSecp256k1": "1000" + } +} +``` + +### REST + +A user can query the `auth` module using REST endpoints. + +#### Account + +The `account` endpoint allow users to query for an account by it's address. + +```bash +/cosmos/auth/v1beta1/account?address={address} +``` + +#### Accounts + +The `accounts` endpoint allow users to query all the available accounts. + +```bash +/cosmos/auth/v1beta1/accounts +``` + +#### Params + +The `params` endpoint allow users to query the current auth parameters. + +```bash +/cosmos/auth/v1beta1/params +``` diff --git a/.gitbook/developers/modules/core/authz/README.md b/.gitbook/developers/modules/core/authz/README.md new file mode 100644 index 00000000..676654a2 --- /dev/null +++ b/.gitbook/developers/modules/core/authz/README.md @@ -0,0 +1,355 @@ +--- +sidebar_position: 1 +--- + +# `x/authz` + +## Abstract + +`x/authz` is an implementation of a Cosmos SDK module, per [ADR 30](https://github.com/cosmos/cosmos-sdk/blob/main/docs/architecture/adr-030-authz-module.md), that allows +granting arbitrary privileges from one account (the granter) to another account (the grantee). Authorizations must be granted for a particular Msg service method one by one using an implementation of the `Authorization` interface. + +## Contents + +* [Concepts](#concepts) + * [Authorization and Grant](#authorization-and-grant) + * [Built-in Authorizations](#built-in-authorizations) + * [Gas](#gas) +* [State](#state) + * [Grant](#grant) + * [GrantQueue](#grantqueue) +* [Messages](#messages) + * [MsgGrant](#msggrant) + * [MsgRevoke](#msgrevoke) + * [MsgExec](#msgexec) +* [Events](#events) +* [Client](#client) + * [CLI](#cli) + * [gRPC](#grpc) + * [REST](#rest) + +## Concepts + +### Authorization and Grant + +The `x/authz` module defines interfaces and messages grant authorizations to perform actions +on behalf of one account to other accounts. The design is defined in the [ADR 030](https://github.com/cosmos/cosmos-sdk/blob/main/docs/architecture/adr-030-authz-module.md). + +A *grant* is an allowance to execute a Msg by the grantee on behalf of the granter. +Authorization is an interface that must be implemented by a concrete authorization logic to validate and execute grants. Authorizations are extensible and can be defined for any Msg service method even outside of the module where the Msg method is defined. See the `SendAuthorization` example in the next section for more details. + +**Note:** The authz module is different from the [auth (authentication)](../auth/) module that is responsible for specifying the base transaction and account types. + +```go reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/x/authz/authorizations.go#L11-L25 +``` + +### Built-in Authorizations + +The Cosmos SDK `x/authz` module comes with following authorization types: + +#### GenericAuthorization + +`GenericAuthorization` implements the `Authorization` interface that gives unrestricted permission to execute the provided Msg on behalf of granter's account. + +```protobuf reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/proto/cosmos/authz/v1beta1/authz.proto#L14-L22 +``` + +```go reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/x/authz/generic_authorization.go#L16-L29 +``` + +* `msg` stores Msg type URL. + +#### SendAuthorization + +`SendAuthorization` implements the `Authorization` interface for the `cosmos.bank.v1beta1.MsgSend` Msg. + +* It takes a (positive) `SpendLimit` that specifies the maximum amount of tokens the grantee can spend. The `SpendLimit` is updated as the tokens are spent. +* It takes an (optional) `AllowList` that specifies to which addresses a grantee can send token. + +```protobuf reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/proto/cosmos/bank/v1beta1/authz.proto#L11-L30 +``` + +```go reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/x/bank/types/send_authorization.go#L29-L62 +``` + +* `spend_limit` keeps track of how many coins are left in the authorization. +* `allow_list` specifies an optional list of addresses to whom the grantee can send tokens on behalf of the granter. + +#### StakeAuthorization + +`StakeAuthorization` implements the `Authorization` interface for messages in the [staking module](https://docs.cosmos.network/v0.44/modules/staking/). It takes an `AuthorizationType` to specify whether you want to authorise delegating, undelegating or redelegating (i.e. these have to be authorised seperately). It also takes a required `MaxTokens` that keeps track of a limit to the amount of tokens that can be delegated/undelegated/redelegated. If left empty, the amount is unlimited. Additionally, this Msg takes an `AllowList` or a `DenyList`, which allows you to select which validators you allow or deny grantees to stake with. + +```protobuf reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/proto/cosmos/staking/v1beta1/authz.proto#L11-L35 +``` + +```go reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/x/staking/types/authz.go#L15-L35 +``` + +### Gas + +In order to prevent DoS attacks, granting `StakeAuthorization`s with `x/authz` incurs gas. `StakeAuthorization` allows you to authorize another account to delegate, undelegate, or redelegate to validators. The authorizer can define a list of validators they allow or deny delegations to. The Cosmos SDK iterates over these lists and charge 10 gas for each validator in both of the lists. + +Since the state maintaining a list for granter, grantee pair with same expiration, we are iterating over the list to remove the grant (incase of any revoke of paritcular `msgType`) from the list and we are charging 20 gas per iteration. + +## State + +### Grant + +Grants are identified by combining granter address (the address bytes of the granter), grantee address (the address bytes of the grantee) and Authorization type (its type URL). Hence we only allow one grant for the (granter, grantee, Authorization) triple. + +* Grant: `0x01 | granter_address_len (1 byte) | granter_address_bytes | grantee_address_len (1 byte) | grantee_address_bytes | msgType_bytes -> ProtocolBuffer(AuthorizationGrant)` + +The grant object encapsulates an `Authorization` type and an expiration timestamp: + +```protobuf reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/proto/cosmos/authz/v1beta1/authz.proto#L24-L32 +``` + +### GrantQueue + +We are maintaining a queue for authz pruning. Whenever a grant is created, an item will be added to `GrantQueue` with a key of expiration, granter, grantee. + +In `EndBlock` (which runs for every block) we continuously check and prune the expired grants by forming a prefix key with current blocktime that passed the stored expiration in `GrantQueue`, we iterate through all the matched records from `GrantQueue` and delete them from the `GrantQueue` & `Grant`s store. + +```go reference +https://github.com/cosmos/cosmos-sdk/blob/5f4ddc6f80f9707320eec42182184207fff3833a/x/authz/keeper/keeper.go#L378-L403 +``` + +* GrantQueue: `0x02 | expiration_bytes | granter_address_len (1 byte) | granter_address_bytes | grantee_address_len (1 byte) | grantee_address_bytes -> ProtocalBuffer(GrantQueueItem)` + +The `expiration_bytes` are the expiration date in UTC with the format `"2006-01-02T15:04:05.000000000"`. + +```go reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/x/authz/keeper/keys.go#L77-L93 +``` + +The `GrantQueueItem` object contains the list of type urls between granter and grantee that expire at the time indicated in the key. + +## Messages + +In this section we describe the processing of messages for the authz module. + +### MsgGrant + +An authorization grant is created using the `MsgGrant` message. +If there is already a grant for the `(granter, grantee, Authorization)` triple, then the new grant overwrites the previous one. To update or extend an existing grant, a new grant with the same `(granter, grantee, Authorization)` triple should be created. + +```protobuf reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/proto/cosmos/authz/v1beta1/tx.proto#L35-L45 +``` + +The message handling should fail if: + +* both granter and grantee have the same address. +* provided `Expiration` time is less than current unix timestamp (but a grant will be created if no `expiration` time is provided since `expiration` is optional). +* provided `Grant.Authorization` is not implemented. +* `Authorization.MsgTypeURL()` is not defined in the router (there is no defined handler in the app router to handle that Msg types). + +### MsgRevoke + +A grant can be removed with the `MsgRevoke` message. + +```protobuf reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/proto/cosmos/authz/v1beta1/tx.proto#L69-L78 +``` + +The message handling should fail if: + +* both granter and grantee have the same address. +* provided `MsgTypeUrl` is empty. + +NOTE: The `MsgExec` message removes a grant if the grant has expired. + +### MsgExec + +When a grantee wants to execute a transaction on behalf of a granter, they must send `MsgExec`. + +```protobuf reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/proto/cosmos/authz/v1beta1/tx.proto#L52-L63 +``` + +The message handling should fail if: + +* provided `Authorization` is not implemented. +* grantee doesn't have permission to run the transaction. +* if granted authorization is expired. + +## Events + +The authz module emits proto events defined in [the Protobuf reference](https://buf.build/cosmos/cosmos-sdk/docs/main/cosmos.authz.v1beta1#cosmos.authz.v1beta1.EventGrant). + +## Client + +### CLI + +A user can query and interact with the `authz` module using the CLI. + +#### Query + +The `query` commands allow users to query `authz` state. + +```bash +simd query authz --help +``` + +##### grants + +The `grants` command allows users to query grants for a granter-grantee pair. If the message type URL is set, it selects grants only for that message type. + +```bash +simd query authz grants [granter-addr] [grantee-addr] [msg-type-url]? [flags] +``` + +Example: + +```bash +simd query authz grants cosmos1.. cosmos1.. /cosmos.bank.v1beta1.MsgSend +``` + +Example Output: + +```bash +grants: +- authorization: + '@type': /cosmos.bank.v1beta1.SendAuthorization + spend_limit: + - amount: "100" + denom: stake + expiration: "2022-01-01T00:00:00Z" +pagination: null +``` + +#### Transactions + +The `tx` commands allow users to interact with the `authz` module. + +```bash +simd tx authz --help +``` + +##### exec + +The `exec` command allows a grantee to execute a transaction on behalf of granter. + +```bash + simd tx authz exec [tx-json-file] --from [grantee] [flags] +``` + +Example: + +```bash +simd tx authz exec tx.json --from=cosmos1.. +``` + +##### grant + +The `grant` command allows a granter to grant an authorization to a grantee. + +```bash +simd tx authz grant --from [flags] +``` + +Example: + +```bash +simd tx authz grant cosmos1.. send --spend-limit=100stake --from=cosmos1.. +``` + +##### revoke + +The `revoke` command allows a granter to revoke an authorization from a grantee. + +```bash +simd tx authz revoke [grantee] [msg-type-url] --from=[granter] [flags] +``` + +Example: + +```bash +simd tx authz revoke cosmos1.. /cosmos.bank.v1beta1.MsgSend --from=cosmos1.. +``` + +### gRPC + +A user can query the `authz` module using gRPC endpoints. + +#### Grants + +The `Grants` endpoint allows users to query grants for a granter-grantee pair. If the message type URL is set, it selects grants only for that message type. + +```bash +cosmos.authz.v1beta1.Query/Grants +``` + +Example: + +```bash +grpcurl -plaintext \ + -d '{"granter":"cosmos1..","grantee":"cosmos1..","msg_type_url":"/cosmos.bank.v1beta1.MsgSend"}' \ + localhost:9090 \ + cosmos.authz.v1beta1.Query/Grants +``` + +Example Output: + +```bash +{ + "grants": [ + { + "authorization": { + "@type": "/cosmos.bank.v1beta1.SendAuthorization", + "spendLimit": [ + { + "denom":"stake", + "amount":"100" + } + ] + }, + "expiration": "2022-01-01T00:00:00Z" + } + ] +} +``` + +### REST + +A user can query the `authz` module using REST endpoints. + +```bash +/cosmos/authz/v1beta1/grants +``` + +Example: + +```bash +curl "localhost:1317/cosmos/authz/v1beta1/grants?granter=cosmos1..&grantee=cosmos1..&msg_type_url=/cosmos.bank.v1beta1.MsgSend" +``` + +Example Output: + +```bash +{ + "grants": [ + { + "authorization": { + "@type": "/cosmos.bank.v1beta1.SendAuthorization", + "spend_limit": [ + { + "denom": "stake", + "amount": "100" + } + ] + }, + "expiration": "2022-01-01T00:00:00Z" + } + ], + "pagination": null +} +``` diff --git a/.gitbook/developers/modules/core/bank/README.md b/.gitbook/developers/modules/core/bank/README.md new file mode 100644 index 00000000..a7eba4ae --- /dev/null +++ b/.gitbook/developers/modules/core/bank/README.md @@ -0,0 +1,1039 @@ +--- +sidebar_position: 1 +--- + +# `x/bank` + +## Abstract + +This document specifies the bank module of the Cosmos SDK. + +The bank module is responsible for handling multi-asset coin transfers between +accounts and tracking special-case pseudo-transfers which must work differently +with particular kinds of accounts (notably delegating/undelegating for vesting +accounts). It exposes several interfaces with varying capabilities for secure +interaction with other modules which must alter user balances. + +In addition, the bank module tracks and provides query support for the total +supply of all assets used in the application. + +This module is used in the Cosmos Hub. + +## Contents + +* [Supply](#supply) + * [Total Supply](#total-supply) +* [Module Accounts](#module-accounts) + * [Permissions](#permissions) +* [State](#state) +* [Params](#params) +* [Keepers](#keepers) +* [Messages](#messages) +* [Events](#events) + * [Message Events](#message-events) + * [Keeper Events](#keeper-events) +* [Parameters](#parameters) + * [SendEnabled](#sendenabled) + * [DefaultSendEnabled](#defaultsendenabled) +* [Client](#client) + * [CLI](#cli) + * [Query](#query) + * [Transactions](#transactions) +* [gRPC](#grpc) + +## Supply + +The `supply` functionality: + +* passively tracks the total supply of coins within a chain, +* provides a pattern for modules to hold/interact with `Coins`, and +* introduces the invariant check to verify a chain's total supply. + +### Total Supply + +The total `Supply` of the network is equal to the sum of all coins from the +account. The total supply is updated every time a `Coin` is minted (eg: as part +of the inflation mechanism) or burned (eg: due to slashing or if a governance +proposal is vetoed). + +## Module Accounts + +The supply functionality introduces a new type of `auth.Account` which can be used by +modules to allocate tokens and in special cases mint or burn tokens. At a base +level these module accounts are capable of sending/receiving tokens to and from +`auth.Account`s and other module accounts. This design replaces previous +alternative designs where, to hold tokens, modules would burn the incoming +tokens from the sender account, and then track those tokens internally. Later, +in order to send tokens, the module would need to effectively mint tokens +within a destination account. The new design removes duplicate logic between +modules to perform this accounting. + +The `ModuleAccount` interface is defined as follows: + +```go +type ModuleAccount interface { + auth.Account // same methods as the Account interface + + GetName() string // name of the module; used to obtain the address + GetPermissions() []string // permissions of module account + HasPermission(string) bool +} +``` + +> **WARNING!** +> Any module or message handler that allows either direct or indirect sending of funds must explicitly guarantee those funds cannot be sent to module accounts (unless allowed). + +The supply `Keeper` also introduces new wrapper functions for the auth `Keeper` +and the bank `Keeper` that are related to `ModuleAccount`s in order to be able +to: + +* Get and set `ModuleAccount`s by providing the `Name`. +* Send coins from and to other `ModuleAccount`s or standard `Account`s + (`BaseAccount` or `VestingAccount`) by passing only the `Name`. +* `Mint` or `Burn` coins for a `ModuleAccount` (restricted to its permissions). + +### Permissions + +Each `ModuleAccount` has a different set of permissions that provide different +object capabilities to perform certain actions. Permissions need to be +registered upon the creation of the supply `Keeper` so that every time a +`ModuleAccount` calls the allowed functions, the `Keeper` can lookup the +permissions to that specific account and perform or not perform the action. + +The available permissions are: + +* `Minter`: allows for a module to mint a specific amount of coins. +* `Burner`: allows for a module to burn a specific amount of coins. +* `Staking`: allows for a module to delegate and undelegate a specific amount of coins. + +## State + +The `x/bank` module keeps state of the following primary objects: + +1. Account balances +2. Denomination metadata +3. The total supply of all balances +4. Information on which denominations are allowed to be sent. + +In addition, the `x/bank` module keeps the following indexes to manage the +aforementioned state: + +* Supply Index: `0x0 | byte(denom) -> byte(amount)` +* Denom Metadata Index: `0x1 | byte(denom) -> ProtocolBuffer(Metadata)` +* Balances Index: `0x2 | byte(address length) | []byte(address) | []byte(balance.Denom) -> ProtocolBuffer(balance)` +* Reverse Denomination to Address Index: `0x03 | byte(denom) | 0x00 | []byte(address) -> 0` + +## Params + +The bank module stores it's params in state with the prefix of `0x05`, +it can be updated with governance or the address with authority. + +* Params: `0x05 | ProtocolBuffer(Params)` + +```protobuf reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/proto/cosmos/bank/v1beta1/bank.proto#L12-L23 +``` + +## Keepers + +The bank module provides these exported keeper interfaces that can be +passed to other modules that read or update account balances. Modules +should use the least-permissive interface that provides the functionality they +require. + +Best practices dictate careful review of `bank` module code to ensure that +permissions are limited in the way that you expect. + +### Denied Addresses + +The `x/bank` module accepts a map of addresses that are considered blocklisted +from directly and explicitly receiving funds through means such as `MsgSend` and +`MsgMultiSend` and direct API calls like `SendCoinsFromModuleToAccount`. + +Typically, these addresses are module accounts. If these addresses receive funds +outside the expected rules of the state machine, invariants are likely to be +broken and could result in a halted network. + +By providing the `x/bank` module with a blocklisted set of addresses, an error occurs for the operation if a user or client attempts to directly or indirectly send funds to a blocklisted account, for example, by using [IBC](https://ibc.cosmos.network). + +### Common Types + +#### Input + +An input of a multiparty transfer + +```protobuf +// Input models transaction input. +message Input { + string address = 1; + repeated cosmos.base.v1beta1.Coin coins = 2; +} +``` + +#### Output + +An output of a multiparty transfer. + +```protobuf +// Output models transaction outputs. +message Output { + string address = 1; + repeated cosmos.base.v1beta1.Coin coins = 2; +} +``` + +### BaseKeeper + +The base keeper provides full-permission access: the ability to arbitrary modify any account's balance and mint or burn coins. + +Restricted permission to mint per module could be achieved by using baseKeeper with `WithMintCoinsRestriction` to give specific restrictions to mint (e.g. only minting certain denom). + +```go +// Keeper defines a module interface that facilitates the transfer of coins +// between accounts. +type Keeper interface { + SendKeeper + WithMintCoinsRestriction(MintingRestrictionFn) BaseKeeper + + InitGenesis(context.Context, *types.GenesisState) + ExportGenesis(context.Context) *types.GenesisState + + GetSupply(ctx context.Context, denom string) sdk.Coin + HasSupply(ctx context.Context, denom string) bool + GetPaginatedTotalSupply(ctx context.Context, pagination *query.PageRequest) (sdk.Coins, *query.PageResponse, error) + IterateTotalSupply(ctx context.Context, cb func(sdk.Coin) bool) + GetDenomMetaData(ctx context.Context, denom string) (types.Metadata, bool) + HasDenomMetaData(ctx context.Context, denom string) bool + SetDenomMetaData(ctx context.Context, denomMetaData types.Metadata) + IterateAllDenomMetaData(ctx context.Context, cb func(types.Metadata) bool) + + SendCoinsFromModuleToAccount(ctx context.Context, senderModule string, recipientAddr sdk.AccAddress, amt sdk.Coins) error + SendCoinsFromModuleToModule(ctx context.Context, senderModule, recipientModule string, amt sdk.Coins) error + SendCoinsFromAccountToModule(ctx context.Context, senderAddr sdk.AccAddress, recipientModule string, amt sdk.Coins) error + DelegateCoinsFromAccountToModule(ctx context.Context, senderAddr sdk.AccAddress, recipientModule string, amt sdk.Coins) error + UndelegateCoinsFromModuleToAccount(ctx context.Context, senderModule string, recipientAddr sdk.AccAddress, amt sdk.Coins) error + MintCoins(ctx context.Context, moduleName string, amt sdk.Coins) error + BurnCoins(ctx context.Context, moduleName string, amt sdk.Coins) error + + DelegateCoins(ctx context.Context, delegatorAddr, moduleAccAddr sdk.AccAddress, amt sdk.Coins) error + UndelegateCoins(ctx context.Context, moduleAccAddr, delegatorAddr sdk.AccAddress, amt sdk.Coins) error + + // GetAuthority gets the address capable of executing governance proposal messages. Usually the gov module account. + GetAuthority() string + + types.QueryServer +} +``` + +### SendKeeper + +The send keeper provides access to account balances and the ability to transfer coins between +accounts. The send keeper does not alter the total supply (mint or burn coins). + +```go +// SendKeeper defines a module interface that facilitates the transfer of coins +// between accounts without the possibility of creating coins. +type SendKeeper interface { + ViewKeeper + + AppendSendRestriction(restriction SendRestrictionFn) + PrependSendRestriction(restriction SendRestrictionFn) + ClearSendRestriction() + + InputOutputCoins(ctx sdk.Context, input types.Input, outputs []types.Output) error + SendCoins(ctx sdk.Context, fromAddr, toAddr sdk.AccAddress, amt sdk.Coins) error + + GetParams(ctx context.Context) types.Params + SetParams(ctx context.Context, params types.Params) error + + IsSendEnabledDenom(ctx context.Context, denom string) bool + SetSendEnabled(ctx context.Context, denom string, value bool) + SetAllSendEnabled(ctx context.Context, sendEnableds []*types.SendEnabled) + DeleteSendEnabled(ctx context.Context, denom string) + IterateSendEnabledEntries(ctx context.Context, cb func(denom string, sendEnabled bool) (stop bool)) + GetAllSendEnabledEntries(ctx context.Context) []types.SendEnabled + + IsSendEnabledCoin(ctx context.Context, coin sdk.Coin) bool + IsSendEnabledCoins(ctx context.Context, coins ...sdk.Coin) error + + BlockedAddr(addr sdk.AccAddress) bool +} +``` + +#### Send Restrictions + +The `SendKeeper` applies a `SendRestrictionFn` before each transfer of funds. + +```golang +// A SendRestrictionFn can restrict sends and/or provide a new receiver address. +type SendRestrictionFn func(ctx context.Context, fromAddr, toAddr sdk.AccAddress, amt sdk.Coins) (newToAddr sdk.AccAddress, err error) +``` + +After the `SendKeeper` (or `BaseKeeper`) has been created, send restrictions can be added to it using the `AppendSendRestriction` or `PrependSendRestriction` functions. +Both functions compose the provided restriction with any previously provided restrictions. +`AppendSendRestriction` adds the provided restriction to be run after any previously provided send restrictions. +`PrependSendRestriction` adds the restriction to be run before any previously provided send restrictions. +The composition will short-circuit when an error is encountered. I.e. if the first one returns an error, the second is not run. + +During `SendCoins`, the send restriction is applied after coins are removed from the from address, but before adding them to the to address. +During `InputOutputCoins`, the send restriction is applied after the input coins are removed and once for each output before the funds are added. + +A send restriction function should make use of a custom value in the context to allow bypassing that specific restriction. + +Send Restrictions are not placed on `ModuleToAccount` or `ModuleToModule` transfers. This is done due to modules needing to move funds to user accounts and other module accounts. This is a design decision to allow for more flexibility in the state machine. The state machine should be able to move funds between module accounts and user accounts without restrictions. + +Secondly this limitation would limit the usage of the state machine even for itself. users would not be able to receive rewards, not be able to move funds between module accounts. In the case that a user sends funds from a user account to the community pool and then a governance proposal is used to get those tokens into the users account this would fall under the discretion of the app chain developer to what they would like to do here. We can not make strong assumptions here. +Thirdly, this issue could lead into a chain halt if a token is disabled and the token is moved in the begin/endblock. This is the last reason we see the current change and more damaging then beneficial for users. + +For example, in your module's keeper package, you'd define the send restriction function: + +```golang +var _ banktypes.SendRestrictionFn = Keeper{}.SendRestrictionFn + +func (k Keeper) SendRestrictionFn(ctx context.Context, fromAddr, toAddr sdk.AccAddress, amt sdk.Coins) (sdk.AccAddress, error) { + // Bypass if the context says to. + if mymodule.HasBypass(ctx) { + return toAddr, nil + } + + // Your custom send restriction logic goes here. + return nil, errors.New("not implemented") +} +``` + +The bank keeper should be provided to your keeper's constructor so the send restriction can be added to it: + +```golang +func NewKeeper(cdc codec.BinaryCodec, storeKey storetypes.StoreKey, bankKeeper mymodule.BankKeeper) Keeper { + rv := Keeper{/*...*/} + bankKeeper.AppendSendRestriction(rv.SendRestrictionFn) + return rv +} +``` + +Then, in the `mymodule` package, define the context helpers: + +```golang +const bypassKey = "bypass-mymodule-restriction" + +// WithBypass returns a new context that will cause the mymodule bank send restriction to be skipped. +func WithBypass(ctx context.Context) context.Context { + return sdk.UnwrapSDKContext(ctx).WithValue(bypassKey, true) +} + +// WithoutBypass returns a new context that will cause the mymodule bank send restriction to not be skipped. +func WithoutBypass(ctx context.Context) context.Context { + return sdk.UnwrapSDKContext(ctx).WithValue(bypassKey, false) +} + +// HasBypass checks the context to see if the mymodule bank send restriction should be skipped. +func HasBypass(ctx context.Context) bool { + bypassValue := ctx.Value(bypassKey) + if bypassValue == nil { + return false + } + bypass, isBool := bypassValue.(bool) + return isBool && bypass +} +``` + +Now, anywhere where you want to use `SendCoins` or `InputOutputCoins`, but you don't want your send restriction applied: + +```golang +func (k Keeper) DoThing(ctx context.Context, fromAddr, toAddr sdk.AccAddress, amt sdk.Coins) error { + return k.bankKeeper.SendCoins(mymodule.WithBypass(ctx), fromAddr, toAddr, amt) +} +``` + +### ViewKeeper + +The view keeper provides read-only access to account balances. The view keeper does not have balance alteration functionality. All balance lookups are `O(1)`. + +```go +// ViewKeeper defines a module interface that facilitates read only access to +// account balances. +type ViewKeeper interface { + ValidateBalance(ctx context.Context, addr sdk.AccAddress) error + HasBalance(ctx context.Context, addr sdk.AccAddress, amt sdk.Coin) bool + + GetAllBalances(ctx context.Context, addr sdk.AccAddress) sdk.Coins + GetAccountsBalances(ctx context.Context) []types.Balance + GetBalance(ctx context.Context, addr sdk.AccAddress, denom string) sdk.Coin + LockedCoins(ctx context.Context, addr sdk.AccAddress) sdk.Coins + SpendableCoins(ctx context.Context, addr sdk.AccAddress) sdk.Coins + SpendableCoin(ctx context.Context, addr sdk.AccAddress, denom string) sdk.Coin + + IterateAccountBalances(ctx context.Context, addr sdk.AccAddress, cb func(coin sdk.Coin) (stop bool)) + IterateAllBalances(ctx context.Context, cb func(address sdk.AccAddress, coin sdk.Coin) (stop bool)) +} +``` + +## Messages + +### MsgSend + +Send coins from one address to another. + +```protobuf reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/proto/cosmos/bank/v1beta1/tx.proto#L38-L53 +``` + +The message will fail under the following conditions: + +* The coins do not have sending enabled +* The `to` address is restricted + +### MsgMultiSend + +Send coins from one sender and to a series of different address. If any of the receiving addresses do not correspond to an existing account, a new account is created. + +```protobuf reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/proto/cosmos/bank/v1beta1/tx.proto#L58-L69 +``` + +The message will fail under the following conditions: + +* Any of the coins do not have sending enabled +* Any of the `to` addresses are restricted +* Any of the coins are locked +* The inputs and outputs do not correctly correspond to one another + +### MsgUpdateParams + +The `bank` module params can be updated through `MsgUpdateParams`, which can be done using governance proposal. The signer will always be the `gov` module account address. + +```protobuf reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/proto/cosmos/bank/v1beta1/tx.proto#L74-L88 +``` + +The message handling can fail if: + +* signer is not the gov module account address. + +### MsgSetSendEnabled + +Used with the x/gov module to set create/edit SendEnabled entries. + +```protobuf reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/proto/cosmos/bank/v1beta1/tx.proto#L96-L117 +``` + +The message will fail under the following conditions: + +* The authority is not a bech32 address. +* The authority is not x/gov module's address. +* There are multiple SendEnabled entries with the same Denom. +* One or more SendEnabled entries has an invalid Denom. + +## Events + +The bank module emits the following events: + +### Message Events + +#### MsgSend + +| Type | Attribute Key | Attribute Value | +| -------- | ------------- | ------------------ | +| transfer | recipient | {recipientAddress} | +| transfer | amount | {amount} | +| message | module | bank | +| message | action | send | +| message | sender | {senderAddress} | + +#### MsgMultiSend + +| Type | Attribute Key | Attribute Value | +| -------- | ------------- | ------------------ | +| transfer | recipient | {recipientAddress} | +| transfer | amount | {amount} | +| message | module | bank | +| message | action | multisend | +| message | sender | {senderAddress} | + +### Keeper Events + +In addition to message events, the bank keeper will produce events when the following methods are called (or any method which ends up calling them) + +#### MintCoins + +```json +{ + "type": "coinbase", + "attributes": [ + { + "key": "minter", + "value": "{{sdk.AccAddress of the module minting coins}}", + "index": true + }, + { + "key": "amount", + "value": "{{sdk.Coins being minted}}", + "index": true + } + ] +} +``` + +```json +{ + "type": "coin_received", + "attributes": [ + { + "key": "receiver", + "value": "{{sdk.AccAddress of the module minting coins}}", + "index": true + }, + { + "key": "amount", + "value": "{{sdk.Coins being received}}", + "index": true + } + ] +} +``` + +#### BurnCoins + +```json +{ + "type": "burn", + "attributes": [ + { + "key": "burner", + "value": "{{sdk.AccAddress of the module burning coins}}", + "index": true + }, + { + "key": "amount", + "value": "{{sdk.Coins being burned}}", + "index": true + } + ] +} +``` + +```json +{ + "type": "coin_spent", + "attributes": [ + { + "key": "spender", + "value": "{{sdk.AccAddress of the module burning coins}}", + "index": true + }, + { + "key": "amount", + "value": "{{sdk.Coins being burned}}", + "index": true + } + ] +} +``` + +#### addCoins + +```json +{ + "type": "coin_received", + "attributes": [ + { + "key": "receiver", + "value": "{{sdk.AccAddress of the address beneficiary of the coins}}", + "index": true + }, + { + "key": "amount", + "value": "{{sdk.Coins being received}}", + "index": true + } + ] +} +``` + +#### subUnlockedCoins/DelegateCoins + +```json +{ + "type": "coin_spent", + "attributes": [ + { + "key": "spender", + "value": "{{sdk.AccAddress of the address which is spending coins}}", + "index": true + }, + { + "key": "amount", + "value": "{{sdk.Coins being spent}}", + "index": true + } + ] +} +``` + +## Parameters + +The bank module contains the following parameters + +### SendEnabled + +The SendEnabled parameter is now deprecated and not to be use. It is replaced +with state store records. + + +### DefaultSendEnabled + +The default send enabled value controls send transfer capability for all +coin denominations unless specifically included in the array of `SendEnabled` +parameters. + +## Client + +### CLI + +A user can query and interact with the `bank` module using the CLI. + +#### Query + +The `query` commands allow users to query `bank` state. + +```shell +simd query bank --help +``` + +##### balances + +The `balances` command allows users to query account balances by address. + +```shell +simd query bank balances [address] [flags] +``` + +Example: + +```shell +simd query bank balances cosmos1.. +``` + +Example Output: + +```yml +balances: +- amount: "1000000000" + denom: stake +pagination: + next_key: null + total: "0" +``` + +##### denom-metadata + +The `denom-metadata` command allows users to query metadata for coin denominations. A user can query metadata for a single denomination using the `--denom` flag or all denominations without it. + +```shell +simd query bank denom-metadata [flags] +``` + +Example: + +```shell +simd query bank denom-metadata --denom stake +``` + +Example Output: + +```yml +metadata: + base: stake + denom_units: + - aliases: + - STAKE + denom: stake + description: native staking token of simulation app + display: stake + name: SimApp Token + symbol: STK +``` + +##### total + +The `total` command allows users to query the total supply of coins. A user can query the total supply for a single coin using the `--denom` flag or all coins without it. + +```shell +simd query bank total [flags] +``` + +Example: + +```shell +simd query bank total --denom stake +``` + +Example Output: + +```yml +amount: "10000000000" +denom: stake +``` + +##### send-enabled + +The `send-enabled` command allows users to query for all or some SendEnabled entries. + +```shell +simd query bank send-enabled [denom1 ...] [flags] +``` + +Example: + +```shell +simd query bank send-enabled +``` + +Example output: + +```yml +send_enabled: +- denom: foocoin + enabled: true +- denom: barcoin +pagination: + next-key: null + total: 2 +``` + +#### Transactions + +The `tx` commands allow users to interact with the `bank` module. + +```shell +simd tx bank --help +``` + +##### send + +The `send` command allows users to send funds from one account to another. + +```shell +simd tx bank send [from_key_or_address] [to_address] [amount] [flags] +``` + +Example: + +```shell +simd tx bank send cosmos1.. cosmos1.. 100stake +``` + +## gRPC + +A user can query the `bank` module using gRPC endpoints. + +### Balance + +The `Balance` endpoint allows users to query account balance by address for a given denomination. + +```shell +cosmos.bank.v1beta1.Query/Balance +``` + +Example: + +```shell +grpcurl -plaintext \ + -d '{"address":"cosmos1..","denom":"stake"}' \ + localhost:9090 \ + cosmos.bank.v1beta1.Query/Balance +``` + +Example Output: + +```json +{ + "balance": { + "denom": "stake", + "amount": "1000000000" + } +} +``` + +### AllBalances + +The `AllBalances` endpoint allows users to query account balance by address for all denominations. + +```shell +cosmos.bank.v1beta1.Query/AllBalances +``` + +Example: + +```shell +grpcurl -plaintext \ + -d '{"address":"cosmos1.."}' \ + localhost:9090 \ + cosmos.bank.v1beta1.Query/AllBalances +``` + +Example Output: + +```json +{ + "balances": [ + { + "denom": "stake", + "amount": "1000000000" + } + ], + "pagination": { + "total": "1" + } +} +``` + +### DenomMetadata + +The `DenomMetadata` endpoint allows users to query metadata for a single coin denomination. + +```shell +cosmos.bank.v1beta1.Query/DenomMetadata +``` + +Example: + +```shell +grpcurl -plaintext \ + -d '{"denom":"stake"}' \ + localhost:9090 \ + cosmos.bank.v1beta1.Query/DenomMetadata +``` + +Example Output: + +```json +{ + "metadata": { + "description": "native staking token of simulation app", + "denomUnits": [ + { + "denom": "stake", + "aliases": [ + "STAKE" + ] + } + ], + "base": "stake", + "display": "stake", + "name": "SimApp Token", + "symbol": "STK" + } +} +``` + +### DenomsMetadata + +The `DenomsMetadata` endpoint allows users to query metadata for all coin denominations. + +```shell +cosmos.bank.v1beta1.Query/DenomsMetadata +``` + +Example: + +```shell +grpcurl -plaintext \ + localhost:9090 \ + cosmos.bank.v1beta1.Query/DenomsMetadata +``` + +Example Output: + +```json +{ + "metadatas": [ + { + "description": "native staking token of simulation app", + "denomUnits": [ + { + "denom": "stake", + "aliases": [ + "STAKE" + ] + } + ], + "base": "stake", + "display": "stake", + "name": "SimApp Token", + "symbol": "STK" + } + ], + "pagination": { + "total": "1" + } +} +``` + +### DenomOwners + +The `DenomOwners` endpoint allows users to query metadata for a single coin denomination. + +```shell +cosmos.bank.v1beta1.Query/DenomOwners +``` + +Example: + +```shell +grpcurl -plaintext \ + -d '{"denom":"stake"}' \ + localhost:9090 \ + cosmos.bank.v1beta1.Query/DenomOwners +``` + +Example Output: + +```json +{ + "denomOwners": [ + { + "address": "cosmos1..", + "balance": { + "denom": "stake", + "amount": "5000000000" + } + }, + { + "address": "cosmos1..", + "balance": { + "denom": "stake", + "amount": "5000000000" + } + }, + ], + "pagination": { + "total": "2" + } +} +``` + +### TotalSupply + +The `TotalSupply` endpoint allows users to query the total supply of all coins. + +```shell +cosmos.bank.v1beta1.Query/TotalSupply +``` + +Example: + +```shell +grpcurl -plaintext \ + localhost:9090 \ + cosmos.bank.v1beta1.Query/TotalSupply +``` + +Example Output: + +```json +{ + "supply": [ + { + "denom": "stake", + "amount": "10000000000" + } + ], + "pagination": { + "total": "1" + } +} +``` + +### SupplyOf + +The `SupplyOf` endpoint allows users to query the total supply of a single coin. + +```shell +cosmos.bank.v1beta1.Query/SupplyOf +``` + +Example: + +```shell +grpcurl -plaintext \ + -d '{"denom":"stake"}' \ + localhost:9090 \ + cosmos.bank.v1beta1.Query/SupplyOf +``` + +Example Output: + +```json +{ + "amount": { + "denom": "stake", + "amount": "10000000000" + } +} +``` + +### Params + +The `Params` endpoint allows users to query the parameters of the `bank` module. + +```shell +cosmos.bank.v1beta1.Query/Params +``` + +Example: + +```shell +grpcurl -plaintext \ + localhost:9090 \ + cosmos.bank.v1beta1.Query/Params +``` + +Example Output: + +```json +{ + "params": { + "defaultSendEnabled": true + } +} +``` + +### SendEnabled + +The `SendEnabled` enpoints allows users to query the SendEnabled entries of the `bank` module. + +Any denominations NOT returned, use the `Params.DefaultSendEnabled` value. + +```shell +cosmos.bank.v1beta1.Query/SendEnabled +``` + +Example: + +```shell +grpcurl -plaintext \ + localhost:9090 \ + cosmos.bank.v1beta1.Query/SendEnabled +``` + +Example Output: + +```json +{ + "send_enabled": [ + { + "denom": "foocoin", + "enabled": true + }, + { + "denom": "barcoin" + } + ], + "pagination": { + "next-key": null, + "total": 2 + } +} +``` diff --git a/.gitbook/developers/modules/core/circuit/README.md b/.gitbook/developers/modules/core/circuit/README.md new file mode 100644 index 00000000..f3b75389 --- /dev/null +++ b/.gitbook/developers/modules/core/circuit/README.md @@ -0,0 +1,170 @@ +# `x/circuit` + +## Concepts + +Circuit Breaker is a module that is meant to avoid a chain needing to halt/shut down in the presence of a vulnerability, instead the module will allow specific messages or all messages to be disabled. When operating a chain, if it is app specific then a halt of the chain is less detrimental, but if there are applications built on top of the chain then halting is expensive due to the disturbance to applications. + +Circuit Breaker works with the idea that an address or set of addresses have the right to block messages from being executed and/or included in the mempool. Any address with a permission is able to reset the circuit breaker for the message. + +The transactions are checked and can be rejected at two points: + +* In `CircuitBreakerDecorator` [ante handler](https://docs.cosmos.network/main/learn/advanced/baseapp#antehandler): + +```go reference +https://github.com/cosmos/cosmos-sdk/blob/x/circuit/v0.1.0/x/circuit/ante/circuit.go#L27-L41 +``` + +* With a [message router check](https://docs.cosmos.network/main/learn/advanced/baseapp#msg-service-router): + +```go reference +https://github.com/cosmos/cosmos-sdk/blob/v0.50.1/baseapp/msg_service_router.go#L104-L115 +``` + +:::note +The `CircuitBreakerDecorator` works for most use cases, but [does not check the inner messages of a transaction](https://docs.cosmos.network/main/learn/beginner/tx-lifecycle#antehandler). This some transactions (such as `x/authz` transactions or some `x/gov` transactions) may pass the ante handler. **This does not affect the circuit breaker** as the message router check will still fail the transaction. +This tradeoff is to avoid introducing more dependencies in the `x/circuit` module. Chains can re-define the `CircuitBreakerDecorator` to check for inner messages if they wish to do so. +::: + +## State + +### Accounts + +* AccountPermissions `0x1 | account_address -> ProtocolBuffer(CircuitBreakerPermissions)` + +```go +type level int32 + +const ( + // LEVEL_NONE_UNSPECIFIED indicates that the account will have no circuit + // breaker permissions. + LEVEL_NONE_UNSPECIFIED = iota + // LEVEL_SOME_MSGS indicates that the account will have permission to + // trip or reset the circuit breaker for some Msg type URLs. If this level + // is chosen, a non-empty list of Msg type URLs must be provided in + // limit_type_urls. + LEVEL_SOME_MSGS + // LEVEL_ALL_MSGS indicates that the account can trip or reset the circuit + // breaker for Msg's of all type URLs. + LEVEL_ALL_MSGS + // LEVEL_SUPER_ADMIN indicates that the account can take all circuit breaker + // actions and can grant permissions to other accounts. + LEVEL_SUPER_ADMIN +) + +type Access struct { + level int32 + msgs []string // if full permission, msgs can be empty +} +``` + + +### Disable List + +List of type urls that are disabled. + +* DisableList `0x2 | msg_type_url -> []byte{}` + +## State Transitions + +### Authorize + +Authorize, is called by the module authority (default governance module account) or any account with `LEVEL_SUPER_ADMIN` to give permission to disable/enable messages to another account. There are three levels of permissions that can be granted. `LEVEL_SOME_MSGS` limits the number of messages that can be disabled. `LEVEL_ALL_MSGS` permits all messages to be disabled. `LEVEL_SUPER_ADMIN` allows an account to take all circuit breaker actions including authorizing and deauthorizing other accounts. + +```protobuf + // AuthorizeCircuitBreaker allows a super-admin to grant (or revoke) another + // account's circuit breaker permissions. + rpc AuthorizeCircuitBreaker(MsgAuthorizeCircuitBreaker) returns (MsgAuthorizeCircuitBreakerResponse); +``` + +### Trip + +Trip, is called by an authorized account to disable message execution for a specific msgURL. If empty, all the msgs will be disabled. + +```protobuf + // TripCircuitBreaker pauses processing of Msg's in the state machine. + rpc TripCircuitBreaker(MsgTripCircuitBreaker) returns (MsgTripCircuitBreakerResponse); +``` + +### Reset + +Reset is called by an authorized account to enable execution for a specific msgURL of previously disabled message. If empty, all the disabled messages will be enabled. + +```protobuf + // ResetCircuitBreaker resumes processing of Msg's in the state machine that + // have been been paused using TripCircuitBreaker. + rpc ResetCircuitBreaker(MsgResetCircuitBreaker) returns (MsgResetCircuitBreakerResponse); +``` + +## Messages + +### MsgAuthorizeCircuitBreaker + +```protobuf reference +https://github.com/cosmos/cosmos-sdk/blob/main/proto/cosmos/circuit/v1/tx.proto#L25-L75 +``` + +This message is expected to fail if: + +* the granter is not an account with permission level `LEVEL_SUPER_ADMIN` or the module authority + +### MsgTripCircuitBreaker + +```protobuf reference +https://github.com/cosmos/cosmos-sdk/blob/main/proto/cosmos/circuit/v1/tx.proto#L77-L93 +``` + +This message is expected to fail if: + +* if the signer does not have a permission level with the ability to disable the specified type url message + +### MsgResetCircuitBreaker + +```protobuf reference +https://github.com/cosmos/cosmos-sdk/blob/main/proto/cosmos/circuit/v1/tx.proto#L95-109 +``` + +This message is expected to fail if: + +* if the type url is not disabled + +## Events - list and describe event tags + +The circuit module emits the following events: + +### Message Events + +#### MsgAuthorizeCircuitBreaker + +| Type | Attribute Key | Attribute Value | +|---------|---------------|---------------------------| +| string | granter | {granterAddress} | +| string | grantee | {granteeAddress} | +| string | permission | {granteePermissions} | +| message | module | circuit | +| message | action | authorize_circuit_breaker | + +#### MsgTripCircuitBreaker + +| Type | Attribute Key | Attribute Value | +|----------|---------------|--------------------| +| string | authority | {authorityAddress} | +| []string | msg_urls | []string{msg_urls} | +| message | module | circuit | +| message | action | trip_circuit_breaker | + +#### ResetCircuitBreaker + +| Type | Attribute Key | Attribute Value | +|----------|---------------|--------------------| +| string | authority | {authorityAddress} | +| []string | msg_urls | []string{msg_urls} | +| message | module | circuit | +| message | action | reset_circuit_breaker | + + +## Keys - list of key prefixes used by the circuit module + +* `AccountPermissionPrefix` - `0x01` +* `DisableListPrefix` - `0x02` + +## Client - list and describe CLI commands and gRPC and REST endpoints diff --git a/.gitbook/developers/modules/core/consensus/README.md b/.gitbook/developers/modules/core/consensus/README.md new file mode 100644 index 00000000..902280a6 --- /dev/null +++ b/.gitbook/developers/modules/core/consensus/README.md @@ -0,0 +1,7 @@ +--- +sidebar_position: 1 +--- + +# `x/consensus` + +Functionality to modify CometBFT's ABCI consensus params. diff --git a/.gitbook/developers/modules/core/crisis/README.md b/.gitbook/developers/modules/core/crisis/README.md new file mode 100644 index 00000000..e4e29d0a --- /dev/null +++ b/.gitbook/developers/modules/core/crisis/README.md @@ -0,0 +1,110 @@ +--- +sidebar_position: 1 +--- + +# `x/crisis` + +## Overview + +The crisis module halts the blockchain under the circumstance that a blockchain +invariant is broken. Invariants can be registered with the application during the +application initialization process. + +## Contents + +* [State](#state) +* [Messages](#messages) +* [Events](#events) +* [Parameters](#parameters) +* [Client](#client) + * [CLI](#cli) + +## State + +### ConstantFee + +Due to the anticipated large gas cost requirement to verify an invariant (and +potential to exceed the maximum allowable block gas limit) a constant fee is +used instead of the standard gas consumption method. The constant fee is +intended to be larger than the anticipated gas cost of running the invariant +with the standard gas consumption method. + +The ConstantFee param is stored in the module params state with the prefix of `0x01`, +it can be updated with governance or the address with authority. + +* Params: `mint/params -> legacy_amino(sdk.Coin)` + +## Messages + +In this section we describe the processing of the crisis messages and the +corresponding updates to the state. + +### MsgVerifyInvariant + +Blockchain invariants can be checked using the `MsgVerifyInvariant` message. + +```protobuf reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/proto/cosmos/crisis/v1beta1/tx.proto#L26-L42 +``` + +This message is expected to fail if: + +* the sender does not have enough coins for the constant fee +* the invariant route is not registered + +This message checks the invariant provided, and if the invariant is broken it +panics, halting the blockchain. If the invariant is broken, the constant fee is +never deducted as the transaction is never committed to a block (equivalent to +being refunded). However, if the invariant is not broken, the constant fee will +not be refunded. + +## Events + +The crisis module emits the following events: + +### Handlers + +#### MsgVerifyInvariance + +| Type | Attribute Key | Attribute Value | +|-----------|---------------|------------------| +| invariant | route | {invariantRoute} | +| message | module | crisis | +| message | action | verify_invariant | +| message | sender | {senderAddress} | + +## Parameters + +The crisis module contains the following parameters: + +| Key | Type | Example | +|-------------|---------------|-----------------------------------| +| ConstantFee | object (coin) | {"denom":"uatom","amount":"1000"} | + +## Client + +### CLI + +A user can query and interact with the `crisis` module using the CLI. + +#### Transactions + +The `tx` commands allow users to interact with the `crisis` module. + +```bash +simd tx crisis --help +``` + +##### invariant-broken + +The `invariant-broken` command submits proof when an invariant was broken to halt the chain + +```bash +simd tx crisis invariant-broken [module-name] [invariant-route] [flags] +``` + +Example: + +```bash +simd tx crisis invariant-broken bank total-supply --from=[keyname or address] +``` diff --git a/.gitbook/developers/modules/core/distribution/README.md b/.gitbook/developers/modules/core/distribution/README.md new file mode 100644 index 00000000..32858fd6 --- /dev/null +++ b/.gitbook/developers/modules/core/distribution/README.md @@ -0,0 +1,1049 @@ +--- +sidebar_position: 1 +--- + +# `x/distribution` + +## Overview + +This _simple_ distribution mechanism describes a functional way to passively +distribute rewards between validators and delegators. Note that this mechanism does +not distribute funds in as precisely as active reward distribution mechanisms and +will therefore be upgraded in the future. + +The mechanism operates as follows. Collected rewards are pooled globally and +divided out passively to validators and delegators. Each validator has the +opportunity to charge commission to the delegators on the rewards collected on +behalf of the delegators. Fees are collected directly into a global reward pool +and validator proposer-reward pool. Due to the nature of passive accounting, +whenever changes to parameters which affect the rate of reward distribution +occurs, withdrawal of rewards must also occur. + +* Whenever withdrawing, one must withdraw the maximum amount they are entitled + to, leaving nothing in the pool. +* Whenever bonding, unbonding, or re-delegating tokens to an existing account, a + full withdrawal of the rewards must occur (as the rules for lazy accounting + change). +* Whenever a validator chooses to change the commission on rewards, all accumulated + commission rewards must be simultaneously withdrawn. + +The above scenarios are covered in `hooks.md`. + +The distribution mechanism outlined herein is used to lazily distribute the +following rewards between validators and associated delegators: + +* multi-token fees to be socially distributed +* inflated staked asset provisions +* validator commission on all rewards earned by their delegators stake + +Fees are pooled within a global pool. The mechanisms used allow for validators +and delegators to independently and lazily withdraw their rewards. + +## Shortcomings + +As a part of the lazy computations, each delegator holds an accumulation term +specific to each validator which is used to estimate what their approximate +fair portion of tokens held in the global fee pool is owed to them. + +```text +entitlement = delegator-accumulation / all-delegators-accumulation +``` + +Under the circumstance that there was constant and equal flow of incoming +reward tokens every block, this distribution mechanism would be equal to the +active distribution (distribute individually to all delegators each block). +However, this is unrealistic so deviations from the active distribution will +occur based on fluctuations of incoming reward tokens as well as timing of +reward withdrawal by other delegators. + +If you happen to know that incoming rewards are about to significantly increase, +you are incentivized to not withdraw until after this event, increasing the +worth of your existing _accum_. See [#2764](https://github.com/cosmos/cosmos-sdk/issues/2764) +for further details. + +## Effect on Staking + +Charging commission on Atom provisions while also allowing for Atom-provisions +to be auto-bonded (distributed directly to the validators bonded stake) is +problematic within BPoS. Fundamentally, these two mechanisms are mutually +exclusive. If both commission and auto-bonding mechanisms are simultaneously +applied to the staking-token then the distribution of staking-tokens between +any validator and its delegators will change with each block. This then +necessitates a calculation for each delegation records for each block - +which is considered computationally expensive. + +In conclusion, we can only have Atom commission and unbonded atoms +provisions or bonded atom provisions with no Atom commission, and we elect to +implement the former. Stakeholders wishing to rebond their provisions may elect +to set up a script to periodically withdraw and rebond rewards. + +## Contents + +* [Concepts](#concepts) +* [State](#state) + * [FeePool](#feepool) + * [Validator Distribution](#validator-distribution) + * [Delegation Distribution](#delegation-distribution) + * [Params](#params) +* [Begin Block](#begin-block) +* [Messages](#messages) +* [Hooks](#hooks) +* [Events](#events) +* [Parameters](#parameters) +* [Client](#client) + * [CLI](#cli) + * [gRPC](#grpc) + +## Concepts + +In Proof of Stake (PoS) blockchains, rewards gained from transaction fees are paid to validators. The fee distribution module fairly distributes the rewards to the validators' constituent delegators. + +Rewards are calculated per period. The period is updated each time a validator's delegation changes, for example, when the validator receives a new delegation. +The rewards for a single validator can then be calculated by taking the total rewards for the period before the delegation started, minus the current total rewards. +To learn more, see the [F1 Fee Distribution paper](https://github.com/cosmos/cosmos-sdk/tree/main/docs/spec/fee_distribution/f1_fee_distr.pdf). + +The commission to the validator is paid when the validator is removed or when the validator requests a withdrawal. +The commission is calculated and incremented at every `BeginBlock` operation to update accumulated fee amounts. + +The rewards to a delegator are distributed when the delegation is changed or removed, or a withdrawal is requested. +Before rewards are distributed, all slashes to the validator that occurred during the current delegation are applied. + +### Reference Counting in F1 Fee Distribution + +In F1 fee distribution, the rewards a delegator receives are calculated when their delegation is withdrawn. This calculation must read the terms of the summation of rewards divided by the share of tokens from the period which they ended when they delegated, and the final period that was created for the withdrawal. + +Additionally, as slashes change the amount of tokens a delegation will have (but we calculate this lazily, +only when a delegator un-delegates), we must calculate rewards in separate periods before / after any slashes +which occurred in between when a delegator delegated and when they withdrew their rewards. Thus slashes, like +delegations, reference the period which was ended by the slash event. + +All stored historical rewards records for periods which are no longer referenced by any delegations +or any slashes can thus be safely removed, as they will never be read (future delegations and future +slashes will always reference future periods). This is implemented by tracking a `ReferenceCount` +along with each historical reward storage entry. Each time a new object (delegation or slash) +is created which might need to reference the historical record, the reference count is incremented. +Each time one object which previously needed to reference the historical record is deleted, the reference +count is decremented. If the reference count hits zero, the historical record is deleted. + +## State + +### FeePool + +All globally tracked parameters for distribution are stored within +`FeePool`. Rewards are collected and added to the reward pool and +distributed to validators/delegators from here. + +Note that the reward pool holds decimal coins (`DecCoins`) to allow +for fractions of coins to be received from operations like inflation. +When coins are distributed from the pool they are truncated back to +`sdk.Coins` which are non-decimal. + +* FeePool: `0x00 -> ProtocolBuffer(FeePool)` + +```go +// coins with decimal +type DecCoins []DecCoin + +type DecCoin struct { + Amount math.LegacyDec + Denom string +} +``` + +```protobuf reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/proto/cosmos/distribution/v1beta1/distribution.proto#L116-L123 +``` + +### Validator Distribution + +Validator distribution information for the relevant validator is updated each time: + +1. delegation amount to a validator is updated, +2. any delegator withdraws from a validator, or +3. the validator withdraws its commission. + +* ValidatorDistInfo: `0x02 | ValOperatorAddrLen (1 byte) | ValOperatorAddr -> ProtocolBuffer(validatorDistribution)` + +```go +type ValidatorDistInfo struct { + OperatorAddress sdk.AccAddress + SelfBondRewards sdkmath.DecCoins + ValidatorCommission types.ValidatorAccumulatedCommission +} +``` + +### Delegation Distribution + +Each delegation distribution only needs to record the height at which it last +withdrew fees. Because a delegation must withdraw fees each time it's +properties change (aka bonded tokens etc.) its properties will remain constant +and the delegator's _accumulation_ factor can be calculated passively knowing +only the height of the last withdrawal and its current properties. + +* DelegationDistInfo: `0x02 | DelegatorAddrLen (1 byte) | DelegatorAddr | ValOperatorAddrLen (1 byte) | ValOperatorAddr -> ProtocolBuffer(delegatorDist)` + +```go +type DelegationDistInfo struct { + WithdrawalHeight int64 // last time this delegation withdrew rewards +} +``` + +### Params + +The distribution module stores it's params in state with the prefix of `0x09`, +it can be updated with governance or the address with authority. + +* Params: `0x09 | ProtocolBuffer(Params)` + +```protobuf reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/proto/cosmos/distribution/v1beta1/distribution.proto#L12-L42 +``` + +## Begin Block + +At each `BeginBlock`, all fees received in the previous block are transferred to +the distribution `ModuleAccount` account. When a delegator or validator +withdraws their rewards, they are taken out of the `ModuleAccount`. During begin +block, the different claims on the fees collected are updated as follows: + +* The reserve community tax is charged. +* The remainder is distributed proportionally by voting power to all bonded validators + +### The Distribution Scheme + +See [params](#params) for description of parameters. + +Let `fees` be the total fees collected in the previous block, including +inflationary rewards to the stake. All fees are collected in a specific module +account during the block. During `BeginBlock`, they are sent to the +`"distribution"` `ModuleAccount`. No other sending of tokens occurs. Instead, the +rewards each account is entitled to are stored, and withdrawals can be triggered +through the messages `FundCommunityPool`, `WithdrawValidatorCommission` and +`WithdrawDelegatorReward`. + +#### Reward to the Community Pool + +The community pool gets `community_tax * fees`, plus any remaining dust after +validators get their rewards that are always rounded down to the nearest +integer value. + +#### Reward To the Validators + +The proposer receives no extra rewards. All fees are distributed among all the +bonded validators, including the proposer, in proportion to their consensus power. + +```text +powFrac = validator power / total bonded validator power +voteMul = 1 - community_tax +``` + +All validators receive `fees * voteMul * powFrac`. + +#### Rewards to Delegators + +Each validator's rewards are distributed to its delegators. The validator also +has a self-delegation that is treated like a regular delegation in +distribution calculations. + +The validator sets a commission rate. The commission rate is flexible, but each +validator sets a maximum rate and a maximum daily increase. These maximums cannot be exceeded and protect delegators from sudden increases of validator commission rates to prevent validators from taking all of the rewards. + +The outstanding rewards that the operator is entitled to are stored in +`ValidatorAccumulatedCommission`, while the rewards the delegators are entitled +to are stored in `ValidatorCurrentRewards`. The [F1 fee distribution scheme](#concepts) is used to calculate the rewards per delegator as they +withdraw or update their delegation, and is thus not handled in `BeginBlock`. + +#### Example Distribution + +For this example distribution, the underlying consensus engine selects block proposers in +proportion to their power relative to the entire bonded power. + +All validators are equally performant at including pre-commits in their proposed +blocks. Then hold `(pre_commits included) / (total bonded validator power)` +constant so that the amortized block reward for the validator is `( validator power / total bonded power) * (1 - community tax rate)` of +the total rewards. Consequently, the reward for a single delegator is: + +```text +(delegator proportion of the validator power / validator power) * (validator power / total bonded power) + * (1 - community tax rate) * (1 - validator commission rate) += (delegator proportion of the validator power / total bonded power) * (1 - +community tax rate) * (1 - validator commission rate) +``` + +## Messages + +### MsgSetWithdrawAddress + +By default, the withdraw address is the delegator address. To change its withdraw address, a delegator must send a `MsgSetWithdrawAddress` message. +Changing the withdraw address is possible only if the parameter `WithdrawAddrEnabled` is set to `true`. + +The withdraw address cannot be any of the module accounts. These accounts are blocked from being withdraw addresses by being added to the distribution keeper's `blockedAddrs` array at initialization. + +Response: + +```protobuf reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/proto/cosmos/distribution/v1beta1/tx.proto#L49-L60 +``` + +```go +func (k Keeper) SetWithdrawAddr(ctx context.Context, delegatorAddr sdk.AccAddress, withdrawAddr sdk.AccAddress) error + if k.blockedAddrs[withdrawAddr.String()] { + fail with "`{withdrawAddr}` is not allowed to receive external funds" + } + + if !k.GetWithdrawAddrEnabled(ctx) { + fail with `ErrSetWithdrawAddrDisabled` + } + + k.SetDelegatorWithdrawAddr(ctx, delegatorAddr, withdrawAddr) +``` + +### MsgWithdrawDelegatorReward + +A delegator can withdraw its rewards. +Internally in the distribution module, this transaction simultaneously removes the previous delegation with associated rewards, the same as if the delegator simply started a new delegation of the same value. +The rewards are sent immediately from the distribution `ModuleAccount` to the withdraw address. +Any remainder (truncated decimals) are sent to the community pool. +The starting height of the delegation is set to the current validator period, and the reference count for the previous period is decremented. +The amount withdrawn is deducted from the `ValidatorOutstandingRewards` variable for the validator. + +In the F1 distribution, the total rewards are calculated per validator period, and a delegator receives a piece of those rewards in proportion to their stake in the validator. +In basic F1, the total rewards that all the delegators are entitled to between to periods is calculated the following way. +Let `R(X)` be the total accumulated rewards up to period `X` divided by the tokens staked at that time. The delegator allocation is `R(X) * delegator_stake`. +Then the rewards for all the delegators for staking between periods `A` and `B` are `(R(B) - R(A)) * total stake`. +However, these calculated rewards don't account for slashing. + +Taking the slashes into account requires iteration. +Let `F(X)` be the fraction a validator is to be slashed for a slashing event that happened at period `X`. +If the validator was slashed at periods `P1, ..., PN`, where `A < P1`, `PN < B`, the distribution module calculates the individual delegator's rewards, `T(A, B)`, as follows: + +```go +stake := initial stake +rewards := 0 +previous := A +for P in P1, ..., PN`: + rewards = (R(P) - previous) * stake + stake = stake * F(P) + previous = P +rewards = rewards + (R(B) - R(PN)) * stake +``` + +The historical rewards are calculated retroactively by playing back all the slashes and then attenuating the delegator's stake at each step. +The final calculated stake is equivalent to the actual staked coins in the delegation with a margin of error due to rounding errors. + +Response: + +```protobuf reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/proto/cosmos/distribution/v1beta1/tx.proto#L66-L77 +``` + +### WithdrawValidatorCommission + +The validator can send the WithdrawValidatorCommission message to withdraw their accumulated commission. +The commission is calculated in every block during `BeginBlock`, so no iteration is required to withdraw. +The amount withdrawn is deducted from the `ValidatorOutstandingRewards` variable for the validator. +Only integer amounts can be sent. If the accumulated awards have decimals, the amount is truncated before the withdrawal is sent, and the remainder is left to be withdrawn later. + +### FundCommunityPool + +This message sends coins directly from the sender to the community pool. + +The transaction fails if the amount cannot be transferred from the sender to the distribution module account. + +```go +func (k Keeper) FundCommunityPool(ctx context.Context, amount sdk.Coins, sender sdk.AccAddress) error { + if err := k.bankKeeper.SendCoinsFromAccountToModule(ctx, sender, types.ModuleName, amount); err != nil { + return err + } + + feePool, err := k.FeePool.Get(ctx) + if err != nil { + return err + } + + feePool.CommunityPool = feePool.CommunityPool.Add(sdk.NewDecCoinsFromCoins(amount...)...) + + if err := k.FeePool.Set(ctx, feePool); err != nil { + return err + } + + return nil +} +``` + +### Common distribution operations + +These operations take place during many different messages. + +#### Initialize delegation + +Each time a delegation is changed, the rewards are withdrawn and the delegation is reinitialized. +Initializing a delegation increments the validator period and keeps track of the starting period of the delegation. + +```go +// initialize starting info for a new delegation +func (k Keeper) initializeDelegation(ctx context.Context, val sdk.ValAddress, del sdk.AccAddress) { + // period has already been incremented - we want to store the period ended by this delegation action + previousPeriod := k.GetValidatorCurrentRewards(ctx, val).Period - 1 + + // increment reference count for the period we're going to track + k.incrementReferenceCount(ctx, val, previousPeriod) + + validator := k.stakingKeeper.Validator(ctx, val) + delegation := k.stakingKeeper.Delegation(ctx, del, val) + + // calculate delegation stake in tokens + // we don't store directly, so multiply delegation shares * (tokens per share) + // note: necessary to truncate so we don't allow withdrawing more rewards than owed + stake := validator.TokensFromSharesTruncated(delegation.GetShares()) + k.SetDelegatorStartingInfo(ctx, val, del, types.NewDelegatorStartingInfo(previousPeriod, stake, uint64(ctx.BlockHeight()))) +} +``` + +### MsgUpdateParams + +Distribution module params can be updated through `MsgUpdateParams`, which can be done using governance proposal and the signer will always be gov module account address. + +```protobuf reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/proto/cosmos/distribution/v1beta1/tx.proto#L133-L147 +``` + +The message handling can fail if: + +* signer is not the gov module account address. + +## Hooks + +Available hooks that can be called by and from this module. + +### Create or modify delegation distribution + +* triggered-by: `staking.MsgDelegate`, `staking.MsgBeginRedelegate`, `staking.MsgUndelegate` + +#### Before + +* The delegation rewards are withdrawn to the withdraw address of the delegator. + The rewards include the current period and exclude the starting period. +* The validator period is incremented. + The validator period is incremented because the validator's power and share distribution might have changed. +* The reference count for the delegator's starting period is decremented. + +#### After + +The starting height of the delegation is set to the previous period. +Because of the `Before`-hook, this period is the last period for which the delegator was rewarded. + +### Validator created + +* triggered-by: `staking.MsgCreateValidator` + +When a validator is created, the following validator variables are initialized: + +* Historical rewards +* Current accumulated rewards +* Accumulated commission +* Total outstanding rewards +* Period + +By default, all values are set to a `0`, except period, which is set to `1`. + +### Validator removed + +* triggered-by: `staking.RemoveValidator` + +Outstanding commission is sent to the validator's self-delegation withdrawal address. +Remaining delegator rewards get sent to the community fee pool. + +Note: The validator gets removed only when it has no remaining delegations. +At that time, all outstanding delegator rewards will have been withdrawn. +Any remaining rewards are dust amounts. + +### Validator is slashed + +* triggered-by: `staking.Slash` +* The current validator period reference count is incremented. + The reference count is incremented because the slash event has created a reference to it. +* The validator period is incremented. +* The slash event is stored for later use. + The slash event will be referenced when calculating delegator rewards. + +## Events + +The distribution module emits the following events: + +### BeginBlocker + +| Type | Attribute Key | Attribute Value | +|-----------------|---------------|--------------------| +| proposer_reward | validator | {validatorAddress} | +| proposer_reward | reward | {proposerReward} | +| commission | amount | {commissionAmount} | +| commission | validator | {validatorAddress} | +| rewards | amount | {rewardAmount} | +| rewards | validator | {validatorAddress} | + +### Handlers + +#### MsgSetWithdrawAddress + +| Type | Attribute Key | Attribute Value | +|----------------------|------------------|----------------------| +| set_withdraw_address | withdraw_address | {withdrawAddress} | +| message | module | distribution | +| message | action | set_withdraw_address | +| message | sender | {senderAddress} | + +#### MsgWithdrawDelegatorReward + +| Type | Attribute Key | Attribute Value | +|---------|---------------|---------------------------| +| withdraw_rewards | amount | {rewardAmount} | +| withdraw_rewards | validator | {validatorAddress} | +| message | module | distribution | +| message | action | withdraw_delegator_reward | +| message | sender | {senderAddress} | + +#### MsgWithdrawValidatorCommission + +| Type | Attribute Key | Attribute Value | +|------------|---------------|-------------------------------| +| withdraw_commission | amount | {commissionAmount} | +| message | module | distribution | +| message | action | withdraw_validator_commission | +| message | sender | {senderAddress} | + +## Parameters + +The distribution module contains the following parameters: + +| Key | Type | Example | +| ------------------- | ------------ | -------------------------- | +| communitytax | string (dec) | "0.020000000000000000" [0] | +| withdrawaddrenabled | bool | true | + +* [0] `communitytax` must be positive and cannot exceed 1.00. +* `baseproposerreward` and `bonusproposerreward` were parameters that are deprecated in v0.47 and are not used. + +:::note +The reserve pool is the pool of collected funds for use by governance taken via the `CommunityTax`. +Currently with the Cosmos SDK, tokens collected by the CommunityTax are accounted for but unspendable. +::: + +## Client + +## CLI + +A user can query and interact with the `distribution` module using the CLI. + +#### Query + +The `query` commands allow users to query `distribution` state. + +```shell +simd query distribution --help +``` + +##### commission + +The `commission` command allows users to query validator commission rewards by address. + +```shell +simd query distribution commission [address] [flags] +``` + +Example: + +```shell +simd query distribution commission cosmosvaloper1... +``` + +Example Output: + +```yml +commission: +- amount: "1000000.000000000000000000" + denom: stake +``` + +##### community-pool + +The `community-pool` command allows users to query all coin balances within the community pool. + +```shell +simd query distribution community-pool [flags] +``` + +Example: + +```shell +simd query distribution community-pool +``` + +Example Output: + +```yml +pool: +- amount: "1000000.000000000000000000" + denom: stake +``` + +##### params + +The `params` command allows users to query the parameters of the `distribution` module. + +```shell +simd query distribution params [flags] +``` + +Example: + +```shell +simd query distribution params +``` + +Example Output: + +```yml +base_proposer_reward: "0.000000000000000000" +bonus_proposer_reward: "0.000000000000000000" +community_tax: "0.020000000000000000" +withdraw_addr_enabled: true +``` + +##### rewards + +The `rewards` command allows users to query delegator rewards. Users can optionally include the validator address to query rewards earned from a specific validator. + +```shell +simd query distribution rewards [delegator-addr] [validator-addr] [flags] +``` + +Example: + +```shell +simd query distribution rewards cosmos1... +``` + +Example Output: + +```yml +rewards: +- reward: + - amount: "1000000.000000000000000000" + denom: stake + validator_address: cosmosvaloper1.. +total: +- amount: "1000000.000000000000000000" + denom: stake +``` + +##### slashes + +The `slashes` command allows users to query all slashes for a given block range. + +```shell +simd query distribution slashes [validator] [start-height] [end-height] [flags] +``` + +Example: + +```shell +simd query distribution slashes cosmosvaloper1... 1 1000 +``` + +Example Output: + +```yml +pagination: + next_key: null + total: "0" +slashes: +- validator_period: 20, + fraction: "0.009999999999999999" +``` + +##### validator-outstanding-rewards + +The `validator-outstanding-rewards` command allows users to query all outstanding (un-withdrawn) rewards for a validator and all their delegations. + +```shell +simd query distribution validator-outstanding-rewards [validator] [flags] +``` + +Example: + +```shell +simd query distribution validator-outstanding-rewards cosmosvaloper1... +``` + +Example Output: + +```yml +rewards: +- amount: "1000000.000000000000000000" + denom: stake +``` + +##### validator-distribution-info + +The `validator-distribution-info` command allows users to query validator commission and self-delegation rewards for validator. + +````shell +simd query distribution validator-distribution-info cosmosvaloper1... +``` + +Example Output: + +```yml +commission: +- amount: "100000.000000000000000000" + denom: stake +operator_address: cosmosvaloper1... +self_bond_rewards: +- amount: "100000.000000000000000000" + denom: stake +``` + +#### Transactions + +The `tx` commands allow users to interact with the `distribution` module. + +```shell +simd tx distribution --help +``` + +##### fund-community-pool + +The `fund-community-pool` command allows users to send funds to the community pool. + +```shell +simd tx distribution fund-community-pool [amount] [flags] +``` + +Example: + +```shell +simd tx distribution fund-community-pool 100stake --from cosmos1... +``` + +##### set-withdraw-addr + +The `set-withdraw-addr` command allows users to set the withdraw address for rewards associated with a delegator address. + +```shell +simd tx distribution set-withdraw-addr [withdraw-addr] [flags] +``` + +Example: + +```shell +simd tx distribution set-withdraw-addr cosmos1... --from cosmos1... +``` + +##### withdraw-all-rewards + +The `withdraw-all-rewards` command allows users to withdraw all rewards for a delegator. + +```shell +simd tx distribution withdraw-all-rewards [flags] +``` + +Example: + +```shell +simd tx distribution withdraw-all-rewards --from cosmos1... +``` + +##### withdraw-rewards + +The `withdraw-rewards` command allows users to withdraw all rewards from a given delegation address, +and optionally withdraw validator commission if the delegation address given is a validator operator and the user proves the `--commission` flag. + +```shell +simd tx distribution withdraw-rewards [validator-addr] [flags] +``` + +Example: + +```shell +simd tx distribution withdraw-rewards cosmosvaloper1... --from cosmos1... --commission +``` + +### gRPC + +A user can query the `distribution` module using gRPC endpoints. + +#### Params + +The `Params` endpoint allows users to query parameters of the `distribution` module. + +Example: + +```shell +grpcurl -plaintext \ + localhost:9090 \ + cosmos.distribution.v1beta1.Query/Params +``` + +Example Output: + +```json +{ + "params": { + "communityTax": "20000000000000000", + "baseProposerReward": "00000000000000000", + "bonusProposerReward": "00000000000000000", + "withdrawAddrEnabled": true + } +} +``` + +#### ValidatorDistributionInfo + +The `ValidatorDistributionInfo` queries validator commission and self-delegation rewards for validator. + +Example: + +```shell +grpcurl -plaintext \ + -d '{"validator_address":"cosmosvalop1..."}' \ + localhost:9090 \ + cosmos.distribution.v1beta1.Query/ValidatorDistributionInfo +``` + +Example Output: + +```json +{ + "commission": { + "commission": [ + { + "denom": "stake", + "amount": "1000000000000000" + } + ] + }, + "self_bond_rewards": [ + { + "denom": "stake", + "amount": "1000000000000000" + } + ], + "validator_address": "cosmosvalop1..." +} +``` + +#### ValidatorOutstandingRewards + +The `ValidatorOutstandingRewards` endpoint allows users to query rewards of a validator address. + +Example: + +```shell +grpcurl -plaintext \ + -d '{"validator_address":"cosmosvalop1.."}' \ + localhost:9090 \ + cosmos.distribution.v1beta1.Query/ValidatorOutstandingRewards +``` + +Example Output: + +```json +{ + "rewards": { + "rewards": [ + { + "denom": "stake", + "amount": "1000000000000000" + } + ] + } +} +``` + +#### ValidatorCommission + +The `ValidatorCommission` endpoint allows users to query accumulated commission for a validator. + +Example: + +```shell +grpcurl -plaintext \ + -d '{"validator_address":"cosmosvalop1.."}' \ + localhost:9090 \ + cosmos.distribution.v1beta1.Query/ValidatorCommission +``` + +Example Output: + +```json +{ + "commission": { + "commission": [ + { + "denom": "stake", + "amount": "1000000000000000" + } + ] + } +} +``` + +#### ValidatorSlashes + +The `ValidatorSlashes` endpoint allows users to query slash events of a validator. + +Example: + +```shell +grpcurl -plaintext \ + -d '{"validator_address":"cosmosvalop1.."}' \ + localhost:9090 \ + cosmos.distribution.v1beta1.Query/ValidatorSlashes +``` + +Example Output: + +```json +{ + "slashes": [ + { + "validator_period": "20", + "fraction": "0.009999999999999999" + } + ], + "pagination": { + "total": "1" + } +} +``` + +#### DelegationRewards + +The `DelegationRewards` endpoint allows users to query the total rewards accrued by a delegation. + +Example: + +```shell +grpcurl -plaintext \ + -d '{"delegator_address":"cosmos1...","validator_address":"cosmosvalop1..."}' \ + localhost:9090 \ + cosmos.distribution.v1beta1.Query/DelegationRewards +``` + +Example Output: + +```json +{ + "rewards": [ + { + "denom": "stake", + "amount": "1000000000000000" + } + ] +} +``` + +#### DelegationTotalRewards + +The `DelegationTotalRewards` endpoint allows users to query the total rewards accrued by each validator. + +Example: + +```shell +grpcurl -plaintext \ + -d '{"delegator_address":"cosmos1..."}' \ + localhost:9090 \ + cosmos.distribution.v1beta1.Query/DelegationTotalRewards +``` + +Example Output: + +```json +{ + "rewards": [ + { + "validatorAddress": "cosmosvaloper1...", + "reward": [ + { + "denom": "stake", + "amount": "1000000000000000" + } + ] + } + ], + "total": [ + { + "denom": "stake", + "amount": "1000000000000000" + } + ] +} +``` + +#### DelegatorValidators + +The `DelegatorValidators` endpoint allows users to query all validators for given delegator. + +Example: + +```shell +grpcurl -plaintext \ + -d '{"delegator_address":"cosmos1..."}' \ + localhost:9090 \ + cosmos.distribution.v1beta1.Query/DelegatorValidators +``` + +Example Output: + +```json +{ + "validators": ["cosmosvaloper1..."] +} +``` + +#### DelegatorWithdrawAddress + +The `DelegatorWithdrawAddress` endpoint allows users to query the withdraw address of a delegator. + +Example: + +```shell +grpcurl -plaintext \ + -d '{"delegator_address":"cosmos1..."}' \ + localhost:9090 \ + cosmos.distribution.v1beta1.Query/DelegatorWithdrawAddress +``` + +Example Output: + +```json +{ + "withdrawAddress": "cosmos1..." +} +``` + +#### CommunityPool + +The `CommunityPool` endpoint allows users to query the community pool coins. + +Example: + +```shell +grpcurl -plaintext \ + localhost:9090 \ + cosmos.distribution.v1beta1.Query/CommunityPool +``` + +Example Output: + +```json +{ + "pool": [ + { + "denom": "stake", + "amount": "1000000000000000000" + } + ] +} +``` diff --git a/.gitbook/developers/modules/core/evidence/README.md b/.gitbook/developers/modules/core/evidence/README.md new file mode 100644 index 00000000..82cd03ba --- /dev/null +++ b/.gitbook/developers/modules/core/evidence/README.md @@ -0,0 +1,440 @@ +--- +sidebar_position: 1 +--- + +# `x/evidence` + +* [Concepts](#concepts) +* [State](#state) +* [Messages](#messages) +* [Events](#events) +* [Parameters](#parameters) +* [BeginBlock](#beginblock) +* [Client](#client) + * [CLI](#cli) + * [REST](#rest) + * [gRPC](#grpc) + +## Abstract + +`x/evidence` is an implementation of a Cosmos SDK module, per [ADR 009](https://github.com/cosmos/cosmos-sdk/blob/main/docs/architecture/adr-009-evidence-module.md), +that allows for the submission and handling of arbitrary evidence of misbehavior such +as equivocation and counterfactual signing. + +The evidence module differs from standard evidence handling which typically expects the +underlying consensus engine, e.g. CometBFT, to automatically submit evidence when +it is discovered by allowing clients and foreign chains to submit more complex evidence +directly. + +All concrete evidence types must implement the `Evidence` interface contract. Submitted +`Evidence` is first routed through the evidence module's `Router` in which it attempts +to find a corresponding registered `Handler` for that specific `Evidence` type. +Each `Evidence` type must have a `Handler` registered with the evidence module's +keeper in order for it to be successfully routed and executed. + +Each corresponding handler must also fulfill the `Handler` interface contract. The +`Handler` for a given `Evidence` type can perform any arbitrary state transitions +such as slashing, jailing, and tombstoning. + +## Concepts + +### Evidence + +Any concrete type of evidence submitted to the `x/evidence` module must fulfill the +`Evidence` contract outlined below. Not all concrete types of evidence will fulfill +this contract in the same way and some data may be entirely irrelevant to certain +types of evidence. An additional `ValidatorEvidence`, which extends `Evidence`, +has also been created to define a contract for evidence against malicious validators. + +```go +// Evidence defines the contract which concrete evidence types of misbehavior +// must implement. +type Evidence interface { + proto.Message + + Route() string + String() string + Hash() []byte + ValidateBasic() error + + // Height at which the infraction occurred + GetHeight() int64 +} + +// ValidatorEvidence extends Evidence interface to define contract +// for evidence against malicious validators +type ValidatorEvidence interface { + Evidence + + // The consensus address of the malicious validator at time of infraction + GetConsensusAddress() sdk.ConsAddress + + // The total power of the malicious validator at time of infraction + GetValidatorPower() int64 + + // The total validator set power at time of infraction + GetTotalPower() int64 +} +``` + +### Registration & Handling + +The `x/evidence` module must first know about all types of evidence it is expected +to handle. This is accomplished by registering the `Route` method in the `Evidence` +contract with what is known as a `Router` (defined below). The `Router` accepts +`Evidence` and attempts to find the corresponding `Handler` for the `Evidence` +via the `Route` method. + +```go +type Router interface { + AddRoute(r string, h Handler) Router + HasRoute(r string) bool + GetRoute(path string) Handler + Seal() + Sealed() bool +} +``` + +The `Handler` (defined below) is responsible for executing the entirety of the +business logic for handling `Evidence`. This typically includes validating the +evidence, both stateless checks via `ValidateBasic` and stateful checks via any +keepers provided to the `Handler`. In addition, the `Handler` may also perform +capabilities such as slashing and jailing a validator. All `Evidence` handled +by the `Handler` should be persisted. + +```go +// Handler defines an agnostic Evidence handler. The handler is responsible +// for executing all corresponding business logic necessary for verifying the +// evidence as valid. In addition, the Handler may execute any necessary +// slashing and potential jailing. +type Handler func(context.Context, Evidence) error +``` + + +## State + +Currently the `x/evidence` module only stores valid submitted `Evidence` in state. +The evidence state is also stored and exported in the `x/evidence` module's `GenesisState`. + +```protobuf +// GenesisState defines the evidence module's genesis state. +message GenesisState { + // evidence defines all the evidence at genesis. + repeated google.protobuf.Any evidence = 1; +} + +``` + +All `Evidence` is retrieved and stored via a prefix `KVStore` using prefix `0x00` (`KeyPrefixEvidence`). + + +## Messages + +### MsgSubmitEvidence + +Evidence is submitted through a `MsgSubmitEvidence` message: + +```protobuf +// MsgSubmitEvidence represents a message that supports submitting arbitrary +// Evidence of misbehavior such as equivocation or counterfactual signing. +message MsgSubmitEvidence { + string submitter = 1; + google.protobuf.Any evidence = 2; +} +``` + +Note, the `Evidence` of a `MsgSubmitEvidence` message must have a corresponding +`Handler` registered with the `x/evidence` module's `Router` in order to be processed +and routed correctly. + +Given the `Evidence` is registered with a corresponding `Handler`, it is processed +as follows: + +```go +func SubmitEvidence(ctx Context, evidence Evidence) error { + if _, err := GetEvidence(ctx, evidence.Hash()); err == nil { + return errorsmod.Wrap(types.ErrEvidenceExists, strings.ToUpper(hex.EncodeToString(evidence.Hash()))) + } + if !router.HasRoute(evidence.Route()) { + return errorsmod.Wrap(types.ErrNoEvidenceHandlerExists, evidence.Route()) + } + + handler := router.GetRoute(evidence.Route()) + if err := handler(ctx, evidence); err != nil { + return errorsmod.Wrap(types.ErrInvalidEvidence, err.Error()) + } + + ctx.EventManager().EmitEvent( + sdk.NewEvent( + types.EventTypeSubmitEvidence, + sdk.NewAttribute(types.AttributeKeyEvidenceHash, strings.ToUpper(hex.EncodeToString(evidence.Hash()))), + ), + ) + + SetEvidence(ctx, evidence) + return nil +} +``` + +First, there must not already exist valid submitted `Evidence` of the exact same +type. Secondly, the `Evidence` is routed to the `Handler` and executed. Finally, +if there is no error in handling the `Evidence`, an event is emitted and it is persisted to state. + + +## Events + +The `x/evidence` module emits the following events: + +### Handlers + +#### MsgSubmitEvidence + +| Type | Attribute Key | Attribute Value | +| --------------- | ------------- | --------------- | +| submit_evidence | evidence_hash | {evidenceHash} | +| message | module | evidence | +| message | sender | {senderAddress} | +| message | action | submit_evidence | + + +## Parameters + +The evidence module does not contain any parameters. + + +## BeginBlock + +### Evidence Handling + +CometBFT blocks can include +[Evidence](https://github.com/cometbft/cometbft/blob/main/spec/abci/abci%2B%2B_basic_concepts.md#evidence) that indicates if a validator committed malicious behavior. The relevant information is forwarded to the application as ABCI Evidence in `abci.RequestBeginBlock` so that the validator can be punished accordingly. + +#### Equivocation + +The Cosmos SDK handles two types of evidence inside the ABCI `BeginBlock`: + +* `DuplicateVoteEvidence`, +* `LightClientAttackEvidence`. + +The evidence module handles these two evidence types the same way. First, the Cosmos SDK converts the CometBFT concrete evidence type to an SDK `Evidence` interface using `Equivocation` as the concrete type. + +```protobuf reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/proto/cosmos/evidence/v1beta1/evidence.proto#L12-L32 +``` + +For some `Equivocation` submitted in `block` to be valid, it must satisfy: + +`Evidence.Timestamp >= block.Timestamp - MaxEvidenceAge` + +Where: + +* `Evidence.Timestamp` is the timestamp in the block at height `Evidence.Height` +* `block.Timestamp` is the current block timestamp. + +If valid `Equivocation` evidence is included in a block, the validator's stake is +reduced (slashed) by `SlashFractionDoubleSign` as defined by the `x/slashing` module +of what their stake was when the infraction occurred, rather than when the evidence was discovered. +We want to "follow the stake", i.e., the stake that contributed to the infraction +should be slashed, even if it has since been redelegated or started unbonding. + +In addition, the validator is permanently jailed and tombstoned to make it impossible for that +validator to ever re-enter the validator set. + +The `Equivocation` evidence is handled as follows: + +```go reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/x/evidence/keeper/infraction.go#L26-L140 +``` + +**Note:** The slashing, jailing, and tombstoning calls are delegated through the `x/slashing` module +that emits informative events and finally delegates calls to the `x/staking` module. See documentation +on slashing and jailing in [State Transitions](../staking/README.md#state-transitions). + +## Client + +### CLI + +A user can query and interact with the `evidence` module using the CLI. + +#### Query + +The `query` commands allows users to query `evidence` state. + +```bash +simd query evidence --help +``` + +#### evidence + +The `evidence` command allows users to list all evidence or evidence by hash. + +Usage: + +```bash +simd query evidence evidence [flags] +``` + +To query evidence by hash + +Example: + +```bash +simd query evidence evidence "DF0C23E8634E480F84B9D5674A7CDC9816466DEC28A3358F73260F68D28D7660" +``` + +Example Output: + +```bash +evidence: + consensus_address: cosmosvalcons1ntk8eualewuprz0gamh8hnvcem2nrcdsgz563h + height: 11 + power: 100 + time: "2021-10-20T16:08:38.194017624Z" +``` + +To get all evidence + +Example: + +```bash +simd query evidence list +``` + +Example Output: + +```bash +evidence: + consensus_address: cosmosvalcons1ntk8eualewuprz0gamh8hnvcem2nrcdsgz563h + height: 11 + power: 100 + time: "2021-10-20T16:08:38.194017624Z" +pagination: + next_key: null + total: "1" +``` + +### REST + +A user can query the `evidence` module using REST endpoints. + +#### Evidence + +Get evidence by hash + +```bash +/cosmos/evidence/v1beta1/evidence/{hash} +``` + +Example: + +```bash +curl -X GET "http://localhost:1317/cosmos/evidence/v1beta1/evidence/DF0C23E8634E480F84B9D5674A7CDC9816466DEC28A3358F73260F68D28D7660" +``` + +Example Output: + +```bash +{ + "evidence": { + "consensus_address": "cosmosvalcons1ntk8eualewuprz0gamh8hnvcem2nrcdsgz563h", + "height": "11", + "power": "100", + "time": "2021-10-20T16:08:38.194017624Z" + } +} +``` + +#### All evidence + +Get all evidence + +```bash +/cosmos/evidence/v1beta1/evidence +``` + +Example: + +```bash +curl -X GET "http://localhost:1317/cosmos/evidence/v1beta1/evidence" +``` + +Example Output: + +```bash +{ + "evidence": [ + { + "consensus_address": "cosmosvalcons1ntk8eualewuprz0gamh8hnvcem2nrcdsgz563h", + "height": "11", + "power": "100", + "time": "2021-10-20T16:08:38.194017624Z" + } + ], + "pagination": { + "total": "1" + } +} +``` + +### gRPC + +A user can query the `evidence` module using gRPC endpoints. + +#### Evidence + +Get evidence by hash + +```bash +cosmos.evidence.v1beta1.Query/Evidence +``` + +Example: + +```bash +grpcurl -plaintext -d '{"evidence_hash":"DF0C23E8634E480F84B9D5674A7CDC9816466DEC28A3358F73260F68D28D7660"}' localhost:9090 cosmos.evidence.v1beta1.Query/Evidence +``` + +Example Output: + +```bash +{ + "evidence": { + "consensus_address": "cosmosvalcons1ntk8eualewuprz0gamh8hnvcem2nrcdsgz563h", + "height": "11", + "power": "100", + "time": "2021-10-20T16:08:38.194017624Z" + } +} +``` + +#### All evidence + +Get all evidence + +```bash +cosmos.evidence.v1beta1.Query/AllEvidence +``` + +Example: + +```bash +grpcurl -plaintext localhost:9090 cosmos.evidence.v1beta1.Query/AllEvidence +``` + +Example Output: + +```bash +{ + "evidence": [ + { + "consensus_address": "cosmosvalcons1ntk8eualewuprz0gamh8hnvcem2nrcdsgz563h", + "height": "11", + "power": "100", + "time": "2021-10-20T16:08:38.194017624Z" + } + ], + "pagination": { + "total": "1" + } +} +``` diff --git a/.gitbook/developers/modules/core/feegrant/README.md b/.gitbook/developers/modules/core/feegrant/README.md new file mode 100644 index 00000000..07524449 --- /dev/null +++ b/.gitbook/developers/modules/core/feegrant/README.md @@ -0,0 +1,396 @@ +--- +sidebar_position: 1 +--- + +# `x/feegrant` + +## Abstract + +This document specifies the fee grant module. For the full ADR, please see [Fee Grant ADR-029](https://github.com/cosmos/cosmos-sdk/blob/main/docs/architecture/adr-029-fee-grant-module.md). + +This module allows accounts to grant fee allowances and to use fees from their accounts. Grantees can execute any transaction without the need to maintain sufficient fees. + +## Contents + +* [Concepts](#concepts) +* [State](#state) + * [FeeAllowance](#feeallowance) + * [FeeAllowanceQueue](#feeallowancequeue) +* [Messages](#messages) + * [Msg/GrantAllowance](#msggrantallowance) + * [Msg/RevokeAllowance](#msgrevokeallowance) +* [Events](#events) +* [Msg Server](#msg-server) + * [MsgGrantAllowance](#msggrantallowance-1) + * [MsgRevokeAllowance](#msgrevokeallowance-1) + * [Exec fee allowance](#exec-fee-allowance) +* [Client](#client) + * [CLI](#cli) + * [gRPC](#grpc) + +## Concepts + +### Grant + +`Grant` is stored in the KVStore to record a grant with full context. Every grant will contain `granter`, `grantee` and what kind of `allowance` is granted. `granter` is an account address who is giving permission to `grantee` (the beneficiary account address) to pay for some or all of `grantee`'s transaction fees. `allowance` defines what kind of fee allowance (`BasicAllowance` or `PeriodicAllowance`, see below) is granted to `grantee`. `allowance` accepts an interface which implements `FeeAllowanceI`, encoded as `Any` type. There can be only one existing fee grant allowed for a `grantee` and `granter`, self grants are not allowed. + +```protobuf reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/proto/cosmos/feegrant/v1beta1/feegrant.proto#L83-L93 +``` + +`FeeAllowanceI` looks like: + +```go reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/x/feegrant/fees.go#L9-L32 +``` + +### Fee Allowance types + +There are two types of fee allowances present at the moment: + +* `BasicAllowance` +* `PeriodicAllowance` +* `AllowedMsgAllowance` + +### BasicAllowance + +`BasicAllowance` is permission for `grantee` to use fee from a `granter`'s account. If any of the `spend_limit` or `expiration` reaches its limit, the grant will be removed from the state. + +```protobuf reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/proto/cosmos/feegrant/v1beta1/feegrant.proto#L15-L28 +``` + +* `spend_limit` is the limit of coins that are allowed to be used from the `granter` account. If it is empty, it assumes there's no spend limit, `grantee` can use any number of available coins from `granter` account address before the expiration. + +* `expiration` specifies an optional time when this allowance expires. If the value is left empty, there is no expiry for the grant. + +* When a grant is created with empty values for `spend_limit` and `expiration`, it is still a valid grant. It won't restrict the `grantee` to use any number of coins from `granter` and it won't have any expiration. The only way to restrict the `grantee` is by revoking the grant. + +### PeriodicAllowance + +`PeriodicAllowance` is a repeating fee allowance for the mentioned period, we can mention when the grant can expire as well as when a period can reset. We can also define the maximum number of coins that can be used in a mentioned period of time. + +```protobuf reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/proto/cosmos/feegrant/v1beta1/feegrant.proto#L34-L68 +``` + +* `basic` is the instance of `BasicAllowance` which is optional for periodic fee allowance. If empty, the grant will have no `expiration` and no `spend_limit`. + +* `period` is the specific period of time, after each period passes, `period_can_spend` will be reset. + +* `period_spend_limit` specifies the maximum number of coins that can be spent in the period. + +* `period_can_spend` is the number of coins left to be spent before the period_reset time. + +* `period_reset` keeps track of when a next period reset should happen. + +### AllowedMsgAllowance + +`AllowedMsgAllowance` is a fee allowance, it can be any of `BasicFeeAllowance`, `PeriodicAllowance` but restricted only to the allowed messages mentioned by the granter. + +```protobuf reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/proto/cosmos/feegrant/v1beta1/feegrant.proto#L70-L81 +``` + +* `allowance` is either `BasicAllowance` or `PeriodicAllowance`. + +* `allowed_messages` is array of messages allowed to execute the given allowance. + +### FeeGranter flag + +`feegrant` module introduces a `FeeGranter` flag for CLI for the sake of executing transactions with fee granter. When this flag is set, `clientCtx` will append the granter account address for transactions generated through CLI. + +```go reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/client/cmd.go#L249-L260 +``` + +```go reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/client/tx/tx.go#L109-L109 +``` + +```go reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/x/auth/tx/builder.go#L275-L284 +``` + +```protobuf reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/proto/cosmos/tx/v1beta1/tx.proto#L203-L224 +``` + +Example cmd: + +```go +./simd tx gov submit-proposal --title="Test Proposal" --description="My awesome proposal" --type="Text" --from validator-key --fee-granter=cosmos1xh44hxt7spr67hqaa7nyx5gnutrz5fraw6grxn --chain-id=testnet --fees="10stake" +``` + +### Granted Fee Deductions + +Fees are deducted from grants in the `x/auth` ante handler. To learn more about how ante handlers work, read the [Auth Module AnteHandlers Guide](../auth/README.md#antehandlers). + +### Gas + +In order to prevent DoS attacks, using a filtered `x/feegrant` incurs gas. The SDK must assure that the `grantee`'s transactions all conform to the filter set by the `granter`. The SDK does this by iterating over the allowed messages in the filter and charging 10 gas per filtered message. The SDK will then iterate over the messages being sent by the `grantee` to ensure the messages adhere to the filter, also charging 10 gas per message. The SDK will stop iterating and fail the transaction if it finds a message that does not conform to the filter. + +**WARNING**: The gas is charged against the granted allowance. Ensure your messages conform to the filter, if any, before sending transactions using your allowance. + +### Pruning + +A queue in the state maintained with the prefix of expiration of the grants and checks them on EndBlock with the current block time for every block to prune. + +## State + +### FeeAllowance + +Fee Allowances are identified by combining `Grantee` (the account address of fee allowance grantee) with the `Granter` (the account address of fee allowance granter). + +Fee allowance grants are stored in the state as follows: + +* Grant: `0x00 | grantee_addr_len (1 byte) | grantee_addr_bytes | granter_addr_len (1 byte) | granter_addr_bytes -> ProtocolBuffer(Grant)` + +```go reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/x/feegrant/feegrant.pb.go#L222-L230 +``` + +### FeeAllowanceQueue + +Fee Allowances queue items are identified by combining the `FeeAllowancePrefixQueue` (i.e., 0x01), `expiration`, `grantee` (the account address of fee allowance grantee), `granter` (the account address of fee allowance granter). Endblocker checks `FeeAllowanceQueue` state for the expired grants and prunes them from `FeeAllowance` if there are any found. + +Fee allowance queue keys are stored in the state as follows: + +* Grant: `0x01 | expiration_bytes | grantee_addr_len (1 byte) | grantee_addr_bytes | granter_addr_len (1 byte) | granter_addr_bytes -> EmptyBytes` + +## Messages + +### Msg/GrantAllowance + +A fee allowance grant will be created with the `MsgGrantAllowance` message. + +```protobuf reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/proto/cosmos/feegrant/v1beta1/tx.proto#L25-L39 +``` + +### Msg/RevokeAllowance + +An allowed grant fee allowance can be removed with the `MsgRevokeAllowance` message. + +```protobuf reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/proto/cosmos/feegrant/v1beta1/tx.proto#L41-L54 +``` + +## Events + +The feegrant module emits the following events: + +## Msg Server + +### MsgGrantAllowance + +| Type | Attribute Key | Attribute Value | +| ------- | ------------- | ---------------- | +| message | action | set_feegrant | +| message | granter | {granterAddress} | +| message | grantee | {granteeAddress} | + +### MsgRevokeAllowance + +| Type | Attribute Key | Attribute Value | +| ------- | ------------- | ---------------- | +| message | action | revoke_feegrant | +| message | granter | {granterAddress} | +| message | grantee | {granteeAddress} | + +### Exec fee allowance + +| Type | Attribute Key | Attribute Value | +| ------- | ------------- | ---------------- | +| message | action | use_feegrant | +| message | granter | {granterAddress} | +| message | grantee | {granteeAddress} | + +### Prune fee allowances + +| Type | Attribute Key | Attribute Value | +| ------- | ------------- | ---------------- | +| message | action | prune_feegrant | +| message | pruner | {prunerAddress} | + + +## Client + +### CLI + +A user can query and interact with the `feegrant` module using the CLI. + +#### Query + +The `query` commands allow users to query `feegrant` state. + +```shell +simd query feegrant --help +``` + +##### grant + +The `grant` command allows users to query a grant for a given granter-grantee pair. + +```shell +simd query feegrant grant [granter] [grantee] [flags] +``` + +Example: + +```shell +simd query feegrant grant cosmos1.. cosmos1.. +``` + +Example Output: + +```yml +allowance: + '@type': /cosmos.feegrant.v1beta1.BasicAllowance + expiration: null + spend_limit: + - amount: "100" + denom: stake +grantee: cosmos1.. +granter: cosmos1.. +``` + +##### grants + +The `grants` command allows users to query all grants for a given grantee. + +```shell +simd query feegrant grants [grantee] [flags] +``` + +Example: + +```shell +simd query feegrant grants cosmos1.. +``` + +Example Output: + +```yml +allowances: +- allowance: + '@type': /cosmos.feegrant.v1beta1.BasicAllowance + expiration: null + spend_limit: + - amount: "100" + denom: stake + grantee: cosmos1.. + granter: cosmos1.. +pagination: + next_key: null + total: "0" +``` + +#### Transactions + +The `tx` commands allow users to interact with the `feegrant` module. + +```shell +simd tx feegrant --help +``` + +##### grant + +The `grant` command allows users to grant fee allowances to another account. The fee allowance can have an expiration date, a total spend limit, and/or a periodic spend limit. + +```shell +simd tx feegrant grant [granter] [grantee] [flags] +``` + +Example (one-time spend limit): + +```shell +simd tx feegrant grant cosmos1.. cosmos1.. --spend-limit 100stake +``` + +Example (periodic spend limit): + +```shell +simd tx feegrant grant cosmos1.. cosmos1.. --period 3600 --period-limit 10stake +``` + +##### revoke + +The `revoke` command allows users to revoke a granted fee allowance. + +```shell +simd tx feegrant revoke [granter] [grantee] [flags] +``` + +Example: + +```shell +simd tx feegrant revoke cosmos1.. cosmos1.. +``` + +### gRPC + +A user can query the `feegrant` module using gRPC endpoints. + +#### Allowance + +The `Allowance` endpoint allows users to query a granted fee allowance. + +```shell +cosmos.feegrant.v1beta1.Query/Allowance +``` + +Example: + +```shell +grpcurl -plaintext \ + -d '{"grantee":"cosmos1..","granter":"cosmos1.."}' \ + localhost:9090 \ + cosmos.feegrant.v1beta1.Query/Allowance +``` + +Example Output: + +```json +{ + "allowance": { + "granter": "cosmos1..", + "grantee": "cosmos1..", + "allowance": {"@type":"/cosmos.feegrant.v1beta1.BasicAllowance","spendLimit":[{"denom":"stake","amount":"100"}]} + } +} +``` + +#### Allowances + +The `Allowances` endpoint allows users to query all granted fee allowances for a given grantee. + +```shell +cosmos.feegrant.v1beta1.Query/Allowances +``` + +Example: + +```shell +grpcurl -plaintext \ + -d '{"address":"cosmos1.."}' \ + localhost:9090 \ + cosmos.feegrant.v1beta1.Query/Allowances +``` + +Example Output: + +```json +{ + "allowances": [ + { + "granter": "cosmos1..", + "grantee": "cosmos1..", + "allowance": {"@type":"/cosmos.feegrant.v1beta1.BasicAllowance","spendLimit":[{"denom":"stake","amount":"100"}]} + } + ], + "pagination": { + "total": "1" + } +} +``` diff --git a/.gitbook/developers/modules/core/genutil/README.md b/.gitbook/developers/modules/core/genutil/README.md new file mode 100644 index 00000000..45cb4535 --- /dev/null +++ b/.gitbook/developers/modules/core/genutil/README.md @@ -0,0 +1,89 @@ +# `x/genutil` + +## Concepts + +The `genutil` package contains a variety of genesis utility functionalities for usage within a blockchain application. Namely: + +* Genesis transactions related (gentx) +* Commands for collection and creation of gentxs +* `InitChain` processing of gentxs +* Genesis file creation +* Genesis file validation +* Genesis file migration +* CometBFT related initialization + * Translation of an app genesis to a CometBFT genesis + +## Genesis + +Genutil contains the data structure that defines an application genesis. +An application genesis consist of a consensus genesis (g.e. CometBFT genesis) and application related genesis data. + +```go reference +https://github.com/cosmos/cosmos-sdk/blob/v0.50.0-rc.0/x/genutil/types/genesis.go#L24-L34 +``` + +The application genesis can then be translated to the consensus engine to the right format: + +```go reference +https://github.com/cosmos/cosmos-sdk/blob/v0.50.0-rc.0/x/genutil/types/genesis.go#L126-L136 +``` + +```go reference +https://github.com/cosmos/cosmos-sdk/blob/v0.50.0-rc.0/server/start.go#L397-L407 +``` + +## Client + +### CLI + +The genutil commands are available under the `genesis` subcommand. + +#### add-genesis-account + +Add a genesis account to `genesis.json`. Learn more [here](https://docs.cosmos.network/main/run-node/run-node#adding-genesis-accounts). + +#### collect-gentxs + +Collect genesis txs and output a `genesis.json` file. + +```shell +simd genesis collect-gentxs +``` + +This will create a new `genesis.json` file that includes data from all the validators (we sometimes call it the "super genesis file" to distinguish it from single-validator genesis files). + +#### gentx + +Generate a genesis tx carrying a self delegation. + +```shell +simd genesis gentx [key_name] [amount] --chain-id [chain-id] +``` + +This will create the genesis transaction for your new chain. Here `amount` should be at least `1000000000stake`. +If you provide too much or too little, you will encounter an error when starting a node. + +#### migrate + +Migrate genesis to a specified target (SDK) version. + +```shell +simd genesis migrate [target-version] +``` + +:::tip +The `migrate` command is extensible and takes a `MigrationMap`. This map is a mapping of target versions to genesis migrations functions. +When not using the default `MigrationMap`, it is recommended to still call the default `MigrationMap` corresponding the SDK version of the chain and prepend/append your own genesis migrations. +::: + +#### validate-genesis + +Validates the genesis file at the default location or at the location passed as an argument. + +```shell +simd genesis validate-genesis +``` + +:::warning +Validate genesis only validates if the genesis is valid at the **current application binary**. For validating a genesis from a previous version of the application, use the `migrate` command to migrate the genesis to the current version. +::: diff --git a/.gitbook/developers/modules/core/gov/README.md b/.gitbook/developers/modules/core/gov/README.md new file mode 100644 index 00000000..87b2fc5f --- /dev/null +++ b/.gitbook/developers/modules/core/gov/README.md @@ -0,0 +1,2547 @@ +--- +sidebar_position: 1 +--- + +# `x/gov` + +## Abstract + +This paper specifies the Governance module of the Cosmos SDK, which was first +described in the [Cosmos Whitepaper](https://cosmos.network/about/whitepaper) in +June 2016. + +The module enables Cosmos SDK based blockchain to support an on-chain governance +system. In this system, holders of the native staking token of the chain can vote +on proposals on a 1 token 1 vote basis. Next is a list of features the module +currently supports: + +* **Proposal submission:** Users can submit proposals with a deposit. Once the +minimum deposit is reached, the proposal enters voting period. The minimum deposit can be reached by collecting deposits from different users (including proposer) within deposit period. +* **Vote:** Participants can vote on proposals that reached MinDeposit and entered voting period. +* **Inheritance and penalties:** Delegators inherit their validator's vote if +they don't vote themselves. +* **Claiming deposit:** Users that deposited on proposals can recover their +deposits if the proposal was accepted or rejected. If the proposal was vetoed, or never entered voting period (minimum deposit not reached within deposit period), the deposit is burned. + +This module is in use on the Cosmos Hub (a.k.a [gaia](https://github.com/cosmos/gaia)). +Features that may be added in the future are described in [Future Improvements](#future-improvements). + +## Contents + +The following specification uses *ATOM* as the native staking token. The module +can be adapted to any Proof-Of-Stake blockchain by replacing *ATOM* with the native +staking token of the chain. + +* [Concepts](#concepts) + * [Proposal submission](#proposal-submission) + * [Deposit](#deposit) + * [Vote](#vote) + * [Software Upgrade](#software-upgrade) +* [State](#state) + * [Proposals](#proposals) + * [Parameters and base types](#parameters-and-base-types) + * [Deposit](#deposit-1) + * [ValidatorGovInfo](#validatorgovinfo) + * [Stores](#stores) + * [Proposal Processing Queue](#proposal-processing-queue) + * [Legacy Proposal](#legacy-proposal) +* [Messages](#messages) + * [Proposal Submission](#proposal-submission-1) + * [Deposit](#deposit-2) + * [Vote](#vote-1) +* [Events](#events) + * [EndBlocker](#endblocker) + * [Handlers](#handlers) +* [Parameters](#parameters) +* [Client](#client) + * [CLI](#cli) + * [gRPC](#grpc) + * [REST](#rest) +* [Metadata](#metadata) + * [Proposal](#proposal-3) + * [Vote](#vote-5) +* [Future Improvements](#future-improvements) + +## Concepts + +*Disclaimer: This is work in progress. Mechanisms are susceptible to change.* + +The governance process is divided in a few steps that are outlined below: + +* **Proposal submission:** Proposal is submitted to the blockchain with a + deposit. +* **Vote:** Once deposit reaches a certain value (`MinDeposit`), proposal is + confirmed and vote opens. Bonded Atom holders can then send `TxGovVote` + transactions to vote on the proposal. +* **Execution** After a period of time, the votes are tallied and depending + on the result, the messages in the proposal will be executed. + +### Proposal submission + +#### Right to submit a proposal + +Every account can submit proposals by sending a `MsgSubmitProposal` transaction. +Once a proposal is submitted, it is identified by its unique `proposalID`. + +#### Proposal Messages + +A proposal includes an array of `sdk.Msg`s which are executed automatically if the +proposal passes. The messages are executed by the governance `ModuleAccount` itself. Modules +such as `x/upgrade`, that want to allow certain messages to be executed by governance +only should add a whitelist within the respective msg server, granting the governance +module the right to execute the message once a quorum has been reached. The governance +module uses the `MsgServiceRouter` to check that these messages are correctly constructed +and have a respective path to execute on but do not perform a full validity check. + +### Deposit + +To prevent spam, proposals must be submitted with a deposit in the coins defined by +the `MinDeposit` param. + +When a proposal is submitted, it has to be accompanied with a deposit that must be +strictly positive, but can be inferior to `MinDeposit`. The submitter doesn't need +to pay for the entire deposit on their own. The newly created proposal is stored in +an *inactive proposal queue* and stays there until its deposit passes the `MinDeposit`. +Other token holders can increase the proposal's deposit by sending a `Deposit` +transaction. If a proposal doesn't pass the `MinDeposit` before the deposit end time +(the time when deposits are no longer accepted), the proposal will be destroyed: the +proposal will be removed from state and the deposit will be burned (see x/gov `EndBlocker`). +When a proposal deposit passes the `MinDeposit` threshold (even during the proposal +submission) before the deposit end time, the proposal will be moved into the +*active proposal queue* and the voting period will begin. + +The deposit is kept in escrow and held by the governance `ModuleAccount` until the +proposal is finalized (passed or rejected). + +#### Deposit refund and burn + +When a proposal is finalized, the coins from the deposit are either refunded or burned +according to the final tally of the proposal: + +* If the proposal is approved or rejected but *not* vetoed, each deposit will be + automatically refunded to its respective depositor (transferred from the governance + `ModuleAccount`). +* When the proposal is vetoed with greater than 1/3, deposits will be burned from the + governance `ModuleAccount` and the proposal information along with its deposit + information will be removed from state. +* All refunded or burned deposits are removed from the state. Events are issued when + burning or refunding a deposit. + +### Vote + +#### Participants + +*Participants* are users that have the right to vote on proposals. On the +Cosmos Hub, participants are bonded Atom holders. Unbonded Atom holders and +other users do not get the right to participate in governance. However, they +can submit and deposit on proposals. + +Note that when *participants* have bonded and unbonded Atoms, their voting power is calculated from their bonded Atom holdings only. + +#### Voting period + +Once a proposal reaches `MinDeposit`, it immediately enters `Voting period`. We +define `Voting period` as the interval between the moment the vote opens and +the moment the vote closes. The initial value of `Voting period` is 2 weeks. + +#### Option set + +The option set of a proposal refers to the set of choices a participant can +choose from when casting its vote. + +The initial option set includes the following options: + +* `Yes` +* `No` +* `NoWithVeto` +* `Abstain` + +`NoWithVeto` counts as `No` but also adds a `Veto` vote. `Abstain` option +allows voters to signal that they do not intend to vote in favor or against the +proposal but accept the result of the vote. + +*Note: from the UI, for urgent proposals we should maybe add a ‘Not Urgent’ option that casts a `NoWithVeto` vote.* + +#### Weighted Votes + +[ADR-037](https://github.com/cosmos/cosmos-sdk/blob/main/docs/architecture/adr-037-gov-split-vote.md) introduces the weighted vote feature which allows a staker to split their votes into several voting options. For example, it could use 70% of its voting power to vote Yes and 30% of its voting power to vote No. + +Often times the entity owning that address might not be a single individual. For example, a company might have different stakeholders who want to vote differently, and so it makes sense to allow them to split their voting power. Currently, it is not possible for them to do "passthrough voting" and giving their users voting rights over their tokens. However, with this system, exchanges can poll their users for voting preferences, and then vote on-chain proportionally to the results of the poll. + +To represent weighted vote on chain, we use the following Protobuf message. + +```protobuf reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/proto/cosmos/gov/v1beta1/gov.proto#L34-L47 +``` + +```protobuf reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/proto/cosmos/gov/v1beta1/gov.proto#L181-L201 +``` + +For a weighted vote to be valid, the `options` field must not contain duplicate vote options, and the sum of weights of all options must be equal to 1. + +### Quorum + +Quorum is defined as the minimum percentage of voting power that needs to be +cast on a proposal for the result to be valid. + +### Expedited Proposals + +A proposal can be expedited, making the proposal use shorter voting duration and a higher tally threshold by its default. If an expedited proposal fails to meet the threshold within the scope of shorter voting duration, the expedited proposal is then converted to a regular proposal and restarts voting under regular voting conditions. + +#### Threshold + +Threshold is defined as the minimum proportion of `Yes` votes (excluding +`Abstain` votes) for the proposal to be accepted. + +Initially, the threshold is set at 50% of `Yes` votes, excluding `Abstain` +votes. A possibility to veto exists if more than 1/3rd of all votes are +`NoWithVeto` votes. Note, both of these values are derived from the `TallyParams` +on-chain parameter, which is modifiable by governance. +This means that proposals are accepted iff: + +* There exist bonded tokens. +* Quorum has been achieved. +* The proportion of `Abstain` votes is inferior to 1/1. +* The proportion of `NoWithVeto` votes is inferior to 1/3, including + `Abstain` votes. +* The proportion of `Yes` votes, excluding `Abstain` votes, at the end of + the voting period is superior to 1/2. + +For expedited proposals, by default, the threshold is higher than with a *normal proposal*, namely, 66.7%. + +#### Inheritance + +If a delegator does not vote, it will inherit its validator vote. + +* If the delegator votes before its validator, it will not inherit from the + validator's vote. +* If the delegator votes after its validator, it will override its validator + vote with its own. If the proposal is urgent, it is possible + that the vote will close before delegators have a chance to react and + override their validator's vote. This is not a problem, as proposals require more than 2/3rd of the total voting power to pass, when tallied at the end of the voting period. Because as little as 1/3 + 1 validation power could collude to censor transactions, non-collusion is already assumed for ranges exceeding this threshold. + +#### Validator’s punishment for non-voting + +At present, validators are not punished for failing to vote. + +#### Governance address + +Later, we may add permissioned keys that could only sign txs from certain modules. For the MVP, the `Governance address` will be the main validator address generated at account creation. This address corresponds to a different PrivKey than the CometBFT PrivKey which is responsible for signing consensus messages. Validators thus do not have to sign governance transactions with the sensitive CometBFT PrivKey. + +#### Burnable Params + +There are three parameters that define if the deposit of a proposal should be burned or returned to the depositors. + +* `BurnVoteVeto` burns the proposal deposit if the proposal gets vetoed. +* `BurnVoteQuorum` burns the proposal deposit if the proposal deposit if the vote does not reach quorum. +* `BurnProposalDepositPrevote` burns the proposal deposit if it does not enter the voting phase. + +> Note: These parameters are modifiable via governance. + +## State + +### Constitution + +`Constitution` is found in the genesis state. It is a string field intended to be used to descibe the purpose of a particular blockchain, and its expected norms. A few examples of how the constitution field can be used: + +* define the purpose of the chain, laying a foundation for its future development +* set expectations for delegators +* set expectations for validators +* define the chain's relationship to "meatspace" entities, like a foundation or corporation + +Since this is more of a social feature than a technical feature, we'll now get into some items that may have been useful to have in a genesis constitution: + +* What limitations on governance exist, if any? + * is it okay for the community to slash the wallet of a whale that they no longer feel that they want around? (viz: Juno Proposal 4 and 16) + * can governance "socially slash" a validator who is using unapproved MEV? (viz: commonwealth.im/osmosis) + * In the event of an economic emergency, what should validators do? + * Terra crash of May, 2022, saw validators choose to run a new binary with code that had not been approved by governance, because the governance token had been inflated to nothing. +* What is the purpose of the chain, specifically? + * best example of this is the Cosmos hub, where different founding groups, have different interpertations of the purpose of the network. + +This genesis entry, "constitution" hasn't been designed for existing chains, who should likely just ratify a constitution using their governance system. Instead, this is for new chains. It will allow for validators to have a much clearer idea of purpose and the expecations placed on them while operating thier nodes. Likewise, for community members, the constitution will give them some idea of what to expect from both the "chain team" and the validators, respectively. + +This constitution is designed to be immutable, and placed only in genesis, though that could change over time by a pull request to the cosmos-sdk that allows for the constitution to be changed by governance. Communities whishing to make amendments to their original constitution should use the governance mechanism and a "signaling proposal" to do exactly that. + +**Ideal use scenario for a cosmos chain constitution** + +As a chain developer, you decide that you'd like to provide clarity to your key user groups: + +* validators +* token holders +* developers (yourself) + +You use the constitution to immutably store some Markdown in genesis, so that when difficult questions come up, the constutituon can provide guidance to the community. + +### Proposals + +`Proposal` objects are used to tally votes and generally track the proposal's state. +They contain an array of arbitrary `sdk.Msg`'s which the governance module will attempt +to resolve and then execute if the proposal passes. `Proposal`'s are identified by a +unique id and contains a series of timestamps: `submit_time`, `deposit_end_time`, +`voting_start_time`, `voting_end_time` which track the lifecycle of a proposal + +```protobuf reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/proto/cosmos/gov/v1/gov.proto#L51-L99 +``` + +A proposal will generally require more than just a set of messages to explain its +purpose but need some greater justification and allow a means for interested participants +to discuss and debate the proposal. +In most cases, **it is encouraged to have an off-chain system that supports the on-chain governance process**. +To accommodate for this, a proposal contains a special **`metadata`** field, a string, +which can be used to add context to the proposal. The `metadata` field allows custom use for networks, +however, it is expected that the field contains a URL or some form of CID using a system such as +[IPFS](https://docs.ipfs.io/concepts/content-addressing/). To support the case of +interoperability across networks, the SDK recommends that the `metadata` represents +the following `JSON` template: + +```json +{ + "title": "...", + "description": "...", + "forum": "...", // a link to the discussion platform (i.e. Discord) + "other": "..." // any extra data that doesn't correspond to the other fields +} +``` + +This makes it far easier for clients to support multiple networks. + +The metadata has a maximum length that is chosen by the app developer, and +passed into the gov keeper as a config. The default maximum length in the SDK is 255 characters. + +#### Writing a module that uses governance + +There are many aspects of a chain, or of the individual modules that you may want to +use governance to perform such as changing various parameters. This is very simple +to do. First, write out your message types and `MsgServer` implementation. Add an +`authority` field to the keeper which will be populated in the constructor with the +governance module account: `govKeeper.GetGovernanceAccount().GetAddress()`. Then for +the methods in the `msg_server.go`, perform a check on the message that the signer +matches `authority`. This will prevent any user from executing that message. + +### Parameters and base types + +`Parameters` define the rules according to which votes are run. There can only +be one active parameter set at any given time. If governance wants to change a +parameter set, either to modify a value or add/remove a parameter field, a new +parameter set has to be created and the previous one rendered inactive. + +#### DepositParams + +```protobuf reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/proto/cosmos/gov/v1/gov.proto#L152-L162 +``` + +#### VotingParams + +```protobuf reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/proto/cosmos/gov/v1/gov.proto#L164-L168 +``` + +#### TallyParams + +```protobuf reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/proto/cosmos/gov/v1/gov.proto#L170-L182 +``` + +Parameters are stored in a global `GlobalParams` KVStore. + +Additionally, we introduce some basic types: + +```go +type Vote byte + +const ( + VoteYes = 0x1 + VoteNo = 0x2 + VoteNoWithVeto = 0x3 + VoteAbstain = 0x4 +) + +type ProposalType string + +const ( + ProposalTypePlainText = "Text" + ProposalTypeSoftwareUpgrade = "SoftwareUpgrade" +) + +type ProposalStatus byte + + +const ( + StatusNil ProposalStatus = 0x00 + StatusDepositPeriod ProposalStatus = 0x01 // Proposal is submitted. Participants can deposit on it but not vote + StatusVotingPeriod ProposalStatus = 0x02 // MinDeposit is reached, participants can vote + StatusPassed ProposalStatus = 0x03 // Proposal passed and successfully executed + StatusRejected ProposalStatus = 0x04 // Proposal has been rejected + StatusFailed ProposalStatus = 0x05 // Proposal passed but failed execution +) +``` + +### Deposit + +```protobuf reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/proto/cosmos/gov/v1/gov.proto#L38-L49 +``` + +### ValidatorGovInfo + +This type is used in a temp map when tallying + +```go + type ValidatorGovInfo struct { + Minus sdk.Dec + Vote Vote + } +``` + +## Stores + +:::note +Stores are KVStores in the multi-store. The key to find the store is the first parameter in the list +::: + +We will use one KVStore `Governance` to store four mappings: + +* A mapping from `proposalID|'proposal'` to `Proposal`. +* A mapping from `proposalID|'addresses'|address` to `Vote`. This mapping allows + us to query all addresses that voted on the proposal along with their vote by + doing a range query on `proposalID:addresses`. +* A mapping from `ParamsKey|'Params'` to `Params`. This map allows to query all + x/gov params. +* A mapping from `VotingPeriodProposalKeyPrefix|proposalID` to a single byte. This allows + us to know if a proposal is in the voting period or not with very low gas cost. + +For pseudocode purposes, here are the two function we will use to read or write in stores: + +* `load(StoreKey, Key)`: Retrieve item stored at key `Key` in store found at key `StoreKey` in the multistore +* `store(StoreKey, Key, value)`: Write value `Value` at key `Key` in store found at key `StoreKey` in the multistore + +### Proposal Processing Queue + +**Store:** + +* `ProposalProcessingQueue`: A queue `queue[proposalID]` containing all the + `ProposalIDs` of proposals that reached `MinDeposit`. During each `EndBlock`, + all the proposals that have reached the end of their voting period are processed. + To process a finished proposal, the application tallies the votes, computes the + votes of each validator and checks if every validator in the validator set has + voted. If the proposal is accepted, deposits are refunded. Finally, the proposal + content `Handler` is executed. + +And the pseudocode for the `ProposalProcessingQueue`: + +```go + in EndBlock do + + for finishedProposalID in GetAllFinishedProposalIDs(block.Time) + proposal = load(Governance, ) // proposal is a const key + + validators = Keeper.getAllValidators() + tmpValMap := map(sdk.AccAddress)ValidatorGovInfo + + // Initiate mapping at 0. This is the amount of shares of the validator's vote that will be overridden by their delegator's votes + for each validator in validators + tmpValMap(validator.OperatorAddr).Minus = 0 + + // Tally + voterIterator = rangeQuery(Governance, ) //return all the addresses that voted on the proposal + for each (voterAddress, vote) in voterIterator + delegations = stakingKeeper.getDelegations(voterAddress) // get all delegations for current voter + + for each delegation in delegations + // make sure delegation.Shares does NOT include shares being unbonded + tmpValMap(delegation.ValidatorAddr).Minus += delegation.Shares + proposal.updateTally(vote, delegation.Shares) + + _, isVal = stakingKeeper.getValidator(voterAddress) + if (isVal) + tmpValMap(voterAddress).Vote = vote + + tallyingParam = load(GlobalParams, 'TallyingParam') + + // Update tally if validator voted + for each validator in validators + if tmpValMap(validator).HasVoted + proposal.updateTally(tmpValMap(validator).Vote, (validator.TotalShares - tmpValMap(validator).Minus)) + + + + // Check if proposal is accepted or rejected + totalNonAbstain := proposal.YesVotes + proposal.NoVotes + proposal.NoWithVetoVotes + if (proposal.Votes.YesVotes/totalNonAbstain > tallyingParam.Threshold AND proposal.Votes.NoWithVetoVotes/totalNonAbstain < tallyingParam.Veto) + // proposal was accepted at the end of the voting period + // refund deposits (non-voters already punished) + for each (amount, depositor) in proposal.Deposits + depositor.AtomBalance += amount + + stateWriter, err := proposal.Handler() + if err != nil + // proposal passed but failed during state execution + proposal.CurrentStatus = ProposalStatusFailed + else + // proposal pass and state is persisted + proposal.CurrentStatus = ProposalStatusAccepted + stateWriter.save() + else + // proposal was rejected + proposal.CurrentStatus = ProposalStatusRejected + + store(Governance, , proposal) +``` + +### Legacy Proposal + +:::warning +Legacy proposals are deprecated. Use the new proposal flow by granting the governance module the right to execute the message. +::: + +A legacy proposal is the old implementation of governance proposal. +Contrary to proposal that can contain any messages, a legacy proposal allows to submit a set of pre-defined proposals. +These proposals are defined by their types and handled by handlers that are registered in the gov v1beta1 router. + +More information on how to submit proposals in the [client section](#client). + +## Messages + +### Proposal Submission + +Proposals can be submitted by any account via a `MsgSubmitProposal` transaction. + +```protobuf reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/proto/cosmos/gov/v1/tx.proto#L42-L69 +``` + +All `sdk.Msgs` passed into the `messages` field of a `MsgSubmitProposal` message +must be registered in the app's `MsgServiceRouter`. Each of these messages must +have one signer, namely the gov module account. And finally, the metadata length +must not be larger than the `maxMetadataLen` config passed into the gov keeper. +The `initialDeposit` must be strictly positive and conform to the accepted denom of the `MinDeposit` param. + +**State modifications:** + +* Generate new `proposalID` +* Create new `Proposal` +* Initialise `Proposal`'s attributes +* Decrease balance of sender by `InitialDeposit` +* If `MinDeposit` is reached: + * Push `proposalID` in `ProposalProcessingQueue` +* Transfer `InitialDeposit` from the `Proposer` to the governance `ModuleAccount` + +### Deposit + +Once a proposal is submitted, if `Proposal.TotalDeposit < ActiveParam.MinDeposit`, Atom holders can send +`MsgDeposit` transactions to increase the proposal's deposit. + +A deposit is accepted iff: + +* The proposal exists +* The proposal is not in the voting period +* The deposited coins are conform to the accepted denom from the `MinDeposit` param + +```protobuf reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/proto/cosmos/gov/v1/tx.proto#L134-L147 +``` + +**State modifications:** + +* Decrease balance of sender by `deposit` +* Add `deposit` of sender in `proposal.Deposits` +* Increase `proposal.TotalDeposit` by sender's `deposit` +* If `MinDeposit` is reached: + * Push `proposalID` in `ProposalProcessingQueueEnd` +* Transfer `Deposit` from the `proposer` to the governance `ModuleAccount` + +### Vote + +Once `ActiveParam.MinDeposit` is reached, voting period starts. From there, +bonded Atom holders are able to send `MsgVote` transactions to cast their +vote on the proposal. + +```protobuf reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/proto/cosmos/gov/v1/tx.proto#L92-L108 +``` + +**State modifications:** + +* Record `Vote` of sender + +:::note +Gas cost for this message has to take into account the future tallying of the vote in EndBlocker. +::: + +## Events + +The governance module emits the following events: + +### EndBlocker + +| Type | Attribute Key | Attribute Value | +|-------------------|-----------------|------------------| +| inactive_proposal | proposal_id | {proposalID} | +| inactive_proposal | proposal_result | {proposalResult} | +| active_proposal | proposal_id | {proposalID} | +| active_proposal | proposal_result | {proposalResult} | + +### Handlers + +#### MsgSubmitProposal + +| Type | Attribute Key | Attribute Value | +|---------------------|---------------------|-----------------| +| submit_proposal | proposal_id | {proposalID} | +| submit_proposal [0] | voting_period_start | {proposalID} | +| proposal_deposit | amount | {depositAmount} | +| proposal_deposit | proposal_id | {proposalID} | +| message | module | governance | +| message | action | submit_proposal | +| message | sender | {senderAddress} | + +* [0] Event only emitted if the voting period starts during the submission. + +#### MsgVote + +| Type | Attribute Key | Attribute Value | +|---------------|---------------|-----------------| +| proposal_vote | option | {voteOption} | +| proposal_vote | proposal_id | {proposalID} | +| message | module | governance | +| message | action | vote | +| message | sender | {senderAddress} | + +#### MsgVoteWeighted + +| Type | Attribute Key | Attribute Value | +|---------------|---------------|-----------------------| +| proposal_vote | option | {weightedVoteOptions} | +| proposal_vote | proposal_id | {proposalID} | +| message | module | governance | +| message | action | vote | +| message | sender | {senderAddress} | + +#### MsgDeposit + +| Type | Attribute Key | Attribute Value | +|----------------------|---------------------|-----------------| +| proposal_deposit | amount | {depositAmount} | +| proposal_deposit | proposal_id | {proposalID} | +| proposal_deposit [0] | voting_period_start | {proposalID} | +| message | module | governance | +| message | action | deposit | +| message | sender | {senderAddress} | + +* [0] Event only emitted if the voting period starts during the submission. + +## Parameters + +The governance module contains the following parameters: + +| Key | Type | Example | +|-------------------------------|------------------|-----------------------------------------| +| min_deposit | array (coins) | [{"denom":"uatom","amount":"10000000"}] | +| max_deposit_period | string (time ns) | "172800000000000" (17280s) | +| voting_period | string (time ns) | "172800000000000" (17280s) | +| quorum | string (dec) | "0.334000000000000000" | +| threshold | string (dec) | "0.500000000000000000" | +| veto | string (dec) | "0.334000000000000000" | +| expedited_threshold | string (time ns) | "0.667000000000000000" | +| expedited_voting_period | string (time ns) | "86400000000000" (8600s) | +| expedited_min_deposit | array (coins) | [{"denom":"uatom","amount":"50000000"}] | +| burn_proposal_deposit_prevote | bool | false | +| burn_vote_quorum | bool | false | +| burn_vote_veto | bool | true | +| min_initial_deposit_ratio | string | "0.1" | + + +**NOTE**: The governance module contains parameters that are objects unlike other +modules. If only a subset of parameters are desired to be changed, only they need +to be included and not the entire parameter object structure. + +## Client + +### CLI + +A user can query and interact with the `gov` module using the CLI. + +#### Query + +The `query` commands allow users to query `gov` state. + +```bash +simd query gov --help +``` + +##### deposit + +The `deposit` command allows users to query a deposit for a given proposal from a given depositor. + +```bash +simd query gov deposit [proposal-id] [depositer-addr] [flags] +``` + +Example: + +```bash +simd query gov deposit 1 cosmos1.. +``` + +Example Output: + +```bash +amount: +- amount: "100" + denom: stake +depositor: cosmos1.. +proposal_id: "1" +``` + +##### deposits + +The `deposits` command allows users to query all deposits for a given proposal. + +```bash +simd query gov deposits [proposal-id] [flags] +``` + +Example: + +```bash +simd query gov deposits 1 +``` + +Example Output: + +```bash +deposits: +- amount: + - amount: "100" + denom: stake + depositor: cosmos1.. + proposal_id: "1" +pagination: + next_key: null + total: "0" +``` + +##### param + +The `param` command allows users to query a given parameter for the `gov` module. + +```bash +simd query gov param [param-type] [flags] +``` + +Example: + +```bash +simd query gov param voting +``` + +Example Output: + +```bash +voting_period: "172800000000000" +``` + +##### params + +The `params` command allows users to query all parameters for the `gov` module. + +```bash +simd query gov params [flags] +``` + +Example: + +```bash +simd query gov params +``` + +Example Output: + +```bash +deposit_params: + max_deposit_period: 172800s + min_deposit: + - amount: "10000000" + denom: stake +params: + expedited_min_deposit: + - amount: "50000000" + denom: stake + expedited_threshold: "0.670000000000000000" + expedited_voting_period: 86400s + max_deposit_period: 172800s + min_deposit: + - amount: "10000000" + denom: stake + min_initial_deposit_ratio: "0.000000000000000000" + proposal_cancel_burn_rate: "0.500000000000000000" + quorum: "0.334000000000000000" + threshold: "0.500000000000000000" + veto_threshold: "0.334000000000000000" + voting_period: 172800s +tally_params: + quorum: "0.334000000000000000" + threshold: "0.500000000000000000" + veto_threshold: "0.334000000000000000" +voting_params: + voting_period: 172800s +``` + +##### proposal + +The `proposal` command allows users to query a given proposal. + +```bash +simd query gov proposal [proposal-id] [flags] +``` + +Example: + +```bash +simd query gov proposal 1 +``` + +Example Output: + +```bash +deposit_end_time: "2022-03-30T11:50:20.819676256Z" +final_tally_result: + abstain_count: "0" + no_count: "0" + no_with_veto_count: "0" + yes_count: "0" +id: "1" +messages: +- '@type': /cosmos.bank.v1beta1.MsgSend + amount: + - amount: "10" + denom: stake + from_address: cosmos1.. + to_address: cosmos1.. +metadata: AQ== +status: PROPOSAL_STATUS_DEPOSIT_PERIOD +submit_time: "2022-03-28T11:50:20.819676256Z" +total_deposit: +- amount: "10" + denom: stake +voting_end_time: null +voting_start_time: null +``` + +##### proposals + +The `proposals` command allows users to query all proposals with optional filters. + +```bash +simd query gov proposals [flags] +``` + +Example: + +```bash +simd query gov proposals +``` + +Example Output: + +```bash +pagination: + next_key: null + total: "0" +proposals: +- deposit_end_time: "2022-03-30T11:50:20.819676256Z" + final_tally_result: + abstain_count: "0" + no_count: "0" + no_with_veto_count: "0" + yes_count: "0" + id: "1" + messages: + - '@type': /cosmos.bank.v1beta1.MsgSend + amount: + - amount: "10" + denom: stake + from_address: cosmos1.. + to_address: cosmos1.. + metadata: AQ== + status: PROPOSAL_STATUS_DEPOSIT_PERIOD + submit_time: "2022-03-28T11:50:20.819676256Z" + total_deposit: + - amount: "10" + denom: stake + voting_end_time: null + voting_start_time: null +- deposit_end_time: "2022-03-30T14:02:41.165025015Z" + final_tally_result: + abstain_count: "0" + no_count: "0" + no_with_veto_count: "0" + yes_count: "0" + id: "2" + messages: + - '@type': /cosmos.bank.v1beta1.MsgSend + amount: + - amount: "10" + denom: stake + from_address: cosmos1.. + to_address: cosmos1.. + metadata: AQ== + status: PROPOSAL_STATUS_DEPOSIT_PERIOD + submit_time: "2022-03-28T14:02:41.165025015Z" + total_deposit: + - amount: "10" + denom: stake + voting_end_time: null + voting_start_time: null +``` + +##### proposer + +The `proposer` command allows users to query the proposer for a given proposal. + +```bash +simd query gov proposer [proposal-id] [flags] +``` + +Example: + +```bash +simd query gov proposer 1 +``` + +Example Output: + +```bash +proposal_id: "1" +proposer: cosmos1.. +``` + +##### tally + +The `tally` command allows users to query the tally of a given proposal vote. + +```bash +simd query gov tally [proposal-id] [flags] +``` + +Example: + +```bash +simd query gov tally 1 +``` + +Example Output: + +```bash +abstain: "0" +"no": "0" +no_with_veto: "0" +"yes": "1" +``` + +##### vote + +The `vote` command allows users to query a vote for a given proposal. + +```bash +simd query gov vote [proposal-id] [voter-addr] [flags] +``` + +Example: + +```bash +simd query gov vote 1 cosmos1.. +``` + +Example Output: + +```bash +option: VOTE_OPTION_YES +options: +- option: VOTE_OPTION_YES + weight: "1.000000000000000000" +proposal_id: "1" +voter: cosmos1.. +``` + +##### votes + +The `votes` command allows users to query all votes for a given proposal. + +```bash +simd query gov votes [proposal-id] [flags] +``` + +Example: + +```bash +simd query gov votes 1 +``` + +Example Output: + +```bash +pagination: + next_key: null + total: "0" +votes: +- option: VOTE_OPTION_YES + options: + - option: VOTE_OPTION_YES + weight: "1.000000000000000000" + proposal_id: "1" + voter: cosmos1.. +``` + +#### Transactions + +The `tx` commands allow users to interact with the `gov` module. + +```bash +simd tx gov --help +``` + +##### deposit + +The `deposit` command allows users to deposit tokens for a given proposal. + +```bash +simd tx gov deposit [proposal-id] [deposit] [flags] +``` + +Example: + +```bash +simd tx gov deposit 1 10000000stake --from cosmos1.. +``` + +##### draft-proposal + +The `draft-proposal` command allows users to draft any type of proposal. +The command returns a `draft_proposal.json`, to be used by `submit-proposal` after being completed. +The `draft_metadata.json` is meant to be uploaded to [IPFS](#metadata). + +```bash +simd tx gov draft-proposal +``` + +##### submit-proposal + +The `submit-proposal` command allows users to submit a governance proposal along with some messages and metadata. +Messages, metadata and deposit are defined in a JSON file. + +```bash +simd tx gov submit-proposal [path-to-proposal-json] [flags] +``` + +Example: + +```bash +simd tx gov submit-proposal /path/to/proposal.json --from cosmos1.. +``` + +where `proposal.json` contains: + +```json +{ + "messages": [ + { + "@type": "/cosmos.bank.v1beta1.MsgSend", + "from_address": "cosmos1...", // The gov module module address + "to_address": "cosmos1...", + "amount":[{"denom": "stake","amount": "10"}] + } + ], + "metadata": "AQ==", + "deposit": "10stake", + "title": "Proposal Title", + "summary": "Proposal Summary" +} +``` + +:::note +By default the metadata, summary and title are both limited by 255 characters, this can be overridden by the application developer. +::: + +:::tip +When metadata is not specified, the title is limited to 255 characters and the summary 40x the title length. +::: + +##### submit-legacy-proposal + +The `submit-legacy-proposal` command allows users to submit a governance legacy proposal along with an initial deposit. + +```bash +simd tx gov submit-legacy-proposal [command] [flags] +``` + +Example: + +```bash +simd tx gov submit-legacy-proposal --title="Test Proposal" --description="testing" --type="Text" --deposit="100000000stake" --from cosmos1.. +``` + +Example (`param-change`): + +```bash +simd tx gov submit-legacy-proposal param-change proposal.json --from cosmos1.. +``` + +```json +{ + "title": "Test Proposal", + "description": "testing, testing, 1, 2, 3", + "changes": [ + { + "subspace": "staking", + "key": "MaxValidators", + "value": 100 + } + ], + "deposit": "10000000stake" +} +``` + +#### cancel-proposal + +Once proposal is canceled, from the deposits of proposal `deposits * proposal_cancel_ratio` will be burned or sent to `ProposalCancelDest` address , if `ProposalCancelDest` is empty then deposits will be burned. The `remaining deposits` will be sent to depositers. + +```bash +simd tx gov cancel-proposal [proposal-id] [flags] +``` + +Example: + +```bash +simd tx gov cancel-proposal 1 --from cosmos1... +``` + +##### vote + +The `vote` command allows users to submit a vote for a given governance proposal. + +```bash +simd tx gov vote [command] [flags] +``` + +Example: + +```bash +simd tx gov vote 1 yes --from cosmos1.. +``` + +##### weighted-vote + +The `weighted-vote` command allows users to submit a weighted vote for a given governance proposal. + +```bash +simd tx gov weighted-vote [proposal-id] [weighted-options] [flags] +``` + +Example: + +```bash +simd tx gov weighted-vote 1 yes=0.5,no=0.5 --from cosmos1.. +``` + +### gRPC + +A user can query the `gov` module using gRPC endpoints. + +#### Proposal + +The `Proposal` endpoint allows users to query a given proposal. + +Using legacy v1beta1: + +```bash +cosmos.gov.v1beta1.Query/Proposal +``` + +Example: + +```bash +grpcurl -plaintext \ + -d '{"proposal_id":"1"}' \ + localhost:9090 \ + cosmos.gov.v1beta1.Query/Proposal +``` + +Example Output: + +```bash +{ + "proposal": { + "proposalId": "1", + "content": {"@type":"/cosmos.gov.v1beta1.TextProposal","description":"testing, testing, 1, 2, 3","title":"Test Proposal"}, + "status": "PROPOSAL_STATUS_VOTING_PERIOD", + "finalTallyResult": { + "yes": "0", + "abstain": "0", + "no": "0", + "noWithVeto": "0" + }, + "submitTime": "2021-09-16T19:40:08.712440474Z", + "depositEndTime": "2021-09-18T19:40:08.712440474Z", + "totalDeposit": [ + { + "denom": "stake", + "amount": "10000000" + } + ], + "votingStartTime": "2021-09-16T19:40:08.712440474Z", + "votingEndTime": "2021-09-18T19:40:08.712440474Z", + "title": "Test Proposal", + "summary": "testing, testing, 1, 2, 3" + } +} +``` + +Using v1: + +```bash +cosmos.gov.v1.Query/Proposal +``` + +Example: + +```bash +grpcurl -plaintext \ + -d '{"proposal_id":"1"}' \ + localhost:9090 \ + cosmos.gov.v1.Query/Proposal +``` + +Example Output: + +```bash +{ + "proposal": { + "id": "1", + "messages": [ + {"@type":"/cosmos.bank.v1beta1.MsgSend","amount":[{"denom":"stake","amount":"10"}],"fromAddress":"cosmos1..","toAddress":"cosmos1.."} + ], + "status": "PROPOSAL_STATUS_VOTING_PERIOD", + "finalTallyResult": { + "yesCount": "0", + "abstainCount": "0", + "noCount": "0", + "noWithVetoCount": "0" + }, + "submitTime": "2022-03-28T11:50:20.819676256Z", + "depositEndTime": "2022-03-30T11:50:20.819676256Z", + "totalDeposit": [ + { + "denom": "stake", + "amount": "10000000" + } + ], + "votingStartTime": "2022-03-28T14:25:26.644857113Z", + "votingEndTime": "2022-03-30T14:25:26.644857113Z", + "metadata": "AQ==", + "title": "Test Proposal", + "summary": "testing, testing, 1, 2, 3" + } +} +``` + +#### Proposals + +The `Proposals` endpoint allows users to query all proposals with optional filters. + +Using legacy v1beta1: + +```bash +cosmos.gov.v1beta1.Query/Proposals +``` + +Example: + +```bash +grpcurl -plaintext \ + localhost:9090 \ + cosmos.gov.v1beta1.Query/Proposals +``` + +Example Output: + +```bash +{ + "proposals": [ + { + "proposalId": "1", + "status": "PROPOSAL_STATUS_VOTING_PERIOD", + "finalTallyResult": { + "yes": "0", + "abstain": "0", + "no": "0", + "noWithVeto": "0" + }, + "submitTime": "2022-03-28T11:50:20.819676256Z", + "depositEndTime": "2022-03-30T11:50:20.819676256Z", + "totalDeposit": [ + { + "denom": "stake", + "amount": "10000000010" + } + ], + "votingStartTime": "2022-03-28T14:25:26.644857113Z", + "votingEndTime": "2022-03-30T14:25:26.644857113Z" + }, + { + "proposalId": "2", + "status": "PROPOSAL_STATUS_DEPOSIT_PERIOD", + "finalTallyResult": { + "yes": "0", + "abstain": "0", + "no": "0", + "noWithVeto": "0" + }, + "submitTime": "2022-03-28T14:02:41.165025015Z", + "depositEndTime": "2022-03-30T14:02:41.165025015Z", + "totalDeposit": [ + { + "denom": "stake", + "amount": "10" + } + ], + "votingStartTime": "0001-01-01T00:00:00Z", + "votingEndTime": "0001-01-01T00:00:00Z" + } + ], + "pagination": { + "total": "2" + } +} + +``` + +Using v1: + +```bash +cosmos.gov.v1.Query/Proposals +``` + +Example: + +```bash +grpcurl -plaintext \ + localhost:9090 \ + cosmos.gov.v1.Query/Proposals +``` + +Example Output: + +```bash +{ + "proposals": [ + { + "id": "1", + "messages": [ + {"@type":"/cosmos.bank.v1beta1.MsgSend","amount":[{"denom":"stake","amount":"10"}],"fromAddress":"cosmos1..","toAddress":"cosmos1.."} + ], + "status": "PROPOSAL_STATUS_VOTING_PERIOD", + "finalTallyResult": { + "yesCount": "0", + "abstainCount": "0", + "noCount": "0", + "noWithVetoCount": "0" + }, + "submitTime": "2022-03-28T11:50:20.819676256Z", + "depositEndTime": "2022-03-30T11:50:20.819676256Z", + "totalDeposit": [ + { + "denom": "stake", + "amount": "10000000010" + } + ], + "votingStartTime": "2022-03-28T14:25:26.644857113Z", + "votingEndTime": "2022-03-30T14:25:26.644857113Z", + "metadata": "AQ==", + "title": "Proposal Title", + "summary": "Proposal Summary" + }, + { + "id": "2", + "messages": [ + {"@type":"/cosmos.bank.v1beta1.MsgSend","amount":[{"denom":"stake","amount":"10"}],"fromAddress":"cosmos1..","toAddress":"cosmos1.."} + ], + "status": "PROPOSAL_STATUS_DEPOSIT_PERIOD", + "finalTallyResult": { + "yesCount": "0", + "abstainCount": "0", + "noCount": "0", + "noWithVetoCount": "0" + }, + "submitTime": "2022-03-28T14:02:41.165025015Z", + "depositEndTime": "2022-03-30T14:02:41.165025015Z", + "totalDeposit": [ + { + "denom": "stake", + "amount": "10" + } + ], + "metadata": "AQ==", + "title": "Proposal Title", + "summary": "Proposal Summary" + } + ], + "pagination": { + "total": "2" + } +} +``` + +#### Vote + +The `Vote` endpoint allows users to query a vote for a given proposal. + +Using legacy v1beta1: + +```bash +cosmos.gov.v1beta1.Query/Vote +``` + +Example: + +```bash +grpcurl -plaintext \ + -d '{"proposal_id":"1","voter":"cosmos1.."}' \ + localhost:9090 \ + cosmos.gov.v1beta1.Query/Vote +``` + +Example Output: + +```bash +{ + "vote": { + "proposalId": "1", + "voter": "cosmos1..", + "option": "VOTE_OPTION_YES", + "options": [ + { + "option": "VOTE_OPTION_YES", + "weight": "1000000000000000000" + } + ] + } +} +``` + +Using v1: + +```bash +cosmos.gov.v1.Query/Vote +``` + +Example: + +```bash +grpcurl -plaintext \ + -d '{"proposal_id":"1","voter":"cosmos1.."}' \ + localhost:9090 \ + cosmos.gov.v1.Query/Vote +``` + +Example Output: + +```bash +{ + "vote": { + "proposalId": "1", + "voter": "cosmos1..", + "option": "VOTE_OPTION_YES", + "options": [ + { + "option": "VOTE_OPTION_YES", + "weight": "1.000000000000000000" + } + ] + } +} +``` + +#### Votes + +The `Votes` endpoint allows users to query all votes for a given proposal. + +Using legacy v1beta1: + +```bash +cosmos.gov.v1beta1.Query/Votes +``` + +Example: + +```bash +grpcurl -plaintext \ + -d '{"proposal_id":"1"}' \ + localhost:9090 \ + cosmos.gov.v1beta1.Query/Votes +``` + +Example Output: + +```bash +{ + "votes": [ + { + "proposalId": "1", + "voter": "cosmos1..", + "options": [ + { + "option": "VOTE_OPTION_YES", + "weight": "1000000000000000000" + } + ] + } + ], + "pagination": { + "total": "1" + } +} +``` + +Using v1: + +```bash +cosmos.gov.v1.Query/Votes +``` + +Example: + +```bash +grpcurl -plaintext \ + -d '{"proposal_id":"1"}' \ + localhost:9090 \ + cosmos.gov.v1.Query/Votes +``` + +Example Output: + +```bash +{ + "votes": [ + { + "proposalId": "1", + "voter": "cosmos1..", + "options": [ + { + "option": "VOTE_OPTION_YES", + "weight": "1.000000000000000000" + } + ] + } + ], + "pagination": { + "total": "1" + } +} +``` + +#### Params + +The `Params` endpoint allows users to query all parameters for the `gov` module. + + + +Using legacy v1beta1: + +```bash +cosmos.gov.v1beta1.Query/Params +``` + +Example: + +```bash +grpcurl -plaintext \ + -d '{"params_type":"voting"}' \ + localhost:9090 \ + cosmos.gov.v1beta1.Query/Params +``` + +Example Output: + +```bash +{ + "votingParams": { + "votingPeriod": "172800s" + }, + "depositParams": { + "maxDepositPeriod": "0s" + }, + "tallyParams": { + "quorum": "MA==", + "threshold": "MA==", + "vetoThreshold": "MA==" + } +} +``` + +Using v1: + +```bash +cosmos.gov.v1.Query/Params +``` + +Example: + +```bash +grpcurl -plaintext \ + -d '{"params_type":"voting"}' \ + localhost:9090 \ + cosmos.gov.v1.Query/Params +``` + +Example Output: + +```bash +{ + "votingParams": { + "votingPeriod": "172800s" + } +} +``` + +#### Deposit + +The `Deposit` endpoint allows users to query a deposit for a given proposal from a given depositor. + +Using legacy v1beta1: + +```bash +cosmos.gov.v1beta1.Query/Deposit +``` + +Example: + +```bash +grpcurl -plaintext \ + '{"proposal_id":"1","depositor":"cosmos1.."}' \ + localhost:9090 \ + cosmos.gov.v1beta1.Query/Deposit +``` + +Example Output: + +```bash +{ + "deposit": { + "proposalId": "1", + "depositor": "cosmos1..", + "amount": [ + { + "denom": "stake", + "amount": "10000000" + } + ] + } +} +``` + +Using v1: + +```bash +cosmos.gov.v1.Query/Deposit +``` + +Example: + +```bash +grpcurl -plaintext \ + '{"proposal_id":"1","depositor":"cosmos1.."}' \ + localhost:9090 \ + cosmos.gov.v1.Query/Deposit +``` + +Example Output: + +```bash +{ + "deposit": { + "proposalId": "1", + "depositor": "cosmos1..", + "amount": [ + { + "denom": "stake", + "amount": "10000000" + } + ] + } +} +``` + +#### deposits + +The `Deposits` endpoint allows users to query all deposits for a given proposal. + +Using legacy v1beta1: + +```bash +cosmos.gov.v1beta1.Query/Deposits +``` + +Example: + +```bash +grpcurl -plaintext \ + -d '{"proposal_id":"1"}' \ + localhost:9090 \ + cosmos.gov.v1beta1.Query/Deposits +``` + +Example Output: + +```bash +{ + "deposits": [ + { + "proposalId": "1", + "depositor": "cosmos1..", + "amount": [ + { + "denom": "stake", + "amount": "10000000" + } + ] + } + ], + "pagination": { + "total": "1" + } +} +``` + +Using v1: + +```bash +cosmos.gov.v1.Query/Deposits +``` + +Example: + +```bash +grpcurl -plaintext \ + -d '{"proposal_id":"1"}' \ + localhost:9090 \ + cosmos.gov.v1.Query/Deposits +``` + +Example Output: + +```bash +{ + "deposits": [ + { + "proposalId": "1", + "depositor": "cosmos1..", + "amount": [ + { + "denom": "stake", + "amount": "10000000" + } + ] + } + ], + "pagination": { + "total": "1" + } +} +``` + +#### TallyResult + +The `TallyResult` endpoint allows users to query the tally of a given proposal. + +Using legacy v1beta1: + +```bash +cosmos.gov.v1beta1.Query/TallyResult +``` + +Example: + +```bash +grpcurl -plaintext \ + -d '{"proposal_id":"1"}' \ + localhost:9090 \ + cosmos.gov.v1beta1.Query/TallyResult +``` + +Example Output: + +```bash +{ + "tally": { + "yes": "1000000", + "abstain": "0", + "no": "0", + "noWithVeto": "0" + } +} +``` + +Using v1: + +```bash +cosmos.gov.v1.Query/TallyResult +``` + +Example: + +```bash +grpcurl -plaintext \ + -d '{"proposal_id":"1"}' \ + localhost:9090 \ + cosmos.gov.v1.Query/TallyResult +``` + +Example Output: + +```bash +{ + "tally": { + "yes": "1000000", + "abstain": "0", + "no": "0", + "noWithVeto": "0" + } +} +``` + +### REST + +A user can query the `gov` module using REST endpoints. + +#### proposal + +The `proposals` endpoint allows users to query a given proposal. + +Using legacy v1beta1: + +```bash +/cosmos/gov/v1beta1/proposals/{proposal_id} +``` + +Example: + +```bash +curl localhost:1317/cosmos/gov/v1beta1/proposals/1 +``` + +Example Output: + +```bash +{ + "proposal": { + "proposal_id": "1", + "content": null, + "status": "PROPOSAL_STATUS_VOTING_PERIOD", + "final_tally_result": { + "yes": "0", + "abstain": "0", + "no": "0", + "no_with_veto": "0" + }, + "submit_time": "2022-03-28T11:50:20.819676256Z", + "deposit_end_time": "2022-03-30T11:50:20.819676256Z", + "total_deposit": [ + { + "denom": "stake", + "amount": "10000000010" + } + ], + "voting_start_time": "2022-03-28T14:25:26.644857113Z", + "voting_end_time": "2022-03-30T14:25:26.644857113Z" + } +} +``` + +Using v1: + +```bash +/cosmos/gov/v1/proposals/{proposal_id} +``` + +Example: + +```bash +curl localhost:1317/cosmos/gov/v1/proposals/1 +``` + +Example Output: + +```bash +{ + "proposal": { + "id": "1", + "messages": [ + { + "@type": "/cosmos.bank.v1beta1.MsgSend", + "from_address": "cosmos1..", + "to_address": "cosmos1..", + "amount": [ + { + "denom": "stake", + "amount": "10" + } + ] + } + ], + "status": "PROPOSAL_STATUS_VOTING_PERIOD", + "final_tally_result": { + "yes_count": "0", + "abstain_count": "0", + "no_count": "0", + "no_with_veto_count": "0" + }, + "submit_time": "2022-03-28T11:50:20.819676256Z", + "deposit_end_time": "2022-03-30T11:50:20.819676256Z", + "total_deposit": [ + { + "denom": "stake", + "amount": "10000000" + } + ], + "voting_start_time": "2022-03-28T14:25:26.644857113Z", + "voting_end_time": "2022-03-30T14:25:26.644857113Z", + "metadata": "AQ==", + "title": "Proposal Title", + "summary": "Proposal Summary" + } +} +``` + +#### proposals + +The `proposals` endpoint also allows users to query all proposals with optional filters. + +Using legacy v1beta1: + +```bash +/cosmos/gov/v1beta1/proposals +``` + +Example: + +```bash +curl localhost:1317/cosmos/gov/v1beta1/proposals +``` + +Example Output: + +```bash +{ + "proposals": [ + { + "proposal_id": "1", + "content": null, + "status": "PROPOSAL_STATUS_VOTING_PERIOD", + "final_tally_result": { + "yes": "0", + "abstain": "0", + "no": "0", + "no_with_veto": "0" + }, + "submit_time": "2022-03-28T11:50:20.819676256Z", + "deposit_end_time": "2022-03-30T11:50:20.819676256Z", + "total_deposit": [ + { + "denom": "stake", + "amount": "10000000" + } + ], + "voting_start_time": "2022-03-28T14:25:26.644857113Z", + "voting_end_time": "2022-03-30T14:25:26.644857113Z" + }, + { + "proposal_id": "2", + "content": null, + "status": "PROPOSAL_STATUS_DEPOSIT_PERIOD", + "final_tally_result": { + "yes": "0", + "abstain": "0", + "no": "0", + "no_with_veto": "0" + }, + "submit_time": "2022-03-28T14:02:41.165025015Z", + "deposit_end_time": "2022-03-30T14:02:41.165025015Z", + "total_deposit": [ + { + "denom": "stake", + "amount": "10" + } + ], + "voting_start_time": "0001-01-01T00:00:00Z", + "voting_end_time": "0001-01-01T00:00:00Z" + } + ], + "pagination": { + "next_key": null, + "total": "2" + } +} +``` + +Using v1: + +```bash +/cosmos/gov/v1/proposals +``` + +Example: + +```bash +curl localhost:1317/cosmos/gov/v1/proposals +``` + +Example Output: + +```bash +{ + "proposals": [ + { + "id": "1", + "messages": [ + { + "@type": "/cosmos.bank.v1beta1.MsgSend", + "from_address": "cosmos1..", + "to_address": "cosmos1..", + "amount": [ + { + "denom": "stake", + "amount": "10" + } + ] + } + ], + "status": "PROPOSAL_STATUS_VOTING_PERIOD", + "final_tally_result": { + "yes_count": "0", + "abstain_count": "0", + "no_count": "0", + "no_with_veto_count": "0" + }, + "submit_time": "2022-03-28T11:50:20.819676256Z", + "deposit_end_time": "2022-03-30T11:50:20.819676256Z", + "total_deposit": [ + { + "denom": "stake", + "amount": "10000000010" + } + ], + "voting_start_time": "2022-03-28T14:25:26.644857113Z", + "voting_end_time": "2022-03-30T14:25:26.644857113Z", + "metadata": "AQ==", + "title": "Proposal Title", + "summary": "Proposal Summary" + }, + { + "id": "2", + "messages": [ + { + "@type": "/cosmos.bank.v1beta1.MsgSend", + "from_address": "cosmos1..", + "to_address": "cosmos1..", + "amount": [ + { + "denom": "stake", + "amount": "10" + } + ] + } + ], + "status": "PROPOSAL_STATUS_DEPOSIT_PERIOD", + "final_tally_result": { + "yes_count": "0", + "abstain_count": "0", + "no_count": "0", + "no_with_veto_count": "0" + }, + "submit_time": "2022-03-28T14:02:41.165025015Z", + "deposit_end_time": "2022-03-30T14:02:41.165025015Z", + "total_deposit": [ + { + "denom": "stake", + "amount": "10" + } + ], + "voting_start_time": null, + "voting_end_time": null, + "metadata": "AQ==", + "title": "Proposal Title", + "summary": "Proposal Summary" + } + ], + "pagination": { + "next_key": null, + "total": "2" + } +} +``` + +#### voter vote + +The `votes` endpoint allows users to query a vote for a given proposal. + +Using legacy v1beta1: + +```bash +/cosmos/gov/v1beta1/proposals/{proposal_id}/votes/{voter} +``` + +Example: + +```bash +curl localhost:1317/cosmos/gov/v1beta1/proposals/1/votes/cosmos1.. +``` + +Example Output: + +```bash +{ + "vote": { + "proposal_id": "1", + "voter": "cosmos1..", + "option": "VOTE_OPTION_YES", + "options": [ + { + "option": "VOTE_OPTION_YES", + "weight": "1.000000000000000000" + } + ] + } +} +``` + +Using v1: + +```bash +/cosmos/gov/v1/proposals/{proposal_id}/votes/{voter} +``` + +Example: + +```bash +curl localhost:1317/cosmos/gov/v1/proposals/1/votes/cosmos1.. +``` + +Example Output: + +```bash +{ + "vote": { + "proposal_id": "1", + "voter": "cosmos1..", + "options": [ + { + "option": "VOTE_OPTION_YES", + "weight": "1.000000000000000000" + } + ], + "metadata": "" + } +} +``` + +#### votes + +The `votes` endpoint allows users to query all votes for a given proposal. + +Using legacy v1beta1: + +```bash +/cosmos/gov/v1beta1/proposals/{proposal_id}/votes +``` + +Example: + +```bash +curl localhost:1317/cosmos/gov/v1beta1/proposals/1/votes +``` + +Example Output: + +```bash +{ + "votes": [ + { + "proposal_id": "1", + "voter": "cosmos1..", + "option": "VOTE_OPTION_YES", + "options": [ + { + "option": "VOTE_OPTION_YES", + "weight": "1.000000000000000000" + } + ] + } + ], + "pagination": { + "next_key": null, + "total": "1" + } +} +``` + +Using v1: + +```bash +/cosmos/gov/v1/proposals/{proposal_id}/votes +``` + +Example: + +```bash +curl localhost:1317/cosmos/gov/v1/proposals/1/votes +``` + +Example Output: + +```bash +{ + "votes": [ + { + "proposal_id": "1", + "voter": "cosmos1..", + "options": [ + { + "option": "VOTE_OPTION_YES", + "weight": "1.000000000000000000" + } + ], + "metadata": "" + } + ], + "pagination": { + "next_key": null, + "total": "1" + } +} +``` + +#### params + +The `params` endpoint allows users to query all parameters for the `gov` module. + + + +Using legacy v1beta1: + +```bash +/cosmos/gov/v1beta1/params/{params_type} +``` + +Example: + +```bash +curl localhost:1317/cosmos/gov/v1beta1/params/voting +``` + +Example Output: + +```bash +{ + "voting_params": { + "voting_period": "172800s" + }, + "deposit_params": { + "min_deposit": [ + ], + "max_deposit_period": "0s" + }, + "tally_params": { + "quorum": "0.000000000000000000", + "threshold": "0.000000000000000000", + "veto_threshold": "0.000000000000000000" + } +} +``` + +Using v1: + +```bash +/cosmos/gov/v1/params/{params_type} +``` + +Example: + +```bash +curl localhost:1317/cosmos/gov/v1/params/voting +``` + +Example Output: + +```bash +{ + "voting_params": { + "voting_period": "172800s" + }, + "deposit_params": { + "min_deposit": [ + ], + "max_deposit_period": "0s" + }, + "tally_params": { + "quorum": "0.000000000000000000", + "threshold": "0.000000000000000000", + "veto_threshold": "0.000000000000000000" + } +} +``` + +#### deposits + +The `deposits` endpoint allows users to query a deposit for a given proposal from a given depositor. + +Using legacy v1beta1: + +```bash +/cosmos/gov/v1beta1/proposals/{proposal_id}/deposits/{depositor} +``` + +Example: + +```bash +curl localhost:1317/cosmos/gov/v1beta1/proposals/1/deposits/cosmos1.. +``` + +Example Output: + +```bash +{ + "deposit": { + "proposal_id": "1", + "depositor": "cosmos1..", + "amount": [ + { + "denom": "stake", + "amount": "10000000" + } + ] + } +} +``` + +Using v1: + +```bash +/cosmos/gov/v1/proposals/{proposal_id}/deposits/{depositor} +``` + +Example: + +```bash +curl localhost:1317/cosmos/gov/v1/proposals/1/deposits/cosmos1.. +``` + +Example Output: + +```bash +{ + "deposit": { + "proposal_id": "1", + "depositor": "cosmos1..", + "amount": [ + { + "denom": "stake", + "amount": "10000000" + } + ] + } +} +``` + +#### proposal deposits + +The `deposits` endpoint allows users to query all deposits for a given proposal. + +Using legacy v1beta1: + +```bash +/cosmos/gov/v1beta1/proposals/{proposal_id}/deposits +``` + +Example: + +```bash +curl localhost:1317/cosmos/gov/v1beta1/proposals/1/deposits +``` + +Example Output: + +```bash +{ + "deposits": [ + { + "proposal_id": "1", + "depositor": "cosmos1..", + "amount": [ + { + "denom": "stake", + "amount": "10000000" + } + ] + } + ], + "pagination": { + "next_key": null, + "total": "1" + } +} +``` + +Using v1: + +```bash +/cosmos/gov/v1/proposals/{proposal_id}/deposits +``` + +Example: + +```bash +curl localhost:1317/cosmos/gov/v1/proposals/1/deposits +``` + +Example Output: + +```bash +{ + "deposits": [ + { + "proposal_id": "1", + "depositor": "cosmos1..", + "amount": [ + { + "denom": "stake", + "amount": "10000000" + } + ] + } + ], + "pagination": { + "next_key": null, + "total": "1" + } +} +``` + +#### tally + +The `tally` endpoint allows users to query the tally of a given proposal. + +Using legacy v1beta1: + +```bash +/cosmos/gov/v1beta1/proposals/{proposal_id}/tally +``` + +Example: + +```bash +curl localhost:1317/cosmos/gov/v1beta1/proposals/1/tally +``` + +Example Output: + +```bash +{ + "tally": { + "yes": "1000000", + "abstain": "0", + "no": "0", + "no_with_veto": "0" + } +} +``` + +Using v1: + +```bash +/cosmos/gov/v1/proposals/{proposal_id}/tally +``` + +Example: + +```bash +curl localhost:1317/cosmos/gov/v1/proposals/1/tally +``` + +Example Output: + +```bash +{ + "tally": { + "yes": "1000000", + "abstain": "0", + "no": "0", + "no_with_veto": "0" + } +} +``` + +## Metadata + +The gov module has two locations for metadata where users can provide further context about the on-chain actions they are taking. By default all metadata fields have a 255 character length field where metadata can be stored in json format, either on-chain or off-chain depending on the amount of data required. Here we provide a recommendation for the json structure and where the data should be stored. There are two important factors in making these recommendations. First, that the gov and group modules are consistent with one another, note the number of proposals made by all groups may be quite large. Second, that client applications such as block explorers and governance interfaces have confidence in the consistency of metadata structure accross chains. + +### Proposal + +Location: off-chain as json object stored on IPFS (mirrors [group proposal](../group/README.md#metadata)) + +```json +{ + "title": "", + "authors": [""], + "summary": "", + "details": "", + "proposal_forum_url": "", + "vote_option_context": "", +} +``` + +:::note +The `authors` field is an array of strings, this is to allow for multiple authors to be listed in the metadata. +In v0.46, the `authors` field is a comma-separated string. Frontends are encouraged to support both formats for backwards compatibility. +::: + +### Vote + +Location: on-chain as json within 255 character limit (mirrors [group vote](../group/README.md#metadata)) + +```json +{ + "justification": "", +} +``` + +## Future Improvements + +The current documentation only describes the minimum viable product for the +governance module. Future improvements may include: + +* **`BountyProposals`:** If accepted, a `BountyProposal` creates an open + bounty. The `BountyProposal` specifies how many Atoms will be given upon + completion. These Atoms will be taken from the `reserve pool`. After a + `BountyProposal` is accepted by governance, anybody can submit a + `SoftwareUpgradeProposal` with the code to claim the bounty. Note that once a + `BountyProposal` is accepted, the corresponding funds in the `reserve pool` + are locked so that payment can always be honored. In order to link a + `SoftwareUpgradeProposal` to an open bounty, the submitter of the + `SoftwareUpgradeProposal` will use the `Proposal.LinkedProposal` attribute. + If a `SoftwareUpgradeProposal` linked to an open bounty is accepted by + governance, the funds that were reserved are automatically transferred to the + submitter. +* **Complex delegation:** Delegators could choose other representatives than + their validators. Ultimately, the chain of representatives would always end + up to a validator, but delegators could inherit the vote of their chosen + representative before they inherit the vote of their validator. In other + words, they would only inherit the vote of their validator if their other + appointed representative did not vote. +* **Better process for proposal review:** There would be two parts to + `proposal.Deposit`, one for anti-spam (same as in MVP) and an other one to + reward third party auditors. diff --git a/.gitbook/developers/modules/core/group/README.md b/.gitbook/developers/modules/core/group/README.md new file mode 100644 index 00000000..71d91ccb --- /dev/null +++ b/.gitbook/developers/modules/core/group/README.md @@ -0,0 +1,2166 @@ +--- +sidebar_position: 1 +--- + +# `x/group` + +## Abstract + +The following documents specify the group module. + +This module allows the creation and management of on-chain multisig accounts and enables voting for message execution based on configurable decision policies. + +## Contents + +* [Concepts](#concepts) + * [Group](#group) + * [Group Policy](#group-policy) + * [Decision Policy](#decision-policy) + * [Proposal](#proposal) + * [Pruning](#pruning) +* [State](#state) + * [Group Table](#group-table) + * [Group Member Table](#group-member-table) + * [Group Policy Table](#group-policy-table) + * [Proposal Table](#proposal-table) + * [Vote Table](#vote-table) +* [Msg Service](#msg-service) + * [Msg/CreateGroup](#msgcreategroup) + * [Msg/UpdateGroupMembers](#msgupdategroupmembers) + * [Msg/UpdateGroupAdmin](#msgupdategroupadmin) + * [Msg/UpdateGroupMetadata](#msgupdategroupmetadata) + * [Msg/CreateGroupPolicy](#msgcreategrouppolicy) + * [Msg/CreateGroupWithPolicy](#msgcreategroupwithpolicy) + * [Msg/UpdateGroupPolicyAdmin](#msgupdategrouppolicyadmin) + * [Msg/UpdateGroupPolicyDecisionPolicy](#msgupdategrouppolicydecisionpolicy) + * [Msg/UpdateGroupPolicyMetadata](#msgupdategrouppolicymetadata) + * [Msg/SubmitProposal](#msgsubmitproposal) + * [Msg/WithdrawProposal](#msgwithdrawproposal) + * [Msg/Vote](#msgvote) + * [Msg/Exec](#msgexec) + * [Msg/LeaveGroup](#msgleavegroup) +* [Events](#events) + * [EventCreateGroup](#eventcreategroup) + * [EventUpdateGroup](#eventupdategroup) + * [EventCreateGroupPolicy](#eventcreategrouppolicy) + * [EventUpdateGroupPolicy](#eventupdategrouppolicy) + * [EventCreateProposal](#eventcreateproposal) + * [EventWithdrawProposal](#eventwithdrawproposal) + * [EventVote](#eventvote) + * [EventExec](#eventexec) + * [EventLeaveGroup](#eventleavegroup) + * [EventProposalPruned](#eventproposalpruned) +* [Client](#client) + * [CLI](#cli) + * [gRPC](#grpc) + * [REST](#rest) +* [Metadata](#metadata) + +## Concepts + +### Group + +A group is simply an aggregation of accounts with associated weights. It is not +an account and doesn't have a balance. It doesn't in and of itself have any +sort of voting or decision weight. It does have an "administrator" which has +the ability to add, remove and update members in the group. Note that a +group policy account could be an administrator of a group, and that the +administrator doesn't necessarily have to be a member of the group. + +### Group Policy + +A group policy is an account associated with a group and a decision policy. +Group policies are abstracted from groups because a single group may have +multiple decision policies for different types of actions. Managing group +membership separately from decision policies results in the least overhead +and keeps membership consistent across different policies. The pattern that +is recommended is to have a single master group policy for a given group, +and then to create separate group policies with different decision policies +and delegate the desired permissions from the master account to +those "sub-accounts" using the `x/authz` module. + +### Decision Policy + +A decision policy is the mechanism by which members of a group can vote on +proposals, as well as the rules that dictate whether a proposal should pass +or not based on its tally outcome. + +All decision policies generally would have a mininum execution period and a +maximum voting window. The minimum execution period is the minimum amount of time +that must pass after submission in order for a proposal to potentially be executed, and it may +be set to 0. The maximum voting window is the maximum time after submission that a proposal may +be voted on before it is tallied. + +The chain developer also defines an app-wide maximum execution period, which is +the maximum amount of time after a proposal's voting period end where users are +allowed to execute a proposal. + +The current group module comes shipped with two decision policies: threshold +and percentage. Any chain developer can extend upon these two, by creating +custom decision policies, as long as they adhere to the `DecisionPolicy` +interface: + +```go reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/x/group/types.go#L27-L45 +``` + +#### Threshold decision policy + +A threshold decision policy defines a threshold of yes votes (based on a tally +of voter weights) that must be achieved in order for a proposal to pass. For +this decision policy, abstain and veto are simply treated as no's. + +This decision policy also has a VotingPeriod window and a MinExecutionPeriod +window. The former defines the duration after proposal submission where members +are allowed to vote, after which tallying is performed. The latter specifies +the minimum duration after proposal submission where the proposal can be +executed. If set to 0, then the proposal is allowed to be executed immediately +on submission (using the `TRY_EXEC` option). Obviously, MinExecutionPeriod +cannot be greater than VotingPeriod+MaxExecutionPeriod (where MaxExecution is +the app-defined duration that specifies the window after voting ended where a +proposal can be executed). + +#### Percentage decision policy + +A percentage decision policy is similar to a threshold decision policy, except +that the threshold is not defined as a constant weight, but as a percentage. +It's more suited for groups where the group members' weights can be updated, as +the percentage threshold stays the same, and doesn't depend on how those member +weights get updated. + +Same as the Threshold decision policy, the percentage decision policy has the +two VotingPeriod and MinExecutionPeriod parameters. + +### Proposal + +Any member(s) of a group can submit a proposal for a group policy account to decide upon. +A proposal consists of a set of messages that will be executed if the proposal +passes as well as any metadata associated with the proposal. + +#### Voting + +There are four choices to choose while voting - yes, no, abstain and veto. Not +all decision policies will take the four choices into account. Votes can contain some optional metadata. +In the current implementation, the voting window begins as soon as a proposal +is submitted, and the end is defined by the group policy's decision policy. + +#### Withdrawing Proposals + +Proposals can be withdrawn any time before the voting period end, either by the +admin of the group policy or by one of the proposers. Once withdrawn, it is +marked as `PROPOSAL_STATUS_WITHDRAWN`, and no more voting or execution is +allowed on it. + +#### Aborted Proposals + +If the group policy is updated during the voting period of the proposal, then +the proposal is marked as `PROPOSAL_STATUS_ABORTED`, and no more voting or +execution is allowed on it. This is because the group policy defines the rules +of proposal voting and execution, so if those rules change during the lifecycle +of a proposal, then the proposal should be marked as stale. + +#### Tallying + +Tallying is the counting of all votes on a proposal. It happens only once in +the lifecycle of a proposal, but can be triggered by two factors, whichever +happens first: + +* either someone tries to execute the proposal (see next section), which can + happen on a `Msg/Exec` transaction, or a `Msg/{SubmitProposal,Vote}` + transaction with the `Exec` field set. When a proposal execution is attempted, + a tally is done first to make sure the proposal passes. +* or on `EndBlock` when the proposal's voting period end just passed. + +If the tally result passes the decision policy's rules, then the proposal is +marked as `PROPOSAL_STATUS_ACCEPTED`, or else it is marked as +`PROPOSAL_STATUS_REJECTED`. In any case, no more voting is allowed anymore, and the tally +result is persisted to state in the proposal's `FinalTallyResult`. + +#### Executing Proposals + +Proposals are executed only when the tallying is done, and the group account's +decision policy allows the proposal to pass based on the tally outcome. They +are marked by the status `PROPOSAL_STATUS_ACCEPTED`. Execution must happen +before a duration of `MaxExecutionPeriod` (set by the chain developer) after +each proposal's voting period end. + +Proposals will not be automatically executed by the chain in this current design, +but rather a user must submit a `Msg/Exec` transaction to attempt to execute the +proposal based on the current votes and decision policy. Any user (not only the +group members) can execute proposals that have been accepted, and execution fees are +paid by the proposal executor. +It's also possible to try to execute a proposal immediately on creation or on +new votes using the `Exec` field of `Msg/SubmitProposal` and `Msg/Vote` requests. +In the former case, proposers signatures are considered as yes votes. +In these cases, if the proposal can't be executed (i.e. it didn't pass the +decision policy's rules), it will still be opened for new votes and +could be tallied and executed later on. + +A successful proposal execution will have its `ExecutorResult` marked as +`PROPOSAL_EXECUTOR_RESULT_SUCCESS`. The proposal will be automatically pruned +after execution. On the other hand, a failed proposal execution will be marked +as `PROPOSAL_EXECUTOR_RESULT_FAILURE`. Such a proposal can be re-executed +multiple times, until it expires after `MaxExecutionPeriod` after voting period +end. + +### Pruning + +Proposals and votes are automatically pruned to avoid state bloat. + +Votes are pruned: + +* either after a successful tally, i.e. a tally whose result passes the decision + policy's rules, which can be trigged by a `Msg/Exec` or a + `Msg/{SubmitProposal,Vote}` with the `Exec` field set, +* or on `EndBlock` right after the proposal's voting period end. This applies to proposals with status `aborted` or `withdrawn` too. + +whichever happens first. + +Proposals are pruned: + +* on `EndBlock` whose proposal status is `withdrawn` or `aborted` on proposal's voting period end before tallying, +* and either after a successful proposal execution, +* or on `EndBlock` right after the proposal's `voting_period_end` + + `max_execution_period` (defined as an app-wide configuration) is passed, + +whichever happens first. + +## State + +The `group` module uses the `orm` package which provides table storage with support for +primary keys and secondary indexes. `orm` also defines `Sequence` which is a persistent unique key generator based on a counter that can be used along with `Table`s. + +Here's the list of tables and associated sequences and indexes stored as part of the `group` module. + +### Group Table + +The `groupTable` stores `GroupInfo`: `0x0 | BigEndian(GroupId) -> ProtocolBuffer(GroupInfo)`. + +#### groupSeq + +The value of `groupSeq` is incremented when creating a new group and corresponds to the new `GroupId`: `0x1 | 0x1 -> BigEndian`. + +The second `0x1` corresponds to the ORM `sequenceStorageKey`. + +#### groupByAdminIndex + +`groupByAdminIndex` allows to retrieve groups by admin address: +`0x2 | len([]byte(group.Admin)) | []byte(group.Admin) | BigEndian(GroupId) -> []byte()`. + +### Group Member Table + +The `groupMemberTable` stores `GroupMember`s: `0x10 | BigEndian(GroupId) | []byte(member.Address) -> ProtocolBuffer(GroupMember)`. + +The `groupMemberTable` is a primary key table and its `PrimaryKey` is given by +`BigEndian(GroupId) | []byte(member.Address)` which is used by the following indexes. + +#### groupMemberByGroupIndex + +`groupMemberByGroupIndex` allows to retrieve group members by group id: +`0x11 | BigEndian(GroupId) | PrimaryKey -> []byte()`. + +#### groupMemberByMemberIndex + +`groupMemberByMemberIndex` allows to retrieve group members by member address: +`0x12 | len([]byte(member.Address)) | []byte(member.Address) | PrimaryKey -> []byte()`. + +### Group Policy Table + +The `groupPolicyTable` stores `GroupPolicyInfo`: `0x20 | len([]byte(Address)) | []byte(Address) -> ProtocolBuffer(GroupPolicyInfo)`. + +The `groupPolicyTable` is a primary key table and its `PrimaryKey` is given by +`len([]byte(Address)) | []byte(Address)` which is used by the following indexes. + +#### groupPolicySeq + +The value of `groupPolicySeq` is incremented when creating a new group policy and is used to generate the new group policy account `Address`: +`0x21 | 0x1 -> BigEndian`. + +The second `0x1` corresponds to the ORM `sequenceStorageKey`. + +#### groupPolicyByGroupIndex + +`groupPolicyByGroupIndex` allows to retrieve group policies by group id: +`0x22 | BigEndian(GroupId) | PrimaryKey -> []byte()`. + +#### groupPolicyByAdminIndex + +`groupPolicyByAdminIndex` allows to retrieve group policies by admin address: +`0x23 | len([]byte(Address)) | []byte(Address) | PrimaryKey -> []byte()`. + +### Proposal Table + +The `proposalTable` stores `Proposal`s: `0x30 | BigEndian(ProposalId) -> ProtocolBuffer(Proposal)`. + +#### proposalSeq + +The value of `proposalSeq` is incremented when creating a new proposal and corresponds to the new `ProposalId`: `0x31 | 0x1 -> BigEndian`. + +The second `0x1` corresponds to the ORM `sequenceStorageKey`. + +#### proposalByGroupPolicyIndex + +`proposalByGroupPolicyIndex` allows to retrieve proposals by group policy account address: +`0x32 | len([]byte(account.Address)) | []byte(account.Address) | BigEndian(ProposalId) -> []byte()`. + +#### ProposalsByVotingPeriodEndIndex + +`proposalsByVotingPeriodEndIndex` allows to retrieve proposals sorted by chronological `voting_period_end`: +`0x33 | sdk.FormatTimeBytes(proposal.VotingPeriodEnd) | BigEndian(ProposalId) -> []byte()`. + +This index is used when tallying the proposal votes at the end of the voting period, and for pruning proposals at `VotingPeriodEnd + MaxExecutionPeriod`. + +### Vote Table + +The `voteTable` stores `Vote`s: `0x40 | BigEndian(ProposalId) | []byte(voter.Address) -> ProtocolBuffer(Vote)`. + +The `voteTable` is a primary key table and its `PrimaryKey` is given by +`BigEndian(ProposalId) | []byte(voter.Address)` which is used by the following indexes. + +#### voteByProposalIndex + +`voteByProposalIndex` allows to retrieve votes by proposal id: +`0x41 | BigEndian(ProposalId) | PrimaryKey -> []byte()`. + +#### voteByVoterIndex + +`voteByVoterIndex` allows to retrieve votes by voter address: +`0x42 | len([]byte(voter.Address)) | []byte(voter.Address) | PrimaryKey -> []byte()`. + +## Msg Service + +### Msg/CreateGroup + +A new group can be created with the `MsgCreateGroup`, which has an admin address, a list of members and some optional metadata. + +The metadata has a maximum length that is chosen by the app developer, and +passed into the group keeper as a config. + +```go reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/proto/cosmos/group/v1/tx.proto#L67-L80 +``` + +It's expected to fail if + +* metadata length is greater than `MaxMetadataLen` config +* members are not correctly set (e.g. wrong address format, duplicates, or with 0 weight). + +### Msg/UpdateGroupMembers + +Group members can be updated with the `UpdateGroupMembers`. + +```go reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/proto/cosmos/group/v1/tx.proto#L88-L102 +``` + +In the list of `MemberUpdates`, an existing member can be removed by setting its weight to 0. + +It's expected to fail if: + +* the signer is not the admin of the group. +* for any one of the associated group policies, if its decision policy's `Validate()` method fails against the updated group. + +### Msg/UpdateGroupAdmin + +The `UpdateGroupAdmin` can be used to update a group admin. + +```go reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/proto/cosmos/group/v1/tx.proto#L107-L120 +``` + +It's expected to fail if the signer is not the admin of the group. + +### Msg/UpdateGroupMetadata + +The `UpdateGroupMetadata` can be used to update a group metadata. + +```go reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/proto/cosmos/group/v1/tx.proto#L125-L138 +``` + +It's expected to fail if: + +* new metadata length is greater than `MaxMetadataLen` config. +* the signer is not the admin of the group. + +### Msg/CreateGroupPolicy + +A new group policy can be created with the `MsgCreateGroupPolicy`, which has an admin address, a group id, a decision policy and some optional metadata. + +```go reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/proto/cosmos/group/v1/tx.proto#L147-L165 +``` + +It's expected to fail if: + +* the signer is not the admin of the group. +* metadata length is greater than `MaxMetadataLen` config. +* the decision policy's `Validate()` method doesn't pass against the group. + +### Msg/CreateGroupWithPolicy + +A new group with policy can be created with the `MsgCreateGroupWithPolicy`, which has an admin address, a list of members, a decision policy, a `group_policy_as_admin` field to optionally set group and group policy admin with group policy address and some optional metadata for group and group policy. + +```go reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/proto/cosmos/group/v1/tx.proto#L191-L215 +``` + +It's expected to fail for the same reasons as `Msg/CreateGroup` and `Msg/CreateGroupPolicy`. + +### Msg/UpdateGroupPolicyAdmin + +The `UpdateGroupPolicyAdmin` can be used to update a group policy admin. + +```go reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/proto/cosmos/group/v1/tx.proto#L173-L186 +``` + +It's expected to fail if the signer is not the admin of the group policy. + +### Msg/UpdateGroupPolicyDecisionPolicy + +The `UpdateGroupPolicyDecisionPolicy` can be used to update a decision policy. + +```go reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/proto/cosmos/group/v1/tx.proto#L226-L241 +``` + +It's expected to fail if: + +* the signer is not the admin of the group policy. +* the new decision policy's `Validate()` method doesn't pass against the group. + +### Msg/UpdateGroupPolicyMetadata + +The `UpdateGroupPolicyMetadata` can be used to update a group policy metadata. + +```go reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/proto/cosmos/group/v1/tx.proto#L246-L259 +``` + +It's expected to fail if: + +* new metadata length is greater than `MaxMetadataLen` config. +* the signer is not the admin of the group. + +### Msg/SubmitProposal + +A new proposal can be created with the `MsgSubmitProposal`, which has a group policy account address, a list of proposers addresses, a list of messages to execute if the proposal is accepted and some optional metadata. +An optional `Exec` value can be provided to try to execute the proposal immediately after proposal creation. Proposers signatures are considered as yes votes in this case. + +```go reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/proto/cosmos/group/v1/tx.proto#L281-L315 +``` + +It's expected to fail if: + +* metadata, title, or summary length is greater than `MaxMetadataLen` config. +* if any of the proposers is not a group member. + +### Msg/WithdrawProposal + +A proposal can be withdrawn using `MsgWithdrawProposal` which has an `address` (can be either a proposer or the group policy admin) and a `proposal_id` (which has to be withdrawn). + +```go reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/proto/cosmos/group/v1/tx.proto#L323-L333 +``` + +It's expected to fail if: + +* the signer is neither the group policy admin nor proposer of the proposal. +* the proposal is already closed or aborted. + +### Msg/Vote + +A new vote can be created with the `MsgVote`, given a proposal id, a voter address, a choice (yes, no, veto or abstain) and some optional metadata. +An optional `Exec` value can be provided to try to execute the proposal immediately after voting. + +```go reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/proto/cosmos/group/v1/tx.proto#L338-L358 +``` + +It's expected to fail if: + +* metadata length is greater than `MaxMetadataLen` config. +* the proposal is not in voting period anymore. + +### Msg/Exec + +A proposal can be executed with the `MsgExec`. + +```go reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/proto/cosmos/group/v1/tx.proto#L363-L373 +``` + +The messages that are part of this proposal won't be executed if: + +* the proposal has not been accepted by the group policy. +* the proposal has already been successfully executed. + +### Msg/LeaveGroup + +The `MsgLeaveGroup` allows group member to leave a group. + +```go reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/proto/cosmos/group/v1/tx.proto#L381-L391 +``` + +It's expected to fail if: + +* the group member is not part of the group. +* for any one of the associated group policies, if its decision policy's `Validate()` method fails against the updated group. + +## Events + +The group module emits the following events: + +### EventCreateGroup + +| Type | Attribute Key | Attribute Value | +| -------------------------------- | ------------- | -------------------------------- | +| message | action | /cosmos.group.v1.Msg/CreateGroup | +| cosmos.group.v1.EventCreateGroup | group_id | {groupId} | + +### EventUpdateGroup + +| Type | Attribute Key | Attribute Value | +| -------------------------------- | ------------- | ---------------------------------------------------------- | +| message | action | /cosmos.group.v1.Msg/UpdateGroup{Admin\|Metadata\|Members} | +| cosmos.group.v1.EventUpdateGroup | group_id | {groupId} | + +### EventCreateGroupPolicy + +| Type | Attribute Key | Attribute Value | +| -------------------------------------- | ------------- | -------------------------------------- | +| message | action | /cosmos.group.v1.Msg/CreateGroupPolicy | +| cosmos.group.v1.EventCreateGroupPolicy | address | {groupPolicyAddress} | + +### EventUpdateGroupPolicy + +| Type | Attribute Key | Attribute Value | +| -------------------------------------- | ------------- | ----------------------------------------------------------------------- | +| message | action | /cosmos.group.v1.Msg/UpdateGroupPolicy{Admin\|Metadata\|DecisionPolicy} | +| cosmos.group.v1.EventUpdateGroupPolicy | address | {groupPolicyAddress} | + +### EventCreateProposal + +| Type | Attribute Key | Attribute Value | +| ----------------------------------- | ------------- | ----------------------------------- | +| message | action | /cosmos.group.v1.Msg/CreateProposal | +| cosmos.group.v1.EventCreateProposal | proposal_id | {proposalId} | + +### EventWithdrawProposal + +| Type | Attribute Key | Attribute Value | +| ------------------------------------- | ------------- | ------------------------------------- | +| message | action | /cosmos.group.v1.Msg/WithdrawProposal | +| cosmos.group.v1.EventWithdrawProposal | proposal_id | {proposalId} | + +### EventVote + +| Type | Attribute Key | Attribute Value | +| ------------------------- | ------------- | ------------------------- | +| message | action | /cosmos.group.v1.Msg/Vote | +| cosmos.group.v1.EventVote | proposal_id | {proposalId} | + +## EventExec + +| Type | Attribute Key | Attribute Value | +| ------------------------- | ------------- | ------------------------- | +| message | action | /cosmos.group.v1.Msg/Exec | +| cosmos.group.v1.EventExec | proposal_id | {proposalId} | +| cosmos.group.v1.EventExec | logs | {logs_string} | + +### EventLeaveGroup + +| Type | Attribute Key | Attribute Value | +| ------------------------------- | ------------- | ------------------------------- | +| message | action | /cosmos.group.v1.Msg/LeaveGroup | +| cosmos.group.v1.EventLeaveGroup | proposal_id | {proposalId} | +| cosmos.group.v1.EventLeaveGroup | address | {address} | + +### EventProposalPruned + +| Type | Attribute Key | Attribute Value | +|-------------------------------------|---------------|---------------------------------| +| message | action | /cosmos.group.v1.Msg/LeaveGroup | +| cosmos.group.v1.EventProposalPruned | proposal_id | {proposalId} | +| cosmos.group.v1.EventProposalPruned | status | {ProposalStatus} | +| cosmos.group.v1.EventProposalPruned | tally_result | {TallyResult} | + + +## Client + +### CLI + +A user can query and interact with the `group` module using the CLI. + +#### Query + +The `query` commands allow users to query `group` state. + +```bash +simd query group --help +``` + +##### group-info + +The `group-info` command allows users to query for group info by given group id. + +```bash +simd query group group-info [id] [flags] +``` + +Example: + +```bash +simd query group group-info 1 +``` + +Example Output: + +```bash +admin: cosmos1.. +group_id: "1" +metadata: AQ== +total_weight: "3" +version: "1" +``` + +##### group-policy-info + +The `group-policy-info` command allows users to query for group policy info by account address of group policy . + +```bash +simd query group group-policy-info [group-policy-account] [flags] +``` + +Example: + +```bash +simd query group group-policy-info cosmos1.. +``` + +Example Output: + +```bash +address: cosmos1.. +admin: cosmos1.. +decision_policy: + '@type': /cosmos.group.v1.ThresholdDecisionPolicy + threshold: "1" + windows: + min_execution_period: 0s + voting_period: 432000s +group_id: "1" +metadata: AQ== +version: "1" +``` + +##### group-members + +The `group-members` command allows users to query for group members by group id with pagination flags. + +```bash +simd query group group-members [id] [flags] +``` + +Example: + +```bash +simd query group group-members 1 +``` + +Example Output: + +```bash +members: +- group_id: "1" + member: + address: cosmos1.. + metadata: AQ== + weight: "2" +- group_id: "1" + member: + address: cosmos1.. + metadata: AQ== + weight: "1" +pagination: + next_key: null + total: "2" +``` + +##### groups-by-admin + +The `groups-by-admin` command allows users to query for groups by admin account address with pagination flags. + +```bash +simd query group groups-by-admin [admin] [flags] +``` + +Example: + +```bash +simd query group groups-by-admin cosmos1.. +``` + +Example Output: + +```bash +groups: +- admin: cosmos1.. + group_id: "1" + metadata: AQ== + total_weight: "3" + version: "1" +- admin: cosmos1.. + group_id: "2" + metadata: AQ== + total_weight: "3" + version: "1" +pagination: + next_key: null + total: "2" +``` + +##### group-policies-by-group + +The `group-policies-by-group` command allows users to query for group policies by group id with pagination flags. + +```bash +simd query group group-policies-by-group [group-id] [flags] +``` + +Example: + +```bash +simd query group group-policies-by-group 1 +``` + +Example Output: + +```bash +group_policies: +- address: cosmos1.. + admin: cosmos1.. + decision_policy: + '@type': /cosmos.group.v1.ThresholdDecisionPolicy + threshold: "1" + windows: + min_execution_period: 0s + voting_period: 432000s + group_id: "1" + metadata: AQ== + version: "1" +- address: cosmos1.. + admin: cosmos1.. + decision_policy: + '@type': /cosmos.group.v1.ThresholdDecisionPolicy + threshold: "1" + windows: + min_execution_period: 0s + voting_period: 432000s + group_id: "1" + metadata: AQ== + version: "1" +pagination: + next_key: null + total: "2" +``` + +##### group-policies-by-admin + +The `group-policies-by-admin` command allows users to query for group policies by admin account address with pagination flags. + +```bash +simd query group group-policies-by-admin [admin] [flags] +``` + +Example: + +```bash +simd query group group-policies-by-admin cosmos1.. +``` + +Example Output: + +```bash +group_policies: +- address: cosmos1.. + admin: cosmos1.. + decision_policy: + '@type': /cosmos.group.v1.ThresholdDecisionPolicy + threshold: "1" + windows: + min_execution_period: 0s + voting_period: 432000s + group_id: "1" + metadata: AQ== + version: "1" +- address: cosmos1.. + admin: cosmos1.. + decision_policy: + '@type': /cosmos.group.v1.ThresholdDecisionPolicy + threshold: "1" + windows: + min_execution_period: 0s + voting_period: 432000s + group_id: "1" + metadata: AQ== + version: "1" +pagination: + next_key: null + total: "2" +``` + +##### proposal + +The `proposal` command allows users to query for proposal by id. + +```bash +simd query group proposal [id] [flags] +``` + +Example: + +```bash +simd query group proposal 1 +``` + +Example Output: + +```bash +proposal: + address: cosmos1.. + executor_result: EXECUTOR_RESULT_NOT_RUN + group_policy_version: "1" + group_version: "1" + metadata: AQ== + msgs: + - '@type': /cosmos.bank.v1beta1.MsgSend + amount: + - amount: "100000000" + denom: stake + from_address: cosmos1.. + to_address: cosmos1.. + proposal_id: "1" + proposers: + - cosmos1.. + result: RESULT_UNFINALIZED + status: STATUS_SUBMITTED + submitted_at: "2021-12-17T07:06:26.310638964Z" + windows: + min_execution_period: 0s + voting_period: 432000s + vote_state: + abstain_count: "0" + no_count: "0" + veto_count: "0" + yes_count: "0" + summary: "Summary" + title: "Title" +``` + +##### proposals-by-group-policy + +The `proposals-by-group-policy` command allows users to query for proposals by account address of group policy with pagination flags. + +```bash +simd query group proposals-by-group-policy [group-policy-account] [flags] +``` + +Example: + +```bash +simd query group proposals-by-group-policy cosmos1.. +``` + +Example Output: + +```bash +pagination: + next_key: null + total: "1" +proposals: +- address: cosmos1.. + executor_result: EXECUTOR_RESULT_NOT_RUN + group_policy_version: "1" + group_version: "1" + metadata: AQ== + msgs: + - '@type': /cosmos.bank.v1beta1.MsgSend + amount: + - amount: "100000000" + denom: stake + from_address: cosmos1.. + to_address: cosmos1.. + proposal_id: "1" + proposers: + - cosmos1.. + result: RESULT_UNFINALIZED + status: STATUS_SUBMITTED + submitted_at: "2021-12-17T07:06:26.310638964Z" + windows: + min_execution_period: 0s + voting_period: 432000s + vote_state: + abstain_count: "0" + no_count: "0" + veto_count: "0" + yes_count: "0" + summary: "Summary" + title: "Title" +``` + +##### vote + +The `vote` command allows users to query for vote by proposal id and voter account address. + +```bash +simd query group vote [proposal-id] [voter] [flags] +``` + +Example: + +```bash +simd query group vote 1 cosmos1.. +``` + +Example Output: + +```bash +vote: + choice: CHOICE_YES + metadata: AQ== + proposal_id: "1" + submitted_at: "2021-12-17T08:05:02.490164009Z" + voter: cosmos1.. +``` + +##### votes-by-proposal + +The `votes-by-proposal` command allows users to query for votes by proposal id with pagination flags. + +```bash +simd query group votes-by-proposal [proposal-id] [flags] +``` + +Example: + +```bash +simd query group votes-by-proposal 1 +``` + +Example Output: + +```bash +pagination: + next_key: null + total: "1" +votes: +- choice: CHOICE_YES + metadata: AQ== + proposal_id: "1" + submitted_at: "2021-12-17T08:05:02.490164009Z" + voter: cosmos1.. +``` + +##### votes-by-voter + +The `votes-by-voter` command allows users to query for votes by voter account address with pagination flags. + +```bash +simd query group votes-by-voter [voter] [flags] +``` + +Example: + +```bash +simd query group votes-by-voter cosmos1.. +``` + +Example Output: + +```bash +pagination: + next_key: null + total: "1" +votes: +- choice: CHOICE_YES + metadata: AQ== + proposal_id: "1" + submitted_at: "2021-12-17T08:05:02.490164009Z" + voter: cosmos1.. +``` + +### Transactions + +The `tx` commands allow users to interact with the `group` module. + +```bash +simd tx group --help +``` + +#### create-group + +The `create-group` command allows users to create a group which is an aggregation of member accounts with associated weights and +an administrator account. + +```bash +simd tx group create-group [admin] [metadata] [members-json-file] +``` + +Example: + +```bash +simd tx group create-group cosmos1.. "AQ==" members.json +``` + +#### update-group-admin + +The `update-group-admin` command allows users to update a group's admin. + +```bash +simd tx group update-group-admin [admin] [group-id] [new-admin] [flags] +``` + +Example: + +```bash +simd tx group update-group-admin cosmos1.. 1 cosmos1.. +``` + +#### update-group-members + +The `update-group-members` command allows users to update a group's members. + +```bash +simd tx group update-group-members [admin] [group-id] [members-json-file] [flags] +``` + +Example: + +```bash +simd tx group update-group-members cosmos1.. 1 members.json +``` + +#### update-group-metadata + +The `update-group-metadata` command allows users to update a group's metadata. + +```bash +simd tx group update-group-metadata [admin] [group-id] [metadata] [flags] +``` + +Example: + +```bash +simd tx group update-group-metadata cosmos1.. 1 "AQ==" +``` + +#### create-group-policy + +The `create-group-policy` command allows users to create a group policy which is an account associated with a group and a decision policy. + +```bash +simd tx group create-group-policy [admin] [group-id] [metadata] [decision-policy] [flags] +``` + +Example: + +```bash +simd tx group create-group-policy cosmos1.. 1 "AQ==" '{"@type":"/cosmos.group.v1.ThresholdDecisionPolicy", "threshold":"1", "windows": {"voting_period": "120h", "min_execution_period": "0s"}}' +``` + +#### create-group-with-policy + +The `create-group-with-policy` command allows users to create a group which is an aggregation of member accounts with associated weights and an administrator account with decision policy. If the `--group-policy-as-admin` flag is set to `true`, the group policy address becomes the group and group policy admin. + +```bash +simd tx group create-group-with-policy [admin] [group-metadata] [group-policy-metadata] [members-json-file] [decision-policy] [flags] +``` + +Example: + +```bash +simd tx group create-group-with-policy cosmos1.. "AQ==" "AQ==" members.json '{"@type":"/cosmos.group.v1.ThresholdDecisionPolicy", "threshold":"1", "windows": {"voting_period": "120h", "min_execution_period": "0s"}}' +``` + +#### update-group-policy-admin + +The `update-group-policy-admin` command allows users to update a group policy admin. + +```bash +simd tx group update-group-policy-admin [admin] [group-policy-account] [new-admin] [flags] +``` + +Example: + +```bash +simd tx group update-group-policy-admin cosmos1.. cosmos1.. cosmos1.. +``` + +#### update-group-policy-metadata + +The `update-group-policy-metadata` command allows users to update a group policy metadata. + +```bash +simd tx group update-group-policy-metadata [admin] [group-policy-account] [new-metadata] [flags] +``` + +Example: + +```bash +simd tx group update-group-policy-metadata cosmos1.. cosmos1.. "AQ==" +``` + +#### update-group-policy-decision-policy + +The `update-group-policy-decision-policy` command allows users to update a group policy's decision policy. + +```bash +simd tx group update-group-policy-decision-policy [admin] [group-policy-account] [decision-policy] [flags] +``` + +Example: + +```bash +simd tx group update-group-policy-decision-policy cosmos1.. cosmos1.. '{"@type":"/cosmos.group.v1.ThresholdDecisionPolicy", "threshold":"2", "windows": {"voting_period": "120h", "min_execution_period": "0s"}}' +``` + +#### submit-proposal + +The `submit-proposal` command allows users to submit a new proposal. + +```bash +simd tx group submit-proposal [group-policy-account] [proposer[,proposer]*] [msg_tx_json_file] [metadata] [flags] +``` + +Example: + +```bash +simd tx group submit-proposal cosmos1.. cosmos1.. msg_tx.json "AQ==" +``` + +#### withdraw-proposal + +The `withdraw-proposal` command allows users to withdraw a proposal. + +```bash +simd tx group withdraw-proposal [proposal-id] [group-policy-admin-or-proposer] +``` + +Example: + +```bash +simd tx group withdraw-proposal 1 cosmos1.. +``` + +#### vote + +The `vote` command allows users to vote on a proposal. + +```bash +simd tx group vote proposal-id] [voter] [choice] [metadata] [flags] +``` + +Example: + +```bash +simd tx group vote 1 cosmos1.. CHOICE_YES "AQ==" +``` + +#### exec + +The `exec` command allows users to execute a proposal. + +```bash +simd tx group exec [proposal-id] [flags] +``` + +Example: + +```bash +simd tx group exec 1 +``` + +#### leave-group + +The `leave-group` command allows group member to leave the group. + +```bash +simd tx group leave-group [member-address] [group-id] +``` + +Example: + +```bash +simd tx group leave-group cosmos1... 1 +``` + +### gRPC + +A user can query the `group` module using gRPC endpoints. + +#### GroupInfo + +The `GroupInfo` endpoint allows users to query for group info by given group id. + +```bash +cosmos.group.v1.Query/GroupInfo +``` + +Example: + +```bash +grpcurl -plaintext \ + -d '{"group_id":1}' localhost:9090 cosmos.group.v1.Query/GroupInfo +``` + +Example Output: + +```bash +{ + "info": { + "groupId": "1", + "admin": "cosmos1..", + "metadata": "AQ==", + "version": "1", + "totalWeight": "3" + } +} +``` + +#### GroupPolicyInfo + +The `GroupPolicyInfo` endpoint allows users to query for group policy info by account address of group policy. + +```bash +cosmos.group.v1.Query/GroupPolicyInfo +``` + +Example: + +```bash +grpcurl -plaintext \ + -d '{"address":"cosmos1.."}' localhost:9090 cosmos.group.v1.Query/GroupPolicyInfo +``` + +Example Output: + +```bash +{ + "info": { + "address": "cosmos1..", + "groupId": "1", + "admin": "cosmos1..", + "version": "1", + "decisionPolicy": {"@type":"/cosmos.group.v1.ThresholdDecisionPolicy","threshold":"1","windows": {"voting_period": "120h", "min_execution_period": "0s"}}, + } +} +``` + +#### GroupMembers + +The `GroupMembers` endpoint allows users to query for group members by group id with pagination flags. + +```bash +cosmos.group.v1.Query/GroupMembers +``` + +Example: + +```bash +grpcurl -plaintext \ + -d '{"group_id":"1"}' localhost:9090 cosmos.group.v1.Query/GroupMembers +``` + +Example Output: + +```bash +{ + "members": [ + { + "groupId": "1", + "member": { + "address": "cosmos1..", + "weight": "1" + } + }, + { + "groupId": "1", + "member": { + "address": "cosmos1..", + "weight": "2" + } + } + ], + "pagination": { + "total": "2" + } +} +``` + +#### GroupsByAdmin + +The `GroupsByAdmin` endpoint allows users to query for groups by admin account address with pagination flags. + +```bash +cosmos.group.v1.Query/GroupsByAdmin +``` + +Example: + +```bash +grpcurl -plaintext \ + -d '{"admin":"cosmos1.."}' localhost:9090 cosmos.group.v1.Query/GroupsByAdmin +``` + +Example Output: + +```bash +{ + "groups": [ + { + "groupId": "1", + "admin": "cosmos1..", + "metadata": "AQ==", + "version": "1", + "totalWeight": "3" + }, + { + "groupId": "2", + "admin": "cosmos1..", + "metadata": "AQ==", + "version": "1", + "totalWeight": "3" + } + ], + "pagination": { + "total": "2" + } +} +``` + +#### GroupPoliciesByGroup + +The `GroupPoliciesByGroup` endpoint allows users to query for group policies by group id with pagination flags. + +```bash +cosmos.group.v1.Query/GroupPoliciesByGroup +``` + +Example: + +```bash +grpcurl -plaintext \ + -d '{"group_id":"1"}' localhost:9090 cosmos.group.v1.Query/GroupPoliciesByGroup +``` + +Example Output: + +```bash +{ + "GroupPolicies": [ + { + "address": "cosmos1..", + "groupId": "1", + "admin": "cosmos1..", + "version": "1", + "decisionPolicy": {"@type":"/cosmos.group.v1.ThresholdDecisionPolicy","threshold":"1","windows":{"voting_period": "120h", "min_execution_period": "0s"}}, + }, + { + "address": "cosmos1..", + "groupId": "1", + "admin": "cosmos1..", + "version": "1", + "decisionPolicy": {"@type":"/cosmos.group.v1.ThresholdDecisionPolicy","threshold":"1","windows":{"voting_period": "120h", "min_execution_period": "0s"}}, + } + ], + "pagination": { + "total": "2" + } +} +``` + +#### GroupPoliciesByAdmin + +The `GroupPoliciesByAdmin` endpoint allows users to query for group policies by admin account address with pagination flags. + +```bash +cosmos.group.v1.Query/GroupPoliciesByAdmin +``` + +Example: + +```bash +grpcurl -plaintext \ + -d '{"admin":"cosmos1.."}' localhost:9090 cosmos.group.v1.Query/GroupPoliciesByAdmin +``` + +Example Output: + +```bash +{ + "GroupPolicies": [ + { + "address": "cosmos1..", + "groupId": "1", + "admin": "cosmos1..", + "version": "1", + "decisionPolicy": {"@type":"/cosmos.group.v1.ThresholdDecisionPolicy","threshold":"1","windows":{"voting_period": "120h", "min_execution_period": "0s"}}, + }, + { + "address": "cosmos1..", + "groupId": "1", + "admin": "cosmos1..", + "version": "1", + "decisionPolicy": {"@type":"/cosmos.group.v1.ThresholdDecisionPolicy","threshold":"1","windows":{"voting_period": "120h", "min_execution_period": "0s"}}, + } + ], + "pagination": { + "total": "2" + } +} +``` + +#### Proposal + +The `Proposal` endpoint allows users to query for proposal by id. + +```bash +cosmos.group.v1.Query/Proposal +``` + +Example: + +```bash +grpcurl -plaintext \ + -d '{"proposal_id":"1"}' localhost:9090 cosmos.group.v1.Query/Proposal +``` + +Example Output: + +```bash +{ + "proposal": { + "proposalId": "1", + "address": "cosmos1..", + "proposers": [ + "cosmos1.." + ], + "submittedAt": "2021-12-17T07:06:26.310638964Z", + "groupVersion": "1", + "GroupPolicyVersion": "1", + "status": "STATUS_SUBMITTED", + "result": "RESULT_UNFINALIZED", + "voteState": { + "yesCount": "0", + "noCount": "0", + "abstainCount": "0", + "vetoCount": "0" + }, + "windows": { + "min_execution_period": "0s", + "voting_period": "432000s" + }, + "executorResult": "EXECUTOR_RESULT_NOT_RUN", + "messages": [ + {"@type":"/cosmos.bank.v1beta1.MsgSend","amount":[{"denom":"stake","amount":"100000000"}],"fromAddress":"cosmos1..","toAddress":"cosmos1.."} + ], + "title": "Title", + "summary": "Summary", + } +} +``` + +#### ProposalsByGroupPolicy + +The `ProposalsByGroupPolicy` endpoint allows users to query for proposals by account address of group policy with pagination flags. + +```bash +cosmos.group.v1.Query/ProposalsByGroupPolicy +``` + +Example: + +```bash +grpcurl -plaintext \ + -d '{"address":"cosmos1.."}' localhost:9090 cosmos.group.v1.Query/ProposalsByGroupPolicy +``` + +Example Output: + +```bash +{ + "proposals": [ + { + "proposalId": "1", + "address": "cosmos1..", + "proposers": [ + "cosmos1.." + ], + "submittedAt": "2021-12-17T08:03:27.099649352Z", + "groupVersion": "1", + "GroupPolicyVersion": "1", + "status": "STATUS_CLOSED", + "result": "RESULT_ACCEPTED", + "voteState": { + "yesCount": "1", + "noCount": "0", + "abstainCount": "0", + "vetoCount": "0" + }, + "windows": { + "min_execution_period": "0s", + "voting_period": "432000s" + }, + "executorResult": "EXECUTOR_RESULT_NOT_RUN", + "messages": [ + {"@type":"/cosmos.bank.v1beta1.MsgSend","amount":[{"denom":"stake","amount":"100000000"}],"fromAddress":"cosmos1..","toAddress":"cosmos1.."} + ], + "title": "Title", + "summary": "Summary", + } + ], + "pagination": { + "total": "1" + } +} +``` + +#### VoteByProposalVoter + +The `VoteByProposalVoter` endpoint allows users to query for vote by proposal id and voter account address. + +```bash +cosmos.group.v1.Query/VoteByProposalVoter +``` + +Example: + +```bash +grpcurl -plaintext \ + -d '{"proposal_id":"1","voter":"cosmos1.."}' localhost:9090 cosmos.group.v1.Query/VoteByProposalVoter +``` + +Example Output: + +```bash +{ + "vote": { + "proposalId": "1", + "voter": "cosmos1..", + "choice": "CHOICE_YES", + "submittedAt": "2021-12-17T08:05:02.490164009Z" + } +} +``` + +#### VotesByProposal + +The `VotesByProposal` endpoint allows users to query for votes by proposal id with pagination flags. + +```bash +cosmos.group.v1.Query/VotesByProposal +``` + +Example: + +```bash +grpcurl -plaintext \ + -d '{"proposal_id":"1"}' localhost:9090 cosmos.group.v1.Query/VotesByProposal +``` + +Example Output: + +```bash +{ + "votes": [ + { + "proposalId": "1", + "voter": "cosmos1..", + "choice": "CHOICE_YES", + "submittedAt": "2021-12-17T08:05:02.490164009Z" + } + ], + "pagination": { + "total": "1" + } +} +``` + +#### VotesByVoter + +The `VotesByVoter` endpoint allows users to query for votes by voter account address with pagination flags. + +```bash +cosmos.group.v1.Query/VotesByVoter +``` + +Example: + +```bash +grpcurl -plaintext \ + -d '{"voter":"cosmos1.."}' localhost:9090 cosmos.group.v1.Query/VotesByVoter +``` + +Example Output: + +```bash +{ + "votes": [ + { + "proposalId": "1", + "voter": "cosmos1..", + "choice": "CHOICE_YES", + "submittedAt": "2021-12-17T08:05:02.490164009Z" + } + ], + "pagination": { + "total": "1" + } +} +``` + +### REST + +A user can query the `group` module using REST endpoints. + +#### GroupInfo + +The `GroupInfo` endpoint allows users to query for group info by given group id. + +```bash +/cosmos/group/v1/group_info/{group_id} +``` + +Example: + +```bash +curl localhost:1317/cosmos/group/v1/group_info/1 +``` + +Example Output: + +```bash +{ + "info": { + "id": "1", + "admin": "cosmos1..", + "metadata": "AQ==", + "version": "1", + "total_weight": "3" + } +} +``` + +#### GroupPolicyInfo + +The `GroupPolicyInfo` endpoint allows users to query for group policy info by account address of group policy. + +```bash +/cosmos/group/v1/group_policy_info/{address} +``` + +Example: + +```bash +curl localhost:1317/cosmos/group/v1/group_policy_info/cosmos1.. +``` + +Example Output: + +```bash +{ + "info": { + "address": "cosmos1..", + "group_id": "1", + "admin": "cosmos1..", + "metadata": "AQ==", + "version": "1", + "decision_policy": { + "@type": "/cosmos.group.v1.ThresholdDecisionPolicy", + "threshold": "1", + "windows": { + "voting_period": "120h", + "min_execution_period": "0s" + } + }, + } +} +``` + +#### GroupMembers + +The `GroupMembers` endpoint allows users to query for group members by group id with pagination flags. + +```bash +/cosmos/group/v1/group_members/{group_id} +``` + +Example: + +```bash +curl localhost:1317/cosmos/group/v1/group_members/1 +``` + +Example Output: + +```bash +{ + "members": [ + { + "group_id": "1", + "member": { + "address": "cosmos1..", + "weight": "1", + "metadata": "AQ==" + } + }, + { + "group_id": "1", + "member": { + "address": "cosmos1..", + "weight": "2", + "metadata": "AQ==" + } + ], + "pagination": { + "next_key": null, + "total": "2" + } +} +``` + +#### GroupsByAdmin + +The `GroupsByAdmin` endpoint allows users to query for groups by admin account address with pagination flags. + +```bash +/cosmos/group/v1/groups_by_admin/{admin} +``` + +Example: + +```bash +curl localhost:1317/cosmos/group/v1/groups_by_admin/cosmos1.. +``` + +Example Output: + +```bash +{ + "groups": [ + { + "id": "1", + "admin": "cosmos1..", + "metadata": "AQ==", + "version": "1", + "total_weight": "3" + }, + { + "id": "2", + "admin": "cosmos1..", + "metadata": "AQ==", + "version": "1", + "total_weight": "3" + } + ], + "pagination": { + "next_key": null, + "total": "2" + } +} +``` + +#### GroupPoliciesByGroup + +The `GroupPoliciesByGroup` endpoint allows users to query for group policies by group id with pagination flags. + +```bash +/cosmos/group/v1/group_policies_by_group/{group_id} +``` + +Example: + +```bash +curl localhost:1317/cosmos/group/v1/group_policies_by_group/1 +``` + +Example Output: + +```bash +{ + "group_policies": [ + { + "address": "cosmos1..", + "group_id": "1", + "admin": "cosmos1..", + "metadata": "AQ==", + "version": "1", + "decision_policy": { + "@type": "/cosmos.group.v1.ThresholdDecisionPolicy", + "threshold": "1", + "windows": { + "voting_period": "120h", + "min_execution_period": "0s" + } + }, + }, + { + "address": "cosmos1..", + "group_id": "1", + "admin": "cosmos1..", + "metadata": "AQ==", + "version": "1", + "decision_policy": { + "@type": "/cosmos.group.v1.ThresholdDecisionPolicy", + "threshold": "1", + "windows": { + "voting_period": "120h", + "min_execution_period": "0s" + } + }, + } + ], + "pagination": { + "next_key": null, + "total": "2" + } +} +``` + +#### GroupPoliciesByAdmin + +The `GroupPoliciesByAdmin` endpoint allows users to query for group policies by admin account address with pagination flags. + +```bash +/cosmos/group/v1/group_policies_by_admin/{admin} +``` + +Example: + +```bash +curl localhost:1317/cosmos/group/v1/group_policies_by_admin/cosmos1.. +``` + +Example Output: + +```bash +{ + "group_policies": [ + { + "address": "cosmos1..", + "group_id": "1", + "admin": "cosmos1..", + "metadata": "AQ==", + "version": "1", + "decision_policy": { + "@type": "/cosmos.group.v1.ThresholdDecisionPolicy", + "threshold": "1", + "windows": { + "voting_period": "120h", + "min_execution_period": "0s" + } + }, + }, + { + "address": "cosmos1..", + "group_id": "1", + "admin": "cosmos1..", + "metadata": "AQ==", + "version": "1", + "decision_policy": { + "@type": "/cosmos.group.v1.ThresholdDecisionPolicy", + "threshold": "1", + "windows": { + "voting_period": "120h", + "min_execution_period": "0s" + } + }, + } + ], + "pagination": { + "next_key": null, + "total": "2" + } +``` + +#### Proposal + +The `Proposal` endpoint allows users to query for proposal by id. + +```bash +/cosmos/group/v1/proposal/{proposal_id} +``` + +Example: + +```bash +curl localhost:1317/cosmos/group/v1/proposal/1 +``` + +Example Output: + +```bash +{ + "proposal": { + "proposal_id": "1", + "address": "cosmos1..", + "metadata": "AQ==", + "proposers": [ + "cosmos1.." + ], + "submitted_at": "2021-12-17T07:06:26.310638964Z", + "group_version": "1", + "group_policy_version": "1", + "status": "STATUS_SUBMITTED", + "result": "RESULT_UNFINALIZED", + "vote_state": { + "yes_count": "0", + "no_count": "0", + "abstain_count": "0", + "veto_count": "0" + }, + "windows": { + "min_execution_period": "0s", + "voting_period": "432000s" + }, + "executor_result": "EXECUTOR_RESULT_NOT_RUN", + "messages": [ + { + "@type": "/cosmos.bank.v1beta1.MsgSend", + "from_address": "cosmos1..", + "to_address": "cosmos1..", + "amount": [ + { + "denom": "stake", + "amount": "100000000" + } + ] + } + ], + "title": "Title", + "summary": "Summary", + } +} +``` + +#### ProposalsByGroupPolicy + +The `ProposalsByGroupPolicy` endpoint allows users to query for proposals by account address of group policy with pagination flags. + +```bash +/cosmos/group/v1/proposals_by_group_policy/{address} +``` + +Example: + +```bash +curl localhost:1317/cosmos/group/v1/proposals_by_group_policy/cosmos1.. +``` + +Example Output: + +```bash +{ + "proposals": [ + { + "id": "1", + "group_policy_address": "cosmos1..", + "metadata": "AQ==", + "proposers": [ + "cosmos1.." + ], + "submit_time": "2021-12-17T08:03:27.099649352Z", + "group_version": "1", + "group_policy_version": "1", + "status": "STATUS_CLOSED", + "result": "RESULT_ACCEPTED", + "vote_state": { + "yes_count": "1", + "no_count": "0", + "abstain_count": "0", + "veto_count": "0" + }, + "windows": { + "min_execution_period": "0s", + "voting_period": "432000s" + }, + "executor_result": "EXECUTOR_RESULT_NOT_RUN", + "messages": [ + { + "@type": "/cosmos.bank.v1beta1.MsgSend", + "from_address": "cosmos1..", + "to_address": "cosmos1..", + "amount": [ + { + "denom": "stake", + "amount": "100000000" + } + ] + } + ] + } + ], + "pagination": { + "next_key": null, + "total": "1" + } +} +``` + +#### VoteByProposalVoter + +The `VoteByProposalVoter` endpoint allows users to query for vote by proposal id and voter account address. + +```bash +/cosmos/group/v1/vote_by_proposal_voter/{proposal_id}/{voter} +``` + +Example: + +```bash +curl localhost:1317/cosmos/group/v1beta1/vote_by_proposal_voter/1/cosmos1.. +``` + +Example Output: + +```bash +{ + "vote": { + "proposal_id": "1", + "voter": "cosmos1..", + "choice": "CHOICE_YES", + "metadata": "AQ==", + "submitted_at": "2021-12-17T08:05:02.490164009Z" + } +} +``` + +#### VotesByProposal + +The `VotesByProposal` endpoint allows users to query for votes by proposal id with pagination flags. + +```bash +/cosmos/group/v1/votes_by_proposal/{proposal_id} +``` + +Example: + +```bash +curl localhost:1317/cosmos/group/v1/votes_by_proposal/1 +``` + +Example Output: + +```bash +{ + "votes": [ + { + "proposal_id": "1", + "voter": "cosmos1..", + "option": "CHOICE_YES", + "metadata": "AQ==", + "submit_time": "2021-12-17T08:05:02.490164009Z" + } + ], + "pagination": { + "next_key": null, + "total": "1" + } +} +``` + +#### VotesByVoter + +The `VotesByVoter` endpoint allows users to query for votes by voter account address with pagination flags. + +```bash +/cosmos/group/v1/votes_by_voter/{voter} +``` + +Example: + +```bash +curl localhost:1317/cosmos/group/v1/votes_by_voter/cosmos1.. +``` + +Example Output: + +```bash +{ + "votes": [ + { + "proposal_id": "1", + "voter": "cosmos1..", + "choice": "CHOICE_YES", + "metadata": "AQ==", + "submitted_at": "2021-12-17T08:05:02.490164009Z" + } + ], + "pagination": { + "next_key": null, + "total": "1" + } +} +``` + +## Metadata + +The group module has four locations for metadata where users can provide further context about the on-chain actions they are taking. By default all metadata fields have a 255 character length field where metadata can be stored in json format, either on-chain or off-chain depending on the amount of data required. Here we provide a recommendation for the json structure and where the data should be stored. There are two important factors in making these recommendations. First, that the group and gov modules are consistent with one another, note the number of proposals made by all groups may be quite large. Second, that client applications such as block explorers and governance interfaces have confidence in the consistency of metadata structure across chains. + +### Proposal + +Location: off-chain as json object stored on IPFS (mirrors [gov proposal](../gov/README.md#metadata)) + +```json +{ + "title": "", + "authors": [""], + "summary": "", + "details": "", + "proposal_forum_url": "", + "vote_option_context": "", +} +``` + +:::note +The `authors` field is an array of strings, this is to allow for multiple authors to be listed in the metadata. +In v0.46, the `authors` field is a comma-separated string. Frontends are encouraged to support both formats for backwards compatibility. +::: + +### Vote + +Location: on-chain as json within 255 character limit (mirrors [gov vote](../gov/README.md#metadata)) + +```json +{ + "justification": "", +} +``` + +### Group + +Location: off-chain as json object stored on IPFS + +```json +{ + "name": "", + "description": "", + "group_website_url": "", + "group_forum_url": "", +} +``` + +### Decision policy + +Location: on-chain as json within 255 character limit + +```json +{ + "name": "", + "description": "", +} +``` diff --git a/.gitbook/developers/modules/core/mint/README.md b/.gitbook/developers/modules/core/mint/README.md new file mode 100644 index 00000000..80198010 --- /dev/null +++ b/.gitbook/developers/modules/core/mint/README.md @@ -0,0 +1,383 @@ +--- +sidebar_position: 1 +--- + +# `x/mint` + +## Contents + +* [State](#state) + * [Minter](#minter) + * [Params](#params) +* [Begin-Block](#begin-block) + * [NextInflationRate](#nextinflationrate) + * [NextAnnualProvisions](#nextannualprovisions) + * [BlockProvision](#blockprovision) +* [Parameters](#parameters) +* [Events](#events) + * [BeginBlocker](#beginblocker) +* [Client](#client) + * [CLI](#cli) + * [gRPC](#grpc) + * [REST](#rest) + +## Concepts + +### The Minting Mechanism + +The minting mechanism was designed to: + +* allow for a flexible inflation rate determined by market demand targeting a particular bonded-stake ratio +* effect a balance between market liquidity and staked supply + +In order to best determine the appropriate market rate for inflation rewards, a +moving change rate is used. The moving change rate mechanism ensures that if +the % bonded is either over or under the goal %-bonded, the inflation rate will +adjust to further incentivize or disincentivize being bonded, respectively. Setting the goal +%-bonded at less than 100% encourages the network to maintain some non-staked tokens +which should help provide some liquidity. + +It can be broken down in the following way: + +* If the actual percentage of bonded tokens is below the goal %-bonded the inflation rate will + increase until a maximum value is reached +* If the goal % bonded (67% in Cosmos-Hub) is maintained, then the inflation + rate will stay constant +* If the actual percentage of bonded tokens is above the goal %-bonded the inflation rate will + decrease until a minimum value is reached + + +## State + +### Minter + +The minter is a space for holding current inflation information. + +* Minter: `0x00 -> ProtocolBuffer(minter)` + +```protobuf reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/proto/cosmos/mint/v1beta1/mint.proto#L10-L24 +``` + +### Params + +The mint module stores its params in state with the prefix of `0x01`, +it can be updated with governance or the address with authority. + +* Params: `mint/params -> legacy_amino(params)` + +```protobuf reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/proto/cosmos/mint/v1beta1/mint.proto#L26-L59 +``` + +## Begin-Block + +Minting parameters are recalculated and inflation paid at the beginning of each block. + +### Inflation rate calculation + +Inflation rate is calculated using an "inflation calculation function" that's +passed to the `NewAppModule` function. If no function is passed, then the SDK's +default inflation function will be used (`NextInflationRate`). In case a custom +inflation calculation logic is needed, this can be achieved by defining and +passing a function that matches `InflationCalculationFn`'s signature. + +```go +type InflationCalculationFn func(ctx sdk.Context, minter Minter, params Params, bondedRatio math.LegacyDec) math.LegacyDec +``` + +#### NextInflationRate + +The target annual inflation rate is recalculated each block. +The inflation is also subject to a rate change (positive or negative) +depending on the distance from the desired ratio (67%). The maximum rate change +possible is defined to be 13% per year, however, the annual inflation is capped +as between 7% and 20%. + +```go +NextInflationRate(params Params, bondedRatio math.LegacyDec) (inflation math.LegacyDec) { + inflationRateChangePerYear = (1 - bondedRatio/params.GoalBonded) * params.InflationRateChange + inflationRateChange = inflationRateChangePerYear/blocksPerYr + + // increase the new annual inflation for this next block + inflation += inflationRateChange + if inflation > params.InflationMax { + inflation = params.InflationMax + } + if inflation < params.InflationMin { + inflation = params.InflationMin + } + + return inflation +} +``` + +### NextAnnualProvisions + +Calculate the annual provisions based on current total supply and inflation +rate. This parameter is calculated once per block. + +```go +NextAnnualProvisions(params Params, totalSupply math.LegacyDec) (provisions math.LegacyDec) { + return Inflation * totalSupply +``` + +### BlockProvision + +Calculate the provisions generated for each block based on current annual provisions. The provisions are then minted by the `mint` module's `ModuleMinterAccount` and then transferred to the `auth`'s `FeeCollector` `ModuleAccount`. + +```go +BlockProvision(params Params) sdk.Coin { + provisionAmt = AnnualProvisions/ params.BlocksPerYear + return sdk.NewCoin(params.MintDenom, provisionAmt.Truncate()) +``` + + +## Parameters + +The minting module contains the following parameters: + +| Key | Type | Example | +|---------------------|-----------------|------------------------| +| MintDenom | string | "uatom" | +| InflationRateChange | string (dec) | "0.130000000000000000" | +| InflationMax | string (dec) | "0.200000000000000000" | +| InflationMin | string (dec) | "0.070000000000000000" | +| GoalBonded | string (dec) | "0.670000000000000000" | +| BlocksPerYear | string (uint64) | "6311520" | + + +## Events + +The minting module emits the following events: + +### BeginBlocker + +| Type | Attribute Key | Attribute Value | +|------|-------------------|--------------------| +| mint | bonded_ratio | {bondedRatio} | +| mint | inflation | {inflation} | +| mint | annual_provisions | {annualProvisions} | +| mint | amount | {amount} | + + +## Client + +### CLI + +A user can query and interact with the `mint` module using the CLI. + +#### Query + +The `query` commands allows users to query `mint` state. + +```shell +simd query mint --help +``` + +##### annual-provisions + +The `annual-provisions` command allows users to query the current minting annual provisions value + +```shell +simd query mint annual-provisions [flags] +``` + +Example: + +```shell +simd query mint annual-provisions +``` + +Example Output: + +```shell +22268504368893.612100895088410693 +``` + +##### inflation + +The `inflation` command allows users to query the current minting inflation value + +```shell +simd query mint inflation [flags] +``` + +Example: + +```shell +simd query mint inflation +``` + +Example Output: + +```shell +0.199200302563256955 +``` + +##### params + +The `params` command allows users to query the current minting parameters + +```shell +simd query mint params [flags] +``` + +Example: + +```yml +blocks_per_year: "4360000" +goal_bonded: "0.670000000000000000" +inflation_max: "0.200000000000000000" +inflation_min: "0.070000000000000000" +inflation_rate_change: "0.130000000000000000" +mint_denom: stake +``` + +### gRPC + +A user can query the `mint` module using gRPC endpoints. + +#### AnnualProvisions + +The `AnnualProvisions` endpoint allows users to query the current minting annual provisions value + +```shell +/cosmos.mint.v1beta1.Query/AnnualProvisions +``` + +Example: + +```shell +grpcurl -plaintext localhost:9090 cosmos.mint.v1beta1.Query/AnnualProvisions +``` + +Example Output: + +```json +{ + "annualProvisions": "1432452520532626265712995618" +} +``` + +#### Inflation + +The `Inflation` endpoint allows users to query the current minting inflation value + +```shell +/cosmos.mint.v1beta1.Query/Inflation +``` + +Example: + +```shell +grpcurl -plaintext localhost:9090 cosmos.mint.v1beta1.Query/Inflation +``` + +Example Output: + +```json +{ + "inflation": "130197115720711261" +} +``` + +#### Params + +The `Params` endpoint allows users to query the current minting parameters + +```shell +/cosmos.mint.v1beta1.Query/Params +``` + +Example: + +```shell +grpcurl -plaintext localhost:9090 cosmos.mint.v1beta1.Query/Params +``` + +Example Output: + +```json +{ + "params": { + "mintDenom": "stake", + "inflationRateChange": "130000000000000000", + "inflationMax": "200000000000000000", + "inflationMin": "70000000000000000", + "goalBonded": "670000000000000000", + "blocksPerYear": "6311520" + } +} +``` + +### REST + +A user can query the `mint` module using REST endpoints. + +#### annual-provisions + +```shell +/cosmos/mint/v1beta1/annual_provisions +``` + +Example: + +```shell +curl "localhost:1317/cosmos/mint/v1beta1/annual_provisions" +``` + +Example Output: + +```json +{ + "annualProvisions": "1432452520532626265712995618" +} +``` + +#### inflation + +```shell +/cosmos/mint/v1beta1/inflation +``` + +Example: + +```shell +curl "localhost:1317/cosmos/mint/v1beta1/inflation" +``` + +Example Output: + +```json +{ + "inflation": "130197115720711261" +} +``` + +#### params + +```shell +/cosmos/mint/v1beta1/params +``` + +Example: + +```shell +curl "localhost:1317/cosmos/mint/v1beta1/params" +``` + +Example Output: + +```json +{ + "params": { + "mintDenom": "stake", + "inflationRateChange": "130000000000000000", + "inflationMax": "200000000000000000", + "inflationMin": "70000000000000000", + "goalBonded": "670000000000000000", + "blocksPerYear": "6311520" + } +} +``` diff --git a/.gitbook/developers/modules/core/nft/README.md b/.gitbook/developers/modules/core/nft/README.md new file mode 100644 index 00000000..34c1d406 --- /dev/null +++ b/.gitbook/developers/modules/core/nft/README.md @@ -0,0 +1,89 @@ +--- +sidebar_position: 1 +--- + +# `x/nft` + +## Contents + +## Abstract + +`x/nft` is an implementation of a Cosmos SDK module, per [ADR 43](https://github.com/cosmos/cosmos-sdk/blob/main/docs/architecture/adr-043-nft-module.md), that allows you to create nft classification, create nft, transfer nft, update nft, and support various queries by integrating the module. It is fully compatible with the ERC721 specification. + +* [Concepts](#concepts) + * [Class](#class) + * [NFT](#nft) +* [State](#state) + * [Class](#class-1) + * [NFT](#nft-1) + * [NFTOfClassByOwner](#nftofclassbyowner) + * [Owner](#owner) + * [TotalSupply](#totalsupply) +* [Messages](#messages) + * [MsgSend](#msgsend) +* [Events](#events) + +## Concepts + +### Class + +`x/nft` module defines a struct `Class` to describe the common characteristics of a class of nft, under this class, you can create a variety of nft, which is equivalent to an erc721 contract for Ethereum. The design is defined in the [ADR 043](https://github.com/cosmos/cosmos-sdk/blob/main/docs/architecture/adr-043-nft-module.md). + +### NFT + +The full name of NFT is Non-Fungible Tokens. Because of the irreplaceable nature of NFT, it means that it can be used to represent unique things. The nft implemented by this module is fully compatible with Ethereum ERC721 standard. + +## State + +### Class + +Class is mainly composed of `id`, `name`, `symbol`, `description`, `uri`, `uri_hash`,`data` where `id` is the unique identifier of the class, similar to the Ethereum ERC721 contract address, the others are optional. + +* Class: `0x01 | classID | -> ProtocolBuffer(Class)` + +### NFT + +NFT is mainly composed of `class_id`, `id`, `uri`, `uri_hash` and `data`. Among them, `class_id` and `id` are two-tuples that identify the uniqueness of nft, `uri` and `uri_hash` is optional, which identifies the off-chain storage location of the nft, and `data` is an Any type. Use Any chain of `x/nft` modules can be customized by extending this field + +* NFT: `0x02 | classID | 0x00 | nftID |-> ProtocolBuffer(NFT)` + +### NFTOfClassByOwner + +NFTOfClassByOwner is mainly to realize the function of querying all nfts using classID and owner, without other redundant functions. + +* NFTOfClassByOwner: `0x03 | owner | 0x00 | classID | 0x00 | nftID |-> 0x01` + +### Owner + +Since there is no extra field in NFT to indicate the owner of nft, an additional key-value pair is used to save the ownership of nft. With the transfer of nft, the key-value pair is updated synchronously. + +* OwnerKey: `0x04 | classID | 0x00 | nftID |-> owner` + +### TotalSupply + +TotalSupply is responsible for tracking the number of all nfts under a certain class. Mint operation is performed under the changed class, supply increases by one, burn operation, and supply decreases by one. + +* OwnerKey: `0x05 | classID |-> totalSupply` + +## Messages + +In this section we describe the processing of messages for the NFT module. + +:::warning +The validation of `ClassID` and `NftID` is left to the app developer. +The SDK does not provide any validation for these fields. +::: + +### MsgSend + +You can use the `MsgSend` message to transfer the ownership of nft. This is a function provided by the `x/nft` module. Of course, you can use the `Transfer` method to implement your own transfer logic, but you need to pay extra attention to the transfer permissions. + +The message handling should fail if: + +* provided `ClassID` does not exist. +* provided `Id` does not exist. +* provided `Sender` does not the owner of nft. + +## Events + +The nft module emits proto events defined in [the Protobuf reference](https://buf.build/cosmos/cosmos-sdk/docs/main:cosmos.nft.v1beta1). diff --git a/.gitbook/developers/modules/core/params/README.md b/.gitbook/developers/modules/core/params/README.md new file mode 100644 index 00000000..f8d374d0 --- /dev/null +++ b/.gitbook/developers/modules/core/params/README.md @@ -0,0 +1,79 @@ +--- +sidebar_position: 1 +--- + +# `x/params` + +> Note: The Params module has been depreacted in favour of each module housing its own parameters. + +## Abstract + +Package params provides a globally available parameter store. + +There are two main types, Keeper and Subspace. Subspace is an isolated namespace for a +paramstore, where keys are prefixed by preconfigured spacename. Keeper has a +permission to access all existing spaces. + +Subspace can be used by the individual keepers, which need a private parameter store +that the other keepers cannot modify. The params Keeper can be used to add a route to `x/gov` router in order to modify any parameter in case a proposal passes. + +The following contents explains how to use params module for master and user modules. + +## Contents + +* [Keeper](#keeper) +* [Subspace](#subspace) + * [Key](#key) + * [KeyTable](#keytable) + * [ParamSet](#paramset) + +## Keeper + +In the app initialization stage, [subspaces](#subspace) can be allocated for other modules' keeper using `Keeper.Subspace` and are stored in `Keeper.spaces`. Then, those modules can have a reference to their specific parameter store through `Keeper.GetSubspace`. + +Example: + +```go +type ExampleKeeper struct { + paramSpace paramtypes.Subspace +} + +func (k ExampleKeeper) SetParams(ctx sdk.Context, params types.Params) { + k.paramSpace.SetParamSet(ctx, ¶ms) +} +``` + +## Subspace + +`Subspace` is a prefixed subspace of the parameter store. Each module which uses the +parameter store will take a `Subspace` to isolate permission to access. + +### Key + +Parameter keys are human readable alphanumeric strings. A parameter for the key +`"ExampleParameter"` is stored under `[]byte("SubspaceName" + "/" + "ExampleParameter")`, + where `"SubspaceName"` is the name of the subspace. + +Subkeys are secondary parameter keys those are used along with a primary parameter key. +Subkeys can be used for grouping or dynamic parameter key generation during runtime. + +### KeyTable + +All of the parameter keys that will be used should be registered at the compile +time. `KeyTable` is essentially a `map[string]attribute`, where the `string` is a parameter key. + +Currently, `attribute` consists of a `reflect.Type`, which indicates the parameter +type to check that provided key and value are compatible and registered, as well as a function `ValueValidatorFn` to validate values. + +Only primary keys have to be registered on the `KeyTable`. Subkeys inherit the +attribute of the primary key. + +### ParamSet + +Modules often define parameters as a proto message. The generated struct can implement +`ParamSet` interface to be used with the following methods: + +* `KeyTable.RegisterParamSet()`: registers all parameters in the struct +* `Subspace.{Get, Set}ParamSet()`: Get to & Set from the struct + +The implementor should be a pointer in order to use `GetParamSet()`. diff --git a/.gitbook/developers/modules/core/slashing/README.md b/.gitbook/developers/modules/core/slashing/README.md new file mode 100644 index 00000000..591a9a73 --- /dev/null +++ b/.gitbook/developers/modules/core/slashing/README.md @@ -0,0 +1,813 @@ +--- +sidebar_position: 1 +--- + +# `x/slashing` + +## Abstract + +This section specifies the slashing module of the Cosmos SDK, which implements functionality +first outlined in the [Cosmos Whitepaper](https://cosmos.network/about/whitepaper) in June 2016. + +The slashing module enables Cosmos SDK-based blockchains to disincentivize any attributable action +by a protocol-recognized actor with value at stake by penalizing them ("slashing"). + +Penalties may include, but are not limited to: + +* Burning some amount of their stake +* Removing their ability to vote on future blocks for a period of time. + +This module will be used by the Cosmos Hub, the first hub in the Cosmos ecosystem. + +## Contents + +* [Concepts](#concepts) + * [States](#states) + * [Tombstone Caps](#tombstone-caps) + * [Infraction Timelines](#infraction-timelines) +* [State](#state) + * [Signing Info (Liveness)](#signing-info-liveness) + * [Params](#params) +* [Messages](#messages) + * [Unjail](#unjail) +* [BeginBlock](#beginblock) + * [Liveness Tracking](#liveness-tracking) +* [Hooks](#hooks) +* [Events](#events) +* [Staking Tombstone](#staking-tombstone) +* [Parameters](#parameters) +* [CLI](#cli) + * [Query](#query) + * [Transactions](#transactions) + * [gRPC](#grpc) + * [REST](#rest) + +## Concepts + +### States + +At any given time, there are any number of validators registered in the state +machine. Each block, the top `MaxValidators` (defined by `x/staking`) validators +who are not jailed become _bonded_, meaning that they may propose and vote on +blocks. Validators who are _bonded_ are _at stake_, meaning that part or all of +their stake and their delegators' stake is at risk if they commit a protocol fault. + +For each of these validators we keep a `ValidatorSigningInfo` record that contains +information partaining to validator's liveness and other infraction related +attributes. + +### Tombstone Caps + +In order to mitigate the impact of initially likely categories of non-malicious +protocol faults, the Cosmos Hub implements for each validator +a _tombstone_ cap, which only allows a validator to be slashed once for a double +sign fault. For example, if you misconfigure your HSM and double-sign a bunch of +old blocks, you'll only be punished for the first double-sign (and then immediately tombstombed). This will still be quite expensive and desirable to avoid, but tombstone caps +somewhat blunt the economic impact of unintentional misconfiguration. + +Liveness faults do not have caps, as they can't stack upon each other. Liveness bugs are "detected" as soon as the infraction occurs, and the validators are immediately put in jail, so it is not possible for them to commit multiple liveness faults without unjailing in between. + +### Infraction Timelines + +To illustrate how the `x/slashing` module handles submitted evidence through +CometBFT consensus, consider the following examples: + +**Definitions**: + +_[_ : timeline start +_]_ : timeline end +_Cn_ : infraction `n` committed +_Dn_ : infraction `n` discovered +_Vb_ : validator bonded +_Vu_ : validator unbonded + +#### Single Double Sign Infraction + +\[----------C1----D1,Vu-----\] + +A single infraction is committed then later discovered, at which point the +validator is unbonded and slashed at the full amount for the infraction. + +#### Multiple Double Sign Infractions + +\[----------C1--C2---C3---D1,D2,D3Vu-----\] + +Multiple infractions are committed and then later discovered, at which point the +validator is jailed and slashed for only one infraction. Because the validator +is also tombstoned, they can not rejoin the validator set. + +## State + +### Signing Info (Liveness) + +Every block includes a set of precommits by the validators for the previous block, +known as the `LastCommitInfo` provided by CometBFT. A `LastCommitInfo` is valid so +long as it contains precommits from +2/3 of total voting power. + +Proposers are incentivized to include precommits from all validators in the CometBFT `LastCommitInfo` +by receiving additional fees proportional to the difference between the voting +power included in the `LastCommitInfo` and +2/3 (see [fee distribution](../distribution/README.md#begin-block)). + +```go +type LastCommitInfo struct { + Round int32 + Votes []VoteInfo +} +``` + +Validators are penalized for failing to be included in the `LastCommitInfo` for some +number of blocks by being automatically jailed, potentially slashed, and unbonded. + +Information about validator's liveness activity is tracked through `ValidatorSigningInfo`. +It is indexed in the store as follows: + +* ValidatorSigningInfo: `0x01 | ConsAddrLen (1 byte) | ConsAddress -> ProtocolBuffer(ValSigningInfo)` +* MissedBlocksBitArray: `0x02 | ConsAddrLen (1 byte) | ConsAddress | LittleEndianUint64(signArrayIndex) -> VarInt(didMiss)` (varint is a number encoding format) + +The first mapping allows us to easily lookup the recent signing info for a +validator based on the validator's consensus address. + +The second mapping (`MissedBlocksBitArray`) acts +as a bit-array of size `SignedBlocksWindow` that tells us if the validator missed +the block for a given index in the bit-array. The index in the bit-array is given +as little endian uint64. +The result is a `varint` that takes on `0` or `1`, where `0` indicates the +validator did not miss (did sign) the corresponding block, and `1` indicates +they missed the block (did not sign). + +Note that the `MissedBlocksBitArray` is not explicitly initialized up-front. Keys +are added as we progress through the first `SignedBlocksWindow` blocks for a newly +bonded validator. The `SignedBlocksWindow` parameter defines the size +(number of blocks) of the sliding window used to track validator liveness. + +The information stored for tracking validator liveness is as follows: + +```protobuf reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/proto/cosmos/slashing/v1beta1/slashing.proto#L13-L35 +``` + +### Params + +The slashing module stores it's params in state with the prefix of `0x00`, +it can be updated with governance or the address with authority. + +* Params: `0x00 | ProtocolBuffer(Params)` + +```protobuf reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/proto/cosmos/slashing/v1beta1/slashing.proto#L37-L59 +``` + +## Messages + +In this section we describe the processing of messages for the `slashing` module. + +### Unjail + +If a validator was automatically unbonded due to downtime and wishes to come back online & +possibly rejoin the bonded set, it must send `MsgUnjail`: + +```protobuf +// MsgUnjail is an sdk.Msg used for unjailing a jailed validator, thus returning +// them into the bonded validator set, so they can begin receiving provisions +// and rewards again. +message MsgUnjail { + string validator_addr = 1; +} +``` + +Below is a pseudocode of the `MsgSrv/Unjail` RPC: + +```go +unjail(tx MsgUnjail) + validator = getValidator(tx.ValidatorAddr) + if validator == nil + fail with "No validator found" + + if getSelfDelegation(validator) == 0 + fail with "validator must self delegate before unjailing" + + if !validator.Jailed + fail with "Validator not jailed, cannot unjail" + + info = GetValidatorSigningInfo(operator) + if info.Tombstoned + fail with "Tombstoned validator cannot be unjailed" + if block time < info.JailedUntil + fail with "Validator still jailed, cannot unjail until period has expired" + + validator.Jailed = false + setValidator(validator) + + return +``` + +If the validator has enough stake to be in the top `n = MaximumBondedValidators`, it will be automatically rebonded, +and all delegators still delegated to the validator will be rebonded and begin to again collect +provisions and rewards. + +## BeginBlock + +### Liveness Tracking + +At the beginning of each block, we update the `ValidatorSigningInfo` for each +validator and check if they've crossed below the liveness threshold over a +sliding window. This sliding window is defined by `SignedBlocksWindow` and the +index in this window is determined by `IndexOffset` found in the validator's +`ValidatorSigningInfo`. For each block processed, the `IndexOffset` is incremented +regardless if the validator signed or not. Once the index is determined, the +`MissedBlocksBitArray` and `MissedBlocksCounter` are updated accordingly. + +Finally, in order to determine if a validator crosses below the liveness threshold, +we fetch the maximum number of blocks missed, `maxMissed`, which is +`SignedBlocksWindow - (MinSignedPerWindow * SignedBlocksWindow)` and the minimum +height at which we can determine liveness, `minHeight`. If the current block is +greater than `minHeight` and the validator's `MissedBlocksCounter` is greater than +`maxMissed`, they will be slashed by `SlashFractionDowntime`, will be jailed +for `DowntimeJailDuration`, and have the following values reset: +`MissedBlocksBitArray`, `MissedBlocksCounter`, and `IndexOffset`. + +**Note**: Liveness slashes do **NOT** lead to a tombstombing. + +```go +height := block.Height + +for vote in block.LastCommitInfo.Votes { + signInfo := GetValidatorSigningInfo(vote.Validator.Address) + + // This is a relative index, so we counts blocks the validator SHOULD have + // signed. We use the 0-value default signing info if not present, except for + // start height. + index := signInfo.IndexOffset % SignedBlocksWindow() + signInfo.IndexOffset++ + + // Update MissedBlocksBitArray and MissedBlocksCounter. The MissedBlocksCounter + // just tracks the sum of MissedBlocksBitArray. That way we avoid needing to + // read/write the whole array each time. + missedPrevious := GetValidatorMissedBlockBitArray(vote.Validator.Address, index) + missed := !signed + + switch { + case !missedPrevious && missed: + // array index has changed from not missed to missed, increment counter + SetValidatorMissedBlockBitArray(vote.Validator.Address, index, true) + signInfo.MissedBlocksCounter++ + + case missedPrevious && !missed: + // array index has changed from missed to not missed, decrement counter + SetValidatorMissedBlockBitArray(vote.Validator.Address, index, false) + signInfo.MissedBlocksCounter-- + + default: + // array index at this index has not changed; no need to update counter + } + + if missed { + // emit events... + } + + minHeight := signInfo.StartHeight + SignedBlocksWindow() + maxMissed := SignedBlocksWindow() - MinSignedPerWindow() + + // If we are past the minimum height and the validator has missed too many + // jail and slash them. + if height > minHeight && signInfo.MissedBlocksCounter > maxMissed { + validator := ValidatorByConsAddr(vote.Validator.Address) + + // emit events... + + // We need to retrieve the stake distribution which signed the block, so we + // subtract ValidatorUpdateDelay from the block height, and subtract an + // additional 1 since this is the LastCommit. + // + // Note, that this CAN result in a negative "distributionHeight" up to + // -ValidatorUpdateDelay-1, i.e. at the end of the pre-genesis block (none) = at the beginning of the genesis block. + // That's fine since this is just used to filter unbonding delegations & redelegations. + distributionHeight := height - sdk.ValidatorUpdateDelay - 1 + + SlashWithInfractionReason(vote.Validator.Address, distributionHeight, vote.Validator.Power, SlashFractionDowntime(), stakingtypes.Downtime) + Jail(vote.Validator.Address) + + signInfo.JailedUntil = block.Time.Add(DowntimeJailDuration()) + + // We need to reset the counter & array so that the validator won't be + // immediately slashed for downtime upon rebonding. + signInfo.MissedBlocksCounter = 0 + signInfo.IndexOffset = 0 + ClearValidatorMissedBlockBitArray(vote.Validator.Address) + } + + SetValidatorSigningInfo(vote.Validator.Address, signInfo) +} +``` + +## Hooks + +This section contains a description of the module's `hooks`. Hooks are operations that are executed automatically when events are raised. + +### Staking hooks + +The slashing module implements the `StakingHooks` defined in `x/staking` and are used as record-keeping of validators information. During the app initialization, these hooks should be registered in the staking module struct. + +The following hooks impact the slashing state: + +* `AfterValidatorBonded` creates a `ValidatorSigningInfo` instance as described in the following section. +* `AfterValidatorCreated` stores a validator's consensus key. +* `AfterValidatorRemoved` removes a validator's consensus key. + +### Validator Bonded + +Upon successful first-time bonding of a new validator, we create a new `ValidatorSigningInfo` structure for the +now-bonded validator, which `StartHeight` of the current block. + +If the validator was out of the validator set and gets bonded again, its new bonded height is set. + +```go +onValidatorBonded(address sdk.ValAddress) + + signingInfo, found = GetValidatorSigningInfo(address) + if !found { + signingInfo = ValidatorSigningInfo { + StartHeight : CurrentHeight, + IndexOffset : 0, + JailedUntil : time.Unix(0, 0), + Tombstone : false, + MissedBloskCounter : 0 + } else { + signingInfo.StartHeight = CurrentHeight + } + + setValidatorSigningInfo(signingInfo) + } + + return +``` + +## Events + +The slashing module emits the following events: + +### MsgServer + +#### MsgUnjail + +| Type | Attribute Key | Attribute Value | +| ------- | ------------- | ------------------ | +| message | module | slashing | +| message | sender | {validatorAddress} | + +### Keeper + +### BeginBlocker: HandleValidatorSignature + +| Type | Attribute Key | Attribute Value | +| ----- | ------------- | --------------------------- | +| slash | address | {validatorConsensusAddress} | +| slash | power | {validatorPower} | +| slash | reason | {slashReason} | +| slash | jailed [0] | {validatorConsensusAddress} | +| slash | burned coins | {math.Int} | + +* [0] Only included if the validator is jailed. + +| Type | Attribute Key | Attribute Value | +| -------- | ------------- | --------------------------- | +| liveness | address | {validatorConsensusAddress} | +| liveness | missed_blocks | {missedBlocksCounter} | +| liveness | height | {blockHeight} | + +#### Slash + +* same as `"slash"` event from `HandleValidatorSignature`, but without the `jailed` attribute. + +#### Jail + +| Type | Attribute Key | Attribute Value | +| ----- | ------------- | ------------------ | +| slash | jailed | {validatorAddress} | + +## Staking Tombstone + +### Abstract + +In the current implementation of the `slashing` module, when the consensus engine +informs the state machine of a validator's consensus fault, the validator is +partially slashed, and put into a "jail period", a period of time in which they +are not allowed to rejoin the validator set. However, because of the nature of +consensus faults and ABCI, there can be a delay between an infraction occurring, +and evidence of the infraction reaching the state machine (this is one of the +primary reasons for the existence of the unbonding period). + +> Note: The tombstone concept, only applies to faults that have a delay between +> the infraction occurring and evidence reaching the state machine. For example, +> evidence of a validator double signing may take a while to reach the state machine +> due to unpredictable evidence gossip layer delays and the ability of validators to +> selectively reveal double-signatures (e.g. to infrequently-online light clients). +> Liveness slashing, on the other hand, is detected immediately as soon as the +> infraction occurs, and therefore no slashing period is needed. A validator is +> immediately put into jail period, and they cannot commit another liveness fault +> until they unjail. In the future, there may be other types of byzantine faults +> that have delays (for example, submitting evidence of an invalid proposal as a transaction). +> When implemented, it will have to be decided whether these future types of +> byzantine faults will result in a tombstoning (and if not, the slash amounts +> will not be capped by a slashing period). + +In the current system design, once a validator is put in the jail for a consensus +fault, after the `JailPeriod` they are allowed to send a transaction to `unjail` +themselves, and thus rejoin the validator set. + +One of the "design desires" of the `slashing` module is that if multiple +infractions occur before evidence is executed (and a validator is put in jail), +they should only be punished for single worst infraction, but not cumulatively. +For example, if the sequence of events is: + +1. Validator A commits Infraction 1 (worth 30% slash) +2. Validator A commits Infraction 2 (worth 40% slash) +3. Validator A commits Infraction 3 (worth 35% slash) +4. Evidence for Infraction 1 reaches state machine (and validator is put in jail) +5. Evidence for Infraction 2 reaches state machine +6. Evidence for Infraction 3 reaches state machine + +Only Infraction 2 should have its slash take effect, as it is the highest. This +is done, so that in the case of the compromise of a validator's consensus key, +they will only be punished once, even if the hacker double-signs many blocks. +Because, the unjailing has to be done with the validator's operator key, they +have a chance to re-secure their consensus key, and then signal that they are +ready using their operator key. We call this period during which we track only +the max infraction, the "slashing period". + +Once, a validator rejoins by unjailing themselves, we begin a new slashing period; +if they commit a new infraction after unjailing, it gets slashed cumulatively on +top of the worst infraction from the previous slashing period. + +However, while infractions are grouped based off of the slashing periods, because +evidence can be submitted up to an `unbondingPeriod` after the infraction, we +still have to allow for evidence to be submitted for previous slashing periods. +For example, if the sequence of events is: + +1. Validator A commits Infraction 1 (worth 30% slash) +2. Validator A commits Infraction 2 (worth 40% slash) +3. Evidence for Infraction 1 reaches state machine (and Validator A is put in jail) +4. Validator A unjails + +We are now in a new slashing period, however we still have to keep the door open +for the previous infraction, as the evidence for Infraction 2 may still come in. +As the number of slashing periods increase, it creates more complexity as we have +to keep track of the highest infraction amount for every single slashing period. + +> Note: Currently, according to the `slashing` module spec, a new slashing period +> is created every time a validator is unbonded then rebonded. This should probably +> be changed to jailed/unjailed. See issue [#3205](https://github.com/cosmos/cosmos-sdk/issues/3205) +> for further details. For the remainder of this, I will assume that we only start +> a new slashing period when a validator gets unjailed. + +The maximum number of slashing periods is the `len(UnbondingPeriod) / len(JailPeriod)`. +The current defaults in Gaia for the `UnbondingPeriod` and `JailPeriod` are 3 weeks +and 2 days, respectively. This means there could potentially be up to 11 slashing +periods concurrently being tracked per validator. If we set the `JailPeriod >= UnbondingPeriod`, +we only have to track 1 slashing period (i.e not have to track slashing periods). + +Currently, in the jail period implementation, once a validator unjails, all of +their delegators who are delegated to them (haven't unbonded / redelegated away), +stay with them. Given that consensus safety faults are so egregious +(way more so than liveness faults), it is probably prudent to have delegators not +"auto-rebond" to the validator. + +#### Proposal: infinite jail + +We propose setting the "jail time" for a +validator who commits a consensus safety fault, to `infinite` (i.e. a tombstone state). +This essentially kicks the validator out of the validator set and does not allow +them to re-enter the validator set. All of their delegators (including the operator themselves) +have to either unbond or redelegate away. The validator operator can create a new +validator if they would like, with a new operator key and consensus key, but they +have to "re-earn" their delegations back. + +Implementing the tombstone system and getting rid of the slashing period tracking +will make the `slashing` module way simpler, especially because we can remove all +of the hooks defined in the `slashing` module consumed by the `staking` module +(the `slashing` module still consumes hooks defined in `staking`). + +#### Single slashing amount + +Another optimization that can be made is that if we assume that all ABCI faults +for CometBFT consensus are slashed at the same level, we don't have to keep +track of "max slash". Once an ABCI fault happens, we don't have to worry about +comparing potential future ones to find the max. + +Currently the only CometBFT ABCI fault is: + +* Unjustified precommits (double signs) + +It is currently planned to include the following fault in the near future: + +* Signing a precommit when you're in unbonding phase (needed to make light client bisection safe) + +Given that these faults are both attributable byzantine faults, we will likely +want to slash them equally, and thus we can enact the above change. + +> Note: This change may make sense for current CometBFT consensus, but maybe +> not for a different consensus algorithm or future versions of CometBFT that +> may want to punish at different levels (for example, partial slashing). + +## Parameters + +The slashing module contains the following parameters: + +| Key | Type | Example | +| ----------------------- | -------------- | ---------------------- | +| SignedBlocksWindow | string (int64) | "100" | +| MinSignedPerWindow | string (dec) | "0.500000000000000000" | +| DowntimeJailDuration | string (ns) | "600000000000" | +| SlashFractionDoubleSign | string (dec) | "0.050000000000000000" | +| SlashFractionDowntime | string (dec) | "0.010000000000000000" | + +## CLI + +A user can query and interact with the `slashing` module using the CLI. + +### Query + +The `query` commands allow users to query `slashing` state. + +```shell +simd query slashing --help +``` + +#### params + +The `params` command allows users to query genesis parameters for the slashing module. + +```shell +simd query slashing params [flags] +``` + +Example: + +```shell +simd query slashing params +``` + +Example Output: + +```yml +downtime_jail_duration: 600s +min_signed_per_window: "0.500000000000000000" +signed_blocks_window: "100" +slash_fraction_double_sign: "0.050000000000000000" +slash_fraction_downtime: "0.010000000000000000" +``` + +#### signing-info + +The `signing-info` command allows users to query signing-info of the validator using consensus public key. + +```shell +simd query slashing signing-infos [flags] +``` + +Example: + +```shell +simd query slashing signing-info '{"@type":"/cosmos.crypto.ed25519.PubKey","key":"Auxs3865HpB/EfssYOzfqNhEJjzys6jD5B6tPgC8="}' + +``` + +Example Output: + +```yml +address: cosmosvalcons1nrqsld3aw6lh6t082frdqc84uwxn0t958c +index_offset: "2068" +jailed_until: "1970-01-01T00:00:00Z" +missed_blocks_counter: "0" +start_height: "0" +tombstoned: false +``` + +#### signing-infos + +The `signing-infos` command allows users to query signing infos of all validators. + +```shell +simd query slashing signing-infos [flags] +``` + +Example: + +```shell +simd query slashing signing-infos +``` + +Example Output: + +```yml +info: +- address: cosmosvalcons1nrqsld3aw6lh6t082frdqc84uwxn0t958c + index_offset: "2075" + jailed_until: "1970-01-01T00:00:00Z" + missed_blocks_counter: "0" + start_height: "0" + tombstoned: false +pagination: + next_key: null + total: "0" +``` + +### Transactions + +The `tx` commands allow users to interact with the `slashing` module. + +```bash +simd tx slashing --help +``` + +#### unjail + +The `unjail` command allows users to unjail a validator previously jailed for downtime. + +```bash +simd tx slashing unjail --from mykey [flags] +``` + +Example: + +```bash +simd tx slashing unjail --from mykey +``` + +### gRPC + +A user can query the `slashing` module using gRPC endpoints. + +#### Params + +The `Params` endpoint allows users to query the parameters of slashing module. + +```shell +cosmos.slashing.v1beta1.Query/Params +``` + +Example: + +```shell +grpcurl -plaintext localhost:9090 cosmos.slashing.v1beta1.Query/Params +``` + +Example Output: + +```json +{ + "params": { + "signedBlocksWindow": "100", + "minSignedPerWindow": "NTAwMDAwMDAwMDAwMDAwMDAw", + "downtimeJailDuration": "600s", + "slashFractionDoubleSign": "NTAwMDAwMDAwMDAwMDAwMDA=", + "slashFractionDowntime": "MTAwMDAwMDAwMDAwMDAwMDA=" + } +} +``` + +#### SigningInfo + +The SigningInfo queries the signing info of given cons address. + +```shell +cosmos.slashing.v1beta1.Query/SigningInfo +``` + +Example: + +```shell +grpcurl -plaintext -d '{"cons_address":"cosmosvalcons1nrqsld3aw6lh6t082frdqc84uwxn0t958c"}' localhost:9090 cosmos.slashing.v1beta1.Query/SigningInfo +``` + +Example Output: + +```json +{ + "valSigningInfo": { + "address": "cosmosvalcons1nrqsld3aw6lh6t082frdqc84uwxn0t958c", + "indexOffset": "3493", + "jailedUntil": "1970-01-01T00:00:00Z" + } +} +``` + +#### SigningInfos + +The SigningInfos queries signing info of all validators. + +```shell +cosmos.slashing.v1beta1.Query/SigningInfos +``` + +Example: + +```shell +grpcurl -plaintext localhost:9090 cosmos.slashing.v1beta1.Query/SigningInfos +``` + +Example Output: + +```json +{ + "info": [ + { + "address": "cosmosvalcons1nrqslkwd3pz096lh6t082frdqc84uwxn0t958c", + "indexOffset": "2467", + "jailedUntil": "1970-01-01T00:00:00Z" + } + ], + "pagination": { + "total": "1" + } +} +``` + +### REST + +A user can query the `slashing` module using REST endpoints. + +#### Params + +```shell +/cosmos/slashing/v1beta1/params +``` + +Example: + +```shell +curl "localhost:1317/cosmos/slashing/v1beta1/params" +``` + +Example Output: + +```json +{ + "params": { + "signed_blocks_window": "100", + "min_signed_per_window": "0.500000000000000000", + "downtime_jail_duration": "600s", + "slash_fraction_double_sign": "0.050000000000000000", + "slash_fraction_downtime": "0.010000000000000000" +} +``` + +#### signing_info + +```shell +/cosmos/slashing/v1beta1/signing_infos/%s +``` + +Example: + +```shell +curl "localhost:1317/cosmos/slashing/v1beta1/signing_infos/cosmosvalcons1nrqslkwd3pz096lh6t082frdqc84uwxn0t958c" +``` + +Example Output: + +```json +{ + "val_signing_info": { + "address": "cosmosvalcons1nrqslkwd3pz096lh6t082frdqc84uwxn0t958c", + "start_height": "0", + "index_offset": "4184", + "jailed_until": "1970-01-01T00:00:00Z", + "tombstoned": false, + "missed_blocks_counter": "0" + } +} +``` + +#### signing_infos + +```shell +/cosmos/slashing/v1beta1/signing_infos +``` + +Example: + +```shell +curl "localhost:1317/cosmos/slashing/v1beta1/signing_infos +``` + +Example Output: + +```json +{ + "info": [ + { + "address": "cosmosvalcons1nrqslkwd3pz096lh6t082frdqc84uwxn0t958c", + "start_height": "0", + "index_offset": "4169", + "jailed_until": "1970-01-01T00:00:00Z", + "tombstoned": false, + "missed_blocks_counter": "0" + } + ], + "pagination": { + "next_key": null, + "total": "1" + } +} +``` diff --git a/.gitbook/developers/modules/core/staking/README.md b/.gitbook/developers/modules/core/staking/README.md new file mode 100644 index 00000000..c011a593 --- /dev/null +++ b/.gitbook/developers/modules/core/staking/README.md @@ -0,0 +1,3058 @@ +--- +sidebar_position: 1 +--- + +# `x/staking` + +## Abstract + +This paper specifies the Staking module of the Cosmos SDK that was first +described in the [Cosmos Whitepaper](https://cosmos.network/about/whitepaper) +in June 2016. + +The module enables Cosmos SDK-based blockchain to support an advanced +Proof-of-Stake (PoS) system. In this system, holders of the native staking token of +the chain can become validators and can delegate tokens to validators, +ultimately determining the effective validator set for the system. + +This module is used in the Cosmos Hub, the first Hub in the Cosmos +network. + +## Contents + +* [State](#state) + * [Pool](#pool) + * [LastTotalPower](#lasttotalpower) + * [ValidatorUpdates](#validatorupdates) + * [UnbondingID](#unbondingid) + * [Params](#params) + * [Validator](#validator) + * [Delegation](#delegation) + * [UnbondingDelegation](#unbondingdelegation) + * [Redelegation](#redelegation) + * [Queues](#queues) + * [HistoricalInfo](#historicalinfo) +* [State Transitions](#state-transitions) + * [Validators](#validators) + * [Delegations](#delegations) + * [Slashing](#slashing) + * [How Shares are calculated](#how-shares-are-calculated) +* [Messages](#messages) + * [MsgCreateValidator](#msgcreatevalidator) + * [MsgEditValidator](#msgeditvalidator) + * [MsgDelegate](#msgdelegate) + * [MsgUndelegate](#msgundelegate) + * [MsgCancelUnbondingDelegation](#msgcancelunbondingdelegation) + * [MsgBeginRedelegate](#msgbeginredelegate) + * [MsgUpdateParams](#msgupdateparams) +* [Begin-Block](#begin-block) + * [Historical Info Tracking](#historical-info-tracking) +* [End-Block](#end-block) + * [Validator Set Changes](#validator-set-changes) + * [Queues](#queues-1) +* [Hooks](#hooks) +* [Events](#events) + * [EndBlocker](#endblocker) + * [Msg's](#msgs) +* [Parameters](#parameters) +* [Client](#client) + * [CLI](#cli) + * [gRPC](#grpc) + * [REST](#rest) + +## State + +### Pool + +Pool is used for tracking bonded and not-bonded token supply of the bond denomination. + +### LastTotalPower + +LastTotalPower tracks the total amounts of bonded tokens recorded during the previous end block. +Store entries prefixed with "Last" must remain unchanged until EndBlock. + +* LastTotalPower: `0x12 -> ProtocolBuffer(math.Int)` + +### ValidatorUpdates + +ValidatorUpdates contains the validator updates returned to ABCI at the end of every block. +The values are overwritten in every block. + +* ValidatorUpdates `0x61 -> []abci.ValidatorUpdate` + +### UnbondingID + +UnbondingID stores the ID of the latest unbonding operation. It enables creating unique IDs for unbonding operations, i.e., UnbondingID is incremented every time a new unbonding operation (validator unbonding, unbonding delegation, redelegation) is initiated. + +* UnbondingID: `0x37 -> uint64` + +### Params + +The staking module stores its params in state with the prefix of `0x51`, +it can be updated with governance or the address with authority. + +* Params: `0x51 | ProtocolBuffer(Params)` + +```protobuf reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/proto/cosmos/staking/v1beta1/staking.proto#L310-L333 +``` + +### Validator + +Validators can have one of three statuses + +* `Unbonded`: The validator is not in the active set. They cannot sign blocks and do not earn + rewards. They can receive delegations. +* `Bonded`: Once the validator receives sufficient bonded tokens they automatically join the + active set during [`EndBlock`](#validator-set-changes) and their status is updated to `Bonded`. + They are signing blocks and receiving rewards. They can receive further delegations. + They can be slashed for misbehavior. Delegators to this validator who unbond their delegation + must wait the duration of the UnbondingTime, a chain-specific param, during which time + they are still slashable for offences of the source validator if those offences were committed + during the period of time that the tokens were bonded. +* `Unbonding`: When a validator leaves the active set, either by choice or due to slashing, jailing or + tombstoning, an unbonding of all their delegations begins. All delegations must then wait the UnbondingTime + before their tokens are moved to their accounts from the `BondedPool`. + +:::warning +Tombstoning is permanent, once tombstoned a validator's consensus key can not be reused within the chain where the tombstoning happened. +::: + +Validators objects should be primarily stored and accessed by the +`OperatorAddr`, an SDK validator address for the operator of the validator. Two +additional indices are maintained per validator object in order to fulfill +required lookups for slashing and validator-set updates. A third special index +(`LastValidatorPower`) is also maintained which however remains constant +throughout each block, unlike the first two indices which mirror the validator +records within a block. + +* Validators: `0x21 | OperatorAddrLen (1 byte) | OperatorAddr -> ProtocolBuffer(validator)` +* ValidatorsByConsAddr: `0x22 | ConsAddrLen (1 byte) | ConsAddr -> OperatorAddr` +* ValidatorsByPower: `0x23 | BigEndian(ConsensusPower) | OperatorAddrLen (1 byte) | OperatorAddr -> OperatorAddr` +* LastValidatorsPower: `0x11 | OperatorAddrLen (1 byte) | OperatorAddr -> ProtocolBuffer(ConsensusPower)` +* ValidatorsByUnbondingID: `0x38 | UnbondingID -> 0x21 | OperatorAddrLen (1 byte) | OperatorAddr` + +`Validators` is the primary index - it ensures that each operator can have only one +associated validator, where the public key of that validator can change in the +future. Delegators can refer to the immutable operator of the validator, without +concern for the changing public key. + +`ValidatorsByUnbondingID` is an additional index that enables lookups for + validators by the unbonding IDs corresponding to their current unbonding. + +`ValidatorByConsAddr` is an additional index that enables lookups for slashing. +When CometBFT reports evidence, it provides the validator address, so this +map is needed to find the operator. Note that the `ConsAddr` corresponds to the +address which can be derived from the validator's `ConsPubKey`. + +`ValidatorsByPower` is an additional index that provides a sorted list of +potential validators to quickly determine the current active set. Here +ConsensusPower is validator.Tokens/10^6 by default. Note that all validators +where `Jailed` is true are not stored within this index. + +`LastValidatorsPower` is a special index that provides a historical list of the +last-block's bonded validators. This index remains constant during a block but +is updated during the validator set update process which takes place in [`EndBlock`](#end-block). + +Each validator's state is stored in a `Validator` struct: + +```protobuf reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/proto/cosmos/staking/v1beta1/staking.proto#L82-L138 +``` + +```protobuf reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/proto/cosmos/staking/v1beta1/staking.proto#L26-L80 +``` + +### Delegation + +Delegations are identified by combining `DelegatorAddr` (the address of the delegator) +with the `ValidatorAddr` Delegators are indexed in the store as follows: + +* Delegation: `0x31 | DelegatorAddrLen (1 byte) | DelegatorAddr | ValidatorAddrLen (1 byte) | ValidatorAddr -> ProtocolBuffer(delegation)` + +Stake holders may delegate coins to validators; under this circumstance their +funds are held in a `Delegation` data structure. It is owned by one +delegator, and is associated with the shares for one validator. The sender of +the transaction is the owner of the bond. + +```protobuf reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/proto/cosmos/staking/v1beta1/staking.proto#L198-L216 +``` + +#### Delegator Shares + +When one delegates tokens to a Validator, they are issued a number of delegator shares based on a +dynamic exchange rate, calculated as follows from the total number of tokens delegated to the +validator and the number of shares issued so far: + +`Shares per Token = validator.TotalShares() / validator.Tokens()` + +Only the number of shares received is stored on the DelegationEntry. When a delegator then +Undelegates, the token amount they receive is calculated from the number of shares they currently +hold and the inverse exchange rate: + +`Tokens per Share = validator.Tokens() / validatorShares()` + +These `Shares` are simply an accounting mechanism. They are not a fungible asset. The reason for +this mechanism is to simplify the accounting around slashing. Rather than iteratively slashing the +tokens of every delegation entry, instead the Validator's total bonded tokens can be slashed, +effectively reducing the value of each issued delegator share. + +### UnbondingDelegation + +Shares in a `Delegation` can be unbonded, but they must for some time exist as +an `UnbondingDelegation`, where shares can be reduced if Byzantine behavior is +detected. + +`UnbondingDelegation` are indexed in the store as: + +* UnbondingDelegation: `0x32 | DelegatorAddrLen (1 byte) | DelegatorAddr | ValidatorAddrLen (1 byte) | ValidatorAddr -> ProtocolBuffer(unbondingDelegation)` +* UnbondingDelegationsFromValidator: `0x33 | ValidatorAddrLen (1 byte) | ValidatorAddr | DelegatorAddrLen (1 byte) | DelegatorAddr -> nil` +* UnbondingDelegationByUnbondingId: `0x38 | UnbondingId -> 0x32 | DelegatorAddrLen (1 byte) | DelegatorAddr | ValidatorAddrLen (1 byte) | ValidatorAddr` + `UnbondingDelegation` is used in queries, to lookup all unbonding delegations for + a given delegator. + +`UnbondingDelegationsFromValidator` is used in slashing, to lookup all + unbonding delegations associated with a given validator that need to be + slashed. + + `UnbondingDelegationByUnbondingId` is an additional index that enables + lookups for unbonding delegations by the unbonding IDs of the containing + unbonding delegation entries. + + +A UnbondingDelegation object is created every time an unbonding is initiated. + +```protobuf reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/proto/cosmos/staking/v1beta1/staking.proto#L218-L261 +``` + +### Redelegation + +The bonded tokens worth of a `Delegation` may be instantly redelegated from a +source validator to a different validator (destination validator). However when +this occurs they must be tracked in a `Redelegation` object, whereby their +shares can be slashed if their tokens have contributed to a Byzantine fault +committed by the source validator. + +`Redelegation` are indexed in the store as: + +* Redelegations: `0x34 | DelegatorAddrLen (1 byte) | DelegatorAddr | ValidatorAddrLen (1 byte) | ValidatorSrcAddr | ValidatorDstAddr -> ProtocolBuffer(redelegation)` +* RedelegationsBySrc: `0x35 | ValidatorSrcAddrLen (1 byte) | ValidatorSrcAddr | ValidatorDstAddrLen (1 byte) | ValidatorDstAddr | DelegatorAddrLen (1 byte) | DelegatorAddr -> nil` +* RedelegationsByDst: `0x36 | ValidatorDstAddrLen (1 byte) | ValidatorDstAddr | ValidatorSrcAddrLen (1 byte) | ValidatorSrcAddr | DelegatorAddrLen (1 byte) | DelegatorAddr -> nil` +* RedelegationByUnbondingId: `0x38 | UnbondingId -> 0x34 | DelegatorAddrLen (1 byte) | DelegatorAddr | ValidatorAddrLen (1 byte) | ValidatorSrcAddr | ValidatorDstAddr` + + `Redelegations` is used for queries, to lookup all redelegations for a given + delegator. + + `RedelegationsBySrc` is used for slashing based on the `ValidatorSrcAddr`. + + `RedelegationsByDst` is used for slashing based on the `ValidatorDstAddr` + +The first map here is used for queries, to lookup all redelegations for a given +delegator. The second map is used for slashing based on the `ValidatorSrcAddr`, +while the third map is for slashing based on the `ValidatorDstAddr`. + +`RedelegationByUnbondingId` is an additional index that enables + lookups for redelegations by the unbonding IDs of the containing + redelegation entries. + +A redelegation object is created every time a redelegation occurs. To prevent +"redelegation hopping" redelegations may not occur under the situation that: + +* the (re)delegator already has another immature redelegation in progress + with a destination to a validator (let's call it `Validator X`) +* and, the (re)delegator is attempting to create a _new_ redelegation + where the source validator for this new redelegation is `Validator X`. + +```protobuf reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/proto/cosmos/staking/v1beta1/staking.proto#L263-L308 +``` + +### Queues + +All queue objects are sorted by timestamp. The time used within any queue is +firstly converted to UTC, rounded to the nearest nanosecond then sorted. The sortable time format +used is a slight modification of the RFC3339Nano and uses the format string +`"2006-01-02T15:04:05.000000000"`. Notably this format: + +* right pads all zeros +* drops the time zone info (we already use UTC) + +In all cases, the stored timestamp represents the maturation time of the queue +element. + +#### UnbondingDelegationQueue + +For the purpose of tracking progress of unbonding delegations the unbonding +delegations queue is kept. + +* UnbondingDelegation: `0x41 | format(time) -> []DVPair` + +```protobuf reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/proto/cosmos/staking/v1beta1/staking.proto#L162-L172 +``` + +#### RedelegationQueue + +For the purpose of tracking progress of redelegations the redelegation queue is +kept. + +* RedelegationQueue: `0x42 | format(time) -> []DVVTriplet` + +```protobuf reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/proto/cosmos/staking/v1beta1/staking.proto#L179-L191 +``` + +#### ValidatorQueue + +For the purpose of tracking progress of unbonding validators the validator +queue is kept. + +* ValidatorQueueTime: `0x43 | format(time) -> []sdk.ValAddress` + +The stored object by each key is an array of validator operator addresses from +which the validator object can be accessed. Typically it is expected that only +a single validator record will be associated with a given timestamp however it is possible +that multiple validators exist in the queue at the same location. + +### HistoricalInfo + +HistoricalInfo objects are stored and pruned at each block such that the staking keeper persists +the `n` most recent historical info defined by staking module parameter: `HistoricalEntries`. + +```go reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/proto/cosmos/staking/v1beta1/staking.proto#L17-L24 +``` + +At each BeginBlock, the staking keeper will persist the current Header and the Validators that committed +the current block in a `HistoricalInfo` object. The Validators are sorted on their address to ensure that +they are in a deterministic order. +The oldest HistoricalEntries will be pruned to ensure that there only exist the parameter-defined number of +historical entries. + +## State Transitions + +### Validators + +State transitions in validators are performed on every [`EndBlock`](#validator-set-changes) +in order to check for changes in the active `ValidatorSet`. + +A validator can be `Unbonded`, `Unbonding` or `Bonded`. `Unbonded` +and `Unbonding` are collectively called `Not Bonded`. A validator can move +directly between all the states, except for from `Bonded` to `Unbonded`. + +#### Not bonded to Bonded + +The following transition occurs when a validator's ranking in the `ValidatorPowerIndex` surpasses +that of the `LastValidator`. + +* set `validator.Status` to `Bonded` +* send the `validator.Tokens` from the `NotBondedTokens` to the `BondedPool` `ModuleAccount` +* delete the existing record from `ValidatorByPowerIndex` +* add a new updated record to the `ValidatorByPowerIndex` +* update the `Validator` object for this validator +* if it exists, delete any `ValidatorQueue` record for this validator + +#### Bonded to Unbonding + +When a validator begins the unbonding process the following operations occur: + +* send the `validator.Tokens` from the `BondedPool` to the `NotBondedTokens` `ModuleAccount` +* set `validator.Status` to `Unbonding` +* delete the existing record from `ValidatorByPowerIndex` +* add a new updated record to the `ValidatorByPowerIndex` +* update the `Validator` object for this validator +* insert a new record into the `ValidatorQueue` for this validator + +#### Unbonding to Unbonded + +A validator moves from unbonding to unbonded when the `ValidatorQueue` object +moves from bonded to unbonded + +* update the `Validator` object for this validator +* set `validator.Status` to `Unbonded` + +#### Jail/Unjail + +when a validator is jailed it is effectively removed from the CometBFT set. +this process may be also be reversed. the following operations occur: + +* set `Validator.Jailed` and update object +* if jailed delete record from `ValidatorByPowerIndex` +* if unjailed add record to `ValidatorByPowerIndex` + +Jailed validators are not present in any of the following stores: + +* the power store (from consensus power to address) + +### Delegations + +#### Delegate + +When a delegation occurs both the validator and the delegation objects are affected + +* determine the delegators shares based on tokens delegated and the validator's exchange rate +* remove tokens from the sending account +* add shares the delegation object or add them to a created validator object +* add new delegator shares and update the `Validator` object +* transfer the `delegation.Amount` from the delegator's account to the `BondedPool` or the `NotBondedPool` `ModuleAccount` depending if the `validator.Status` is `Bonded` or not +* delete the existing record from `ValidatorByPowerIndex` +* add an new updated record to the `ValidatorByPowerIndex` + +#### Begin Unbonding + +As a part of the Undelegate and Complete Unbonding state transitions Unbond +Delegation may be called. + +* subtract the unbonded shares from delegator +* add the unbonded tokens to an `UnbondingDelegationEntry` +* update the delegation or remove the delegation if there are no more shares +* if the delegation is the operator of the validator and no more shares exist then trigger a jail validator +* update the validator with removed the delegator shares and associated coins +* if the validator state is `Bonded`, transfer the `Coins` worth of the unbonded + shares from the `BondedPool` to the `NotBondedPool` `ModuleAccount` +* remove the validator if it is unbonded and there are no more delegation shares. +* remove the validator if it is unbonded and there are no more delegation shares +* get a unique `unbondingId` and map it to the `UnbondingDelegationEntry` in `UnbondingDelegationByUnbondingId` +* call the `AfterUnbondingInitiated(unbondingId)` hook +* add the unbonding delegation to `UnbondingDelegationQueue` with the completion time set to `UnbondingTime` + +#### Cancel an `UnbondingDelegation` Entry + +When a `cancel unbond delegation` occurs both the `validator`, the `delegation` and an `UnbondingDelegationQueue` state will be updated. + +* if cancel unbonding delegation amount equals to the `UnbondingDelegation` entry `balance`, then the `UnbondingDelegation` entry deleted from `UnbondingDelegationQueue`. +* if the `cancel unbonding delegation amount is less than the `UnbondingDelegation` entry balance, then the `UnbondingDelegation` entry will be updated with new balance in the `UnbondingDelegationQueue`. +* cancel `amount` is [Delegated](#delegations) back to the original `validator`. + +#### Complete Unbonding + +For undelegations which do not complete immediately, the following operations +occur when the unbonding delegation queue element matures: + +* remove the entry from the `UnbondingDelegation` object +* transfer the tokens from the `NotBondedPool` `ModuleAccount` to the delegator `Account` + +#### Begin Redelegation + +Redelegations affect the delegation, source and destination validators. + +* perform an `unbond` delegation from the source validator to retrieve the tokens worth of the unbonded shares +* using the unbonded tokens, `Delegate` them to the destination validator +* if the `sourceValidator.Status` is `Bonded`, and the `destinationValidator` is not, + transfer the newly delegated tokens from the `BondedPool` to the `NotBondedPool` `ModuleAccount` +* otherwise, if the `sourceValidator.Status` is not `Bonded`, and the `destinationValidator` + is `Bonded`, transfer the newly delegated tokens from the `NotBondedPool` to the `BondedPool` `ModuleAccount` +* record the token amount in an new entry in the relevant `Redelegation` + +From when a redelegation begins until it completes, the delegator is in a state of "pseudo-unbonding", and can still be +slashed for infractions that occurred before the redelegation began. + +#### Complete Redelegation + +When a redelegations complete the following occurs: + +* remove the entry from the `Redelegation` object + +### Slashing + +#### Slash Validator + +When a Validator is slashed, the following occurs: + +* The total `slashAmount` is calculated as the `slashFactor` (a chain parameter) \* `TokensFromConsensusPower`, + the total number of tokens bonded to the validator at the time of the infraction. +* Every unbonding delegation and pseudo-unbonding redelegation such that the infraction occured before the unbonding or + redelegation began from the validator are slashed by the `slashFactor` percentage of the initialBalance. +* Each amount slashed from redelegations and unbonding delegations is subtracted from the + total slash amount. +* The `remaingSlashAmount` is then slashed from the validator's tokens in the `BondedPool` or + `NonBondedPool` depending on the validator's status. This reduces the total supply of tokens. + +In the case of a slash due to any infraction that requires evidence to submitted (for example double-sign), the slash +occurs at the block where the evidence is included, not at the block where the infraction occured. +Put otherwise, validators are not slashed retroactively, only when they are caught. + +#### Slash Unbonding Delegation + +When a validator is slashed, so are those unbonding delegations from the validator that began unbonding +after the time of the infraction. Every entry in every unbonding delegation from the validator +is slashed by `slashFactor`. The amount slashed is calculated from the `InitialBalance` of the +delegation and is capped to prevent a resulting negative balance. Completed (or mature) unbondings are not slashed. + +#### Slash Redelegation + +When a validator is slashed, so are all redelegations from the validator that began after the +infraction. Redelegations are slashed by `slashFactor`. +Redelegations that began before the infraction are not slashed. +The amount slashed is calculated from the `InitialBalance` of the delegation and is capped to +prevent a resulting negative balance. +Mature redelegations (that have completed pseudo-unbonding) are not slashed. + +### How Shares are calculated + +At any given point in time, each validator has a number of tokens, `T`, and has a number of shares issued, `S`. +Each delegator, `i`, holds a number of shares, `S_i`. +The number of tokens is the sum of all tokens delegated to the validator, plus the rewards, minus the slashes. + +The delegator is entitled to a portion of the underlying tokens proportional to their proportion of shares. +So delegator `i` is entitled to `T * S_i / S` of the validator's tokens. + +When a delegator delegates new tokens to the validator, they receive a number of shares proportional to their contribution. +So when delegator `j` delegates `T_j` tokens, they receive `S_j = S * T_j / T` shares. +The total number of tokens is now `T + T_j`, and the total number of shares is `S + S_j`. +`j`s proportion of the shares is the same as their proportion of the total tokens contributed: `(S + S_j) / S = (T + T_j) / T`. + +A special case is the initial delegation, when `T = 0` and `S = 0`, so `T_j / T` is undefined. +For the initial delegation, delegator `j` who delegates `T_j` tokens receive `S_j = T_j` shares. +So a validator that hasn't received any rewards and has not been slashed will have `T = S`. + +## Messages + +In this section we describe the processing of the staking messages and the corresponding updates to the state. All created/modified state objects specified by each message are defined within the [state](#state) section. + +### MsgCreateValidator + +A validator is created using the `MsgCreateValidator` message. +The validator must be created with an initial delegation from the operator. + +```protobuf reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/proto/cosmos/staking/v1beta1/tx.proto#L20-L21 +``` + +```protobuf reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/proto/cosmos/staking/v1beta1/tx.proto#L50-L73 +``` + +This message is expected to fail if: + +* another validator with this operator address is already registered +* another validator with this pubkey is already registered +* the initial self-delegation tokens are of a denom not specified as the bonding denom +* the commission parameters are faulty, namely: + * `MaxRate` is either > 1 or < 0 + * the initial `Rate` is either negative or > `MaxRate` + * the initial `MaxChangeRate` is either negative or > `MaxRate` +* the description fields are too large + +This message creates and stores the `Validator` object at appropriate indexes. +Additionally a self-delegation is made with the initial tokens delegation +tokens `Delegation`. The validator always starts as unbonded but may be bonded +in the first end-block. + +### MsgEditValidator + +The `Description`, `CommissionRate` of a validator can be updated using the +`MsgEditValidator` message. + +```protobuf reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/proto/cosmos/staking/v1beta1/tx.proto#L23-L24 +``` + +```protobuf reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/proto/cosmos/staking/v1beta1/tx.proto#L78-L97 +``` + +This message is expected to fail if: + +* the initial `CommissionRate` is either negative or > `MaxRate` +* the `CommissionRate` has already been updated within the previous 24 hours +* the `CommissionRate` is > `MaxChangeRate` +* the description fields are too large + +This message stores the updated `Validator` object. + +### MsgDelegate + +Within this message the delegator provides coins, and in return receives +some amount of their validator's (newly created) delegator-shares that are +assigned to `Delegation.Shares`. + +```protobuf reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/proto/cosmos/staking/v1beta1/tx.proto#L26-L28 +``` + +```protobuf reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/proto/cosmos/staking/v1beta1/tx.proto#L102-L114 +``` + +This message is expected to fail if: + +* the validator does not exist +* the `Amount` `Coin` has a denomination different than one defined by `params.BondDenom` +* the exchange rate is invalid, meaning the validator has no tokens (due to slashing) but there are outstanding shares +* the amount delegated is less than the minimum allowed delegation + +If an existing `Delegation` object for provided addresses does not already +exist then it is created as part of this message otherwise the existing +`Delegation` is updated to include the newly received shares. + +The delegator receives newly minted shares at the current exchange rate. +The exchange rate is the number of existing shares in the validator divided by +the number of currently delegated tokens. + +The validator is updated in the `ValidatorByPower` index, and the delegation is +tracked in validator object in the `Validators` index. + +It is possible to delegate to a jailed validator, the only difference being it +will not be added to the power index until it is unjailed. + +![Delegation sequence](https://raw.githubusercontent.com/cosmos/cosmos-sdk/release/v0.46.x/docs/uml/svg/delegation_sequence.svg) + +### MsgUndelegate + +The `MsgUndelegate` message allows delegators to undelegate their tokens from +validator. + +```protobuf reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/proto/cosmos/staking/v1beta1/tx.proto#L34-L36 +``` + +```protobuf reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/proto/cosmos/staking/v1beta1/tx.proto#L140-L152 +``` + +This message returns a response containing the completion time of the undelegation: + +```protobuf reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/proto/cosmos/staking/v1beta1/tx.proto#L154-L158 +``` + +This message is expected to fail if: + +* the delegation doesn't exist +* the validator doesn't exist +* the delegation has less shares than the ones worth of `Amount` +* existing `UnbondingDelegation` has maximum entries as defined by `params.MaxEntries` +* the `Amount` has a denomination different than one defined by `params.BondDenom` + +When this message is processed the following actions occur: + +* validator's `DelegatorShares` and the delegation's `Shares` are both reduced by the message `SharesAmount` +* calculate the token worth of the shares remove that amount tokens held within the validator +* with those removed tokens, if the validator is: + * `Bonded` - add them to an entry in `UnbondingDelegation` (create `UnbondingDelegation` if it doesn't exist) with a completion time a full unbonding period from the current time. Update pool shares to reduce BondedTokens and increase NotBondedTokens by token worth of the shares. + * `Unbonding` - add them to an entry in `UnbondingDelegation` (create `UnbondingDelegation` if it doesn't exist) with the same completion time as the validator (`UnbondingMinTime`). + * `Unbonded` - then send the coins the message `DelegatorAddr` +* if there are no more `Shares` in the delegation, then the delegation object is removed from the store + * under this situation if the delegation is the validator's self-delegation then also jail the validator. + +![Unbond sequence](https://raw.githubusercontent.com/cosmos/cosmos-sdk/release/v0.46.x/docs/uml/svg/unbond_sequence.svg) + +### MsgCancelUnbondingDelegation + +The `MsgCancelUnbondingDelegation` message allows delegators to cancel the `unbondingDelegation` entry and delegate back to a previous validator. + +```protobuf reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/proto/cosmos/staking/v1beta1/tx.proto#L38-L42 +``` + +```protobuf reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/proto/cosmos/staking/v1beta1/tx.proto#L160-L175 +``` + +This message is expected to fail if: + +* the `unbondingDelegation` entry is already processed. +* the `cancel unbonding delegation` amount is greater than the `unbondingDelegation` entry balance. +* the `cancel unbonding delegation` height doesn't exist in the `unbondingDelegationQueue` of the delegator. + +When this message is processed the following actions occur: + +* if the `unbondingDelegation` Entry balance is zero + * in this condition `unbondingDelegation` entry will be removed from `unbondingDelegationQueue`. + * otherwise `unbondingDelegationQueue` will be updated with new `unbondingDelegation` entry balance and initial balance +* the validator's `DelegatorShares` and the delegation's `Shares` are both increased by the message `Amount`. + +### MsgBeginRedelegate + +The redelegation command allows delegators to instantly switch validators. Once +the unbonding period has passed, the redelegation is automatically completed in +the EndBlocker. + +```protobuf reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/proto/cosmos/staking/v1beta1/tx.proto#L30-L32 +``` + +```protobuf reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/proto/cosmos/staking/v1beta1/tx.proto#L119-L132 +``` + +This message returns a response containing the completion time of the redelegation: + +```protobuf reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/proto/cosmos/staking/v1beta1/tx.proto#L133-L138 +``` + +This message is expected to fail if: + +* the delegation doesn't exist +* the source or destination validators don't exist +* the delegation has less shares than the ones worth of `Amount` +* the source validator has a receiving redelegation which is not matured (aka. the redelegation may be transitive) +* existing `Redelegation` has maximum entries as defined by `params.MaxEntries` +* the `Amount` `Coin` has a denomination different than one defined by `params.BondDenom` + +When this message is processed the following actions occur: + +* the source validator's `DelegatorShares` and the delegations `Shares` are both reduced by the message `SharesAmount` +* calculate the token worth of the shares remove that amount tokens held within the source validator. +* if the source validator is: + * `Bonded` - add an entry to the `Redelegation` (create `Redelegation` if it doesn't exist) with a completion time a full unbonding period from the current time. Update pool shares to reduce BondedTokens and increase NotBondedTokens by token worth of the shares (this may be effectively reversed in the next step however). + * `Unbonding` - add an entry to the `Redelegation` (create `Redelegation` if it doesn't exist) with the same completion time as the validator (`UnbondingMinTime`). + * `Unbonded` - no action required in this step +* Delegate the token worth to the destination validator, possibly moving tokens back to the bonded state. +* if there are no more `Shares` in the source delegation, then the source delegation object is removed from the store + * under this situation if the delegation is the validator's self-delegation then also jail the validator. + +![Begin redelegation sequence](https://raw.githubusercontent.com/cosmos/cosmos-sdk/release/v0.46.x/docs/uml/svg/begin_redelegation_sequence.svg) + + +### MsgUpdateParams + +The `MsgUpdateParams` update the staking module parameters. +The params are updated through a governance proposal where the signer is the gov module account address. + +```protobuf reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/proto/cosmos/staking/v1beta1/tx.proto#L182-L195 +``` + +The message handling can fail if: + +* signer is not the authority defined in the staking keeper (usually the gov module account). + +## Begin-Block + +Each abci begin block call, the historical info will get stored and pruned +according to the `HistoricalEntries` parameter. + +### Historical Info Tracking + +If the `HistoricalEntries` parameter is 0, then the `BeginBlock` performs a no-op. + +Otherwise, the latest historical info is stored under the key `historicalInfoKey|height`, while any entries older than `height - HistoricalEntries` is deleted. +In most cases, this results in a single entry being pruned per block. +However, if the parameter `HistoricalEntries` has changed to a lower value there will be multiple entries in the store that must be pruned. + +## End-Block + +Each abci end block call, the operations to update queues and validator set +changes are specified to execute. + +### Validator Set Changes + +The staking validator set is updated during this process by state transitions +that run at the end of every block. As a part of this process any updated +validators are also returned back to CometBFT for inclusion in the CometBFT +validator set which is responsible for validating CometBFT messages at the +consensus layer. Operations are as following: + +* the new validator set is taken as the top `params.MaxValidators` number of + validators retrieved from the `ValidatorsByPower` index +* the previous validator set is compared with the new validator set: + * missing validators begin unbonding and their `Tokens` are transferred from the + `BondedPool` to the `NotBondedPool` `ModuleAccount` + * new validators are instantly bonded and their `Tokens` are transferred from the + `NotBondedPool` to the `BondedPool` `ModuleAccount` + +In all cases, any validators leaving or entering the bonded validator set or +changing balances and staying within the bonded validator set incur an update +message reporting their new consensus power which is passed back to CometBFT. + +The `LastTotalPower` and `LastValidatorsPower` hold the state of the total power +and validator power from the end of the last block, and are used to check for +changes that have occurred in `ValidatorsByPower` and the total new power, which +is calculated during `EndBlock`. + +### Queues + +Within staking, certain state-transitions are not instantaneous but take place +over a duration of time (typically the unbonding period). When these +transitions are mature certain operations must take place in order to complete +the state operation. This is achieved through the use of queues which are +checked/processed at the end of each block. + +#### Unbonding Validators + +When a validator is kicked out of the bonded validator set (either through +being jailed, or not having sufficient bonded tokens) it begins the unbonding +process along with all its delegations begin unbonding (while still being +delegated to this validator). At this point the validator is said to be an +"unbonding validator", whereby it will mature to become an "unbonded validator" +after the unbonding period has passed. + +Each block the validator queue is to be checked for mature unbonding validators +(namely with a completion time <= current time and completion height <= current +block height). At this point any mature validators which do not have any +delegations remaining are deleted from state. For all other mature unbonding +validators that still have remaining delegations, the `validator.Status` is +switched from `types.Unbonding` to +`types.Unbonded`. + +Unbonding operations can be put on hold by external modules via the `PutUnbondingOnHold(unbondingId)` method. + As a result, an unbonding operation (e.g., an unbonding delegation) that is on hold, cannot complete + even if it reaches maturity. For an unbonding operation with `unbondingId` to eventually complete + (after it reaches maturity), every call to `PutUnbondingOnHold(unbondingId)` must be matched + by a call to `UnbondingCanComplete(unbondingId)`. + +#### Unbonding Delegations + +Complete the unbonding of all mature `UnbondingDelegations.Entries` within the +`UnbondingDelegations` queue with the following procedure: + +* transfer the balance coins to the delegator's wallet address +* remove the mature entry from `UnbondingDelegation.Entries` +* remove the `UnbondingDelegation` object from the store if there are no + remaining entries. + +#### Redelegations + +Complete the unbonding of all mature `Redelegation.Entries` within the +`Redelegations` queue with the following procedure: + +* remove the mature entry from `Redelegation.Entries` +* remove the `Redelegation` object from the store if there are no + remaining entries. + +## Hooks + +Other modules may register operations to execute when a certain event has +occurred within staking. These events can be registered to execute either +right `Before` or `After` the staking event (as per the hook name). The +following hooks can registered with staking: + +* `AfterValidatorCreated(Context, ValAddress) error` + * called when a validator is created +* `BeforeValidatorModified(Context, ValAddress) error` + * called when a validator's state is changed +* `AfterValidatorRemoved(Context, ConsAddress, ValAddress) error` + * called when a validator is deleted +* `AfterValidatorBonded(Context, ConsAddress, ValAddress) error` + * called when a validator is bonded +* `AfterValidatorBeginUnbonding(Context, ConsAddress, ValAddress) error` + * called when a validator begins unbonding +* `BeforeDelegationCreated(Context, AccAddress, ValAddress) error` + * called when a delegation is created +* `BeforeDelegationSharesModified(Context, AccAddress, ValAddress) error` + * called when a delegation's shares are modified +* `AfterDelegationModified(Context, AccAddress, ValAddress) error` + * called when a delegation is created or modified +* `BeforeDelegationRemoved(Context, AccAddress, ValAddress) error` + * called when a delegation is removed +* `AfterUnbondingInitiated(Context, UnbondingID)` + * called when an unbonding operation (validator unbonding, unbonding delegation, redelegation) was initiated + + +## Events + +The staking module emits the following events: + +### EndBlocker + +| Type | Attribute Key | Attribute Value | +| --------------------- | --------------------- | ------------------------- | +| complete_unbonding | amount | {totalUnbondingAmount} | +| complete_unbonding | validator | {validatorAddress} | +| complete_unbonding | delegator | {delegatorAddress} | +| complete_redelegation | amount | {totalRedelegationAmount} | +| complete_redelegation | source_validator | {srcValidatorAddress} | +| complete_redelegation | destination_validator | {dstValidatorAddress} | +| complete_redelegation | delegator | {delegatorAddress} | + +## Msg's + +### MsgCreateValidator + +| Type | Attribute Key | Attribute Value | +| ---------------- | ------------- | ------------------ | +| create_validator | validator | {validatorAddress} | +| create_validator | amount | {delegationAmount} | +| message | module | staking | +| message | action | create_validator | +| message | sender | {senderAddress} | + +### MsgEditValidator + +| Type | Attribute Key | Attribute Value | +| -------------- | ------------------- | ------------------- | +| edit_validator | commission_rate | {commissionRate} | +| edit_validator | min_self_delegation | {minSelfDelegation} | +| message | module | staking | +| message | action | edit_validator | +| message | sender | {senderAddress} | + +### MsgDelegate + +| Type | Attribute Key | Attribute Value | +| -------- | ------------- | ------------------ | +| delegate | validator | {validatorAddress} | +| delegate | amount | {delegationAmount} | +| message | module | staking | +| message | action | delegate | +| message | sender | {senderAddress} | + +### MsgUndelegate + +| Type | Attribute Key | Attribute Value | +| ------- | ------------------- | ------------------ | +| unbond | validator | {validatorAddress} | +| unbond | amount | {unbondAmount} | +| unbond | completion_time [0] | {completionTime} | +| message | module | staking | +| message | action | begin_unbonding | +| message | sender | {senderAddress} | + +* [0] Time is formatted in the RFC3339 standard + +### MsgCancelUnbondingDelegation + +| Type | Attribute Key | Attribute Value | +| ----------------------------- | ------------------ | ------------------------------------| +| cancel_unbonding_delegation | validator | {validatorAddress} | +| cancel_unbonding_delegation | delegator | {delegatorAddress} | +| cancel_unbonding_delegation | amount | {cancelUnbondingDelegationAmount} | +| cancel_unbonding_delegation | creation_height | {unbondingCreationHeight} | +| message | module | staking | +| message | action | cancel_unbond | +| message | sender | {senderAddress} | + +### MsgBeginRedelegate + +| Type | Attribute Key | Attribute Value | +| ---------- | --------------------- | --------------------- | +| redelegate | source_validator | {srcValidatorAddress} | +| redelegate | destination_validator | {dstValidatorAddress} | +| redelegate | amount | {unbondAmount} | +| redelegate | completion_time [0] | {completionTime} | +| message | module | staking | +| message | action | begin_redelegate | +| message | sender | {senderAddress} | + +* [0] Time is formatted in the RFC3339 standard + +## Parameters + +The staking module contains the following parameters: + +| Key | Type | Example | +|-------------------|------------------|------------------------| +| UnbondingTime | string (time ns) | "259200000000000" | +| MaxValidators | uint16 | 100 | +| KeyMaxEntries | uint16 | 7 | +| HistoricalEntries | uint16 | 3 | +| BondDenom | string | "stake" | +| MinCommissionRate | string | "0.000000000000000000" | + +## Client + +### CLI + +A user can query and interact with the `staking` module using the CLI. + +#### Query + +The `query` commands allows users to query `staking` state. + +```bash +simd query staking --help +``` + +##### delegation + +The `delegation` command allows users to query delegations for an individual delegator on an individual validator. + +Usage: + +```bash +simd query staking delegation [delegator-addr] [validator-addr] [flags] +``` + +Example: + +```bash +simd query staking delegation cosmos1gghjut3ccd8ay0zduzj64hwre2fxs9ld75ru9p cosmosvaloper1gghjut3ccd8ay0zduzj64hwre2fxs9ldmqhffj +``` + +Example Output: + +```bash +balance: + amount: "10000000000" + denom: stake +delegation: + delegator_address: cosmos1gghjut3ccd8ay0zduzj64hwre2fxs9ld75ru9p + shares: "10000000000.000000000000000000" + validator_address: cosmosvaloper1gghjut3ccd8ay0zduzj64hwre2fxs9ldmqhffj +``` + +##### delegations + +The `delegations` command allows users to query delegations for an individual delegator on all validators. + +Usage: + +```bash +simd query staking delegations [delegator-addr] [flags] +``` + +Example: + +```bash +simd query staking delegations cosmos1gghjut3ccd8ay0zduzj64hwre2fxs9ld75ru9p +``` + +Example Output: + +```bash +delegation_responses: +- balance: + amount: "10000000000" + denom: stake + delegation: + delegator_address: cosmos1gghjut3ccd8ay0zduzj64hwre2fxs9ld75ru9p + shares: "10000000000.000000000000000000" + validator_address: cosmosvaloper1gghjut3ccd8ay0zduzj64hwre2fxs9ldmqhffj +- balance: + amount: "10000000000" + denom: stake + delegation: + delegator_address: cosmos1gghjut3ccd8ay0zduzj64hwre2fxs9ld75ru9p + shares: "10000000000.000000000000000000" + validator_address: cosmosvaloper1x20lytyf6zkcrv5edpkfkn8sz578qg5sqfyqnp +pagination: + next_key: null + total: "0" +``` + +##### delegations-to + +The `delegations-to` command allows users to query delegations on an individual validator. + +Usage: + +```bash +simd query staking delegations-to [validator-addr] [flags] +``` + +Example: + +```bash +simd query staking delegations-to cosmosvaloper1gghjut3ccd8ay0zduzj64hwre2fxs9ldmqhffj +``` + +Example Output: + +```bash +- balance: + amount: "504000000" + denom: stake + delegation: + delegator_address: cosmos1q2qwwynhv8kh3lu5fkeex4awau9x8fwt45f5cp + shares: "504000000.000000000000000000" + validator_address: cosmosvaloper1gghjut3ccd8ay0zduzj64hwre2fxs9ldmqhffj +- balance: + amount: "78125000000" + denom: uixo + delegation: + delegator_address: cosmos1qvppl3479hw4clahe0kwdlfvf8uvjtcd99m2ca + shares: "78125000000.000000000000000000" + validator_address: cosmosvaloper1gghjut3ccd8ay0zduzj64hwre2fxs9ldmqhffj +pagination: + next_key: null + total: "0" +``` + +##### historical-info + +The `historical-info` command allows users to query historical information at given height. + +Usage: + +```bash +simd query staking historical-info [height] [flags] +``` + +Example: + +```bash +simd query staking historical-info 10 +``` + +Example Output: + +```bash +header: + app_hash: Lbx8cXpI868wz8sgp4qPYVrlaKjevR5WP/IjUxwp3oo= + chain_id: testnet + consensus_hash: BICRvH3cKD93v7+R1zxE2ljD34qcvIZ0Bdi389qtoi8= + data_hash: 47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU= + evidence_hash: 47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU= + height: "10" + last_block_id: + hash: RFbkpu6pWfSThXxKKl6EZVDnBSm16+U0l0xVjTX08Fk= + part_set_header: + hash: vpIvXD4rxD5GM4MXGz0Sad9I7//iVYLzZsEU4BVgWIU= + total: 1 + last_commit_hash: Ne4uXyx4QtNp4Zx89kf9UK7oG9QVbdB6e7ZwZkhy8K0= + last_results_hash: 47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU= + next_validators_hash: nGBgKeWBjoxeKFti00CxHsnULORgKY4LiuQwBuUrhCs= + proposer_address: mMEP2c2IRPLr99LedSRtBg9eONM= + time: "2021-10-01T06:00:49.785790894Z" + validators_hash: nGBgKeWBjoxeKFti00CxHsnULORgKY4LiuQwBuUrhCs= + version: + app: "0" + block: "11" +valset: +- commission: + commission_rates: + max_change_rate: "0.010000000000000000" + max_rate: "0.200000000000000000" + rate: "0.100000000000000000" + update_time: "2021-10-01T05:52:50.380144238Z" + consensus_pubkey: + '@type': /cosmos.crypto.ed25519.PubKey + key: Auxs3865HpB/EfssYOzfqNhEJjzys2Fo6jD5B8tPgC8= + delegator_shares: "10000000.000000000000000000" + description: + details: "" + identity: "" + moniker: myvalidator + security_contact: "" + website: "" + jailed: false + min_self_delegation: "1" + operator_address: cosmosvaloper1rne8lgs98p0jqe82sgt0qr4rdn4hgvmgp9ggcc + status: BOND_STATUS_BONDED + tokens: "10000000" + unbonding_height: "0" + unbonding_time: "1970-01-01T00:00:00Z" +``` + +##### params + +The `params` command allows users to query values set as staking parameters. + +Usage: + +```bash +simd query staking params [flags] +``` + +Example: + +```bash +simd query staking params +``` + +Example Output: + +```bash +bond_denom: stake +historical_entries: 10000 +max_entries: 7 +max_validators: 50 +unbonding_time: 1814400s +``` + +##### pool + +The `pool` command allows users to query values for amounts stored in the staking pool. + +Usage: + +```bash +simd q staking pool [flags] +``` + +Example: + +```bash +simd q staking pool +``` + +Example Output: + +```bash +bonded_tokens: "10000000" +not_bonded_tokens: "0" +``` + +##### redelegation + +The `redelegation` command allows users to query a redelegation record based on delegator and a source and destination validator address. + +Usage: + +```bash +simd query staking redelegation [delegator-addr] [src-validator-addr] [dst-validator-addr] [flags] +``` + +Example: + +```bash +simd query staking redelegation cosmos1gghjut3ccd8ay0zduzj64hwre2fxs9ld75ru9p cosmosvaloper1l2rsakp388kuv9k8qzq6lrm9taddae7fpx59wm cosmosvaloper1gghjut3ccd8ay0zduzj64hwre2fxs9ldmqhffj +``` + +Example Output: + +```bash +pagination: null +redelegation_responses: +- entries: + - balance: "50000000" + redelegation_entry: + completion_time: "2021-10-24T20:33:21.960084845Z" + creation_height: 2.382847e+06 + initial_balance: "50000000" + shares_dst: "50000000.000000000000000000" + - balance: "5000000000" + redelegation_entry: + completion_time: "2021-10-25T21:33:54.446846862Z" + creation_height: 2.397271e+06 + initial_balance: "5000000000" + shares_dst: "5000000000.000000000000000000" + redelegation: + delegator_address: cosmos1gghjut3ccd8ay0zduzj64hwre2fxs9ld75ru9p + entries: null + validator_dst_address: cosmosvaloper1l2rsakp388kuv9k8qzq6lrm9taddae7fpx59wm + validator_src_address: cosmosvaloper1l2rsakp388kuv9k8qzq6lrm9taddae7fpx59wm +``` + +##### redelegations + +The `redelegations` command allows users to query all redelegation records for an individual delegator. + +Usage: + +```bash +simd query staking redelegations [delegator-addr] [flags] +``` + +Example: + +```bash +simd query staking redelegation cosmos1gghjut3ccd8ay0zduzj64hwre2fxs9ld75ru9p +``` + +Example Output: + +```bash +pagination: + next_key: null + total: "0" +redelegation_responses: +- entries: + - balance: "50000000" + redelegation_entry: + completion_time: "2021-10-24T20:33:21.960084845Z" + creation_height: 2.382847e+06 + initial_balance: "50000000" + shares_dst: "50000000.000000000000000000" + - balance: "5000000000" + redelegation_entry: + completion_time: "2021-10-25T21:33:54.446846862Z" + creation_height: 2.397271e+06 + initial_balance: "5000000000" + shares_dst: "5000000000.000000000000000000" + redelegation: + delegator_address: cosmos1gghjut3ccd8ay0zduzj64hwre2fxs9ld75ru9p + entries: null + validator_dst_address: cosmosvaloper1uccl5ugxrm7vqlzwqr04pjd320d2fz0z3hc6vm + validator_src_address: cosmosvaloper1zppjyal5emta5cquje8ndkpz0rs046m7zqxrpp +- entries: + - balance: "562770000000" + redelegation_entry: + completion_time: "2021-10-25T21:42:07.336911677Z" + creation_height: 2.39735e+06 + initial_balance: "562770000000" + shares_dst: "562770000000.000000000000000000" + redelegation: + delegator_address: cosmos1gghjut3ccd8ay0zduzj64hwre2fxs9ld75ru9p + entries: null + validator_dst_address: cosmosvaloper1uccl5ugxrm7vqlzwqr04pjd320d2fz0z3hc6vm + validator_src_address: cosmosvaloper1zppjyal5emta5cquje8ndkpz0rs046m7zqxrpp +``` + +##### redelegations-from + +The `redelegations-from` command allows users to query delegations that are redelegating _from_ a validator. + +Usage: + +```bash +simd query staking redelegations-from [validator-addr] [flags] +``` + +Example: + +```bash +simd query staking redelegations-from cosmosvaloper1y4rzzrgl66eyhzt6gse2k7ej3zgwmngeleucjy +``` + +Example Output: + +```bash +pagination: + next_key: null + total: "0" +redelegation_responses: +- entries: + - balance: "50000000" + redelegation_entry: + completion_time: "2021-10-24T20:33:21.960084845Z" + creation_height: 2.382847e+06 + initial_balance: "50000000" + shares_dst: "50000000.000000000000000000" + - balance: "5000000000" + redelegation_entry: + completion_time: "2021-10-25T21:33:54.446846862Z" + creation_height: 2.397271e+06 + initial_balance: "5000000000" + shares_dst: "5000000000.000000000000000000" + redelegation: + delegator_address: cosmos1pm6e78p4pgn0da365plzl4t56pxy8hwtqp2mph + entries: null + validator_dst_address: cosmosvaloper1uccl5ugxrm7vqlzwqr04pjd320d2fz0z3hc6vm + validator_src_address: cosmosvaloper1y4rzzrgl66eyhzt6gse2k7ej3zgwmngeleucjy +- entries: + - balance: "221000000" + redelegation_entry: + completion_time: "2021-10-05T21:05:45.669420544Z" + creation_height: 2.120693e+06 + initial_balance: "221000000" + shares_dst: "221000000.000000000000000000" + redelegation: + delegator_address: cosmos1zqv8qxy2zgn4c58fz8jt8jmhs3d0attcussrf6 + entries: null + validator_dst_address: cosmosvaloper10mseqwnwtjaqfrwwp2nyrruwmjp6u5jhah4c3y + validator_src_address: cosmosvaloper1y4rzzrgl66eyhzt6gse2k7ej3zgwmngeleucjy +``` + +##### unbonding-delegation + +The `unbonding-delegation` command allows users to query unbonding delegations for an individual delegator on an individual validator. + +Usage: + +```bash +simd query staking unbonding-delegation [delegator-addr] [validator-addr] [flags] +``` + +Example: + +```bash +simd query staking unbonding-delegation cosmos1gghjut3ccd8ay0zduzj64hwre2fxs9ld75ru9p cosmosvaloper1gghjut3ccd8ay0zduzj64hwre2fxs9ldmqhffj +``` + +Example Output: + +```bash +delegator_address: cosmos1gghjut3ccd8ay0zduzj64hwre2fxs9ld75ru9p +entries: +- balance: "52000000" + completion_time: "2021-11-02T11:35:55.391594709Z" + creation_height: "55078" + initial_balance: "52000000" +validator_address: cosmosvaloper1gghjut3ccd8ay0zduzj64hwre2fxs9ldmqhffj +``` + +##### unbonding-delegations + +The `unbonding-delegations` command allows users to query all unbonding-delegations records for one delegator. + +Usage: + +```bash +simd query staking unbonding-delegations [delegator-addr] [flags] +``` + +Example: + +```bash +simd query staking unbonding-delegations cosmos1gghjut3ccd8ay0zduzj64hwre2fxs9ld75ru9p +``` + +Example Output: + +```bash +pagination: + next_key: null + total: "0" +unbonding_responses: +- delegator_address: cosmos1gghjut3ccd8ay0zduzj64hwre2fxs9ld75ru9p + entries: + - balance: "52000000" + completion_time: "2021-11-02T11:35:55.391594709Z" + creation_height: "55078" + initial_balance: "52000000" + validator_address: cosmosvaloper1t8ehvswxjfn3ejzkjtntcyrqwvmvuknzmvtaaa + +``` + +##### unbonding-delegations-from + +The `unbonding-delegations-from` command allows users to query delegations that are unbonding _from_ a validator. + +Usage: + +```bash +simd query staking unbonding-delegations-from [validator-addr] [flags] +``` + +Example: + +```bash +simd query staking unbonding-delegations-from cosmosvaloper1gghjut3ccd8ay0zduzj64hwre2fxs9ldmqhffj +``` + +Example Output: + +```bash +pagination: + next_key: null + total: "0" +unbonding_responses: +- delegator_address: cosmos1qqq9txnw4c77sdvzx0tkedsafl5s3vk7hn53fn + entries: + - balance: "150000000" + completion_time: "2021-11-01T21:41:13.098141574Z" + creation_height: "46823" + initial_balance: "150000000" + validator_address: cosmosvaloper1gghjut3ccd8ay0zduzj64hwre2fxs9ldmqhffj +- delegator_address: cosmos1peteje73eklqau66mr7h7rmewmt2vt99y24f5z + entries: + - balance: "24000000" + completion_time: "2021-10-31T02:57:18.192280361Z" + creation_height: "21516" + initial_balance: "24000000" + validator_address: cosmosvaloper1gghjut3ccd8ay0zduzj64hwre2fxs9ldmqhffj +``` + +##### validator + +The `validator` command allows users to query details about an individual validator. + +Usage: + +```bash +simd query staking validator [validator-addr] [flags] +``` + +Example: + +```bash +simd query staking validator cosmosvaloper1gghjut3ccd8ay0zduzj64hwre2fxs9ldmqhffj +``` + +Example Output: + +```bash +commission: + commission_rates: + max_change_rate: "0.020000000000000000" + max_rate: "0.200000000000000000" + rate: "0.050000000000000000" + update_time: "2021-10-01T19:24:52.663191049Z" +consensus_pubkey: + '@type': /cosmos.crypto.ed25519.PubKey + key: sIiexdJdYWn27+7iUHQJDnkp63gq/rzUq1Y+fxoGjXc= +delegator_shares: "32948270000.000000000000000000" +description: + details: Witval is the validator arm from Vitwit. Vitwit is into software consulting + and services business since 2015. We are working closely with Cosmos ecosystem + since 2018. We are also building tools for the ecosystem, Aneka is our explorer + for the cosmos ecosystem. + identity: 51468B615127273A + moniker: Witval + security_contact: "" + website: "" +jailed: false +min_self_delegation: "1" +operator_address: cosmosvaloper1gghjut3ccd8ay0zduzj64hwre2fxs9ldmqhffj +status: BOND_STATUS_BONDED +tokens: "32948270000" +unbonding_height: "0" +unbonding_time: "1970-01-01T00:00:00Z" +``` + +##### validators + +The `validators` command allows users to query details about all validators on a network. + +Usage: + +```bash +simd query staking validators [flags] +``` + +Example: + +```bash +simd query staking validators +``` + +Example Output: + +```bash +pagination: + next_key: FPTi7TKAjN63QqZh+BaXn6gBmD5/ + total: "0" +validators: +commission: + commission_rates: + max_change_rate: "0.020000000000000000" + max_rate: "0.200000000000000000" + rate: "0.050000000000000000" + update_time: "2021-10-01T19:24:52.663191049Z" +consensus_pubkey: + '@type': /cosmos.crypto.ed25519.PubKey + key: sIiexdJdYWn27+7iUHQJDnkp63gq/rzUq1Y+fxoGjXc= +delegator_shares: "32948270000.000000000000000000" +description: + details: Witval is the validator arm from Vitwit. Vitwit is into software consulting + and services business since 2015. We are working closely with Cosmos ecosystem + since 2018. We are also building tools for the ecosystem, Aneka is our explorer + for the cosmos ecosystem. + identity: 51468B615127273A + moniker: Witval + security_contact: "" + website: "" + jailed: false + min_self_delegation: "1" + operator_address: cosmosvaloper1gghjut3ccd8ay0zduzj64hwre2fxs9ldmqhffj + status: BOND_STATUS_BONDED + tokens: "32948270000" + unbonding_height: "0" + unbonding_time: "1970-01-01T00:00:00Z" +- commission: + commission_rates: + max_change_rate: "0.100000000000000000" + max_rate: "0.200000000000000000" + rate: "0.050000000000000000" + update_time: "2021-10-04T18:02:21.446645619Z" + consensus_pubkey: + '@type': /cosmos.crypto.ed25519.PubKey + key: GDNpuKDmCg9GnhnsiU4fCWktuGUemjNfvpCZiqoRIYA= + delegator_shares: "559343421.000000000000000000" + description: + details: Noderunners is a professional validator in POS networks. We have a huge + node running experience, reliable soft and hardware. Our commissions are always + low, our support to delegators is always full. Stake with us and start receiving + your Cosmos rewards now! + identity: 812E82D12FEA3493 + moniker: Noderunners + security_contact: info@noderunners.biz + website: http://noderunners.biz + jailed: false + min_self_delegation: "1" + operator_address: cosmosvaloper1q5ku90atkhktze83j9xjaks2p7uruag5zp6wt7 + status: BOND_STATUS_BONDED + tokens: "559343421" + unbonding_height: "0" + unbonding_time: "1970-01-01T00:00:00Z" +``` + +#### Transactions + +The `tx` commands allows users to interact with the `staking` module. + +```bash +simd tx staking --help +``` + +##### create-validator + +The command `create-validator` allows users to create new validator initialized with a self-delegation to it. + +Usage: + +```bash +simd tx staking create-validator [path/to/validator.json] [flags] +``` + +Example: + +```bash +simd tx staking create-validator /path/to/validator.json \ + --chain-id="name_of_chain_id" \ + --gas="auto" \ + --gas-adjustment="1.2" \ + --gas-prices="0.025stake" \ + --from=mykey +``` + +where `validator.json` contains: + +```json +{ + "pubkey": {"@type":"/cosmos.crypto.ed25519.PubKey","key":"BnbwFpeONLqvWqJb3qaUbL5aoIcW3fSuAp9nT3z5f20="}, + "amount": "1000000stake", + "moniker": "my-moniker", + "website": "https://myweb.site", + "security": "security-contact@gmail.com", + "details": "description of your validator", + "commission-rate": "0.10", + "commission-max-rate": "0.20", + "commission-max-change-rate": "0.01", + "min-self-delegation": "1" +} +``` + +and pubkey can be obtained by using `simd tendermint show-validator` command. + +##### delegate + +The command `delegate` allows users to delegate liquid tokens to a validator. + +Usage: + +```bash +simd tx staking delegate [validator-addr] [amount] [flags] +``` + +Example: + +```bash +simd tx staking delegate cosmosvaloper1l2rsakp388kuv9k8qzq6lrm9taddae7fpx59wm 1000stake --from mykey +``` + +##### edit-validator + +The command `edit-validator` allows users to edit an existing validator account. + +Usage: + +```bash +simd tx staking edit-validator [flags] +``` + +Example: + +```bash +simd tx staking edit-validator --moniker "new_moniker_name" --website "new_webiste_url" --from mykey +``` + +##### redelegate + +The command `redelegate` allows users to redelegate illiquid tokens from one validator to another. + +Usage: + +```bash +simd tx staking redelegate [src-validator-addr] [dst-validator-addr] [amount] [flags] +``` + +Example: + +```bash +simd tx staking redelegate cosmosvaloper1gghjut3ccd8ay0zduzj64hwre2fxs9ldmqhffj cosmosvaloper1l2rsakp388kuv9k8qzq6lrm9taddae7fpx59wm 100stake --from mykey +``` + +##### unbond + +The command `unbond` allows users to unbond shares from a validator. + +Usage: + +```bash +simd tx staking unbond [validator-addr] [amount] [flags] +``` + +Example: + +```bash +simd tx staking unbond cosmosvaloper1gghjut3ccd8ay0zduzj64hwre2fxs9ldmqhffj 100stake --from mykey +``` + +##### cancel unbond + +The command `cancel-unbond` allow users to cancel the unbonding delegation entry and delegate back to the original validator. + +Usage: + +```bash +simd tx staking cancel-unbond [validator-addr] [amount] [creation-height] +``` + +Example: + +```bash +simd tx staking cancel-unbond cosmosvaloper1gghjut3ccd8ay0zduzj64hwre2fxs9ldmqhffj 100stake 123123 --from mykey +``` + + +### gRPC + +A user can query the `staking` module using gRPC endpoints. + +#### Validators + +The `Validators` endpoint queries all validators that match the given status. + +```bash +cosmos.staking.v1beta1.Query/Validators +``` + +Example: + +```bash +grpcurl -plaintext localhost:9090 cosmos.staking.v1beta1.Query/Validators +``` + +Example Output: + +```bash +{ + "validators": [ + { + "operatorAddress": "cosmosvaloper1rne8lgs98p0jqe82sgt0qr4rdn4hgvmgp9ggcc", + "consensusPubkey": {"@type":"/cosmos.crypto.ed25519.PubKey","key":"Auxs3865HpB/EfssYOzfqNhEJjzys2Fo6jD5B8tPgC8="}, + "status": "BOND_STATUS_BONDED", + "tokens": "10000000", + "delegatorShares": "10000000000000000000000000", + "description": { + "moniker": "myvalidator" + }, + "unbondingTime": "1970-01-01T00:00:00Z", + "commission": { + "commissionRates": { + "rate": "100000000000000000", + "maxRate": "200000000000000000", + "maxChangeRate": "10000000000000000" + }, + "updateTime": "2021-10-01T05:52:50.380144238Z" + }, + "minSelfDelegation": "1" + } + ], + "pagination": { + "total": "1" + } +} +``` + +#### Validator + +The `Validator` endpoint queries validator information for given validator address. + +```bash +cosmos.staking.v1beta1.Query/Validator +``` + +Example: + +```bash +grpcurl -plaintext -d '{"validator_addr":"cosmosvaloper1rne8lgs98p0jqe82sgt0qr4rdn4hgvmgp9ggcc"}' \ +localhost:9090 cosmos.staking.v1beta1.Query/Validator +``` + +Example Output: + +```bash +{ + "validator": { + "operatorAddress": "cosmosvaloper1rne8lgs98p0jqe82sgt0qr4rdn4hgvmgp9ggcc", + "consensusPubkey": {"@type":"/cosmos.crypto.ed25519.PubKey","key":"Auxs3865HpB/EfssYOzfqNhEJjzys2Fo6jD5B8tPgC8="}, + "status": "BOND_STATUS_BONDED", + "tokens": "10000000", + "delegatorShares": "10000000000000000000000000", + "description": { + "moniker": "myvalidator" + }, + "unbondingTime": "1970-01-01T00:00:00Z", + "commission": { + "commissionRates": { + "rate": "100000000000000000", + "maxRate": "200000000000000000", + "maxChangeRate": "10000000000000000" + }, + "updateTime": "2021-10-01T05:52:50.380144238Z" + }, + "minSelfDelegation": "1" + } +} +``` + +#### ValidatorDelegations + +The `ValidatorDelegations` endpoint queries delegate information for given validator. + +```bash +cosmos.staking.v1beta1.Query/ValidatorDelegations +``` + +Example: + +```bash +grpcurl -plaintext -d '{"validator_addr":"cosmosvaloper1rne8lgs98p0jqe82sgt0qr4rdn4hgvmgp9ggcc"}' \ +localhost:9090 cosmos.staking.v1beta1.Query/ValidatorDelegations +``` + +Example Output: + +```bash +{ + "delegationResponses": [ + { + "delegation": { + "delegatorAddress": "cosmos1rne8lgs98p0jqe82sgt0qr4rdn4hgvmgy3ua5t", + "validatorAddress": "cosmosvaloper1rne8lgs98p0jqe82sgt0qr4rdn4hgvmgp9ggcc", + "shares": "10000000000000000000000000" + }, + "balance": { + "denom": "stake", + "amount": "10000000" + } + } + ], + "pagination": { + "total": "1" + } +} +``` + +#### ValidatorUnbondingDelegations + +The `ValidatorUnbondingDelegations` endpoint queries delegate information for given validator. + +```bash +cosmos.staking.v1beta1.Query/ValidatorUnbondingDelegations +``` + +Example: + +```bash +grpcurl -plaintext -d '{"validator_addr":"cosmosvaloper1rne8lgs98p0jqe82sgt0qr4rdn4hgvmgp9ggcc"}' \ +localhost:9090 cosmos.staking.v1beta1.Query/ValidatorUnbondingDelegations +``` + +Example Output: + +```bash +{ + "unbonding_responses": [ + { + "delegator_address": "cosmos1z3pzzw84d6xn00pw9dy3yapqypfde7vg6965fy", + "validator_address": "cosmosvaloper1rne8lgs98p0jqe82sgt0qr4rdn4hgvmgp9ggcc", + "entries": [ + { + "creation_height": "25325", + "completion_time": "2021-10-31T09:24:36.797320636Z", + "initial_balance": "20000000", + "balance": "20000000" + } + ] + }, + { + "delegator_address": "cosmos1y8nyfvmqh50p6ldpzljk3yrglppdv3t8phju77", + "validator_address": "cosmosvaloper1rne8lgs98p0jqe82sgt0qr4rdn4hgvmgp9ggcc", + "entries": [ + { + "creation_height": "13100", + "completion_time": "2021-10-30T12:53:02.272266791Z", + "initial_balance": "1000000", + "balance": "1000000" + } + ] + }, + ], + "pagination": { + "next_key": null, + "total": "8" + } +} +``` + +#### Delegation + +The `Delegation` endpoint queries delegate information for given validator delegator pair. + +```bash +cosmos.staking.v1beta1.Query/Delegation +``` + +Example: + +```bash +grpcurl -plaintext \ +-d '{"delegator_addr": "cosmos1y8nyfvmqh50p6ldpzljk3yrglppdv3t8phju77", validator_addr":"cosmosvaloper1rne8lgs98p0jqe82sgt0qr4rdn4hgvmgp9ggcc"}' \ +localhost:9090 cosmos.staking.v1beta1.Query/Delegation +``` + +Example Output: + +```bash +{ + "delegation_response": + { + "delegation": + { + "delegator_address":"cosmos1y8nyfvmqh50p6ldpzljk3yrglppdv3t8phju77", + "validator_address":"cosmosvaloper1rne8lgs98p0jqe82sgt0qr4rdn4hgvmgp9ggcc", + "shares":"25083119936.000000000000000000" + }, + "balance": + { + "denom":"stake", + "amount":"25083119936" + } + } +} +``` + +#### UnbondingDelegation + +The `UnbondingDelegation` endpoint queries unbonding information for given validator delegator. + +```bash +cosmos.staking.v1beta1.Query/UnbondingDelegation +``` + +Example: + +```bash +grpcurl -plaintext \ +-d '{"delegator_addr": "cosmos1y8nyfvmqh50p6ldpzljk3yrglppdv3t8phju77", validator_addr":"cosmosvaloper1rne8lgs98p0jqe82sgt0qr4rdn4hgvmgp9ggcc"}' \ +localhost:9090 cosmos.staking.v1beta1.Query/UnbondingDelegation +``` + +Example Output: + +```bash +{ + "unbond": { + "delegator_address": "cosmos1y8nyfvmqh50p6ldpzljk3yrglppdv3t8phju77", + "validator_address": "cosmosvaloper1rne8lgs98p0jqe82sgt0qr4rdn4hgvmgp9ggcc", + "entries": [ + { + "creation_height": "136984", + "completion_time": "2021-11-08T05:38:47.505593891Z", + "initial_balance": "400000000", + "balance": "400000000" + }, + { + "creation_height": "137005", + "completion_time": "2021-11-08T05:40:53.526196312Z", + "initial_balance": "385000000", + "balance": "385000000" + } + ] + } +} +``` + +#### DelegatorDelegations + +The `DelegatorDelegations` endpoint queries all delegations of a given delegator address. + +```bash +cosmos.staking.v1beta1.Query/DelegatorDelegations +``` + +Example: + +```bash +grpcurl -plaintext \ +-d '{"delegator_addr": "cosmos1y8nyfvmqh50p6ldpzljk3yrglppdv3t8phju77"}' \ +localhost:9090 cosmos.staking.v1beta1.Query/DelegatorDelegations +``` + +Example Output: + +```bash +{ + "delegation_responses": [ + {"delegation":{"delegator_address":"cosmos1y8nyfvmqh50p6ldpzljk3yrglppdv3t8phju77","validator_address":"cosmosvaloper1eh5mwu044gd5ntkkc2xgfg8247mgc56fww3vc8","shares":"25083339023.000000000000000000"},"balance":{"denom":"stake","amount":"25083339023"}} + ], + "pagination": { + "next_key": null, + "total": "1" + } +} +``` + +#### DelegatorUnbondingDelegations + +The `DelegatorUnbondingDelegations` endpoint queries all unbonding delegations of a given delegator address. + +```bash +cosmos.staking.v1beta1.Query/DelegatorUnbondingDelegations +``` + +Example: + +```bash +grpcurl -plaintext \ +-d '{"delegator_addr": "cosmos1y8nyfvmqh50p6ldpzljk3yrglppdv3t8phju77"}' \ +localhost:9090 cosmos.staking.v1beta1.Query/DelegatorUnbondingDelegations +``` + +Example Output: + +```bash +{ + "unbonding_responses": [ + { + "delegator_address": "cosmos1y8nyfvmqh50p6ldpzljk3yrglppdv3t8phju77", + "validator_address": "cosmosvaloper1sjllsnramtg3ewxqwwrwjxfgc4n4ef9uxyejze", + "entries": [ + { + "creation_height": "136984", + "completion_time": "2021-11-08T05:38:47.505593891Z", + "initial_balance": "400000000", + "balance": "400000000" + }, + { + "creation_height": "137005", + "completion_time": "2021-11-08T05:40:53.526196312Z", + "initial_balance": "385000000", + "balance": "385000000" + } + ] + } + ], + "pagination": { + "next_key": null, + "total": "1" + } +} +``` + +#### Redelegations + +The `Redelegations` endpoint queries redelegations of given address. + +```bash +cosmos.staking.v1beta1.Query/Redelegations +``` + +Example: + +```bash +grpcurl -plaintext \ +-d '{"delegator_addr": "cosmos1ld5p7hn43yuh8ht28gm9pfjgj2fctujp2tgwvf", "src_validator_addr" : "cosmosvaloper1j7euyj85fv2jugejrktj540emh9353ltgppc3g", "dst_validator_addr" : "cosmosvaloper1yy3tnegzmkdcm7czzcy3flw5z0zyr9vkkxrfse"}' \ +localhost:9090 cosmos.staking.v1beta1.Query/Redelegations +``` + +Example Output: + +```bash +{ + "redelegation_responses": [ + { + "redelegation": { + "delegator_address": "cosmos1ld5p7hn43yuh8ht28gm9pfjgj2fctujp2tgwvf", + "validator_src_address": "cosmosvaloper1j7euyj85fv2jugejrktj540emh9353ltgppc3g", + "validator_dst_address": "cosmosvaloper1yy3tnegzmkdcm7czzcy3flw5z0zyr9vkkxrfse", + "entries": null + }, + "entries": [ + { + "redelegation_entry": { + "creation_height": 135932, + "completion_time": "2021-11-08T03:52:55.299147901Z", + "initial_balance": "2900000", + "shares_dst": "2900000.000000000000000000" + }, + "balance": "2900000" + } + ] + } + ], + "pagination": null +} +``` + +#### DelegatorValidators + +The `DelegatorValidators` endpoint queries all validators information for given delegator. + +```bash +cosmos.staking.v1beta1.Query/DelegatorValidators +``` + +Example: + +```bash +grpcurl -plaintext \ +-d '{"delegator_addr": "cosmos1ld5p7hn43yuh8ht28gm9pfjgj2fctujp2tgwvf"}' \ +localhost:9090 cosmos.staking.v1beta1.Query/DelegatorValidators +``` + +Example Output: + +```bash +{ + "validators": [ + { + "operator_address": "cosmosvaloper1eh5mwu044gd5ntkkc2xgfg8247mgc56fww3vc8", + "consensus_pubkey": { + "@type": "/cosmos.crypto.ed25519.PubKey", + "key": "UPwHWxH1zHJWGOa/m6JB3f5YjHMvPQPkVbDqqi+U7Uw=" + }, + "jailed": false, + "status": "BOND_STATUS_BONDED", + "tokens": "347260647559", + "delegator_shares": "347260647559.000000000000000000", + "description": { + "moniker": "BouBouNode", + "identity": "", + "website": "https://boubounode.com", + "security_contact": "", + "details": "AI-based Validator. #1 AI Validator on Game of Stakes. Fairly priced. Don't trust (humans), verify. Made with BouBou love." + }, + "unbonding_height": "0", + "unbonding_time": "1970-01-01T00:00:00Z", + "commission": { + "commission_rates": { + "rate": "0.061000000000000000", + "max_rate": "0.300000000000000000", + "max_change_rate": "0.150000000000000000" + }, + "update_time": "2021-10-01T15:00:00Z" + }, + "min_self_delegation": "1" + } + ], + "pagination": { + "next_key": null, + "total": "1" + } +} +``` + +#### DelegatorValidator + +The `DelegatorValidator` endpoint queries validator information for given delegator validator + +```bash +cosmos.staking.v1beta1.Query/DelegatorValidator +``` + +Example: + +```bash +grpcurl -plaintext \ +-d '{"delegator_addr": "cosmos1eh5mwu044gd5ntkkc2xgfg8247mgc56f3n8rr7", "validator_addr": "cosmosvaloper1eh5mwu044gd5ntkkc2xgfg8247mgc56fww3vc8"}' \ +localhost:9090 cosmos.staking.v1beta1.Query/DelegatorValidator +``` + +Example Output: + +```bash +{ + "validator": { + "operator_address": "cosmosvaloper1eh5mwu044gd5ntkkc2xgfg8247mgc56fww3vc8", + "consensus_pubkey": { + "@type": "/cosmos.crypto.ed25519.PubKey", + "key": "UPwHWxH1zHJWGOa/m6JB3f5YjHMvPQPkVbDqqi+U7Uw=" + }, + "jailed": false, + "status": "BOND_STATUS_BONDED", + "tokens": "347262754841", + "delegator_shares": "347262754841.000000000000000000", + "description": { + "moniker": "BouBouNode", + "identity": "", + "website": "https://boubounode.com", + "security_contact": "", + "details": "AI-based Validator. #1 AI Validator on Game of Stakes. Fairly priced. Don't trust (humans), verify. Made with BouBou love." + }, + "unbonding_height": "0", + "unbonding_time": "1970-01-01T00:00:00Z", + "commission": { + "commission_rates": { + "rate": "0.061000000000000000", + "max_rate": "0.300000000000000000", + "max_change_rate": "0.150000000000000000" + }, + "update_time": "2021-10-01T15:00:00Z" + }, + "min_self_delegation": "1" + } +} +``` + +#### HistoricalInfo + +```bash +cosmos.staking.v1beta1.Query/HistoricalInfo +``` + +Example: + +```bash +grpcurl -plaintext -d '{"height" : 1}' localhost:9090 cosmos.staking.v1beta1.Query/HistoricalInfo +``` + +Example Output: + +```bash +{ + "hist": { + "header": { + "version": { + "block": "11", + "app": "0" + }, + "chain_id": "simd-1", + "height": "140142", + "time": "2021-10-11T10:56:29.720079569Z", + "last_block_id": { + "hash": "9gri/4LLJUBFqioQ3NzZIP9/7YHR9QqaM6B2aJNQA7o=", + "part_set_header": { + "total": 1, + "hash": "Hk1+C864uQkl9+I6Zn7IurBZBKUevqlVtU7VqaZl1tc=" + } + }, + "last_commit_hash": "VxrcS27GtvGruS3I9+AlpT7udxIT1F0OrRklrVFSSKc=", + "data_hash": "80BjOrqNYUOkTnmgWyz9AQ8n7SoEmPVi4QmAe8RbQBY=", + "validators_hash": "95W49n2hw8RWpr1GPTAO5MSPi6w6Wjr3JjjS7AjpBho=", + "next_validators_hash": "95W49n2hw8RWpr1GPTAO5MSPi6w6Wjr3JjjS7AjpBho=", + "consensus_hash": "BICRvH3cKD93v7+R1zxE2ljD34qcvIZ0Bdi389qtoi8=", + "app_hash": "ZZaxnSY3E6Ex5Bvkm+RigYCK82g8SSUL53NymPITeOE=", + "last_results_hash": "47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=", + "evidence_hash": "47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=", + "proposer_address": "aH6dO428B+ItuoqPq70efFHrSMY=" + }, + "valset": [ + { + "operator_address": "cosmosvaloper196ax4vc0lwpxndu9dyhvca7jhxp70rmcqcnylw", + "consensus_pubkey": { + "@type": "/cosmos.crypto.ed25519.PubKey", + "key": "/O7BtNW0pafwfvomgR4ZnfldwPXiFfJs9mHg3gwfv5Q=" + }, + "jailed": false, + "status": "BOND_STATUS_BONDED", + "tokens": "1426045203613", + "delegator_shares": "1426045203613.000000000000000000", + "description": { + "moniker": "SG-1", + "identity": "48608633F99D1B60", + "website": "https://sg-1.online", + "security_contact": "", + "details": "SG-1 - your favorite validator on Witval. We offer 100% Soft Slash protection." + }, + "unbonding_height": "0", + "unbonding_time": "1970-01-01T00:00:00Z", + "commission": { + "commission_rates": { + "rate": "0.037500000000000000", + "max_rate": "0.200000000000000000", + "max_change_rate": "0.030000000000000000" + }, + "update_time": "2021-10-01T15:00:00Z" + }, + "min_self_delegation": "1" + } + ] + } +} + +``` + +#### Pool + +The `Pool` endpoint queries the pool information. + +```bash +cosmos.staking.v1beta1.Query/Pool +``` + +Example: + +```bash +grpcurl -plaintext -d localhost:9090 cosmos.staking.v1beta1.Query/Pool +``` + +Example Output: + +```bash +{ + "pool": { + "not_bonded_tokens": "369054400189", + "bonded_tokens": "15657192425623" + } +} +``` + +#### Params + +The `Params` endpoint queries the pool information. + +```bash +cosmos.staking.v1beta1.Query/Params +``` + +Example: + +```bash +grpcurl -plaintext localhost:9090 cosmos.staking.v1beta1.Query/Params +``` + +Example Output: + +```bash +{ + "params": { + "unbondingTime": "1814400s", + "maxValidators": 100, + "maxEntries": 7, + "historicalEntries": 10000, + "bondDenom": "stake" + } +} +``` + +### REST + +A user can query the `staking` module using REST endpoints. + +#### DelegatorDelegations + +The `DelegtaorDelegations` REST endpoint queries all delegations of a given delegator address. + +```bash +/cosmos/staking/v1beta1/delegations/{delegatorAddr} +``` + +Example: + +```bash +curl -X GET "http://localhost:1317/cosmos/staking/v1beta1/delegations/cosmos1vcs68xf2tnqes5tg0khr0vyevm40ff6zdxatp5" -H "accept: application/json" +``` + +Example Output: + +```bash +{ + "delegation_responses": [ + { + "delegation": { + "delegator_address": "cosmos1vcs68xf2tnqes5tg0khr0vyevm40ff6zdxatp5", + "validator_address": "cosmosvaloper1quqxfrxkycr0uzt4yk0d57tcq3zk7srm7sm6r8", + "shares": "256250000.000000000000000000" + }, + "balance": { + "denom": "stake", + "amount": "256250000" + } + }, + { + "delegation": { + "delegator_address": "cosmos1vcs68xf2tnqes5tg0khr0vyevm40ff6zdxatp5", + "validator_address": "cosmosvaloper194v8uwee2fvs2s8fa5k7j03ktwc87h5ym39jfv", + "shares": "255150000.000000000000000000" + }, + "balance": { + "denom": "stake", + "amount": "255150000" + } + } + ], + "pagination": { + "next_key": null, + "total": "2" + } +} +``` + +#### Redelegations + +The `Redelegations` REST endpoint queries redelegations of given address. + +```bash +/cosmos/staking/v1beta1/delegators/{delegatorAddr}/redelegations +``` + +Example: + +```bash +curl -X GET \ +"http://localhost:1317/cosmos/staking/v1beta1/delegators/cosmos1thfntksw0d35n2tkr0k8v54fr8wxtxwxl2c56e/redelegations?srcValidatorAddr=cosmosvaloper1lzhlnpahvznwfv4jmay2tgaha5kmz5qx4cuznf&dstValidatorAddr=cosmosvaloper1vq8tw77kp8lvxq9u3c8eeln9zymn68rng8pgt4" \ +-H "accept: application/json" +``` + +Example Output: + +```bash +{ + "redelegation_responses": [ + { + "redelegation": { + "delegator_address": "cosmos1thfntksw0d35n2tkr0k8v54fr8wxtxwxl2c56e", + "validator_src_address": "cosmosvaloper1lzhlnpahvznwfv4jmay2tgaha5kmz5qx4cuznf", + "validator_dst_address": "cosmosvaloper1vq8tw77kp8lvxq9u3c8eeln9zymn68rng8pgt4", + "entries": null + }, + "entries": [ + { + "redelegation_entry": { + "creation_height": 151523, + "completion_time": "2021-11-09T06:03:25.640682116Z", + "initial_balance": "200000000", + "shares_dst": "200000000.000000000000000000" + }, + "balance": "200000000" + } + ] + } + ], + "pagination": null +} +``` + +#### DelegatorUnbondingDelegations + +The `DelegatorUnbondingDelegations` REST endpoint queries all unbonding delegations of a given delegator address. + +```bash +/cosmos/staking/v1beta1/delegators/{delegatorAddr}/unbonding_delegations +``` + +Example: + +```bash +curl -X GET \ +"http://localhost:1317/cosmos/staking/v1beta1/delegators/cosmos1nxv42u3lv642q0fuzu2qmrku27zgut3n3z7lll/unbonding_delegations" \ +-H "accept: application/json" +``` + +Example Output: + +```bash +{ + "unbonding_responses": [ + { + "delegator_address": "cosmos1nxv42u3lv642q0fuzu2qmrku27zgut3n3z7lll", + "validator_address": "cosmosvaloper1e7mvqlz50ch6gw4yjfemsc069wfre4qwmw53kq", + "entries": [ + { + "creation_height": "2442278", + "completion_time": "2021-10-12T10:59:03.797335857Z", + "initial_balance": "50000000000", + "balance": "50000000000" + } + ] + } + ], + "pagination": { + "next_key": null, + "total": "1" + } +} +``` + +#### DelegatorValidators + +The `DelegatorValidators` REST endpoint queries all validators information for given delegator address. + +```bash +/cosmos/staking/v1beta1/delegators/{delegatorAddr}/validators +``` + +Example: + +```bash +curl -X GET \ +"http://localhost:1317/cosmos/staking/v1beta1/delegators/cosmos1xwazl8ftks4gn00y5x3c47auquc62ssune9ppv/validators" \ +-H "accept: application/json" +``` + +Example Output: + +```bash +{ + "validators": [ + { + "operator_address": "cosmosvaloper1xwazl8ftks4gn00y5x3c47auquc62ssuvynw64", + "consensus_pubkey": { + "@type": "/cosmos.crypto.ed25519.PubKey", + "key": "5v4n3px3PkfNnKflSgepDnsMQR1hiNXnqOC11Y72/PQ=" + }, + "jailed": false, + "status": "BOND_STATUS_BONDED", + "tokens": "21592843799", + "delegator_shares": "21592843799.000000000000000000", + "description": { + "moniker": "jabbey", + "identity": "", + "website": "https://twitter.com/JoeAbbey", + "security_contact": "", + "details": "just another dad in the cosmos" + }, + "unbonding_height": "0", + "unbonding_time": "1970-01-01T00:00:00Z", + "commission": { + "commission_rates": { + "rate": "0.100000000000000000", + "max_rate": "0.200000000000000000", + "max_change_rate": "0.100000000000000000" + }, + "update_time": "2021-10-09T19:03:54.984821705Z" + }, + "min_self_delegation": "1" + } + ], + "pagination": { + "next_key": null, + "total": "1" + } +} +``` + +#### DelegatorValidator + +The `DelegatorValidator` REST endpoint queries validator information for given delegator validator pair. + +```bash +/cosmos/staking/v1beta1/delegators/{delegatorAddr}/validators/{validatorAddr} +``` + +Example: + +```bash +curl -X GET \ +"http://localhost:1317/cosmos/staking/v1beta1/delegators/cosmos1xwazl8ftks4gn00y5x3c47auquc62ssune9ppv/validators/cosmosvaloper1xwazl8ftks4gn00y5x3c47auquc62ssuvynw64" \ +-H "accept: application/json" +``` + +Example Output: + +```bash +{ + "validator": { + "operator_address": "cosmosvaloper1xwazl8ftks4gn00y5x3c47auquc62ssuvynw64", + "consensus_pubkey": { + "@type": "/cosmos.crypto.ed25519.PubKey", + "key": "5v4n3px3PkfNnKflSgepDnsMQR1hiNXnqOC11Y72/PQ=" + }, + "jailed": false, + "status": "BOND_STATUS_BONDED", + "tokens": "21592843799", + "delegator_shares": "21592843799.000000000000000000", + "description": { + "moniker": "jabbey", + "identity": "", + "website": "https://twitter.com/JoeAbbey", + "security_contact": "", + "details": "just another dad in the cosmos" + }, + "unbonding_height": "0", + "unbonding_time": "1970-01-01T00:00:00Z", + "commission": { + "commission_rates": { + "rate": "0.100000000000000000", + "max_rate": "0.200000000000000000", + "max_change_rate": "0.100000000000000000" + }, + "update_time": "2021-10-09T19:03:54.984821705Z" + }, + "min_self_delegation": "1" + } +} +``` + +#### HistoricalInfo + +The `HistoricalInfo` REST endpoint queries the historical information for given height. + +```bash +/cosmos/staking/v1beta1/historical_info/{height} +``` + +Example: + +```bash +curl -X GET "http://localhost:1317/cosmos/staking/v1beta1/historical_info/153332" -H "accept: application/json" +``` + +Example Output: + +```bash +{ + "hist": { + "header": { + "version": { + "block": "11", + "app": "0" + }, + "chain_id": "cosmos-1", + "height": "153332", + "time": "2021-10-12T09:05:35.062230221Z", + "last_block_id": { + "hash": "NX8HevR5khb7H6NGKva+jVz7cyf0skF1CrcY9A0s+d8=", + "part_set_header": { + "total": 1, + "hash": "zLQ2FiKM5tooL3BInt+VVfgzjlBXfq0Hc8Iux/xrhdg=" + } + }, + "last_commit_hash": "P6IJrK8vSqU3dGEyRHnAFocoDGja0bn9euLuy09s350=", + "data_hash": "eUd+6acHWrNXYju8Js449RJ99lOYOs16KpqQl4SMrEM=", + "validators_hash": "mB4pravvMsJKgi+g8aYdSeNlt0kPjnRFyvtAQtaxcfw=", + "next_validators_hash": "mB4pravvMsJKgi+g8aYdSeNlt0kPjnRFyvtAQtaxcfw=", + "consensus_hash": "BICRvH3cKD93v7+R1zxE2ljD34qcvIZ0Bdi389qtoi8=", + "app_hash": "fuELArKRK+CptnZ8tu54h6xEleSWenHNmqC84W866fU=", + "last_results_hash": "p/BPexV4LxAzlVcPRvW+lomgXb6Yze8YLIQUo/4Kdgc=", + "evidence_hash": "47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=", + "proposer_address": "G0MeY8xQx7ooOsni8KE/3R/Ib3Q=" + }, + "valset": [ + { + "operator_address": "cosmosvaloper196ax4vc0lwpxndu9dyhvca7jhxp70rmcqcnylw", + "consensus_pubkey": { + "@type": "/cosmos.crypto.ed25519.PubKey", + "key": "/O7BtNW0pafwfvomgR4ZnfldwPXiFfJs9mHg3gwfv5Q=" + }, + "jailed": false, + "status": "BOND_STATUS_BONDED", + "tokens": "1416521659632", + "delegator_shares": "1416521659632.000000000000000000", + "description": { + "moniker": "SG-1", + "identity": "48608633F99D1B60", + "website": "https://sg-1.online", + "security_contact": "", + "details": "SG-1 - your favorite validator on cosmos. We offer 100% Soft Slash protection." + }, + "unbonding_height": "0", + "unbonding_time": "1970-01-01T00:00:00Z", + "commission": { + "commission_rates": { + "rate": "0.037500000000000000", + "max_rate": "0.200000000000000000", + "max_change_rate": "0.030000000000000000" + }, + "update_time": "2021-10-01T15:00:00Z" + }, + "min_self_delegation": "1" + }, + { + "operator_address": "cosmosvaloper1t8ehvswxjfn3ejzkjtntcyrqwvmvuknzmvtaaa", + "consensus_pubkey": { + "@type": "/cosmos.crypto.ed25519.PubKey", + "key": "uExZyjNLtr2+FFIhNDAMcQ8+yTrqE7ygYTsI7khkA5Y=" + }, + "jailed": false, + "status": "BOND_STATUS_BONDED", + "tokens": "1348298958808", + "delegator_shares": "1348298958808.000000000000000000", + "description": { + "moniker": "Cosmostation", + "identity": "AE4C403A6E7AA1AC", + "website": "https://www.cosmostation.io", + "security_contact": "admin@stamper.network", + "details": "Cosmostation validator node. Delegate your tokens and Start Earning Staking Rewards" + }, + "unbonding_height": "0", + "unbonding_time": "1970-01-01T00:00:00Z", + "commission": { + "commission_rates": { + "rate": "0.050000000000000000", + "max_rate": "1.000000000000000000", + "max_change_rate": "0.200000000000000000" + }, + "update_time": "2021-10-01T15:06:38.821314287Z" + }, + "min_self_delegation": "1" + } + ] + } +} +``` + +#### Parameters + +The `Parameters` REST endpoint queries the staking parameters. + +```bash +/cosmos/staking/v1beta1/params +``` + +Example: + +```bash +curl -X GET "http://localhost:1317/cosmos/staking/v1beta1/params" -H "accept: application/json" +``` + +Example Output: + +```bash +{ + "params": { + "unbonding_time": "2419200s", + "max_validators": 100, + "max_entries": 7, + "historical_entries": 10000, + "bond_denom": "stake" + } +} +``` + +#### Pool + +The `Pool` REST endpoint queries the pool information. + +```bash +/cosmos/staking/v1beta1/pool +``` + +Example: + +```bash +curl -X GET "http://localhost:1317/cosmos/staking/v1beta1/pool" -H "accept: application/json" +``` + +Example Output: + +```bash +{ + "pool": { + "not_bonded_tokens": "432805737458", + "bonded_tokens": "15783637712645" + } +} +``` + +#### Validators + +The `Validators` REST endpoint queries all validators that match the given status. + +```bash +/cosmos/staking/v1beta1/validators +``` + +Example: + +```bash +curl -X GET "http://localhost:1317/cosmos/staking/v1beta1/validators" -H "accept: application/json" +``` + +Example Output: + +```bash +{ + "validators": [ + { + "operator_address": "cosmosvaloper1q3jsx9dpfhtyqqgetwpe5tmk8f0ms5qywje8tw", + "consensus_pubkey": { + "@type": "/cosmos.crypto.ed25519.PubKey", + "key": "N7BPyek2aKuNZ0N/8YsrqSDhGZmgVaYUBuddY8pwKaE=" + }, + "jailed": false, + "status": "BOND_STATUS_BONDED", + "tokens": "383301887799", + "delegator_shares": "383301887799.000000000000000000", + "description": { + "moniker": "SmartNodes", + "identity": "D372724899D1EDC8", + "website": "https://smartnodes.co", + "security_contact": "", + "details": "Earn Rewards with Crypto Staking & Node Deployment" + }, + "unbonding_height": "0", + "unbonding_time": "1970-01-01T00:00:00Z", + "commission": { + "commission_rates": { + "rate": "0.050000000000000000", + "max_rate": "0.200000000000000000", + "max_change_rate": "0.100000000000000000" + }, + "update_time": "2021-10-01T15:51:31.596618510Z" + }, + "min_self_delegation": "1" + }, + { + "operator_address": "cosmosvaloper1q5ku90atkhktze83j9xjaks2p7uruag5zp6wt7", + "consensus_pubkey": { + "@type": "/cosmos.crypto.ed25519.PubKey", + "key": "GDNpuKDmCg9GnhnsiU4fCWktuGUemjNfvpCZiqoRIYA=" + }, + "jailed": false, + "status": "BOND_STATUS_UNBONDING", + "tokens": "1017819654", + "delegator_shares": "1017819654.000000000000000000", + "description": { + "moniker": "Noderunners", + "identity": "812E82D12FEA3493", + "website": "http://noderunners.biz", + "security_contact": "info@noderunners.biz", + "details": "Noderunners is a professional validator in POS networks. We have a huge node running experience, reliable soft and hardware. Our commissions are always low, our support to delegators is always full. Stake with us and start receiving your cosmos rewards now!" + }, + "unbonding_height": "147302", + "unbonding_time": "2021-11-08T22:58:53.718662452Z", + "commission": { + "commission_rates": { + "rate": "0.050000000000000000", + "max_rate": "0.200000000000000000", + "max_change_rate": "0.100000000000000000" + }, + "update_time": "2021-10-04T18:02:21.446645619Z" + }, + "min_self_delegation": "1" + } + ], + "pagination": { + "next_key": "FONDBFkE4tEEf7yxWWKOD49jC2NK", + "total": "2" + } +} +``` + +#### Validator + +The `Validator` REST endpoint queries validator information for given validator address. + +```bash +/cosmos/staking/v1beta1/validators/{validatorAddr} +``` + +Example: + +```bash +curl -X GET \ +"http://localhost:1317/cosmos/staking/v1beta1/validators/cosmosvaloper16msryt3fqlxtvsy8u5ay7wv2p8mglfg9g70e3q" \ +-H "accept: application/json" +``` + +Example Output: + +```bash +{ + "validator": { + "operator_address": "cosmosvaloper16msryt3fqlxtvsy8u5ay7wv2p8mglfg9g70e3q", + "consensus_pubkey": { + "@type": "/cosmos.crypto.ed25519.PubKey", + "key": "sIiexdJdYWn27+7iUHQJDnkp63gq/rzUq1Y+fxoGjXc=" + }, + "jailed": false, + "status": "BOND_STATUS_BONDED", + "tokens": "33027900000", + "delegator_shares": "33027900000.000000000000000000", + "description": { + "moniker": "Witval", + "identity": "51468B615127273A", + "website": "", + "security_contact": "", + "details": "Witval is the validator arm from Vitwit. Vitwit is into software consulting and services business since 2015. We are working closely with Cosmos ecosystem since 2018. We are also building tools for the ecosystem, Aneka is our explorer for the cosmos ecosystem." + }, + "unbonding_height": "0", + "unbonding_time": "1970-01-01T00:00:00Z", + "commission": { + "commission_rates": { + "rate": "0.050000000000000000", + "max_rate": "0.200000000000000000", + "max_change_rate": "0.020000000000000000" + }, + "update_time": "2021-10-01T19:24:52.663191049Z" + }, + "min_self_delegation": "1" + } +} +``` + +#### ValidatorDelegations + +The `ValidatorDelegations` REST endpoint queries delegate information for given validator. + +```bash +/cosmos/staking/v1beta1/validators/{validatorAddr}/delegations +``` + +Example: + +```bash +curl -X GET "http://localhost:1317/cosmos/staking/v1beta1/validators/cosmosvaloper16msryt3fqlxtvsy8u5ay7wv2p8mglfg9g70e3q/delegations" -H "accept: application/json" +``` + +Example Output: + +```bash +{ + "delegation_responses": [ + { + "delegation": { + "delegator_address": "cosmos190g5j8aszqhvtg7cprmev8xcxs6csra7xnk3n3", + "validator_address": "cosmosvaloper16msryt3fqlxtvsy8u5ay7wv2p8mglfg9g70e3q", + "shares": "31000000000.000000000000000000" + }, + "balance": { + "denom": "stake", + "amount": "31000000000" + } + }, + { + "delegation": { + "delegator_address": "cosmos1ddle9tczl87gsvmeva3c48nenyng4n56qwq4ee", + "validator_address": "cosmosvaloper16msryt3fqlxtvsy8u5ay7wv2p8mglfg9g70e3q", + "shares": "628470000.000000000000000000" + }, + "balance": { + "denom": "stake", + "amount": "628470000" + } + }, + { + "delegation": { + "delegator_address": "cosmos10fdvkczl76m040smd33lh9xn9j0cf26kk4s2nw", + "validator_address": "cosmosvaloper16msryt3fqlxtvsy8u5ay7wv2p8mglfg9g70e3q", + "shares": "838120000.000000000000000000" + }, + "balance": { + "denom": "stake", + "amount": "838120000" + } + }, + { + "delegation": { + "delegator_address": "cosmos1n8f5fknsv2yt7a8u6nrx30zqy7lu9jfm0t5lq8", + "validator_address": "cosmosvaloper16msryt3fqlxtvsy8u5ay7wv2p8mglfg9g70e3q", + "shares": "500000000.000000000000000000" + }, + "balance": { + "denom": "stake", + "amount": "500000000" + } + }, + { + "delegation": { + "delegator_address": "cosmos16msryt3fqlxtvsy8u5ay7wv2p8mglfg9hrek2e", + "validator_address": "cosmosvaloper16msryt3fqlxtvsy8u5ay7wv2p8mglfg9g70e3q", + "shares": "61310000.000000000000000000" + }, + "balance": { + "denom": "stake", + "amount": "61310000" + } + } + ], + "pagination": { + "next_key": null, + "total": "5" + } +} +``` + +#### Delegation + +The `Delegation` REST endpoint queries delegate information for given validator delegator pair. + +```bash +/cosmos/staking/v1beta1/validators/{validatorAddr}/delegations/{delegatorAddr} +``` + +Example: + +```bash +curl -X GET \ +"http://localhost:1317/cosmos/staking/v1beta1/validators/cosmosvaloper16msryt3fqlxtvsy8u5ay7wv2p8mglfg9g70e3q/delegations/cosmos1n8f5fknsv2yt7a8u6nrx30zqy7lu9jfm0t5lq8" \ +-H "accept: application/json" +``` + +Example Output: + +```bash +{ + "delegation_response": { + "delegation": { + "delegator_address": "cosmos1n8f5fknsv2yt7a8u6nrx30zqy7lu9jfm0t5lq8", + "validator_address": "cosmosvaloper16msryt3fqlxtvsy8u5ay7wv2p8mglfg9g70e3q", + "shares": "500000000.000000000000000000" + }, + "balance": { + "denom": "stake", + "amount": "500000000" + } + } +} +``` + +#### UnbondingDelegation + +The `UnbondingDelegation` REST endpoint queries unbonding information for given validator delegator pair. + +```bash +/cosmos/staking/v1beta1/validators/{validatorAddr}/delegations/{delegatorAddr}/unbonding_delegation +``` + +Example: + +```bash +curl -X GET \ +"http://localhost:1317/cosmos/staking/v1beta1/validators/cosmosvaloper13v4spsah85ps4vtrw07vzea37gq5la5gktlkeu/delegations/cosmos1ze2ye5u5k3qdlexvt2e0nn0508p04094ya0qpm/unbonding_delegation" \ +-H "accept: application/json" +``` + +Example Output: + +```bash +{ + "unbond": { + "delegator_address": "cosmos1ze2ye5u5k3qdlexvt2e0nn0508p04094ya0qpm", + "validator_address": "cosmosvaloper13v4spsah85ps4vtrw07vzea37gq5la5gktlkeu", + "entries": [ + { + "creation_height": "153687", + "completion_time": "2021-11-09T09:41:18.352401903Z", + "initial_balance": "525111", + "balance": "525111" + } + ] + } +} +``` + +#### ValidatorUnbondingDelegations + +The `ValidatorUnbondingDelegations` REST endpoint queries unbonding delegations of a validator. + +```bash +/cosmos/staking/v1beta1/validators/{validatorAddr}/unbonding_delegations +``` + +Example: + +```bash +curl -X GET \ +"http://localhost:1317/cosmos/staking/v1beta1/validators/cosmosvaloper13v4spsah85ps4vtrw07vzea37gq5la5gktlkeu/unbonding_delegations" \ +-H "accept: application/json" +``` + +Example Output: + +```bash +{ + "unbonding_responses": [ + { + "delegator_address": "cosmos1q9snn84jfrd9ge8t46kdcggpe58dua82vnj7uy", + "validator_address": "cosmosvaloper13v4spsah85ps4vtrw07vzea37gq5la5gktlkeu", + "entries": [ + { + "creation_height": "90998", + "completion_time": "2021-11-05T00:14:37.005841058Z", + "initial_balance": "24000000", + "balance": "24000000" + } + ] + }, + { + "delegator_address": "cosmos1qf36e6wmq9h4twhdvs6pyq9qcaeu7ye0s3dqq2", + "validator_address": "cosmosvaloper13v4spsah85ps4vtrw07vzea37gq5la5gktlkeu", + "entries": [ + { + "creation_height": "47478", + "completion_time": "2021-11-01T22:47:26.714116854Z", + "initial_balance": "8000000", + "balance": "8000000" + } + ] + } + ], + "pagination": { + "next_key": null, + "total": "2" + } +} +``` diff --git a/.gitbook/developers/modules/core/upgrade/README.md b/.gitbook/developers/modules/core/upgrade/README.md new file mode 100644 index 00000000..0d98c160 --- /dev/null +++ b/.gitbook/developers/modules/core/upgrade/README.md @@ -0,0 +1,619 @@ +--- +sidebar_position: 1 +--- + +# `x/upgrade` + +## Abstract + +`x/upgrade` is an implementation of a Cosmos SDK module that facilitates smoothly +upgrading a live Cosmos chain to a new (breaking) software version. It accomplishes this by +providing a `PreBlocker` hook that prevents the blockchain state machine from +proceeding once a pre-defined upgrade block height has been reached. + +The module does not prescribe anything regarding how governance decides to do an +upgrade, but just the mechanism for coordinating the upgrade safely. Without software +support for upgrades, upgrading a live chain is risky because all of the validators +need to pause their state machines at exactly the same point in the process. If +this is not done correctly, there can be state inconsistencies which are hard to +recover from. + +* [Concepts](#concepts) +* [State](#state) +* [Events](#events) +* [Client](#client) + * [CLI](#cli) + * [REST](#rest) + * [gRPC](#grpc) +* [Resources](#resources) + +## Concepts + +### Plan + +The `x/upgrade` module defines a `Plan` type in which a live upgrade is scheduled +to occur. A `Plan` can be scheduled at a specific block height. +A `Plan` is created once a (frozen) release candidate along with an appropriate upgrade +`Handler` (see below) is agreed upon, where the `Name` of a `Plan` corresponds to a +specific `Handler`. Typically, a `Plan` is created through a governance proposal +process, where if voted upon and passed, will be scheduled. The `Info` of a `Plan` +may contain various metadata about the upgrade, typically application specific +upgrade info to be included on-chain such as a git commit that validators could +automatically upgrade to. + +```go +type Plan struct { + Name string + Height int64 + Info string +} +``` + +#### Sidecar Process + +If an operator running the application binary also runs a sidecar process to assist +in the automatic download and upgrade of a binary, the `Info` allows this process to +be seamless. This tool is [Cosmovisor](https://github.com/cosmos/cosmos-sdk/tree/main/tools/cosmovisor#readme). + +### Handler + +The `x/upgrade` module facilitates upgrading from major version X to major version Y. To +accomplish this, node operators must first upgrade their current binary to a new +binary that has a corresponding `Handler` for the new version Y. It is assumed that +this version has fully been tested and approved by the community at large. This +`Handler` defines what state migrations need to occur before the new binary Y +can successfully run the chain. Naturally, this `Handler` is application specific +and not defined on a per-module basis. Registering a `Handler` is done via +`Keeper#SetUpgradeHandler` in the application. + +```go +type UpgradeHandler func(Context, Plan, VersionMap) (VersionMap, error) +``` + +During each `EndBlock` execution, the `x/upgrade` module checks if there exists a +`Plan` that should execute (is scheduled at that height). If so, the corresponding +`Handler` is executed. If the `Plan` is expected to execute but no `Handler` is registered +or if the binary was upgraded too early, the node will gracefully panic and exit. + +### StoreLoader + +The `x/upgrade` module also facilitates store migrations as part of the upgrade. The +`StoreLoader` sets the migrations that need to occur before the new binary can +successfully run the chain. This `StoreLoader` is also application specific and +not defined on a per-module basis. Registering this `StoreLoader` is done via +`app#SetStoreLoader` in the application. + +```go +func UpgradeStoreLoader (upgradeHeight int64, storeUpgrades *store.StoreUpgrades) baseapp.StoreLoader +``` + +If there's a planned upgrade and the upgrade height is reached, the old binary writes `Plan` to the disk before panicking. + +This information is critical to ensure the `StoreUpgrades` happens smoothly at correct height and +expected upgrade. It eliminiates the chances for the new binary to execute `StoreUpgrades` multiple +times everytime on restart. Also if there are multiple upgrades planned on same height, the `Name` +will ensure these `StoreUpgrades` takes place only in planned upgrade handler. + +### Proposal + +Typically, a `Plan` is proposed and submitted through governance via a proposal +containing a `MsgSoftwareUpgrade` message. +This proposal prescribes to the standard governance process. If the proposal passes, +the `Plan`, which targets a specific `Handler`, is persisted and scheduled. The +upgrade can be delayed or hastened by updating the `Plan.Height` in a new proposal. + +```protobuf reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/proto/cosmos/upgrade/v1beta1/tx.proto#L29-L41 +``` + +#### Cancelling Upgrade Proposals + +Upgrade proposals can be cancelled. There exists a gov-enabled `MsgCancelUpgrade` +message type, which can be embedded in a proposal, voted on and, if passed, will +remove the scheduled upgrade `Plan`. +Of course this requires that the upgrade was known to be a bad idea well before the +upgrade itself, to allow time for a vote. + +```protobuf reference +https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/proto/cosmos/upgrade/v1beta1/tx.proto#L48-L57 +``` + +If such a possibility is desired, the upgrade height is to be +`2 * (VotingPeriod + DepositPeriod) + (SafetyDelta)` from the beginning of the +upgrade proposal. The `SafetyDelta` is the time available from the success of an +upgrade proposal and the realization it was a bad idea (due to external social consensus). + +A `MsgCancelUpgrade` proposal can also be made while the original +`MsgSoftwareUpgrade` proposal is still being voted upon, as long as the `VotingPeriod` +ends after the `MsgSoftwareUpgrade` proposal. + +## State + +The internal state of the `x/upgrade` module is relatively minimal and simple. The +state contains the currently active upgrade `Plan` (if one exists) by key +`0x0` and if a `Plan` is marked as "done" by key `0x1`. The state +contains the consensus versions of all app modules in the application. The versions +are stored as big endian `uint64`, and can be accessed with prefix `0x2` appended +by the corresponding module name of type `string`. The state maintains a +`Protocol Version` which can be accessed by key `0x3`. + +* Plan: `0x0 -> Plan` +* Done: `0x1 | byte(plan name) -> BigEndian(Block Height)` +* ConsensusVersion: `0x2 | byte(module name) -> BigEndian(Module Consensus Version)` +* ProtocolVersion: `0x3 -> BigEndian(Protocol Version)` + +The `x/upgrade` module contains no genesis state. + +## Events + +The `x/upgrade` does not emit any events by itself. Any and all proposal related +events are emitted through the `x/gov` module. + +## Client + +### CLI + +A user can query and interact with the `upgrade` module using the CLI. + +#### Query + +The `query` commands allow users to query `upgrade` state. + +```bash +simd query upgrade --help +``` + +##### applied + +The `applied` command allows users to query the block header for height at which a completed upgrade was applied. + +```bash +simd query upgrade applied [upgrade-name] [flags] +``` + +If upgrade-name was previously executed on the chain, this returns the header for the block at which it was applied. +This helps a client determine which binary was valid over a given range of blocks, as well as more context to understand past migrations. + +Example: + +```bash +simd query upgrade applied "test-upgrade" +``` + +Example Output: + +```bash +"block_id": { + "hash": "A769136351786B9034A5F196DC53F7E50FCEB53B48FA0786E1BFC45A0BB646B5", + "parts": { + "total": 1, + "hash": "B13CBD23011C7480E6F11BE4594EE316548648E6A666B3575409F8F16EC6939E" + } + }, + "block_size": "7213", + "header": { + "version": { + "block": "11" + }, + "chain_id": "testnet-2", + "height": "455200", + "time": "2021-04-10T04:37:57.085493838Z", + "last_block_id": { + "hash": "0E8AD9309C2DC411DF98217AF59E044A0E1CCEAE7C0338417A70338DF50F4783", + "parts": { + "total": 1, + "hash": "8FE572A48CD10BC2CBB02653CA04CA247A0F6830FF19DC972F64D339A355E77D" + } + }, + "last_commit_hash": "DE890239416A19E6164C2076B837CC1D7F7822FC214F305616725F11D2533140", + "data_hash": "E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855", + "validators_hash": "A31047ADE54AE9072EE2A12FF260A8990BA4C39F903EAF5636B50D58DBA72582", + "next_validators_hash": "A31047ADE54AE9072EE2A12FF260A8990BA4C39F903EAF5636B50D58DBA72582", + "consensus_hash": "048091BC7DDC283F77BFBF91D73C44DA58C3DF8A9CBC867405D8B7F3DAADA22F", + "app_hash": "28ECC486AFC332BA6CC976706DBDE87E7D32441375E3F10FD084CD4BAF0DA021", + "last_results_hash": "E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855", + "evidence_hash": "E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855", + "proposer_address": "2ABC4854B1A1C5AA8403C4EA853A81ACA901CC76" + }, + "num_txs": "0" +} +``` + +##### module versions + +The `module_versions` command gets a list of module names and their respective consensus versions. + +Following the command with a specific module name will return only +that module's information. + +```bash +simd query upgrade module_versions [optional module_name] [flags] +``` + +Example: + +```bash +simd query upgrade module_versions +``` + +Example Output: + +```bash +module_versions: +- name: auth + version: "2" +- name: authz + version: "1" +- name: bank + version: "2" +- name: crisis + version: "1" +- name: distribution + version: "2" +- name: evidence + version: "1" +- name: feegrant + version: "1" +- name: genutil + version: "1" +- name: gov + version: "2" +- name: ibc + version: "2" +- name: mint + version: "1" +- name: params + version: "1" +- name: slashing + version: "2" +- name: staking + version: "2" +- name: transfer + version: "1" +- name: upgrade + version: "1" +- name: vesting + version: "1" +``` + +Example: + +```bash +regen query upgrade module_versions ibc +``` + +Example Output: + +```bash +module_versions: +- name: ibc + version: "2" +``` + +##### plan + +The `plan` command gets the currently scheduled upgrade plan, if one exists. + +```bash +regen query upgrade plan [flags] +``` + +Example: + +```bash +simd query upgrade plan +``` + +Example Output: + +```bash +height: "130" +info: "" +name: test-upgrade +time: "0001-01-01T00:00:00Z" +upgraded_client_state: null +``` + +#### Transactions + +The upgrade module supports the following transactions: + +* `software-proposal` - submits an upgrade proposal: + +```bash +simd tx upgrade software-upgrade v2 --title="Test Proposal" --summary="testing" --deposit="100000000stake" --upgrade-height 1000000 \ +--upgrade-info '{ "binaries": { "linux/amd64":"https://example.com/simd.zip?checksum=sha256:aec070645fe53ee3b3763059376134f058cc337247c978add178b6ccdfb0019f" } }' --from cosmos1.. +``` + +* `cancel-software-upgrade` - cancels a previously submitted upgrade proposal: + +```bash +simd tx upgrade cancel-software-upgrade --title="Test Proposal" --summary="testing" --deposit="100000000stake" --from cosmos1.. +``` + +### REST + +A user can query the `upgrade` module using REST endpoints. + +#### Applied Plan + +`AppliedPlan` queries a previously applied upgrade plan by its name. + +```bash +/cosmos/upgrade/v1beta1/applied_plan/{name} +``` + +Example: + +```bash +curl -X GET "http://localhost:1317/cosmos/upgrade/v1beta1/applied_plan/v2.0-upgrade" -H "accept: application/json" +``` + +Example Output: + +```bash +{ + "height": "30" +} +``` + +#### Current Plan + +`CurrentPlan` queries the current upgrade plan. + +```bash +/cosmos/upgrade/v1beta1/current_plan +``` + +Example: + +```bash +curl -X GET "http://localhost:1317/cosmos/upgrade/v1beta1/current_plan" -H "accept: application/json" +``` + +Example Output: + +```bash +{ + "plan": "v2.1-upgrade" +} +``` + +#### Module versions + +`ModuleVersions` queries the list of module versions from state. + +```bash +/cosmos/upgrade/v1beta1/module_versions +``` + +Example: + +```bash +curl -X GET "http://localhost:1317/cosmos/upgrade/v1beta1/module_versions" -H "accept: application/json" +``` + +Example Output: + +```bash +{ + "module_versions": [ + { + "name": "auth", + "version": "2" + }, + { + "name": "authz", + "version": "1" + }, + { + "name": "bank", + "version": "2" + }, + { + "name": "crisis", + "version": "1" + }, + { + "name": "distribution", + "version": "2" + }, + { + "name": "evidence", + "version": "1" + }, + { + "name": "feegrant", + "version": "1" + }, + { + "name": "genutil", + "version": "1" + }, + { + "name": "gov", + "version": "2" + }, + { + "name": "ibc", + "version": "2" + }, + { + "name": "mint", + "version": "1" + }, + { + "name": "params", + "version": "1" + }, + { + "name": "slashing", + "version": "2" + }, + { + "name": "staking", + "version": "2" + }, + { + "name": "transfer", + "version": "1" + }, + { + "name": "upgrade", + "version": "1" + }, + { + "name": "vesting", + "version": "1" + } + ] +} +``` + +### gRPC + +A user can query the `upgrade` module using gRPC endpoints. + +#### Applied Plan + +`AppliedPlan` queries a previously applied upgrade plan by its name. + +```bash +cosmos.upgrade.v1beta1.Query/AppliedPlan +``` + +Example: + +```bash +grpcurl -plaintext \ + -d '{"name":"v2.0-upgrade"}' \ + localhost:9090 \ + cosmos.upgrade.v1beta1.Query/AppliedPlan +``` + +Example Output: + +```bash +{ + "height": "30" +} +``` + +#### Current Plan + +`CurrentPlan` queries the current upgrade plan. + +```bash +cosmos.upgrade.v1beta1.Query/CurrentPlan +``` + +Example: + +```bash +grpcurl -plaintext localhost:9090 cosmos.slashing.v1beta1.Query/CurrentPlan +``` + +Example Output: + +```bash +{ + "plan": "v2.1-upgrade" +} +``` + +#### Module versions + +`ModuleVersions` queries the list of module versions from state. + +```bash +cosmos.upgrade.v1beta1.Query/ModuleVersions +``` + +Example: + +```bash +grpcurl -plaintext localhost:9090 cosmos.slashing.v1beta1.Query/ModuleVersions +``` + +Example Output: + +```bash +{ + "module_versions": [ + { + "name": "auth", + "version": "2" + }, + { + "name": "authz", + "version": "1" + }, + { + "name": "bank", + "version": "2" + }, + { + "name": "crisis", + "version": "1" + }, + { + "name": "distribution", + "version": "2" + }, + { + "name": "evidence", + "version": "1" + }, + { + "name": "feegrant", + "version": "1" + }, + { + "name": "genutil", + "version": "1" + }, + { + "name": "gov", + "version": "2" + }, + { + "name": "ibc", + "version": "2" + }, + { + "name": "mint", + "version": "1" + }, + { + "name": "params", + "version": "1" + }, + { + "name": "slashing", + "version": "2" + }, + { + "name": "staking", + "version": "2" + }, + { + "name": "transfer", + "version": "1" + }, + { + "name": "upgrade", + "version": "1" + }, + { + "name": "vesting", + "version": "1" + } + ] +} +``` + +## Resources + +A list of (external) resources to learn more about the `x/upgrade` module. + +* [Cosmos Dev Series: Cosmos Blockchain Upgrade](https://medium.com/web3-surfers/cosmos-dev-series-cosmos-sdk-based-blockchain-upgrade-b5e99181554c) - The blog post that explains how software upgrades work in detail. diff --git a/.gitbook/developers/modules/injective/README.md b/.gitbook/developers/modules/injective/README.md new file mode 100644 index 00000000..8a5fa20d --- /dev/null +++ b/.gitbook/developers/modules/injective/README.md @@ -0,0 +1,14 @@ +import { + HomepageSection as Section +} from "../../../../src/components/HomepageComponents"; +import ComponentsGrid from "@theme/DocCardList"; + +# Injective Modules + +
+ +
diff --git a/.gitbook/developers/modules/injective/auction/01_state.md b/.gitbook/developers/modules/injective/auction/01_state.md new file mode 100644 index 00000000..ecb09d89 --- /dev/null +++ b/.gitbook/developers/modules/injective/auction/01_state.md @@ -0,0 +1,60 @@ +--- +sidebar_position: 1 +title: State +--- + +# State + +## Params + +Params is a module-wide configuration structure that stores system parameters and defines overall functioning of the auction module. + +- Params: `Paramsspace("auction") -> legacy_amino(params)` + +```go +type Params struct { + // auction_period_duration defines the auction period duration + AuctionPeriod int64 + // min_next_bid_increment_rate defines the minimum increment rate for new bids + MinNextBidIncrementRate math.LegacyDec +} +``` + +### **LastBid** + +Keeps track of the current highest bid + +* LastBid: `0x01 -> ProtocolBuffer(Bid)` + +```go +type Bid struct { + Bidder string + Amount sdk.Coin +} +``` + +### **AuctionRound** + +The current auction round. + +* AuctionRound: `0x03 -> BigEndian(AuctionRound)` + +### **EndingTimeStamp** + +This value is compared against current block time to decide an auction round settlement. When the exported chain is imported again, the EndingTimeStamp will be updated to the next value in future. + +* `EndingTimeStamp`: `0x04 -> BigEndian(EndingTimestamp)` + +### **LastAuctionResult** + +Keeps track of the last auction result. + +* LastAuctionResult: `0x05 -> ProtocolBuffer(LastAuctionResult)` + +```go +type LastAuctionResult struct { + Winner string + Amount sdk.Coin + Round uint64 +} +``` diff --git a/.gitbook/developers/modules/injective/auction/02_messages.md b/.gitbook/developers/modules/injective/auction/02_messages.md new file mode 100644 index 00000000..97f7253f --- /dev/null +++ b/.gitbook/developers/modules/injective/auction/02_messages.md @@ -0,0 +1,32 @@ +--- +sidebar_position: 2 +title: Messages +--- + +# Messages + +In this section we describe the processing of the auction messages and the corresponding updates to the state. + +## Msg/Bid + +An auction basket from a given round is bid upon by using the `Msg/Bid` service message. + +```protobuf +// Bid defines a SDK message for placing a bid for an auction +message MsgBid { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + string sender = 1; + // amount of the bid in INJ tokens + cosmos.base.v1beta1.Coin bid_amount = 2 [(gogoproto.nullable) = false]; + // the current auction round being bid on + uint64 round = 3; +} +``` + +This service message is expected to fail if: + +- `Round` does not equal the current auction round +- `BidAmount` does not exceed the previous highest bid amount by at least `min_next_increment_rate` percent. + +This service message transfers the `BidAmount` of INJ from the `Sender` to the auction module, stores the bid, and refunds the last bidder's bid amount. diff --git a/.gitbook/developers/modules/injective/auction/03_end_block.md b/.gitbook/developers/modules/injective/auction/03_end_block.md new file mode 100644 index 00000000..88018bc3 --- /dev/null +++ b/.gitbook/developers/modules/injective/auction/03_end_block.md @@ -0,0 +1,21 @@ +--- +sidebar_position: 3 +title: End-Block +--- + +# End-Block + +### Auction Settlement + +The settlement of a given auction round occurs when `blockTime ≥ EndingTimeStamp.` If a non-zero INJ bid was placed during this period (i.e. there exists a `LastBid`), the following procedure will take place: + +- The winning INJ bid amount is burned. +- The basket of coins held by the auction module is transferred to the winning bidder. +- `LastAuctionResult` is written to state and `EventAuctionResult` is emitted. +- The `LastBid` is cleared. +- The AuctionRound is incremented by 1 and the EndingTimestamp is incremented by `AuctionPeriod`. +- The accumulated exchange fees are transferred from the `exchange` module to the `auction` module for the new upcoming auction. + +If the round closed without any successful bids, the existing coin basket will be rolled over into the next auction and combined with the new accumulated fee basket. + +![img.png](./img.png) \ No newline at end of file diff --git a/.gitbook/developers/modules/injective/auction/04_events.md b/.gitbook/developers/modules/injective/auction/04_events.md new file mode 100644 index 00000000..ed87d2d7 --- /dev/null +++ b/.gitbook/developers/modules/injective/auction/04_events.md @@ -0,0 +1,28 @@ +--- +sidebar_position: 4 +title: Events +--- + +# Events + +The auction module emits the following events: + +## Handlers + +### Msg/Bid + +| Type | Attribute Key | Attribute Value | +| ---------------- | ------------- | ------------------ | +| EventBid | Bidder | | +| EventBid | Amount | | +| EventBid | Round | | + + +## EndBlocker + +| Type | Attribute Key | Attribute Value | +| --------------------- | --------------------- | ------------------------- | +| EventAuctionResult | Winner | +| EventAuctionResult | Amount | +| EventAuctionResult | Round | + diff --git a/.gitbook/developers/modules/injective/auction/05_params.md b/.gitbook/developers/modules/injective/auction/05_params.md new file mode 100644 index 00000000..2f56a4a4 --- /dev/null +++ b/.gitbook/developers/modules/injective/auction/05_params.md @@ -0,0 +1,14 @@ +--- +sidebar_position: 5 +title: Parameters +--- + +# Parameters + +The auction module contains the following parameters: + +| Key | Type | Example | +|-------------------|------------------|-------------------| +| AuctionPeriod | int64 | 604800 | +| MinNextBidIncrementRate | math.LegacyDec | "0.0025" | + diff --git a/.gitbook/developers/modules/injective/auction/README.md b/.gitbook/developers/modules/injective/auction/README.md new file mode 100644 index 00000000..55f22fdc --- /dev/null +++ b/.gitbook/developers/modules/injective/auction/README.md @@ -0,0 +1,15 @@ +# `Auction` + +## Abstract + +The `auction` module periodically obtains a basket of tokens accumulated from trading fees from the `exchange` module and auctions the basket to the highest bidder in an open English auction for INJ. The winner of this auction receives the basket of tokens and the winning INJ bid amount from this auction is burned. + +## Contents + +1. **[State](./01_state.md)** +2. **[Messages](./02_messages.md)** +3. **[End Block](./03_end_block.md)** +4. **[Events](./04_events.md)** +5. **[Params](./05_params.md)** + + diff --git a/.gitbook/developers/modules/injective/auction/img.png b/.gitbook/developers/modules/injective/auction/img.png new file mode 100644 index 0000000000000000000000000000000000000000..10dad042969149ce92eca68ad79bff67b6a6212f GIT binary patch literal 198989 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 z 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 Quantity * (InitialMarginRatio * MarkPrice - PNL)` + +PNL is the expected profit and loss of the position if it was closed at the current MarkPrice. Solved for MarkPrice this results in: + +- For Buys: $\mathrm{MarkPrice}$ ≥ $\mathrm{\frac{Margin - Price * Quantity}{(InitialMarginRatio - 1) * Quantity}}$ +- For Sells: $\mathrm{MarkPrice}$ ≤ $\mathrm{\frac{Margin + Price * Quantity}{(InitialMarginRatio + 1) * Quantity}}$ + +**Maintenance Margin Requirement** + +Throughout the lifecycle of an active position, if the following margin requirement is not met, the position is subject +to liquidation. (Note: for simplicity of notation but without loss of generality, we assume the position considered does +not have any funding). + +- For Longs: `Margin >= Quantity * MaintenanceMarginRatio * MarkPrice - (MarkPrice - EntryPrice)` +- For Shorts: `Margin >= Quantity * MaintenanceMarginRatio * MarkPrice - (EntryPrice - MarkPrice)` + +**Liquidation Payouts** + +When your position falls below the maintenance margin ratio, the position can be liquidated by anyone. What happens on-chain is that automatically a reduce-only market order of the same size as the position is created. The market order will have a worst price defined as _Infinity_ or _0_, implying it will be matched at whatever prices are available in the order book. + +The payout from executing the reduce-only market order will not go towards the position owner. Instead, a part of the remaining funds are transferred to the liquidator bot and the other part is transferred to the insurance fund. The split is defined in the exchange params by `LiquidatorRewardShareRate`. If the payout in the position was negative, i.e., the position's negative PNL was greater than its margin, then the insurance fund will cover the missing funds. + +Also note that liquidations are executed immediately in a block before any other order matching occurs. + +### Funding Payments + +Funding exists only for perpetual markets as a mechanism to align trading prices with the mark price. It refers to the +periodic payments exchanged between the traders that are long or short of a contract at the end of every funding epoch, +e.g. every hour. When the funding rate is positive, longs pay shorts. When it is negative, shorts pay longs. + +- `Position Size = Position Quantity * MarkPrice` +- `Funding Payment = Position Size * Hourly Funding Rate (HFR)` +- `HFR = Cap((TWAP((SyntheticVWAPExecutionPrice - MarkPrice)/MarkPrice) + DailyInterestRate) * 1/24)` +- `SyntheticVWAPExecutionPrice = (Price_A*Volume_A +Price_B*Volume_B +Price_C*Volume_C)/(Volume_A + Volume_B + Volume_C)` + - `A` is the market buy batch execution + - `B` is the market sell batch execution + - `C` is the limit matching batch execution + +Funding payments are applied to the whole market by modifying the `CumulativeFunding` value. Each position stores the current `CumulativeFunding` as `CumulativeFundingEntry`. Subsequent funding payments are only applied upon position changes and can be calculated as: + +- FundingPayment + - For Longs: `FundingPayment ← PositionQuantity * (CumulativeFunding - CumulativeFundingEntry)` + - For Shorts: `FundingPayment ← PositionQuantity * (CumulativeFundingEntry - CumulativeFunding)` +- `Margin' ← Margin + FundingPayment` +- `CumulativeFundingEntry' ← CumulativeFunding` + +## Perpetual Market Trading Specification + +### Positions + +A trader's position records the conditions under which the trader has entered into the derivative contract and is +defined as follows + +- Position Definition: + - `Quantity` + - `EntryPrice` + - `Margin` + - `HoldQuantity` + - `CumulativeFundingEntry` + +As an example, consider the following position in the ETH/USDT market: + +- `Quantity` = -2 +- `EntryPrice` = 2200 +- `Margin` = 800 +- `HoldQuantity` = 1 +- `CumulativeFundingEntry` = 4838123 + +This position represents short exposure for 2 contracts of the ETH/USDT market collateralized with 800 USDT, with an +entry price of 2200. The `HoldQuantity` represents the quantity of the position that the trader has opposing orders for. +`CumulativeFundingEntry` represents the cumulative funding value that the position was last updated at. + +Position Netting: + +When a new vanilla order is matched for a subaccount with an existing position, the new position will be the result from +netting the existing position with the new vanilla order. A matched vanilla order produces a position delta defined by +`FillQuantity`, `FillMargin` and `ClearingPrice`. + +- Applying Position Delta to a position in the same direction: + - `Entry Price' ← (Quantity \* EntryPrice + FillQuantity \* ClearingPrice) / (Quantity + FillQuantity)` + - `Quantity' ← Quantity + FillQuantity` + - `Margin' ← Margin + FillMargin` +- Apply Position Delta to a position in the opposing direction: + - `Entry Price - no change` + - `Quantity' ← Quantity - FillQuantity` + - `Margin' ← Margin \* (Quantity - FillQuantity) / Quantity` + +### Limit Buy Order + +A limit buy order seeks to purchase a specified Quantity of a derivative contract at a specified Price by providing a +specified amount of margin as collateral. + +### Limit Sell Order + +A limit sell order seeks to sell a specified Quantity of a derivative contract at a specified Price by providing a +specified amount of margin as collateral. + +A matched position will have **subtracted fees** which depend on whether the limit order becomes executed as a +maker order or a taker order. + +### Market Buy Order + +A market buy order seeks to purchase a specified Quantity of a derivative contract at a specified worst price using +the subaccount's available balance as margin collateral. + +Handler and EndBlocker Execution of the market order are conceptually identical to the Limit Buy Order +(Immediately Matched case), since the trader passes the margin which implicitly sets a maximum price limit due to the +initial min margin requirements. + +### Market Sell Order + +A market sell order seeks to sell a specified Quantity of a derivative contract at a specified worst price using the +subaccount's available balance as margin collateral. + +Handler and EndBlocker Execution of the market order are conceptually identical to the Limit Sell Order +(Immediately Matched case), since the trader passes the margin which implicitly sets a minimum price limit due to the +initial min margin requirements. + +### Order Types + +- BUY (1): A standard buy order to purchase an asset at either the current market price or a set limit price. +- SELL (2): A standard sell order to sell an asset at either the current market price or a set limit price. +- STOP_BUY (3): A stop-buy order converts into a regular buy order once the oracle price reaches or surpasses a specified trigger price. +- STOP_SELL (4): A stop-sell order becomes a regular sell order once the oracle price drops to or below a specified trigger price. +- TAKE_BUY (5): A take-buy order converts into a regular buy order once the oracle price reaches or drops below a specified trigger price. +- TAKE_SELL (6):A stop-sell order becomes a regular sell order once the oracle price reaches or surpasses a specified trigger price. +- BUY_PO (7): Post-Only Buy. This order type ensures that the order will only be added to the order book and not match with a pre-existing order. It guarantees that you will be the market "maker" and not the "taker". +- SELL_PO (8): Post-Only Sell. Similar to BUY_PO, this ensures that your sell order will only add liquidity to the order book and not match with a pre-existing order. +- BUY_ATOMIC (9): An atomic buy order is a market order that gets executed instantly, bypassing the Frequent Batch Auctions (FBA). It's intended for smart contracts that need to execute a trade instantly. A higher fee is paid defined in the global exchange parameters. +- SELL_ATOMIC (10): An atomic sell order is similar to a BUY_ATOMIC, and it gets executed instantly at the current market price, bypassing the FBA. + +### Reduce-Only Orders (Selling Positions) + +### Limit Buy Reduce-Only Order + +A limit buy reduce-only order seeks to reduce existing long exposure by a specified `Quantity` ETH (**base currency**). +The payout for closing a position will have **subtracted fees**. + +### Limit Sell Reduce-Only Order + +A limit sell reduce-only order seeks to reduce existing short exposure by a specified `Quantity` ETH (**base currency**). +The payout for closing a position will have **subtracted fees**. diff --git a/.gitbook/developers/modules/injective/exchange/01_spot_market_concepts.md b/.gitbook/developers/modules/injective/exchange/01_spot_market_concepts.md new file mode 100644 index 00000000..6d413d33 --- /dev/null +++ b/.gitbook/developers/modules/injective/exchange/01_spot_market_concepts.md @@ -0,0 +1,135 @@ +--- +sidebar_position: 2 +title: Spot Market Concepts +--- + +# Spot Market Concepts + +## Definitions + +In a Spot Market with ticker **AAA/BBB, AAA is the base asset, BBB is the quote asset.** + +For example, in the ETH/USDT market + +- ETH is base asset +- USDT is the quote asset + +The spot market's **price** refers to how much USDT (the quote asset) is required for one unit of ETH (the base +asset). For all spot markets, **fees are always paid in the quote asset**, e.g., USDT. + +**Debit vs Credit** + +- **Debit Amount** refers to the amount of asset that is withdrawn from an account. +- **Credit Amount** refers to the amount of asset that is deposited to an account. + +**Refunds** + +In our system, a refund refers to the action of incrementing the **available balance** of an account. This liberation of +funds occurs as the result of an encumbrance being lifted from the account (e.g. cancelling a limit order, reducing an +order's payable fee to a maker fee, using less margin to fund a market order, etc.). + +### Limit Buy Order + +A limit buy order seeks to buy a specified `Quantity` ETH (**base asset**) in exchange for `Quantity * Price` amount of +USDT (**quote asset**) **plus fees** which depend on whether the limit order becomes executed as a maker order or a +taker order. + +### Limit Sell Order + +A limit sell order seeks to sell a specified `Quantity` ETH (**base asset**) in exchange for `Quantity * Price` amount +of USDT (**quote asset**) **minus fees** which depend on whether the limit order becomes executed as a maker order or a +taker order. + +### Market Buy Order + +A market buy order seeks to buy a specified `Quantity` ETH (**base asset**) at a specified worst price which is at or near +the current ask using the respective account quote asset balance (USDT) as collateral\*\* (inclusive of fees). + +As a result, each market buy order implicitly has a maximum acceptable price associated with it, as filling the market +order beyond that price would simply fail due to a lack of funds. + +### Market Sell Order + +A market sell order seeks to sell a specified `Quantity` ETH (**base asset**) at a specified worst price which is at or +near the current bid in exchange for any amount of the quote asset (USDT) available in the market. + +As a result, each market sell order implicitly has a zero price associated with it. + +### Order Types + +- BUY (1): A standard buy order to purchase an asset at either the current market price or a set limit price. +- SELL (2): A standard sell order to sell an asset at either the current market price or a set limit price. +- STOP_BUY (3): This order type is not supported for spot markets. +- STOP_SELL (4): This order type is not supported for spot markets. +- TAKE_BUY (5): This order type is not supported for spot markets. +- TAKE_SELL (6): This order type is not supported for spot markets. +- BUY_PO (7): Post-Only Buy. This order type ensures that the order will only be added to the order book and not match with a pre-existing order. It guarantees that you will be the market "maker" and not the "taker". +- SELL_PO (8): Post-Only Sell. Similar to BUY_PO, this ensures that your sell order will only add liquidity to the order book and not match with a pre-existing order. +- BUY_ATOMIC (9): An atomic buy order is a market order that gets executed instantly, bypassing the Frequent Batch Auctions (FBA). It's intended for smart contracts that need to execute a trade instantly. A higher fee is paid defined in the global exchange parameters. +- SELL_ATOMIC (10): An atomic sell order is similar to a BUY_ATOMIC, and it gets executed instantly at the current market price, bypassing the FBA. + +### Market Data Requirements + +Orderbook data aside, so long as our Chain supports the **base capability** to obtain Tick by Tick trading data, +aggregations can be applied to obtain most of the necessary higher order data, including + +- OHLCV data +- Account Trading History +- Market Statistics + +## Spot Market Lifecycle + +### Governance based Spot Market Creation + +A market is first created either by the instant launch functionality through `MsgInstantSpotMarketLaunch` which creates a market by paying an extra fee which doesn't require governance to approve it. Or it is created in the normal way through governance through `MsgSpotMarketLaunchProposal`. + +### Listing Fee based Spot Market Creation + +Allow anyone to create an active spot market of their choice without requiring governance approval by burning a pre-set +SpotMarketInstantListingFee of INJ. + +We should still check that the denom is valid though. + +### Spot Market Status Update + +A Spot Market can exist in four different states: + +1. Active +2. Paused +3. Suspended +4. Demolished + +#### **Active State** + +If a spot market is an active state, it can accept orders and trades. + +#### Paused State + +If a spot market is a paused state, it will no longer accept orders and trades and will also not allow any users to take +actions on that market (no order cancellations). + +#### Suspended State + +If a spot market is a suspended state, it will no longer accept orders and trades, and will only allow traders to cancel +their orders. + +## Demolished State + +When a market becomes demolished, all outstanding orders are cancelled. + +#### Market Status State Transitions + +There are three state transitions that correspond to the following status changes + +- Activate Action - **Paused or Suspended Status → Active Status** +- Pause Action - **Active or Suspended Status → Paused Status** +- Suspend Action - **Active or Paused Status → Suspended Status** +- Demolish Action - **Paused or Suspended Status → Demolished Status** + +### Spot Market Parameter Update + +The following parameters exist for Spot Markets + +- SpotMarketInstantListingFee +- DefaultSpotMakerFeeRate +- DefaultSpotTakerFeeRate diff --git a/.gitbook/developers/modules/injective/exchange/02_binary_options_markets.md b/.gitbook/developers/modules/injective/exchange/02_binary_options_markets.md new file mode 100644 index 00000000..8e9dc11f --- /dev/null +++ b/.gitbook/developers/modules/injective/exchange/02_binary_options_markets.md @@ -0,0 +1,115 @@ +--- +sidebar_position: 2 +title: Binary Options Markets +--- + +# Binary Options Markets + +## Concept + +Binary options markets don't have base asset as other markets do, and they are quoted in **USDT** (there is a possibility other quote assets will be added later). Tickers for binary options markets usually follow the scheme of **UFC-KHABIB-TKO-09082022** or similar. Typically, binary options markets are used for betting on sport events, but can also be used for betting on any outcome. All markets have possible price bands between $0.00 and $1.00 with users able to put in orders from $0.01 to $0.99. ($0.00 and $1.00 respectively show an end condition that the outcome did not occur or did). The price submitted in the order is essentially an assumed probability of the given event (market) occurring. + +For all binary options markets, **fees are always paid in the quote asset**, e.g., USDT. + +There is no leverage in these type of markets, as users trade against each other in a zero-sum market. From this the other requirement is implied: if one side of a bet believes the event will occur (YES side), and current market probability for this exact event is *P* (which means the current market price is *P*), opposing side of the bet should be certain that the event will not happen with *(1-P)* probability. Thus, if the person on YES side buys *Q* number of contracts with the price *P*, he locks *Q\*P* of his balance as his margin, while opposing NO side (seller side) should lock *Q\*(1-P)* of his quote balance as margin. + +**Example:** + +Alice buys 1 contract at $0.20 (margined with $0.20) against Bob who sells 1 contract at $0.20 (margined with $0.80), creating positions for both of them. + +- Alice wins $0.80 if the market settles at $1 and Bob wins $0.2 if the market settles at $0. + +## Oracle + +Binary options markets are tightly coupled to the Provider Oracle type, which allows a governance-registered provider to relay price feed data for arbitrary new price feeds under the provider's subtype without the need for extra governance for adding successively new price feeds. Each binary options market is comprised of the following oracle parameters: +* Oracle symbol (e.g. UFC-KHABIB-TKO-09082022) +* Oracle provider (e.g. frontrunner) +* Oracle type (required to be provider) +* Oracle scale factor (e.g. 6 if the quote denom is USDT) + +The main goal of the oracle is to post the final outcome of the event. This final price settles the market at that exact price. This price is expected to be equal to be 0 or 1 most of the time, reflective of the binary outcome. + +Moreover, the market could be settled at any price within the (0, 1) price band. In case the *settlement_price* posted by oracle is between 0 or 1, all positions will be closed at the *settlement_price* (e.g. 0.42). If the oracle price exceeds 1, the settlement price will be rounded down to 1. + +Oracle can also post the final price of **-1**, which is the flag price than triggers refunding of all positions in the current market and demolishes the market. If there is no oracle update ever prior to settlement, then an oracle price of -1 will be used by default to trigger the refunds of all positions. + +Further documentation on the oracle provider type can be found in the Oracle module documentation. + +### Registering an oracle provider + +To register your oracle provider, you need to submit a `GrantProviderPrivilegeProposal` governance proposal. This proposal will register your provider and will allow your address to relay price feeds. + +```go +type GrantProviderPrivilegeProposal struct { + Title string + Description string + Provider string // the name of the provider, should be specific to you + Relayers []string // addresses which will be able to relay prices +} +``` + +Once the proposal passes, your provider will be registered and you'll be able to relay your price feeds (example below). + +## Market Lifecycle + +### Market Creation +A binary options market can be created through an instant launch (through a `MsgInstantBinaryOptionsMarketLaunch`) or through governance (through a `BinaryOptionsMarketLaunchProposal`). + +The market may be optionally configured with a market admin which has the ability to trigger settlement, change the market status as well as modify the expiration and settlement timestamp of the given market. If the market does not specify an admin, then the market parameters can only be modified through governance and that the settlement procedure will be fully based on the associated oracle provider price feed. + +### Market State Transitions +Binary options markets can take one of three statuses on Injective: Active, Expired or Demolished. After the market is created, the market has an `Active` status, which signifies that individuals can begin trading. + +Pertinently, binary options markets also have a characteristic `ExpirationTimestamp` which specifies the deadline at which trading activity for the market ceases as well as a `SettlementTimestamp` which specifies the deadline at which settlement will occur by (which must be after expiration). + +* **Active** = trading is open +* **Expired** = trading is closed, open orders are cancelled, no change to positions. +* **Demolished** = positions are settled / refunded (depending on the settlement), market is demolished + +The nature of the status transitions for binary options markets are as follows: + +| Status Change | Workflow | +| --- | --- | +| Active → Expired | Expiration is part of the standard workflow for a market. Trading is halted immediately for the market and all open orders are cancelled. The market can now be settled immediately (forcefully) by the admin or oracle or be settled naturally using the latest oracle price when we reach SettlementTimestamp. +| Expired → Demolished (Settlement) | All positions are settled at either the price set by forceful settlement or natural settlement. The market can never be traded on or reactivated again. For natural settlement, upon the SettlementTimestamp time, the last oracle price is recorded and used for settlement. For ‘force-settle’, Admin should post the MarketUpdate msg with SettlementPrice in it being set in a price band of [0, 1]. +| Active/Expired → Demolished (Refund) | All positions get refunded. The market can never be traded on or reactivated again. Admin should post the MarketUpdate msg with SettlementPrice in it being set to -1. | + + +### Market Settlement + +The settlement price options are explained above in the [oracle](#oracle) section. + +Settling a market can be achieved using one of these two options: +1. Using the registered provider oracle for the particular market. Once the provider oracle is granted privileges to relay prices (explained above), the address with the privileges can relay prices for a particular price feed using the `MsgRelayProviderPrices` message. +```go +// MsgRelayProviderPrices defines a SDK message for setting a price through the provider oracle. +type MsgRelayProviderPrices struct { + Sender string + Provider string + Symbols []string + Prices []cosmossdk_io_math.LegacyDec +} +``` + +2. Using the `MsgAdminUpdateBinaryOptionsMarket` which allows the market's admin (creator) to submit a settlement price directly to the market. +```go +type MsgAdminUpdateBinaryOptionsMarket struct { + // new price at which market will be settled + SettlementPrice *Dec + // expiration timestamp + ExpirationTimestamp int64 + // expiration timestamp + SettlementTimestamp int64 + // Status of the market + Status MarketStatus +} + +// Where Status can be one of these options +enum MarketStatus { + Unspecified = 0; + Active = 1; + Paused = 2; + Demolished = 3; + Expired = 4; +} +``` diff --git a/.gitbook/developers/modules/injective/exchange/02_other_concepts.md b/.gitbook/developers/modules/injective/exchange/02_other_concepts.md new file mode 100644 index 00000000..e971f931 --- /dev/null +++ b/.gitbook/developers/modules/injective/exchange/02_other_concepts.md @@ -0,0 +1,69 @@ +--- +sidebar_position: 3 +title: Other Concepts +--- + +# Other Concepts + +## Concurrency-Friendly Market Order Clearing Price Algorithm + +We apply the [split-apply-combine](https://stackoverflow.com/tags/split-apply-combine/info) paradigm to leverage +concurrency for efficient data processing. + +1. Match all matchable orders (see order matching for details) concurrently in all markets. + +- The intermediate result is a clearing price and a list of matched orders with their fill quantities. +- The final result is a temporary cache of all new events and all changes to positions, orders, subaccount deposits, + trading reward points and fees paid. + +2. Wait for execution on all markets and persist all data. + +Note: beyond just executing settlement, the design must also take into account market data dissemination requirements +for off-chain consumption. + +## Atomic Market Order Execution + +A common request from new applications built on Cosmwasm is for the ability to be notified upon the execution of an order. In the regular order execution flow, this would not be possible, since the Frequent Batch Auctions (FBA) are executed inside the EndBlocker. To circumvent the FBA, the new type of atomic market orders is introduced. For the privilege of executing such an atomic market order instantly, an additional trading fee is imposed. To calculate the fee of an atomic market order, the market's taker fee is multiplied by the market types's `AtomicMarketOrderFeeMultiplier`. + +- `SpotAtomicMarketOrderFeeMultiplier` +- `DerivativeAtomicMarketOrderFeeMultiplier` +- `BinaryOptionsAtomicMarketOrderFeeMultiplier` + +These multipliers are defined the global exchange parameters. In addition, the exchange parameters also define the `AtomicMarketOrderAccessLevel` which specifies the minimum access level required to execute an atomic market order. + +```golang +const ( + AtomicMarketOrderAccessLevel_Nobody AtomicMarketOrderAccessLevel = 0 + AtomicMarketOrderAccessLevel_BeginBlockerSmartContractsOnly AtomicMarketOrderAccessLevel = 1 + AtomicMarketOrderAccessLevel_SmartContractsOnly AtomicMarketOrderAccessLevel = 2 + AtomicMarketOrderAccessLevel_Everyone AtomicMarketOrderAccessLevel = 3 +) +``` + +## Trading Rewards + +Governance approves a **TradingRewardCampaignLaunchProposal** which specifies: + +- The first campaign's starting timestamp +- The **TradingRewardCampaignInfo** which specifies + - The campaign duration in seconds + - The accepted trading fee quote currency denoms + - The optional market-specific **boost** info + - The disqualified marketIDs for markets in which trades will not earn rewards +- The **CampaignRewardPools** which specifies the maximum epoch rewards that constitute the trading rewards pool for each successive campaign + +During a given campaign, the exchange will record each trader's cumulative trading reward points obtained from trading volume (with boosts applied, if applicable) from all eligible markets, i.e., markets with a matching quote currency that are not in the disqualified list. + +At the end of each campaign, i.e., after the `campaign starting timestamp + campaign duration` has elapsed, each trader will receive a pro-rata percentage of the trading rewards pool based off their trading rewards points from that campaign epoch. + +Campaigns will not auto-rollover. If there are no additional campaigns defined inside **CampaignRewardPools**, the trading reward campaigns will finish. + +## Fee Discounts + +Governance approves a **FeeDiscountProposal** which defines a fee discount **schedule** which specifies fee discount **tiers** which each specify the maker and taker discounts rates a trader will receive if they satisfy the specified minimum INJ staked amount AND have had at least the specified trading volume (based on the specified **quote denoms**) over the specified time period (`bucket count * bucket duration seconds`, which should equal 30 days). The schedule also specifies a list of disqualified marketIDs for markets whose trading volume will not count towards the volume contribution. + +- Spot markets where the base and quote are both in the accepted quote currencies list will not be rewarded (e.g. the USDC/USDT spot market). +- Maker fills in markets with negative maker fees will NOT give the trader any fee discounts. +- If the fee discount proposal was passed less than 30 days ago, i.e. `BucketCount * BucketDuration` hasn't passed yet since the creation of the proposal, the fee volume requirement is ignored so we don't unfairly penalize market makers who onboard immediately. + +Internally the trading volumes are stored in buckets, typically 30 buckets each lasting 24 hours. When a bucket is older than 30 days, it gets removed. Additionally for performance reasons there is a cache for retrieving the fee discount tier for an account. This cache is updated every 24 hours. diff --git a/.gitbook/developers/modules/injective/exchange/03_state.md b/.gitbook/developers/modules/injective/exchange/03_state.md new file mode 100644 index 00000000..719cc7b2 --- /dev/null +++ b/.gitbook/developers/modules/injective/exchange/03_state.md @@ -0,0 +1,594 @@ +--- +sidebar_position: 4 +title: State +--- + +# State + +Genesis state defines the initial state of the module to be used to setup the module. + +```go +// GenesisState defines the exchange module's genesis state. +type GenesisState struct { + // params defines all the parameters of related to exchange. + Params Params + // accounts is an array containing the genesis trade pairs + SpotMarkets []*SpotMarket + // accounts is an array containing the genesis derivative markets + DerivativeMarkets []*DerivativeMarket + // spot_orderbook defines the spot exchange limit orderbook active at genesis. + SpotOrderbook []SpotOrderBook + // derivative_orderbook defines the derivative exchange limit orderbook active at genesis. + DerivativeOrderbook []DerivativeOrderBook + // balances defines the exchange users balances active at genesis. + Balances []Balance + // positions defines the exchange derivative positions at genesis + Positions []DerivativePosition + // subaccount_trade_nonces defines the subaccount trade nonces for the subaccounts at genesis + SubaccountTradeNonces []SubaccountNonce + // expiry_futures_market_info defines the market info for the expiry futures markets at genesis + ExpiryFuturesMarketInfoState []ExpiryFuturesMarketInfoState + // perpetual_market_info defines the market info for the perpetual derivative markets at genesis + PerpetualMarketInfo []PerpetualMarketInfo + // perpetual_market_funding_state defines the funding state for the perpetual derivative markets at genesis + PerpetualMarketFundingState []PerpetualMarketFundingState + // derivative_market_settlement_scheduled defines the scheduled markets for settlement at genesis + DerivativeMarketSettlementScheduled []DerivativeMarketSettlementInfo + // sets spot markets as enabled + IsSpotExchangeEnabled bool + // sets derivative markets as enabled + IsDerivativesExchangeEnabled bool + // the current trading reward campaign info + TradingRewardCampaignInfo *TradingRewardCampaignInfo + // the current and upcoming trading reward campaign pools + TradingRewardPoolCampaignSchedule []*CampaignRewardPool + // the current and upcoming trading reward account points + TradingRewardCampaignAccountPoints []*TradingRewardCampaignAccountPoints + // the current and upcoming trading reward campaign pending pools + PendingTradingRewardPoolCampaignSchedule []*CampaignRewardPool + // the pending trading reward account points + PendingTradingRewardCampaignAccountPoints []*TradingRewardCampaignAccountPendingPoints + // the fee discount schedule + FeeDiscountSchedule *FeeDiscountSchedule + // the cached fee discount account tiers with TTL + FeeDiscountAccountTierTtl []*FeeDiscountAccountTierTTL + // the fee discount paid by accounts in all buckets + FeeDiscountBucketFeesPaidAccounts []*FeeDiscountBucketFeesPaidAccounts + // sets the first fee cycle as finished + IsFirstFeeCycleFinished bool +} +``` + +## Params + +`Params` is a module-wide configuration that stores system parameters and defines overall functioning of the exchange module. +This configuration is modifiable by governance using params update proposal natively supported by `gov` module. + +It defines default fee objects to be used for spot and derivative markets and funding parameters for derivative markets and instant listing fees. + +Protobuf interface for the `exchange` module params store. + +```go +type Params struct { + // spot_market_instant_listing_fee defines the expedited fee in INJ required to create a spot market by bypassing governance + SpotMarketInstantListingFee types.Coin + // derivative_market_instant_listing_fee defines the expedited fee in INJ required to create a derivative market by bypassing governance + DerivativeMarketInstantListingFee types.Coin + // default_spot_maker_fee defines the default exchange trade fee for makers on a spot market + DefaultSpotMakerFeeRate math.LegacyDec + // default_spot_taker_fee_rate defines the default exchange trade fee rate for takers on a new spot market + DefaultSpotTakerFeeRate math.LegacyDec + // default_derivative_maker_fee defines the default exchange trade fee for makers on a new derivative market + DefaultDerivativeMakerFeeRate math.LegacyDec + // default_derivative_taker_fee defines the default exchange trade fee for takers on a new derivative market + DefaultDerivativeTakerFeeRate math.LegacyDec + // default_initial_margin_ratio defines the default initial margin ratio on a new derivative market + DefaultInitialMarginRatio math.LegacyDec + // default_maintenance_margin_ratio defines the default maintenance margin ratio on a new derivative market + DefaultMaintenanceMarginRatio math.LegacyDec + // default_funding_interval defines the default funding interval on a derivative market + DefaultFundingInterval int64 + // funding_multiple defines the timestamp multiple that the funding timestamp should be a multiple of + FundingMultiple int64 + // relayer_fee_share_rate defines the trade fee share percentage that goes to relayers + RelayerFeeShareRate math.LegacyDec + // default_hourly_funding_rate_cap defines the default maximum absolute value of the hourly funding rate + DefaultHourlyFundingRateCap math.LegacyDec + // hourly_interest_rate defines the hourly interest rate + DefaultHourlyInterestRate math.LegacyDec + // max_derivative_order_side_count defines the maximum number of derivative active orders a subaccount can have for a given orderbook side + MaxDerivativeOrderSideCount uint32 + // inj_reward_staked_requirement_threshold defines the threshold on INJ rewards after which one also needs staked INJ to receive more + InjRewardStakedRequirementThreshold github_com_cosmos_cosmos_sdk_types.Int + // the trading_rewards_vesting_duration defines the vesting times for trading rewards + TradingRewardsVestingDuration int64 +} +``` + +## Balance + +`Balance` is to manage balances of accounts. The module is storing the whole balance in the module account, while the balance of each account is managed just as a record. + +The `Balance` object is stored by `subaccount_id` and `denom`. + +```go +message Balance { + SubaccountId string + Denom string + Deposits *Deposit +} + +// An subaccount's deposit for a given base currency +type Deposit struct { + AvailableBalance math.LegacyDec + TotalBalance math.LegacyDec +} + +type SubaccountDeposit { + SubaccountId []byte + Deposit *Deposit +} +``` + +## SubaccountNonce + +`SubaccountNonce` is used to express unique order hashes. + +```go +type SubaccountNonce struct { + SubaccountId string + SubaccountTradeNonce SubaccountTradeNonce +} +``` + +## Order + +There are a number of structures used to store the orders into the store. + +```go +type OrderInfo struct { + // bytes32 subaccount ID that created the order + SubaccountId string + // address fee_recipient address that will receive fees for the order + FeeRecipient string + // price of the order + Price math.LegacyDec + // quantity of the order + Quantity math.LegacyDec +} + +type SubaccountOrderbookMetadata struct { + VanillaLimitOrderCount uint32 + ReduceOnlyLimitOrderCount uint32 + // AggregateReduceOnlyQuantity is the aggregate fillable quantity of the subaccount's reduce-only limit orders in the given direction. + AggregateReduceOnlyQuantity math.LegacyDec + // AggregateVanillaQuantity is the aggregate fillable quantity of the subaccount's vanilla limit orders in the given direction. + AggregateVanillaQuantity math.LegacyDec +} + +type SubaccountOrder struct { + // price of the order + Price math.LegacyDec + // the amount of the quantity remaining fillable + Quantity math.LegacyDec + IsReduceOnly bool + Cid string +} + +type MarketOrderIndicator struct { + // market_id represents the unique ID of the market + MarketId string + IsBuy bool +} +``` + +## SpotMarket + +`SpotMarket` is the structure to store all the required information and state for a spot market. +Spot markets are stored by hash of the market to query the market efficiently. + +```go +// An object describing trade pair of two assets. +type SpotMarket struct { + // A name of the pair in format AAA/BBB, where AAA is base asset, BBB is quote asset. + Ticker string + // Coin denom used for the base asset + BaseDenom string + // Coin used for the quote asset + QuoteDenom string + // maker_fee_rate defines the fee percentage makers pay when trading + MakerFeeRate math.LegacyDec + // taker_fee_rate defines the fee percentage takers pay when trading + TakerFeeRate math.LegacyDec + // relayer_fee_share_rate defines the percentage of the transaction fee shared with the relayer in a derivative market + RelayerFeeShareRate math.LegacyDec + // Unique market ID. + MarketId string + // Status of the market + Status MarketStatus + // min_price_tick_size defines the minimum tick size that the price required for orders in the market + MinPriceTickSize math.LegacyDec + // min_quantity_tick_size defines the minimum tick size of the quantity required for orders in the market + MinQuantityTickSize math.LegacyDec +} +``` + +## SpotOrderBook + +`SpotOrderBook` is a structure to store spot limit orders for a specific market. +Two objects are created, one for buy orders and one for sell orders. + +```go +// Spot Exchange Limit Orderbook +type SpotOrderBook struct { + MarketId string + IsBuySide bool + Orders []*SpotLimitOrder +} + +type SpotOrder struct { + // market_id represents the unique ID of the market + MarketId string + // order_info contains the information of the order + OrderInfo OrderInfo + // order types + OrderType OrderType + // trigger_price is the trigger price used by stop/take orders + TriggerPrice *math.LegacyDec +} + +// A valid Spot limit order with Metadata. +type SpotLimitOrder struct { + // order_info contains the information of the order + OrderInfo OrderInfo + // order types + OrderType OrderType + // the amount of the quantity remaining fillable + Fillable math.LegacyDec + // trigger_price is the trigger price used by stop/take orders + TriggerPrice *math.LegacyDec + OrderHash []byte +} + +// A valid Spot market order with Metadata. +type SpotMarketOrder struct { + // order_info contains the information of the order + OrderInfo OrderInfo + BalanceHold math.LegacyDec + OrderHash []byte +} +``` + +## DerivativeMarket + +`DerivativeMarket` is the structure to store all the required information and state for a derivative market. +Derivative markets are stored by hash of the market to query the market efficiently. + +```go +// An object describing a derivative market in the Injective Futures Protocol. +type DerivativeMarket struct { + // Ticker for the derivative contract. + Ticker string + // Oracle base currency + OracleBase string + // Oracle quote currency + OracleQuote string + // Oracle type + OracleType types1.OracleType + // Scale factor for oracle prices. + OracleScaleFactor uint32 + // Address of the quote currency denomination for the derivative contract + QuoteDenom string + // Unique market ID. + MarketId string + // initial_margin_ratio defines the initial margin ratio of a derivative market + InitialMarginRatio math.LegacyDec + // maintenance_margin_ratio defines the maintenance margin ratio of a derivative market + MaintenanceMarginRatio math.LegacyDec + // maker_fee_rate defines the maker fee rate of a derivative market + MakerFeeRate math.LegacyDec + // taker_fee_rate defines the taker fee rate of a derivative market + TakerFeeRate math.LegacyDec + // relayer_fee_share_rate defines the percentage of the transaction fee shared with the relayer in a derivative market + RelayerFeeShareRate math.LegacyDec + // true if the market is a perpetual market. false if the market is an expiry futures market + IsPerpetual bool + // Status of the market + Status MarketStatus + // min_price_tick_size defines the minimum tick size that the price and margin required for orders in the market + MinPriceTickSize math.LegacyDec + // min_quantity_tick_size defines the minimum tick size of the quantity required for orders in the market + MinQuantityTickSize math.LegacyDec +} +``` + +## DerivativeOrderBook + +`DerivativeOrderBook` is a structure to store derivative limit orders for a specific market. +Two objects are created, one for buy orders and one for sell orders. + +```go +// Spot Exchange Limit Orderbook +type DerivativeOrderBook struct { + MarketId string + IsBuySide bool + Orders []*DerivativeLimitOrder +} + +type DerivativeOrder struct { + // market_id represents the unique ID of the market + MarketId string + // order_info contains the information of the order + OrderInfo OrderInfo + // order types + OrderType OrderType + // margin is the margin used by the limit order + Margin math.LegacyDec + // trigger_price is the trigger price used by stop/take orders + TriggerPrice *math.LegacyDec +} + +// A valid Derivative limit order with Metadata. +type DerivativeLimitOrder struct { + // order_info contains the information of the order + OrderInfo OrderInfo + // order types + OrderType OrderType + // margin is the margin used by the limit order + Margin math.LegacyDec + // the amount of the quantity remaining fillable + Fillable math.LegacyDec + // trigger_price is the trigger price used by stop/take orders + TriggerPrice *math.LegacyDec + OrderHash []byte +} + +// A valid Derivative market order with Metadata. +type DerivativeMarketOrder struct { + // order_info contains the information of the order + OrderInfo OrderInfo + // order types + OrderType OrderType + Margin math.LegacyDec + MarginHold math.LegacyDec + // trigger_price is the trigger price used by stop/take orders + TriggerPrice *math.LegacyDec + OrderHash []byte +} + +type DerivativeMarketOrderCancel struct { + MarketOrder *DerivativeMarketOrder + CancelQuantity math.LegacyDec +} +``` + +## DerivativePosition + +`DerivativePosition` is a structure to store derivative positions for a subaccount on a specific market. + +**Note:** Derivative orders represent intent while positions represent possession. + +```go +type Position struct { + IsLong bool + Quantity math.LegacyDec + EntryPrice math.LegacyDec + Margin math.LegacyDec + CumulativeFundingEntry math.LegacyDec +} + +type PositionDelta struct { + IsLong bool + ExecutionQuantity math.LegacyDec + ExecutionMargin math.LegacyDec + ExecutionPrice math.LegacyDec +} + +type DerivativePosition struct { + SubaccountId string + MarketId string + Position *Position +} + +type SubaccountPosition struct { + Position *Position + SubaccountId []byte +} +``` + +## ExpiryFuturesMarketInfo + +`ExpiryFuturesMarketInfo` is a structure to keep the information of expiry futures market. +It is stored by the id of the market. + +```go +type ExpiryFuturesMarketInfo struct { + // market ID. + MarketId string + // expiration_timestamp defines the expiration time for a time expiry futures market. + ExpirationTimestamp int64 + // expiration_twap_start_timestamp defines the start time of the TWAP calculation window + TwapStartTimestamp int64 + // expiration_twap_start_price_cumulative defines the cumulative price for the start of the TWAP window + ExpirationTwapStartPriceCumulative math.LegacyDec + // settlement_price defines the settlement price for a time expiry futures market. + SettlementPrice math.LegacyDec +} +``` + +## PerpetualMarketInfo + +`PerpetualMarketInfo` is a structure to keep the information of perpetual market. + +```go +type PerpetualMarketInfo struct { + // market ID. + MarketId string + // hourly_funding_rate_cap defines the maximum absolute value of the hourly funding rate + HourlyFundingRateCap math.LegacyDec + // hourly_interest_rate defines the hourly interest rate + HourlyInterestRate math.LegacyDec + // next_funding_timestamp defines the next funding timestamp in seconds of a perpetual market + NextFundingTimestamp int64 + // funding_interval defines the next funding interval in seconds of a perpetual market. + FundingInterval int64 +} +``` + +## PerpetualMarketFunding + +`PerpetualMarketFunding` is a structure to manage perpetual market fundings info. + +```go +type PerpetualMarketFunding struct { + // cumulative_funding defines the cumulative funding of a perpetual market. + CumulativeFunding math.LegacyDec + // cumulative_price defines the cumulative price for the current hour up to the last timestamp + CumulativePrice math.LegacyDec + LastTimestamp int64 +} +``` + +## Trading Rewards + +### CampaignRewardPool + +`CampaignRewardPool` is a structure to be used for getting the upcoming trading reward pools. + +```go +type CampaignRewardPool struct { + StartTimestamp int64 + // max_campaign_rewards are the maximum reward amounts to be disbursed at the end of the campaign + MaxCampaignRewards sdk.Coins +} +``` + +### TradingRewardCampaignInfo + +`TradingRewardCampaignInfo` is a structure to be used for getting the trading reward campaign info. + +```go +type TradingRewardCampaignInfo struct { + // number of seconds of the duration of each campaign + CampaignDurationSeconds int64 + // the trading fee quote denoms which will be counted for the rewards + QuoteDenoms []string + // the optional boost info for markets + TradingRewardBoostInfo *TradingRewardCampaignBoostInfo + // the marketIDs which are disqualified from being rewarded + DisqualifiedMarketIds []string +} + +type TradingRewardCampaignBoostInfo struct { + BoostedSpotMarketIds []string + SpotMarketMultipliers []PointsMultiplier + BoostedDerivativeMarketIds []string + DerivativeMarketMultipliers []PointsMultiplier +} + +type PointsMultiplier struct { + MakerPointsMultiplier math.LegacyDec + TakerPointsMultiplier math.LegacyDec +} +``` + +## FeeDiscountProposal + +`FeeDiscountProposal` is a structure to be used for proposing a new fee discount schedule and durations. + +```go +type FeeDiscountSchedule struct { + // the bucket count, e.g., 30 + BucketCount uint64 + // the bucket duration, e.g., 1 day + BucketDuration int64 + // the trading fee quote denoms which will be counted for the fee paid contribution + QuoteDenoms []string + // the fee discount tiers + TierInfos []*FeeDiscountTierInfo + // the marketIDs which are disqualified from contributing to the fee paid amount + DisqualifiedMarketIds []string +} + +type FeeDiscountTierInfo struct { + MakerDiscountRate math.LegacyDec + TakerDiscountRate math.LegacyDec + StakedAmount math.Int + FeePaidAmount math.LegacyDec +} +``` + +## DerivativeMarketSettlementInfo + +`DerivativeMarketSettlementInfo` is a structure to be used for the scheduled markets for settlement. + +```go +type DerivativeMarketSettlementInfo struct { + // market ID. + MarketId string + // settlement_price defines the settlement price + SettlementPrice math.LegacyDec + // starting_deficit defines starting deficit + StartingDeficit math.LegacyDec +} +``` + +## TradeLog + +Trade logs are emitted in events to track the trading history. + +```go +type TradeLog struct { + Quantity math.LegacyDec + Price math.LegacyDec + // bytes32 subaccount ID that executed the trade + SubaccountId []byte + Fee math.LegacyDec + OrderHash []byte +} + +type DerivativeTradeLog struct { + SubaccountId []byte + PositionDelta *PositionDelta + Payout math.LegacyDec + Fee math.LegacyDec + OrderHash []byte +} +``` + +## Enums + +Enums are used to describe the order types, execution types and market status. + +```protobuf +enum OrderType { + UNSPECIFIED = 0 [(gogoproto.enumvalue_customname) = "UNSPECIFIED"]; + BUY = 1 [(gogoproto.enumvalue_customname) = "BUY"]; + SELL = 2 [(gogoproto.enumvalue_customname) = "SELL"]; + STOP_BUY = 3 [(gogoproto.enumvalue_customname) = "STOP_BUY"]; + STOP_SELL = 4 [(gogoproto.enumvalue_customname) = "STOP_SELL"]; + TAKE_BUY = 5 [(gogoproto.enumvalue_customname) = "TAKE_BUY"]; + TAKE_SELL = 6 [(gogoproto.enumvalue_customname) = "TAKE_SELL"]; + BUY_PO = 7 [(gogoproto.enumvalue_customname) = "BUY_PO"]; + SELL_PO = 8 [(gogoproto.enumvalue_customname) = "SELL_PO"]; + BUY_ATOMIC = 9 [ (gogoproto.enumvalue_customname) = "BUY_ATOMIC" ]; + SELL_ATOMIC = 10 [ (gogoproto.enumvalue_customname) = "SELL_ATOMIC" ]; +} + +enum MarketStatus { + Unspecified = 0; + Active = 1; + Paused = 2; + Suspended = 3; + Demolished = 4; + Expired = 5; +} + +enum ExecutionType { + UnspecifiedExecutionType = 0; + Market = 1; + LimitFill = 2; + LimitMatchRestingOrder = 3; + LimitMatchNewOrder = 4; +} +``` diff --git a/.gitbook/developers/modules/injective/exchange/04_state_transitions.md b/.gitbook/developers/modules/injective/exchange/04_state_transitions.md new file mode 100644 index 00000000..99b858ee --- /dev/null +++ b/.gitbook/developers/modules/injective/exchange/04_state_transitions.md @@ -0,0 +1,447 @@ +--- +sidebar_position: 5 +title: State Transitions +--- + +# State Transitions + +This document describes the state transition operations pertaining to: + +- Deposit into exchange module account +- Withdraw from exchange module account +- Instant spot market launch +- Instant perpetual market launch +- Instant expiry futures market launch +- Spot limit order creation +- Batch creation of spot limit orders +- Spot market order creation +- Cancel spot order +- Batch cancellation of spot order +- Derivative limit order creation +- Batch derivative limit order creation +- Derivative market order creation +- Cancel derivative order +- Batch cancellation of derivative orders +- Transfer between subaccounts +- Transfer to external account +- Liquidating a position +- Increasing position margin +- Spot market param update proposal +- Exchange enable proposal +- Spot market launch proposal +- Perpetual market launch proposal +- Expiry futures market launch proposal +- Derivative market param update proposal +- Trading rewards launch proposal +- Trading rewards update proposal +- Begin-blocker +- End-blocker + +## Deposit into exchange module account + +Deposit action is carried out by `MsgDeposit` which consists of `Sender`, `SubaccountId` and `Amount` fields. + +**Note:** `SubaccountId` is optional and if it's not available, it's calculated dynamically from `Sender` address. + +**Steps** + +- Check that the denom specified in `msg.Amount` is a valid denom which exists in bank supply +- Send coins from individual account to `exchange` module account and if fail, just revert +- Get hash type of `subaccountID` from `msg.SubaccountId`, if it's zero subaccount, calculate dynamically from `msg.Sender` by using `SdkAddressToSubaccountID` +- Increment deposit amount for the `subaccountID` by `msg.Amount` +- Emit event for `EventSubaccountDeposit` with `msg.Sender`, `subaccountID` and `msg.Amount` + +## Withdraw from exchange module account + +Withdraw action is carried out by `MsgWithdraw` which consists of `Sender`, `SubaccountId` and `Amount` fields. + +**Note:** The ownership of `msg.SubaccountId` by `msg.Sender` is validated on `msg.ValidateBasic` function. + +**Steps** + +- Get hash type of `subaccountID` from `msg.SubaccountId` +- Check the denom specified in `msg.Amount` is a valid denom which exists in bank supply +- Decrement withdraw amount from `subaccountID` by `msg.Amount`, if fail, revert +- Send coins from `exchange` module to `msg.Sender` +- Emit event for `EventSubaccountWithdraw` with `subaccountID`, `msg.Sender`, and `msg.Amount` + +## Instant spot market launch + +Instant spot market launch action is carried out by `MsgInstantSpotMarketLaunch` which consists of `Sender`, `Ticker`, `BaseDenom`, `QuoteDenom`, `MinPriceTickSize` and `MinQuantityTickSize` fields. + +**Steps** + +- Calculate `marketID` from `msg.BaseDenom` and `msg.QuoteDenom` +- Check if same market launch proposal exists by `marketID` and revert if already exists +- Launch spot market with `msg.Ticker`, `msg.BaseDenom`, `msg.QuoteDenom`, `msg.MinPriceTickSize`, `msg.MinQuantityTickSize` and revert if fail +- Send instant listing fee(params.SpotMarketInstantListingFee) from `msg.Sender` to `exchange` module account +- Lastly send the instant listing fee to the community spend pool + +## Instant perpetual market launch + +Instant perpetual market launch action is carried out by `MsgInstantPerpetualMarketLaunch` which consists of `Sender`, `Ticker`, `QuoteDenom`, `OracleBase`, `OracleQuote`, `OracleScaleFactor`, `OracleType`, `MakerFeeRate`, `TakerFeeRate`, `InitialMarginRatio`, `MaintenanceMarginRatio`, `MinPriceTickSize` and `MinQuantityTickSize` fields. + +**Steps** + +- Calculate `marketID` from `msg.Ticker`, `msg.QuoteDenom`, `msg.OracleBase`, `msg.OracleQuote` and `msg.OracleType`. +- Check if same market launch proposal exists by `marketID` and revert if already exists +- Send instant listing fee(params.DerivativeMarketInstantListingFee) from `msg.Sender` to `exchange` module account +- Launch perpetual market with required params on `msg` object and revert if fail +- Lastly send the instant listing fee to the community spend pool + +## Instant expiry futures market launch + +Instant expiry futures market launch action is carried out by `MsgInstantExpiryFuturesMarketLaunch` which consists of `Sender`, `Ticker`, `QuoteDenom`, `OracleBase`, `OracleQuote`, `OracleScaleFactor`, `OracleType`, `Expiry`, `MakerFeeRate`, `TakerFeeRate`, `InitialMarginRatio`, `MaintenanceMarginRatio`, `MinPriceTickSize` and `MinQuantityTickSize` fields. + +**Steps** + +- Calculate `marketID` from `msg.Ticker`, `msg.QuoteDenom`, `msg.OracleBase`, `msg.OracleQuote`, `msg.OracleType` and `msg.Expiry`. +- Check if same market launch proposal exists by `marketID` and revert if already exists +- Send instant listing fee(params.DerivativeMarketInstantListingFee) from `msg.Sender` to `exchange` module account +- Launch expiry futures market with required params on `msg` object and revert if fail +- Trigger `EventExpiryFuturesMarketUpdate` event with market info +- Lastly send the instant listing fee to the community spend pool + +## Spot limit order creation + +Spot limit order creation is carried out by `MsgCreateSpotLimitOrder` which consists of `Sender` and `Order`. + +**Steps** + +- Check spot exchange is enabled to make an order on spot market and if not revert +- Check order's price and quantity tick sizes fits market's min quantity and price tick size +- Increment subaccount's `TradeNonce` +- Reject if spot market id does not reference an active spot market +- Calculate unique order hash with `TradeNonce` +- Reject if the subaccount's available deposits does not have at least the required funds for the trade +- Decrement the available balance by the funds amount needed to fund the order +- Store the order in the transient limit order store and transient market indicator store + +**Note:** The order in transient store is executed on endblocker or if not, put on long-live store. + +## Batch creation of spot limit orders + +Batch creation of spot limit orders is carried out by `MsgBatchCreateSpotLimitOrders` which consists of `Sender` and `Orders`. + +**Steps** + +- Loop over the `msg.Orders` and create spot limit order as in `MsgCreateSpotLimitOrder` + +## Spot market order creation + +Spot market order creation is carried out by `MsgCreateSpotMarketOrder` which consists of `Sender` and `Order`. + +**Steps** + +- Check spot exchange is enabled to make an order on spot market and if not revert +- Check order's price and quantity tick sizes fits market's min quantity and price tick size +- Increment subaccount's `TradeNonce` +- Reject if spot market id does not reference an active spot market +- Calculate unique order hash with `TradeNonce` +- Check available balance to fund the market order +- Calculate the worst acceptable price for the market order +- Decrement deposit's AvailableBalance by the balance hold +- Store the order in the transient spot market order store and transient market indicator store + +## Cancel spot order + +Spot order cancellation is carried out by `MsgCancelSpotOrder` which consists of `Sender` and `MarketId`, `SubaccountId` and `OrderHash`. + +**Steps** + +- Check spot exchange is enabled to execute the action and if not revert +- Reject if spot market id does not reference an active, suspended or demolished spot market +- Check spot limit order exists by `marketID`, `subaccountID` and `orderHash` +- Add back the margin hold to available balance +- Increment the available balance margin hold +- Delete the order state from ordersStore and ordersIndexStore +- Emit `EventCancelSpotOrder` event with marketID and order info + +## Batch cancellation of spot orders + +Batch cancellation of spot orders is carried out by `MsgBatchCancelSpotOrders` which consists of `Sender` and `Data`. + +**Steps** + +- Loop over the `msg.Data` and cancel spot order as in `MsgCancelSpotOrder` + +## Derivative limit order creation + +Derivative limit order creation is carried out by `MsgCreateDerivativeLimitOrder` which consists of `Sender` and `Order`. + +**Steps** + +- Check derivative exchange is enabled to make an order on derivative market and if not revert +- Reject if market order is already placed on the market by `subaccountID` (**Note:** Can't the market order and limit order core exist?) +- Get derivative market and markPrice by `marketID` +- Get orderbook metadata (`SubaccountOrderbookMetadata`) the for specified `marketID` and `subaccountID` +- Ensure limit order is valid: + - Market config (market id and tick sizes) + - Subaccount trade nonce + - Subaccount max order count + - If reduce-only order: + - Position with valid quantity and opposite direction exists + - If order would result in other reduce-only orders becoming stale, reject it + - If limit order: + - Enough subaccount deposits for margin hold + - If order is in opposite direction of existing position and results in other reduce-only orders becoming stale, cancel the stale reduce-only orders +- Store the order in the transient limit order store and transient market indicator store +- Update orderbook metadata for subaccount + +## Batch creation of derivative limit orders + +Batch creation of derivative limit orders is carried out by `MsgBatchCreateDerivativeLimitOrders` which consists of `Sender` and `Orders`. + +**Steps** + +- Loop over the `msg.Orders` and create derivative limit order as in `MsgCreateDerivativeLimitOrder` + +## Derivative market order creation + +Derivative market order creation is carried out by `MsgCreateDerivativeMarketOrder` which consists of `Sender` and `Order`. + +**Steps** + +- Check derivative exchange is enabled to make an order on derivative market and if not revert +- Check if `SubaccountID` that is going to make new order has limit derivative order or market order and reject. **Note:** Perpetual market can't place two market orders or both limit / market orders at the same time? +- Check order's price and quantity tick sizes fits market's min quantity and price tick size +- Increment Subaccount's `TradeNonce` +- Reject if derivative market id does not reference an active derivative market +- Calculate unique order hash with `TradeNonce` +- Check that the market order worst price reaches the best opposing resting orderbook price +- Check Order/Position Margin amount +- 1. If it's reduce only order +- A. Check if position for `subaccountID` on the market is not nil +- B. Check that the order can close the position +- C. Reject if position.quantity - AggregateReduceOnlyQuantity - order.quantity < 0 +- D. Set MarginHold as zero for no margin hold for selling positions +- 2. If it's not reduce only order +- A. Check available balance to fund the market order +- B. Reject if the subaccount's available deposits does not have at least the required funds for the trade +- C. Decrement deposit's AvailableBalance by the balance hold +- For an opposing position, if AggregateVanillaQuantity > position.quantity - AggregateReduceOnlyQuantity - order.FillableQuantity, the new reduce-only order might invalidate some existing reduce-only orders or itself be invalid, and do operations for that. +- Store the order in the transient derivative market order store and transient market indicator store + +## Cancel derivative order + +Derivative order cancellation is carried out by `MsgCancelDerivativeOrder` which consists of `Sender`, `MarketId`, `SubaccountId` and `OrderHash`. + +**Steps** + +- Check derivative exchange is enabled to execute the operation and if not revert +- Reject if derivative market id does not reference an active derivative market +- Check resting derivative limit order exists by `marketID`, `subaccountID` and `orderHash` +- Add back the margin hold to available balance +- Skip cancelling limit orders if their type shouldn't be cancelled +- Delete the order state from ordersStore, ordersIndexStore and subaccountOrderStore +- Update orderbook metadata for subaccount +- Emit `EventCancelDerivativeOrder` event with marketID and order info + +## Batch cancellation of derivative orders + +Batch cancellation of derivative orders is carried out by `MsgBatchCancelDerivativeOrders` which consists of `Sender` and `Data`. + +**Steps** + +- Loop over the `msg.Data` and cancel spot order as in `MsgCancelDerivativeOrder` + +## Batch order updates + +Batch updating orders is carried out by `MsgBatchUpdateOrders` which consists of `Sender` and `Orders`. + +**Steps** + +- Cancel all orders in all market id specified by `SpotMarketIdsToCancelAll` and `DerivativeMarketIdsToCancelAll` for specified subaccount id +- Loop over the `msg.SpotOrdersToCancel` and cancel spot limit order as in `MsgCancelSpotOrder`. If the cancel fails, continue to next order. The success of cancellations is reflected in the `MsgBatchUpdateOrdersResponse` as `SpotCancelSuccess`. +- Loop over the `msg.DerivativeOrdersToCancel` and cancel derivative limit order as in `MsgCancelDerivativeOrder`. If the cancel fails, continue to next order. The success of cancellations is reflected in the `MsgBatchUpdateOrdersResponse` as `DerivativeCancelSuccess`. +- Loop over the `msg.SpotOrdersToCreate` and create spot limit order as in `MsgCreateSpotOrder`. If the creation fails, continue to next order. Successful creations are reflected in the `MsgBatchUpdateOrdersResponse` as `SpotOrderHashes`. +- Loop over the `msg.DerivativeOrdersToCreate` and create derivative limit order as in `MsgCreateDerivativeOrder`. If the creation fails, continue to next order. Successful creations are reflected in the `MsgBatchUpdateOrdersResponse` as `DerivativeOrderHashes`. + +## Transfer between subaccounts + +Transfer between subaccounts is executed by `MsgSubaccountTransfer` which consists of `Sender`, `SourceSubaccountId`, `DestinationSubaccountId` and `Amount`. + +**Steps** + +- Withdraw deposit from `msg.SourceSubaccountId` for `msg.Amount`, if fail revert transaction +- Increment deposit of `msg.DestinationSubaccountId` by `msg.Amount` +- Emit event for `EventSubaccountBalanceTransfer` with `SrcSubaccountId`, `DstSubaccountId` and `msg.Amount` + +**Note:** With subaccount transfer, no need to transfer actual coins from bank module but changing the records are enough. + +## Transfer to external account + +Transfer to external account is executed by `MsgExternalTransfer` which consists of `Sender`, `SourceSubaccountId`, `DestinationSubaccountId` and `Amount`. + +**Steps** + +- Withdraw deposit from `msg.SourceSubaccountId` for `msg.Amount`, if fail revert transaction +- Increment deposit of `msg.DestinationSubaccountId` by `msg.Amount` +- Emit event for `EventSubaccountBalanceTransfer` with `SrcSubaccountId`, `DstSubaccountId` and `msg.Amount` + +**Note:** With subaccount transfer, no need to transfer actual coins from bank module but changing the records are enough. + +1. Event should be different for subaccount transfer and external transfer. +2. There's no difference in subaccount transfer and external transfer, still need to keep different messages? + +## Liquidating a position + +Liquidating a position is executed by `MsgLiquidatePosition` which consists of `Sender`, `SubaccountId`, `MarketId` and `Order`. + +**Steps** + +- Check derivative exchange is enabled to liquidate a position on derivative market and if not revert +- Reject if derivative market id does not reference an active derivative market +- Get derivative market and markPrice by `marketID` +- Get position for `marketID` and `subaccountID` +- Calculate `liquidationPrice` and `bankruptcyPrice` from the position info +- Determine vaporize or liquidate and if not all of them, revert +- Cancel all reduce-only limit orders created by the position holder in the given market +- Apply funding and update position +- Cancel all market orders created by the position holder in the given market +- Check and increment subaccount nonce, compute order hash +- Calculate `liquidationOrder` hash +- Set the liquidation order into the storage +- Execute liquidation by matching position and liquidation order +- Handle differently based on the payout is positive or negative (insurance fund is involved here in calculation) + - Positive Payout: + 1. Send half of the payout to liquidator (incentive for running liquidator bots) + 2. Send the other half to the insurance fund (incentive for participating in insurance funds) + - Negative Payout - Four levels of escalation to retrieve the funds: + 1. From trader's available balance + 2. From trader's locked balance by cancelling his vanilla limit orders + 3. From the insurance fund + 4. Not enough funds available. Pause the market and add markets to the storage to be settled in next block, see `BeginBlocker` specs. +- If market is a perpetual market, upgrade VWAP data based on liquidation price and quantity +- If there's remaining in liquidation order, return back remains by cancelling order + +## Increasing position margin + +Increasing position margin is executed by `MsgIncreasePositionMargin` which consists of `Sender`, `SourceSubaccountId`, `DestinationSubaccountId`, `MarketId` and `Amount`. + +**Steps** + +- Check derivative exchange is enabled to increase position margin on derivative market and if not revert +- Reject if derivative market id does not reference an active derivative market +- Get deposit of `sourceSubaccountID` +- If `deposit.AvailableBalance` is lower than `msg.Amount`, revert +- Get position by `marketID` and `destinationSubaccountID` and if not exist, revert +- Reduce deposit amount of `sourceSubaccountID` by `msg.Amount` +- Increase position margin by `msg.Amount` and update position in the store + +## Exchange enable proposal + +The enable of market type is done by `ExchangeEnableProposal` which consists of `Title`, `Description` and `ExchangeType`. + +**Steps** + +- `ValidateBasic` for proposal +- If `p.ExchangeType` is spot market, enable spot exchange +- If `p.ExchangeType` is derivative market, enable derivative market + +## Spot market launch proposal + +Launch of spot market is handled by `SpotMarketLaunchProposal` which consists of `Title`, `Description`, `Ticker`, `BaseDenom`, `QuoteDenom`, `MinPriceTickSize` and `MinQuantityTickSize` fields. + +**Steps** + +- `ValidateBasic` for proposal +- Validate `BaseDenom` and `QuoteDenom` are valid +- Validate if same market does not exist by `msg.BaseDenom` and `msg.QuoteDenom` +- Calculate RelayerFeeShareRate based on exchange module params. **Note:** for INJ currency, relayer share rate is set to 100% +- Save spot market with calculated `ticker`, `baseDenom`, `quoteDenom`, `exchangeParams.DefaultSpotMakerFeeRate`, `exchangeParams.DefaultSpotTakerFeeRate`, `relayerFeeShareRate`, `minPriceTickSize`, `minQuantityTickSize`, `marketID`, and `MarketStatus_Active`. + +## Perpetual market launch proposal + +Perpetual market launch is handled by `PerpetualMarketLaunchProposal` which consists of `Title`, `Description`, `Ticker`, `QuoteDenom`, `OracleBase`, `OracleQuote`, `OracleScaleFactor`, `OracleType`, `MakerFeeRate`, `TakerFeeRate`, `InitialMarginRatio`, `MaintenanceMarginRatio`, `MinPriceTickSize` and `MinQuantityTickSize` fields. + +**Steps** + +- `ValidateBasic` for proposal +- Validate `quoteDenom`. +- Calculate `marketID` from `ticker`, `quoteDenom`, `oracleBase`, `oracleQuote`, `oracleType` +- Validate active or inactive perpetual market for `marketID` does not exist +- Try getting derivative market price to check price oracle by `oracleBase`, `oracleQuote`, `oracleScaleFactor`, `oracleType` +- Validate insurance fund exist for `marketID` +- Calculate `defaultFundingInterval`, `nextFundingTimestamp`, `relayerFeeShareRate` from `exchange` module params +- Execute `SetDerivativeMarketWithInfo` to set market info into the storage with `market`, `marketInfo` and `funding` objects + +## Expiry futures market launch proposal + +Expiry futures market launch is handled by `ExpiryFuturesMarketLaunchProposal` which consists of `Title`, `Description`, `Ticker`, `QuoteDenom`, `OracleBase`, `OracleQuote`, `OracleScaleFactor`, `OracleType`, `Expiry`, `MakerFeeRate`, `TakerFeeRate`, `InitialMarginRatio`, `MaintenanceMarginRatio`, `MinPriceTickSize` and `MinQuantityTickSize` fields. + +**Steps** + +- `ValidateBasic` for proposal +- Validate `quoteDenom` +- Calculate `marketID` from `p.Ticker`, `p.QuoteDenom`, `p.OracleBase`, `p.OracleQuote`, `p.OracleType` and `p.Expiry` +- Validate active or inactive expiry futures market for `marketID` does not exist +- If expiry time passed `ctx.BlockTime()` already, revert +- Try getting derivative market price to check price oracle by `oracleBase`, `oracleQuote`, `oracleScaleFactor`, `oracleType` +- Validate insurance fund exist for `marketID` +- Calculate RelayerFeeShareRate based on exchange module params. **Note:** for INJ currency, relayer share rate is set to 100% +- Execute `SetDerivativeMarketWithInfo` to set market info into the storage with `market`, `marketInfo` objects **Note:** TwapStartTimestamp is set to `expiry - thirtyMinutesInSeconds`. + +## Spot market param update proposal + +The update of spot market param is handled by `SpotMarketParamUpdateProposal` which consists of `Title`, `Description`, `MarketId`, `MakerFeeRate`, `TakerFeeRate`, `RelayerFeeShareRate`, `MinPriceTickSize`, `MinQuantityTickSize` and `Status`. + +**Steps** + +- `ValidateBasic` for proposal +- Get spot market by `p.MarketId` and if not exist, revert +- Reset the params for `MakerFeeRate`, `TakerFeeRate`, `RelayerFeeShareRate`, `MinPriceTickSize`, `MinQuantityTickSize` and `Status` if not empty, if empty keep as it is. +- Validate `MakerFeeRate` is bigger than `TakerFeeRate`. + +## Derivative market param update proposal + +Derivative market param update is handled by `DerivativeMarketParamUpdateProposal` which consists of `Title`, `Description`, `MarketId`, `InitialMarginRatio`, `MaintenanceMarginRatio`, `MakerFeeRate`, `TakerFeeRate`, `RelayerFeeShareRate`, `MinPriceTickSize`, `MinQuantityTickSize` and `Status`. + +**Steps** + +- `ValidateBasic` for proposal +- Validate Derivative market exists by `p.MarketId` and if not exist, revert +- Reset the params for `InitialMarginRatio`, `MaintenanceMarginRatio`, `MakerFeeRate`, `TakerFeeRate`, `RelayerFeeShareRate`, `MinPriceTickSize`, `MinQuantityTickSize` and `Status` if not empty, if empty keep as it is. +- Validate `MakerFeeRate` is bigger than `TakerFeeRate`. +- Validate `InitialMarginRatio` is bigger than `MaintenanceMarginRatio`. +- Schedule Derivative market param update and update finalization on Endblocker - **Note:** this is due to the orders update for derivative market param update - should make sure nothing panics here. + +## Trading Rewards Campaign Launch Proposal + +**Steps** + +- `ValidateBasic` for proposal +- No existing campaign may exist. +- Campaign start timestamps must be in the future. +- Campaign quote denoms must exist. +- All start timestamps must match the duration. +- Set Campaign Data (Reward Pools, Info, Market Qualifications and Market Point Multipliers) +- Emit `EventTradingRewardCampaignUpdate` + +## Trading Rewards Campaign Update Proposal + +**Steps** + +- `ValidateBasic` for proposal +- All `StartTimestamp` inside `CampaignRewardPoolsUpdates` must equal an existing campaign. +- `CampaignDurationSeconds` cannot be modified, but must match the current campaign. +- `CampaignRewardPoolsUpdates` cannot modify the current campaign and may contain nil values to delete a reward pool. +- Campaign start timestamps from `CampaignRewardPoolsAdditions` must be in the future. +- Any campaign quote denoms must exist. +- Delete Current Campaign Data (Info, Market Qualifications and Market Point Multipliers) +- Set Campaign Data (Info, Market Qualifications and Market Point Multipliers) +- Set Reward Pool Updates +- Set Reward Pool Additions +- Emit `EventTradingRewardCampaignUpdate` + +## Fee Discount Schedule Proposal + +**Steps** + +- `ValidateBasic` for proposal +- If Current Fee Discount Schedule exists, delete it along with Market Qualifications +- Defined quote denoms must exist. +- If a restart of the fee cycle is required (bucket count, bucket duration or quote denoms changed), delete all account fee buckets and restart cycle. +- Set the first fee paid bucket timestamp as the current block time +- Set New Fee Discount Schedule, delete it along with Market Qualifications +- Set New Market Qualifications diff --git a/.gitbook/developers/modules/injective/exchange/05_messages.md b/.gitbook/developers/modules/injective/exchange/05_messages.md new file mode 100644 index 00000000..75ad01c5 --- /dev/null +++ b/.gitbook/developers/modules/injective/exchange/05_messages.md @@ -0,0 +1,443 @@ +--- +sidebar_position: 6 +title: Messages +--- + +# Messages + +In this section we describe the processing of the exchange messages and the corresponding updates to the state. All +created/modified state objects specified by each message are defined within the [State Transitions](./04_state_transitions.md) +section. + +## Msg/Deposit + +`MsgDeposit` defines a SDK message for transferring coins from the sender's bank balance into the subaccount's exchange deposits. + +```go +type MsgDeposit struct { + Sender string + // (Optional) bytes32 subaccount ID to deposit funds into. If empty, the coin will be deposited to the sender's default + // subaccount address. + SubaccountId string + Amount types.Coin +} +``` + +**Fields description** + +- `Sender` field describes the address who deposits. +- `SubaccountId` describes the ID of a sub-account to receive a deposit. +- `Amount` specifies the deposit amount. + +## Msg/Withdraw + +`MsgWithdraw` defines a SDK message for withdrawing coins from a subaccount's deposits to the user's bank balance. + +```go +type MsgWithdraw struct { + Sender string + // bytes32 subaccount ID to withdraw funds from + SubaccountId string + Amount types.Coin +} +``` + +**Fields description** + +- `Sender` field describes the address to receive withdrawal. +- `SubaccountId` describes the ID of a sub-account to withdraw from. +- `Amount` specifies the withdrawal amount. + +## Msg/InstantSpotMarketLaunch + +`MsgInstantSpotMarketLaunch` defines a SDK message for creating a new spot market by paying listing fee without governance. The fee is sent to the community spend pool. + +```go +type MsgInstantSpotMarketLaunch struct { + Sender string + Ticker string + BaseDenom string + QuoteDenom string + MinPriceTickSize math.LegacyDec + MinQuantityTickSize math.LegacyDec + MinNotional math.LegacyDec +} +``` + +**Fields description** + +- `Sender` field describes the creator of this msg. +- `Ticker` describes the ticker for the spot market. +- `BaseDenom` specifies the type of coin to use as the base currency. +- `QuoteDenom` specifies the type of coin to use as the quote currency. +- `MinPriceTickSize` defines the minimum tick size of the order's price. +- `MinQuantityTickSize` defines the minimum tick size of the order's quantity. + +## Msg/InstantPerpetualMarketLaunch + +`MsgInstantPerpetualMarketLaunch` defines a SDK message for creating a new perpetual futures market by paying listing fee without governance. The fee is sent to the community spend pool. + +```go +type MsgInstantPerpetualMarketLaunch struct { + Sender string + Ticker string + QuoteDenom string + OracleBase string + OracleQuote string + OracleScaleFactor uint32 + OracleType types1.OracleType + MakerFeeRate math.LegacyDec + TakerFeeRate math.LegacyDec + InitialMarginRatio math.LegacyDec + MaintenanceMarginRatio math.LegacyDec + MinPriceTickSize math.LegacyDec + MinQuantityTickSize math.LegacyDec + MinNotional math.LegacyDec +} +``` + +**Fields description** + +- `Sender` field describes the creator of this msg. +- `Ticker` field describes the ticker for the derivative market. +- `QuoteDenom` field describes the type of coin to use as the base currency. +- `OracleBase` field describes the oracle base currency. +- `OracleQuote` field describes the oracle quote currency. +- `OracleScaleFactor` field describes the scale factor for oracle prices. +- `OracleType` field describes the oracle type. +- `MakerFeeRate` field describes the trade fee rate for makers on the derivative market. +- `TakerFeeRate` field describes the trade fee rate for takers on the derivative market. +- `InitialMarginRatio` field describes the initial margin ratio for the derivative market. +- `MaintenanceMarginRatio` field describes the maintenance margin ratio for the derivative market. +- `MinPriceTickSize` field describes the minimum tick size of the order's price and margin. +- `MinQuantityTickSize` field describes the minimum tick size of the order's quantity. + +## Msg/InstantExpiryFuturesMarketLaunch + +`MsgInstantExpiryFuturesMarketLaunch` defines a SDK message for creating a new expiry futures market by paying listing fee without governance. The fee is sent to the community spend pool. + +```go +type MsgInstantExpiryFuturesMarketLaunch struct { + Sender string + Ticker string + QuoteDenom string + OracleBase string + OracleQuote string + OracleType types1.OracleType + OracleScaleFactor uint32 + Expiry int64 + MakerFeeRate math.LegacyDec + TakerFeeRate math.LegacyDec + InitialMarginRatio math.LegacyDec + MaintenanceMarginRatio math.LegacyDec + MinPriceTickSize math.LegacyDec + MinQuantityTickSize math.LegacyDec + MinNotional math.LegacyDec +} +``` + +**Fields description** + +- `Sender` field describes the creator of this msg. +- `Ticker` field describes the ticker for the derivative market. +- `QuoteDenom` field describes the type of coin to use as the quote currency. +- `OracleBase` field describes the oracle base currency. +- `OracleQuote` field describes the oracle quote currency. +- `OracleScaleFactor` field describes the scale factor for oracle prices. +- `OracleType` field describes the oracle type. +- `Expiry` field describes the expiration time of the market. +- `MakerFeeRate` field describes the trade fee rate for makers on the derivative market. +- `TakerFeeRate` field describes the trade fee rate for takers on the derivative market. +- `InitialMarginRatio` field describes the initial margin ratio for the derivative market. +- `MaintenanceMarginRatio` field describes the maintenance margin ratio for the derivative market. +- `MinPriceTickSize` field describes the minimum tick size of the order's price and margin. +- `MinQuantityTickSize` field describes the minimum tick size of the order's quantity. + +## Msg/CreateSpotLimitOrder + +`MsgCreateSpotLimitOrder` defines a SDK message for creating a new spot limit order. + +```go +type MsgCreateSpotLimitOrder struct { + Sender string + Order SpotOrder +} +``` + +**Fields description** + +- `Sender` field describes the creator of this msg. +- `Order` field describes the order info. + +## Msg/BatchCreateSpotLimitOrders + +`MsgBatchCreateSpotLimitOrders` defines a SDK message for creating a new batch of spot limit orders. + +```go +type MsgBatchCreateSpotLimitOrders struct { + Sender string + Orders []SpotOrder +} +``` + +**Fields description** + +- `Sender` field describes the creator of this msg. +- `Orders` field describes the orders info. + +## Msg/CreateSpotMarketOrder + +`MsgCreateSpotMarketOrder` defines a SDK message for creating a new spot market order. + +```go +type MsgCreateSpotMarketOrder struct { + Sender string + Order SpotOrder +} +``` + +**Fields description** + +- `Sender` field describes the creator of this msg. +- `Order` field describes the order info. + +## Msg/CancelSpotOrder + +`MsgCancelSpotOrder` defines the message to cancel a spot order. + +```go +type MsgCancelSpotOrder struct { + Sender string + MarketId string + SubaccountId string + OrderHash string + Cid string +} +``` + +**Fields description** + +- `Sender` field describes the creator of this msg. +- `MarketId` field describes the id of the market where the order is placed. +- `SubaccountId` field describes the subaccount id that placed the order. +- `OrderHash` field describes the hash of the order. + +## Msg/BatchCancelSpotOrders + +`MsgBatchCancelSpotOrders` defines the message to cancel the spot orders in batch. + +```go +type MsgBatchCancelSpotOrders struct { + Sender string + Data []OrderData +} +``` + +**Fields description** + +- `Sender` field describes the creator of this msg. +- `Data` field describes the orders to cancel. + +## Msg/CreateDerivativeLimitOrder + +`MsgCreateDerivativeLimitOrder` defines the message to create a derivative limit order. + +```go +type MsgCreateDerivativeLimitOrder struct { + Sender string + Order DerivativeOrder +} +``` + +**Fields description** + +- `Sender` field describes the creator of this msg. +- `Order` field describes the order info. + +## Batch creation of derivative limit orders + +`MsgBatchCreateDerivativeLimitOrders` describes the batch creation of derivative limit orders. + +```go +type MsgBatchCreateDerivativeLimitOrders struct { + Sender string + Orders []DerivativeOrder +} +``` + +**Fields description** + +- `Sender` field describes the creator of this msg. +- `Orders` field describes the orders info. + +## Msg/CreateDerivativeMarketOrder + +`MsgCreateDerivativeMarketOrder` is a message to create a derivative market order. + +```go +// A Cosmos-SDK MsgCreateDerivativeMarketOrder +type MsgCreateDerivativeMarketOrder struct { + Sender string + Order DerivativeOrder +} +``` + +**Fields description** + +- `Sender` field describes the creator of this msg. +- `Order` field describes the order info. + +## Msg/CancelDerivativeOrder + +`MsgCancelDerivativeOrder` is a message to cancel a derivative order. + +```go +type MsgCancelDerivativeOrder struct { + Sender string + MarketId string + SubaccountId string + OrderHash string + OrderMask int32 + Cid string +} +``` + +**Fields description** + +- `Sender` field describes the creator of this msg. +- `MarketId` field describes the id of the market where the order is placed. +- `SubaccountId` field describes the subaccount id that placed the order. +- `OrderHash` field describes the hash of the order. + +## Msg/BatchCancelDerivativeOrders + +`MsgBatchCancelDerivativeOrders` is a message to cancel derivative orders in batch. + +```go +type MsgBatchCancelDerivativeOrders struct { + Sender string + Data []OrderData +} +``` + +**Fields description** + +- `Sender` field describes the creator of this msg. +- `Data` field describes the orders to cancel. + +## Msg/SubaccountTransfer + +`MsgSubaccountTransfer` is a message to transfer balance between sub-accounts. + +```go +type MsgSubaccountTransfer struct { + Sender string + SourceSubaccountId string + DestinationSubaccountId string + Amount types.Coin +} +``` + +**Fields description** + +- `Sender` field describes the creator of this msg. +- `SourceSubaccountId` field describes a source subaccount to send coins from. +- `DestinationSubaccountId` field describes a destination subaccount to send coins to. +- `Amount` field describes the amount of coin to send. + +## Msg/ExternalTransfer + +`MsgExternalTransfer` is a message to transfer balance from one of source account to external sub-account. + +```go +type MsgExternalTransfer struct { + Sender string + SourceSubaccountId string + DestinationSubaccountId string + Amount types.Coin +} +``` + +**Fields description** + +- `Sender` field describes the creator of this msg. +- `SourceSubaccountId` field describes a source subaccount to send coins from. +- `DestinationSubaccountId` field describes a destination subaccount to send coins to. +- `Amount` field describes the amount of coin to send. + +## Msg/LiquidatePosition + +`MsgLiquidatePosition` describes a message to liquidate an account's position + +```go +type MsgLiquidatePosition struct { + Sender string + SubaccountId string + MarketId string + // optional order to provide for liquidation + Order *DerivativeOrder +} +``` + +**Fields description** + +- `Sender` field describes the creator of this msg. +- `SubaccountId` field describes a subaccount to receive liquidation amount. +- `MarketId` field describes a market where the position is in. +- `Order` field describes the order info. + +## Msg/IncreasePositionMargin + +`MsgIncreasePositionMargin` describes a message to increase margin of an account. + +```go +// A Cosmos-SDK MsgIncreasePositionMargin +type MsgIncreasePositionMargin struct { + Sender string + SourceSubaccountId string + DestinationSubaccountId string + MarketId string + // amount defines the amount of margin to add to the position + Amount math.LegacyDec +} +``` + +**Fields description** + +- `Sender` field describes the creator of this msg. +- `SourceSubaccountId` field describes a source subaccount to send balance from. +- `DestinationSubaccountId` field describes a destination subaccount to receive balance. +- `MarketId` field describes a market where positions are in. +- `Amount` field describes amount to increase. + + + +## Msg/BatchUpdateOrders + +`MsgBatchUpdateOrders` allows for the atomic cancellation and creation of spot and derivative limit orders, along with a new order cancellation mode. Upon execution, order cancellations (if any) occur first, followed by order creations (if any). + +```go +// A Cosmos-SDK MsgBatchUpdateOrders +// SubaccountId only used for the spot_market_ids_to_cancel_all and derivative_market_ids_to_cancel_all. +type MsgBatchUpdateOrders struct { + Sender string + SubaccountId string + SpotMarketIdsToCancelAll []string + DerivativeMarketIdsToCancelAll []string + SpotOrdersToCancel []OrderData + DerivativeOrdersToCancel []OrderData + SpotOrdersToCreate []SpotOrder + DerivativeOrdersToCreate []DerivativeOrder +} +``` + +**Fields description** + +- `Sender` field describes the creator of this msg. +- `SubaccountId` field describes the sender's sub-account ID. +- `SpotMarketIdsToCancelAll` field describes a list of spot market IDs for which the sender wants to cancel all open orders. +- `DerivativeMarketIdsToCancelAll` field describes a list of derivative market IDs for which the sender wants to cancel all open orders. +- `SpotOrdersToCancel` field describes specific spot orders the sender wants to cancel. +- `DerivativeOrdersToCancel` field describes specific derivative orders the sender wants to cancel. +- `SpotOrdersToCreate` field describes spot orders the sender wants to create. +- `DerivativeOrdersToCreate` field describes derivative orders the sender wants to create. diff --git a/.gitbook/developers/modules/injective/exchange/06_proposals.md b/.gitbook/developers/modules/injective/exchange/06_proposals.md new file mode 100644 index 00000000..b0e1a33a --- /dev/null +++ b/.gitbook/developers/modules/injective/exchange/06_proposals.md @@ -0,0 +1,404 @@ +--- +sidebar_position: 7 +title: Governance Proposals +--- + +# Governance Proposals + +## Proposal/SpotMarketParamUpdate + +`SpotMarketParamUpdateProposal` defines an SDK message to propose an update of spot market params. + +```go +type SpotMarketParamUpdateProposal struct { + Title string + Description string + MarketId string + MakerFeeRate *math.LegacyDec + TakerFeeRate *math.LegacyDec + RelayerFeeShareRate *math.LegacyDec + MinPriceTickSize *math.LegacyDec + MinQuantityTickSize *math.LegacyDec + MinNotional *math.LegacyDec + Status MarketStatus +} +``` + +**Fields description** + +- `Title` describes the title of the proposal. +- `Description` describes the description of the proposal. +- `MarketId` describes the id of the market to change params. +- `MakerFeeRate` describes the target fee rate for makers. +- `TakerFeeRate` describes the target fee rate for takers. +- `RelayerFeeShareRate` describes the relayer fee share rate. +- `MinPriceTickSize` defines the minimum tick size of the order's price. +- `MinQuantityTickSize` defines the minimum tick size of the order's quantity. +- `Status` describes the target status of the market. + +## Proposal/ExchangeEnable + +`ExchangeEnableProposal` defines a message to propose enable of specific exchange type. + +```go +type ExchangeEnableProposal struct { + Title string + Description string + ExchangeType ExchangeType +} +``` + +**Fields description** + +- `Title` describes the title of the proposal. +- `Description` describes the description of the proposal. +- `ExchangeType` describes the type of exchange, spot or derivatives. + + +## Proposal/BatchExchangeModification + +`BatchExchangeModificationProposal` defines a message to batch multiple proposals in the exchange module. + +```go +type BatchExchangeModificationProposal struct { + Title string + Description string + SpotMarketParamUpdateProposal []*SpotMarketParamUpdateProposal + DerivativeMarketParamUpdateProposal []*DerivativeMarketParamUpdateProposal + SpotMarketLaunchProposal []*SpotMarketLaunchProposal + PerpetualMarketLaunchProposal []*PerpetualMarketLaunchProposal + ExpiryFuturesMarketLaunchProposal []*ExpiryFuturesMarketLaunchProposal + TradingRewardCampaignUpdateProposal *TradingRewardCampaignUpdateProposal +} +``` + +**Fields description** + +- `Title` describes the title of the proposal. +- `Description` describes the description of the proposal. +- `SpotMarketParamUpdateProposal` describes the SpotMarketParamUpdateProposal. +- `DerivativeMarketParamUpdateProposal` describes the DerivativeMarketParamUpdateProposal. +- `SpotMarketLaunchProposal` describes the SpotMarketLaunchProposal. +- `PerpetualMarketLaunchProposal` describes the PerpetualMarketLaunchProposal. +- `ExpiryFuturesMarketLaunchProposal` describes the ExpiryFuturesMarketLaunchProposal. +- `TradingRewardCampaignUpdateProposal` describes the TradingRewardCampaignUpdateProposal. + + +## Proposal/SpotMarketLaunch + +`SpotMarketLaunchProposal` defines an SDK message for proposing a new spot market through governance. + +```go +type SpotMarketLaunchProposal struct { + Title string + Description string + Ticker string + BaseDenom string + QuoteDenom string + MinPriceTickSize math.LegacyDec + MinQuantityTickSize math.LegacyDec + MinNotional math.LegacyDec + MakerFeeRate math.LegacyDec + TakerFeeRate math.LegacyDec +} +``` + +**Fields description** + +- `Title` describes the title of the proposal. +- `Description` describes the description of the proposal. +- `Ticker` describes the ticker for the spot market. +- `BaseDenom` specifies the type of coin to use as the base currency. +- `QuoteDenom` specifies the type of coin to use as the quote currency. +- `MinPriceTickSize` defines the minimum tick size of the order's price. +- `MinQuantityTickSize` defines the minimum tick size of the order's quantity. +- `MakerFeeRate` field describes the trade fee rate for makers on the derivative market. +- `TakerFeeRate` field describes the trade fee rate for takers on the derivative market. + +## Proposal/PerpetualMarketLaunch + +`PerpetualMarketLaunchProposal` defines an SDK message for proposing a new perpetual futures market through governance. + +```go +type PerpetualMarketLaunchProposal struct { + Title string + Description string + Ticker string + QuoteDenom string + OracleBase string + OracleQuote string + OracleScaleFactor uint32 + OracleType types1.OracleType + InitialMarginRatio math.LegacyDec + MaintenanceMarginRatio math.LegacyDec + MakerFeeRate math.LegacyDec + TakerFeeRate math.LegacyDec + MinPriceTickSize math.LegacyDec + MinQuantityTickSize math.LegacyDec +} +``` + +**Fields description** + +- `Title` describes the title of the proposal. +- `Description` describes the description of the proposal. +- `Ticker` field describes the ticker for the derivative market. +- `QuoteDenom` field describes the type of coin to use as the base currency. +- `OracleBase` field describes the oracle base currency. +- `OracleQuote` field describes the oracle quote currency. +- `OracleScaleFactor` field describes the scale factor for oracle prices. +- `OracleType` field describes the oracle type. +- `MakerFeeRate` field describes the trade fee rate for makers on the derivative market. +- `TakerFeeRate` field describes the trade fee rate for takers on the derivative market. +- `InitialMarginRatio` field describes the initial margin ratio for the derivative market. +- `MaintenanceMarginRatio` field describes the maintenance margin ratio for the derivative market. +- `MinPriceTickSize` field describes the minimum tick size of the order's price and margin. +- `MinQuantityTickSize` field describes the minimum tick size of the order's quantity. + +## Expiry futures market launch proposal + +```go +// ExpiryFuturesMarketLaunchProposal defines an SDK message for proposing a new expiry futures market through governance +type ExpiryFuturesMarketLaunchProposal struct { + Title string + Description string + // Ticker for the derivative market. + Ticker string + // type of coin to use as the quote currency + QuoteDenom string + // Oracle base currency + OracleBase string + // Oracle quote currency + OracleQuote string + // Scale factor for oracle prices. + OracleScaleFactor uint32 + // Oracle type + OracleType types1.OracleType + // Expiration time of the market + Expiry int64 + // initial_margin_ratio defines the initial margin ratio for the derivative market + InitialMarginRatio math.LegacyDec + // maintenance_margin_ratio defines the maintenance margin ratio for the derivative market + MaintenanceMarginRatio math.LegacyDec + // maker_fee_rate defines the exchange trade fee for makers for the derivative market + MakerFeeRate math.LegacyDec + // taker_fee_rate defines the exchange trade fee for takers for the derivative market + TakerFeeRate math.LegacyDec + // min_price_tick_size defines the minimum tick size of the order's price and margin + MinPriceTickSize math.LegacyDec + // min_quantity_tick_size defines the minimum tick size of the order's quantity + MinQuantityTickSize math.LegacyDec + // min_notional defines the minimum notional (in quote asset) required for orders in the market + MinNotional math.LegacyDec +} +``` + +**Fields description** + +- `Title` describes the title of the proposal. +- `Description` describes the description of the proposal. +- `Ticker` field describes the ticker for the derivative market. +- `QuoteDenom` field describes the type of coin to use as the quote currency. +- `OracleBase` field describes the oracle base currency. +- `OracleQuote` field describes the oracle quote currency. +- `OracleScaleFactor` field describes the scale factor for oracle prices. +- `OracleType` field describes the oracle type. +- `Expiry` field describes the expiration time of the market. +- `MakerFeeRate` field describes the trade fee rate for makers on the derivative market. +- `TakerFeeRate` field describes the trade fee rate for takers on the derivative market. +- `InitialMarginRatio` field describes the initial margin ratio for the derivative market. +- `MaintenanceMarginRatio` field describes the maintenance margin ratio for the derivative market. +- `MinPriceTickSize` field describes the minimum tick size of the order's price and margin. +- `MinQuantityTickSize` field describes the minimum tick size of the order's quantity. + +## Binary options market launch proposal + +```go +type BinaryOptionsMarketLaunchProposal struct { + Title string + Description string + // Ticker for the derivative contract. + Ticker string + // Oracle symbol + OracleSymbol string + // Oracle Provider + OracleProvider string + // Oracle type + OracleType types1.OracleType + // Scale factor for oracle prices. + OracleScaleFactor uint32 + // expiration timestamp + ExpirationTimestamp int64 + // expiration timestamp + SettlementTimestamp int64 + // admin of the market + Admin string + // Address of the quote currency denomination for the binary options contract + QuoteDenom string + // maker_fee_rate defines the maker fee rate of a binary options market + MakerFeeRate math.LegacyDec + // taker_fee_rate defines the taker fee rate of a derivative market + TakerFeeRate math.LegacyDec + // min_price_tick_size defines the minimum tick size that the price and margin required for orders in the market + MinPriceTickSize math.LegacyDec + // min_quantity_tick_size defines the minimum tick size of the quantity required for orders in the market + MinQuantityTickSize math.LegacyDec +} +``` + +## Binary options market param update + +```go +type BinaryOptionsMarketParamUpdateProposal struct { + Title string + Description string + MarketId string + // maker_fee_rate defines the exchange trade fee for makers for the derivative market + MakerFeeRate *math.LegacyDec + // taker_fee_rate defines the exchange trade fee for takers for the derivative market + TakerFeeRate *math.LegacyDec + // relayer_fee_share_rate defines the relayer fee share rate for the derivative market + RelayerFeeShareRate *math.LegacyDec + // min_price_tick_size defines the minimum tick size of the order's price and margin + MinPriceTickSize *math.LegacyDec + // min_quantity_tick_size defines the minimum tick size of the order's quantity + MinQuantityTickSize *math.LegacyDec + // min_notional defines the minimum notional for orders + MinNotional *math.LegacyDec + // expiration timestamp + ExpirationTimestamp int64 + // expiration timestamp + SettlementTimestamp int64 + // new price at which market will be settled + SettlementPrice *math.LegacyDec + // admin of the market + Admin string + Status MarketStatus + OracleParams *ProviderOracleParams +} +``` + +## Proposal/DerivativeMarketParamUpdate + +```go +type OracleParams struct { + // Oracle base currency + OracleBase string + // Oracle quote currency + OracleQuote string + // Scale factor for oracle prices. + OracleScaleFactor uint32 + // Oracle type + OracleType types1.OracleType +} + +type DerivativeMarketParamUpdateProposal struct { + Title string + Description string + MarketId string + InitialMarginRatio *math.LegacyDec + MaintenanceMarginRatio *math.LegacyDec + MakerFeeRate *math.LegacyDec + TakerFeeRate *math.LegacyDec + RelayerFeeShareRate *math.LegacyDec + MinPriceTickSize *math.LegacyDec + MinQuantityTickSize *math.LegacyDec + MinNotional *math.LegacyDec + HourlyInterestRate *math.LegacyDec + HourlyFundingRateCap *math.LegacyDec + Status MarketStatus + OracleParams *OracleParams +} +``` + +**Fields description** + +- `Title` describes the title of the proposal. +- `Description` describes the description of the proposal. +- `MarketId` describes the id of the market to change params. +- `InitialMarginRatio` describes the target initial margin ratio. +- `MaintenanceMarginRatio` describes the target maintenance margin ratio. +- `MakerFeeRate` describes the target fee rate for makers. +- `TakerFeeRate` describes the target fee rate for takers. +- `RelayerFeeShareRate` describes the relayer fee share rate. +- `MinPriceTickSize` defines the minimum tick size of the order's price. +- `MinQuantityTickSize` defines the minimum tick size of the order's quantity. +- `Status` describes the target status of the market. +- `OracleParams` describes the new oracle parameters. + +## Proposal/TradingRewardCampaignLaunch + +`TradingRewardCampaignLaunchProposal` defines an SDK message for proposing to launch a new trading reward campaign. + +```go +type TradingRewardCampaignLaunchProposal struct { + Title string + Description string + CampaignInfo *TradingRewardCampaignInfo + CampaignRewardPools []*CampaignRewardPool +} +``` + +**Fields description** + +- `Title` describes the title of the proposal. +- `Description` describes the description of the proposal. +- `CampaignInfo` describes the CampaignInfo. +- `CampaignRewardPools` describes the CampaignRewardPools. + +## Proposal/TradingRewardCampaignUpdate + +`TradingRewardCampaignUpdateProposal` defines an SDK message for proposing to update an existing trading reward campaign. + +```go +type TradingRewardCampaignUpdateProposal struct { + Title string + Description string + CampaignInfo *TradingRewardCampaignInfo + CampaignRewardPoolsAdditions []*CampaignRewardPool + CampaignRewardPoolsUpdates []*CampaignRewardPool +} +``` + +- `Title` describes the title of the proposal. +- `Description` describes the description of the proposal. +- `CampaignRewardPoolsAdditions` describes the CampaignRewardPoolsAdditions. +- `CampaignRewardPoolsUpdates` describes the CampaignRewardPoolsUpdates. + +## Proposal/FeeDiscount + +`FeeDiscountProposal` defines an SDK message for proposing to launch or update a fee discount schedule. + +```go +type FeeDiscountProposal struct { + Title string + Description string + Schedule *FeeDiscountSchedule +} +``` + +- `Title` describes the title of the proposal. +- `Description` describes the description of the proposal. +- `Schedule` describes the Fee discount schedule. + +## Proposal/TradingRewardPendingPointsUpdate + +`TradingRewardPendingPointsUpdateProposal` defines an SDK message to update reward points for certain addresses during the vesting period. + +```go +type TradingRewardPendingPointsUpdateProposal struct { + Title string + Description string + PendingPoolTimestamp int64 + RewardPointUpdates *[]RewardPointUpdate +} +``` + +**Fields description** + +- `Title` describes the title of the proposal. +- `Description` describes the description of the proposal. +- `PendingPoolTimestamp` describes timestamp of the pending pool. +- `RewardPointUpdates` describes the RewardPointUpdate. + + diff --git a/.gitbook/developers/modules/injective/exchange/07_begin_block.md b/.gitbook/developers/modules/injective/exchange/07_begin_block.md new file mode 100644 index 00000000..6d0f1bf8 --- /dev/null +++ b/.gitbook/developers/modules/injective/exchange/07_begin_block.md @@ -0,0 +1,74 @@ +--- +sidebar_position: 8 +title: BeginBlocker +--- + +# BeginBlocker + +The exchange [BeginBlocker](https://docs.cosmos.network/master/building-modules/beginblock-endblock.html) runs at the start of every block in our defined order as the last module. + +### 1. Process Hourly Fundings + +1. Check the first to receive funding payments market. If the first market is not yet due to receive fundings (funding timestamp not reached), skip all fundings. +2. Otherwise go through each market one by one: + 1. Skip market if funding timestamp is not yet reached. + 2. Compute funding as `twap + hourlyInterestRate` where $\mathrm{twap = \frac{cumulativePrice}{timeInterval * 24}}$ with $\mathrm{timeInterval = lastTimestamp - startingTimestamp}$. The `cumulativePrice` is previously calculated with every trade as the time weighted difference between VWAP and mark price: $\mathrm{\frac{VWAP - markPrice}{markPrice} * timeElapsed}$. + 3. Cap funding if required to the maximum defined by `HourlyFundingRateCap`. + 4. Set next funding timestamp. + 5. Emit `EventPerpetualMarketFundingUpdate`. + +### 2. Process Markets Scheduled to Settle + +For each market in the list of markets to settle: + +1. Settle market with zero closing fee and current mark price. + 1. Run socialized loss. This will calculate the total amount of funds missing in all of the market and then reduce the payout proportionally for each profitable position. For example a market with a total amount of 100 USDT missing funds and 10 profitable positions with identical quantity would result in a payout reduction of 10 USDT for each of the positions. + 2. All positions are forcibly closed. +2. Delete from storage. + +### 3. Process Matured Expiry Future Markets + +For each time expiry market, iterate through starting with first to expire: + +1. If market is premature, stop iteration. +2. If market is disabled, delete market from storage and go to next market. +3. Get cumulative price for the market from oracle. +4. If market is starting maturation, store `startingCumulativePrice` for market. +5. If market is matured, calculate the settlement price as $\mathrm{twap = (currentCumulativePrice - startingCumulativePrice) / twapWindow}$ and add to list of markets to be settled. +6. Settle all matured markets with defined closing fee and settlement price. The procedure is identical to the previous process of settling (see above). Note that the socialized loss is an optional step. In the regular case a market will not require any socialized loss. +7. Delete any settled markets from storage. + +### 4. Process Trading Rewards + +1. Check if the current trading rewards campaign is finished. +2. If the campaign is finished, distribute reward tokens to eligible traders. + + 1. Compute the available reward for each reward denom as `min(campaignRewardTokens, communityPoolRewardTokens)` + 2. Get the trader rewards based on the trading share from the respective trader calculated as `accountPoints * totalReward / totalTradingRewards`. + 3. Send reward tokens from community pool to trader. + 4. Reset total and all account trading reward points. + 5. Delete the current campaign ending timestamp. + +3. If a new campaign is launched, set the next current campaign ending timestamp as `CurrentCampaignStartTimestamp + CampaignDurationSeconds`. +4. If no current campaign is ongoing and no new campaigns are launched, delete campaign info, market qualifications and market multipliers from storage. + +### 5. Process Fee Discount Buckets + +- If the oldest bucket's end timestamp is older than the `block.timestamp - bucketCount * bucketDuration`: + - Prune the oldest bucket + - Iterate over all `bucketStartTimestamp + account → FeesPaidAmount`: + - Subtract the `FeesPaidAmount` from each account's `totalPastBucketFeesPaidAmount` + - Delete the account's `account → {tier, TTL timestamp}`. Note that this technically isn't necessary for correctness since we check the TTL timestamps in the Endblocker but is a state pruning strategy. + - Update the `CurrBucketStartTimestamp ← CurrBucketStartTimestamp + BucketDuration`. + +``` +bucket count 5 and with 100 sec duration + +120 220 320 420 520 220 320 420 520 620 + | | | | | | --> | | | | | | + 1 2 3 4 5 1 2 3 4 5 + +Current block.timestamp of 621: +621 - 5*100 = 121 +120 is older than 121, so prune the last bucket and create a new bucket. +``` diff --git a/.gitbook/developers/modules/injective/exchange/08_end_block.md b/.gitbook/developers/modules/injective/exchange/08_end_block.md new file mode 100644 index 00000000..b536c118 --- /dev/null +++ b/.gitbook/developers/modules/injective/exchange/08_end_block.md @@ -0,0 +1,78 @@ +--- +sidebar_position: 9 +title: EndBlocker +--- + +# EndBlocker + +The exchange [EndBlocker](https://docs.cosmos.network/master/building-modules/beginblock-endblock.html) runs at the end of every block in our defined order after governance and staking modules, and before the peggy, auction and insurance modules. It is particularly important that the governance module's EndBlocker runs before the exchange module's. + +- Stage 0: Determine the fee discounts for all the accounts that have placed an order in a fee-discount supported market in the current block. +- Stage 1: Process all market orders in parallel - spot market and derivative market orders + - Markets orders are executed against the resting orderbook at the time of the beginning of the block. + - Note that market orders may be invalidated in the EndBlocker due to subsequently incoming oracle updates or limit order cancels. +- Stage 2: Persist market order execution to store + + - Spot Markets + - Persist Spot market order execution data + - Emit relevant events + - `EventBatchSpotExecution` + - Derivative Markets + - Persist Derivative market order execution data + - Emit relevant events + - `EventBatchDerivativeExecution` + - `EventCancelDerivativeOrder` + +- Stage 3: Process all limit orders in parallel - spot and derivative limit orders that are matching + - Limit orders are executed in a frequent batch auction mode to ensure fair matching prices, see below for details. + - Note that vanilla limit orders may be invalidated in the EndBlocker due to subsequently incoming oracle updates and reduce-only limit orders may be invalidated in the EndBlocker due to subsequently incoming orders which flip a position. +- Stage 4: Persist limit order matching execution + new limit orders to store + + - Spot Markets + - Persist Spot Matching execution data + - Emit relevant events + - `EventNewSpotOrders` + - `EventBatchSpotExecution` + - Derivative Markets + - Persist Derivative Matching execution data + - Emit relevant events + - `EventNewDerivativeOrders` + - `EventBatchDerivativeExecution` + - `EventCancelDerivativeOrder` + +- Stage 5: Persist perpetual market funding info +- Stage 6: Persist trading rewards total and account points. +- Stage 7: Persist new fee discount data, i.e., new fees paid additions and new account tiers. +- Stage 8: Process Spot Market Param Updates if any +- Stage 9: Process Derivative Market Param Updates if any +- Stage 10: Emit Deposit and Position Update Events + +## Order Matching: Frequent Batch Auction (FBA) + +The goal of FBA is to prevent any [Front-Running](https://www.investopedia.com/terms/f/frontrunning.asp). This is achieved by calculating a single clearing price for all matched orders in a given block. + +1. Market orders are filled first against the resting orderbook at the time of the beginning of the block. While the resting orders are filled at their respective order prices, the market orders are all filled at a uniform clearing price with the same mechanism as limit orders. For an example for the market order matching in FBA fashion, look at the API docs [here](https://api.injective.exchange/#examples-market-order-matching). +2. Likewise limit orders are filled at a uniform clearing price. New limit orders are combined with the resting orderbook and orders are matched as long as there is still negative spread. The clearing price is either + +a. the best buy/sell order in case the last matched order crosses the spread in that direction, the, +b. the mark price in case of derivative markets and the mark price is between the last matched orders or +c. the mid price. + +For an example for the limit order matching in FBA fashion, look at the API docs [here](https://api.injective.exchange/#examples-limit-order-matching). + +## Single Trade Calculations + +- For a qualifying market compute the fee discounts: + - Fee discounts are applied as refunds and the fee paid contribution is recorded. + - Relayer fees are applied AFTER the fee discount is taken. +- For a qualifying market compute the trade reward point contribution: + - Obtain the FeePaidMultiplier for maker and taker. + - Compute the trade reward point contribution. + - Trade reward points are based on the discounted trading fee. +- Calculate fee refunds (or charges). There are several reasons why an order might get a fee refund after matching: + 1. It's a limit order which is not matched or only partially matched which means it will become a resting limit order and switch from a taker to maker fee. The refund is `UnmatchedQuantity * (TakerFeeRate - MakerFeeRate)`. Note that for negative maker fees, we refund the `UnmatchedQuantity * TakerFeeRate` instead. + 2. Fee discounts are applied. We refund the difference between the original fee paid and the fee paid after the discount. + 3. The order is matched at a better price resulting in a different fee. + - For buy orders a better price means a lower price and thus a lower fee. We refund the fee price delta. + - For sell orders a better price means a higher price and thus a higher fee. We charge the fee price delta. + - You can find the respective code with an example [here](https://github.com/InjectiveLabs/injective-core/blob/80dbc4e9558847ff0354be5d19a4d8b0bba7da96/injective-chain/modules/exchange/keeper/derivative_orders_processor.go#L502). Please check the master branch for the latest chain code. diff --git a/.gitbook/developers/modules/injective/exchange/09_events.md b/.gitbook/developers/modules/injective/exchange/09_events.md new file mode 100644 index 00000000..09008054 --- /dev/null +++ b/.gitbook/developers/modules/injective/exchange/09_events.md @@ -0,0 +1,169 @@ +--- +sidebar_position: 10 +title: Events +--- + +# Events + +The exchange module emits the following events: + +```proto +message EventBatchSpotExecution { + string market_id = 1; + bool is_buy = 2; + ExecutionType executionType = 3; + repeated TradeLog trades = 4; +} + +message EventBatchDerivativeExecution { + string market_id = 1; + bool is_buy = 2; + bool is_liquidation = 3; + // nil for time expiry futures + string cumulative_funding = 4 [ + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", + (gogoproto.nullable) = true + ]; + ExecutionType executionType = 5; + repeated DerivativeTradeLog trades = 6; +} + +message EventLostFundsFromLiquidation { + string market_id = 1; + bytes subaccount_id = 2; + string lost_funds_from_available_during_payout = 3 [ + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", + (gogoproto.nullable) = false + ]; + string lost_funds_from_order_cancels = 4 [ + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", + (gogoproto.nullable) = false + ]; +} + +message EventBatchDerivativePosition { + string market_id = 1; + repeated SubaccountPosition positions = 2; +} + +message EventDerivativeMarketPaused { + string market_id = 1; + string settle_price = 2; + string total_missing_funds = 3; + string missing_funds_rate = 4; +} + +message EventBinaryOptionsMarketUpdate { + BinaryOptionsMarket market = 1 [ + (gogoproto.nullable) = false + ]; +} + +message EventNewSpotOrders { + string market_id = 1; + repeated SpotLimitOrder buy_orders = 2; + repeated SpotLimitOrder sell_orders = 3; +} + +message EventNewDerivativeOrders { + string market_id = 1; + repeated DerivativeLimitOrder buy_orders = 2; + repeated DerivativeLimitOrder sell_orders = 3; +} + +message EventCancelSpotOrder { + string market_id = 1; + SpotLimitOrder order = 2 [ + (gogoproto.nullable) = false + ]; +} + +message EventSpotMarketUpdate { + SpotMarket market = 1 [ + (gogoproto.nullable) = false + ]; +} + +message EventPerpetualMarketUpdate { + DerivativeMarket market = 1 [ + (gogoproto.nullable) = false + ]; + PerpetualMarketInfo perpetual_market_info = 2[ + (gogoproto.nullable) = true + ]; + PerpetualMarketFunding funding = 3[ + (gogoproto.nullable) = true + ]; +} + +message EventExpiryFuturesMarketUpdate { + DerivativeMarket market = 1 [ + (gogoproto.nullable) = false + ]; + ExpiryFuturesMarketInfo expiry_futures_market_info = 3[ + (gogoproto.nullable) = true + ]; +} + +message EventPerpetualMarketFundingUpdate { + string market_id = 1; + PerpetualMarketFunding funding = 2[ + (gogoproto.nullable) = false + ]; + bool is_hourly_funding = 3; + string funding_rate = 4 [ + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", + (gogoproto.nullable) = true + ]; + string mark_price = 5 [ + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", + (gogoproto.nullable) = true + ]; +} + +message EventSubaccountDeposit { + string src_address = 1; + bytes subaccount_id = 2; + cosmos.base.v1beta1.Coin amount = 3 [(gogoproto.nullable) = false]; +} + +message EventSubaccountWithdraw { + bytes subaccount_id = 1; + string dst_address = 2; + cosmos.base.v1beta1.Coin amount = 3 [(gogoproto.nullable) = false]; +} + +message EventSubaccountBalanceTransfer { + string src_subaccount_id = 1; + string dst_subaccount_id = 2; + cosmos.base.v1beta1.Coin amount = 3 [(gogoproto.nullable) = false]; +} + +message EventBatchDepositUpdate { + repeated DepositUpdate deposit_updates = 1; +} + +message EventCancelDerivativeOrder { + string market_id = 1; + bool isLimitCancel = 2; + DerivativeLimitOrder limit_order = 3 [ + (gogoproto.nullable) = true + ]; + DerivativeMarketOrderCancel market_order_cancel = 4 [ + (gogoproto.nullable) = true + ]; +} + +message EventFeeDiscountSchedule { + FeeDiscountSchedule schedule = 1; +} + +message EventTradingRewardCampaignUpdate { + TradingRewardCampaignInfo campaign_info = 1; + repeated CampaignRewardPool campaign_reward_pools = 2; +} + +message EventTradingRewardDistribution { + repeated AccountRewards account_rewards = 1; +} +``` diff --git a/.gitbook/developers/modules/injective/exchange/10_params.md b/.gitbook/developers/modules/injective/exchange/10_params.md new file mode 100644 index 00000000..8dcdf5d1 --- /dev/null +++ b/.gitbook/developers/modules/injective/exchange/10_params.md @@ -0,0 +1,35 @@ +--- +sidebar_position: 11 +title: Parameters +--- + +# Parameters + +The exchange module contains the following parameters: + +| Key | Type | Example | +| ------------------------------------------- | -------- | ------------------ | +| SpotMarketInstantListingFee | sdk.Coin | 100inj | +| DerivativeMarketInstantListingFee | sdk.Coin | 1000inj | +| DefaultSpotMakerFeeRate | math.LegacyDec | 0.1% | +| DefaultSpotTakerFeeRate | math.LegacyDec | 0.2% | +| DefaultDerivativeMakerFeeRate | math.LegacyDec | 0.1% | +| DefaultDerivativeTakerFeeRate | math.LegacyDec | 0.2% | +| DefaultInitialMarginRatio | math.LegacyDec | 5% | +| DefaultMaintenanceMarginRatio | math.LegacyDec | 2% | +| DefaultFundingInterval | int64 | 3600 | +| FundingMultiple | int64 | 3600 | +| RelayerFeeShareRate | math.LegacyDec | 40% | +| DefaultHourlyFundingRateCap | math.LegacyDec | 0.0625% | +| DefaultHourlyInterestRate | math.LegacyDec | 0.000416666% | +| MaxDerivativeOrderSideCount | int64 | 20 | +| InjRewardStakedRequirementThreshold | sdk.Coin | 25inj | +| TradingRewardsVestingDuration | int64 | 1209600 | +| LiquidatorRewardShareRate | math.LegacyDec | 0.05% | +| BinaryOptionsMarketInstantListingFee | sdk.Coin | 10inj | +| AtomicMarketOrderAccessLevel | string | SmartContractsOnly | +| SpotAtomicMarketOrderFeeMultiplier | math.LegacyDec | 2x | +| DerivativeAtomicMarketOrderFeeMultiplier | math.LegacyDec | 2x | +| BinaryOptionsAtomicMarketOrderFeeMultiplier | math.LegacyDec | 2x | +| MinimalProtocolFeeRate | math.LegacyDec | 0.00001% | +| IsInstantDerivativeMarketLaunchEnabled | bool | false | diff --git a/.gitbook/developers/modules/injective/exchange/11_msg_privileged_execute_contract.md b/.gitbook/developers/modules/injective/exchange/11_msg_privileged_execute_contract.md new file mode 100644 index 00000000..16995856 --- /dev/null +++ b/.gitbook/developers/modules/injective/exchange/11_msg_privileged_execute_contract.md @@ -0,0 +1,127 @@ +--- +sidebar_position: 12 +title: MsgPrivilegedExecuteContract +--- + +# MsgPrivilegedExecuteContract + +MsgPrivilegedExecuteContract defines a method for executing a Cosmwasm contract from the exchange module with privileged capabilities. + +```go +type MsgPrivilegedExecuteContract struct { + Sender string + // funds defines the user's bank coins used to fund the execution (e.g. 100inj). + Funds github_com_cosmos_cosmos_sdk_types.Coins + // contract_address defines the contract address to execute + ContractAddress string + // data defines the call data used when executing the contract + Data string +} + +``` + +**Fields description** + +- `Sender` describes the creator of this msg. +- `Funds` defines the user's bank coins used to fund the execution (e.g. 100inj). +- `ContractAddress` defines the contract address to execute. +- `Data` defines the call data used when executing the contract, see further details below. + +**Contract Interface** + +If you want to enable privileged actions on your contract, you must implement the following execute method: + +```rust +InjectiveExec { + origin: String, + name: String, + args: MyArgs, +} +``` + +- The `origin` field is the address of the user who sent the privileged action. You don't have to set this field yourself, it will be set by the exchange module. +- The `name` field is the name of the privileged action. You can define these to be whatever you want. +- The `args` field is the arguments of the privileged action. You can define these to be whatever you want. + +A complete definition of the Data string in Golang is: + +```go +type ExecutionData struct { + Origin string `json:"origin"` + Name string `json:"name"` + MyArgs interface{} `json:"args"` +} +``` + +A user can then call the privileged action by sending a `MsgPrivilegedExecuteContract` with the following data: + +```json +{ + sender: "inj...", + funds: "1000000000000000000inj", + contract_address: "inj...", + data: { + origin: "inj...", + name: "my_privileged_action", + args: { + ... + } + } +} +``` + +**Supported Privileged Actions** + +There are currently two supported privileged actions: + +```go +type PrivilegedAction struct { + SyntheticTrade *SyntheticTradeAction `json:"synthetic_trade"` + PositionTransfer *PositionTransfer `json:"position_transfer"` +} +``` + +These privileged actions must be set inside the Cosmwasm response data field, e.g.: + +```rust +let privileged_action = PrivilegedAction { + synthetic_trade: None, + position_transfer: position_transfer_action, +}; +response = response.set_data(to_binary(&privileged_action)?); +``` + +**PositionTransfer** + +The position transfer allows a contract to transfer a derivative position from its own subaccount to a user's subaccount. The position may not be liquidable. Solely the receiver pays a taker trading fee deducted from his balances. + +Currently only transfers from the contract's subaccount to a user's subaccount are supported. + +```go +type PositionTransfer struct { + MarketID common.Hash `json:"market_id"` + SourceSubaccountID common.Hash `json:"source_subaccount_id"` + DestinationSubaccountID common.Hash `json:"destination_subaccount_id"` + Quantity math.LegacyDec `json:"quantity"` +} +``` + +**SyntheticTrade** + +The synthetic trade allows a contract to execute a synthetic trade on behalf of a user for derivative markets. This is not touching the orderbook and is purely a synthetic trade. Taker trading fees still apply. The subaccount ids must be set to the contract's subaccount id and the user's subaccount id. + +```go +type SyntheticTradeAction struct { + UserTrades []*SyntheticTrade `json:"user_trades"` + ContractTrades []*SyntheticTrade `json:"contract_trades"` +} + +type SyntheticTrade struct { + MarketID common.Hash `json:"market_id"` + SubaccountID common.Hash `json:"subaccount_id"` + IsBuy bool `json:"is_buy"` + Quantity math.LegacyDec `json:"quantity"` + Price math.LegacyDec `json:"price"` + Margin math.LegacyDec `json:"margin"` +} +``` diff --git a/.gitbook/developers/modules/injective/exchange/README.md b/.gitbook/developers/modules/injective/exchange/README.md new file mode 100644 index 00000000..d9c8423d --- /dev/null +++ b/.gitbook/developers/modules/injective/exchange/README.md @@ -0,0 +1,29 @@ +# `Exchange` + +## Abstract + +The `exchange` module is the heart of the Injective Chain which enables fully decentralized spot and derivative exchange. +It is the _sine qua non_ module of the chain and integrates tightly with the `auction`, `insurance`, `oracle`, and `peggy` modules. + +The exchange protocol enables traders to create and trade on arbitrary spot and derivative markets. +The entire process of orderbook management, trade execution, order matching and settlement occurs on chain through the logic codified by the exchange module. + +The `exchange` module enables the exchange of tokens on two types of markets: + +1. `Derivative Market`: Either a `Perpetual Swap Market` or a `Futures Market`. +2. `Spot Market` + +## Contents + +1. **[Derivative Market Concepts](00_derivative_market_concepts.md)** +2. **[Spot Market Concepts](01_spot_market_concepts.md)** +3. **[Other Concepts](02_other_concepts.md)** +4. **[State](03_state.md)** +5. **[State Transitions](04_state_transitions.md)** +6. **[Messages](05_messages.md)** +7. **[Proposals](06_proposals.md)** +8. **[Begin Block](07_begin_block.md)** +9. **[End Block](08_end_block.md)** +10. **[Events](09_events.md)** +11. **[Params](10_params.md)** +12. **[MsgPrivilegedExecuteContract](11_msg_privileged_execute_contract.md)** diff --git a/.gitbook/developers/modules/injective/insurance/01_state.md b/.gitbook/developers/modules/injective/insurance/01_state.md new file mode 100644 index 00000000..b7c3402c --- /dev/null +++ b/.gitbook/developers/modules/injective/insurance/01_state.md @@ -0,0 +1,92 @@ +--- +sidebar_position: 1 +title: State +--- + +# State + +## Params + +`Params` is a module-wide configuration structure that stores system parameters and defines overall functioning of the insurance module. + +- Params: `Paramsspace("insurance") -> legacy_amino(params)` + +```go + +type Params struct { + // default_redemption_notice_period_duration defines the default minimum notice period duration that must pass after an underwriter sends + // a redemption request before the underwriter can claim his tokens + DefaultRedemptionNoticePeriodDuration time.Duration +} +``` + +## Insurance Types + +`InsuranceFund` defines all the information of the `Insurance Funds` by market. + +```go + +type InsuranceFund struct { + // deposit denomination for the given insurance fund + DepositDenom string + // insurance fund pool token denomination for the given insurance fund + InsurancePoolTokenDenom string + // redemption_notice_period_duration defines the minimum notice period duration that must pass after an underwriter sends + // a redemption request before the underwriter can claim his tokens + RedemptionNoticePeriodDuration time.Duration + // balance of fund + Balance math.Int + // total share tokens minted + TotalShare math.Int + // marketID of the derivative market + MarketId string + // ticker of the derivative market + MarketTicker string + // Oracle base currency of the derivative market + OracleBase string + // Oracle quote currency of the derivative market + OracleQuote string + // Oracle type of the derivative market + OracleType types.OracleType + // Expiration time of the derivative market. Should be -1 for perpetual markets. + Expiry int64 +} +``` + +`RedemptionSchedule` defines redemption schedules from users - redemption is not executed instantly but there's `redemption_notice_period_duration` specified per market. + +```go +type RedemptionSchedule struct { + // id of redemption schedule + Id uint64 + // marketId of redemption schedule + MarketId string + // address of the redeemer + Redeemer string + // the time after which the redemption can be claimed + ClaimableRedemptionTime time.Time + // the insurance_pool_token amount to redeem + RedemptionAmount sdk.Coin +} +``` + +Additionally, we introduce `next_share_denom_id` and `next_redemption_schedule_id` to manage insurance fund share token +denom and redemption schedules from various users. + +```go +// GenesisState defines the insurance module's genesis state. +type GenesisState struct { + // params defines all the parameters of related to insurance. + Params Params + InsuranceFunds []InsuranceFund + RedemptionSchedule []RedemptionSchedule + NextShareDenomId uint64 + NextRedemptionScheduleId uint64 +} +``` + +## Pending Redemptions + +Pending Redemptions Objects are kept to store all the information about redemption requests and to auto-withdraw when +the duration pass. + diff --git a/.gitbook/developers/modules/injective/insurance/02_state_transitions.md b/.gitbook/developers/modules/injective/insurance/02_state_transitions.md new file mode 100644 index 00000000..08b66df4 --- /dev/null +++ b/.gitbook/developers/modules/injective/insurance/02_state_transitions.md @@ -0,0 +1,124 @@ +--- +sidebar_position: 2 +title: State Transitions +--- + +# State Transitions + +This document describes the state transition operations pertaining to: + +- Creating an insurance fund +- Underwriting an insurance fund +- Request a redemption from the insurance fund +- Automatic processing of matured redemption requests + +## Creating insurance fund + +**Params description** +`Sender` field describes the creator of an insurance fund . +`Ticker`, `QuoteDenom`, `OracleBase`, `OracleQuote`, `OracleType`, `Expiry` fields describe the derivative market info +that the insurance fund associated to. +`InitialDeposit` field describes the initial deposit amount to be put on the insurance fund. + +**Steps** + +- Get `MarketId` for the insurance fund - **Note**, market could be not available yet on `exchange` and it's not an + issue +- Ensure if insurance fund associated to the `MarketId` does not exist +- Ensure if initial deposit amount is not zero +- Get `shareDenom` that is unique - it's incremented when share denom is requested for insurance fund creation or when + underwriting insurance fund that has zero balance and non-zero total share denom supply. +- Send coins from creator's account to insurance fund module account +- Create insurance fund object with `DefaultRedemptionNoticePeriodDuration` and with the params provided +- Set `Balance` of fund object to initial deposit amount +- Mint `InsuranceFundInitialSupply` (10^18) `shareDenom` tokens to creator account +- Save insurance fund object to store +- Register newly created insurance fund `shareDenom` metadata inside BankKeeper + +## Underwriting an insurance fund + +**Params description** +`Sender` field describes the underwriter of an insurance fund . +`MarketId` field describes the derivative market id to the insurance fund. +`Deposit` field describes the deposit amount to be added on the insurance fund. + +**Steps** + +- Ensure if insurance fund associated to the `MarketId` does exist +- Send underwriting tokens from sender's account to module account +- Make actions based on the status of insurance fund associated to the `MarketId`. + * A. when `Balance` and `ShareDenomSupply` are zero + 1. mint `InsuranceFundInitialSupply` (10^18) to the sender. + 2. set `Balance` to deposit amount + 3. set `ShareDenomSupply` to `InsuranceFundInitialSupply` + * B. when `Balance` is zero and `ShareDenomSupply` is not zero + 1. change `ShareDenom` of the the insurance fund to start new insurance fund from beginning. + 2. register newly created `ShareDenom` in bank keeper + 3. mint `InsuranceFundInitialSupply` (10^18) to the sender. + 4. set `Balance` to deposit amount + 5. set `ShareDenomSupply` to `InsuranceFundInitialSupply` + * C. when `Balance` is not zero and `ShareDenomSupply` is zero + 1. mint `InsuranceFundInitialSupply` (10^18) to the sender. + 2. increase `Balance` by deposit amount + 3. set `ShareDenomSupply` to `InsuranceFundInitialSupply` + * D. when both `Balance` and `ShareDenomSupply` are not zero - normal case + 1. increase `Balance` by deposit amount + 2. mint `prev_ShareDenomSupply * deposit_amount / prev_Balance` amount of `ShareDenom` to sender + 3. increase `ShareDenomSupply` with mint amount +- Save insurance fund object to store + +## Requesting a redemption from an insurance fund + +**Params description** +`Sender` field describes the redemption requester of an insurance fund . +`MarketId` field describes the derivative market id associated to the insurance fund. +`Amount` field describes the share token amount to be redeemed. + +**Steps** + +- Ensure insurance fund associated to the `MarketId` does exist +- Send `ShareDenom` to module account +- Get new redemption schedule ID +- Calculate `ClaimTime` from insurance fund's redemption notice period duration and current block time +- Calculate key to store pending redemption (redemption schedule) +- Create redemption schedule object with details +- Store redemption schedule object to store + +## Insurance fund actions on liquidation events in derivative market + +**Steps** + +- `exchange` module finds relative insurance fund from the insurance keeper. +- if `missingFund` is positive, it withdraws the amount from the insurance fund through `WithdrawFromInsuranceFund`. +- if `missingFund` is negative, it deposits the amount into the insurance fund through `DepositIntoInsuranceFund`. + +## Automatic processing of pending redemptions + +**Steps** + +Iterate all matured redemptions by sorted order by `ClaimTime` and perform the following actions: + +- If `ClaimTime` is after current block time, break early +- Ensure the insurance fund exist for matured redemption schedule +- Calculate redeem amount from share amount - `shareAmt * fund.Balance * fund.TotalShare` +- Send calculate redeem amount from module account to redeemer account +- Burn share tokens sent to the module account at the time of redemption schedule +- Delete redemption schedule object +- Reduce insurance fund's `Balance` by redeem amount +- Store updated insurance object to store + +# Hooks + +Other modules may register operations to execute when a certain event has occurred within insurance fund. These events +can be registered to execute either right `Before` or `After` the exchange event (as per the hook name). The following +hooks can registered with the exchange: + +**Note**: Hooks are not available and exchange module calls insurance keeper function directly. + +**Steps** +When liquidation event happen in derivative market + +- `exchange` module finds relative insurance fund from the insurance keeper. +- if `missingFund` is positive, it withdraws the amount from the insurance fund through `WithdrawFromInsuranceFund`. +- if `missingFund` is negative, it deposits the amount into the insurance fund through `DepositIntoInsuranceFund`. + diff --git a/.gitbook/developers/modules/injective/insurance/03_messages.md b/.gitbook/developers/modules/injective/insurance/03_messages.md new file mode 100644 index 00000000..416b1a03 --- /dev/null +++ b/.gitbook/developers/modules/injective/insurance/03_messages.md @@ -0,0 +1,95 @@ +--- +sidebar_position: 3 +title: Messages +--- + +# Messages + +In this section we describe the processing of the exchange messages and the corresponding updates to the state. All created/modified state objects specified by each message are defined within the [state](02_state_transitions.md) section. + +## Msg/CreateInsuranceFund + +`MsgCreateInsuranceFund` defines a message to create an insurance fund for a derivative market. + +```protobuf +// MsgCreateInsuranceFund a message to create an insurance fund for a derivative market. +message MsgCreateInsuranceFund { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + // Creator of the insurance fund. + string sender = 1; + // Ticker for the derivative market. + string ticker = 2; + // Coin denom to use for the market quote denom + string quote_denom = 3; + // Oracle base currency + string oracle_base = 4; + // Oracle quote currency + string oracle_quote = 5; + // Oracle type + injective.oracle.v1beta1.OracleType oracle_type = 6; + // Expiration time of the market. Should be -1 for perpetual markets. + int64 expiry = 7; + // Initial deposit of the insurance fund + cosmos.base.v1beta1.Coin initial_deposit = 8 [(gogoproto.nullable) = false]; +} +``` + +**Fields description** + +- `Sender` field describes the creator of an insurance fund . +- `Ticker`, `QuoteDenom`, `OracleBase`, `OracleQuote`, `OracleType`, `Expiry` fields describe the derivative market info + that the insurance fund corresponds to. +- `InitialDeposit` specifies the initial deposit amount used to underwrite the insurance fund. + +Disclaimer: When creating an insurance fund a small portion of shares (1%) will be reserved by the fund itself (protocol owned liquidity). A value of 1 USD is recommended as first subscription. + +Motivation behind this feature is to avoid potential rounding issues when underwriting to a fund. For example, without having protocol owned liquidity, if the original fund creator would take out most of their shares leaving but a small amount, the value of the share token could diverge drastically from the original value. The next underwriter would then have to provide a much larger deposit despite gaining the same amount of shares. + +## Msg/Underwrite + +`MsgUnderwrite` defines a message to underwrite an insurance fund + +```protobuf +// MsgUnderwrite defines a message for depositing coins to underwrite an insurance fund +message MsgUnderwrite { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + // Address of the underwriter. + string sender = 1; + // MarketID of the insurance fund. + string market_id = 2; + // Amount of quote_denom to underwrite the insurance fund. + cosmos.base.v1beta1.Coin deposit = 3 [(gogoproto.nullable) = false]; +} +``` + +**Fields description** + +- `Sender` field describes the underwriter of an insurance fund . +- `MarketId` field describes the derivative market id to the insurance fund. +- `Deposit` field describes the deposit amount to be added on the insurance fund. + +## Msg/RequestRedemption + +`MsgRequestRedemption` defines a message to request redemption from the insurance fund. + +```protobuf +// MsgRequestRedemption defines a message for requesting a redemption of the sender's insurance fund tokens +message MsgRequestRedemption { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + // Address of the underwriter requesting a redemption. + string sender = 1; + // MarketID of the insurance fund. + string market_id = 2; + // Insurance fund share token amount to be redeemed. + cosmos.base.v1beta1.Coin amount = 3 [(gogoproto.nullable) = false]; +} +``` + +**Fields description** + +- `Sender` field describes the redemption requester of an insurance fund . +- `MarketId` field describes the derivative market id associated to the insurance fund. +- `Amount` field describes the share token amount to be redeemed. diff --git a/.gitbook/developers/modules/injective/insurance/04_end_block.md b/.gitbook/developers/modules/injective/insurance/04_end_block.md new file mode 100644 index 00000000..8fece042 --- /dev/null +++ b/.gitbook/developers/modules/injective/insurance/04_end_block.md @@ -0,0 +1,8 @@ +--- +sidebar_position: 4 +title: End-Block +--- + +# End-Block + +At each EndBlock, redemption requests that have matured are automatically processed, resulting in the insurance pool token for the redemption being burned and the pro-rata quote currency amount corresponding to the redemption being withdrawn from the insurance module to the underwriter's balances. More details can be found in the in Automatic withdrawal of pending redemptions in the [state transitions](./02_state_transitions.md) section. diff --git a/.gitbook/developers/modules/injective/insurance/05_events.md b/.gitbook/developers/modules/injective/insurance/05_events.md new file mode 100644 index 00000000..5add6de2 --- /dev/null +++ b/.gitbook/developers/modules/injective/insurance/05_events.md @@ -0,0 +1,39 @@ +--- +sidebar_position: 5 +title: Events +--- + +# Events + +The insurance module emits the following events: + +## Handlers + +### MsgCreateInsuranceFund + +| Type | Attribute Key | Attribute Value | +| ---------------------------------------------------- | ------------- | --------------- | +| injective.insurance.v1beta1.EventInsuranceFundUpdate | fund | {fundJSON} | + +### MsgUnderwrite + +| Type | Attribute Key | Attribute Value | +| ---------------------------------------------------- | ------------- | --------------- | +| injective.insurance.v1beta1.EventInsuranceFundUpdate | fund | {fundJSON} | + +### MsgRequestRedemption + +| Type | Attribute Key | Attribute Value | +| -------------------------------------------------- | ------------- | --------------- | +| injective.insurance.v1beta1.EventRequestRedemption | schedule | {scheduleJSON} | + + + +## EndBlocker + +| Type | Attribute Key | Attribute Value | +| ---------------------------------------------------- | ------------- | --------------- | +| injective.insurance.v1beta1.EventInsuranceFundUpdate | fund | {fundJSON} | +| injective.insurance.v1beta1.EventWithdrawRedemption | schedule | {scheduleJSON} | +| injective.insurance.v1beta1.EventWithdrawRedemption | redeem_coin | {redeemCoin} | + diff --git a/.gitbook/developers/modules/injective/insurance/06_params.md b/.gitbook/developers/modules/injective/insurance/06_params.md new file mode 100644 index 00000000..2f042a3a --- /dev/null +++ b/.gitbook/developers/modules/injective/insurance/06_params.md @@ -0,0 +1,13 @@ +--- +sidebar_position: 6 +title: Parameters +--- + +# Parameters + +The insurance module contains the following parameter: + +| Key | Type | Example | +| ----------------------------------------- | ------------- | --------------------- | +| default_redemption_notice_period_duration | time.Duration | `time.Hour * 24 * 14` | + diff --git a/.gitbook/developers/modules/injective/insurance/07_future_improvements.md b/.gitbook/developers/modules/injective/insurance/07_future_improvements.md new file mode 100644 index 00000000..44c84d94 --- /dev/null +++ b/.gitbook/developers/modules/injective/insurance/07_future_improvements.md @@ -0,0 +1,11 @@ +--- +sidebar_position: 7 +title: Future Improvements +--- + +# Future improvements + +## Precision Loss Edge Case Handling + +Insurance Fund share tokens currently have a decimal scale of `10^18`. There could be potential problems using this as user deposits amount could be various and in the future, share token's price could be very higher or lower. + diff --git a/.gitbook/developers/modules/injective/insurance/README.md b/.gitbook/developers/modules/injective/insurance/README.md new file mode 100644 index 00000000..172cdb49 --- /dev/null +++ b/.gitbook/developers/modules/injective/insurance/README.md @@ -0,0 +1,19 @@ +# `Insurance` + +## Abstract + +This paper specifies the insurance module of the Injective Chain. + +This module provides insurance funds for derivative markets in the `exchange` module of the Injective Chain to use in order to support higher leverage trading. On a high level, insurance funds for each derivative market are funded by a permissionless group of underwriters who each own a proportional claim (represented through insurance fund share tokens) over the underlying assets in the insurance fund. + +Each insurance fund grows when positions in its corresponding derivative market are liquidated with positive equity, as half of the positive equity is sent to the insurance fund upon liquidation. When a position with negative equity is liquidated (i.e. the position has surpassed bankruptcy), the insurance fund is utilized to cover the missing equity. + +## Contents + +1. **[State](01_state.md)** +2. **[State Transitions](02_state_transitions.md)** +3. **[Messages](03_messages.md)** +4. **[End Block](04_end_block.md)** +5. **[Events](05_events.md)** +6. **[Params](06_params.md)** +7. **[Future Improvements](07_future_improvements.md)** \ No newline at end of file diff --git a/.gitbook/developers/modules/injective/ocr/01_concepts.md b/.gitbook/developers/modules/injective/ocr/01_concepts.md new file mode 100644 index 00000000..c42047f4 --- /dev/null +++ b/.gitbook/developers/modules/injective/ocr/01_concepts.md @@ -0,0 +1,60 @@ +--- +sidebar_position: 1 +title: Concepts +--- + +# Concepts + +The `ocr` module is to store chainlink's OCR information into on-chain by verified members. + +Off-chain reporting consists of N nodes (oracles), gathering data from external sources. Reports are being exchanged in a p2p fashion between oracles to get signatures of approval. A subset of nodes (transmitters) is identified by the `ocr` module on-chain, they must submit the reports to module, the first transmitter who hits the chain gets an extra reward to cover gas costs. Other transmitters are not. All oracles participating in the round are getting paid. `ocr` module stores median value from the reports. + +## OCR Terminology + +The protocol periodically sends **oracle reports** to the OCR module. The reporting protocol is comprised of three components: **pacemaker**, **report generation** and **transmission**. + +**Pacemaker** + +The pacemaker drives the report generation process which is structured in **epochs**. Each epoch has a designatd leader who the pacemaker then tasks with starting the report generation protocol. If the leader does not produce a valid report in time, the pacemaker also aborts the current report generation and starts a new epoch. + +**Report Generation** + +For a given epoch, the report generation protocol enters into **rounds** where **observations** are gathered and (given conditions are met such as heartbeat and deviation) a signed oracle **report** is generated. The rounds are controlled by a leader node who controls the frequency of rounds, gathers the observations and generates the report. + +**Transmission** + +The transmission protocol then transmits the generated report to the OCR module. + +## Off-chain OCR integration + +- Provide means to communicate with Injective using sdk-go +- Read data from the module, such as a list of approved oracles +- Submit reports as Msgs (Implement `ContractTransmitter`) +- Implement `OffchainConfigDigester` +- Implement `OnchainKeyring` for producing signatures that will work on the target chain module +- Implement `ContractConfigTracker` for tracking changes of the chain module config (gov approved) + +Notes: + +- Reports are timestamped in Epoch-Round fashion +- `ocr` module verifies the signatures of oracles on the report +- `ocr` module records oracles who contributed to a report, for the payout +- `ocr` module stores the median of the observations +- `ocr` module provides extra reward for the first submitter of a Msg + +### Integration Overview + +Chainlink has several [price data feeds](https://data.chain.link/ethereum/mainnet/stablecoins) including: + +- 80 Crypto/USD pairs (e.g. ETH/USD, BTC/USD) +- 17 Stablecoin pairs (e.g. USDT/USD, USDC/USD) +- 73 ETH pairs (e.g. LINK/ETH) +- 17 Forex pairs (e.g. GBP/USD, CNY/USD) + +A derivative market on Injective specifies the following oracle parameters: + +- An oracleBase (e.g. BTC) +- An oracleQuote (e.g. USDT) +- An oracleType (e.g. Chainlink) + +Thus for a BTC/USDT derivative market on Injective, the oracleBase would be BTC/USD, the oracleQuote would be USDT/USD and the oracleType would be Chainlink. The price for the market would then be obtained by dividing the BTC/USD price with the USDT/USD price, leaving the BTC/USDT price. diff --git a/.gitbook/developers/modules/injective/ocr/02_state.md b/.gitbook/developers/modules/injective/ocr/02_state.md new file mode 100644 index 00000000..5ab39bbd --- /dev/null +++ b/.gitbook/developers/modules/injective/ocr/02_state.md @@ -0,0 +1,218 @@ +--- +sidebar_position: 2 +title: State +--- + +# State + +Genesis state defines the initial state of the module to be used to setup the module. + +```go +// GenesisState defines the OCR module's genesis state. +type GenesisState struct { + // params defines all the parameters of related to OCR. + Params Params + // feed_configs stores all of the supported OCR feeds + FeedConfigs []*FeedConfig + // latest_epoch_and_rounds stores the latest epoch and round for each feedId + LatestEpochAndRounds []*FeedEpochAndRound + // feed_transmissions stores the last transmission for each feed + FeedTransmissions []*FeedTransmission + // latest_aggregator_round_ids stores the latest aggregator round ID for each feedId + LatestAggregatorRoundIds []*FeedLatestAggregatorRoundIDs + // reward_pools stores the reward pools + RewardPools []*RewardPool + // feed_observation_counts stores the feed observation counts + FeedObservationCounts []*FeedCounts + // feed_transmission_counts stores the feed transmission counts + FeedTransmissionCounts []*FeedCounts + // pending_payeeships stores the pending payeeships + PendingPayeeships []*PendingPayeeship +} +``` +## Params + +`Params` is a module-wide configuration that stores system parameters and defines overall functioning of the ocr module. +This module is modifiable by governance using params update proposal natively supported by `gov` module. + +Struct for the `ocr` module params store. +```go +type Params struct { + // Native denom for LINK coin in the bank keeper + LinkDenom string + // The block number interval at which payouts are made + PayoutBlockInterval uint64 + // The admin for the OCR module + ModuleAdmin string +} +``` + +## FeedConfig + +`FeedConfig` is to manage the configurations of feed and it exists one per feed. + +```go +type FeedConfig struct { + // signers ith element is address ith oracle uses to sign a report + Signers []string + // transmitters ith element is address ith oracle uses to transmit a report via the transmit method + Transmitters []string + // f maximum number of faulty/dishonest oracles the protocol can tolerate while still working correctly + F uint32 + // onchain_config contains properties relevant only for the Cosmos module. + OnchainConfig *OnchainConfig + // offchain_config_version version of the serialization format used for "offchain_config" parameter + OffchainConfigVersion uint64 + // offchain_config serialized data used by oracles to configure their offchain operation + OffchainConfig []byte +} +``` + +### FeedConfigInfo + +`FeedConfigInfo` is storing the information that needs to be updated more often for each transmission event. + +```go +type FeedConfigInfo struct { + LatestConfigDigest []byte + F uint32 + N uint32 + // config_count ordinal number of this config setting among all config settings + ConfigCount uint64 + LatestConfigBlockNumber int64 +} +``` + +### Transmission + +`Transmission` is the unit to save transition information on the store. + +```go +// Transmission records the median answer from the transmit transaction at +// time timestamp +type Transmission struct { + Answer math.LegacyDec + ObservationsTimestamp int64 + TransmissionTimestamp int64 +} +``` + +### Report + +`Report` is the unit to save report information on the store. + +```go +type Report struct { + ObservationsTimestamp int64 + Observers []byte + Observations []math.LegacyDec +} +``` + +`ReportToSign` saves the information that needs to be signed by observers. + +```go +type ReportToSign struct { + ConfigDigest []byte + Epoch uint64 + Round uint64 + ExtraHash []byte + // Opaque report + Report []byte +} +``` + +### OnchainConfig + +`OnchainConfig` saves the configuration that needs to be managed on-chain for feed config. + +```go +type OnchainConfig struct { + // chain_id the ID of the Cosmos chain itself. + ChainId string + // feed_id is an unique ID for the target of this config + FeedId string + // lowest answer the median of a report is allowed to be + MinAnswer math.LegacyDec + // highest answer the median of a report is allowed to be + MaxAnswer math.LegacyDec + // Fixed LINK reward for each observer + LinkPerObservation math.Int + // Fixed LINK reward for transmitter + LinkPerTransmission math.Int + // Native denom for LINK coin in the bank keeper + LinkDenom string + // Enables unique reports + UniqueReports bool + // short human-readable description of observable this feed's answers pertain to + Description string + // feed administrator + FeedAdmin string + // feed billing administrator + BillingAdmin string +} +``` + +### ContractConfig + +`ContractConfig` saves the configuration that is related to contract to store OCR. + +```go +type ContractConfig struct { + // config_count ordinal number of this config setting among all config settings + ConfigCount uint64 + // signers ith element is address ith oracle uses to sign a report + Signers []string + // transmitters ith element is address ith oracle uses to transmit a report via the transmit method + Transmitters []string + // f maximum number of faulty/dishonest oracles the protocol can tolerate while still working correctly + F uint32 + // onchain_config serialized config that is relevant only for the module. + OnchainConfig []byte + // offchain_config_version version of the serialization format used for "offchain_config" parameter + OffchainConfigVersion uint64 + // offchain_config serialized data used by oracles to configure their offchain operation + OffchainConfig []byte +} +``` +### FeedProperties + +`FeedProperties` is a unit to store the properties of feed by id. + +```go +type FeedProperties struct { + // feed_id is an unique ID for the target of this config + FeedId string + // f maximum number of faulty/dishonest oracles the protocol can tolerate while still working correctly + F uint32 + // offchain_config_version version of the serialization format used for "offchain_config" parameter + OffchainConfigVersion uint64 + // offchain_config serialized data used by oracles to configure their offchain operation + OffchainConfig []byte + // lowest answer the median of a report is allowed to be + MinAnswer math.LegacyDec + // highest answer the median of a report is allowed to be + MaxAnswer math.LegacyDec + // Fixed LINK reward for each observer + LinkPerObservation math.Int + // Fixed LINK reward for transmitter + LinkPerTransmission math.Int + // Enables unique reports + UniqueReports bool + // short human-readable description of observable this feed's answers pertain to + Description string +} +``` + +### PendingPayeeship + +`PendingPayeeship` is a record that is stored when a person is delegating payeeship to another address. +When proposed payee accept this, this record is removed. + +```go +type PendingPayeeship struct { + FeedId string + Transmitter string + ProposedPayee string +} +``` \ No newline at end of file diff --git a/.gitbook/developers/modules/injective/ocr/03_messages.md b/.gitbook/developers/modules/injective/ocr/03_messages.md new file mode 100644 index 00000000..ee0823ff --- /dev/null +++ b/.gitbook/developers/modules/injective/ocr/03_messages.md @@ -0,0 +1,227 @@ +--- +sidebar_position: 3 +title: Messages +--- + +# Messages + +In this section we describe the processing of the ocr messages and the corresponding updates to the state. + +## Msg/CreateFeed + +`MsgCreateFeed` is a message to create feed config and it is restricted message that is executable by module admin. + +```protobuf +message MsgCreateFeed { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + string sender = 1; + FeedConfig config = 2; +} +``` + +**Steps** + +- Ensure `Sender` is module admin +- Ensure `msg.Config.OnchainConfig.LinkDenom` is module param's `LinkDenom` +- Set `OnchainConfig.ChainId` from `ctx.ChainID` +- Ensure `FeedConfig` with same `FeedId` does not exist +- Set latest `EpochAndRound` to `(0, 0)` +- Set feed config for `feedId` +- Set feed trasmissions count and observations count to 1 + +## Msg/UpdateFeed + +`MsgCreateFeed` is a message to update feed config and it is restricted message that is executable by feed admin or feed billing admin. + +```protobuf +message MsgUpdateFeed { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + string sender = 1; + // feed_id is an unique ID for the target of this config + string feed_id = 2; + // signers ith element is address ith oracle uses to sign a report + repeated string signers = 3; + // transmitters ith element is address ith oracle uses to transmit a report via the transmit method + repeated string transmitters = 4; + // Fixed LINK reward for each observer + string link_per_observation = 5[ + (gogoproto.customtype) = "cosmossdk.io/math.Int", + (gogoproto.nullable) = true + ]; + // Fixed LINK reward for transmitter + string link_per_transmission = 6[ + (gogoproto.customtype) = "cosmossdk.io/math.Int", + (gogoproto.nullable) = true + ]; + // Native denom for LINK coin in the bank keeper + string link_denom = 7; + // feed administrator + string feed_admin = 8; + // feed billing administrator + string billing_admin = 9; +} +``` + +**Steps** + +- Get previous feed config by `feedId` and ensure it exists +- Ensure `Sender` is feed admin or feed billing admin +- Ensure billing admin is not changing Signers, Transmitters and feed admin +- Process rewards payout for previous feed config +- Delete previous feed transmission and observation counts +- Set latest `EpochAndRound` to `(0, 0)` +- Update signers, transmitters, `LinkPerObservation`, `LinkPerTransmission`, `LinkDenom`, `FeedAdmin`, `BillingAdmin` if set. + +## Msg/Transmit + +`MsgTransmit` is a message to transmit a report for specific feed. When broadcasting the message, there should be enough amount of signatures from observers to be accepted. + +```protobuf +message MsgTransmit { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + // Address of the transmitter + string transmitter = 1; + bytes config_digest = 2; + string feed_id = 3; + uint64 epoch = 4; + uint64 round = 5; + bytes extra_hash = 6; + Report report = 7; + repeated bytes signatures = 8; +} +``` + +**Steps** + +- Get epoch and round for `feedId` +- Ensure that the report is not staled one by checking `msg.Epoch` and `msg.Round` +- Get feed config and config info from `feedId` +- Check msg.ConfigDigest equals to feed config info's latest config digest +- Check if transmitter is valid transmitter configured in `feedConfig` +- Save transmitter report +- Emit event for trasmission +- Validate signatures and the number of signatures +- Increment feed observation and transmission counts + +## Msg/FundFeedRewardPool + +`MsgFundFeedRewardPool` is a message to add funds to feed reward pool to be given to transmitters and observers. + +```protobuf +message MsgFundFeedRewardPool { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + string sender = 1; + string feed_id = 2; + cosmos.base.v1beta1.Coin amount = 3 [(gogoproto.nullable) = false]; +} +``` + +**Steps** + +- Get previous reward pool amount from `feedId` +- If previous amount is empty, initiate the pool amount with zero integer +- Ensure previous amount denom is not different from deposit denom if exist +- Send coins from account to the module account (`ocr` module) +- Update reward pool amount with `amount` field addition +- Call `AfterFundFeedRewardPool` hook if hooks is set + +## Msg/WithdrawFeedRewardPool + +`MsgFundFeedRewardPool` is a message to withdraw funds from feed reward pool and is restricted to feed admin or billing admin. + +```protobuf +message MsgWithdrawFeedRewardPool { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + string sender = 1; + string feed_id = 2; + cosmos.base.v1beta1.Coin amount = 3 [(gogoproto.nullable) = false]; +} +``` + +**Steps** + +- Get feed config from `feedId` +- Ensure `msg.Sender` is `feedAdmin` or `billingAdmin` +- Process reward for the feed +- Withdraw specified amount `msg.Amount` from module account + +## Msg/SetPayees + +`MsgSetPayees` is a message to set payee for transmitters - it is restricted to feed admin. Once it's set, it should be changed only by payee. + +```protobuf +message MsgSetPayees { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + string sender = 1; + string feed_id = 2; + // addresses oracles use to transmit the reports + repeated string transmitters = 3; + // addresses of payees corresponding to list of transmitters + repeated string payees = 4; +} +``` + +**Steps** + +- Get feed config from `feedId` and ensure that feed config exists +- Ensure `msg.Sender` is feed admin +- Iterating `msg.Transmitters`, +- 1. Ensure payee is set already for the transmitter +- 2. Set payee for the transmitter + +## Msg/TransferPayeeship + +`MsgTransferPayeeship` is a message to transfer payeeship for a specific transmitter of feed. After execution, pending payeeship object is created. + +```protobuf +message MsgTransferPayeeship { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + // transmitter address of oracle whose payee is changing + string sender = 1; + string transmitter = 2; + string feed_id = 3; + // new payee address + string proposed = 4; +} +``` + +**Steps** + +- Get feed config from `feedId` and ensure that feed config exists +- Ensure msg.Sender is current payee +- Check previous pending payeeship transfer record and ensure previous payeeship transfer does not conflict +- Set payeeship transfer record + +## Msg/AcceptPayeeship + +`MsgTransferPayeeship` is a message to accept payeeship for a specific transmitter of feed. + +```protobuf +message MsgAcceptPayeeship { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + // new payee address + string payee = 1; + // transmitter address of oracle whose payee is changing + string transmitter = 2; + string feed_id = 3; +} +``` + +**Steps** + +- Get feed config from `feedId` and ensure that feed config exists +- Get pending payeeship transfer record for `msg.Transmitter` and `feedId` +- Reset payee for `feedId` and `transmitter` +- Delete pending payeeship transfer for `transmitter` of `feedId` diff --git a/.gitbook/developers/modules/injective/ocr/04_proposals.md b/.gitbook/developers/modules/injective/ocr/04_proposals.md new file mode 100644 index 00000000..787e24ae --- /dev/null +++ b/.gitbook/developers/modules/injective/ocr/04_proposals.md @@ -0,0 +1,50 @@ +--- +sidebar_position: 4 +title: Governance Proposals +--- + +# Governance Proposals + +## SetConfigProposal + +`SetConfigProposal` is a proposal to set feed config by governance. + +```protobuf +message SetConfigProposal { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + string title = 1; + string description = 2; + FeedConfig config = 3; +} +``` + +**Steps** + +- Validate basics for the proposal +- Ensure module's `LinkDenom` is same as proposal's `LinkDenom` +- set `p.Config.OnchainConfig.ChainId` from `ctx.ChainID` +- Set feed config for `feedId` +- Set feed transmissions and observations count for `Config.Transmitters` + +## SetBatchConfigProposal + +`SetBatchConfigProposal` is a proposal to set multiple feed configs at once by governance. + +```protobuf +message SetBatchConfigProposal { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + string title = 1; + string description = 2; + // signers ith element is address ith oracle uses to sign a report + repeated string signers = 3; + // transmitters ith element is address ith oracle uses to transmit a report via the transmit method + repeated string transmitters = 4; + // Native denom for LINK coin in the bank keeper + string link_denom = 5; + repeated FeedProperties feed_properties = 6; +} +``` diff --git a/.gitbook/developers/modules/injective/ocr/05_begin_block.md b/.gitbook/developers/modules/injective/ocr/05_begin_block.md new file mode 100644 index 00000000..6c2ed6a8 --- /dev/null +++ b/.gitbook/developers/modules/injective/ocr/05_begin_block.md @@ -0,0 +1,13 @@ +--- +sidebar_position: 5 +title: Begin-Block +--- + +# Begin-Block + +At each BeginBlock, it checks if it's time for payout interval and if it's time, it process payout for all feeds. + +**Steps** + +- Ensure it's the begin block of payout interval +- While iterating all feed configs, process reward payouts diff --git a/.gitbook/developers/modules/injective/ocr/06_hooks.md b/.gitbook/developers/modules/injective/ocr/06_hooks.md new file mode 100644 index 00000000..c50e2acf --- /dev/null +++ b/.gitbook/developers/modules/injective/ocr/06_hooks.md @@ -0,0 +1,17 @@ +--- +sidebar_position: 6 +--- + +# Hooks + +Other modules may register operations to execute when a certain event has occurred within ocr module. The following hooks can registered with ocr: + +- `AfterSetFeedConfig(ctx sdk.Context, feedConfig *FeedConfig)` + - called after feed config is created or updated +- `AfterTransmit(ctx sdk.Context, feedId string, answer math.LegacyDec, timestamp int64)` + - called when info is transmitted +- `AfterFundFeedRewardPool(ctx sdk.Context, feedId string, newPoolAmount sdk.Coin)` + - called when feed reward pool is updated + +Note: +`oracle` module is accepting `AfterTransmit` hook to store cumulative price when transmission is made. \ No newline at end of file diff --git a/.gitbook/developers/modules/injective/ocr/07_events.md b/.gitbook/developers/modules/injective/ocr/07_events.md new file mode 100644 index 00000000..257d2c97 --- /dev/null +++ b/.gitbook/developers/modules/injective/ocr/07_events.md @@ -0,0 +1,102 @@ +--- +sidebar_position: 7 +title: Events +--- + +# Events + +The ocr module emits the following events: + +## Handlers + +### MsgCreateFeed + +| Type | Attribute Key | Attribute Value | +| ------- | ------------- | --------------- | +| message | action | MsgCreateFeed | +| message | sender | {sender} | + +### MsgUpdateFeed + +| Type | Attribute Key | Attribute Value | +| ------- | ------------- | --------------- | +| message | action | MsgUpdateFeed | +| message | sender | {sender} | + +### MsgTransmit + +| Type | Attribute Key | Attribute Value | +| -------------------- | --------------------- | ----------------------- | +| EventNewTransmission | FeedId | {FeedId} | +| EventNewTransmission | AggregatorRoundId | {AggregatorRoundId} | +| EventNewTransmission | Answer | {Answer} | +| EventNewTransmission | Transmitter | {Transmitter} | +| EventNewTransmission | ObservationsTimestamp | {ObservationsTimestamp} | +| EventNewTransmission | Observations | {Observations} | +| EventNewTransmission | Observers | {Observers} | +| EventNewTransmission | ConfigDigest | {ConfigDigest} | +| EventNewTransmission | EpochAndRound | {EpochAndRound} | +| EventTransmitted | ConfigDigest | {ConfigDigest} | +| EventTransmitted | Epoch | {Epoch} | +| message | action | MsgTransmit | +| message | sender | {sender} | + +### MsgFundFeedRewardPool + +| Type | Attribute Key | Attribute Value | +| ------- | ------------- | --------------------- | +| message | action | MsgFundFeedRewardPool | +| message | sender | {sender} | + +### MsgWithdrawFeedRewardPool + +| Type | Attribute Key | Attribute Value | +| ------- | ------------- | ------------------------- | +| message | action | MsgWithdrawFeedRewardPool | +| message | sender | {sender} | + +### MsgSetPayees + +| Type | Attribute Key | Attribute Value | +| ------- | ------------- | --------------- | +| message | action | MsgSetPayees | +| message | sender | {sender} | + +### MsgTransferPayeeship + +| Type | Attribute Key | Attribute Value | +| ------- | ------------- | -------------------- | +| message | action | MsgTransferPayeeship | +| message | sender | {sender} | + +### MsgAcceptPayeeship + +| Type | Attribute Key | Attribute Value | +| ------- | ------------- | ------------------ | +| message | action | MsgAcceptPayeeship | +| message | sender | {sender} | + +## Proposals + +### SetConfigProposal + +| Type | Attribute Key | Attribute Value | +| -------------- | ------------------------- | --------------------------- | +| EventConfigSet | ConfigDigest | {ConfigDigest} | +| EventConfigSet | PreviousConfigBlockNumber | {PreviousConfigBlockNumber} | +| EventConfigSet | Config | {Config} | +| EventConfigSet | ConfigInfo | {ConfigInfo} | + +### SetBatchConfigProposal + +| Type | Attribute Key | Attribute Value | +| ---------------- | ------------------------- | --------------------------- | +| EventConfigSet[] | ConfigDigest | {ConfigDigest} | +| EventConfigSet[] | PreviousConfigBlockNumber | {PreviousConfigBlockNumber} | +| EventConfigSet[] | Config | {Config} | +| EventConfigSet[] | ConfigInfo | {ConfigInfo} | + +## BeginBlocker + +| Type | Attribute Key | Attribute Value | +| ---- | ------------- | --------------- | diff --git a/.gitbook/developers/modules/injective/ocr/08_params.md b/.gitbook/developers/modules/injective/ocr/08_params.md new file mode 100644 index 00000000..f78af34e --- /dev/null +++ b/.gitbook/developers/modules/injective/ocr/08_params.md @@ -0,0 +1,14 @@ +--- +order: 8 +title: Params +--- + +# Parameters + +The ocr module contains the following parameters: + +| Key | Type | Example | +| ------------------- | ------ | --------- | +| LinkDenom | string | link | +| PayoutBlockInterval | uint64 | 100 | +| ModuleAdmin | string | {address} | diff --git a/.gitbook/developers/modules/injective/ocr/README.md b/.gitbook/developers/modules/injective/ocr/README.md new file mode 100644 index 00000000..41e1e177 --- /dev/null +++ b/.gitbook/developers/modules/injective/ocr/README.md @@ -0,0 +1,21 @@ +# Ocr + +## Abstract + +OCR module is to store chainlink's OCR(Off-Chain Report) info into the chain storage. + +Feed configuration is managed by module admin and report move to on-chain by transmitters and observers. +Transmitters and observers are rewarded in LINK token on the chain configured by governance. + +While storing feed information, module provide hooks where oracle module can use for the calculation of cumulative price for futures market. + +## Contents + +1. **[Concepts](01_concepts.md)** +2. **[State](02_state.md)** +3. **[Messages](03_messages.md)** +4. **[Proposals](04_proposals.md)** +5. **[Begin-Block](05_begin_block.md)** +6. **[Hooks](06_hooks.md)** +7. **[Events](07_events.md)** +8. **[Parameters](08_params.md)** diff --git a/.gitbook/developers/modules/injective/oracle/01_state.md b/.gitbook/developers/modules/injective/oracle/01_state.md new file mode 100644 index 00000000..5a5ed19e --- /dev/null +++ b/.gitbook/developers/modules/injective/oracle/01_state.md @@ -0,0 +1,275 @@ +--- +sidebar_position: 1 +title: State +--- + +# State + +## Params +The oracle module parameters. +```protobuf +message Params { + option (gogoproto.equal) = true; + + string pyth_contract = 1; +} +``` + + +## PriceState + +PriceState is common type to manage cumulative price and latest price along with timestamp for all oracle types. + +```protobuf +message PriceState { + string price = 1 [(gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false]; + + string cumulative_price = 2 [(gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false]; + + int64 timestamp = 3; +} +``` + +where + +- `Price` represents the normalized decimal price +- `CumulativePrice` represents the cumulative price for a given oracle price feed since the start of the oracle price feed's creation. +- `Timestamp` represents the time at which the blocktime at which the price state was relayed. + +Note that the `CumulativePrice` value follows the convention set by the [Uniswap V2 Oracle](https://uniswap.org/docs/v2/core-concepts/oracles/) and is used to allows modules to calculate Time-Weighted Average Price (TWAP) between 2 arbitrary block time intervals (t1, t2). + +$\mathrm{TWAP = \frac{CumulativePrice_2 - CumulativePrice_1}{Timestamp_2 - Timestamp_1}}$ + +## Band + +Band price data for a given symbol are represented and stored as follows: + +- BandPriceState: `0x01 | []byte(symbol) -> ProtocolBuffer(BandPriceState)` + +```protobuf +message BandPriceState { + string symbol = 1; + string rate = 2 [(gogoproto.customtype) = "cosmossdk.io/math.Int", (gogoproto.nullable) = false]; + uint64 resolve_time = 3; + uint64 request_ID = 4; + PriceState price_state = 5 [(gogoproto.nullable) = false]; +} +``` + +Note that the `Rate` is the raw USD rate for the `Symbol` obtained from the Band chain which has is scaled by 1e9 (e.g. a price of 1.42 is 1420000000) while the PriceState has the normalized decimal price (e.g. 1.42). + +Band relayers are stored by their address as follows. + +- BandRelayer: `0x02 | RelayerAddr -> []byte{}` + +## Band IBC + +This section describes all the state management to maintain the price by connecting to Band chain via IBC. + +- LatestClientID is maintained to manage unique clientID for band IBC packets. It is increased by 1 when sending price request packet into bandchain. + +* LatestClientID: `0x32 -> Formated(LatestClientID)` + +- LatestRequestID is maintained to manage unique `BandIBCOracleRequests`. Incremented by 1 when creating a new `BandIBCOracleRequest`. + +* LatestRequestID: `0x36 -> Formated(LatestRequestID)` + +- Band IBC price data for a given symbol is stored as follows: + +* BandPriceState: `0x31 | []byte(symbol) -> ProtocolBuffer(BandPriceState)` + +```protobuf +message BandPriceState { + string symbol = 1; + string rate = 2 [(gogoproto.customtype) = "cosmossdk.io/math.Int", (gogoproto.nullable) = false]; + uint64 resolve_time = 3; + uint64 request_ID = 4; + PriceState price_state = 5 [(gogoproto.nullable) = false]; +} +``` + +- BandIBCCallDataRecord is stored as follows when sending price request packet into bandchain: + +* CalldataRecord: `0x33 | []byte(ClientId) -> ProtocolBuffer(CalldataRecord)` + +```protobuf +message CalldataRecord { + uint64 client_id = 1; + bytes calldata = 2; +} +``` + +- BandIBCOracleRequest is stored as follows when the governance configure oracle requests to send: + +* BandOracleRequest: `0x34 | []byte(RequestId) -> ProtocolBuffer(BandOracleRequest)` + +```protobuf +message BandOracleRequest { + // Unique Identifier for band ibc oracle request + uint64 request_id = 1; + + // OracleScriptID is the unique identifier of the oracle script to be executed. + int64 oracle_script_id = 2; + + // Symbols is the list of symbols to prepare in the calldata + repeated string symbols = 3; + + // AskCount is the number of validators that are requested to respond to this + // oracle request. Higher value means more security, at a higher gas cost. + uint64 ask_count = 4; + + // MinCount is the minimum number of validators necessary for the request to + // proceed to the execution phase. Higher value means more security, at the + // cost of liveness. + uint64 min_count = 5; + + // FeeLimit is the maximum tokens that will be paid to all data source providers. + repeated cosmos.base.v1beta1.Coin fee_limit = 6 [(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"]; + + // PrepareGas is amount of gas to pay to prepare raw requests + uint64 prepare_gas = 7; + // ExecuteGas is amount of gas to reserve for executing + uint64 execute_gas = 8; +} +``` + +- BandIBCParams is stored as follows and configured by governance: + +* BandIBCParams: `0x35 -> ProtocolBuffer(BandIBCParams)` + +`BandIBCParams` contains the information for IBC connection with band chain. + +```protobuf +message BandIBCParams { + // true if Band IBC should be enabled + bool band_ibc_enabled = 1; + // block request interval to send Band IBC prices + int64 ibc_request_interval = 2; + // band IBC source channel + string ibc_source_channel = 3; + // band IBC version + string ibc_version = 4; + // band IBC portID + string ibc_port_id = 5; +} +``` + +Note: + +1. `BandIbcEnabled` describes the status of band ibc connection +2. `IbcSourceChannel`, `IbcVersion`, `IbcPortId` are common parameters required for IBC connection. +3. `IbcRequestInterval` describes the automatic price fetch request interval that is automatically triggered on injective chain on beginblocker. + +## Coinbase + +Coinbase price data for a given symbol ("key") are represented and stored as follows: + +- CoinbasePriceState: `0x21 | []byte(key) -> CoinbasePriceState` + +```protobuf +message CoinbasePriceState { + // kind should always be "prices" + string kind = 1; + // timestamp of the when the price was signed by coinbase + uint64 timestamp = 2; + // the symbol of the price, e.g. BTC + string key = 3; + // the value of the price scaled by 1e6 + uint64 value = 4; + // the price state + PriceState price_state = 5 [(gogoproto.nullable) = false]; +} +``` + +More details about the Coinbase price oracle can be found in the [Coinbase API docs](https://docs.pro.coinbase.com/#oracle) as well as this explanatory [blog post](https://blog.coinbase.com/introducing-the-coinbase-price-oracle-6d1ee22c7068). + +Note that the `Value` is the raw USD price data obtained from Coinbase which has is scaled by 1e6 (e.g. a price of 1.42 is 1420000) while the PriceState has the normalized decimal price (e.g. 1.42). + +## Pricefeed + +Pricefeed price data for a given base quote pair are represented and stored as follows: + +- PriceFeedInfo: `0x11 + Keccak256Hash(base + quote) -> PriceFeedInfo` + +```protobuf +message PriceFeedInfo { + string base = 1; + string quote = 2; +} +``` + +- PriceFeedPriceState: `0x12 + Keccak256Hash(base + quote) -> PriceFeedPriceState` + +```protobuf +message PriceFeedState { + string base = 1; + string quote = 2; + PriceState price_state = 3; + repeated string relayers = 4; +} +``` + +- PriceFeedRelayer: `0x13 + Keccak256Hash(base + quote) + relayerAddr -> relayerAddr` + +## Provider +Provider price feeds are represented and stored as follows: + +- ProviderInfo: `0x61 + provider + @@@ -> ProviderInfo` +```protobuf +message ProviderInfo { + string provider = 1; + repeated string relayers = 2; +} +``` + +- ProviderIndex: `0x62 + relayerAddress -> provider` + +- ProviderPrices: `0x63 + provider + @@@ + symbol -> ProviderPriceState` +```protobuf +message ProviderPriceState { + string symbol = 1; + PriceState state = 2; +} +``` + +## Pyth + +Pyth prices are represented and stored as follows: +- PythPriceState: `0x71 + priceID -> PythPriceState` +```protobuf +message PythPriceState { + bytes price_id = 1; + string ema_price = 2 [(gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false]; + string ema_conf = 3 [(gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false]; + string conf = 4 [(gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false]; + uint64 publish_time = 5; + PriceState price_state = 6 [(gogoproto.nullable) = false]; +} +``` + +## Stork + +Stork prices are represented and stored as follows: +- StorkPriceState: `0x81 + symbol -> PythPriceState` +```protobuf +message StorkPriceState { + // timestamp of the when the price was signed by stork + uint64 timestamp = 1; + // the symbol of the price, e.g. BTC + string symbol = 2; + // the value of the price scaled by 1e18 + string value = 3 [ + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", + (gogoproto.nullable) = false + ]; + // the price state + PriceState price_state = 5 [ (gogoproto.nullable) = false ]; +} +``` + +Stork publishers are represented and stored as follows: +- Publisher: `0x82 + stork_publisher -> publisher` + +```protobuf +string stork_publisher +``` \ No newline at end of file diff --git a/.gitbook/developers/modules/injective/oracle/02_keeper.md b/.gitbook/developers/modules/injective/oracle/02_keeper.md new file mode 100644 index 00000000..32509c5f --- /dev/null +++ b/.gitbook/developers/modules/injective/oracle/02_keeper.md @@ -0,0 +1,120 @@ +--- +sidebar_position: 2 +title: Keepers +--- + +# Keepers + +The oracle module currently provides three different exported keeper interfaces which can be passed to other modules +which need to read price feeds. Modules should use the least-permissive interface which provides the functionality they +require. + +## Oracle Module ViewKeeper + +The oracle module ViewKeeper provides the ability to obtain price data as well as cumulative price data for any +supported oracle type and oracle pair. + +```go +type ViewKeeper interface { + GetPrice(ctx sdk.Context, oracletype types.OracleType, base string, quote string) *math.LegacyDec // Returns the price for a given pair for a given oracle type. + GetCumulativePrice(ctx sdk.Context, oracleType types.OracleType, base string, quote string) *math.LegacyDec // Returns the cumulative price for a given pair for a given oracle type. +} +``` + +Note that the `GetPrice` for Coinbase oracles returns the 5 minute TWAP price. + +## Band + +The BandKeeper provides the ability to create/modify/read/delete BandPricefeed and BandRelayer. + +```go +type BandKeeper interface { + GetBandPriceState(ctx sdk.Context, symbol string) *types.BandPriceState + SetBandPriceState(ctx sdk.Context, symbol string, priceState types.BandPriceState) + GetAllBandPriceStates(ctx sdk.Context) []types.BandPriceState + GetBandReferencePrice(ctx sdk.Context, base string, quote string) *math.LegacyDec + IsBandRelayer(ctx sdk.Context, relayer sdk.AccAddress) bool + GetAllBandRelayers(ctx sdk.Context) []string + SetBandRelayer(ctx sdk.Context, relayer sdk.AccAddress) + DeleteBandRelayer(ctx sdk.Context, relayer sdk.AccAddress) +} +``` + +## Band IBC + +The BandIBCKeeper provides the ability to create/modify/read/delete BandIBCOracleRequest, BandIBCPriceState, BandIBCLatestClientID and BandIBCCallDataRecord. + +```go +type BandIBCKeeper interface { + SetBandIBCOracleRequest(ctx sdk.Context, req types.BandOracleRequest) + GetBandIBCOracleRequest(ctx sdk.Context) *types.BandOracleRequest + DeleteBandIBCOracleRequest(ctx sdk.Context, requestID uint64) + GetAllBandIBCOracleRequests(ctx sdk.Context) []*types.BandOracleRequest + + GetBandIBCPriceState(ctx sdk.Context, symbol string) *types.BandPriceState + SetBandIBCPriceState(ctx sdk.Context, symbol string, priceState types.BandPriceState) + GetAllBandIBCPriceStates(ctx sdk.Context) []types.BandPriceState + GetBandIBCReferencePrice(ctx sdk.Context, base string, quote string) *math.LegacyDec + + GetBandIBCLatestClientID(ctx sdk.Context) uint64 + SetBandIBCLatestClientID(ctx sdk.Context, clientID uint64) + SetBandIBCCallDataRecord(ctx sdk.Context, clientID uint64, bandIBCCallDataRecord []byte) + GetBandIBCCallDataRecord(ctx sdk.Context, clientID uint64) *types.CalldataRecord +} +``` + +## Coinbase + +The CoinbaseKeeper provides the ability to create, modify and read CoinbasePricefeed data. + +```go +type CoinbaseKeeper interface { + GetCoinbasePrice(ctx sdk.Context, base string, quote string) *math.LegacyDec + HasCoinbasePriceState(ctx sdk.Context, key string) bool + GetCoinbasePriceState(ctx sdk.Context, key string) *types.CoinbasePriceState + SetCoinbasePriceState(ctx sdk.Context, priceData *types.CoinbasePriceState) error + GetAllCoinbasePriceStates(ctx sdk.Context) []*types.CoinbasePriceState +} +``` + +The `GetCoinbasePrice` returns the 5 minute TWAP price of the CoinbasePriceState based off the `CoinbasePriceState.Timestamp` values provided by Coinbase. + +## PriceFeeder + +The PriceFeederKeeper provides the ability to create/modify/read/delete PriceFeedPrice and PriceFeedRelayer. + +```go +type PriceFeederKeeper interface { + IsPriceFeedRelayer(ctx sdk.Context, oracleBase, oracleQuote string, relayer sdk.AccAddress) bool + GetAllPriceFeedStates(ctx sdk.Context) []*types.PriceFeedState + GetAllPriceFeedRelayers(ctx sdk.Context, baseQuoteHash common.Hash) []string + SetPriceFeedRelayer(ctx sdk.Context, oracleBase, oracleQuote string, relayer sdk.AccAddress) + SetPriceFeedRelayerFromBaseQuoteHash(ctx sdk.Context, baseQuoteHash common.Hash, relayer sdk.AccAddress) + DeletePriceFeedRelayer(ctx sdk.Context, oracleBase, oracleQuote string, relayer sdk.AccAddress) + HasPriceFeedInfo(ctx sdk.Context, priceFeedInfo *types.PriceFeedInfo) bool + GetPriceFeedInfo(ctx sdk.Context, baseQuoteHash common.Hash) *types.PriceFeedInfo + SetPriceFeedInfo(ctx sdk.Context, priceFeedInfo *types.PriceFeedInfo) + GetPriceFeedPriceState(ctx sdk.Context, base string, quote string) *types.PriceState + SetPriceFeedPriceState(ctx sdk.Context, oracleBase, oracleQuote string, priceState *types.PriceState) + GetPriceFeedPrice(ctx sdk.Context, base string, quote string) *math.LegacyDec +} +``` + +## Stork + +The StorkKeeper provides the ability to create/modify/read StorkPricefeed and StorkPublishers data. + +```go +type StorkKeeper interface { + GetStorkPrice(ctx sdk.Context, base string, quote string) *math.LegacyDec + IsStorkPublisher(ctx sdk.Context, address string) bool + SetStorkPublisher(ctx sdk.Context, address string) + DeleteStorkPublisher(ctx sdk.Context, address string) + GetAllStorkPublishers(ctx sdk.Context) []string + + SetStorkPriceState(ctx sdk.Context, priceData *types.StorkPriceState) + GetStorkPriceState(ctx sdk.Context, symbol string) types.StorkPriceState + GetAllStorkPriceStates(ctx sdk.Context) []*types.StorkPriceState +} +``` +The GetStorkPrice returns the price(`value`) of the StorkPriceState. \ No newline at end of file diff --git a/.gitbook/developers/modules/injective/oracle/03_messages.md b/.gitbook/developers/modules/injective/oracle/03_messages.md new file mode 100644 index 00000000..599e47a3 --- /dev/null +++ b/.gitbook/developers/modules/injective/oracle/03_messages.md @@ -0,0 +1,190 @@ +--- +sidebar_position: 3 +title: Messages +--- + +# Messages + +## MsgRelayBandRates + +Authorized Band relayers can relay price feed data for multiple symbols with the `MsgRelayBandRates` message. +The registered handler iterates over all the symbols present in the `MsgRelayBandRates` and creates/updates the +`BandPriceState` for each symbol. + +```protobuf +message MsgRelayBandRates { + string relayer = 1; + repeated string symbols = 2; + repeated uint64 rates = 3; + repeated uint64 resolve_times = 4; + repeated uint64 requestIDs = 5; +} +``` + +This message is expected to fail if the Relayer is not an authorized Band relayer. + +## MsgRelayCoinbaseMessages + +Relayers of Coinbase provider can send price data using `MsgRelayCoinbaseMessages` message. + +Each Coinbase `Messages` is authenticated by the `Signatures` provided by the Coinbase oracle address `0xfCEAdAFab14d46e20144F48824d0C09B1a03F2BC`, thus allowing anyone to submit the `MsgRelayCoinbaseMessages`. + +```protobuf +message MsgRelayCoinbaseMessages { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + string sender = 1; + + repeated bytes messages = 2; + repeated bytes signatures = 3; +} +``` + +This message is expected to fail if signature verification fails or if the Timestamp submitted is not more recent than the last previously submitted Coinbase price. + +## MsgRelayPriceFeedPrice + +Relayers of PriceFeed provider can send the price feed using `MsgRelayPriceFeedPrice` message. + +```protobuf +// MsgRelayPriceFeedPrice defines a SDK message for setting a price through the pricefeed oracle. +message MsgRelayPriceFeedPrice { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + string sender = 1; + + repeated string base = 2; + repeated string quote = 3; + + // price defines the price of the oracle base and quote + repeated string price = 4 [ + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", + (gogoproto.nullable) = false + ]; +} +``` + +This message is expected to fail if the Relayer (`Sender`) is not an authorized pricefeed relayer for the given Base Quote pair or if the price is greater than 10000000. + +## MsgRequestBandIBCRates + +`MsgRequestBandIBCRates` is a message to instantly broadcast a request to bandchain. + +```protobuf +// MsgRequestBandIBCRates defines a SDK message for requesting data from BandChain using IBC. +message MsgRequestBandIBCRates { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + string sender = 1; + uint64 request_id = 2; + +} +``` + +Anyone can broadcast this message and no specific authorization is needed. +The handler checks if `BandIbcEnabled` flag is true and go ahead sending a request. + +## MsgRelayPythPrices + +`MsgRelayPythPrices` is a message for the Pyth contract relay prices to the oracle module. + +```protobuf +// MsgRelayPythPrices defines a SDK message for updating Pyth prices +message MsgRelayPythPrices { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + string sender = 1; + repeated PriceAttestation price_attestations = 2; +} + +message PriceAttestation { + string product_id = 1; + bytes price_id = 2; + int64 price = 3; + uint64 conf = 4; + int32 expo = 5; + int64 ema_price = 6; + uint64 ema_conf = 7; + PythStatus status = 8; + uint32 num_publishers = 9; + uint32 max_num_publishers = 10; + int64 attestation_time = 11; + int64 publish_time = 12; +} + +enum PythStatus { + // The price feed is not currently updating for an unknown reason. + Unknown = 0; + // The price feed is updating as expected. + Trading = 1; + // The price feed is not currently updating because trading in the product has been halted. + Halted = 2; + // The price feed is not currently updating because an auction is setting the price. + Auction = 3; +} +``` + +This message is expected to fail if the Relayer (`sender`) does not equal the Pyth contract address as defined in the +oracle module Params. + +## MsgRelayStorkPrices + +`MsgRelayStorkPrices` is a message for the Stork contract relay prices to the oracle module. + +```protobuf +// MsgRelayStorkPrices defines a SDK message for relaying price message from Stork API. +message MsgRelayStorkPrices { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + option (cosmos.msg.v1.signer) = "sender"; + + string sender = 1; + repeated AssetPair asset_pairs = 2; +} + +message AssetPair { + string asset_id = 1; + repeated SignedPriceOfAssetPair signed_prices = 2; +} + +message SignedPriceOfAssetPair { + string publisher_key = 1; + uint64 timestamp = 2; + string price = 3 [ + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", + (gogoproto.nullable) = false + ]; + bytes signature = 4; +} +``` + +This message is expected to fail if: +- the Relayer (`sender`) is not an authorized oracle publisher or if `assetId` is not unique amongst the provided asset pairs +- ECDSA signature verification fails for the `SignedPriceOfAssetPair` +- the difference between timestamps exceeds the `MaxStorkTimestampIntervalNano` (500 milliseconds). + +## MsgRelayProviderPrices + +Relayers of a particular Provider can send the price feed using `MsgRelayProviderPrices` message. + +```protobuf +// MsgRelayProviderPrice defines a SDK message for setting a price through the provider oracle. +message MsgRelayProviderPrices { + option (amino.name) = "oracle/MsgRelayProviderPrices"; + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + option (cosmos.msg.v1.signer) = "sender"; + + string sender = 1; + string provider = 2; + repeated string symbols = 3; + repeated string prices = 4 [ + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", + (gogoproto.nullable) = false + ]; +} +``` + +This message is expected to fail if the Relayer (`Sender`) is not an authorized pricefeed relayer for the given Base Quote pair or if the price is greater than 10000000. diff --git a/.gitbook/developers/modules/injective/oracle/04_proposals.md b/.gitbook/developers/modules/injective/oracle/04_proposals.md new file mode 100644 index 00000000..82488e8c --- /dev/null +++ b/.gitbook/developers/modules/injective/oracle/04_proposals.md @@ -0,0 +1,227 @@ +--- +sidebar_position: 4 +title: Governance Proposals +--- + +# Governance Proposals + +## GrantProviderPrivilegeProposal + +Oracle provider privileges can be granted to your account through a `GrantBandOraclePrivilegeProposal`. After the governance proposal is passed, you will be able to relay price feeds using your provider. + + +```protobuf +// Grant Privileges +message GrantProviderPrivilegeProposal { + option (amino.name) = "oracle/GrantProviderPrivilegeProposal"; + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + option (cosmos_proto.implements_interface) = "cosmos.gov.v1beta1.Content"; + + string title = 1; + string description = 2; + string provider = 3; + repeated string relayers = 4; +} +``` + +You can submit your proposal according to the example: + +```bash +injectived tx oracle grant-provider-privilege-proposal YOUR_PROVIDER \ + YOUR_ADDRESS_HERE \ + --title="TITLE OF THE PROPOSAL" \ + --description="Registering PROVIDER as an oracle provider" \ + --chain-id=injective-888 \ + --from=local_key \ + --node=https://testnet.sentry.tm.injective.network:443 \ + --gas-prices=160000000inj \ + --gas=20000000 \ + --deposit="40000000000000000000inj" +``` + + +To successfully pass the proposal for **testnet**, `YOUR_DEPOSIT` should be slightly less than `min_deposit` +value (for example, `40000000000000000000inj`). After that you should contact the Injective dev team. Dev team will +top up your deposit to `min_deposit` and vote for your proposal. + +## RevokeProviderPrivilegeProposal + +Oracle provider privileges can be revoked from your account through a `RevokeProviderPrivilegeProposal`. + +```protobuf +// Revoke Privileges +message RevokeProviderPrivilegeProposal { + option (amino.name) = "oracle/RevokeProviderPrivilegeProposal"; + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + option (cosmos_proto.implements_interface) = "cosmos.gov.v1beta1.Content"; + + string title = 1; + string description = 2; + string provider = 3; + repeated string relayers = 5; +} +``` + +## GrantBandOraclePrivilegeProposal + +Band Oracle privileges can be granted to Relayer accounts of Band provider through a `GrantBandOraclePrivilegeProposal`. + +```protobuf +// Grant Privileges +message GrantBandOraclePrivilegeProposal { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + string title = 1; + string description = 2; + repeated string relayers = 3; +} +``` + +## RevokeBandOraclePrivilegeProposal + +Band Oracle privileges can be revoked from Relayer accounts of Band provider through a `RevokeBandOraclePrivilegeProposal`. + +```protobuf +// Revoke Privileges +message RevokeBandOraclePrivilegeProposal { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + string title = 1; + string description = 2; + repeated string relayers = 3; +} +``` + +## GrantPriceFeederPrivilegeProposal + +Price feeder privileges for a given base quote pair can be issued to relayers through a `GrantPriceFeederPrivilegeProposal`. + +```protobuf +// Grant Privileges +message GrantPriceFeederPrivilegeProposal { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + string title = 1; + string description = 2; + string base = 3; + string quote = 4; + repeated string relayers = 5; +} +``` + +## RevokePriceFeederPrivilegeProposal + +Price feeder privileges can be revoked from Relayer accounts through a `RevokePriceFeederPrivilegeProposal`. + +```protobuf +// Revoke Privileges +message RevokePriceFeederPrivilegeProposal { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + string title = 1; + string description = 2; + string base = 3; + string quote = 4; + repeated string relayers = 5; +} +``` + +## AuthorizeBandOracleRequestProposal + +This proposal is to add a band oracle request into the list. When this is accepted, injective chain fetches one more price info from bandchain. + +```protobuf +message AuthorizeBandOracleRequestProposal { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + string title = 1; + string description = 2; + BandOracleRequest request = 3 [(gogoproto.nullable) = false]; +} +``` + +## UpdateBandOracleRequestProposal + +This proposal is used for deleting a request or updating the request. +When `DeleteRequestId` is not zero, it deletes the request with the id and finish its execution. +When `DeleteRequestId` is zero, it update the request with id `UpdateOracleRequest.RequestId` to UpdateOracleRequest. + +```protobuf +message UpdateBandOracleRequestProposal { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + string title = 1; + string description = 2; + uint64 delete_request_id = 3; + BandOracleRequest update_oracle_request = 4; +} +``` + +## EnableBandIBCProposal + +This proposal is to enable IBC connection between Band chain and Injective chain. +When the proposal is approved, it updates the BandIBCParams into newer one configured on the proposal. + +```protobuf +message EnableBandIBCProposal { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + string title = 1; + string description = 2; + + BandIBCParams band_ibc_params = 3 [(gogoproto.nullable) = false]; +} +``` + +The details of `BandIBCParams`, can be checked at **[State](./01_state.md)** + +## GrantStorkPublisherPrivilegeProposal + +Stork Publisher privileges can be granted from Publishers through a `GrantStorkPublisherPrivilegeProposal`. + +```protobuf +// Grant Privileges +message GrantStorkPublisherPrivilegeProposal { + option (amino.name) = "oracle/GrantStorkPublisherPrivilegeProposal"; + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + option (cosmos_proto.implements_interface) = "cosmos.gov.v1beta1.Content"; + + string title = 1; + string description = 2; + + repeated string stork_publishers = 3; +} +``` + +## RevokeStorkPublisherPrivilegeProposal + +Stork Publisher privileges can be revoked from Publishers through a `RevokeStorkPublisherPrivilegeProposal`. + +```protobuf +// Revoke Privileges +message RevokeStorkPublisherPrivilegeProposal { + option (amino.name) = "oracle/RevokeStorkPublisherPrivilegeProposal"; + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + option (cosmos_proto.implements_interface) = "cosmos.gov.v1beta1.Content"; + + string title = 1; + string description = 2; + + repeated string stork_publishers = 3; +} +``` \ No newline at end of file diff --git a/.gitbook/developers/modules/injective/oracle/05_events.md b/.gitbook/developers/modules/injective/oracle/05_events.md new file mode 100644 index 00000000..ea883770 --- /dev/null +++ b/.gitbook/developers/modules/injective/oracle/05_events.md @@ -0,0 +1,96 @@ +--- +sidebar_position: 5 +title: Events +--- +# Events + +The oracle module emits the following events: +## Band +```protobuf +message SetBandPriceEvent { + string relayer = 1; + string symbol = 2; + string price = 3 [(gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false]; + uint64 resolve_time = 4; + uint64 request_id = 5; +} + +message SetBandIBCPriceEvent { + string relayer = 1; + repeated string symbols = 2; + repeated string prices = 3 [(gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false]; + uint64 resolve_time = 4; + uint64 request_id = 5; + int64 client_id = 6; +} + +message EventBandIBCAckSuccess { + string ack_result = 1; + int64 client_id = 2; +} + +message EventBandIBCAckError { + string ack_error = 1; + int64 client_id = 2; +} + +message EventBandIBCResponseTimeout { + int64 client_id = 1; +} +``` + +## Chainlink +```protobuf +message SetChainlinkPriceEvent { + string feed_id = 1; + string answer = 2 [(gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false]; + uint64 timestamp = 3; +} +``` + +## Coinbase + +```protobuf +message SetCoinbasePriceEvent { + string symbol = 1; + string price = 2 [(gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false]; + uint64 timestamp = 3; +} +``` + +## Provider +```protobuf +message SetProviderPriceEvent { + string provider = 1; + string relayer = 2; + string symbol = 3; + string price = 4 [(gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false]; +} +``` + +## Pricefeed +```protobuf +message SetPriceFeedPriceEvent { + string relayer = 1; + + string base = 2; + string quote = 3; + + // price defines the price of the oracle base and quote + string price = 4 [(gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false]; +} +``` + +## Pyth +```protobuf +message EventSetPythPrices { + repeated PythPriceState prices = 1; +} +``` + +## Stork +```protobuf +message EventSetStorkPrices { + repeated StorkPriceState prices = 1; +} +``` \ No newline at end of file diff --git a/.gitbook/developers/modules/injective/oracle/06_future_improvements.md b/.gitbook/developers/modules/injective/oracle/06_future_improvements.md new file mode 100644 index 00000000..60b92334 --- /dev/null +++ b/.gitbook/developers/modules/injective/oracle/06_future_improvements.md @@ -0,0 +1,10 @@ +--- +sidebar_position: 6 +title: Future Improvements +--- + +# Future Improvements + +Extend support for other oracle providers including Chainlink, Razor, DIA, API3, UMA, Pyth as well as Band oracle data through IBC. + +Of the following above, development is ongoing to integrate Band and Pyth oracle data through IBC, as well as Chainlink oracle data through the OCR (off-chain reporting) mechanism. diff --git a/.gitbook/developers/modules/injective/oracle/README.md b/.gitbook/developers/modules/injective/oracle/README.md new file mode 100644 index 00000000..f30bd028 --- /dev/null +++ b/.gitbook/developers/modules/injective/oracle/README.md @@ -0,0 +1,39 @@ +# `Oracle` + +## Abstract + +This specification specifies the oracle module, which is primarily used by the `exchange` modules to obtain external price data. + +## Workflow + +1. New price feed providers must first obtain oracle privileges through a governance proposal which grants privileges to a list of relayers. The exception to this is for the Coinbase price oracle, as anyone can send Coinbase price updates since they are already exclusively signed by the Coinbase oracle private key.
+ **Example Grant Proposals**: `GrantBandOraclePrivilegeProposal`, `GrantPriceFeederPrivilegeProposal` +2. Once the governance proposal is approved, the specified relayers can publish oracle data by sending relay messages specific to their oracle type.
+ **Example Relay Messages**:`MsgRelayBandRates`, `MsgRelayPriceFeedPrice`, `MsgRelayCoinbaseMessages` etc +3. Upon receiving the relay message, the oracle module checks if the relayer account has grant privileges and persists the latest price data in the state. +4. Other Cosmos-SDK modules can then fetch the latest price data for a specific provider by querying the oracle module. + +**Note**: In case of any discrepancy, the price feed privileges can be revoked through governance
+**Example Revoke Proposals**: `RevokeBandOraclePrivilegeProposal`, `RevokePriceFeederPrivilegeProposal` etc + +## Band IBC integration flow + +Cosmos SDK blockchains are able to interact with each other using IBC and Injective support the feature to fetch price feed from bandchain via IBC. + +1. To communicate with BandChain's oracle using IBC, Injective Chain must first initialize a communication channel with the oracle module on the BandChain using relayers. + +2. Once the connection has been established, a pair of channel identifiers is generated -- one for the Injective Chain and one for Band. The channel identifier is used by Injective Chain to route outgoing oracle request packets to Band. Similarly, Band's oracle module uses the channel identifier when sending back the oracle response. + +3. To enable band IBC integration after setting up communication channel, the governance proposal for `EnableBandIBCProposal` should pass. + +4. And then, the list of prices to be fetched via IBC should be determined by `AuthorizeBandOracleRequestProposal` and `UpdateBandOracleRequestProposal`. + +5. Once BandIBC is enabled, chain periodically sends price request IBC packets (`OracleRequestPacketData`) to bandchain and bandchain responds with the price via IBC packet (`OracleResponsePacketData`). Band chain is providing prices when there are threshold number of data providers confirm and it takes time to get the price after sending requests. To request price before the configured interval, any user can broadcast `MsgRequestBandIBCRates` message which is instantly executed. + +## Contents + +1. **[State](./01_state.md)** +2. **[Keeper](./02_keeper.md)** +3. **[Messages](./03_messages.md)** +4. **[Proposals](./04_proposals.md)** +5. **[Events](./05_events.md)** diff --git a/.gitbook/developers/modules/injective/peggy/01_definitions.md b/.gitbook/developers/modules/injective/peggy/01_definitions.md new file mode 100644 index 00000000..037c1da0 --- /dev/null +++ b/.gitbook/developers/modules/injective/peggy/01_definitions.md @@ -0,0 +1,36 @@ +--- +sidebar_position: 1 +title: Definitions +--- + +# Intro + +This doc aims to provide an overview of `Peggy` (Injective's Ethereum bridge) from a technical perspective and dive deep into its operational logic. +Peggy is the name of the custom Cosmos SDK module built on Injective as well as the Ethereum contract (Peggy.sol) which make up both sides of the bridge. +Connected via a middle-man process called `Peggo` users can securely move token assets between networks. + +To suggest improvements, please open a GitHub issue. + +### Key definitions + +Words matter and we seek clarity in the terminology so we can have clarity in our thinking and communication. +To help better understand, some key definitions are: + +- `Operator` - this is a person (or people) who control and operate `Validator` and `Orchestrator` processes +- `Validator` - this is an Injective Chain validating node (eg. `injectived` process) +- `Validator Set` - the (active) set of Injective Chain `Validators` (Valset) along with their respective voting power as determined by their stake weight. Each validator is associated with an Ethereum address to be represented on the Ethereum network +- `Orchestrator (Peggo)` - the off-chain process (`peggo`) that plays the middleman role between Injective and Ethereum. Orchestrators are responsible for keeping the bridge online and require active endpoints to fully synced Injective (Ethereum) nodes +- `Peggy module` - the counterparty Cosmos module for `Peggy contract`. Besides providing services to bridge token assets, it automatically reflects on the active `Validator Set` as it changes over time. The update is later applied on Ethereum via `Peggo` +- `Peggy Contract` - The Ethereum contract that holds all the ERC-20 tokens. It also maintains a compressed checkpointed representation of the Injective Chain `Validator Set` using `Delegate Keys` and normalized powers +- `Delegate Keys` - when an `Operator` sets up their `Orchestrator` for the first time they register (on Injective) their `Validator`'s address with an Ethereum address. The corresponding key is used to sign messages and represent that validator on Ethereum. + Optionally, one delegate Injective Chain account key can be provided to sign Injective messages (eg `Claims`) on behalf of the `Validator` +- `Peggy Tx pool (withdrawals)` - when a user wishes to move their asset from Injective to Ethereum their individual tx gets pooled with others with the same asset +- `Peggy Batch pool` - pooled withdrawals are batched together (by an `Orchestrator`) to be signed off and eventually relayed to Ethereum. These batches are kept within this pool +- `Claim` - a signed proof (by an `Orchestrator`) that an event occurred in the `Peggy contract` +- `Attestation` - an aggregate of claims for a particular event nonce emitted from `Peggy contract`. After a majority of `Orchestrators` attests to a claim, the event is acknowledged and executed on Injective +- `Majority` - the majority of Injective network, 2/3 + 1 validators +- `Deposit` - an asset transfer initiated from Ethereum to Injective +- `Withdrawal` - an asset transfer initiated from Injective to Ethereum (present in `Peggy Tx pool`) +- `Batch` - a batch of withdrawals with the same token type (present in `Peggy Batch pool`) + + diff --git a/.gitbook/developers/modules/injective/peggy/02_workflow.md b/.gitbook/developers/modules/injective/peggy/02_workflow.md new file mode 100644 index 00000000..2a7b4742 --- /dev/null +++ b/.gitbook/developers/modules/injective/peggy/02_workflow.md @@ -0,0 +1,164 @@ +--- +sidebar_position: 2 +title: Workflow +--- + +# Workflow + +## Conceptual Overview + +To recap, each `Operator` is responsible for maintaining 2 secure processes: + +1. A fully synced Injective Chain `Validator` node (`injectived` process) +2. The `Orchestrator` service (`peggo orchestrator` process) which interacts with both networks. Implicitly, an RPC endpoint to a fully synced Ethereum node is required as well (see peggo .env example) + +Combined, these 2 entities accomplish 3 things: +- Move token assets from Ethereum to Injective +- Move token assets from Injective to Ethereum +- Keep the `Peggy.sol` contract in sync with the active `Validator Set` on Injective + +It is possible to run `peggo` without ever being a `Validator`. Peggo automatically runs in "relayer mode" when configured to run with an address **not associated** with a `Validator`. +In this mode, only 2 things can happen: +* new token batches can be created on Injective +* confirmed valsets/batches can be relayed to Ethereum + +## Types of Assets + +### Native Ethereum assets + +Any asset originating from Ethereum which implements the ERC-20 standard can be transferred from Ethereum to Injective by calling the `sendToInjective` function on the [Peggy.sol](https://github.com/InjectiveLabs/peggo/blob/master/solidity/contracts/Peggy.sol) contract which transfers tokens from the sender's balance to the Peggy contract. + +The `Operators` all run their `peggo` processes which submit `MsgDepositClaim` messages describing the deposit they have observed. Once more than 66% of all voting power has submitted a claim for this specific deposit representative tokens are minted and issued to the Injective Chain address that the sender requested. + +These representative tokens have a denomination prefix of `peggy` concatenated with the ERC-20 token hex address, e.g. `peggy0xdac17f958d2ee523a2206206994597c13d831ec7`. + +### Native Cosmos SDK assets + +An asset native to a Cosmos SDK chain (e.g. `ATOM`) first must be represented on Ethereum before it's possible to bridge it. To do so, the [Peggy contract](https://github.com/InjectiveLabs/peggo/blob/master/solidity/contracts/Peggy.sol) allows anyone to create a new ERC-20 token representing a Cosmos asset by calling the `deployERC20` function. + +This endpoint is not permissioned, so it is up to the validators and the users of the Peggy bridge to declare any given ERC-20 token as the representation of a given asset. + +When a user on Ethereum calls `deployERC20` they pass arguments describing the desired asset. [Peggy.sol](https://github.com/InjectiveLabs/peggo/blob/master/solidity/contracts/Peggy.sol) uses an ERC-20 factory to deploy the actual ERC-20 contract and assigns ownership of the entire balance of the new token to the Peggy contract itself before emitting an `ERC20DeployedEvent`. + +The peggo orchestrators observe this event and decide if a Cosmos asset has been accurately represented (correct decimals, correct name, no pre-existing representation). If this is the case, the ERC-20 contract address is adopted and stored as the definitive representation of that Cosmos asset on Ethereum. + +## `Orchestrator` (Peggo) subprocesses + +The `peggo orchestrator` process consists of 4 subprocesses running concurrently at exact intervals (loops). These are: +* `Signer` which signs new `Validator Set` updates and `Token Batches` with the `Operator`'s Ethereum keys and submits using [messages](./04_messages.md#Ethereum-Signer-messages). +* `Oracle` which observes Ethereum events and sends them as [claims](./04_messages.md#Oracle-messages) to Injective. +* `Relayer` which submits confirmed `Validator Set` updates and `Token Batches` to the `Peggy Contract` on Ethereum +* `Batch Creator` which observes (new) withdrawals on Injective and decides which of these to batch according to their type and the configured `PEGGO_MIN_BATCH_FEE_USD` value + +### Batch Creator + +The purpose of the `Batch Creator` is only in creating token batches on the Injective side. The relevant `Peggy module` RPC is not permissioned so anyone can create a batch. + +When a user wants to withdraw assets from Injective to Ethereum they send a special message to Injective (`MsgSendToEth`) which adds their withdrawal to `Peggy Tx Pool`. +`Batch Creator` continually queries the pool for withdrawals (by token type) and issues a `MsgRequestBatch` to Injective when a potential batch satisfies the configured `PEGGO_MIN_BATCH_FEE_USD` value (see .env example). + +On the receiving end, all pooled withdrawals matching the token type in the request are moved from the `Outgoing Tx Pool` as a single batch and placed in the `Outgoing Batch Pool`. + +### Signer + +The responsibility of Signer is to provide confirmations that an `Operator (Orchestrator)` is partaking in bridge activity. Failure to provide these confirmations results in slashing penalties for the orchestrator's `Validator`. +In other words, this process **must be running at all times** for a `Validator` node. + +Any payload moving in the Injective->Ethereum pipeline (`Validator Set` updates/`Token Batches`) requires `Validator` signatures to be successfully relayed to Ethereum. Certain calls on `Peggy Contract` accept an array of signatures to be checked against the `Validator Set` in the contract itself. +`Orchestrators` make these signatures with their `Delegate Ethereum address`: this is an Ethereum address decided by the `Operator` upon initial setup ([SetOrchestratorAddress](./04_messages.md#setorchestratoraddresses)). This address then represents that validator on the Ethereum blockchain and will be added as a signing member of the multisig with a weighted voting power as close as possible to the Injective Chain voting power. + +Whenever `Signer` finds that there is a unconfirmed valset update (token batch) present within the `Peggy Module` it issues a `MsgConfirmValset` (`MsgConfirmBatch`) as proof that the operating `Validator` is active in bridge activity. + +### Oracle + +Monitors the Ethereum network for new events involving the `Peggy Contract`. + +Every event emitted by the contract has a unique event nonce. This nonce value is crucial in coordinating `Orchestrators` to properly observe contract activity and make sure Injective acknowledges them via `Claims`. +Multiple claims of the same nonce make up an `Attestation` and when the majority (2/3) of orchestrators have observed an event its particular logic gets executed on Injective. + +If 2/3 of the validators can not agree on a single `Attestation`, the oracle is halted. This means no new events will be relayed from Ethereum until some of the validators change their votes. There is no slashing condition for this, with reasoning outlined in the [slashing spec](./05_slashing.md) + +There are 4 types of events emitted from Peggy.sol: +1. `TransactionBatchExecutedEvent` - event indicating that a token batch (withdrawals) has been successfully relayed to Ethereum +2. `ValsetUpdatedEvent` - event indicating that a `Validator Set` update has been successfully relayed to Ethereum +3. `SendToInjectiveEvent` - event indicating that a new deposit to Injective has been initiated +4. `ERC20DeployedEvent` - event indicating a new Cosmos token has been registered on Ethereum + +Injective's `Oracle` implementation ignores the last 12 blocks on Ethereum to ensure block finality. In reality, this means latest events are observed 2-3 minutes after they occurred. + +### Relayer + +`Relayer` bundles valset updates (or token batches) along with their confirmations into an Ethereum transaction and sends it to the `Peggy contract`. + +Keep in mind that these messages cost a variable amount of money based on wildly changing Ethereum gas prices, so it's not unreasonable for a single batch to cost over a million gas. +A major design decision for our relayer rewards was to always issue them on the Ethereum chain. This has downsides, namely some strange behavior in the case of validator set update rewards. + +But the upsides are undeniable, because the Ethereum messages pay `msg.sender` any existing bot in the Ethereum ecosystem will pick them up and try to submit them. This makes the relaying market much more competitive and less prone to cabal like behavior. + +## End-to-end Lifecycle + +This document describes the end to end lifecycle of the Peggy bridge. + +### Peggy Smart Contract Deployment + +In order to deploy the Peggy contract, the validator set of the native chain (Injective Chain) must be known. Upon deploying the Peggy contract suite (Peggy Implementation, Proxy contract, and ProxyAdmin contracts), the Peggy contract (the Proxy contract) must be initialized with the validator set. +Upon initialization a `ValsetUpdatedEvent` is emitted from the contract. + +The proxy contract is used to upgrade Peggy Implementation contract which is needed for bug fixing and potential improvements during initial phase. It is a simple wrapper or "proxy" which users interact with directly and is in charge of forwarding transactions to the Peggy implementation contract, which contains the logic. The key concept to understand is that the implementation contract can be replaced but the proxy (the access point) is never changed. + +The ProxyAdmin is a central admin for the Peggy proxy, which simplifies management. It controls upgradability and ownership transfers. The ProxyAdmin contract itself has a built-in expiration time which, once expired, prevents the Peggy implementation contract from being upgraded in the future. + +Then the following peggy genesis params should be updated: +1. `bridge_ethereum_address` with Peggy proxy contract address +2. `bridge_contract_start_height` with the height at which the Peggy proxy contract was deployed + +This completes the bootstrap of the Peggy bridge and the chain can be started. Afterward, `Operators` should start their `peggo` processes and eventually observe that the initial `ValsetUpdatedEvent` is attested on Injective. + +### **Updating Injective Chain validator set on Ethereum** + +![img.png](./images/valsetupdate.png) + +A validator set is a series of Ethereum addresses with attached normalized powers used to represent the Injective validator set (Valset) in the Peggy contract on Ethereum. The Peggy contract stays in sync with the Injective Chain validator set through the following mechanism: +1. **Creating a new Valset on Injective:** A new Valset is automatically created on the Injective Chain when either: + * the cumulative difference of the current validator set powers compared to the last recorded Valset exceeds 5% + * a validator begins unbonding from the set +2. **Confirming a Valset on Injective:** Each `Operator` is responsible for confirming Valset updates that are created on Injective. The `Signer` process sends these confirmations via `MsgConfirmValset` by having the validator's delegated Ethereum key sign over a compressed representation of the Valset data. The `Peggy module` verifies the validity of the signature and persists it to its state. +3. **Updating the Valset on the Peggy contract:** After a 2/3+ 1 majority of validators have submitted their confirmations for a given Valset, `Relayer` submits the new Valset data to the Peggy contract by calling `updateValset`. +The Peggy contract then validates the data, updates the valset checkpoint, transfers valset rewards to sender and emits a `ValsetUpdatedEvent`. +4. **Acknowledging the `ValsetUpdatedEvent` on Injective:** `Oracle` witnesses the `ValsetUpdatedEvent` on Ethereum, and sends a `MsgValsetUpdatedClaim` which informs the `Peggy module` that the Valset has been updated on Ethereum. +5. **Pruning Valsets on Injective:** Once a 2/3 majority of validators send their claim for a given `ValsetUpdateEvent`, all the previous valsets are pruned from the `Peggy module` state. +6. **Validator Slashing:** Validators are subject to slashing after a configured window of time (`SignedValsetsWindow`) for not providing confirmations. Read more [valset slashing](./05_slashing.md) + +---- + +### **Transferring ERC-20 tokens from Ethereum to Injective** + +![img.png](./images/SendToCosmos.png) + +ERC-20 tokens are transferred from Ethereum to Injective through the following mechanism: + 1. **Depositing ERC-20 tokens on the Peggy Contract:** A user initiates a transfer of ERC-20 tokens from Ethereum to Injective by calling the `sendToInjective` function on the Peggy contract which deposits tokens on the Peggy contract and emits a `SendToInjectiveEvent`. + The deposited tokens will remain locked until withdrawn at some undetermined point in the future. This event contains the amount and type of tokens, as well as a destination address on the Injective Chain to receive the funds. + + 2. **Confirming the deposit:** Each `Oracle` witnesses the `SendToInjectiveEvent` and sends a `MsgDepositClaim` which contains the deposit information to the Peggy module. + + 3. **Minting tokens on the Injective:** Once a majority of validators confirm the deposit claim, the deposit is processed. + - If the asset is Ethereum originated, the tokens are minted and transferred to the intended recipient's address on the Injective Chain. + - If the asset is Cosmos-SDK originated, the coins are unlocked and transferred to the intended recipient's address on the Injective Chain. + +----- +### **Withdrawing tokens from Injective to Ethereum** + +![img.png](./images/SendToEth.png) + +1. **Request Withdrawal from Injective:** A user can initiate the transfer of assets from the Injective Chain to Ethereum by sending a `MsgSendToEth` transaction to the peggy module. + * If the asset is Ethereum native, the represented tokens are burnt. + * If the asset is Cosmos SDK native, coins are locked in the module. The withdrawal is then added to `Outgoing Tx Pool`. +2. **Batch Creation:** A `Batch Creator` observes the pool of pending withdrawals. The batch creator (or any external third party) then requests a batch of to be created for given token by sending `MsgRequestBatch` to the Injective Chain. The `Peggy module` collects withdrawals matching the token type into a batch and puts it in `Outgoing Batch Pool`. +3. **Batch Confirmation:** Upon detecting the existence of an Outgoing Batch, the `Signer` signs over the batch with its Ethereum key and submits a `MsgConfirmBatch` tx to the Peggy module. +4. **Submit Batch to Peggy Contract:** Once a majority of validators confirm the batch, the `Relayer` calls `submitBatch` on the Peggy contract with the batch and its confirmations. The Peggy contract validates the signatures, updates the batch checkpoint, processes the batch ERC-20 withdrawals, transfers the batch fee to the tx sender and emits a `TransactionBatchExecutedEvent`. +5. **Send Withdrawal Claim to Injective:** `Oracles` witness the `TransactionBatchExecutedEvent` and send a `MsgWithdrawClaim` containing the withdrawal information to the Peggy module. +6. **Prune Batches** Once a majority of validators submit their `MsgWithdrawClaim` , the batch is deleted along and all previous batches are cancelled on the Peggy module. Withdrawals in cancelled batches get moved back into `Outgoing Tx Pool`. +7. **Batch Slashing:** Validators are responsible for confirming batches and are subject to slashing if they fail to do so. Read more on [batch slashing](./05_slashing.md). + +Note while that batching reduces individual withdrawal costs dramatically, this comes at the cost of latency and implementation complexity. If a user wishes to withdraw quickly they will have to pay a much higher fee. However this fee will be about the same as the fee every withdrawal from the bridge would require in a non-batching system. + diff --git a/.gitbook/developers/modules/injective/peggy/03_state.md b/.gitbook/developers/modules/injective/peggy/03_state.md new file mode 100644 index 00000000..e589efe6 --- /dev/null +++ b/.gitbook/developers/modules/injective/peggy/03_state.md @@ -0,0 +1,265 @@ +--- +sidebar_position: 3 +title: State +--- + +# State + +This doc lists all the data Peggy module reads/writes to its state as KV pairs + +### Module Params + +Params is a module-wide configuration structure that stores parameters and defines overall functioning of the peggy module. Detailed specification for each parameter can be found in the [Parameters section](08_params.md). + +| key | Value | Type | Encoding | +|---------------|---------------|----------------|------------------| +| `[]byte{0x4}` | Module params | `types.Params` | Protobuf encoded | + + +### Validator Info + +#### Ethereum Address by Validator + +Stores `Delegate Ethereum address` indexed by the `Validator`'s account address + +| key | Value | Type | Encoding | +|---------------------------------------|------------------|------------------|------------------| +| `[]byte{0x1} + []byte(validatorAddr)` | Ethereum address | `common.Address` | Protobuf encoded | + +#### Validator by Ethereum Address + +Stores `Validator` account address indexed by the `Delegate Ethereum address` + +| key | Value | Type | Encoding | +|-------------------------------------|-------------------|------------------|------------------| +| `[]byte{0xfb} + []byte(ethAddress)` | Validator address | `sdk.ValAddress` | Protobuf encoded | + + +#### OrchestratorValidator + +When a validator would like to delegate their voting power to another key. The value is stored using the orchestrator address as the key + +| Key | Value | Type | Encoding | +|-------------------------------------|----------------------------------------------|----------|------------------| +| `[]byte{0xe8} + []byte(AccAddress)` | Orchestrator address assigned by a validator | `[]byte` | Protobuf encoded | + + +### Valset + +This is the validator set of the bridge. Created automatically by `Peggy module` during EndBlocker. + +Stored in two possible ways, first with a height and second without (unsafe). Unsafe is used for testing and export and import of state. + +```go +type Valset struct { + Nonce uint64 + Members []*BridgeValidator + Height uint64 + RewardAmount math.Int + RewardToken string +} + +``` + +| key | Value | Type | Encoding | +|--------------------------------------------|---------------|----------------|------------------| +| `[]byte{0x2} + nonce (big endian encoded)` | Validator set | `types.Valset` | Protobuf encoded | + +### SlashedValsetNonce + +The latest validator set slash nonce. This is used to track which validator set needs to be slashed and which already has been. + +| Key | Value | Type | Encoding | +|----------------|-------|--------|------------------------| +| `[]byte{0xf5}` | Nonce | uint64 | encoded via big endian | + +### ValsetNonce + +Nonce of the latest validator set. Updated on each new validator set. + +| key | Value | Type | Encoding | +|----------------|-------|----------|------------------------| +| `[]byte{0xf6}` | Nonce | `uint64` | encoded via big endian | + + +### Valset Confirmation + +`Singer` confirmation for a particular validator set. See [oracle messages](./04_messages.md#ValsetConfirm) + +| Key | Value | Type | Encoding | +|---------------------------------------------|------------------------|--------------------------|------------------| +| `[]byte{0x3} + (nonce + []byte(AccAddress)` | Validator Confirmation | `types.MsgValsetConfirm` | Protobuf encoded | + +### Batch Confirmation + +`Singer` confirmation for a particular token batch. See [oracle messages](./04_messages.md#ConfirmBatch) + +| Key | Value | Type | Encoding | +|---------------------------------------------------------------------|------------------------------|-------------------------|------------------| +| `[]byte{0xe1} + []byte(tokenContract) + nonce + []byte(AccAddress)` | Validator Batch Confirmation | `types.MsgConfirmBatch` | Protobuf encoded | + + +### OutgoingTransferTx + +User withdrawals are pooled together in `Peggy Tx Pool` ready to be batched later by a `Batch Creator`. + +Each withdrawal is indexed by a unique nonce set by the `Peggy module` when the withdrawal was received. + +```go +type OutgoingTransferTx struct { + Id uint64 + Sender string + DestAddress string + Erc20Token *ERC20Token + Erc20Fee *ERC20Token +} +``` + +| Key | Value | Type | Encoding | +|----------------------------------------|------------------------------|----------|--------------------| +| `[]byte{0x7} + []byte("lastTxPoolId")` | nonce of outgoing withdrawal | `uint64` | Big endian encoded | + + +### LastTXPoolID + +Monotonically increasing value for each withdrawal received by Injective + +| Key | Value | Type | Encoding | +|----------------------------------------|-------------------------|----------|--------------------| +| `[]byte{0x6} + []byte("lastTxPoolId")` | Last used withdrawal ID | `uint64` | Big endian encoded | + + +### OutgoingTxBatch + +`OutgoingTxBatch` represents a collection of withdrawals of the same token type. Created on every successful `MsgRequestBatch`. + +Stored in two possible ways, first with a height and second without (unsafe). Unsafe is used for testing and export and import of state. +Currently [Peggy.sol](https://github.com/InjectiveLabs/peggo/blob/master/solidity/contracts/Peggy.sol) is hardcoded to only accept batches with a single token type and only pay rewards in that same token type. + +```go +type OutgoingTxBatch struct { + BatchNonce uint64 + BatchTimeout uint64 + Transactions []*OutgoingTransferTx + TokenContract string + Block uint64 +} +``` + +| key | Value | Type | Encoding | +|--------------------------------------------------------------------|----------------------------------|-------------------------|------------------| +| `[]byte{0xa} + []byte(tokenContract) + nonce (big endian encoded)` | A batch of outgoing transactions | `types.OutgoingTxBatch` | Protobuf encoded | +| `[]byte{0xb} + block (big endian encoded)` | A batch of outgoing transactions | `types.OutgoingTxBatch` | Protobuf encoded | + + +### LastOutgoingBatchID + +Monotonically increasing value for each batch created on Injective by some `Batch Creator` + +| Key | Value | Type | Encoding | +|---------------------------------------|--------------------|----------|--------------------| +| `[]byte{0x7} + []byte("lastBatchId")` | Last used batch ID | `uint64` | Big endian encoded | + +### SlashedBlockHeight + +Represents the latest slashed block height. There is always only a singe value stored. + +| Key | Value | Type | Encoding | +|----------------|-----------------------------------------|----------|--------------------| +| `[]byte{0xf7}` | Latest height a batch slashing occurred | `uint64` | Big endian encoded | + +### LastUnbondingBlockHeight + +Represents the latest bloch height at which a `Validator` started unbonding from the `Validator Set`. Used to determine slashing conditions. + +| Key | Value | Type | Encoding | +|----------------|------------------------------------------------------|----------|--------------------| +| `[]byte{0xf8}` | Latest height at which a Validator started unbonding | `uint64` | Big endian encoded | + +### TokenContract & Denom + +A denom that is originally from a counter chain will be from a contract. The token contract and denom are stored in two ways. First, the denom is used as the key and the value is the token contract. Second, the contract is used as the key, the value is the denom the token contract represents. + +| Key | Value | Type | Encoding | +|----------------------------------------|------------------------|----------|-----------------------| +| `[]byte{0xf3} + []byte(denom)` | Token contract address | `[]byte` | stored in byte format | +| `[]byte{0xf4} + []byte(tokenContract)` | Token denom | `[]byte` | stored in byte format | + +### LastObservedValset + +This entry represents the last observed Valset that was successfully relayed to Ethereum. Updates after an attestation of `ValsetUpdatedEvent` has been processed on Injective. + +| Key | Value | Type | Encoding | +|----------------|----------------------------------|----------------|------------------| +| `[]byte{0xfa}` | Last observed Valset on Ethereum | `types.Valset` | Protobuf encoded | + + +### LastEventNonce + +The nonce of the last observed event on Ethereum. This is set when `TryAttestation()` is called. There is always only a single value held in this store. + +| Key | Value | Type | Encoding | +|----------------|---------------------------|----------|--------------------| +| `[]byte{0xf2}` | Last observed event nonce | `uint64` | Big endian encoded | + +### LastObservedEthereumHeight + +This block height of the last observed event on Ethereum. There will always only be a single value stored in this store. + +| Key | Value | Type | Encoding | +|----------------|-------------------------------|----------|------------------| +| `[]byte{0xf9}` | Last observed Ethereum Height | `uint64` | Protobuf encoded | + + +### LastEventByValidator + +This is the last observed event on Ethereum from a particular `Validator`. Updated every time the asssociated `Orchestrator` sends an event claim. + +```go +type LastClaimEvent struct { + EthereumEventNonce uint64 + EthereumEventHeight uint64 +} +``` + +| Key | Value | Type | Encoding | +|--------------------------------------------|---------------------------------------|------------------------|------------------| +| `[]byte{0xf1} + []byte(validator address)` | Last observed event by some Validator | `types.LastClaimEvent` | Protobuf encoded | + + +### Attestation + +Attestation is an aggregate of claims that eventually becomes observed by all orchestrators as more votes (claims) are coming in. Once observed the claim's particular logic gets executed. + +Each attestation is bound to a unique event nonce (generated by `Peggy contract`) and they must be processed in order. This is a correctness issue, if relaying out of order transaction replay attacks become possible. + +```go +type Attestation struct { + Observed bool + Votes []string + Height uint64 + Claim *types.Any +} +``` +| Key | Value | Type | Encoding | +|----------------------------------------------------------------------|---------------------------------------|---------------------|------------------| +| `[]byte{0x5} + event nonce (big endian encoded) + []byte(claimHash)` | Attestation of occurred events/claims | `types.Attestation` | Protobuf encoded | + +### PastEthSignatureCheckpoint + +A computed hash indicating that a validator set/token batch in fact existed on Injective. This checkpoint also exists in `Peggy contract`. +Updated on each new valset update and token batch creation. + + +| Key | Value | Type | Encoding | +|----------------|-------------------------------------------|-------------------|----------------------| +| `[]byte{0x1b}` | Last created checkpoint hash on Injective | `gethcommon.Hash` | store in byte format | + +### EthereumBlacklist + +A list of known malicious Ethereum addresses that are prevented from using the bridge. + +| Key | Value | Type | Encoding | +|-------------------------------------------|--------------------|-------------------|------------------------| +| `[]byte{0x1c} + []byte(ethereum address)` | Empty []byte slice | `gethcommon.Hash` | stored in byte format] | + diff --git a/.gitbook/developers/modules/injective/peggy/04_messages.md b/.gitbook/developers/modules/injective/peggy/04_messages.md new file mode 100644 index 00000000..d2f14516 --- /dev/null +++ b/.gitbook/developers/modules/injective/peggy/04_messages.md @@ -0,0 +1,199 @@ +--- +sidebar_position: 4 +title: Messages +--- + +# Messages + +This is a reference document for Peggy message types. For code reference and exact arguments see the [proto definitions](https://github.com/InjectiveLabs/injective-core/blob/master/proto/injective/peggy/v1/msgs.proto). + +## User messages + +These are messages sent on the Injective Chain peggy module by the end user. See [workflow](./02_workflow.md) for a more detailed summary of the entire deposit and withdraw process. + +### SendToEth + +Sent to Injective whenever a user wishes to make a withdrawal back to Ethereum. Submitted amount is removed from the user's balance immediately. +The withdrawal is added to the outgoing tx pool as a `types.OutgoingTransferTx` where it will remain until it is included in a batch. + +```go +type MsgSendToEth struct { + Sender string // sender's Injective address + EthDest string // receiver's Ethereum address + Amount types.Coin // amount of tokens to bridge + BridgeFee types.Coin // additional fee for bridge relayers. Must be of same token type as Amount +} + +``` + +### CancelSendToEth + +This message allows the user to cancel a specific withdrawal that is not yet batched. User balance is refunded (`Amount` + `BridgeFee`). + +```go +type MsgCancelSendToEth struct { + TransactionId uint64 // unique tx nonce of the withdrawal + Sender string // original sender of the withdrawal +} + +``` + +### SubmitBadSignatureEvidence + +This call allows anyone to submit evidence that a validator has signed a valset or batch that never existed. Subject contains the batch or valset. + +```go +type MsgSubmitBadSignatureEvidence struct { + Subject *types1.Any + Signature string + Sender string +} +``` + +## Batch Creator Messages + +These messages are sent by the `Batch Creator` subprocess of `peggo` + +### RequestBatch + +This message is sent whenever some `Batch Creator` finds pooled withdrawals that when batched would satisfy their minimum batch fee (`PEGGO_MIN_BATCH_FEE_USD`). +After receiving this message the `Peggy module` collects all withdrawals of the requested token denom, creates a unique token batch (`types.OutgoingTxBatch`) and places it in the `Outgoing Batch pool`. +Withdrawals that are batched cannot be cancelled with `MsgCancelSendToEth`. + + +```go +type MsgRequestBatch struct { + Orchestrator string // orchestrator address interested in creating the batch. Not permissioned. + Denom string // the specific token whose withdrawals will be batched together +} +``` + + +## Oracle Messages + +These messages are sent by the `Oracle` subprocess of `peggo` + +### DepositClaim + +Sent to Injective when a `SendToInjectiveEvent` is emitted from the `Peggy contract`. +This occurs whenever a user is making an individual deposit from Ethereum to Injective. + +```go +type MsgDepositClaim struct { + EventNonce uint64 // unique nonce of the event + BlockHeight uint64 // Ethereum block height at which the event was emitted + TokenContract string // contract address of the ERC20 token + Amount sdkmath.Int // amount of deposited tokens + EthereumSender string // sender's Ethereum address + CosmosReceiver string // receiver's Injective address + Orchestrator string // address of the Orchestrator which observed the event +} +``` + +### WithdrawClaim + +Sent to Injective when a `TransactionBatchExecutedEvent` is emitted from the `Peggy contract`. +This occurs when a `Relayer` has successfully called `submitBatch` on the contract to complete a batch of withdrawals. + +```go +type MsgWithdrawClaim struct { + EventNonce uint64 // unique nonce of the event + BlockHeight uint64 // Ethereum block height at which the event was emitted + BatchNonce uint64 // nonce of the batch executed on Ethereum + TokenContract string // contract address of the ERC20 token + Orchestrator string // address of the Orchestrator which observed the event +} +``` + +### ValsetUpdatedClaim + +Sent to Injective when a `ValsetUpdatedEvent` is emitted from the `Peggy contract`. +This occurs when a `Relayer` has successfully called `updateValset` on the contract to update the `Validator Set` on Ethereum. + +```go + +type MsgValsetUpdatedClaim struct { + EventNonce uint64 // unique nonce of the event + ValsetNonce uint64 // nonce of the valset + BlockHeight uint64 // Ethereum block height at which the event was emitted + Members []*BridgeValidator // members of the Validator Set + RewardAmount sdkmath.Int // Reward for relaying the valset update + RewardToken string // reward token contract address + Orchestrator string // address of the Orchestrator which observed the event +} +``` + +### ERC20DeployedClaim + +Sent to Injective when a `ERC20DeployedEvent` is emitted from the `Peggy contract`. +This occurs whenever the `deployERC20` method is called on the contract to issue a new token asset eligible for bridging. + +```go +type MsgERC20DeployedClaim struct { + EventNonce uint64 // unique nonce of the event + BlockHeight uint64 // Ethereum block height at which the event was emitted + CosmosDenom string // denom of the token + TokenContract string // contract address of the token + Name string // name of the token + Symbol string // symbol of the token + Decimals uint64 // number of decimals the token has + Orchestrator string // address of the Orchestrator which observed the event +} +``` + + +## Signer Messages + +These messages are sent by the `Signer` subprocess of `peggo` + +### ConfirmBatch + +When `Signer` finds a batch that the `Orchestrator` (`Validator`) has not signed off, it constructs a signature with its `Delegated Ethereum Key` and sends the confirmation to Injective. +It's crucial that a `Validator` eventually provides their confirmation for a created batch as they will be slashed otherwise. + +```go +type MsgConfirmBatch struct { + Nonce uint64 // nonce of the batch + TokenContract string // contract address of batch token + EthSigner string // Validator's delegated Ethereum address (previously registered) + Orchestrator string // address of the Orchestrator confirming the batch + Signature string // Validator's signature of the batch +} +``` + +### ValsetConfirm + +When `Signer` finds a valset update that the `Orchestrator` (`Validator`) has not signed off, it constructs a signature with its `Delegated Ethereum Key` and sends the confirmation to Injective. +It's crucial that a `Validator` eventually provides their confirmation for a created valset update as they will be slashed otherwise. + +```go +type MsgValsetConfirm struct { + Nonce uint64 // nonce of the valset + Orchestrator string // address of the Orchestrator confirming the valset + EthAddress string // Validator's delegated Ethereum address (previously registered) + Signature string // Validator's signature of the valset +} +``` + +## Relayer Messages + +The `Relayer` does not send any message to Injective, rather it constructs Ethereum transactions with Injective data to update the `Peggy contract` via `submitBatch` and `updateValset` methods. + +## Validator Messages + +These are messages sent directly using the validator's message key. + +### SetOrchestratorAddresses + +Sent to Injective by an `Operator` managing a `Validator` node. Before being able to start their `Orchestrator` (`peggo`) process, they must register a chosen Ethereum address to represent their `Validator` on Ethereum. +Optionally, an additional Injective address can be provided (`Orchestrator` field) to represent that `Validator` in the bridging process (`peggo`). Defaults to `Validator`'s own address if omitted. + +```go +type MsgSetOrchestratorAddresses struct { + Sender string // address of the Injective validator + Orchestrator string // optional Injective address to represent the Validator in the bridging process (Defaults to Sender if left empty) + EthAddress string // the Sender's (Validator) delegated Ethereum address +} +``` +This message sets the Orchestrator's delegate keys. + diff --git a/.gitbook/developers/modules/injective/peggy/05_slashing.md b/.gitbook/developers/modules/injective/peggy/05_slashing.md new file mode 100644 index 00000000..41d2fa40 --- /dev/null +++ b/.gitbook/developers/modules/injective/peggy/05_slashing.md @@ -0,0 +1,91 @@ +--- +sidebar_position: 5 +title: Slashing +--- + +# Slashing +### Security Concerns + +The **Validator Set** is the actual set of keys with stake behind them, which are slashed for double-signs or other +misbehavior. We typically consider the security of a chain to be the security of a _Validator Set_. This varies on +each chain, but is our gold standard. Even IBC offers no more security than the minimum of both involved Validator Sets. + +The **Eth bridge relayer** is a binary run alongside the main `injectived` daemon by the validator set. It exists purely as a matter of code organization and is in charge of signing Ethereum transactions, as well as observing events on Ethereum and bringing them into the Injective Chain state. It signs transactions bound for Ethereum with an Ethereum key, and signs over events coming from Ethereum with an Injective Chain account key. We can add slashing conditions to any mis-signed message by any _Eth Signer_ run by the _Validator Set_ and be able to provide the same security as the _Validator Set_, just a different module detecting evidence of malice and deciding how much to slash. If we can prove a transaction signed by any _Eth Signer_ of the _Validator Set_ was illegal or malicious, then we can slash on the Injective Chain side and potentially provide 100% of the security of the _Validator Set_. Note that this also has access to the 3 week unbonding period to allow evidence to slash even if they immediately unbond. + +Below are various slashing conditions we use in Peggy. + +## PEGGYSLASH-01: Signing fake validator set or tx batch evidence + +This slashing condition is intended to stop validators from signing over a validator set and nonce that has never existed on the Injective Chain. It works via an evidence mechanism, where anyone can submit a message containing the signature of a validator over a fake validator set. This is intended to produce the effect that if a cartel of validators is formed with the intention of submitting a fake validator set, one defector can cause them all to be slashed. +```go +// This call allows anyone to submit evidence that a +// validator has signed a valset, batch, or logic call that never +// existed. Subject contains the batch, valset, or logic call. +type MsgSubmitBadSignatureEvidence struct { + Subject *types1.Any + Signature string + Sender string +} +``` +**Implementation considerations:** + +The trickiest part of this slashing condition is determining that a validator set has never existed on Injective. To save space, we will need to clean up old validator sets. We could keep a mapping of validator set hash to true in the KV store, and use that to check if a validator set has ever existed. This is more efficient than storing the whole validator set, but its growth is still unbounded. It might be possible to use other cryptographic methods to cut down on the size of this mapping. It might be OK to prune very old entries from this mapping, but any pruning reduces the deterrence of this slashing condition. + +The implemented version of this slashing condition stores a map of hashes for all past events, this is smaller than storing entire batches or validator sets and doesn't have to be accessed as frequently. A possible but not currently implemented efficiency optimization would be to remove hashes from this list after a given period. But this would require storing more metadata about each hash. + +Currently automatic evidence submission is not implemented in the relayer. By the time a signature is visible on Ethereum it's already too late for slashing to prevent bridge highjacking or theft of funds. Furthermore since 66% of the validator set is required to perform this action anyways that same controlling majority could simply refuse the evidence. The most common case envisioned for this slashing condition is to break up a cabal of validators trying to take over the bridge by making it more difficult for them to trust one another and actually coordinate such a theft. + +The theft would involve exchanging of slashable Ethereum signatures and open up the possibility of a manual submission of this message by any defector in the group. + +Currently this is implemented as an ever growing array of hashes in state. + +## PEGGYSLASH-02: Failure to sign tx batch + +This slashing condition is triggered when a validator does not sign a transaction batch within `SignedBatchesWindow` upon it's creation by the Peggy module. This prevents two bad scenarios- + +1. A validator simply does not bother to keep the correct binaries running on their system, +2. A cartel of >1/3 validators unbond and then refuse to sign updates, preventing any batches from getting enough signatures to be submitted to the Peggy Ethereum contract. + +## PEGGYSLASH-03: Failure to sign validator set update + +This slashing condition is triggered when a validator does not sign a validator set update which is produced by the Peggy module. This prevents two bad scenarios- + +1. A validator simply does not bother to keep the correct binaries running on their system, +2. A cartel of >1/3 validators unbond and then refuse to sign updates, preventing any validator set updates from getting enough signatures to be submitted to the Peggy Ethereum contract. If they prevent validator set updates for longer than the Injective Chain unbonding period, they can no longer be punished for submitting fake validator set updates and tx batches (PEGGYSLASH-01 and PEGGYSLASH-03). + +To deal with scenario 2, PEGGYSLASH-03 will also need to slash validators who are no longer validating, but are still in the unbonding period for up to `UnbondSlashingValsetsWindow` blocks. This means that when a validator leaves the validator set, they will need to keep running their equipment for at least `UnbondSlashingValsetsWindow` blocks. This is unusual for the Injective Chain, and may not be accepted by the validators. + +The current value of `UnbondSlashingValsetsWindow` is 25,000 blocks, or about 12-14 hours. We have determined this to be a safe value based on the following logic. So long as every validator leaving the validator set signs at least one validator set update that they are not contained in then it is guaranteed to be possible for a relayer to produce a chain of validator set updates to transform the current state on the chain into the present state. + +It should be noted that both PEGGYSLASH-02 and PEGGYSLASH-03 could be eliminated with no loss of security if it where possible to perform the Ethereum signatures inside the consensus code. This is a pretty limited feature addition to Tendermint that would make Peggy far less prone to slashing. + +## PEGGYSLASH-04: Submitting incorrect Eth oracle claim (Disabled for now) + +The Ethereum oracle code (currently mostly contained in attestation.go), is a key part of Peggy. It allows the Peggy module to have knowledge of events that have occurred on Ethereum, such as deposits and executed batches. PEGGYSLASH-03 is intended to punish validators who submit a claim for an event that never happened on Ethereum. + +**Implementation considerations** + +The only way we know whether an event has happened on Ethereum is through the Ethereum event oracle itself. So to implement this slashing condition, we slash validators who have submitted claims for a different event at the same nonce as an event that was observed by >2/3s of validators. + +Although well-intentioned, this slashing condition is likely not advisable for most applications of Peggy. This is because it ties the functioning of the Injective Chain which it is installed on to the correct functioning of the Ethereum chain. If there is a serious fork of the Ethereum chain, different validators behaving honestly may see different events at the same event nonce and be slashed through no fault of their own. Widespread unfair slashing would be very disruptive to the social structure of the Injective Chain. + +Maybe PEGGYSLASH-04 is not necessary at all: + +The real utility of this slashing condition is to make it so that, if >2/3 of the validators form a cartel to all submit a fake event at a certain nonce, some number of them can defect from the cartel and submit the real event at that nonce. If there are enough defecting cartel members that the real event becomes observed, then the remaining cartel members will be slashed by this condition. However, this would require >1/2 of the cartel members to defect in most conditions. + +If not enough of the cartel defects, then neither event will be observed, and the Ethereum oracle will just halt. This is a much more likely scenario than one in which PEGGYSLASH-04 is actually triggered. + +Also, PEGGYSLASH-04 will be triggered against the honest validators in the case of a successful cartel. This could act to make it easier for a forming cartel to threaten validators who do not want to join. + +## PEGGYSLASH-05: Failure to submit Eth oracle claims (Disabled for now) + +This is similar to PEGGYSLASH-04, but it is triggered against validators who do not submit an oracle claim that has been observed. In contrast to PEGGYSLASH-04, PEGGYSLASH-05 is intended to punish validators who stop participating in the oracle completely. + +**Implementation considerations** + +Unfortunately, PEGGYSLASH-05 has the same downsides as PEGGYSLASH-04 in that it ties the correct operation of the Injective Chain to the Ethereum chain. Also, it likely does not incentivize much in the way of correct behavior. To avoid triggering PEGGYSLASH-05, a validator simply needs to copy claims which are close to becoming observed. This copying of claims could be prevented by a commit-reveal scheme, but it would still be easy for a "lazy validator" to simply use a public Ethereum full node or block explorer, with similar effects on security. Therefore, the real usefulness of PEGGYSLASH-05 is likely minimal + +PEGGYSLASH-05 also introduces significant risks. Mostly around forks on the Ethereum chain. For example recently OpenEthereum failed to properly handle the Berlin hardfork, the resulting node 'failure' was totally undetectable to automated tools. It didn't crash so there was no restart to perform, blocks where still being produced although extremely slowly. If this had occurred while Peggy was running with PEGGYSLASH-05 active it would have caused those validators to be removed from the set. Possibly resulting in a very chaotic moment for the chain as dozens of validators where removed for little to no fault of their own. + +Without PEGGYSLASH-04 and PEGGYSLASH-05, the Ethereum event oracle only continues to function if >2/3 of the validators voluntarily submit correct claims. Although the arguments against PEGGYSLASH-04 and PEGGYSLASH-05 are convincing, we must decide whether we are comfortable with this fact. Alternatively we must be comfortable with the Injective Chain potentially halting entirely due to Ethereum generated factors. + diff --git a/.gitbook/developers/modules/injective/peggy/06_end_block.md b/.gitbook/developers/modules/injective/peggy/06_end_block.md new file mode 100644 index 00000000..40bcae02 --- /dev/null +++ b/.gitbook/developers/modules/injective/peggy/06_end_block.md @@ -0,0 +1,51 @@ +--- +sidebar_position: 5 +title: End-Block +--- + +# EndBlocker + +Upon the end of each block the following operations are performed to the state of the module + +## 1. Slashing + +### Validator slashing + +A validator is slashed for not signing over a valset update which passed the `SignedValsetsWindow`. +In other words, if a validator fails to provide the confirmation for a valset update within a preconfigured amount of time, they will be slashed for `SlashFractionValset` portion of their stake and get jailed immediately. + +### Batch Slashing + +A validator is slashed for not signing over a batch which passed the `SignedBatchesWindow`. +In other words, if a validator fails to provide the confirmation for a batch within a preconfigured amount of time, they will be slashed for `SlashFractionBatch` portion of their stake and get jailed immediately. + +## 2. Cancelling timed out batches + +Any batch still present in the `Outgoing Batch pool` whose `BatchTimeout` (a designated Ethereum height by which the batch should have executed) is exceeded gets removed from the pool and the withdrawals are reinserted back into the `Outgoing Tx pool`. + +## 3. Creating new Valset updates + +A new `Validator Set` update will be created automatically when: +* there is a power diff greater than 5% between the latest and current validator set +* a validator begins unbonding + +The new validator set is eventually relayed to `Peggy contract` on Ethereum. + +## 4. Pruning old validator sets + +Previously observed valsets that passed the `SignedValsetsWindow` are removed from the state + +## 5. Attestation processing + +Processes all attestations (an aggregate of claims for a particular event) currently being voted on. Each attestation is processed one by one to ensure each `Peggy contract` event is processed. +After each processed attestation the module's `lastObservedEventNonce` and `lastObservedEthereumBlockHeight` are updated. + +Depending on the type of claim in the attestation, the following is executed: +* `MsgDepositClaim`: deposited tokens are minted/unlocked for the receiver address +* `MsgWithdrawClaim`: corresponding batch is removed from the outgoing pool and any previous batch is cancelled +* `MsgValsetUpdatedClaim`: the module's `LastObservedValset` is updated +* `MsgERC20DeployedClaim`: new token metadata is validated and registered within the module's state (`denom <-> token_contract`) + +## 6. Cleaning up processed attestations + +Previously processed attestations (height earlier that `lastObservedEthereumBlockHeight`) are removed from the module state diff --git a/.gitbook/developers/modules/injective/peggy/07_events.md b/.gitbook/developers/modules/injective/peggy/07_events.md new file mode 100644 index 00000000..68ea6656 --- /dev/null +++ b/.gitbook/developers/modules/injective/peggy/07_events.md @@ -0,0 +1,143 @@ +--- +sidebar_position: 7 +title: Events +--- + +# Events + +The peggy module emits the following events: + +## EndBlocker + +### EventAttestationObserved +| Type | Attribute Key | Attribute Value | +|--------|------------------|---------------------------| +| int32 | attestation_type | {attestation_type} | +| string | bridge_contract | {bridge_contract_address} | +| uint64 | bridge_chain_id | {bridge_chain_id} | +| []byte | attestation_id | {attestation_id} | +| uint64 | nonce | {event_nonce} | + +### EventValidatorSlash +| Type | Attribute Key | Attribute Value | +|--------|-------------------|-----------------------| +| string | reason | {reason_for_slashing} | +| int64 | power | {validator_power} | +| string | consensus_address | {consensus_addr} | +| string | operator_address | {operator_addr} | +| string | moniker | {validator_moniker} | + + +## Handler + +### EventSetOrchestratorAddresses + +| Type | Attribute Key | Attribute Value | +|--------|----------------------|---------------------| +| string | validator_address | {validator_addr} | +| string | orchestrator_address | {orchestrator_addr} | +| string | operator_eth_address | {eth_addr} | + +### EventSendToEth + +| Type | Attribute Key | Attribute Value | +|----------|----------------|-----------------| +| message | outgoing_tx_id | {tx_id} | +| string | sender | {sender_addr} | +| string | receiver | {dest_addr} | +| sdk.Coin | amount | {token_amount} | +| sdk.Coin | bridge_fee | {token_amount} | + + +### EventBridgeWithdrawCanceled +| Type | Attribute Key | Attribute Value | +|----------------------|-----------------|-------------------| +| withdrawal_cancelled | bridge_contract | {bridge_contract} | +| withdrawal_cancelled | bridge_chain_id | {bridge_chain_id} | + + +### EventOutgoingBatch + +| Type | Attribute Key | Attribute Value | +|----------|----------------------|-----------------| +| string | denom | {token_denom} | +| string | orchestrator_address | {orch_addr} | +| uint64 | batch_nonce | {batch_nonce} | +| uint64 | batch_timeout | {block_height} | +| []uint64 | batch_tx_ids | {ids} | + +### EventOutgoingBatchCanceled +| Type | Attribute Key | Attribute Value | +|--------|-----------------|-------------------| +| string | bridge_contract | {bridge_contract} | +| uint64 | bridge_chain_id | {bridge_chain_id} | +| uint64 | batch_id | {id} | +| uint64 | nonce | {nonce} | + +### EventValsetConfirm + +| Type | Attribute Key | Attribute Value | +|--------|----------------------|-----------------| +| uint64 | valset_nonce | {nonce} | +| string | orchestrator_address | {prch_addr} | + + +### EventConfirmBatch + +| Type | Attribute Key | Attribute Value | +|--------|----------------------|-----------------| +| uint64 | batch_nonce | {nonce} | +| string | orchestrator_address | {orch_addr} | + +### EventDepositClaim + +| Type | Attribute Key | Attribute Value | +|---------|----------------------|-------------------| +| uint64 | event_nonce | {event_nonce} | +| uint64 | event_height | {event_height} | +| []byte | attestation_id | {attestation_key} | +| string | ethereum_sender | {sender_addr} | +| string | cosmos_receiver | {receiver_addr} | +| string | token_contract | {contract_addr} | +| sdk.Int | amount | {token_amount} | +| string | orchestrator_address | {orch_addr} | +| string | data | {custom_data} | + + +### EventWithdrawClaim + +| Type | Attribute Key | Attribute Value | +|--------|----------------------|-------------------| +| uint64 | event_nonce | {event_nonce{ | +| uint64 | event_height | {event_height} | +| []byte | attestation_id | {attestation_key} | +| uint64 | batch_nonce | {batch_nonce} | +| string | token_contract | {contract_addr} | +| string | orchestrator_address | {orch_addr} | + +### EventERC20DeployedClaim +| Type | Attribute Key | Attribute Value | +|--------|----------------------|------------------------| +| uint64 | event_nonce | {event_nonce} | +| uint64 | event_height | {event_height} | +| []byte | attestation_id | {attestation_key} | +| string | cosmos_denom | {token_denom} | +| string | token_contract | {token_conntract_addr} | +| string | name | {token_name} | +| string | symbol | {token_symbol} | +| uint64 | decimals | {token_decimals} | +| string | orchestrator_address | {orch_addr} | + +### EventValsetUpdateClaim +| Type | Attribute Key | Attribute Value | +|--------------------|----------------------|-----------------------| +| uint64 | event_nonce | {event_nonce} | +| uint64 | event_height | {event_height} | +| []byte | attestation_id | {attestation_key} | +| uint64 | valset_nonce | {valset_nonce} | +| []*BridgeValidator | valset_members | {array_of_validators} | +| sdk.Int | reward_amount | {amount} | +| string | reward_token | {contract_addr} | +| string | orchestrator_address | {orch_addr} | + + diff --git a/.gitbook/developers/modules/injective/peggy/08_params.md b/.gitbook/developers/modules/injective/peggy/08_params.md new file mode 100644 index 00000000..d76128cc --- /dev/null +++ b/.gitbook/developers/modules/injective/peggy/08_params.md @@ -0,0 +1,112 @@ +--- +sidebar_position: 8 +title: Parameters +--- + +# Params + +This document describes and advises configuration of the Peggy module's parameters. The default parameters can be found in the genesis.go of the peggy module. + +```go +type Params struct { + PeggyId string + ContractSourceHash string + BridgeEthereumAddress string + BridgeChainId uint64 + SignedValsetsWindow uint64 + SignedBatchesWindow uint64 + SignedClaimsWindow uint64 + TargetBatchTimeout uint64 + AverageBlockTime uint64 + AverageEthereumBlockTime uint64 + SlashFractionValset math.LegacyDec + SlashFractionBatch math.LegacyDec + SlashFractionClaim math.LegacyDec + SlashFractionConflictingClaim math.LegacyDec + UnbondSlashingValsetsWindow uint64 + SlashFractionBadEthSignature math.LegacyDec + CosmosCoinDenom string + CosmosCoinErc20Contract string + ClaimSlashingEnabled bool + BridgeContractStartHeight uint64 + ValsetReward types.Coin +} +``` + +## `peggy_id` + +A random 32 byte value to prevent signature reuse, for example if the +Injective Chain validators decided to use the same Ethereum keys for another chain +also running Peggy we would not want it to be possible to play a deposit +from chain A back on chain B's Peggy. This value IS USED ON ETHEREUM so +it must be set in your genesis.json before launch and not changed after +deploying Peggy. Changing this value after deploying Peggy will result +in the bridge being non-functional. To recover just set it back to the original +value the contract was deployed with. + +## `contract_source_hash` + +The code hash of a known good version of the Peggy contract +solidity code. This can be used to verify the correct version +of the contract has been deployed. This is a reference value for +governance action only it is never read by any Peggy code + +## `bridge_ethereum_address` + +is address of the bridge contract on the Ethereum side, this is a +reference value for governance only and is not actually used by any +Peggy module code. + +The Ethereum bridge relayer use this value to interact with Peggy contract for querying events and submitting valset/batches to Peggy contract. + +## `bridge_chain_id` + +The bridge chain ID is the unique identifier of the Ethereum chain. This is a reference value only and is not actually used by any Peggy code + +These reference values may be used by future Peggy client implementations to allow for consistency checks. + +## Signing windows + +* `signed_valsets_window` +* `signed_batches_window` +* `signed_claims_window` + +These values represent the time in blocks that a validator has to submit +a signature for a batch or valset, or to submit a claim for a particular +attestation nonce. + +In the case of attestations this clock starts when the +attestation is created, but only allows for slashing once the event has passed. +Note that that claims slashing is not currently enabled see [slashing spec](./05_slashing.md) + +## `target_batch_timeout` + +This is the 'target' value for when batches time out, this is a target because +Ethereum is a probabilistic chain and you can't say for sure what the block +frequency is ahead of time. + +## Ethereum timing + +* `average_block_time` +* `average_ethereum_block_time` + +These values are the average Injective Chain block time and Ethereum block time respectively +and they are used to compute what the target batch timeout is. It is important that +governance updates these in case of any major, prolonged change in the time it takes +to produce a block + +## Slash fractions + +* `slash_fraction_valset` +* `slash_fraction_batch` +* `slash_fraction_claim` +* `slash_fraction_conflicting_claim` + +The slashing fractions for the various peggy related slashing conditions. The first three +refer to not submitting a particular message, the third for failing to submit a claim and the last for submitting a different claim than other validators. + +Note that claim slashing is currently disabled as outlined in the [slashing spec](./05_slashing.md) + +## `valset_reward` + +Valset reward is the reward amount paid to a relayer when they relay a valset to the Peggy contract on Ethereum. \ No newline at end of file diff --git a/.gitbook/developers/modules/injective/peggy/09_relay_semantics.md b/.gitbook/developers/modules/injective/peggy/09_relay_semantics.md new file mode 100644 index 00000000..8dbcad36 --- /dev/null +++ b/.gitbook/developers/modules/injective/peggy/09_relay_semantics.md @@ -0,0 +1,53 @@ +--- +sidebar_position: 9 +title: Relay Semantics +--- + +# Relay Semantics + +This document is designed to assist developers in implementing alternate Peggy relayers. The two major components of the Orchestrator which interact with Ethereum. The Peggy bridge has been designed for increased efficiency, not for ease of use. This means there are many implicit requirements of these external binaries which this document does it's best to make explicit. + +The Peggy `orchestrator` combines three distinct roles that need to be performed by external binaries in the Peggy bridge. This document highlights the requirements of the `relayer` which is one of those roles included in the `orchestrator`. + +## Semantics for Validator set update relaying + +### Sorting and Ordering of the Validator set and signatures + +When updating the validator set in the Peggy contract you must provide a copy of the old validator set. This _MUST_ only be taken from the last ValsetUpdated event on the Ethereum chain. + +Providing the old validator set is part of a storage optimization, instead of storing the entire validator set in Ethereum storage it is instead provided by each caller and stored in the much cheaper Ethereum event queue. No sorting of any kind is performed in the Peggy contract, meaning the list of validators and their new signatures must be submitted in exactly the same order as the last call. + +For the purpose of normal operation this requirement can be shortened to 'sort the validators by descending power, and by Eth address bytes where power is equal'. Since the peggy module produces the validator sets they should always come in order. It is not possible for the relayer to change this order since it is part of the signature. But a change in this sorting method on the Peggy module side would halt valset updates and essentially decouple the bridge unless your implementation is smart enough to take a look at the last submitted order rather than blindly following sorting. + +### Deciding what Validator set to relay + +The Injective Chain simply produces a stream of validator sets, it does not make any judgement on how they are relayed. It's up to the relayer implementation to determine how to optimize the gas costs of this relaying operation. + +For example lets say we had validator sets `A, B, C, and D` each is created when there is a 5% power difference between the last Peggy validator set snapshot in the store and the currently active validator set. + +5% is an arbitrary constant. The specific value chosen here is a tradeoff made by the chain between how up to date the Ethereum validator set is and the cost to keep it updated. The higher this value is the lower the portion of the voting validator set is needed to highjack the bridge in the worst case. If we made a new validator set update every block 66% would need to collude, the 5% change threshold means 61% of the total voting power colluding in a given validator set may be able to steal the funds in the bridge. + +``` +A -> B -> C -> D + 5% 10% 15% +``` + +The relayer should iterate over the event history for the Peggy Ethereum contract, it will determine that validator set A is currently in the Peggy bridge. It can choose to either relay validator sets B, C and then D or simply submit validator set D. Provided all validators have signed D it has more than 66% voting power and can pass on it's own. Without paying potentially several hundred dollars more in Ethereum to relay the intermediate sets. + +Performing this check locally somehow, before submitting transactions, is essential to a cost effective relayer implementation. You can either use a local Ethereum signing implementation and sum the powers and signatures yourself, or you can simply use the `eth_call()` Ethereum RPC to simulate the call on your Ethereum node. + +Note that `eth_call()` often has funny gotchas. All calls fail on Geth based implementations if you don't have any Ethereum to pay for gas, while on Parity based implementations your gas inputs are mostly ignored and an accurate gas usage is returned. + +## Semantics for transaction batch relaying + +In order to submit a transaction batch you also need to submit the last set of validators and their staking powers. This is to facilitate the same storage optimization mentioned there. + +### Deciding what batch to relay + +Making a decision about which batch to relay is very different from deciding which validator set to relay. Batch relaying is primarily motivated by fees, not by a desire to maintain the integrity of the bridge. So the decision mostly comes down to fee computation, this is further complicated by the concept of 'batch requests'. Which is an unpermissioned transaction that requests the Peggy module generate a new batch for a specific token type. + +Batch requests are designed to allow the user to withdraw their tokens from the send to Ethereum tx pool at any time up until a relayer shows interest in actually relaying them. While transactions are in the pool there's no risk of a double spend if the user is allowed to withdraw them by sending a MsgCancelSendToEth. Once the transaction enters a batch due to a 'request batch' that is no longer the case and the users funds must remain locked until the Oracle informs the Peggy module that the batch containing the users tokens has become somehow invalid to submit or has been executed on Ethereum. + +A relayer uses the query endpoint `BatchFees` to iterate over the send to Eth tx pool for each token type, the relayer can then observe the price for the ERC-20 tokens being relayed on a dex and compute the gas cost of executing the batch (via `eth_call()`) as well as the gas cost of liquidating the earnings on a dex if desired. Once a relayer determines that a batch is good and profitable it can send a `MsgRequestBatch` and the batch will be created for the relayer to relay. + +There are also existing batches, which the relayer should also judge for profitability and make an attempt at relaying using much the same method. diff --git a/.gitbook/developers/modules/injective/peggy/10_future_improvements.md b/.gitbook/developers/modules/injective/peggy/10_future_improvements.md new file mode 100644 index 00000000..76771318 --- /dev/null +++ b/.gitbook/developers/modules/injective/peggy/10_future_improvements.md @@ -0,0 +1,22 @@ +--- +sidebar_position: 10 +title: Future Improvements +--- + +# Future Improvements + +### Native Ethereum Signing + +Validators run a required `Eth Signer` in the peggo orchestrator because we can not yet insert this sort of simple signature logic into Cosmos SDK based chains without significant modification to Tendermint. This may be possible in the future with [modifications to Tendermint](https://github.com/tendermint/tendermint/issues/6066). + +It should be noted that both [PEGGYSLASH-02](./05_slashing.md) and [PEGGYSLASH-03](./05_slashing.md) could be eliminated with no loss of security if it where possible to perform the Ethereum signatures inside the consensus code. This is a pretty limited feature addition to Tendermint that would make Peggy far less prone to slashing. + +### Improved Validator Incentives + +Currently validators in Peggy have only one carrot - the extra activity brought to the chain by a functioning bridge. + +There are on the other hand a lot of negative incentives (sticks) that the validators must watch out for. These are outlined in the [slashing spec](./05_slashing.md). + +One negative incentive that is not covered under slashing is the cost of submitting oracle submissions and signatures. Currently these operations are not incentivized, but still cost the validators fees to submit. This isn't a severe issue considering the relatively cheap transaction fees on the Injective Chain currently, but of course is an important factor to consider as transaction fees rise. + +Some positive incentives for correctly participating in the operation of the bridge should be under consideration. In addition to eliminating the fees for mandatory submissions. \ No newline at end of file diff --git a/.gitbook/developers/modules/injective/peggy/README.md b/.gitbook/developers/modules/injective/peggy/README.md new file mode 100644 index 00000000..87c78767 --- /dev/null +++ b/.gitbook/developers/modules/injective/peggy/README.md @@ -0,0 +1,39 @@ +# `Peggy` + +## Abstract + +The peggy module enables the Injective Chain to support a trustless, on-chain bidirectional ERC-20 token bridge to Ethereum. In this system, +holders of ERC-20 tokens on Ethereum can convert their ERC-20 tokens to Cosmos-native coins on +the Injective Chain and vice-versa. + +This decentralized bridge is secured and operated by the validators of the Injective Chain. + +## Contents + +1. **[Definitions](./01_definitions.md)** +2. **[Workflow](./02_workflow.md)** +3. **[State](./03_state.md)** +4. **[Messages](./04_messages.md)** +5. **[Slashing](./05_slashing.md)** +6. **[End-Block](./06_end_block.md)** +7. **[Events](./07_events.md)** +8. **[Parameters](./08_params.md)** + +### Components + +1. **[Peggy](https://etherscan.io/address/0xF955C57f9EA9Dc8781965FEaE0b6A2acE2BAD6f3) smart contract on Ethereum** +2. **Peggy module on the Injective Chain** +3. **[Peggo](https://github.com/InjectiveLabs/peggo) (off-chain relayer aka orchestrator)** + - **Oracle** (Observes events of Peggy contract and send claims to the Peggy module) + - **EthSigner** (Signs Valset and Batch confirmations to the Peggy module) + - **Batch Requester** (Sends batch token withdrawal requests to the Peggy module) + - **Valset Relayer** (Submits Validator set updates to the Peggy contract) + - **Batch Relayer** (Submits batches of token withdrawals to the Peggy contract) + +In addition to running an `injectived` node to sign blocks, Injective Chain validators must also run the `peggo` orchestrator to relay data from the Peggy smart contract on Ethereum and the Peggy module on the Injective Chain. + +### Peggo Functionalities + +1. **Maintaining an up-to-date checkpoint of the Injective Chain validator set on Ethereum** +2. **Transferring ERC-20 tokens from Ethereum to the Injective Chain** +3. **Transferring pegged tokens from the Injective Chain to Ethereum** diff --git a/.gitbook/developers/modules/injective/peggy/images/SendToCosmos.png b/.gitbook/developers/modules/injective/peggy/images/SendToCosmos.png new file mode 100644 index 0000000000000000000000000000000000000000..c66908f6a93672f6155a46d39385a63f5cb7456b GIT binary patch literal 302926 zcmeFZXIK;M_C1U!Dqy85ND=A1gLDKz0-=Xq1f&yshk$^HC`CHbYk*J!(z{@x_nuIs zmr$g4_)nfwJM_ra*HtlH%S>6OI0_xsxRTm8zJKiJem;2fUcg&Jx-WA(>c^7eD1I}-bQWg~c*CS058NR%2 z{nhsH5#I+(#_OZ+pB9PKGk)p2|Md|LZ)z9mHyqVeZX=!`@}O1KCp>l^A3aP6n|%nQ zG-4;8&lloupcUZ}CoG-sEm8pKg>Lg-y=80K=zA-qySr+R?L5(cqjE02v1T&S-%;IE zWDCjH+d$>5>6{^{WnLN^Y}Fqm`yzy0^_s-Zmkd9?nJAGQP+j=YSXTAj*Y5~{=*U0% zCdHm(a?WXNecZ>IE6wOwCZP6UKG-mVZ^l)5htx-l)WrCr6wo8?cyeHV^vu>LcbkatP=tUDY>^Bx}Aiy*Q5*NiKH_Y(t1#{>90U*EkZ#ms({ zTF`+=5W-j#4E}i4tCaXa3P1L%bbi1S$47b@S9@FWYH-gTi8sH}hJE2nd?UmiPJ0vI zgjPwGLQQJ;9@V#-v$TTm_~wF-9%sI|MifNVK5w$dz-ieV z1C}c!cO3a2QRclF`tIZyAxvZNfRlphOL5!c+23jR%)O# zB6kS(_xksc`^?=Jzv=o+*wzo@w!5=T+v)hX0@`V9}-iBrhdCJ$L;i9mQEqY^~ESX4N*d@ zT<7DBCsd57j}4!Mf1Hl8euek>{zUL2Ib}u%M)D|3dtS#_d-j6$`v=d%O%=8?W!1IR zc347~H)0E8?|1S;QV`OW@awAc1s9m1l6kzYhowzPFaQCbyQU zICRCY6P${oR#wT|%FrGXUG-Q+KDhN(y3@=)_khjKsPlbw7{_gwH@ z?0fzX2E<;Rp!*QwN^(QSI=zY)dv8`C1Nc1e6YCPQA86Y(>J;cCk3-8?oZvN?HIbgt zNABAq+lq5$MD+M>_?DqBLhV9>h?eQ!eiDWg3`KRA*_%+CrddXmzGJ@~FUpn{*Cx`s zW(EdZP_@)nl9J0iD(_I97L8 zS5vQ54_6n;m3YAh5>;e+u@!9}<;NV9Fc7cH9>d}ywbao4&3Dwd@VMc)b~m!Gndw8P zP1i|BNt8GjO`g9Dv^I^VgqPNycy410B{N;ej_Vi#kZ_iH6 zB8^s^7QU97mKmV{nH+~$h2yy1M3SwciMUm^6|u=~c27oeG{;!g;6YjHd&3;VxT*Zc zcv!=^$?5W)>vwQN7(=Qf;v+DRL{lA=OO$JsVZB7X0lf^pkp{7brUq+5(k3^M4pvC+0)e1^^G*_>iV$_`QLB& zPQu(z#r8&ifw#qL6KlpjoL1+U{NDQ6o_n8ty68H`oXuPlzP4~<^6v00rMv3{M7Ig< zB5r$Au9Fzt6MK+F^O%rPYCBL?@|oZ;U$hV^~UyB!%iye*Cs!XGo+tFPZ$XF}u_C@|4hTK5x+X^*TdeOMkO=&BWBv)QspU3ta(+F5T0|wLZCL zokek1eX0EJ_;Y{fHCO4(`J$m3_dbUc3zTZP18;5zaz?y&&VS`a_jk)*J9j8O-_^q)2`gsWVe4Z7y^0HY&V?(pFGSh{5i} zyu4*8um@Rv&B3}azH2&B{45pYvHz6rX}7(%&(x@fy_wL}0}TpUx}g_Oq( zVcPD7&}>T1x#m<#S7&BLO(lAeM8Iia-t2SZ#q()x^~#RQ{AWc6F1p0!EY%OKjYh;K zh|s*_6eyAYrGe2A`;lo^^{rQKA?ot0EFBuhc?EgpDujJS5_}^aTPebnF77q9USsDj zkC*LTxi&XNx4bUq@Dd1@z1Mwu4Jw+(ojP{Z(dNC2@oW~_Nj_koWIvws+=9L$Pax=rclYGfvd|;t)IoB)n6U%PKP$|xeIM?e(-sC2;Xw> zmGb;}s=976@MJ*%dEqnR(z7giX>usP^{RcLov?*)wrc~KV+?5)^qLY_6y09| z4<@fx*KXy^j5I7aY#rY_GjSE!eX?q{%~Y(ikuEMNd5;l4*tg`hs4bqOPS(Hx4p-ro z2bnlZ-7=~P-N(r0vs*iH<;RpV^(gX`HSy&Ei?6pbuCV#(h`8fE`mPRp@;aaD^;X#P zimSupN9kw!k5S`R_IK-W${Dxbv}!x!{_}_}-Xp;!-+Aq=1vCL4aq^eyeU&t|wwjf4+f#rqzBkuVumFQ`Sb_DM zIM=RF;NSskSAd7a70Q3E%Uxl{x%$U;TpXMbYn*F;e~&V-#QuE*9@u^Uw!9ks7Uu@= z9})2I%)tG}yKg&ZT>Z!Tb%3?v;7Du8C@26+4KrtRb9)yn2UiwGd=X#+zT*pB7aSZi z2JGXCf;#;#;P~U#nmVpJU?mYV2Pmh>D+g0^PEV*K_Bc3Vo+7|1)ZEpC))Q)H?;_$U zPWQ(8xB`9YwgfJUl!&J@_~soGrO{o<4ob#m&pb%gX`0gTuwk-qpmD!`|h|-wyJR`Hf(_)WnV(Q@LDo#g-J<&h^{`NV|J+1$BCVQ8^e=Xn(a$#TL;^E}x`scBM zUB$3lMO3Xl&Fyq$t)ak}0q2n55#$jT`(uYcz4WhB{@boP|Js$0pP%>Ncm21Q{&QD| zi@CFm0~9!^tHi%9*xz^l_ZR=ZqZk+VyZ_r*{B5BB*b0oa1c4aWKd+hu0mpd9_CYZ@wEW;*sRk=7`Ro`C#z!c9TVBs{$Pl%_)Q zvdCta)G=6J%0y~v>O^Y7dD^m9I?TiUV7=SYqPKf<_p-Lpv_oQ(ChbLOT zfb@^;ai2J-p1j7vy-EB3{YmS!ET{Xm|MlaTT_LLFy$<*JACCikmV^IcRQ?!I+P^-_ ze+{j_#^t|HxxdEcuW|XmV9sCh@>jh46)%6~>HkLG{^BqH9UJ}{m%qm4|ALu+#misu z@>jh4rKkT>$o|E>|2r=HH7mlnC`z_h*kjXR_XLBKZ!+2> z6tRzcl>3H?;VxcBqDaJ;feW~N?mb&P+I;R<^771u&;P=={ACNSXqE5TcH2^niUbc0 zY%dC?sh$vBQxSGzJA#PQ^_X(oaPCxU3nfxWex{K%jCN>-N*w*Xx;q;}gLFQ&XeHkV~5i|ePXBU<(c+^Q?43ARZw)lDwe8HsJ!mCDuR^JwL9W_s@bnA#VVRF_K}KU(pWK1!C>>F1GGa=h4oPPc$pcr zH7c6zy#T|bFiN4`3j3+Lal3|tpx1VN;)jzT<}{Bsxg9RB@jw z-5STtb3z0q>th*ks2eCt<2w(7YNf->bV&m4vwg8}kS-`}h*xa4n~(8DH^lT4k!zeL zoW~&a6^d!p$OoD&)f+B|YUd0gTG{E>yuXv1V8n}3*&idJFoS7~gTR&#YXxmZ&m zz4ijey18@>QJ7R*h3Z_dLfZ?ffgqWKHi#Mlw>8b=2MEzGg%sK!+hZ5_Vm&K57?Tql z4^UmMtApPeGZ&+!cNbz*lE{rbTh2~rE;%vTv8C{RlzD>Tx*0=<4TwHj z0#^4)*eS~}zGf3e;|`qHwqe2|dBo0lY^OI_sE?6cC6T+ub!&P`>oq%Jg&ZH>=-5p^ zmUEqwp7_Dr$%8hF=Shq@JvnA4muG#KiRHZ_Y%B2D?JrmF@?X7i$Ii1?@+R%aaH&Bv zq2$~GL*(VY@um62L3ML5nbb_WT*RY?Noj5PdVa+r=-6+$l;QpF3F*bjj*L_%jm*sef3O7-OV$- z_O+DZ&5!L6^5jo(vcJXa4ihjw7gY+4>;u`65;mL-zgn|KoRb7>Ei~^h1K+TU9RP)9 zm`dXVNL|{sZB5q1-qT&`J%d77&egReiL+l{!81*;9@fI5=$mJfm&cLCI0E*Q!r4v? z_HbJWE9k^pd{>a7p`pv=`5_v%e116NaHK<2OTm1U7jdmd zurND3)e*Am2i90kRHoBzr3$KktePp6+h!k3lU`pP(;in3RDOQlWRI-F z9XOoHvG?h6Vkj}wTQY-CQcAnhfYtuYAYHG;IA~VzK{Z$N+2H!;E=~&odha%d;QL(( z^gQDnNuwa$D}ouGdX9qQwhksN)7v9MK?{RB(3;t|QClCpr9%@gPsWyyR8-Ep=^{+x}8y2`a$9fAcsdn(Ps5hk}U-T!Rn)2Sq5=dUCplJpCptU*1OAL3KwePwDdaCkdo(n8oM1# z>51CLun~LmnP)cB7w4zR)Z*SpMt8s(`)SGcbsb{AzFeI)S93#-7VA?&jP(J+Vi%pd z$&Dm10?F+PK#U%Vd6tUbI5JZ4NkY6!^;-IrX|J$A5XGH&2Ybc7$df8t zLf~<4IzsAM04Q?m4NWq-I;uSm4URbugm|<6qEuZ*~t*JUUJ|L&3iGEssh%bvL zj%+$vTlyJvw|7Ouf89NV%AK1MS}_nwoN}2(RI68MW6oLg6W4NcP9+W}H>WF7@}g#T ztGIfax7?zKH+Ups(kS*9pUp6H_O%>m)cQnu&zFF!J%MSI))H?fDevJ<3B%X zi09BxGLP5&!6*PbnhlXtP;go5<{5&6`PPJ3GZo_+`2DB=JX^AqJk?!Tw%Bi-kCe23 zdxvUG+=GqB@dHOysR9x~0bkT0imM7G%5x1l1QJtXUYd6&qsB4OXzV%w?PK3jWM*v< z0tp7rq16OQCu$>oV8MxRE2x*iYn3CUmBnzCbbD8-?YR$JsO_mr_5J5~rCRezKLKi5 z|Mc=~cj`Gey>sx3MAaL(2FW8WawU$Wf18peEr9x(?-TXr zu+|Z(xOA=e}W6QoEFdWoJJL)@$Y?s&FGj4NtYo)}%Mj#3IRbKEDcm$Y-Hs z^%g*z8Ak6nMlYW+;;KpafjH{`lE-)4?JN=wT38z{h^ak4KzFTniXw@!7{N)eVmxA{ z_JEM_T*hFT#bT^R1M--W_1I>-)I{)c`(YiCbiM1UY1M=UW%-mldcww_>3Gr_BM#%HL=t3<4jz^ zZ!_pKGStO0*^et+!@ft{@=5~?)<;AG+NY{G-h(!I-+=oU| z2>@t4_78>kU(gsNm)-q#zx`AIoNFc$YT$H$yCh8u z!=l+aPJ^xm?5*J>)oh(C1-fwciFgV%59IR8d8GdO{0M|Ab1p+Nos z{8v4TK+giH)|62>Wkq@EDK1zKJ8&aF#*ow8hZAzveCY;wSv}aHZk4foF<#%>m@P#Z zcH+wC_){udG@>3nk^)dE8#NFsA_qtVJqAE}lJkf?6kuR4@P<^P+M}NIT)iuH@1zDS zG&RhaT4^)Fx~Er$pDiCL*nD}u6;3oi34gDHwy!T1oshT$u)xlon<1#S*s?Ee`W2r? z)6d#KQZ9f)sODAy>R|e8RmGndimJf3=vi>Gz8Oy+#TH|jy(zMYD%uqE$|CLk$B2cx z6HdR8`i>h%T~Ep-)hj|9#b!yF^ZvuvGS%mH5(Ixr*!Pa4fzpIK-fyFY6Trv-u$dT? zL9PC{|2f9k0)XV390|AwZ4p#}`nh&3>9f>yP+H-q_S}tpkRB*vM*xrGVo9iZyK$Hs ztRR1Wvd;(lyi*A?ORdc1+DkA82FN#2y6!D^0hU(%Xa z=PeNvabI8YN%lxGP7C=sg}AwJSFzI+UQK_z5-MBbYZs!&j@R~#WB6F<_d&r*OAoBHgx!64 z{u^%&U}XH5AX{>Iwk&Be+Zz0b$|iWBjTafGZ8ULxBtbv)x%3W=-%;lA(R?J-{3EjY z0=1%&UIy@(KhhDu!}O$EkOa?(( zH?`yxh|>Kpys{-ZK)qU^RMu{mB|hAD1o)o`dR}LE7bHr3$~#$Lr;N>t&he5VY{h2aQJnk7=Yi0cg&$3nEGUq$T{V>5hvsO|Z1c=@v2L@S& zVU~BpWA^nMg4yp4?a_eh>w#z+E-G^#8{jvP8~Zw0NkA;?XWvqG1L9z)-_{zOFISpV zqK367e5l82Uzk}sa^CGNh)apwNo$V_*>x&y9-eD}gkumd&sn{SepKqB#&~pT^cTI? zyk*TQ+4u9HNK7=TmQG8)-a?<>LHYPt@0vU&ZwsgH$3SAHlV5I}*5}AI6(C>Rdo{xg zT$Q+(q7=~pIh?5+%SOpj%(yAvsj7{}M(lpKpc?g$(Td1bu_6r%%A&vsjEP;r-gx-e zBGz%nZN@V?k1Wo(C6*~*{5FS4I^RV-tsdrx0>*0{F$6J%cJ-F!-d*Usn0 z-MJR$e@FYjWdcE5dS~-_5c0P~fP?!GU-L;62FRiOeUg{HR<{8kLz1$l#%h2Lo92=M z-Zsj(&RiyQC8Aib^0UGtfNT~_ybQX%eyJ7^K_H=D`Z7Sxc&qucX~2?|R;2~EB|UI2 zke(3_TvESTC#WDLJ$7OoC*P^C<_&PQ2K*~N8I#Ujn0aJ9!E+X7 zhMS<+fUr2%%27SriN4Wg`G=TtxN@q^RsEnoNXGoT`%eP%Zbz;i4r{1DJ*m&Ke~!Qo zCYU@aj`KHIgcuH2w*bmfEnVt7bTG_&U0UFz$oOoI9PWl0Jy1iJr^Fvzd~)~KBZm$F z{EW3i58+$&olO4?-1eE#Vc$!WN?#F1Bfn$wE+OJF)g8qW`;p!=d`qSY=?5vA@|+K^T8nW= zBUTX`z$$~L1lA-$>p^;#i{oW<##w6wNy-f14Dwm^XS8;FI+Fw>YBmAHUSkL4e|hL% zA7dsNiMkNs^qsE|8FjYunsgu4wfuw?zNrQ~wY@E%M?=R|r7Wvj7%h8KcN3b;OOa~u zC*E9>o$gP3jriZNZq`N>G;#aXzw;rNYwy7E3$qB;wAC_hmM1s&hMz)~X&@d$Rl@?o zy~T?a{6w{{kbbe4V zsqBfX$=k|0Nz37BO4<4#;R7yQ8rLf}t4qSr%fKXkS925g9J1l_8Z&ua(36M@z;r=D zHI9s6Dl>NFJp@bwC(YAs@fDF%ay57=2v{%k(aQUaVjxx8%peZ7z!Yq5J;i1XrK^X9 zfR#$B%zEr!*%q3Qr#_eLXF2Gl2Z^`St+;Gwq=P^T%Px91W-=+(uQ|0?0QRV;v zkCQZ z+Ou)$0gHMnwQ+8l!ZNNs_YG(D{`$mFipR9q=EB=$3S@-X&WmK)A@1!EfBvNz-`yT_ zrk0xXqcpagnhK_FXS`7`{ByKS4MI2CWYlUrUYNVP$ z%)w*Y_CueoAC35tk-pJ8O0!9i+;yKu{BVP0dJJ9;H3@djiNGDFY@F;?ce4+;7|vG4 zRWo+5^3-84Db+1WWp{mLq>}t zt&4ps#}v|^dhc270tTnirJzlnpzud)c{*2uDCPku<`K56c)f%*Lj) zDn%@7x}x^H7(xxyPPHoi9R?2%_s44>^?3%i@AGMENzs~y(8>Sm;8q5}C<%)L{gxX5RSCuQUiqF#3ExX`7&iB^rCvnUJ8QqmUD{b^~Prc! z)?4Y;hk1)CM3d=x=X~SW5%EIq>pHuDaUzIVCu=ZTR||ar;uqWNmkE#H5wcbceMq3$ z^LdeDWx{aGhRL}nRdg&uW7B!%81ToS)p1(_U=8)KXcySL8Pce+lYk)XBrJbbK&cM2f62Cl9ap7P^FT-Pc?uz+zO(dzE+czH}$~kbV7*39okZw&a;q%2eb&}9IO(a@% zl^FEXLNGkU1W8mHv;5S)lF)>~fvOnJuZWd=TQ)7$TAmk6twy*RLhMAp!8kT-%h^lJ z0^JHm%5wW6QO&N({o5ru_l!qEUrxXx>+ru0$kRZHb@rP}T&Q7tYFL}Ijo{YZli}O< zNN7tIh^Ibg{3H6+(Dgotn}YW)18z{4&RBO+%~Ynkaf$*~+(tNe=Y&=zg?_mh+_qBL z`En@z;uUA}*-k%Wf1>AlS=(E9LQ;mTm0@!oI8M$DN<5NvQ0e_pe^A1mFxA$pm)Rf! zbP-v{ISs9z0x`DAZs?C(G%Cyx`nJ7pN;r*pI93=xFFX5r1*NQDeZujqS)o=TIe1s@ z9658#t^E4=bPiOC?SBM41h-OYL0$C_Kw7PxJ1e+jRBQ6#6eFsO3IWRm zc51HzOWF6_a;%H~PaMK-Q2$*?0pjy$gxz|N20EVQy7!lS8?$pW@Z$+;#; z?ARKJ?P}qd0dBKye-b4`#;%6))9*zWlJ4u_?O4`$P@sNE8u&=`cEl4NV3xASyYpSy7?X7dV2oTruZ{`yOvI-q1MZ1#5QjY+V~A3=>vGOPTW?_3q&EGN12K5a|2V+)!Byxh!HC#JLQNPqrnAR$^E)U>2!3dt$G z5Y^#5dcZKoa$o<-9H=wDf+YYn;vP%e*m9kcWP`Iq2YDxmo|8(u$;PTKLUoZgbqrl$ zt>OC6#!I5N%d0SH4Dwt^uABUC$Sqf>-esnkPE+ZBn}WaHYElo7LKbZGt4SL3MMMm4 zRE3l(^o_j}K%Rn{f&`*J?7D+v4ic#=8~0PyPv-z5vvYd1g>uhO!K@B3Ykk^gUHM4A zTm)`gtIXTyL#N#s#$ioU-?FWVagi&16enR3)ehO1NoG}8KHw68&XvZI7~gZ$VRe;%7J;TVAix| zbL>wISbW5 zWlpAdOgeoH>*;#b8xA1u{wZW--%(O@xt2au;54sZ*cQE}f)-JJ64jMx!|1%4NG0r; zaSVX>vt;?U=_iq5ru+x80(ikJ!rf4|lA5gIswKi(F3XF@mxL>xYDBF7o{-TERH>Q< z5YbM-UtPsJs0HIof<7ywE_M={AEdHP!ddx%o`^=#r`s;6yC?gYF-M{E{N1`<7z#;{ zjC-&0!d~NJUUW@tSn*|cQZEYyQuEVud`gN!S7k0iqmKP(&>eZ{Zzrip3? zsfV(wJYqlf5}!n5y1cE*tg7XDD&pC^RKJq-Vf~0giS0nAt4!d7nI1;3%WZIZSv;!H z=m$Xd4WVeU6uyc_))nkTwTN>c4S;V{QZofY^I0vl4V<388m#JV7E!@WB3%NKdau?= z909f8Kzj;t`-bfwazd9AuVTRKdjQ-zH<7Q@zxLxBIc#l(V;)SsXls<#m=#mIH1?bg zo_@cKcu_EO#g~H%jjpy+lKHLn2e|72C--Qh3MH!eY(syi7y?+db-qt3mAAmgz|FEf zk2Mjlpa}B&Q(b~^UNO+ItXi&*m)Vma9CP_?6K22e1jNb2HAXxGA;1;7{*tv{?@BDe zV5)$v)~m{Jj_S$5>(4PTH4gjN8Mx8_ljN&Evn{EG8!{FL1wPXRD|HdYsk#AFEDIP?sfXbTrupu4^oxPA`j_1|Cnr`STAWqs;sS{mGjdp_1a#832zACjPdj&U95hNV zCmH)oYZxcBK?xis0rE1{A*X-`JK3}5KgSkaWZvH50eT?}vR7M(@rLXGwJ(Q;oQA|J z`XPShNEV0S%K2UqBzQ@~{qnV1X=rqdF9&PQK&sH@A6h)ZInXn3vG*&0@Lk52C)#|T zzg{{-2UUGI(7=0UEji*;^6lCN`H2sp^VSW^vjg*j`hYP7Y+#Y4N-zn|rq**ptcJHU zDP&-!sOiKFO~T9S z0VjHMVZ1L7Fc=crU^0M_38l>x6<>8pt&V+A1XJHA$V=lL%2T=PmUr$1=q+1*!}(f7 zK@B(nfoL!I0yZ8J&IY+qr_hY#Z25y@om3bB zt+g{GJ*P2lZHY;2YzaMQs-$A29zf_Fr=zU}kcA*Pn@wNE$|1y}5sT)#akdYdAvv658ryC?SV z?k&5__r_GqmH?W%2Ca{Nj@Bn7u1wu))L6!Wx)|nRTWq4xlf@6H%#AVF$x}Cqp~o~Z zIoF*r>~D{d-imOa1SOs!{;m1sUBFf z<)d;l>t&$*$4pA=TA|K<573m9>yGn#<%1_HU!gQEMb{{U=6 z%N1%s@J7S20(aFl#08?So)H|FMcSV)o1Ve)OHI0iK+6&RmeSrTLgK_KyOX9R)pg2i z&p>*Nm`RzRz|IG7{bkCTrDoyD_MfjLW|I3SssechpH&aZX;}A1SI2c{vIDG*7op!%g6 zxP?`8y;Nq!91juxkdKjnDmCM^HRR2JVc-;;{@&D-&iNl2(y?}TrS=v?*L*NXp^Ejr zXk_3R66k5Ecc?|KdZqmQ;e60naXQ2sPy8+Wcx0#4-{vV$I2U*M@zB!qYF@0)c%`j2 zCH(^7^+5>{^G=d_E};Iv@i{P9LjH=jNc?9zp!i0Stx3vN2+tv=(#X}*BCT~zVSC4R z(?Y{EExOhh9GW14w5pdAfQ|uBG{qQOx0_GUQM;UmQC{+T^O}f&vvE&-s|m@o2N-Xa z%d#_QWWx?9nSP_m{bV&S`ALLuYwDxZTB2Ck@@)o*a7rOgcge-xe9;X|$&vj~t*V)7 z0lW-^DOvPLW`~T}0fN73`H3-I{DEz_hR7kygiKpFI#x%(s-M;e{IdzZyco6*;>3@x zaiw-mF3GKP!&o2_VsQ)+i?hBdA-h_|*a?#-jMVmq#viyTQAcppexGP|eG-DLEg03a zmDZOQL>CjuQ+xirvgPry)yr+8;F`K&^O{~2cbP7vHqC44p$}}UP^kczJhENU=3Rf3 zO1uj;IP_r-!yf#G<*qCJnFH>F7=m}&t)&t8Q2*-H)2t@>Rk>?w9CyuZQEjf&qYBet zhA72m{NbT-b)f2+;37B7W4O7;PF#!F_K6u40!j=Z(g3OK7tscr7avcJu z1mlj4p2<*8plf6CHvHFHx!_#`mmY!Xt)@6?!bM-M{v9jvEugO2`n>!S<3Yw?d~Cmd zKj}CG|HSY)Y3(E<5?i^O_AUHX35eTP^Ev-N6EPJm5p$_8AN`GpNi|C}^!($u0Afhn zW#|%EOH&+M@db}TEzHtGh8W29a|MMuMeqLDSZp8L4HZi2xc1EYp3R2c-rGZ<^XxZo zfLe^#RbEmY|8AZ(S$8#H!d%e@Y_61IM#zINtM2*xj|6OD&oy3Fp-J|NrBsbS5Oixq zzo{xlT#2tn1F-=H_BTt7bDYS?W!mwk907F+KRpGuFN)&R(KB+4)W;I#X?fP7XMkB& zW>$fu%Z$DxsUVO0mc1ZjY_7;4W8JNUA~`CtiMH2Je}gMs4tzmHxp0V{(NwOnNA1|t zvhk*3ugVL81I=H}T%Qz2Zd4k&F8ft~2lB%m)(%KOHU$lU3c3tTDXxPGawAXYE5uT; zDdN3Ih&HB1g+myylo;B5xiJA)_B1q{mz5g`%H`EXkY zDjy1Ym_mBX=~DM6v%VgXo}+%5t-l9={EJI>f{9wQqcwie|XX;*P|I|Hm`sbeFl z)mnlkSt(g)&W{f%6WA~lxr?FSf=9PQ9LyAfmLH?uhiYxEwL|4f3y2?EV7(doPy?@r zOqyz#SPkWEEiKIvrKw-i%`{{ecUI9q5IB-RO*i|EfAt2?26<2|kciDWN^P$K~*iys7jPcAJKODplJd;xfgvd{XGrJh$OVmLw!ZSCi_Y>&EH5s>z z)HBT-n75rfd?Ox{wn;#n9!$Alqu3=Ci71`M2u|%iGedB_HXf@5ZSGb!gcVy;4|(Y_ zc?ku}mUutXXMO6v>)QK^YDfWY9@h>jo=L9gU1W4#v`%?<;#WjTweqMaS>PKKQCA3X zklp60VAk&Xv8lL6gnDq{8A5^t!-RQ;uZ^9<%aTZaq0ffPYxkimNkz|FK{sFVp z8PIjghnUl}uLlZb8>ypHhtH>Ug%XiKltz=dh8#F2;l3cnnG<|y=)Ib|`RY`R^`=H# zL@$Kz(#TwM<_6=ZVJ8Pl0NhaqMe%zQZcRq7SO+qG`Cq zN{@he0tu(&Kz35Q)hg4L@WsvaHPMZWVar-+F>e*>gFc{}XZ+f84iyuP=nPz|dN+)g zaP7h+)&VWfAb)fi>_8jUHQuR2P=atDIx76Kk1bQJ^#00CLU>z0Iur;Gs$c*7VT%EN zPMeW40z^iumYI4kfAy+w-Ex`_1!Qzkhk7LT!EvAe1>fH1=rBzfv-K%Z6>n4kiA1jK zX7w^DNOE}^GqgnOae5sk9bkZF*RDhL0c(ORP2SWJ?MX7o#^+%jBu-C(Mjnd31lw4* zF{*WpZQz4uSOCrEGDvxFd)Kk>-Q{9EW9{eAY-hN(GZfyZuq(pI)fPWmIDV1KqX8k9 z_oY#bF8}dD=!AxgB^nvA0X4qn?G{d1QY4GrvLPal~@Y&}YyBVids5Eob6d zpzgaObam=lr^o!&bIu&hsqpgoOSC`Grg(4){M=Uqu@X>imRY`OI740qion~~So4vd zwZywDM13x?oP^IP01V+yb}}s1=0sc?-|>$U`G$Ah(C+8Psl~aczc&a0AUT`|wD9iN zPU+hI#uhR<2!=(X6!Afz_)s)ph`zpwN4UcEVnxqw1k#fs9n?wi?WTlA$76ye7c{lc zx=Eo;?NHG2cid-jkI0rwE~JgU!w5cO26I2uZq{K4ETKn|tgoRx0%H{(JKE0A3$=N2^ggV!hV`k;iyV&mLDRr z579pDaqu&X4I>_Tpij}oetXO;d@TR7r7nXr1art(46FSkhcERcTM{E(pS)?+>Huf# z8A3=sAgQcJLvGbXZ>DB0S)Y{gYQwP=(X1^C8n21zaI!?E->?sxuvM#p?uC&JxaIfX#9jcL1#1*S^Z~yu zq+8FnIPQT;C>3Z$-57B2+$YXgO6rIimADa7b5*8srTh+>{qeZvBYBh=8wXnw{(utc zQD914P_FXWZw5L;o(&0@ob0U%K7Mv(-d;lh=ri{o7oDlLpF%Oy8sa-xSAhb9Ngp9! z0;L+DN$2qTaQ*Ic@knP)XLOCzd>BHSv?~ASkDOCW)VZ~8%(d+WlS@tKKA>Muy&ZZ< z1K4zG_gte7fS<%ke0A>W5;` zJsoR-e7RH(a}`ZIxwgu{)9mOP5!aQM*Ka*|Sq1bnM%&IHjU`2^YWRR&sNw5R>W1be zA_2OJlktPs<5mRPq2L%u%EMD9K=GCGV~#PB3!wVQB14ISzCUqQ(q;7=b87$WTRN7uXXL_Z?fwku|c@|0nEO z%Pe4xxVHG*S#NgN3~lbmA7o2x02cwmB^1TRHU9=NRfsA_3r@Tu_K65jb~QZmORcu- zO|c%;F}r=5XM5xPm{m;6nSF&X8?fI*r8Vgirt^{|kL>9)Szk51f;2K&VGG#uG%(kd z`VW5PBZ(MMk0o=T8<;Oo{tSE7SlDYk*ZuuRyD~cPhk2tEJD!7z6o{nMI4g)!NyZTb z*vS)mypkQcZfG;(jp0bXmHWl8dIJzYOFLa$9!x@Fkpwr-zjOJS1U;g#2s@4pWQ-7= zd)GgSFmeSNwSZ2NK-O567Y3MF+s}}=l-q*iUtHJ62ee4lS`~kdHF&wqpiNZ@>2;2< zGJ53s5qm4GBQ(sz@KN;?K4uQd%bH0w{+3VX0lMG{yc z6oIo~TPIU{5lf%bYzhw0rywV-C_<=!7C^jy%|P|kA{}t_N+i`7=3zVL#B1IeD|;GNzuvU0 z5X2xLXYCa?zEMRFc}RHLUnvjFIJ;J_S=V!aY!koCou@ei3;AV6Z7I<$fI1nny7(E2 zs~-2u&>q+8*F`=o6SX|AmtMV~h5=f&k~Md9fH0L1D#j#=QR(X;^UrOuJ<~$*{bEjN zz=1YDby?=BChEuDp2oIXdrqQw$9WliBE||t+8Dn=+uoNaHa-~CV$9^>;b5I9vQ+z_1Krvt*CnmTJe*SyR=Cs*Q_dZ0m4O-~}DP{MN@nLLodt8Fkvl;6j zVGoH>VRaK>_P$YWir(zkx=8mMGl1x1`I5aChnbrs{^hR|7opy>1@8)UXGC@itLB1x@H^4}}-)%#a{g3iRuoBTX zV$v^q#pfDrNr?6uaHu5cg~I3N0xl{vaOPyN1nYWzJYdGY-NgD8-xc=#8BD)#zXy6| zsVZQkk`*5begR5F$5pHekOqQ0njMDr*t-jhPs+PE>&NLi5BF>OnlDallaH1t%QfTr zwYTZ)XRP}Umy#W@_fBPI*~f(yzMRh40KkqL+jZKrQ9WZ%{1J9;B_;`|M7uzP$%VRn z*=vU6vJ9wW33Mu1Tz)mmrtl#izr{#2Aip_~@#WDuLodbS?21`k?L~nO1v@F<*}eR- zCP(U-OOR3xaBJlH)2T!60&B0QG-D?Xq{1URb*wsX|B<2pAA9c|*5uZ_3tJGuPM3}- zA|N12lPXFPkS2uQ5s?<8cMuSfj#Q-=X#ql!UPUR=r3MHPdaqIfguu7re)svQd%xe= z$MfI0_8(pshLAkZTC-;Ex#ymF>}ex1L4+nN@g%D<@E)5pmuZOSw>F$l2dHLn83-a% z7L-U*;ZbJqfT5VjzBh8wr!A?8&_yjt61grHN_}sM6)FZPxF{d^bAAMQvfgiCGy!3u;Y;uM3lVcZKfj zDzXC7$sbqo&2o8*+;a8Wq1WrR%7nd#p`_2o!C02iO+b=PArIXZ5+hb*@qA9s`)>q!f* za+5yUC?aIa7z499M=w&Xju=Bk-g-Xnb^4VqThx~lrwzljs`H{74J0Yk(TXOgNJy9S z_2ovpHTvH~-s=Y`lU4~E6cP&J@61xpi^m18vyXD_p@D=hTd7W|K3E!!BRfA`C!F*@ zqn|f$co+1xQWNwMU@**VdBx$l#==RMkW8QQHVtjBZyvBem{Vqz7NQa)$o7kUE!U4n zX^KExTtFvJd#{41CHgKxeeDRSrOhJ0q)(HcieI72kH0_fuO@lzH zrL%MX`*n_MW4v59rPDjA<3r8e$Ie)oJL{0$e83bMr5(3m+glmZ(p#9m9WY!Mj@KY{ z%5MpuOolW7S)9K|T=#>q(U;WN-+A%osucc*Mvq6~zzDy)HFb~zv&)W=R4m$CNV_c0 zuEeLf-wckHU{ouq?K-`r2gR|I{-A4O0JPU$RS$mEEPA*R`gAF;4C<8FFDf1CtM8mz zOA!gqGRCT6hFmL;Z=TJmkH;^()7=s@Z0k1HlR*z~WC&J*Y8 zP`oC=zc@N}9MaRfWPA55Y%z6_3#ht_-hq}#tny5FaqJ0VoVeo4YU&9*dnwIRUt*A{ z-Y8i>f7nJgWK>PF9{(IeLu8^snhSp!iYtE|EUMMrJ~JJ3W`JN{mg;8i`%1V@RdkdS zx!Y5wP+WZqvr?v)#__+(vc7V}4a!T{J7(`7?*P=KGb=vd>Ygen!KRd3@aBuL1=B~M zcFhTEJfsJR#VL)rJo0VE`?xGFNb{PNCq_$99&e3pPRU=6s%|vH%Q{Suxc{C774NeQ7w;y*!9m_o&bpZVRU{!e) zzT^Y1H)Co9O^8ej2Ja+F226%-TS5I~L$x%P^8< z-HXTW>$U z$o;jYn+xC9@kN2gzf9{%zPi0&jRJkKXCz|)BuKVMYm~ijzF(lNggQHU%_f^F2F6px zcS6bc$tc4U0F5t-WK1YUwE`VZH?Exiry@U**QLF82U@HzB=(mQY9$#U`k;KmY(KYk zaLajVUbkU74~^LZ2*rq0@f%=~ho+fMVA4^2oX!U%I9k*2p zUIumgQaY>ZjaPCX6}MAukhj}z8sS7OqztL8f?zm6;4-6WK>@3E6tx9i#U zXmQof-reLUaL^Q(-(C88Q~bC=1hc}04%o}bO#3B3p}nOUOOlAw@oyADa#VM$e92VT z9rOTrwyMJp2mt}7q_p$VZnJ20TYBrW%7_E5W*Q?BtC~AeZ=C=pa%L-G;aUbFZ_bU? z`IyW{?%sGO@9b%B$ zwEwBAkL%m_K?|Q2_C2S9`AW$IqHa-_%`CWSFKtGfs|GHyI#PxUDY#gYyQyj-xSRz_ zi=j#wHNe*gdB?Pwg7%5DD2p)=1J_NJkb(>L&vEG`l~%7n#%8hnaHq4vGz?M51ga%K z2!AVDW&bVkM?Kaz7uMuvu6?KEV8`;ruVb(O55i)QXN;+xO9Y(-vq?t>CSP?vr+J(l z1LuP(aVd#OHu^1&Z4x1`Eof!U8Kkz(1>}%#1odGTuqgE#hks*HTb;so#0 zj#y(mDRT&`R`Ihp&cM@HK90#xm3@|e_IfT5wMa&3kRD5G<*be7R^J5!3-|q%5DrvNsDUmFs-r@=ouN} z>fVf+Kv`vZKcaRBP_)!eG6^YGYe(FV<5k(4q( zQu`yTxja83sVApmH5p@0nBlYqAePyHc^lpj9Z%`AX~?#mg24*EwXz|lAbQ=SPk=_u zNTu-pruZqns51hgE_x+vVKlzURZ{@OAr7>w`BCIc4G&g zDtrSpV=l_!G@}n5`CXuOqgUG~2J!HApQC1daQ&xrP;B@k(%FLK1=r7aUY&{#0meRD zO_Pb;c>|yw&m!P1wn!@QssU)D?%M{5DbKeHi8sVl36o%UnPwi=aivMHF&66hnZ)!n|ym&fsE5_ z39~z@Nk0X^IB|eDUR~U01DVn?Xj*z;1&*KiW4rrcsDjm8P%4{7Q=k&UtF|>4T4ow* zG&A;=Nu3Vm$Xt`L)B`GBf^R!SW=-SghdyMY1^YqI-;=E>#R2w(!b>;R`q19x{@TDB z7cTVY#9+_gnpY0phbM2`$tp^>%%J`-?>O)&BTi%95s^iG%XCc064ZI;{-(~Whbu2Q zB0tRj1ibD=kUld5sF)*N|IJ<7S*Mz)_U>$D<}|!(O!NyC-bs+g`_ekKtyDM$|GbNX zpvp&Yn1@73HQs&yX+iAwSyj@>0am+><4+DcA-?QMWu zV)j6UqOJj5=@!HlFL4DXvvX zJoh<&n{7zx-JKhhP9I+!p9PY=^;%^|#x-C=pUpKL6RxtF>Qvfs!E7M8rZ@WsQ8F}__i}! z2;`Q6Dgq*Q6a|PYP*;%qj~ip_z_OXeSMANlb%4}5B{Z-<@@AenRhebwLdI-};OcYc z%>8(A_&5GGx#`Di&XoU&lbX?4;_&x;c;%oxVi85PtuqMPviojek9wX9tGcjHbtzf- zYlpYA4N};j7jfHNm*iW0UB`3eDen$ITtF>~{47QW@DuLh?wqgVzNC9_R7?}&ngEmA zUP+B!x({*dS6NU)wb^6U2P5b0LBm2+b+&|VspCY^rsz*@3@5kg%f~TjRVx}l>phdD z&wv03&pO67;Rq|mOtx6vgd!inwu$IoNWM5MsRD(z-p@2u%nrJS& zsqskmPPtNBjDzRm9S|M!&aEZBj z3kW@Y=$~qpJ@aq<70S~CxGRa-7CidEOwIVa`cF!%)V^v&z zQDisS6m-T+OsgNURY)A~0_~D!+;uQ5me;qWlY#|Uzg+`n#+t%%tXqv%9)S-CEB7}F z?AY)oF+H2a9cwIso}%c3m;t=$oB|X-&^a-NWhdXQk}8$O*wk&g;_Ct!;y`16=HW z)wvPTGl!Tpz8D>ccZZgJfW9Qq(#hyYtp(ovxuD}ZR_W3bduRVWWb-1~1$w#Yp zhPd}~9@kZQW&I&S=J@eEf-IOe7}}MtWS>l#8uLwQi~{x&1m3f zn!Mp}-V)9<7W&3FoFeKHDPjQm#w0bQaiKTUPq$*+`)vF1(=?Z2b;gtN*I|g zlgV+5+Sjg01mUv{hF1XwgcJ9% zQ9Yi>cpk~0a?RM{d&;2HVi#H zDL#pZ^VcuRy*s{7r`sL(dDV>LY_FF{usinIF+o@eJ|jqPAPzABx1fOTS10qpVZbt3 z>Pxnp9egoSL8^oPuppM>;+Q~hb8pd8gUg_eP*U2{m%U?Lay#ySd>lI(Oxu!*W5_x> zi^Qk4&?mk8Ufc&%|1%}9#6o6pvza|isto&yso~}6rc4HlE4h6{)~PV+@h3mv1YsG`}C2u_X$;=RoJ(* ze8Y(FsmOU-T>5{A73gaj-Nd0S@ujFC^S4sikN-* z-s`jGE6{-w>qqBuqnN+)Lv8r-$fo2o$u2xgy;EVZ6DdelU1#G>Frw-u>mX?G=?@L> zv=^$d1m%n(q*8r)qb4xJ5)rGJiAva@LjXpT3GsA4h&$ito6QeyEiar)M>ZOOHBV_E zW%{%7SuEESOl`uZym<5}1N7BIRi2r%K0*Y`T@YHox5mThuMJn-m;)o7oCQos_1bpx z2aLYcU!Dh3^kXt>puH?MZ$4&vUl&DDoKz`?8nTOc1uCJ1$sXZuoHq^*#*eZBv~Y7R z5(Mmv>ijDC5)`-XM(0^N9qWNR(|33NdGOPB@i#8dtSu8Y|0U17>y;7tWgFn(%clT= zMjU2`Ua>&}xM)s77`Zi73KZ4D*Hg#)?wdrI@b}1|&#K+6${6pw_`@UnQH%=4?kz8wt+_2sAvOU!C8?pUyAt zk(tHyd@RAMplM~9lp|Ropb^s@5UttUhuJd&2?+{98x4xyUMIXGxzo-(02w6*j_IuG z0#D&_XN)QB$Bl;~u_0YwG>1LOvdqD2<+uDc-BQ|vm`n1ci`6k2qBMy&a2Pc3D{4Mb z_8~^kV+en=BT*RX-Xekm%|e#zIv^}o=bLaT`CG%>W^(Y-jl{`5g@_*R4*FY5M_Yq| zPqVMDh7i!E<>VFxDBZUNXu!xZr!@=|)nV^|-hE!!B+)rTuJvq9*yPKsC)2t$F7J+? z#3#kR2lc?d8*jT2DjPD6W1MB#0`Hnc^}=;k8oRC;)pULy4z;_v7YnNZ9T55RT#+%~ z^H1k;_&3YXHkl9{Xp{M~6pG6|IsBg@St)xmzYD-8@; zv5ED#BLrspbO4s&fz=YKu1@YXt6NIAkr?*cp048VUi}e_aR9)cv^6tdIh2&$N%B#r zPnI(WwXwjb!B75;K3W7f$fRqfQ}gG?B+02JXEWJke~aeaFj*h3&j8JB#+Ii~Ioz1g z2mI|A+7c)uOU=U2jcd#qv<&J{Mg*8iY4I(Vcw{7_Dr^ZlJyVP;0Qg)GxUofks(u0b z3C1vqtC~j<^psiYY0WgRIO1k;UX=_gAf#C}Z%ph0gBq`Ul#8*tgbLv#!)dI1e|2eP z#7in-vV;-PB{0KFuC-@0QFe4e1KSQJ%&d~geA(auJsS~U(gR-0WZ(w-xX0B)WtnPm z4WcPV9ccXEIUJ#j14cC#pa+H47U)pl;#A9m_|7PmTS~_(aIHmhtqGt^P|qfMh|JZv zlcry5({)93NAb|}3<2Wu+*v#oE17Gm_mW`<jHCd3=Kvyu=^mM zalsU4&4=e8S9&a^n_RY2Hk4YrfP6IsnXdG>3~rxFJhA->Ah@*B6z}IetC7gqNqb1e z(tKPUP8k>Tr!wx(m@8qK&u>&2eRB~j-5l|suq%|Y3Hp1QK$MM_b3z>XTH;2Vrb!0h zhRIN7E>snJ$iA*DWqQLFG8wulPU~tNGAfjC$3r`<^)RPd99|tnvM-++N4e{<2G~ec zyJi`b*7f8P-}!_i(94u2xz_zQ&D^8R+nuS|TZCZ&?Jap0{h7pF6!DFe7h9VdN3$@? z=qnesTq3gX&Lj`&n;{=^+kJkb(s08nWa~iIAbZ67^!(4f|B=y}{EH`5i~C+lLosDc zYsOayuQ9}3;wH#`+3`C09*b7gm#6-C$2Hy`^CCWDtQ47ksUh{+i!U6kg3(z7#!=qH zw^;Rqat#l!5PDr(t8w0ZnzWaMk`w4$T1e#Ub+5AO8tL+tcSNn$qDQ(a+^by2_Qp_f z;z4OK_~q9`CzFg`C~R)oilS{B8Blqu&jac^L40iv6w~eS>7;H8si&pi{dk(nkx#pf z`fc~ZvHFz@{2}-yRAEGbxH~#XZS7Fa$!DX+a z8{Mp4o@u--NZD|Q0Ao@teE$WJrnni3)paN>(0wPq>s^<}g!oY`wu6kR3*$B8* zXC-3}I8x4A8%t>8dxWUnDKWgHl_T?D!|7%I*j5H#dez7bhc)`W^2<%e;=aW}I?j;# zCrUhv0Q1Q>R`w>8lHLqJG=59XBO2dtHxc=8MW3|GpM})}ySjD=4S>00V-LYp$?97H zVTPNeKF87o`f!}yfuh2yR8$FH?M5)Q+o!9n8WJWac-l+|wMv51`JjWfJuqFx+pNNvdAh^MH)D-pH}h77oM*Kw`a zISYW+A0?J)5bvx!veJy)jjpV@uek<(G|VY*Rf%^UUDAzNeeNg7ome~Ja!Dlg^n`8B z;u?fnAj5}p)Ps)=Vo-C()#Xwt zi-i@K|2KK31x0%40x0^`@p@+Nlw|kwi&d zmiytZ{W%-ozGNEk>~2f9r&2t5vn;i!<`${R_ve}8CfEEn_=2;>hJ_kY=cm@5bugb> z+^PB6f_f2)94Mzx^5=AJk>x!YGZ(5o6p&9Ot6M6)b6&>NDzhU|_QkQ|C-4X^G2Hv( zhh_QWV(`(S{L+9QU$0WtXFgStN|Gw@Mf7k=6gnSz`T1c{OwCOln-(U^lUFuU2_oE< zv`{jhn|z+iFC#S1ADG<~!WWVn%o$bLIaV+4t?h|+^hA`(NSyoVG%`h}79Z^9;!-*K z^gRFr91^<=>{iaQppG&4YEF2sMS)|4Pbkd9PEeh{^XWnSoDg$KP7x`joAEM*SkmQ# zF|&X(VxU_K(d#F&l~USoxoV&9N+wpquVu5TvNPUP6hpDH^5jw%!*Wvh&feZ0V`LAU z>M`D_q^8{}08}-|i6@+dJ8N`k=0GZp5|2 zTvvJ7Gj9MH=*;zOm$J)AGQh|qX8~}8PHkp#d5Kj~&V_XrTrAMAtqtEA0i9RsL?SoyW1X3qmD7cir`c4Ef5 zbnmh_HAc=&?KSqAw<%z31tuys?vjcXr~+!~%R?nH4w&@FoCw;K+9FUS*qy`M1tfG+ zgl(aMg<}LvBIt^)(RKCq`Dt~Oy5cfMDQZbpZ~w8;03m`)kq5t|>}>VLPjed#Zcqre zX7Q!`(z<*Zs-yLg?he6PUh+-bqu~xQxY(Y2?+RB<`(X$+vzGzEK%>>>p>XjNuSAmg z`Xa&;i_r2|Z8XtQ@dyckZ^YGB?5`~^TkLl_)+*CbhydO+b60o>N<3}G-0R{|wl*rZ z*Z!==9+{+tU_gMwF)65YP{Sg>+AY+G{w5_fNwm-%>S1SnB6znJCDgd~3Re&3XL;yW zXO%c9PPBpDCsc5{zxf~=iN4QQcQ%%qq`7)Gt_=rt555wjr_}fSJa_#Tj$d^8NVuus zV4}E>d9t#_|I>lF#87}ag;(L=Nsqk$(?MeON+6#O2)qB1OjC}l;E2Lwf+9dhJ~P2V zlZfGUJtddZRSqKceJ~PN=UimS_~R-W?O@~P@wLlgqh|M{gff?pdne#kKmk*?m1`oL zbNThaGsh``Pv@077V9s1JSUnBIKE5-dtHB>DEjqrb1r>so8F<#KG?k&LyZpQ_{IY; zYsD3L=^ls+M(zd&ulTA{X7;Bxo;`S3!8lKn@}gXvfo;GY@MhqDCYm8$xAQVC=h8!r z83zZ&05OXdZ#JT)iaFsm4HX+OHu^(AOe2Pe12@^X zWMRCuNdR`vrt$D{bCSoSF1Oh`y$|TVg+=EqnuM|8b2n?$AZykp`8Na9s#6Kxu-h&fNF7qSzH1fng@Eo!gPpa{nzPKJ8! zXL@S7)fSuCF1vzto|0R3#h}+XqbV>}=k$ZRdJBTYlE5ivYDU8)^-K2d0zL}CdG)@% zb*?2DV<5UE$A-xZ=b4uDY(A~PME?vG%ytj`94oO<)gAO(F(<22#_uo)=mneet&XwK z&;{ci$7Rt3{EEpE2>qXDg4!^kwT=^%`vMga?6!w%bsH5FNzSK#Ee&#BeGQzB2hmPV{NZlsky9_)kP|VgzGH?A9ze zwo$719Iy5e?Riv2(B7ClKg*JMlzdt^i@-Vo3@+=qh@SRvqifXIE-RuJ$1py(2O8$2 zuh9hjxba<_os}pc`WL!eYtmq%WT93qqDx{@7TWgoN`sSV1BUO!z)FUE$o5hU83utI z+bNxN?}O1#Ro%1DQ(-pcfnc45ZX{_zJo3%@Igts76~_;{ZlT%xHDs@hSM{pyekmEn z=Ecof?IdI%ja=SgX_13+VL6LN=A2`_5G!S)y1=f{EIZ1&G$eS^Jr`?7qrID_|3|0_ z)bfIHgS7S}M(jXRSCr5u55d2;0!397z7pGQ=iiHlu29X zMxJZF4#@(uZP4E&cqMTvW_F>X%N<&|)gv2cLV<3hV;D3A9x|gEfKAyo4|EkDt@xPD z)#3J_4;!K&-YImsj%@}UQ;*9e^HKKr#_VbH`7_tJ=>6wf35@FGKIVq&b~!SPS~{Kk zb1Oq1n6ZO0?3M-$FXQbuAwOweH#{J=+U#dz+;EL7dSH`qez z0|Tf5Q*zEi;?^8V(ylmj;OIAVybAgE0U}r*(OsV{3eOD+YW&Z+n3ek(aW#ieLL~^8VRgcbN};T*Y!a7play(eJa$YxOS1^N^S7Z) zU&t)|y#k2NgiOhuYgl@^@1L~mPb%hDHMR{Oz4;WGj}1oc29uhMqFPD4GP6_%gc`?J zaaj%vt8giG`OraZ$7-{PB~UzJQt_pDBMYp?VTcdgCVAl1$K zlPH57>|Ax`7}N$K&dXXT$Lm25D8b|xH$c-{TTr#qd>9Lp@OD{0t!MEmn z+k+z4>d`@MAcI;Jiop6)CV#d}mHzO)aY>c%4eTh~eU{`;H2xo}s?xg`W{yS|vS0fT zO2@ta5#*KrV(_S_C{nKg+{DNQ;7N6*utfEVm-Rhbm|{qMa_ZK7Ip3>QPm)nblbH+! zzfe(GF-vUy!{&y`OejLd7H})p3m*9~%B#{{eLiosIXUw3$RS9|Y#)?_&(1jtsyku7 z8EOy_>|yGTFsYhyIjo#ZNvKtabFoKn==a`$hZ<0jU4awWS@K2+mlrP2NFZ^!xZsf~?A~E4Rxq-=9iwlNAq&wjUMp%n^gDOTCOW3Y)4sT&g2K$yru4#y=*h zxQYYYm0j+uA4X#wu?M(FyTFt0+!0+%T|LdjY3h8_U-DqxPxR)Ao{e`@NgWBRo=T@S z0UW$nn8^Ps!D100VY7F^YutG!*0|KMQTcAh`|pzW-l=l3&qB7Hg&qP2=$>zeWI;M5 zBiEkR?9%l<^MI`7se8V|#4xC(NmW&eXoTg&eRqIbLzciGmHG=yV%8R5r7S|!%6R3I zFBy{d+D(R4vw$7;+pCQG-;%_mnXJKD9qm{#3(18o;f1h|F3i?cd7OfHJk7O|;wxLC zn?6$|#xE}}IEi-Tru zx6oMpskLSEGL%!^#|v=gBeb%ME4%d zC|-r(gaI*`xZ%fUQ1ykJdxA29L=m)#f4RbHDpAgk@8s9tlCkcx?n56R9UU$2vo1+PDo8*+$xlxPnY5TE>J#)h*j3eyW&CJACy2T`Iz@+m2(GGC4uIz!2&MgvSbk*P<1yYFDNj=+L8{Z4MGciX!-K?`&t)l20TNEQphpUgoBc8H_RX z45|%uUk9UXIdo&;OntK5< zE}emC2bYN7;5i`y$c-aiyvo#Ytxc}VjS&X~(Qxo{vzLNttdCWwf}YDkl&hv5a3Vh> zFsKz@9ZTYx#{}vf7@pb8Q%MhC4Y3{xML(-no5HF$l6vKYf|A1mj%gq=3-Lm)+*em{ znpxtN)`bvytGrLQ8lH)he9H( z9+3TE{c2Top9T8=oCUz3rt&5D){<)GXTOUSNwOOrTB41GQ#BwY?rWr@=(g6l3+qQ| zdfS%Qp0#zSN%elF+bK9t#xsSHP>CB|RB0?ML98vXmSztLe$r0b@5>B8)uVQs_)53R zyml=@NW_G;QZBOJKioiGm4DJhGwsq7kr=7Fl}f>r|E&~bylP%GF-UxCwA#_ir)FCc zl0@0DGQZ_f+c}drKyf6;_Qlf?%T0%WGG|284ts2o)Y$8@|kY zIPSDh>`hsVCQ7Xzh8>dnUbJ>$3iohRa2@;F|p%t|_^wQ%jgR0HMVK zj5OVjo+VB;sD^rMrNx;z+IcGOSEV(%68#980puu1!)2IuXj7pdf3e7X$wwyjw)`fk z*W2CGhqp6;HW<0^fPVk$D~ZPOC@>ZAkb2h2q=^TitsJieo=bzN3#^~z8W-XSz9)8W zGE`QD@Ghv#DdQD^M;UmhQpuicdiIFx<0RS%yO z63=fMF}UJclnP2*X2*x{DiGawT2xLN7OGmos>@#`AnWHh95*;886s<8qTaxOdj2jx z{t+&D^1i@zi>dPylC^jMY8+fYN%T=eR6>1~MZvjsUjtc5i={XjLuCNxr*>=)lo94? z)bO4nMiP^GPVSG_`$#w~fokK};}<#I$wlZc9KREEOf25C)_K2>9#gpWwpl2{*}>XV z5#6;N9PA}dBoOpb{@lkP*=5;6J;{&bpx2Y_#1$ps{0)!b@mcVUp-K;~#ub9qn(aKR z(OY%xlt=3qj}%`Dv}(^f#E>;d^EVa8PA*Rp)tV+UoqiOhG;*ab zvh1L6S%bT!q?%!vXL{z-Gjicn#)4Ocf~XpUSUBd)iHC`V6f(!{?>P%)C23&~bnS}{2V18A ziMiB>eyh5&I_JtZpf`KC{U+4yTBB9y?7|R$7tua(8^ip(67xkBXDstY%Zx^S4il~q z555(+n-MdF0>Edi*{ZS0>Ww6Fl7G0xUwR*)DTHff60&dIsx~A-yurjl<#KRW{caWL zFMr*&u)BJ>j%(7vO*H7Mvm1rF9@m{uZ#Sx*U`ZjyX@+W5+3oI@d^B1Eg7)9WbdL77 z%P`n?g&w1$BOxTZ;*gA47S_6E|ChXRts`ZI!U=~p*+C3yMuMj&_=zn28G1#ry`p4E zGaab4smnyo!GJU>j|UAIWeEhZ2$VoVHAU-z&e!$OrCs++$Ppn+wBV!7C9P5V$U|s9 z@8(}XJ_`W(f|!0)q91YD#}{WCk|VRKyUV#dZy^cx8;%|FPdS`x$Z8`!>HL}L(`{@2 zdIc^{{FH_l0R{fD=LAB>Au89Y8(2!Oc;gWf`yY4Wx-2?O6*Cx}1t&pR`yb!V7-hd? z^3`J_P_NqHDm@O-sMRb&sAuB}UGXMs=u_YXnYF!k13|zz zDly%TMgaTqphziIf2uvXdE=87(PdpgAC<~UVY zvS=Bw#zwUG2miotE$yZkv{Ww6R3b*Od$Gr3u&p$5Z*2QrcUz)a%`!n+35>rkAwWAX zT6^1?ak$vS)9j$r-$;BUBpEtIjM|u*zBVdvTuV`DDO;x}N`M_*vn&<)kwgPHH~9!a zZY*D!x?A=9&T2&co-wTc%waYuOMo#a|_UF?w@6o4!1HLRfr5e zd$<3%b2z}#qX&qqOtso?QPkHGal9}^&AbFyYO!Bn4(81J1dnz()X_}g%NDG}`{_fry9$tlu ziFwOUuYZ*s2ZcasT$v_Ls^j{-7x#EhpfF?T9`LXBJX_t8&RQ%Ty1d!)t!ELXR4ARC zl`9hYIA?rOIq_Sh9cYq_w;-Zp{vp%A-FGR&dOD{&i~Fi=5^}x$w8*;G0vK{KbPILv z1eTN^R2X}}lQ{;vAet0EhA427ZhZv%cXH%ztmF?X>ov-{o~_`{itSuG=!A|6AtiqJ z<&Ph5#>-D=`pUw2E2op^e>H%6R~Wt+OZ~L5UbSc4{sgj^+OZB*eqLUH`l5MVTTAJv zDJiAd*w~ORa-4}mA|i?86cnz7^Oo$kPEO^^x?+atGy+6EDtC3(5d#>M&PGH;ifToN&96RE`!<*0Kq^n#@aD8cj~ z^eTf>^hP3!(a}vK$|Hne0%~#EaW=WQ1~vtuM50<;Q-Zb~iZbnb2IL29ixA?*|~ z?98sQ&A-xhu>^pwd!J@`{l~?}mmUXlLj@q!8)D#L!O;sHot@DG88CciZmW;A?wFqT z_D7q`wJ1)bk1EW;97Y&sX6D|512^Uz&J`ZxvJ?s*UjfQTrJhHJc7SN^i5JlM+Rz{l z%8NI2>6*Q8a3zj|bth*&!YQfwMKZy@#3ef@l!I2#!J-$D2nebL5V(=+@wfNOgRt%o zKFh>+2V&t3vzF?8KzFM!oJ6gwG7(fH+Kg}Pxi~%e*n#hnfaD^pP7wdQBKp_vVg~3%&K0qty3*cR)h_nWwqHXX!Ey(o z@3S4PbmlBN4(~h2%gK?U(hyxsvpWnH%EbVmIbp35pxQYeE6Frk`1K!x(2u|t-%RVp zvK~rqg3?gtt{h!m`V^kzibr6x)ea6bv7FEg&TcK`8@_~q(B`)e9?FlMHO_UcL8)3@ zY<0{%Ej%x_pys))RyJ(Wb@i8X=TPy20l~4RA1C$03GosmeXZXO(j6W}IX2hzhUEAa zdqsRU6|(UgMwrtnoNdqtocn1J#?jrP#xxHHFmxhr6=(*|*=!uw9{`F5UF=ell3a}i+F zDA(TIzS*iSnd#aDo>}s4Y$L?+J;6Jv0(OrG+&~I;3P;c$m4Q0wKnY#>0x?D+_=;dC z0b>hKWK4=cO|JgqICiR^xv8d#_GB-F0t@_h6XKW?U`5hpV33M&kl--KMyb4X-== z^e;yrclTRb_rh{elLJ56*dMEMYyE_|x%mQ^MDq|NyGQZ3)MhK#%I#`Ld%H!&C@3My z0FgKpl=N34={DaszXw7E&$j$+@n3FOKkeRus%KvsT@)PjTL)hp6EHC|W5rdE7fcmg zH7mi%8QF2B`^lOAaRrJ|FBsGy-v)jyRD;N}ej+C)MunzT1RGk{S-Lw>3=;n$+zF8 zyHf-VjE}6YZHmw3fCB|s69Mp$B?0h2upTg`JRuR-MkeSSvHi*?h52Ru!9|;~GJJvb zhLjEc{NXr5(V}?$!K3+JA;@zxuS$iG#+1{h!1gMT%_UtaN&0Uy9>Q1k9sL1^>E&e-i`%=l*pC|GI*IUBSPu;9pk&*qMJ_ z!N0EHUsv$2EBMzH;7HVexq|;kDhO2TW4eJmd3ouR`vax$My!^}x%27Vq(>F@tk4e%g^b79B^?bNxwag0Q)7Fkyy@wIR6|9z%TkCZnmX z!Lpj4J4!XFnKW5xPe?QZzEj%hZUc`zeR%`c z>1GCjRim+s1-D#C@XT|y3wARUgm$BoQ+2<|i|+$*R=>gu?~*21eA&I*RRwQnZCq)*!EmCFuq+T{%{;J39<{h;~@NPD5Jqf0K?Rs+-wJpt-33yA^ z*C-!t<-1=?Ox%{E&*;ExOBM(}{3hGJB?;Dt53Z$ah6g8)j_I+0f3)X5U6Fc1?PW1z zH4j&8jwxBp8}8_QDVu<$0dK7`jyh|rJOVp1uL7FMfLntHJu;f@1_d)Tmjcc7i13i2 zci&{#zBRXbQe0j)Bk98UPxtB9I)V-;W7sz$_5!bJlhxicl>@5B2|2-8e^c`ON88#;a%q~i%cf0Mv&}1~aVE;n!kUY=O$_eqCYVtZF(vWZ z+y)rT^gXqgr2^+Q8wD8q$d>%W2DNM3+c{@vW@Pk?u9~hjI1R^e8kNDB2dsYkQ1O9c zWsUWyUG~|wHdEfyl+{TF`S|D`-S*#{y)AiQH;$#$(bds&xwDG>Zz_E4>Q8XMH4#DsPQX6;R7{HD$_o^$<}zuJt9VQnj~lSA94MQ6;K23(h@< zZB+Ds(^mb>xBp}<9|eGivAkVO{%z^~@QK2Ya5UGcyBV>LeBS2fiu} z5y45yZk*6jdbgyma=rwHn{TBu+Sq5U>;~{CZ6b>+w0A|4Y@%qGQDcjl26ftT&?URQ46NOWaRA{;B^}ewMZULbYw2XRA1u>$h zRi^Sv*^CpkR}uPo0kpL_y4?&84%(7#F#F%F?|)f`J}F=U7u^$Vl})d!eXMkb))L6C zB!Ib9<<}p-tVrcn;|Su!l01ArUR%qYNn!?03G6c2mpR z7apF^RL)@TJ#6v!I{Q$fzu=v(uifUxUgYM}g}#wa_lkt>rzAgb)jv{Ld|&=iu)6kE zgARmB!ArAKwhQwIhOt!ia+xddO0e4%&B%ku-K6`I5enu zl=tHQ{~G>xu}OhF@RE62mY8?VG0{C2Lpm}l8fQ|85tNvn_iwak%$^}-7gx>>*o2ug z>A?kEZgz0oOwTUtwwpZ^mYB~iGcUFKE%$W%#P+32(~Ab8^jg}F5OdG_zO~8-*t@WT zJyoEhDlpRy?$B%FgA3k{$nj%;U#RWBw0sg1a8GT@8u7cK$&Lf;XT_+r-rWxcZ{Zyi zS&;)h^)%B0!lx_noddoOy{Xt^v~a*E?_@4)6pBINrN8O*2f4o6D=Z7TT|+ZX)dDHM zu=-90Y~$+0aHZZB+T>~P1kJRjj+X3Pf(tmuu8(E^xsm*I^NK){vHe`?H3NdjFEpcY zVuJCD{j-lg+I%!sOkYZ>U1Y<|Lj%Cc6a3wihZ9c;FRviIwXfd&!Xq5zAQJ|%1D?^1 zaTe*Y96v!niCQ(w=z&L)+h{Or(Gd-%nPXj;%;%M6?c@37}QP z;B>20*RJ%L_HPl;T8 zuJ0L3N5ABe68&E<^?&n?_lTz#C*+@77;ue-96g()IQSW|E8N; zh^CO^_x(K>F=5YE-m-)k80e9y)pnd#7pN_cY?74h0S{!8i@1A}=LV!A)!h~Zw(YwX zqx^QP=v`n^!&9 zcG}oP))UGQwHZJ&Nb}Jq$x6+V+nj=rz=d6Vyjohg1+?uOa@o^Q|0ZTweh55|h@F;7 zZ9ssU(w-SWz_G263dURZ`ZkQ`FG5IS!PT_&m(TXT8A$|3su%}jV%dDDVJq$h8n<5Ram@ARUff3W@Uk}a zH@nxv{^5Q8u-LdQT4cg~^C9$Q_EU0lTZvp>Z6fn4!E?tDiT;JfR)#`gL$`Bp<8X4U z9^jX%JBQNKi{FC5YH#BoVr(S}gr}y2wXEo!^M0CB_RpdxE+l>Y2)qa6D-RJYwu7t! zBs*#<^Hh{nodz(P+17ekOZOY@+d|r!1!g>I6Pmgj(zX@EgY5^Cc~Kt+dc-e;fny-k z>s(VP^4s3422dW036@Bve2H>azlvEK-`uO4o2FO%a=+zj!E9&rAu6*}f%gz!6{!Mb zkxV5X46L4caCka_HT%pZ#PTHjak#IxFIzO9Ft4V{WGq$iB?SA@vzlwRzZo(v-FN^n z#ks}{(L@Gt0!>;yO_^qLo3E^T(Y7bdEuQeJwNXh&+_m6&=c78c=b_Th`bqol%YKK} ze4VzVKvO2a2F7BtpAV`J^KmJSkdJF}&h!2k?|(y$;Sfrnsek7?e)SR~d+m9LgTrU| z-pb$7N*_5$0sUL99O&7^?ya69v7HM}@T9;AU81i6rcTfJgG0w2zhgV0Lo_Snth;gX zW23pUW+z$MWKo!p)<$K@LFnfVDRfpPkFZGW&NQnw(Ye4yU9PUb^s4*`aku2hn}#af zCQEnY+}8#S{%HM6{{J}p>Zq!=HD0AdDG5Qk8MW>5`IA zLb{Qb5Z+vP^ql+Nx$loV#vTlpd+)jC{NnfZ+7JAz;=Tc$Ojcs%O}qA<{x4tu3B?RA z4sbuKs894=r!~C{d@R?H_IYtsHtmW2P`y^T#S;maG9;6gJ6cx;_T=O)mTd@*Zi)3^VQ$v0mFe% z+eH2e=eqI1B<6xnA9yAU;kr)PLoMbe=jT3TgG@|?NDi5AZI#jnH0sGeg1lYGgD;7J zdN8_o@BFu5?3FK!LEE<%o%1Ie%bVE^9FQospTM0g-wTnHU6^xvj@Df7?&0hpa z3_+0oCxn0d@Fq1Fj282}JkRSM9nno+R_y&(VR{Q_OT)aXByJG&{d^0O>4rMX$Oc==iF9UXC_S%ub zf;4v98GHe{d_|SD|7E&hlLkybvqZ6~i5~ke94QV46k}?fmISjI zhEgDhva`NB=Js#gb14RbfwsdfQb9ChpY~ru%Q_%1r4n3Uq#^d20YVbZdJ`!9ixbw4 zhJ&#@lS4!U4$Pp-75?E=QQ_W);`0c!pT-OJtY4p5VHCjR!G8kMxFZqqEgJE;Y7cWMouP6@f1U+Ad z{Y3(0DL@$BlSXSW3fVpcDxovlKMU%9$#eTI?hjv(S;-5~ZE8xeCIW~$gM=+op&Pa3 z5}<1xGyr{P7dS#QIo|aDdH2Kq{*4f$8oKhNHxDCz83X~Wsf6oK%{18@Rt`?JQkHKX z|0SgDhCpiXx?Gz032*i zZPCoHmVpN!I88s8w>zMD>(-^5#l_B_5#ktXX~n43mYF6y=6RAYW}1;Y)Y`E#wo%W= zkao2A*daZ>4PQSs-A1RQPJ+b~U_&}up9RB-n%fOheR2Bz1=(;@4H z2GtdU4j+MKw+(L;*!`ahoCwfX1147j+L`b$_^gMb75pzgfTw!^nQ}wa7;n}`Xdp;; zS|4B=%k$aa-&mCMDJ`Cvc)15<;|BqQ2FZ7S19d5o<%+AcA&?x=0w!!D{aWXi|9jvE5M;D|!U9MC z$9S**COBp3UZ8cIp|LXuQ)NZL0~3?6?ZsyV1hN|^McYbhMn>k`yDx7v{+7QU;AY)c z(-Z<^8?->SbSK=V7W3CVgz>=H^%iy(Q{JLF%kCtgRH z?f$Sjzp9%oG-6|8GH_j;Hof*e8G;oIFST5HafCvK41T^Ak2gthYsw$p*~YrY57Y^OXgJYw!k zQ1vIWHltA>`Q1Vi?g{q11teIr*H+?oW#gG63sY7xbityx3L%2M?N)X7dB#l6Fwl@!JojNuN$e9c-$?9YSszX6(M=_c zE4u|>?I%a>5RCAHK}rbM@$3h-->ZIdZQWb9F>YRa)VIh|Tq{W=(V_dE1%rd085giB z{dyPtl>@t~7N_?8!i3xqBA+HYVetgdL7Uulb4o?0#j1oHi;YF?A$b7xfPwTkc+@ll zQDSJbKYlvg>ODOT5b+O(RUy6o*Ug|s?MQATHGJ(R76`nBq#WL)b)0x0QM{$n>M{&2;V5RwU6i!G65@;M^= z`Tbanw>U=dOIDWmibm!vu9&1GLP0^Hs)q-`+4;GOupudlw{=Nc-lO`n7A;wa>e1{r zU%yd<+ca%!4pQ0F+$D5$iD_w~K0a62?QwBl89krJX`)GAL4uKnF!V>ph1**o1!D0% zLW6d*O9|fR+sL!MVJbSr)DFGLvS!M7q$lKE@wB?gbR~T%K|11$3kSzJhPZaYaOY~I zZM01U*~0d^lAAaz_q#+ZzcBuIW{)@7GI%Y+&P>OWTOo|=E2B^D`Zr13guv3xzIRz+ zp&Rv}gFW=2mqqdf{HEDs3a}9l-m}v*wqV_&7?Pr@pXcifZ_U0W&k;UUHsyL0y3}r& z!ZLPTrbWAY?kuY)pP&DcQo?F^STrv-76Szhx!}Xd2)0H(tppx}Yy*x?XLsjl!ua}=Uq-`;Hve17C>yzIi)6&;b7=VXl+zL9Ubw-A!>~kIR&$6a5Au@zd8Nw*6 z3-XPX>DQ=a;FvL=!(Uv?Vm|-*;OUmC6@Mpn5p8aHbug;^I1@=hbZ7&mj+TW-2>Dkm zOf4j-?f7hAA)!tLo|FLG>l;x91g@k4H<@H6Lb&1aSvUj-77eW05bbYXus}fZh5f@a z=$2*WrC$*f@vYNN+DyeFL=sijq(7+8ZI-5qCM@jmJRK1#QW^>N9ik7QKXf2}L$6Um zm{hJDXE9zbmsF}zB#lcvosPA*v_X05dinh+?;B4py#}W+tj8az0%+8*;$DWnqt`5# ztRrB5mFB#q;wBEql*$wM%yy0)N3CmYqr5`fU5;jVU9HREXCDr)%R1@KY=atR-)v-q z2$$_gyV@G;LFGX00gY;1ZF;>5n2BPw7xe1or2__PNcb3bq=58Y5`w(1;3a((jOG@K*Z@?MzjtUd^;dQ9SERWj6MV42{h1a-CIR+G|LmS1*aTc31O% z!ewN(HT=NrOQ8Yw`MShf3%3wr%v7?*_V!=}7d8F*vN|0w{CS28Izw8W?i|1n?l$gy&a>{~I|GA#i*z zJVFQ^(+v~SWV5P=>X0beVL&W^8_hC#q+Oik!>5L+O;x>4&&rV*ukF;S2#*t&gj6XC zONF9!E8@-L_Rgp>3Ek0@xLCPu^3`}GgI-1qIq3$9b=ib<{jZ_554v_j-aKS%pN#Q3 z3ywJoyD16 ziafTH-*`OE3sRh2SVKcChqJHqI2g1>d-J63^iMr|{pB62z=6DHsb-VQ+fJhjy*ve> z*9FJ(K5`{=Gok9!nyWBT+ArTae%VXQokni>I%3M(cJZb93UQ{^hA30WQKW19{nUty8#?T)~~_msB4ZRCHv<8N*)U^o-O|lBckgz4l_H zEoVe-$d^(xC}CWXl`#^*i|C9W9eua=WqIp~U%=y!I9M33j*7(B4(MKmcIGo<{eh-6 zh?j?xNEC24{3Q*DMRmRX`(0rlAhB9LZLpDRdyHh0);`y@n`265vsz_NM6N{Kp?Qz% zMy5OM5-IGx*=^DEczyLF{NDJ*#;TD}SnHd&M(wBCmz?XqR4s;MO+X_9}CT{_kM9M1vl(RpIk z?rdGcTsFtpLliATWef@I==?XL@N^F!hGN~rN_5~dvZ2iwT+?Y*r}HR~Vky-xiaw)S z79rJwgcnCp9pP``eF0>pKZkqd{*CbBK*DR$@bK}C@FGFN8^C%YIeG@KLy!6nOKmK1 z{R!QrgDjlhL5wX%M18#uA^XM%wZ##c`vk?3XJk zabv^u$i2htcbdCiFc_U=8ViM#=U13qxag9{?Rvp?1Xa(&xF{c3`A zY0yXtgVkst6X!gu__E$lHi@CA#-Pn3Sn#Dl1lrDQS(9eIn|5WxzPw0dv*)LxqPD2GIJl@T zt+P;>?NTT<+sFE9%AO+gsw{B^?_quFLL+h+h`>uN#vawdvvw5C!M9qL07 zRkUS-Qj_%Bg^Z{x;qhLpW1EfazDZ5`ne(QD&WDvWV?;`wi!CpaVfr6m;$16IZg7~shZOUgZh1x(FKQ^5} zV?H}sW;Q>R*?1L^#3*C5Hn3Ez{Q0u^D;&ADu+<&~Llq!$ta$V4X+iqkz)eJB2mLsYu>NAPRaWw1_gRU66l`M|w*BFkzp{!Kp%B5bvAj ztr)2;+&-8Z;klPP9RbW2QYM?oQh&TkQ_P<7*sV`l0<~u67&Llhx+l zVuPd8=DLc-R5ca6HYQE<*1T4|_D+-!Y_Us62|$A3Jy4(wxTiYS>JOG2ba=;V?>cwaILB$@9G0!;G3$m7L>X z&SK5H`r#Z=(IYqO`Kg8TZC=?OSfrOA?(M&WRQ<*aw`R#bRL}b1HH=OouSTJ}$&XrekGC`sGJ; zWJ?Mw`+eL=p-=fgM-JSf;sxQuDoRq+G{3$taee6EKUDMuq@u~3cX*zKU~bnn=r0wj z*V|K+&c4dQD(}bK$&G53TF4$NGE=Y2VoslWVvC-?YCWT~!@|s&98JV8-1OEuPwz|p z$Vd1H?r<&42xkQ64S6jVgU`Bq0?)8H%s$H-i6OupFhHQY)n_#K=gg4nlq$VYOuaC$ z_Gr_G{On@;2`qx@gihV~>g&Vlr7rro=IT3Mgc51VYu_BwSpqN%?BX*EEt6B5{3Tw2DBomOpuTe<%tV9bM z%kSMG?it2ID}5ogLa$LMa*tY7`ti#y8z#riDb_R|6YS2zLlo!I`C7VTd>$R^4?IZA zFM*8lNWKXFvv1M`JFs&eLOOyQi&IGk?8_u04gv~f>CiyPr^T#dQk~Lq=OjF(Q2bjw zlGX-c6hl;Kk}8&e|M29C53sP>*ekv?eMwkdxxy6`dMlbeRAad4QTY6dm`+sr`3^x9 z>Jp*Jy>Eqa(}Tai6brnH8tVMO7B&<7w~y=tlf}6FXe8_z`smJ#t1{=3^f)sm#zUF~ zbI}T;7ignb0GYn5Dmd*J*nd7k7Yd2(_xcu#c$*K(ryw$7|8e+x5`b{^CG@9l$ux-e zXcT(ETO79sf`>f1gus;4j;j;=@Gxz3W|L&gPCorAXM05Qs%knumDlS&(M*$+TCGY% z^0?#Fcg8Q%_h`(V=I6BC$9mh5_mlxh%1>Lx9N1WPt;abTp4upAQ$W6+ysUiw?aCHW z2lXOFTj#tBVo!PNz7yS5Uf%;s7w*HRLaUrmq_nPK#>+DSVl1R(D2vxX6?*;;;&Vg9 zkEYUrf!sb@D8jBUzu$!l5x)WQXwmQi^!ZT2q#)HV(o z(+rcIEjE@D!%P{F$d!{zG(Q|)-qjpm&3Q36IKA4Y*P0kj#G6m2RVyx&R_!K}Y<;mh zSnJkR`?@(p8oPo=E=BF}`v3w@m()tZpFy9!8dTK=Zd4$Km|Hj@gip?^K5HQ}P0P3G$iMjs)eGEHdpvD>9xJ;0-@hgI0 zYD^1h>4rGn;EDlJo(d)<^liNA7%dNz-kHqc0I7k`H|+H-DUsV(jLQec`(s3yDQrPX z(O3>8MJ$K1-xOZU5Nbef!`D&mm(-5PCS+Pj!*V`eWUH!19Xx+UEAKKOr&+^tA{S(I z%7>*sZeMZ*UWT5o=6{51^!f$^57;wtqom;EuRLBK-8*w{7{NR|oP%7UgN`d5Qw`gw}csMlx2EDiacZ z#|0ABp+{WEV(z^Z?|L%+TEX(g=>Cd=4S;#vFF~>W_ zPi@jzErJS*<6`@XyerO^jdYqeXeVI)os%tw z*u?RC6uVUOOJl5@0NU|ciIJ4~adiP@dfb2-2+rpcYhpj3;P|Q>7+QRu zsS>T&ekj(HL`0^G`2U5kXEHrW>1&TpqHVvhw0(-#X4@_|aXoV<45m+{2$4B|e#Jj? zxrCm^Nv~0+NKyDjC|a#MdgR@eH-|Mo6#lGfW&4O)w(6GPKT#jaW&ar%!_N7Ht^V1w z;=TS%r_PIL0x|L{F&O`^P@Gc_r$X`@K|!1&1;sg4;&PBsE?5KoICzWG;dYZfI)$|5 zgEF~dzNrcAv%>sZC)w3(>}bKbUUC|tXk{wVLc3Nq#=59LIKn576Ps$@VGc@s_E#F4OtSaI~3@J~vvCG%xv6*Pk6vEuq- zC{*FkFI3-%e?$4c=I9HcUxZDO12_`KX?{qJ*tm>~;ikCcX8k>h>$)FBD}<>;wPM>y zP#Z5vS09OVVE)Cz4C!{YVBJS6NhIFVLS8?UY)<}J8bP?$OYZUw%r7dkXIIDlgor?| zqGDZ=p77|PUg=M1BwL)+*#wkEhB9K9tk<~6QpA7CDk$W9xpb}l+Htjw@m{+Z{1jNK zRJE6hTeQgg_siY$s19jgSx+*eCoqpy&s?8a$c7*AF+HU1*}a>fsx|X{ZLdIeehdph z>09#q=)aR@eq~U!WwAInl1+oua5YnvxvH4)3iiaUI~rSsTh?^ABxeE^J(k4RAgwj^&lSkJPVm6a7@DU!h@ZpakWgiz+d? z5Fzsw4PD`n-HCqdEY(hxTfi>+bVRiwU=`wKFNjwU2B4Wi%ZYVRKs&AAH`3knKSwv(pC ziHuTaeSojKr_lngT!f|l+V`ohI&&prkZ*1e3ohiWAvG;(>;ixvX@tI>X)7qYY@c#-zIBK8iR36zbMk>e@1SPUZ^CtCbO&bYH z`C#m8f&{L3E#Z!HZ_RAQT$aNtKwe9*88#cn!NZC z3(aDz>Pnx=Gzw0MtbF3Mr!rWZ^EsiK2#H#$inY?CWPZUG#wec058MDcel zWh&(ecZ*GCJ+O%}MdVC|NHJkk<0Fg4p6DrPM@X5TxLzvGy<4&11`5tuQ zmFSeu=;YmPxNF&3r1#~mx$F$Dk^)s=WK*!Nr|a%OII-)63pLSnn*mp!>_k~j`(|5@ zHcpvl&Pk=q5WOjIk?KqocwN4e?tJ-)m&xmrIF!j-fO#SfD|mV8fQ{c*XNqpEQ=g1>*^(Zg5MNypajQhPps#OL z2-6-nI((?HP|&_}O6WQI&g!!!EsrD0)WGtM$?VT#Cxhu6oqLU^`i&P?i0qtdt1TO9 z+Echjee_#14Xz}(iJb>~scq}uTU+{mQZMxxuHE0H++KE#y3{Y5f6bGmij0`><8;gC zO2FA{kGP^u36s2ZD~TWVUZKwMrWz~XY62W**I*x%m!LOJ9G zd`@!QeFqFH)qHnI^D(uM(2u>d7X#<1DF!*+Gh5kP&!xo4*=fGJ;@Uqa6N2~ha?-HT zZIXo5_mnUt;eJX!vAoCfmfD`5+jmrarp~*mF#N_N++A9`%hnzJ8AMQl^QrO^TjL|s zHEdqT8#J}6{Yh!hu#hiWGz=JqaoO==Z~GHM+JyK?`KBNY=@+O1i396O<1bNjO05!^px8jM|%Pi!~!x)ff!1=4@iwQ%4@{8bk5|9TI|H7Gw;Y(V8l%Ks=oVv!9- zGo^1-?tI}UPv#7WF3A{CX~ySj-LkQ8A8rBpYMeaskhlL?eSAvBX7t#N`_z$y!*VvQ zt8Lc6al))4w(yo|#%vK%Ll^pb<-N8#_w}b9b*3zb-yRPZ6&8-dWi1IYimDb#Ww|GJ z%2$>s@bJ3U$8ObU`{tsrHCs+jbuu)#(Qr{wkWI?Xdc=m_?ld}CiNKSWC?}@s)9&}& zD|(AA^l@a!s_BK^S?b2m#lvu1?n8=M z-0|T99WCWc(KFg;Z+SX4ia?J;HVS*YJVn=8R}$yliEa~>(SpM@p0p`ag=I7I;q`_{ zP%&FSIA~G6UpCgEBp^Yg?>Sphe1J9W*|o0XwD_IOSxr6H3E#u?8+p`Se2gAC;5azQ zq8M{q_W^A?TB7fCpAYU3s4q2B}<(&-`Rn0@XKvCGAI4bdN zZfMIXM{fyCGhYSm4>?E?lG8uBeST(;2n8 znQ5skER~OiB%epmZQBaQ6S1G9O(vQTe5lR*;xjoF$$6&)^N&4ohRp5Tva5T)z9+ zbR;vq0@d6P0Znt1i{h4$m*_~Q#V+LqRljythRf^JK_OtT>5LLaTFv2j3PKaYO%7|> zwhDvFuoKf~&vvF>J3oL@K}UzD^K?S1x$KtCD>_?<#Q7=Q9%*itu2KOYjvODM`Qt;< zK)Hql%?`(|MP$&`#Cn>Eye%*FU_zGs)#?35iSUo3tPrR_6v$j&E^HRa$r8Ea0Y6Am z!(t*|kV4XYMw{Ci<>y|#0S9N8Jipl@rHhrSwh>of4_i3S9*asVNvc8pk#5(7cVA5^ zra)uW*ehRlvBbUez`0a$D%qsZQ{~1%6S*5>?87Gcmtso%GDJo>T?4`t(so7nH)lvlZE@c==g8$3 z7D+bIdWdL?w3^mVF06zr(z+yr>0*m2)BIs}w2hBhPZkL!TU&h+-}{<=?3~L@=dxMP zRg}@2u07PL)DJg(cKBA_eLwUPggr+~o0WGvIjgG*4aI{Nd3ZTEB*L;N$X~P96blxf z$VhaQY z4GO!s4j}LOBAG?|wN(g~{Yaxs(zI@m zlQx>Mq9CJcTnQ@5OD|uX@>0=IZG`vF4=cHPq!Mp^5^+_qwmUZM((Tb$m_OEvxEx<% z%dGeQan0WRad)%IGay!Ob*JOh-z|WP3UmeN)zZSlA;eu~g|)bkJycC$L4C99xy&lz zR(eH5slVHSij({5m7%P3sFn{6L0I$idnS8vdBu{MjfE9@9w4n!@NNYEj~pUG)pA(8 zPS}uTI#K2@%AfC>YOssEEf^O`i!K&&`f4!iX4iFFU-US>n&?m7WER@LL_JzYWwF@q zMkCJGUg}a-6%FW`%iR$;+GeO!eeP7-RWa1#dP;F|GV-A$fkP!v!I)7X#a=4g!26u8 z{OkaA>{E60X}x9l5U+kc-D0Yjl9%fTZeDlstt08I-aD!6+U^L+6Au-IN&kn&lsm%V z+%oYr-7yE)WRpayuDOoJZ+<9<>&h^$%P!OEg?V9E<}n!pP))CRywhB+tHgM?Y>##?_KNW4+#){a)u_aqX*g0x7v+BxA2i1Ns$Q-U zvB_y8DiM*gAeh%6AF!x$ezdkE<`?9Su(KpyiW87?AQoD(FEH)U3hl4zd^grKRR zPcOQQ>Jmn6jz!qKEMEck@l#6-|Ffzr0X$GR1|4&;X>TozmDHw_lj=B>u)?f|vwf>! z1Mb8}nMy9!2n1aO z7W5Ww*iW@OOEn4;zn}^Clp@`RW<%d6*qu3j^Y&M68k7wh6p+a;%x@jV~ z@s?yDZz+G`dq$O8cq~I!+l7)_laOAkod~Q{>sp;>1x4L+`y_7es>DZA+MPr5zD2`A zk8`+?`r{{PXsDJ59U3?b(ux@FR$%5?+5l;2X3zEX7-G-DteDT$IQ|=3w zo&4;!i)hgNn_ptt_t=AZDO!+gI3{p@9BQf#rh(cCr-n6Y>DLr4&~g#%0-sY;{5Og{T^d4`RJB23I0I#^k{_z0@GX zyPV-ygxr8N9dYo_K8CQc9;59HckKK3i<_w9s#>+HbWQQT$^C9(AeBmFRWc`pciIZM zd-NqF`|%Guc}MLav{}TvtLth|4?}48+L;>l*lpaAVzpZ_#shy7IV{J1Eay#pI$6E{($B+R!ZQ=!UWvn#a)bFT@7 zwv^>u6$egrFUb1NdSAn;zc(Dyk&K zA8^^0pC6a(TnorLKaQk5P2rUZdOOSK@@Y~|Xi3`XT-uPLX!uq5CH_O%imQR1`=Dc| zv|71r0=C&iqm)+VkaA|~=}D{)Cf+F~!Nht-IfC<) zHrieEEY*)h$Tp4=rlOybo!9*c$@{u<&1q$nsxKOQcI9W8Jv3B&J2L9Lj6T97wWmW&#B6G*=R;Z8r< zeZBe6B9w-pAS?2L{WGq)d_)poQLPE0Y<&D6DzcQ&bIO3UhGOYWN-8Qkwu=rY`xlMJNH>x3z?+E(gNnZL|HuOn{z{qIN`e!5N~dgn`B&{;bCLv z<8@k~@RGrjrQCa!EAxk4l~Dha7E?+;!j_C^g?M!7~kiHTc84-3yK#Eii(td z$^2{>F9d;If7P-*AT>0YAYSNGV5&rgQgz1BEB7F~tu2W2=MUJhJmN#_o_W382pkQ< z-kw7mdl$?OG=_ofm6wwVv|C~{N*r7a?yg7fN$@rxz3~c^qBpxJqj{IL6U8UPnN<@r z@59rLG*uWhh)SiFi??tosTK{2q0_0XPbjJl^pl~(oIp;A{xjN};f7z3IRq7X52tc( zMDV*41exb3PrYs+(+z^mtP(k$Bapm7_G`X>Pb9@^?PLj0{_nQDXtD)RTD3w5W7Ztl zBxQT_NQU#QM+xRydYmY%i|Ts!K>_dG2P!dSVt4Z_thKKxy!mY_3e#9n(TMkcG#}(O z7*ZY1t}&Q_T1gt#B9+H72r1u+!bkn=;Mp6s6|$tz2;*Av$&+LdWmI??C{OK~sm~66 zIJLpKY_}BfnC~3>>FAV?_xjgVwlw?C#ZO}9h=oM%Axo?Iu}!)wNF8tIOh;!M8|YOhfa zIGwRk0fF;gfxa}Bo&NXm81v(e`${7kmkC9gQw$|(ei0u0C5F1H(e(+r&;}ENbOXNe z3-LW}ea>m zTi32}cT|2iV|A?C{3zxbtGt(PM&Vb-%%)Eu=uR@0lTj@EHrr%>RKcLl$%FZR5cI{= z@_4L=QM@q!{Bk5bR$(^wCR>!&RU49b&|^a8e1MLWZ|}IOy02O=ZZg;)9;VZ1meZw~ z|Ja^@%as@&o{u?K3GiJ4he)LZqgRrUE z3rC{F(6G&OSnYQ08XwrYUaB?FbOgu7`)AtcyCI}q-xuH6n`KciV_}2gj6CNu&5`#4 zzFS$YQvrS16xGt=Euz1l1&~sr97pVNKxZ-2*9eQM=E+r|Ur<-ps(#+=bk*EzbxeyH zZOLUNZBADLc^MqWoq~qjZc&5$z@aj3@jZ9pkecD`QQ1`+c#&wWPd>>7`qPOQdS*Li zlLy}Nqx?_B?r77^cwCSU{M~^K39(H3lOWyWH1+~P3Mp-D>AO4UxS*j~vE!W!?3@$Z z(0SnlgR$#fxk#K*onNw1qX#Km<7ztnOV*9e49nuq05 z5|>T z57XD0nnkwSv=yM5W9!Fx_cY~s6(e@eJdl3+`m-Ai@{;0<4Ns`uHL2s;K-^hfPu~~l zrvRxZ@;#Klhcx`;pymXuf%Th-IR1Djh0wrw9~)9c?j&%f*tyl*1^D&5_6Ycur3e)S z1zTIyBLyhrmhVqL9s{i~5#$wRU?}JnbEb1~`q$ZT(D3(WC@b^Zmle5M3}#|zz15-9?tnSLm--lLg4o0doX)&SmAcc-ZWWLx%CY&mV049HxzyU(*wT6a({;k${BEVmlf{dTY|^^WLqZT&qQAd}28tf}LHo z2$r=!fcb~@g?UfxH9m5FSw-30+FJGay&;f7!N$gVExwJ0hL$5r=>5(nuZwbi#X3sf znmzl+yT{QeF1q$<6l*fbVV73qQ2_w~JXlWLLYDMmIHj6{=h0Uq%?(Fe=Oi2ovx6h$ z23(;w<#hRd?;4fDn!P}}p4Y=rNUy;y4m6q5Vm5-Nf0y7Js_JSKA50^Um(_J6YrVp@1k=@o&wJLHS$9qxRcr?9XE>+j5(I_?B zjz8P1Q8FLwV_}C{)kogYjY)r=jq8n%E!%2;KmOX;QpzRC`bjjlL(5DVSDpL!9IFd< z91QeD1E1GXRvIt3-XD|XMYS$R4@a6uN{UuMS$cSf%GB`30*#K_S>($e`{fl**G4<9 z9Ukcs&b2(y`ysV;+aMQJHc{ls=%)(XgOL8iv|J1ab34*MC74?<%n$(eE9X(rU`PXV z8POa@BgmnjdpK0hJ~3%1C&OZlFxHF#*M5rahPJy}lpea51WELIQf zool(RcdJz(W6TCJ#+IW*-kS(dO=1q6q3t>;v#JL zN}K7qNIMVY6`*O=-gIUDk}Mvwg)q?yG0-#dVMEQ~5z#XuJe=?QD|=Cb&6Vv2XT0N)N7)P;b07ll=4?|1}XYIyX4q1{RC?Dt`I~* zF!LE+|Ju)20A5NGFQ@pK#59A0N;*m8&RkXCsyyM|xJJC$lZZB*%oR+J6)BQYbOYal zjT-f72ll5|Fj0fa16Q+6=3T{@X}N!il)4v`Tbc-bR$-u(zL7(dof}>0Ix_V<@H22) zxv@U+M75|*+BnVU#h6<~_bh9WX`Q|olP2$;dQ zk1dmHyX`dDa+(&aBS3)Mu#L$L8bWYbnE#PimV-iM)vxOVs7TvaMu=dDD<%^>n<_Hc za8Vh`8DZa0e)|qZ9o_w>{`g zCYWriEM&TA5gfl0&ISz@w7s72P^8z%g^Tibt?0Tqeu^e0?bEk$U}-I1 zR#$+gtj4Q}x>&AquzUP1pB-1x8%j=uOi*}uhiIk(2ZW3)PR8i&# zvkZ^h&{Uno(l0f)0khyK4_@)*%7H9}2&Oe~G@zHCD^?GxXvI92&8t(>;ZY`GO4N{# zPvUP{tZ3O8<;@j|Ys1VWGs9Ep6%uf@Prl|emkA1i;T^0chIF3 zNUfMl;JlUg3tGEGE40<;3>~uzWClD|q}*Pnm| z85x1S;7BRhT|P~|Z}S7Bh0@-W!NL$jZC>aGq<8)d4UrmP_Ed^8YcGEn4PI}U)Gun< zYZ5Xj=b^TIa2vSL#tfSIDr_bRBz)1m3VjRSIQJ0S6lh|I>!$7m>Ee!XAHzWYTtwF| z==v%Qmgf?76;A;%dI0&%%``G_PxmNe@q%=Hccv5_X%s&(wJ#Cz0TWG|DNq!miOw$! za&)rCOk2LogMyA63h?lVV^H@L6Y-b6fFktAKk^m-0$i3DZ(E=n5aac6^zT+#%Iy}l0a!li_cp`^&Jk39Qv7UFN zI=Q=QLbVqycoz|d0?7?ZrSUsGeaQIRZTI(*X-~gtb$<4OFz)l@2B(UN3Bv5qK>ql+ zx~#1HtA0FYW&XBwPFWBn<${8sO7A1%Nal{@800DP<@hyJ&?{U3%*%54cmta$=*ico z3}BW6bw;`88I~_%{|{$x8I|Q4b&V>bh?I0A-8@KlNOwrLbSf>~-7VcEEl5iUN=k=F zcO%_-u7~Y*k9U0U`OX-};jc%DabN3NYp%KGn)i7291u7_i-Yx1=!|w@;d#WY zBJ_GhSO2*lW%hI{cI&^uB>^-Ng-e5xB_2oCi*)9rdLX!edkh+j2z05xjm3%%=u}r{ zYdZSu#E4JVWby9ado`M1b#O)#3bKMW5)gp$F~B4Mhd=~6E=-9P>gkbmIM@-W-mB1Y zuo;|pxMJUfRi;4oas;K}`%$eT5HE=>dn3W}Lc5ZTMrIuBznRICd_h*IoX9Webq%*; zDJ0I_1D#36MC=I#1x2j80FUSS^Bx`t+s2q4;1L2Uu?^svx;e;~ab zVXP}<94pl z*ue<|FO`htx!r8Gc?lR`XX1{!uB&#h4pg>Y^eM%665Wn%{yso2QoXsfi0iO-@nQWW zZQ5viQd|I10UiMs_(}~CKZHL)1$;{U!Bf33%4U*Hh3{rbfC`$dCtt}4xi^((aK_PS zR>1}YU@McBQXSZbgZ`rt@CS=eT8BQ_Z0%23j$O6|IlN6q+}#)*>A<>|TkTrNA*WxBQTr@yC)O7x&^Cj)vSi|@G&#@S$nGf3Z* zM3=|}gtEG>Ssfl7{TRMBo)6)?;C0)|8@~jF>t=zOAbEZcTVhbqc_IX1L;3;OAPo~g zy8q714|-;X=}gjBPrC~~G74NIL9q#%?T?nJyMzxC+OoUvM56>In5Neyz=mUM%n~9j zZz}ZmH1p#S{=Gf7q|ti*+EvA-av6C}T~Q>q;T9RLC@(q`Q^B8@!7kWve{IjE!fZhw z7`(y^{+)fNzMTd@u?7$fbK5TgY3cmLP;z+VtEUZPtlCaM{l??2HJn9wqj;&gO_ejPe{P)E`7HOI2t@_$d#X6_(fd0ZcEN|Ao3O@W z#!9MOr)zHIuRfdLrPhQ4d}jU)T(?b*I)Kz7n}PgY{UsimaJLjxGBCw=rmZ?R6=Fqy z4HWe{s81UlBoL8+!H0p*zjA6p;up}pi5Cp)1s2#oU}@M4G=>sQpEAMP0ub<7mFvCC zc?p=>51KRfjBM7UKTQ~?!NppW%qD(X54GTV=O0!6_hJct4HxtTbmJJ*xTfsNH39c= zj(Fy8!QXl=DyDTE(J?Ut?HR06^73SQdIHa$A}U1Ij`d68x}0UCq{*1i0OOhmXV@Qi z)Vd|LYR7CHy=udIFpa^1gZ&xhJP~+q$K#JCPvsrleg4s8S(=O&z8FnmR5QWE)>mKr zNR76hxwZ0?L=9~5<`)zk+9P>Ad-~L7YYuU8J+|-6{0WZ$@`~G7<`s+lQ6W^~bz8tB zaD>*Xwl}0`Xm8pHY=hM920nETW~R#r9qyGbEoQHDoq^RdC?ph|gAQX8%b9>xRHF?J z`=5yA1U@dPb~i1yWFGsw^bwyV_LWO?QX5f-q#l!zR^?L=C5S%#>^k{cXOb$z%LfWc zBW`}R`LSBg;7CbH4E@roZVt*=4Qd1B2k#4aTn|cJ5!uO^gZ>O_uJDiktRL)LgT4cq00TaltUC=g}TSp1=I4ludsQ26(ch zbrgNkyhoHWbD(rPMR*tu557DYsGLM()MG+qU zdLcSP=rM)#1XJ+q|DfRiNgt|DSAY!P9h+dZqAoJH>5G@;SHbkzZsNWD3f&eF4s|m! z=+s;>t!h<*V&9qCNZK&a(4+!#!xWTbNHO~5cvlHs-o19$E?tTz|BxQv&2tVr zKt)v;%~^(obnonQab;;st6F9BA$aFHnI*p4kR>0$3R<0(CK}6=jquyoO0PF|deDzE z5q|LqQ>#^ydcmPoaTDc+EvX;%=7*(7lUjZ5NG>mk4G52krUMIom#u}Fim*Og7RI#7 zdBZFw##az^9r1yHo+L27X%{g44C%2Cu9}$}c-v|^x$<3?BypxNaUgTugR+jAi9Z9) zrB!OCEY)3}94xdG_uLR82P24!9(mx&4vSv!_vc58pH_Ff9oDDLL>+gX741~O8y9xB zxo7sSzsgA$KQtANZ5ApITOU+xnry+<$HXzZx*?Nug6MEo99v&zhKqNa#1jCbv}+GB zw*hC8c!fC!1|J%-D{rBs{pO`m_i8>ukp7>=Fz-iCS1?J`KzA?uM zRd<}X#pILYyS~4@f7n@H4|A~cCiQ- zCx`$6eQ_lZ_p+oABw1_1G_wH1le0w5`t(JX^SSEu*m^k@ltv&sas>REj-i)4|DG0m zNuun*&)X*zZ6f@>@K^ zzy>N}e6xWJ&Q}wY$$?f6Vv#KD;`>1qL&)jl$tr$`)l&n}3to>{*$k!Aaq=`%F8@=` zFp&5LNWQN!a#&{PM=6-tK^uP{1x2d2d$ya90DC zlZL>to43bF+IEhHG!8U(imMjmG$XzW-m#7mj~DZ(#9A5BxR6pk`rjU~O_v|BB@*Mxt|Wx3+XdQ(8P; zT*fvPJ^g9TE&Z2dQtPoQ2fl@=-uKvO%U>(ztc});qW;DfqB&*}8Eip>ZOW|4R@}Y( z(II|wKRHP~!MZffhl#hqNQm|AFS3=!fynnAG5s0oUL!R>5;slykmlymzQrt8yP=Ep zsl<{+C(@|-d}k_}5w>HTOpU(^+*3>*^c?q~y;7Cw861qtO;0SOWwU%es#;bAgmTs1 zgm}~FG239rg^pB8Db>!sMx0TUprBTRXZ~>1b*jZBuAp1zY)-sv*Gtfl#n=uY{*yh# z(fYT1fFh!!iHCAIK21~c zGo{8{m|X%?Zio~VJPu^#mH|uD3>^^_PnJ}p|rDGmJNK;U()FydJ;Rf|{!rao94?k66bqW$0O%`04g zb006n$t$Y2*)*oRXdT>^MGmckHHGjVQ0m12xMVv`Z?(>UtW>c7=o%PyZicgNE^iWiyi&^r`Jb zO$A(*i}m~d{s)%?K~Ho$Ns*Gd^o$7xQ*gbM2D868ypMb3uOxoDrsFL3kz*gd=SfqPNtnI-OLU?&K3m)vgy2+*t7r?qw#lD)j?wq@m?!|q(9JEXjyVfi z5$UEF@Qu2oTew`V({q{cVNe>KB+Eh#ifeCvLDi#GKgC1>P3JICc2;u!3UQ&{*f9dx zxX)8uE>jY7(ydMrZ=!-Ro!e8!sYv2r2?JBdpV|2)tg@?Q;_CJ+dY15>4EGD8 zfI4|zn3gdq-3Om4H2AiA^=JP62bUOV@If8BC{gfpw4_iYgT22~hY%Y=y}I_)JhM4H z*=P;J%HAz^9&fM^e$@QE1I0;CM^Zi2rMER!$RbI8%aY1WH@qz=NCDnabeC~A2uk9J zxx#K|W}TS0n6hA{oyxY_(h{w5gh%*E3^#MKm*9hlByK;W)*!N23X+MLe7bl?jW$wx zM_Q#8n1~Fn)aze9pBN-b8zOdQ{m2dCXcB0(B0F1n68Y0uroqY>HxI&W)4dBA18@QR zIhHpo9uj{-9aaid<0)lH(z~gE=_k=Q-t(XxZg_X(wLX|O9L@x~!kGge;YY)fpc{Vw zRY(!~M7qiDS>XUs=l&-v+zrx88wrXZ&=t!ZW~tuT$VW)QLS43c9Z^lX{X}!gQIhUu z6~?xKH4aCeNEB#E{(&55_8KMl&v7J3AH;k*+fr_Rr-R398#|T9hu5i-_3s%N zbgI8@powBLNG+eYSpkozMMrTwKH2V?<7Uxn+x|1vLL34Dp*@I}92%2cED!MasVEU( z0n7OfhC3tcQ!08RTgK8ouN@d@3~4UTFJG^2jc;!FJW3&j4tv!5!15|85(J8+@Bgl# zgEL=^3+QBpmeH?aP==`^EGYZ$uKEfW%mt9%$tkNr#ojkt(zD#}@i~)HY%%C^9gOZg zI}~@owu3{WC@+`*-~2hbhncNwEQ1QdcD12#Or`g z+3XtEi%UzT3fZS{gA;0ypLBZewoTdbDT|VUp}*-Pr8T$@y|=aRW(4;JGm3B%ja-rN zUqxtEk4-Y*^6PMBJ{GZLOBD4cNA0qTAkQzdimn9O2l4b=*R!$G%3~hap9BE*=Df0W z9bNReGV9$ZN%5fm)3Ts5WN^*CBbk`f;W6(i#SK)fhw<~J&aokv94ix?bBp~N8BU=& z(Vv7Lxc50MkyfxIp1>)p9!;x(f)5@3oxM(FXt6YIIwP}o&^Z(^ma zIxDFQ#2J@Pfhn2IpfUeC5-4rkydM=Zey~MBg(+3$Pv>5cqw_k41nd1x7G=&;`*n_^Cm5e{CW5 zD_9b>({Kfte|c46Yp8>Sbp@lzy_Cnr2c#1heM}~}KL`K-03l)l_y#!wei?)Uxt#6m z-6>w#G~k_9`AF@^;bsd{)Y-voPxnY#Iqy9E>|8}%5CfM`w#CykG)XG$GjwhL_R{dn zfMN-&-PsMwP?&X-@$hg_lW+zgS3*8(I35~js{{L)$u=uPTFs`s5!2TOFktgj(k1F@ z;ssA>i&HJo4j6lpuHjCW1ied((3%tF3qn?tpICB%+2g{QETrlof^~E)(n4w6ixD3$ z&`#Gvw+lgE=n;k+1$&fi9=x|RN5>9@iLC6>$?{lz%O5Sbt02DMjx*sE&TkSsa~|A%tjCK0fYnA3W921ij9-S_(NJy4~2 znyMR^hk@j;MV)=GCs<*C=Ic$@|Ferw?ap^b$72`ah>c+}Q3SGWpe(>$A=$FV_gw4d zxZ+wG(&*q(eeV&b#t_m@v0Of1iaTCB?@jKSSSHD9eRFZ8I(0Vz@%-qjf$E+|PNhie z_5*ECc%;Qygq8qTR8$IM9Zp*oBm0+AW`#o2yP_-eUrk&mc>J&5GV_8=w)Q9)%Hja- zGD3q$3^|oIfL6Jzppu7(i1$ zZ$2&>N&DIOO%9XN!z`u4Z(p2p5$@91bY4eVN2Lk^tJ0xgrN%!!YC>DC&&gzCxUY$8 z1kU1g?8Z$yCA!%RE)hYe;QC&;+Id#RkOOG}kg(7-AKI82NCuB78(OBwEN~sc7}vL5 zXiSMf>EA$kmLf`QIQ#IE>$zZ1P<^7XjL7J_P67+m-7h<*oTHET~ZIx=L zbvZ&S7jddR2a4A*E|(@3%$Ft|%=VuT2dcm>y28=Vw=~q8>P|YO#y$N0^X%6mg^`4# z+SqMsXRm}2$rLE=&FVz1obK|A$oA0i*{$2;UT5ZosvKX@i5#E&K(X9Bi@is9*FZXmqnlhwPZhi$Ep~KP}yK zRCk0I?dYQ}>XlppQj#gf;#Bkp8eFFltE~UkRN; zp~uy%hbJewfaYC&Xk}yb6f-njS%eKJ1Nu)NrqzUe@9Lm!4*@&uHhIPBfGf&7K4yLP z>{-F{Q(xsO8C)z*72sOpM8xjNY7Mz*ycL&?TPoW=;rC!;x5RZiHpd$*mgiT^iAg@R zEB%U+EH0B;&Ks^go$i={^Fp3Z<14x4ZYcR>i>a<_Ks!)m{n7y=ir*%CW`_^%m=U~U z(Uxe)$l~@GTK3L$pDWJuMe)W`ywN;bl@dM9f45%=UVN~uWn0s;bEWSA%3Z&KFnr!&no>Bdp4eRRnB_rewg< zQMYPcUtcGjBv5Mux1BY(&6e@(Ubpg-=x=T_)L}Uo9bDpe*@9QdubzNCR(b3;X;MVT&1pT`a|_3p?zVg7>Bl|S z4UP9=@*A-z3a`5dvgogMa|n8P$BH~h*N&y4h(cM^Yjivyj_;v{e~^@l9VZ37ID0T; zDY=TXC4idKMi30_ePCz*iOEb#x2QOPP5ZJdCgzeFDI?H zH=g(`H9>6x6RvB!^&&-;QLDIwakWVUusHL$7PVYlLD6(nV+!{>4NXu+U$+q?9hc2^ z{a=63`~tAs!nEUh^Aut(M5-22NP?=>{fNV*d%Fuo{u=_80h8RT+mI}q)3uf5ZObEP zz{OFM@JIRz3n4YzPEHMl59h{H>uw!JIXcU^MCaG`H1J%qzVPE_MA4AH!XsSNF99^GKIrDqbQ+rG@>m4|->8i~Z{?||FYYa%QcI2|vkM9@9 z7Z5=P;PRuL`qxSnkP&I9`;;VV_*fSrz+2EUXGuhffRgh1${s9~M0PrkT zIKOPIPgMf86>~QS6VKpzhYudRHZ33FeW~fI%Vbm&q1$3cBQ(ble@Cm8oiio#qAyt% zI&bTwlq0!{z{`DF$%>80%zPIxS~!%cRku|Rq%$DfB1#c#MgE>h97yLX!!?X(JTY51 z4O?mAD!#`&FT>`q4)Uy(8_+ALIY1F%)4bTvgtk;Je^&*63 z0XNFGv-KoD$WbRc2U4UddgE2CPM+@=%A>V4t9gNHvQ0YCg9fN))Urb zbb2JY_s;rvi(B4g^F@F6A(BosU)P}q%feVptBUB<$p*Zmz+3ts^VO~t(YXrdq^W@| zWL*zJ8qlO!y_5oxe7er|NYUiY(UI7#!1-N27JR^YYyQuZ`XN7!xXIqT@?8v3FY! z7xne4?A~&}50p=>8(NP+?*&`D`p1w4S;6rr%U5-;gu~xIbAcm^?kD093!XfVSPpsJ zoiKGH*>%|Uli|}%SIr2$!#fK&^mRt>orbxvWFwBdFP!`9a_8oo29sr0{FC}izM?4x zyc)028N*TS2yZPpN_FZ5f7)fZUx+9}LQe}4NcZ`0CQEn}jwy9$wR6bB_fyL=4Z&VP zTo5wM9e9_EYzWz8F4)%;<-|;wl~`EHxMMh&^UoeNG^bU|e|C(|CzmN2GuC;!U52KQ zNvHGViEI)q`D<26!kHVY>uRG)DI@b9q4KfYbbZA2@4cU*>6nDvGocSH`rzrO=pRDs z@d4Uc+_t<{|2}OKaPH-K!rHA?G&}PbL1tf{ag=E*d{wU4Tpy}evCPHiv%kinPhKmW z`i{rqhP=Y4Eix{rd0d3&Pi~mH4^yKO`$(Zo_3gR-&>IaRz5CONmG%zM?xE;D`8SAO zK9r^c(RDOHEIL8)C{^7-1`QiMtV^AE@8=55dl9wFk~!Sg+%?z|#}94igu+BVCnA4zQQF|-?OUa5)! z1OMN*d44XZD@-ytLnt|Lh6)U+beKL9 zMxfd?d!9TK%chpTB&Zf=#mX&P6=h0L<@VYl@5|&>e82tWMWb*trR<4I=d*^7^A8E9 zdM*parf!EG@tco`%x5rB9naAprox!Y6C`3f**gU#mrVFZM3i+GQakx^J7HWIj`*fu zo(6$cBI(a)yeKFL0g8NXf;K~UkKZb{y$;YeKj0yI^;K*RZ0N*f)#E^~Eb$}MHzbJx za+C-S^bSkTzy7^4eS+XnB!eV$vpsbiMSgl)`}n?mGvgdSvP$w}qS5*E9M#oU^J!hV zZp>^!qvsD*GuIDNVf@B^aoRI2wuB!Bl8`GXhQD_sD798DXBjmd#>Tq$LQhJ9{~?wg zMJ7qzzqi*LUY#BKk=O0g^0F<`6%35t<1FkQwf(IQ``~toNkzq&=Y+VA4-RY>7FJ*f zAm!~EVdzBZ+G!+ik!jIn@0h$Hzxd$~5E_g) z&wc+S0%*c8mm+3?Z>Un&@Ifh`wO>6DEzGUSGKfGqL5+@&6Lfp%r&yXJqrzVdUxUZ~ z+JwsWW;*a>!ApmTtp~r0+2caWV>T`brL9VX<#@tDi1hPg0c%)O2P{jesnccdUk#3* zOGE!j18~AQ*^|p%?W^{t`IAD|tQMUz&1Mp=M+bgaFU$2_%p`_Pm`=YLD~TC3ebpi~ zl|$pvMxKU4wvuCF8c8xdSyi1Q;{5x!^T-p7I`I*o1&0k@f`$H1H6D94lJDaf@6&k?G{G2sT`vAN z5|ac2?{kj)@^qc`;%07;&H5!$y~oj$XrG}tI201(Tw96{X*$|j3I|IHr4G3J{dy1V zE-&#`nux{58psQK#1;Pb*cI`AX2oa;Uk+EY7X0%uvGkd zH)o;6Sc)u>&8mgP6Ww@&k4$z|+{VA2kG~D=m4%^K8U?+svdYJ@e68B;qqFNv1S`!O zFMaIUEbF~6_IFIwoTF;0Y1cOsMCzYyTIkj8bBmE*TiB@hZ6F0pK~GgrqycbGiEgz) z)!^5$x-%!dt`vpH(WzHcho`ZlOXQjE=22MWoCW(kjyM?2>#Fm4m9ru|mc4j`D7HEx zS~)U{h=Ak+YS$}uiC~B{XDcDEZPjgx90(xuh!`Bm%qRGHLQ{>@PHk;Yk7sMLDOt4K zpz3<~SB{EDeU07pEM^{~;^JebC`;jhi`<>3DlsS$Dz83ICwY|k9RY*}DuJ3IwD_yP z1c9Qlu~G>N2UTQH|DXE&6%kgwJHa71yRGe|?GSjE#evYzU_!hF<&Ua_Qt=FM8TE=* z>u;i9s4asdLVPwhsGU#uQMLKKkjr(hvAf9zC95{C8&Gm9@1G@g1n8V^8_{EIz*0SStet)_#;$xL@KkcuRA9n#d@yXL1j53glPe5JX_w zz169EaywJ2qB_wti5sAuDvNceNES6*Yp85p!?H*cSMc-;7VYP~sCoUH!+eKgd84Z; zqa$`%xXw!nb1O2`-k^H|@CeqRy zo;zr{SO{-Hg*B-Od>%HR3|RvjilKbL8hu6MCmwmE1p+PQN+{S~BjXRFAY~h8||D6cp4@be;Uo1wP?I z;G=^6m7D3?Pj^x2)G1s~_gK@46f9r3M?aq7ooVan*Ks}?Fi3bz_Fh!jK^a3NFo=r! z_HZDB5RcvZVS>Q*)9o+G?3@VH{Q$AbjZAY`zv=uKV{^2HnQW^mhGl2mY0AE*WtdzB zvLf?(g!sQ%(Hq`K27uO)j0r=y({H^ETh{Z(&C_WybzOrx56IWDtBrqK{HpOtwGy1P zUwzV={{#9kwZEJ*%Di9`QdRzQ!7ujO?=Bsa*bS(^cXj=Ehm!FUSLy>}#h@0OHH2Wc z6}D#5}XwmI-erlKlwGIqh!hR7E}i}O|u`;1O=?k~Y^!l%kgOfq=nXZ|sKjXi01 zA1YJ{FCz)c@QNyhAfYCrie-6{bQVd+oy?vp@{_QmL zXHW01smX7LZ(F+$!y7n(@S!wCKuwi3KR_GA6WZ`#e!A!F_{7lCbnOWJjmtWg-h;_G ziP2w^N5o!>?IZLOVe`0E56KUF!QsGmjo%**mJAe&u)FNpG+`hKJ#84;|Ml$K<>ivN zv>QISK);j^ZT`JLCTc$E!zg>hz_ynpYn6ry^@>fjYbmHz)+cfHnD=Lum2ni55~y< zX#bSZ`Fj6hlk2TEWy^5Q^2Q1*QfiI27=z|hk|c-#8G%N(@tg+vw=4)lN)cXv_kEfu zh9B_9rC;gwj~j^U`%^@{;q$ca!zJaYP_F&D2VI3ja({7mv8Y$xqOVk zLo{Er$-Jazi3yD_=3Fu*{ysr)W6g5G*Ha?zprGu|4I76T_RDVxQ#m}BrXe_cBX+uj zOi~Y*D{W*w1ov2BwM2E)IQhmbG&-!4JxAOL!#rTK>y>XS)8}=e7T*Aoj1NPFpd>5Q ztaV*-H==`dqM1WGHK^HS8}_Spq{ejTfO5)RMpQqYSyrP7!*1;Wb5i{D_HhYzUmRw3 za}`BuU2@Z&=|H zTIt9QrlW-r!L*YRGqWR?4ow?DIIwN1YcO*l2yO&Kkbn3HXeSE`o|_a5YXq&e4cW-u zB^xUm55k%CJQltS`9@AA&b5nQM&jFjYkDmno&({zI*A7fb%G?+iskexbmV7Sxx)dp zbTyamH-{9_XF2;r3YE!HH&c^5-f>|pD}Cv3y^E9NOxOrs4Yq31=w%DFkJ?-mj|T+lXqMnht(2W_wPG(^u1edi zUb~PSzW$JZV!M8OGpuzS)T@Q%ai3uHOfcB~KU0cYXgseY0HFOo%anqfp$W-gF0s{%&a;#&espbuu|!w=*5sA>aB_b17W7O zKA?eZ;u00Ta zFF6J7kiCSDL&L=VkWcp%zIx1#c6coM$bur5_xl{$FN zPum8av4JN4iriWwaWFmLt6Bx|%LUBuot?g)KhxElo`@{hF)zfinA*MY*}m_i&?o@r z6hXE9iz#G?{Q$mETSAxFUcT|VM%J1rf2jFGDvr(bh+4OR-hHH=3E+xha#M2s`ttd@ zWe!fy{Rib?kMjCM?dPvAvb#Q^;#zq02|>nLsp!a9;*J$@|Mdb0O<`VUq1vYCAqKOY zgjbZYFZ}*1rO!br&F70?%;fXS7I1j=a6n7LNA>rVaNN(gP#$Dxii(sJW@jjy?#A8w zG_hC24gL{#wUWuVXi23kkx9E^cVXPUxn@7`%B*hH>Y!!1om@B2it|RiJiJg#=avpjy_r!anJ6Oj`Zj_)YP8%9n3?d7kJ=dH9wJfi zo@3$`wdw(8XoFpX0V@v%Fd*GN&_3<>?Ur1iY%(PQ#%6g0-@7YY!kw8$4b>UE+_wz# zrzM_IJHY+nWq~!L25ut`t0!rEdo!!jNMB{{FwF>;MuNY;wvHxyQ2j3)jf*yPD&Zcx zRb!Vxh?%^N%{uZv-doMQ9)f?G8IQocjL*?@MJx40(4hEg2M-7^-!%y3Es}rN_cyHN z5?RsJ)(0pzb^FLWrKN47!$dO#J0u8e_6AVc_z&j;Wg8zLhN5L3O>EIotw zdEuU$x`&r&RA(!TkCK?|VEtj?emooHi0*yi37hG4!?tqRPxr-iN0fk@jjP&?W9P~c zP9YCsTs*tMa$amt#X41`Hdobc3G$266m#xJ8W#S~F7tRltRldhW4Nq&E&jHx#D-`9 zKA$$lE+_gBwgyFK32HpFyBu*E!yy)bSwN0T0DkW0l6)IuUn+DZ$i5WW9_;iO?te2g==DI!j|Na{6sMTq@^%Ftr++IR zbd!Lh!f3f}@p~@V?0NCpYw*crR1&+Ah{A+v!PgJ~{f467Fsa%tlt^Q|)SpSau(_)h zDAj!_pU4pDAs!KMs8Z5<=ztAQ9Y(J;kc3+1H8-urSkvR`%^}HOS6fpuI})UyHKyRkOvqa@g*`Xu2{5-0H`H4NtghJsJX zpeZC-;c(zN9y$Vv;_&l81BmJIlbFYBT1*GlB*=G3B&dmSp$(k0i2*XyC~<$Tm>@GC zPU&#>>;I&dJUkE*`FIw)!GG_dL?IN;o_{aZYmpIIdHsQ2IS1BZcUoW)_4CGbZ_B*X z*IGwQ5@f!2(s2=GgvaRvFjR(`I7WAog{Jf!3_Qms)Jh*l=c8-(E5Kvg!YN!~QF>8%9y#hJZf_X2r~LuL z6~$rD5Hiqs%Dfd5ppENja?$V?Oh1$+2hZ%==h`>DBHrGa-Qhawzcy1gE293t+;P$-V^vSz$g;7K?Ch)@(Lp`3+6$&I8Ek7TZop6+D zlMwV#@6iQlI|$TVDMd;;c@S|iCUL`)Wi^i)`^ZP84YinBC-Ga<^GC@&!=QPVTQDed zaFSjm1i_omF;`jySpYPhdhRz!GtDmO5NT3*7o+}Xz|#e@o!{eCPY6J`OKer99L|>; zF?sCXUka%Z)0g15>{dUlQaQZZo2^P7^~q6{RQkr4@@*phi^OM}@|R1~A~94PWQ z{Em1=g9*|ftT&bx$^{m?D8iKM(7`V6+p}~j?a9M0?}w`U)r#L&Gb8U!B3WWHD9kbk zMTgEk#KhzmpiK$0yaY`hK8R3wiS;t%n97#kv&oGRHvqN4pd0ivhJe$+UkH-- z2wLEr(Ws?<=Dm6}Oy?L~n)Nvh!Qllr{Ui*XPA-$8;wR@z)_RB2aEP>5sp1!82V71G zuQFbji=E^?%UZtB(!-TO#_(jK`Bu27-T9z}uYwpT9o}IjbfDeyPOL*&8AwFw&gxSj zUCx-O&~39n?juCS3M2|AJHUw~O;opeZ~H{tbp4E|Z8(YEsii4t-QpvSho^y1`Ge!6 zo2?6$r|y^!Vo(=zCIB) zjqwN*4z(s^c|UMp_w~+TK@LzPS0(kq$T||ox77MnQ}^wl!LKAWl{2CqzEL?+l20T{q>12inJcL6Oh5Uwo^XpC?(z{8DS}r}y(N zk9KNj+d6xaW4`zBrb5SW61`JM*`Iey!Er{~Y_{c*^HSqag&elw{vV090`2mpVezZg z{@O*enRYUbmYQ`DyR(nXUc5?_*jFvL!>r#QG}rmS={a44FXnZr{UH$zTN2eSozD{y z>ryrbiAuiZ+F+2BmiBd~UWq>0#!yMrt)`1XX>{1u+dtKL5_U{jOiy3A-2dl#qg1tA zCXad3^R&&w4GGi^i8PgZ5lM6Qw9BiP^rFLw%rP5bIUgz37ASGZX8Up2&@y=4v#dzl zg0+DQkari#?vE`D=-?_MGik&A$g&PdjiMk z0SNReZ^`g3fgQl*V}`zfS)On1Fw?GG@IkHL@R|YXdx64pCd};!%c`vG>vRYF&QNYP zX2AB+_rJHrNCH~AqepvDI-s9*+dxzHVnO_i|I+x&7;wkXp46^S=)F1GQYjWPdOptf z&^Dpi7Zn#UK;L{N(N#K?$oG@0&EP|mssmmNFzWaQ(xaU4MN=)m=W}hZ3Bz7|?n>8k zx%W6&EISDj^OC~4O-P~9K=h;Tm)hq=8@rp4QHs|m`*S+1stxeB6XosO-fHdCGFzJ| zIROogU*IeHDSjjd8BjmHxV=FkcEL`RoA72_Z?`~?HXV0)@T=mI}s|fz%hFi4cahpiV0pDfofT<5biipcs=4&1I zueA@u_ku*Yz{PzOO^Jr%5sB(uJW-zd=9nbZ%>DG-_E){d<8paj>D1?LFuA6Es-lkz z9WSerq0{qkRfp9k6{85COgmk!_R7IY)LeWY2u8=fz47}Ny<2d6V^Zj(^ zTxI(M{~&z&PYk%!U{p^=HZX8cLZeWBr{ZOjDW`)FM8BN*+hI#`R z;LuJs;|=1hGnEvx^jnH&4ZUhb&mbGl9SWpD0$nJC{^?*hM{#`Z< z%+V>(Ta{AX!1y0*A z)2$DNb&E8*!4vjSM~G-+mW+ExZH=QZLCOv_0cNm-#e>9P8!*Q+Q4SM~ebhp+;IIgO zVjd7tMEYHc+?DiE#u1hLN5l_k7T;$_(P=%-QSrWx2V4h4Y)6R*wOUX4`&NbtYDdUo z9EAA4CC4hgv}I6nD9^n*ZQr^$3V$mXPc}T~ZHs>F*mp4yjXKZg<%NNKi%=MKjYJN^ z$~NpCi}UH-GNn*fVX1Yb>CYO;&d@qVRu|OV`QcW!(67c;q{6k&#)}ailDl9RdI`f* z*xSi{%9ff;)O9A5Rq88W0{|9~eT_3{Tw&vnDBxE#Mod0ZPl|uR$vll_bCjQtU&_4;{A@ z+(XSpoMpH41QE~rfT0q+gmBWm3IR^wJ>Gz>!zz?UNYAtx+#u$@BY|TY5iuxl%w+Qk zrMAm4dpAJspX(9IQD5=OP5wB8Xu1_eF2^SNFt6t!;g$Pn1HxG8gkVaUfWRk9s_1h$ zF1_mYkxv@-#7v2BVzg9U+|?7$QHdf^J2FFWa>%Z3UyqNnrA0??BZ~2A@%GD~r15jv zzxrI!+QwH&y0Jh_2RKYa@&mJ{@XrFNHul%Ad*Y~7d9qx^bTZe_>=fO=@Lc$eK#~jS zVQ9wck?(uNDuBA^2nXkR2(&P6nPg(>g>nqOKFPJ>nx6Jaj3ZNMV$givM3IesyNDHx z`h`@X&p5(sX4oTiN>qqZ?%$>{Nw5?28s*^}h1VkYXfRv?pg~+))r;i+ptTZIj`5NK z%^h*;oKM6ckHow;VlJR-Fx7gCP{!o@} zR`eQP)x#gPgS}ika<~XWp$^GTh2Z#Uxtf~EkVj58I3j3& z>$d*R#YF=k#gN;WS@+s9nPn%zpbXLo&*_=o7pB*<5Dg3-4O1~~3|dtJe#>zw91%+L zHD)SPvcQDwF!1n&$z9(1fz@A9HT>yZu5C2CXa}n+!FPUWfjC!)4>&AcJ}<~tG&-Jfjw2+b*z7KhG&k;3D5?0cn>|8q?Rm*&NQAS)3yy8h`u2b0GItsfT{`w#xcvkxnj zq5Fou5Yz%tN?(fsmG2By|1yVTcqwziMy@Q-mKUwHaH z(#s_Y=k~>N34S-;@@VY#SgF~`R)+^9{8_%);ojb7O-&wOhbMtR-bf^GBMi|qJ|w(K z(|rOt#r-1x@Waj}R%pb}ED}PONL6T0&1!b^YH(%Xjj{1fX5!}a9hTJ z8?*R!D+9TW;mt7qQJ|Zr?BDw`VakUKGBIMRPww1QeF)`r>htOT)gNgJc8GpNH5#TrR*ZFx4-2At3|Nl*N9Q1X~8KZod0Nke-_cg+l5=Lg$r^xuLf5)ni5&G@9ZhXBP2|1g9k`&o#&rq}$dr*ddp$v;0~ z!0%)linDcS!;j~);g<B-6@*zhi5#~XpeSuiTXy}p)Li%JEHx+3u7eCC0my)TxADf%r??)L>= z)V}MMkbofI>(CI7)Sf&|c-76@iFef3haZro9X+u{owWA(C<AHMSZ1W6jKn7Kk%Q0|1-!$(Ak5_&i{CUeDwL|B{;!Pw={!>A~0;vo*a zRdIouF&a@qi6*A|5w>^f+~n7vKjk?0+)h_ewXfF^U1@LCj7650){y-uWnkxF9_M}Y z`R=c+oWUD`O|OX=X7NfeyiHX(`-mMXww3M9zfn&e7msNYNbpY%6q{WEq4$C{qD_v7 zAC}H!FxDlE(pIzR8D_vnP{ts zbt8|T8=bYk;;586yD`wk?QTroc;vA)t_Q+U6fJZU>><`j4^Oj~X-XDW#RDZ7wQ4b| z7=#W9<3cw0P@x+Wm59>+ozt)zhf8W}P^W?Q(2rVHm*uqZG$v^r)UCt*gFf;lEhaZg zF{3Z}ma1Oli&_o6Dk9`Ohp+cmc1U5h9}emTGwJgFKXkoiSY6o?EgAzt2oNl|26qSq z4{jk?aCdiix8UyX4#9$JaEIXT5Zqnf+&SlT-}`;<{%bnjdy}8 zBVndjLz9@n?2`Lak@HHiLe@wzI-MaqK&A||9ovoT_J^X1&E8aO;K>tHz$FME z+QjT8ATE^Swg!o)oFgP884hV=D#IHd-)wgz1~XhxWK9E8fb59t>IXsceHk%~veGS!0lmn3A{8^Cx9 zw!K2$Yuf*re+hsC@yC);RO<=aL)}mK1*UN{-x5lwW$J-hJ6`j?Q7((&4>9dBbgk8E ztt}eX+01x;1K}TCh>FS`bfuqI!~dDB{&)*%{zII;^hran`p;C6g%cjjJrfY{<$s0M z1f6m5dQ%c5$cfH+VP;N zdh?sh``h56wri&|=?qz^Sc|f^$lVbpGp)y(Y%twcl(BD?0O3Orp{FEO5@3Z*nXp&i;{QP zfJOzje0BVbzppAWE0t0ij?js52(&Jmz$-E%uG3D})d`C0&F%D23~^j9&OzHGW6-YJv zQ>W9umq>iOEs++n8I5iev?P$lUMjG>(2H`}jYhQsn0A#!Y3k}L0XC9C;DeV68>pKS>AahPt?%Cays2| z_o$V5xj9e69g1e|XKYPzBR!0Pno8mWWJUf6eSG#mcB1BsKY={XsMcfb(-xglXn71( zTYO$bg0eS-vAjrSVHvDJSr{^%sXs;|1RC=S#+>NiD1blCG@YcBDpG|S+F9_&BFZl^ z2*dXo*d7VIzzS6CU8Q7Gck?kZF;2%Rb9U7CGi9sf2ckefDbt=j_#&!# z=(b1(ozO96i(*9MvkSCK1@~>ONaT>wNRL$3Yn@q!4pz3u!aF4t)a0&?<3sLVoXZ5t zjihQzSRs`WlL9d}cS!YfFyDZMs}FhA)%6#;VSa~$Y%t zrBs~u;kh>@$KlMS0{B_l(rvlHD}wkUsyO>?xE~xN6N3Mpz(iONJZkdNsnfLVMDPj+ck-E4fVCgFQql2`k!F4cXGh+Luy1=9S# zsTz^QEsT2LTjX=w?1WP@YCiQyHIil|l! zS=)H72J;r##BLV8OVCo2fI5{yjik3Pjfy2CnM3kD#Xv+vFp-tr?z{$CyVw{S&b1Ah zsUq0#+{P{4HHaykKi>NRmBa5DQg|#+>3a3P!^oZ;2@KJ|PMyG9vF+iG@Zk4FbL7%L zsn4-F)Jc9|O_fqLwe3ibPt-p>yZ&)VHcmZc!+5J4;3kUVCYIdfSV$icwe{QSn}E11 zT|KB|y#7(Y0aHvy$@oM~g@FGfmVDL9ZQKy4UQ%X8Q zg_rrg(GCIXZV=wAvf7_B5l8#AQNobX+OK+}LP)DZSrHMB%@omWtW@)ZCDQ;BmV6u; z`9C0`@QXjvy@HVm4yJPj9h1n@WT=^}G$^xT-_G@dn#3ifj8eZ0lagcEa?CK3+$$At%5wZM=dX^34wFL!y|Bmg?RVWNx5$oU+eWrqMvY&!L{N z6L|SuTPMr!S;SQ5Cydm^rFQiu?(?wsl=7+qtDiQ0bZZJnVH49f1@2u?p%1qQ=Sy}u zC$o;W!Xx8E!3QQc!ff=#<5OmFy~3qPnqIzpjH>pQ{=GNFPewzc=cJ6TJHY3{NxYTy z*fEM^WojBSqmudhfY{QulU$X}db|Dd3(xEqxz5&hkp-6dN_*y}E{}l*0qJJZoq|{h zch1IM;O;}|yu&kt_$OhB>7x7rvEpUShDQ_*FpT)W6dP2jLlh6v$bR^8>H)&MsE>8eLoLNEn<}LM>dhO$Ct{zKen=e0i%K))*m~(l^F0pwh93o1mfa2 z$0@N8v%Y@ha>MFXiFv9qc^8J=Au3vZqJYp$8&9o(_eHC~S*DqVBv(?bm_IoPGM=tS zA@hy5VB8rut5lh*%BekJoIn5cfr1+k^naW>hhG1bX^~~{9eR%LTaszM(it0gsekTz zP7hj12NL=%!;g+|`009!w}z$B_C7hjmVKy;qg;+q%+UiYwH!NaIVZjD+$saD;p>Wi zQ^F7;uNa0uYurz5O`<4cD?6nvtQA;-k(HzLU*o}!W23JgT;P&4l2@G15p^;MOpF<_ z6g_FhaIl#zo&#-9)aDqJQ?`1e)FFIw$VRUX;{!&ryRc82#`F_4m3b%vg78QhT+7Yb z!0BDhodikH9W>k2^t+@!$~CBi+(8^>J=8f^=g%nh2l#9d# z2miSYLp#*I(5CX}NF);ECvdU-JJrR-E<5d~Oy^$>_Wtof1?uUmXFtuKn)NSoIM2Y| zS5C<7eCaPM_vZZLkb6v`#aQ7c5N)lVN4Cb+W|)PiNhxIG+E~il#fg3d?@5#_4L|wc z=NkWNJUfC)&3haJRj}LHKa9KMM1?M}UR#Qse=J^2b#Y89gz9kxsS7Xfd$@=xKY}t2 zPHNPJn%mUO7*SBX?Tq-CsIZtIQvvAE*zrnjl#7Q1dT^&{AE_E2)TYg)fXt_ovxPqF znP8s#<2kHA=5;vE^D*{?=T~Hag5N$niPqHAEEhQuYNFJL3frZwb>09L|E~p;qjw4n zPiQ&VIeZX>@~+MqajaAuyL@eo=+-u?^4}ewq6PI3b+-8926Y#3SIQ9*D)3#7z}A{C zHBtc0O8p0LajG?}wcFo*XcKfl3hc=rk+uDVdU&1%Rg_47-wZN7FOfjdjQ##y>IuE?=S@LfgK`Aumh92STuOg`#4$_WgHfl1;v#3ss_@o$R=Nh{dvhaVRRdYITW^($UM{8 zs$Vl~Htl`0tdhO5EISt_7(Oo;bAKm&!sX!4-Wtjs`t|*g`2T2jrR0R%9Cnd=__+*x z7i<%xu>tt`%p=ZK|dAxT~RGi@)mkf3T4KIQsEQoGE79sWETcfKcId z`GtP6tAE_w3&4Z7+j3m^XKd_Q{}|YM?$Jj1lO-3mO)XPTc9i^)N)_NdoC|(sA0`6vMwcpnbCS3v}{;>^1fezY&4zf^^=r+>D7 zrP^vMEiYfZO!7Owom)7(w|`9VQnlWeabPD8<8Z$T&cEqv z;g(sf!0==DSS6~||JKN@w2g(XGF>Vys98pPiTQQ@_o!h~6$pY+h{^<>Jmo*j;uT0x zNsuN8sE%QTQqdE=A<|x#vW1EmnuSd{Fm1=U~cm1VE6EO3)E@0@Rm2xTP`!4 zXc%h7Z*PRdhltmlPtGY8n(a{V78~;^cCwByH0<|ZLF8=m^72U!x^Z7+LSq@>&}}%$ zs+eH}2TTDE<^N`mwYfrSa{>wMr(ry9QmP23RzK?HN2&-b*)O>eu6j|ujqK1BJ_laE zY*7v*dl|xp$f7Z0r9> ztkq1Bj!IJXdpJ{b2l>=QI-^|ogP$@yHboUm^HRmC!Evj*n*1<_utdU7S3l~b^lV|R z*}*?N+9Y~e5AP&Hc;d(`)O$CR(ZQ@W)Vs`dg~C@&seO1@U5TW9FQ-f|`fQk(m7q)9 zxx6ot5W z93E8A++nC{PZSlWhRm%PMIMsnG8PW_LLvKlFliV|(?QwRxzU*0T7Um{5TqjPAecx} zQ*$SPAj}URou*Sn)tau8$sLTfA)HfG8l^Y=vSqL8&$d2ZE9y?zoSo`jUk!3w0+!$F zx38sQhj!OrHv5Nqy868-Jk$fqLl8+Q$s3=ks>Eq|2TDgk0!-z=WBa!b;z8=*pw;hw zwBzZpWm%}LhbBDL#Ra*Wt$v_w_)inI;0pyu2o^v^t~3?BVD`bgcf?W9Px;Z%O!6YO zuxC_@$D7QCjD~Rfs`-uwSp0_`ehHQYq-M=F*7}Hn2+x2l|LA7}69U7gF@bZ+m3qn4 z$*;u3^2Gf>KR<9tDgb48_YIudg>ZICNfw))ohZc&^ zJDVtblZhJ$LmIex7gYj3^?)WQxc*a_psJGSuhxK){FQO+KH-0-Il)s9Y(^Arlk$=k zXn#$ByBvM8m?Z)8Hbc2o83UJ{WweG-THpYXUVeG0d2|H&z{J#M(h7YspB6vR`~a4# zUSo$uX#b88X>drOGj6Q2;rbx&uty#5{ z_U^f$F4gX58;t+^^~V_?$!NWg;n(QW+OoOJSc2JJLk%V3Z(U#6+^wF`Iz5x#G>-VO z=Ew|_C;Zl5WoGlfk>QnVJ%$q(ZskivN%5!Z`t=e;Uh?{@(J9-yKl?HbX6=9iV)m>j z`!99pZ=^;+rsMvYj~Dah5H`A;7ZAwuWv+EWq9(&o6*X2Y@xAHHYaj&%@V}FYH;!rS zb~d3vMiT!s(6BU$6$hP3e>8ZG$(_hy1Y7?VEfkY#qrvhG6if7^H@3}Z6v3IS*Je}K zLtm2)ZXtO7qPL}7smVu6YN8^2jGckiXkyP%-1V;W?-DP zjRW#<(cFq?bS9urSGwBR#4)G!(SiceN1B2k|1ZXw{)=()$WT-DzG6(^zo4hAVVYf4 zuH>uPl|r7TK!u%KYR4-nDIxqs3Z0dm?RoiaF*@q@>LY0#_ws(83-8~Tl6YWW}@riH)Q2;uHUhlUHNL!{zB0pEXm15rnxL3Ro^ ziq>L(-}YYy0aF^qtqvEmpeo@Q!@D4Ed-Ce69VNUSqlnK|#GCvuT*x(dU|K6I#EbFs z?)?at^O^JP$YQcxo1`7ec484_}cIb(aR=Qc-k#gYqO`nTz0`vB_&Hs^fs~VyQw7+UT{IQQ{{^e zMU4;LAwFR5K5#nJr!-|r+5{2@X^O48?mvHhf<*{b<~9kdvUQ>L4Ds6R*9b--r7ANk z42Cx!apq;~UQge0&U_TAAfHyb_Sw`SNrT>T84i7o}C$c@-olwY@P+2RxH0}bn4z|x6 zP*rDjUX^ZuSNLlOZo*!`mU<>jWN@Gl31A&UF=WnF5(iGzzors@HUIR8;DZtabezrf zPMEk^ZT1U{9U&dSk;@eni-W@?m(Itm>@3f@R@cLlqA$@?8hk*RD0h>m8xdbIGlTI1 z2xe7O?vqitY;tXhj^-!mFgIp3)6b((4PJ{fk1}4~WJz-hyUk?(g5D#3EPaBWMzE@= zIEGG7j6(a#Z${A^jm<%-(~mTbu_2byR~PxV{i`^|(A30<<;?_yhB2Wt#Px5R_$L|^ z-M1qHRXw1INMEAN6rKGNo4Gt=C!?*QVudz~87ZSU*7OEjOh6Y_iA`S!nLxG1?J3ZwVrWQYbkZNlqxdcp_wmws zVd2JbXRAbs6B&MkHk|_oFx@)9q-l)*R_yf~N0O-@Noc5v)oJF(f*-F-gS;d@ z%<%!2$cbkeB1;1xJgL-4;*OwtnJ0@yVS&Zk&L+Tg)@@}i@#FF7>_;VBP`=!ktC8H* zo~laR&{ChL+S# z9W7WqJM@bY|ADit3w$S>AnA_NUG?wmLNgHZlYfN>^vPbvS?ZyJwuR?SUFtva&yksQZ0KWD3OVA5i*x~PWl-kFBF4z zIQQufvosGOU9=^BpWF0M~_oDClMhUPk>UOxX9 z)mjomxeqH^6$nTI4c;QWMNV0lk`nZ$M=q1TR)_GC1*eWes~0-Q$b^Sqr7Mj$ZBd-K zg}V01sDcex!pQd@mZ&>jSuAV@mI5!?lN5x>3~)TuSG6RH32iDSjg!x)13=_c8tBU`TVe^!Kn!$*-m}d9q zhirTo#9MW?{CcEbWFLy=T}Vk96`90W284`jOC7|M-#`$UutmS=%w zR)5r-gF4z^YLD91VXg>QHsM}7KiobzV}0NpbK?)h$+q49jSlvT*_2Und}RtF>A$v^ zi&qu`QHrdj{XZVkIBHhgBb!GGJ0LgKJJ6&X^BBEg!@=gIRBcsd`T4`abix^SJl*=zAidmJUvNCnFz0D=!p8l)tX)JOWZ>4P z@yy-z-z2OCnMO4vAv|dAU|-|cJ=Sk~z_s2jy|hj+Z}6vE6?i zdNjn{V&OaR6}oa=s%t4(&Y_qvx%HdfSF$rZiv)ET!jID(H5xQI1$s=^cz zBCItj#xx!p5=_SN_1M~8fB_v#CyBxOd0!^7zBxs^Yzv9Pu*=~vy0Y{w^I?4e4!Fb13aE_+>mt8j(`w@gZYxH#g0#MkGbJK ze{!#e!=Iq-Cv=)Z=u-`7(0{hN!;7E_Ek*hGypS$H^&QKS(j*o|Am8dwoJP0a9zyII zvte{%%O6_m90#%qL6-(=usa;p0~&!~!M2Owr;dw(c);6EK7IvXy>@J&W<(V5dLqEW z>xER4DH}PkZrtdN7FHJUkXT=S7_hf`I9ybzbJ`4gOgqfctk7mGH-rj8^`BZEXy$)v zvW4Yzx|UK9eBBE%v6`k;_vLSV^eui;k1*Sbenc-dswDTzxvJ4Gd7saKs!nrpO|U3$tK?2}AG^SuILZnr z5kk)ME?;qbJV4uqtdka}rg$V*`d{<8Cg)u=QnACWS@hiV{jc4G1h5&TTA1CCP2444 zJ3d^U-0j4Wa&mrkeagLXe*4(OOGflb_sYm1fcx?qcL}z2am&{g>J49@^(KKvW(O>D zc|*MN1JsJc6O;@oucINkZ-8Ic*>6YNxi3iRse}fHoKh{u%mqs2En7)4%!b2|Z&ZRr zI<>26A_Q4$MnZlP`u!gJ3A$r6+Wp;|l3x0#SE{Hq15=d2ebDiNTzs7F2|*#D{9}r* znw-SkW?zqCz;-+Ge`aw0j}aE6gSv$PgL4+LEes?~lp#D0q3`ZF2YT(~^1mMPcr({X za%TJ3xoytLL8lK*{w7{>IE6<##g*O}4b~g^3#!@P<;7msAsCB&f2|4|8^2^@W#a=O z@~$EazR%ufjEU(s02+UP!f4W8f&2k0fP~1y$Ebshxgl4ej*I2G^p>RuuCNGau@+r^ zL;-GF7K#LuxP|B!lhHRUL}`t`q-V!SgHQZ{7=W6B(rXxkTnY!=A+jSUTY+cLGEWDk z3<~CHWLptn7fUtp31%1dtow61sc=*}AgZ!?s0*wz<`KbmiFC?UD8pYDsB~XNv=r0hG0O%M7}PRy3dCdUz}QrCZ;rXrI+sem!|vEo z2@f{g|6vr(sozhUX1*qXw6rxQmU+wjl>pL?NGAgP(hgbX_a&xuX+vV+VRamw-nzkK zb!avLr?8`0HQPA8J@p`BAs6g%0h4*aYtUw*qBHuGKxsTKCo#;yZzg4H8Z?FHJ=U2M zcxn2XZ@u1sC~077d7QET3>a&@=1pd5wa=E!bd$8pVWrgB{iq=X!v>II>?gY60ErVH z?VZt{iRyaU;4xF+fH3jR3~d5JSF z5^M!V>_B@r)(73y9#W2ER22EHwVtB3@8qvT!+5i25y1}Mx<1o@`8J)K?4R1#RtXtE zS8ff=jQPKU`87I>O9E}$5RdVhpz`w zg6WJuTgp^3wYyfU1RQ>9IA#aJ^Tn0f41%KURaVcXfBE@~?avW$%~n2^qSyKmBhvTn8W{+<^o# zJd%IGt~Dfm(5qPMGkA;(TwkUCF7lS+E`wjTKS(n5Av3-n4&D1>#JHVOkbb_gNhB+-z|V3c)OxJft4DP5G9fMFYwq`oC|<3l(x^P+uf>4=pwL`?K>; z`m=*~1hoiVd?w>k7e9(J-OpCVoNXB?Z0P_futMQ0_V$+@RG%>4LS^$#WBV~6hH`KS zJrU`!@h>IT02eTNZ<@d`+rW?xu&N#VF@Om)vIOkxZ(gKv3tJdiH4s(mY(KvA#rT@! z^e`?s^Fy00g2m$2`vCBij_aKN45mSSa%Rk<)Z6L?(QC$bh%Y6(?YwD{4rJPHBP&=FD4(9~c$ zB4N9=EpFOGHz~*u$WOb#>>x*J#Hz61DF#YX9H*d z=LG;DirfDiqO4JuYc#wXFc@m9@mGB(fbgN^`c|c2u^>|Mj$|pyJ`l#i{MS!>kItQ6 zpz55W(Y|$K(2i})&)-d><*#4Lb_Gt9+;l2$VC)|=O(bxP+&CP^QOQ-C>Zq4Tp-LZw zu6Cb4589akg0E-kHKw`cc{Ono6olw@4VwMLtRAO1EgtL@!uft&0r0}lL@2`-ExR+S&EE z)S9>ZdOg_1-+mBW%6q*qE^vpLn(RS1guMM*p-f`b=!^AoBJk{6Z4FE;a&Lskdn3pF zs2FQOzCPpi0AZs}9w2fT!ld36VoLGKq$hSJWYas($e_-OqC6yHc}E^vZ}ig)NgSsT zwMMUetB)T)4%R=G+ommQ=-VtYrbjUVF^wYmnVbFJ#Bm6T^F?u3#J_UE2xCYdF)pb8 z067>u4G?*bY+4WtaHn|ZZu@~yf!h7msipNZg^-X=1oN$U6=2w}H)Tp7K zDUcQA_vfMDX%G6yqyObmX)=J1)nky+8|UfM)ayGpDq;sd#Hu8Rw(q5G%sLkqQ^|GT!e~+0N=*G`(0YO z+n@ouHzT--0i8zejrGnUI|Kdk17PQ3j<0$S2r}~|FEB^MRZ=QL2oH@lj>lb~AD3w|#KyTImWWsTclWv8q^? z^5R$}Z|y5|)}d$W^*)kMGudAvjINx~t^9IM_XHaBKo(L8Uhf!S{M44F;XW2}y&1F@ z4~AL(z|%m~xKOfY$_2PC(WY_*OZSi#q?IxXDeTU9WJpIAhaD`#6mO59m@qEB?(^!d zt3M-9SaNNkM#B6v8H^5w0ivRW(cw7 z&u$lepN)P`D|G0jr$m6wl5?7yyZt{8m7p0?6P%Ng@cwda2`(UKi=uhq=aM5U z*s5~QDC)HrD2A78MH9TxPSn;6f=p&Et-#ziD`NoF0k9`S$Qf|(8g z591cj(c%fVscJpng(bl1F9RdSDI-@5|4TiceJ7G3`$|v*Ka*_RxW*)y{A=Y4M_%cA zgu`1DiH8RkPLHfG`^ocx@(jWGpZ&&3-3GGX-#UV=r!QWC39p~=q@XROksjj&2eALU z_ZRXcj*B9tVzS0&)*;=Xl2ruCG_v&yVC?j#+>Q)TM*K=TIM3DH7XF&bN(my>T_A~Uf{z|(|LpQ%=`?;1AK={fgwsoX`S+rX~nn}Cv7^M@|YSzZZUx@kO7NHygN z8gEfq9D%Voil86d>`esEW1cQd`bn+K^r1qNYCYo)=7M)5i(W*%Exkyi0LDMI1dMvU z1dfhZWjT{qND;04J%pQMUjESoPpJVSaFGT6L?SflTry~wY+&mLu5lGa=2ae`_`+wx zXQa_!gDhtTsF@BFVF2NKKVR=2INc%Qq<#x%lNngp2k1;@XJ``zYQVcNI8&gb8KCWK znP{}4@20>jy3RkH1SflE7Y6E88+pjr_n1hT1IRrP?OLr`WA;n5nrsZC_SZN^Ta(2r zkBv&y|eu}?JwnqSd5pDmuKyh z?&!ulK*R0((&PR)jKfis{@#da(~QA{;X}=7Cjd-_sxkox?~i<{X$)M;TlYti`sILV z*W7$urP9V4&vtE;mvAe`K|M)?o(1&&8RYi;F{;D;myBo3AXd-z&#L}?9e+YW{Ep9u z96SD{m=r>CQ(;e%%U`dV9CSzvmYbL%iHPd8XD5K_+tdAKHRhf4?0j~{0A;Mua~`Dj zj^pg#1IMqe4!1O6lyGs|r{*XHKX~WPy|n%dz92?KjL*U7LT^x%R40q8^)bu2u23wV z|MJz_bXl~)6yB_CKojNVe59cgXLEDQlq`xO<_R2LWqA)^vEZf>nYSh-&&1{?ro#Q7?%3^`m64B0VI=2qE-=~U#vWCds~(*vmFa93(zfr1RF>LhhMeu^_v+Wd9?J?n`)Hl@V@h?>yP9fVuR$_J zg{11KaSDo!td^@xnIzzHSTvP|3ZG2GEmtllEKp7aNR3F@0x!zY$(QQEol5r=PAE;C zJJS8KRqii$X7bA!v9}~J$cRkDEFvsRKvxPS98|QqzecGd{JZf4XbBsu&iSFk^-w6d#5`LXM%jSWaMk?R>uTV6AsSd)yRVPdE^TI-@c{YZ0CxNMvl-f z1Vmnm{#VS)Z0reh7|Hsf81Z#f@ICVXIZAr?yE;#V!-M_XNz_0l6E%T09)GJwHDt#vo8+T-Pmks`_5--W z`SBJ;m%=;NvwFe1|LFC`Py9v|`LWUPo`+Amz9UPg4J+HbJ~NU8wxPs|`d=EC*E!^i z|9FH&F?MWL>38(~3XqjUH=ofR<)|&Pe4}g1??WBbLM*O(eW_M^D7F22Bxe?Sq|fnt z+7aMq%IVEr0#kjo14GR8NGtV`)enBP)^Z<$LK1ciF~)OId?`apcRe1VTz}^lXPw^- zY>WiW^VBONWLdx#mC{QgDJA2|hmb|(G27gxikPbb zSG2l-wbk~LdJvOaK6d#Trkj~(WaV*}$D@~1G-?0anqE(H)Sxq9wNONthV%1Q=(-a^ zP#GY~4~6-cznuVauLubcHA#ZYmu!FJb{7snQg|CAC4vz}#vN4O)ZE@a_PmStlQs<+ z(9DkDar=`Y;ura{H%Lou(PE^S>mQ?&@C_EDvNYjvVAW=`VK?H8-wawv+ ztf@wZEe58*WStJEdcj+XM8-E7jc=-H<%FiQK9NV+->EkfXteVck^aF|sx{2)r+`Hp zjHXNf{unbkFWiJ(?SSO7+}^>*FV%TL7oiw2l|L?UBonUn0peycZu)TJ`}nW|))o&n zhs411U%O>##XUeW3}?qSul4YK!g^{Vvpy5BcvoM}J0wmH4^QyW)(t=6K8THw3Qehj z;N@vLb<`(l+s&G=*~)ECkS_xpl&_*s2g{{GYPBz^hh94}A)>|xcbcmMH=5ygb%7&i z;2gNnapg%AL4h&}k@g<0-fPnH)dOPv-O&F(u^uG%@Tv}-|KxfE$VLmn;Lr~;(2Pif zfF(42pDZhB)RKr^45ZLt0oAfgd-9CRm$q;TyOBT0DHVX_UDMlOPsRIQ-EjOj&8ewv z2!INdS3r$6YJ>j2B*;h%N&dY?eo)b5?Le?BhgfTRSFUMdQrs_D8bZMjlkGLhtmNP{ zmSEhQ)3?+9F`;U4Ys_Zt<(^w37ESeeqWI`uJvg`Z>%jY)7 zd<-EKq9BhKMFihE-|irlX#9NDB@hoEG*QA36x-bV>uIJDg_W(J(PITMQCHs@pLl^F zeu03%yP)8;H(XGLCpsnN5?Mw^LqRW5fuk3d_f92IMwTZn^@<-3WtOM!M*;%q7rs1) zeH+9o7Nx&A9Q2*T4wG)Do<2U66_u^KwMyR2!v1b`&LV-!Ej`Fg{osUV^)o^O@Jc9U>Irqxw^w#1J zVLh*c!?@rPZaR0D3%SK+x!L#zvvjw<+{lKATs`{FAFqa*KDKyVvgo+y6KKqf=YLI( zbI8T!B87X@OONk@dvE`TC%(IC2!Ug(z4tP;@|!`m%*dm>X_B4tk$Iv1@E>*xYKI#^ z?%tPri)t(fV#9q@q4oJAJUTKm`;|R-CsS8$1c=WrZA;rN5C6>R&C~VD{R~Q`d;a3p z>vsfFBQLyFFH~`LKJa+9jlOwp4PRPbj6%SZfd}=f-anI)s*;k$3DvDdl+l z?6-*GiU97n@D~x^eo#MD>?g)eDW-6R9@i^k|LzG7hMh(Cl}Q-j^Lz&R{E1pm0tL6} z{JAl;=2M(n+ zTyDJE^BU|Q&7X97@@*y47)gfvUr3s1IDSFjJsdE&J8bo6I`Wk)JNs+~qk3IxvzDjv zP-*tjWAQ3>mRVx|5$h!^w%yfc=1?V>*VA2X%i`+e-keBlHl11}Fec#VoBdO$d#vvAefZ@R-R{d?HPq#!0u7h zV=~Wfwf*s`ur6-?<=(~lxm0Aj>UFx+9gWBScwpl+%6u~$*WO&s-DejA!ZHWl#m4R$ zm;CkJ2Zy1MvsP#MTHLld{F}`qce?SHhU1Ki>4_$EPfGW@txp_xSC3T(7L)lG6BXw1 zi&ul6&tSSdQk;aS9WN6Rws9Y)YP<~|iA+RWEGEW5kh@1iT{r~W(~;P9(C zINIBrxR?&-szR{)lgWf_UMX6h4dQEh}w@b}62y?eJoDUkR!3Iq{9 z5kW6AaS81g&u3l@@84};t(}(iwft!KVdq3W>@KhGRdzCq51Sum5@t1vax{+e+N36j zZv1D7aw^PVT$w78xQH~ z@$Pgs@`&>j0@rClKf|8#&B;|Odh7j7EH1*lL2G;u%xAZ60d8j4{|!gKUW3Qd zgVUGpYR%4e)Fa+@1Io&$nreHMajtHCS%N1MDQqVjDLw0%cZVY_^tCy^n$=_NdYtcI zxF@uhllGTM@L5mcBg(F>gi4~MvDo-Q*H_1kM_ahD!9jPiSil^n8LX#cc|u0wU@AKwM)_)2mS={TI{q=Qf(unhc<^UWCCiCW-yo9R>87}DKun|}L zft0`DjC$F45uv1y z?@*SXxN)uK7xxEiHX2VtkXJc5Sbwl^&VCmuymr<4AkN9T_vm#5Jkc z?T_8noox1=qh$rkX@wCAeY)mt+*!k+jQeZQ2R4e@^xL=cE=xtK4QWZ+#vYw$#v z9E+<(f|$Rc1u^f7rhK+A$JxYeVI)@4+d|CNpe4I>V{Ce<+dejnPiov;GMu*5T3{zg z-TR0UGnKEO+CgfN+L2Vn{Z<(ycJK{ew`lJ+ik9cz>gu-Mc8#nHFE?fkkUU-tXapYE z&(#k+uFinGOzGCXr4s+hx`)Bsvdn+ISLzXDBk^=ayPbMFWK&5uZ6-6jtQN7ii2o$8 z@32x#)l*`!d5W)&s-SThjSz6~Q2DUtLzcRrr7_>l(;>9z=Cl*Rf(Pp5UD?lptGgPK zy}^rf8Obf&hVk3+F0oU(_FTH+TspeEX~C!c&YCQ@!J5# zWOO|tpXRrn_CI>ooPSY)r_r=@DD>Z&lI}?`-DVQi@NQ(-TlGrMs|@wqm({q<(t*nK z%^MSE9zmVUXU(YhhUR$5cCXFDM5FUNe{$?&%pX*Wm2m5HdqSUN!?j=!0LcZ%npw|z zp^vpBi#x4LU3ZDgVW5(d@MgW_aG>BBdS?(CmG)$RY~)t*R@CEADjzEfnPd?9evQL^ zlwXCA9&hSW+{6KuU+5fNIoIw^LdBTSfx|^Z8aw6URAKaG-iV7jPK=$%?m!eD4~4Dm za_YybfH2N9hj0mIl^SEc91rYIOd(-g`xeqhVLClw!F@_(yQrRXR<(=TwwJY4kF?=j zw}uOe54HZN5n`!rc z`gx!!o{pZqh}WO?pvAWM6n~y*VjlK@$d-eAh`m4ZHECU=l0eD%yO_!CKAp+XFX=y3 zQCsmHmg{6+2f6o*+#8#B1aUuKeYCg}Td*3S!Oi3Nbmnnpb#(Bf{6WZLd*N}RI_=RR zk==zW!H*$*cyQd~mtvw@w?f{C;}%;U!-K_7wkxs4-rBy$s|L5r)@eJtRb!9zc6)P= zgUV7k>)6t@EwTT;$|{hAxfFV4K)ljdgG9x@x3>#WNr5oPVT2|9rzPu?S({XqKPFBM zdmAjoG3HVC3_LQv?72B*t-M2^X|=uenXB{&v(mZ@NJphlPI*|>Ri0uP{2%%#2Os}1 zrBCpo@gfgg0@rQZxsi3U?QulCZ)7QtBx+!wukx?DxH zXVW8)j6Jfhu;+MHKc^LADi=|#3&o=L7n$*71cP56J?i;^2w_C-tPjPv{QUDD!MU@0 z{jpTq3w0+9TH_lD^j6v-BkrW)X-&hUzdfNDzmsjN#ijSYV0XIOoZ|FkVn`m?D3qx> zl>SXrs&IC6#EYXn8UICX^4rypY!&L3a=o_Gdw1i(?U)zFC{=BXoh9mfZwfB-p8ct+ zuzb8%yx#vuo!|wHP%Mj+@tt?^2+5;-tvwD}P8ofV!0> zeQ7h(mDYBHLuua<(g;{v3K>47uzo(mke6I9L8n{)4+Oa&0I3;K4&$DIlWFhqdM*F+ z>}JOzlvM+cY*!fS`!A9r5|W?OnDoBnNT{U7576E6=8!qpYD|r^Xr4_TY0S7Qq)-2j z_xOAgrqh7)6gZNKMc12#vG~&#edBh9B0ZSvayI`U!meeCz1Qx3yY*e;LCrLK&+Mb; zIcD7fqQ`fa!#b`lU9I9rY8_zfkweFCr`~XP&*``f5Q%8|p{t?mjrUO(G`87--V=`l zfbFtB>bBvm(Q565B>r=_-iCpPv%=c&2J+zErh*?vXB!y*`xG-;!Bc!dv*Cn1MaX~H zTbP>&ibh5``1fwHyFFGWRXQs2C4-GtG{fxH%;9*rGL;ev(N$rpfBFJ1P}YM)Bu`Wl zq3X5_B>7bvT=no6lR3*MNcGyQy8Zp#2j?;&%>`&FEMdX#7Jq)cM8=hQy#eraTn+Vs z<+}K%Wlo8^soHFg{|4Ye-|g-g&)Na&}KM2{OW&WDX?+~FhI z-ix;8tIl|d&xOCNjMfLwhQmWEM}BG2d8_)+D5vbfTBGI53jr|t_o;?Lo@!kK<=-FD zAkSN=0r|g=STh4W%9m)ikU$LrB}{H%4wDW1a}lH{%a;Y5efv&jx1Q8m!W>7ffmfWa zg8jQYJXCZ@+$p0t;J0yui}@kk10C z@&gEacFJx7#Ld0*C)I^iJ00WJ90?@@*X?^w(@FOyo~ff`Cj-}us{D=2N840sB@t7f z&`&{JSBorR&fATY@h!KN>7AS0O$C*y@<~a_>+{^VqD;DoR69qEdxwqd1L6MdwKb8vQod zz^&FdZL%7ivHZn)HDIuX+dP*(57J+S@DpD8-Hz}aeq8w#i|f?p3$Fcl8@tc{Kla`- zs>-Nq8#Pd|MJXi}DM3O~+5l8arCUKjTDsXHD$*zt(gt194Js)e(xs%dbZ+?O4V!X2 z?-=Kd_c=elas0#BdvnKHbIrWwTysTW44 zh$j~Iill&7g|GvxLqA-0$#ASHXph4b62KadHS^3X(JLoi0FM~$km zMrY=*(f0u3Vv{6xI^;5brC6J?Qmw0ACM9@TAtmq1{9-3tbCF>8 zqPZVY!7qP{qLHqd2!`d@&dE?M6bs_G<^GnS>a4zce@<;UV!id5lAkg}Wn*}LvIE`eSIj#yTQod*)u-dr zUEDd^=_dl%&6Z|hzo`yszAksd*le66-R`9nHx3dkuaIYntAP#Q>YDs5_ z`L1*Dsoz2nqY~lfAkrF^0P*W^4DrDm8|?j73I5kdwx@wwAnXTFB%Gn(`x)}P_krWC z(XW`uU(gY3svB+v03h91+RcCvPqLJ)v?wBiFxc#V)F7qVX_39D#qtD6g7Fp821=48 z?1RBY!)#AwYC=jje7TqR!RMth)3q6k47I%?zF6jj_**0g-(+h9Teb})U2C$^4y$;! zSW}{1in@Sb9oqftzL@-;!MBM)c!By^(i&@>8J+m5Yu^Ux+V$zEgD1mV9yTktvoEh$ z10M1!7G*8()GMqNoL9ZpibwM7w#E_TGs~by}F6ZM)_~LMmLa+*wy!Tic(PKYnX($lCX3QnJc(-VBkW$%7$A z-=ZVU7V_B46z;r_X>6Uy8uM!=Ho8fSPMA04Oh+$w#%E}f=oZW^))W_}j8FWTgTRLr zv`_Ad<#OCU>pxvKy_Meloex*F)hEz%t`?}3g~#QjN9z1EAk;OgxAAmsYSJJ%fhzub zs5FUeQO?OuyLXyw?Qx}j-|G|04O%~YL(#TP%DSdb=sbNTK#_{c5)1MR&x65~C0<)( zl$twiEKPGK<3gEq_M1Sab)`sNdmCtb=9SpGhU5l*&8BnSyH1I{`zQfKxMVab7QDxy z{wS=@D#ack&}l?-+^>`5NGNVSGe*FmNP1bGBjL6@wvKUAosOEidO`kAu3LrC!&jo| znx{rZvXAT~=L)w<-h=kw-0m|G|O(aIqe*Ow6$(IZTtR7*MPP0ID>tGBoZLEel82}9sB zjmSrxA3`iglTIuHEQlY<*IU_Q*-*tbI-%cN!_kd9Xg3=t7wG;GZTx5Cq$da2eAisg z)Ss5zEEDe0W$-g9vU$cD9;zA=$ttZBW)4&Hk3T8vVr*v&)p816>yYzCliGIRBu-2< z$>z_8GE+Rbv+gWJ5NyFqBl z&7OUPe7>?l!h*9eO1&G;DR;80Jl~;3hCwad3z+={ec&~~9}y}#0uk9>`7;P2Uv}U? z8;0)=Eb%3FYFO0=H?gse-Ctb^z=HoQQIeN6GA4|ltlob&HhGWKoM4GyJe}H)s980k zCTCq^6G_%botZAF03yk?2iQ5Ab-nSG%hD8cBVplU_vbu+E~Wb9$LCotQg_rT5y`=! zhe14Z4HUclLM4A5K+I5s?4*jDT6(GXa_6ExPJd}^ne5HU?QZb!Y2ANlJV#ekX(f1~ zC}o=Kr9u5wBExif+d19tS4q7kW?4o31j@LwYpJ@268EdlXIn}(`RLC0Gb>jQ<*HA9 zdto#;6j@AhlBf1p{JqwRa_Z2LLp;N&jTX@v$ zp=!}-t{CLq_(*Jy8@1doC{O))o&=>9I=r;py~4FR9h8z{kUyk)b1mbOfl8$P^k}7C zMY{6ha%0 zEn8_0CF}9gsq4?JMQEu04zB${DE5)ag%xjoiT3WJkO4bVBxLcO|>GtxU; zVPAj#kGF@!-sl<>I#8L*t?@#cPsy|cMfWMXNX>S!JQYXOoa?KRbZPm6o_b-FKl8)u_&qu_N*oF4(cy=NGvbua z9=*?b*+xt`tDfM`eSZ{>>8%?zzg5*^;V)+~!Fp{m&APsOTd#NZBCH=a*)C&=%kWJbIxFEnYcN|Oei8J=RY zrO~HT%@e5Uz_^^2~D(tvobgFWw4iMnT&S4*M+6j5b-Oa?pmCa^FeoY+P{N%Fn7#u!jr_j^K!lQGUb72 ze4c61%J0{eP`Rs13)58`WzmGWwq4ywz)q$EzHJ*W5SXh*e3T6%DzdX5~> zv^d7E4g;S%GJ?ulh)B4#u0#>^EHfklgPxrtd<6?GFcSn2jDs4oz&Z9p67X3Ee7~4` z%Y#>=iNLtL2A)GKg2;qtL-F@YY7J-uDM&Ai%X zIC|Zb7IdOi+Y`!1qUbYy!1g|Am^n*yv!P`m*QPl|f}iAMmxbXc56NIZQ}N+Fb4~O4 z{P$_%r|-v-HzRK3>S}E_*GXzkP~dU=c0ygw7KQE{9`m+63nxmCT`coqm`SU#V;^4} zAt6b4$F8ZD`EWF^yF$G}Ka{Mh)e-MpGJ`CwY2%w01*@wWhkD^~HUvypuGTG3FA*Xt zeK!~!8rp7;QZUq4#^+yX%IImL#|AgH%zgs(%XQveEIB(Oi$n9InVhekZ%8%QlklH% zM-Hc})@w1l&ytWWJ#nkJZXN8WqtC5cYMzATlcX6xB8CX$b0_g}~=Vu#M6m=W0yuA4;HX^_~t@&Zf8FLbv&|rqf1fs(#ih z&wubPzf7)=lD8iPojB-U{J>{aeQnVn@YasjLI;1~(o%XEaGTch-*V)vQ+KZ)<_{NSSL1TbWXiXnn1K?p8mgbF|pa z>Bm^h%(^SNdzT^d8n8GboTiK_Pt|5Ns{cekMg_hg5O zgj2Ql#}t94Xe|^Sd#9S~oRe%*D0owueJc}1aXAy?NwKm=+Sxcf-F>B+M;%UfUTz=H zRL>pkEiDxaG-&H=zZb8cL6DNdgg7R&J`NZGyKxa@>gH#Lbr{o;3cfsk%dp}2VV@%W z3r|N}>Gj9>XQWbwROG+nPS6(BW3pFrtIiMOzCX~yE{oBlw_r$uF->1ev#n=` zGgnaw9*An}vWwRE{w9X8?MDZ(qCtwjUPc8&Qg`gha&EraLABi(xf`>C9j2oj894@t zM8474q+e8lGnUrz0IPSiu~e@O%UcPjkRI~On?w?V>}6agX_xmOHx3_BvRSO@kzGS~ z14x*n?>9C*vP7hJDrYobE0<^F^BkF02+q-vF~TM8m3Twf=7RosUKK{O`Rt9PrktUb zuC8aP*}Ty3Kzh|2cTqv^qhgjCkRq-_ZCROb>FJ6!ypml@cGihI?Q679?o{sBwTZU zL(0>JqJfgfmDj~7G;S;7%4j}JV66$4e;ohthqYB{lCzlmYkTd_>-m$t`_ga#t8urv zJh7zIbYSTH@`NYu%f;pHReXucRbig#nFe0-ykVXu-1OE*)0cY|xyNuBZNH1Cwa1xA zrYXy4@lV}aS_6INUt-RI)$JEbh~uMtAwaG{6)oNUi=j#7)bH zBxog7kr$P-(9v8__fU1vJxhWI zhXXzAH~BMfz9gtJ-%NSFhRaSrsZl1WFd?UZzDsQ+o?A7!&^#@jghB1&6GUX_-tFD= z3|A%-OFygN&v7E4(2Ip|G3Ye%w<8DDe1Jjbh&(W8MxqJ%{1DJLFf z8y^=r-0>XVh=pwmOF4Y~ehdli6BAG)(*n&?^f%Mgil^j~R@PAUHx8C~RM@K$aquml zB~VZ4mZX+=cba=NU2)X^g~7Sx?!klEpBNs}O3lISiy9>O-dTKBc!##nHSRCBWU%@9 z)xRWyKCY3ts!ClQv{I57K5;wW$i5~;f`mEsJDu<-B=29?baHE!y6fO+hj^H*Spx z6WDV2YOy^oAf8NDpUTSUZuXlkCADK+eRJSD;*=^V`V~)U#9PTRpjG&&mMu!bVIYLC z6LMcdNUkWU-BsmnVurHKfIiBZ+aN0(iY7<`4-9tMcGz%3phr<<*Tg#y+Hu?klL&hh znuwQlsgW%Qb>yde1)l^h6T8vWC(ExYHl+;mnFdm1WK(zD^(}f+6FFhQilcpAZ|X@3 zSZCIRgmt*oks7{O`X+4Y$tc7TIS`CEA3fk*VxVgW9l$}BXfvpmHT6bfq$exuM@3Rv z3FHEk8NZ1W@q_R6HR5Gl`pFNX2t}ZW|z-n<6V-iF!K7wj2hb%i~(p=UnXGyBkPxQHLR#R{F?C!Xce(P@crB}d}(D;@7 z@>N&34VQG_UcT_lV0~_;;wCf}Q70W%_Fh@D zeRW52F6{OD)eI}U$~GG8V|hT)TB4l&7{!PI^Noq&yAXm-m&Hb(MdIa+6w2_7{Sl+f zD*0Civ{W_qDxWEyNntdNAeSw)9&yh!P|}yI3E;X};o_6Tw7kFdgGPn=brW^bYAzhn z@___8*}yll8-9l^LS(Hmal{F^3nP%7HLu11xI!<#P}DG#k$U*@>QmUrIlkEA;BdHd zv6R0jNtm>pF?kl0|G_{#uFprg0{1v5J+(`apD zD_Nl5qlXDrA_^DK->vS?kxffJjb|Pi|J>!(+4us{H1OPUFe2HKNuG$Z7#4%~bzM^9 z!T7UJj`HLo=6E%Myp*kDYMkTr0nM&Czl91i`%nq}g8e7l#w=RRE{Znk?(xv)kJ;xp7vv6Nk$we%FYbT?2`09EE{~7EJAOw3*~q@ulPUTEM2-K5 zB)Z-&vSF<*i0`42XyraJaLI3}Hfc_)=0m;6V|micu`)s?bEfIh@?QE%y@V24L_@_K z{K#@d?F737IACcy!&=ty6D;hvcgWEkvoqaI0J2M)dy`yn;O}0F%v>xXnvNwi{iCba zOpyEF)p%brRyk!YlTO}aLbgk5XBSbE46^!F7`T`Q*hqF#N3+P0`m<@>2f4bob0ZpS zLJ;`qxG`KadGWQuB>Xipv(qt;Pardc?42xG?)^hCjk--mESKYxO#92rNZ+58EOB>t zu5z!F`rsj@o1CB&FHfB;2wvsyd&ilhvuFcRj&L8}jT7hB-A+eZc%*+o!Uhrq2oIZ7 zasnoaj2H^reW;aQvfibU#2RY*-|wADNNq;%@nNxG3b7Dy`@zklmCDJis4uyPzPbIr z5~y@?-+YIWA`i2Txm)$QW20FUB5LKSvo@Ud2Ky)^ADDJA+la=6+HvsmJ}F+$CsROy zM(jy8@x2ieHVUuB)v`TkAsV-pcx6>X6Z`rFSTJ-dZd zS2wKBu@4}A8U0*iD>aGk(RkBQ1?uI09{3sB1Y+u1bF=Nko&V)xqM1I1UaP*T$*Dw|0g1z8WQYe#`FRggh+kMZVOht0wFv_uD- zb%JMut!vWn!``@d-Pc`$aH5feS{Q>?V@U0A0kM!tIwhMJ&P|B^$gQg}k>S6=g24Qv z?EiOcKwHLU^Yxot4!as)u=Jq9M8nKlljX7>-?M)`=}lFfIoW&2{F>Goa<8MJBpmEi z92}+3BZMw&D+-806hwZ<_r{1|Tu7{!_ruH@ zV=Rp)-=Gd=y_^zH5DO#T=LwNjhs_|#;-idijf@uKoUw9dqm+wGMfLZa5o;B$~ zaBVT#=&8UMyhlfMKLuvmn~LPdZe#WXQL%Y4C7GN5=f#dw&S96)c*p=wts}*gLDjW$ z1=-`-D{6@ysI`{mVn))Sqd7+$-W+vPFwA>gX5Um{59_l@T_F25-nTiHb+Ri0+4D!# zO)+FgAiLQ@)1mtC$)AoVWvU4|43tJc7oPAL%TK5b<>x20o2e`R#iCjHs*0mKH(CG1 z*39-e{5q4_>%rXIJSaEf( zJRNVxn_fzQYFvoxbl&|MDTqa+-2+T^kOr1QfEj_y*LOnIH)05$47CYO{@cPvH0l^WGy-L-`$?q0f=8O-Fkm)J$Jk{i91MPNn3p& z=gzgoev6ncEJ1d`joZT<;faSlx;U`1tmh{gwl4kKs9?sW0ZHmhl4(^wy9ihgc4^1H z0WeaYHON3e6Jv^D;O;PTSh@qWZy#<7@A^0ew1M^SC|aM{5HSp$98SZueZtBjFd%>_ z*v;WDb;~cwWheN$HtiZX`8UD3Uy!Nt-(_dRMBz;uG3i;m-_#1LSuSHVjkz5H$;q=( z8eY1MG15s-etmnat^FO@l-rVOULaI-yj(}gks zC|n>-Wdk+aWFDntC?0%zIj^-(4}Q!HHPG?X(x-voL2U<1)76g}6~2N?$-~|fd}mDt ztKB0*tS=4Jgp%pMk9B8nqhW7-fW}&#vcXtVZZOrZ+blhI3bt}Y+WVdeh9^alPGLgHMungb) zYBwiok6g81FVj(pqvOeqAhRZUp9ER$C|X=L`;~=TBv}dy3Tky91W7cX)LuJOJjlPc z_*h40_%pvg&rIzNqoHuWfnT3}=wt^bB2UR>t1R6P&h}+cRyb_oPRh%5g7fE7%Tn$x zoOZ(kJHL^%lg8nno4>s{I$f<2d@_i~%6R3sFn@WDiJ5&3`xZ+%D1g>(%-%P?!_Xi? zYYh(baA#@GU#n3DlNU?~Ny4lhk{Ou2q0i~4RN=?yX^}r2Jo%^a$OKO>MoPZwi6AlHbBWe%9mdL zjViU-5$@?qmi7~qJM_t41xcIYk_{s_JD=pZOF?0~5yEoeNZvWK5i?>fLHR(VaFl7w zlY?2~1#7F8U{X}hc2=maPI3Nvent&=EOu0cPJ(Chrjq5a7e@U)vNCgI_6xs^%4s8| z(i_UfI685uLv4*y&3Xcu)rE+y`d%BgJaiINFjQ1fRHQ)Pw=Kq#Eu!$`c{4%EqA40= zRB|?HZFM;V_6wL3^tEaDDffKYe{$V?4O9jCS?m>2mpIRg0jChnZw=l?Olb_^W^F6R zPAs5cB5N6+H&b>PW)%uR9GKXsMGP56Ku;_9-OZVIVkw)Q4qfA!2x~N7uCX0pnS9BS z`(8h#aHJ#4q!(B401^r=SKf~CfCW)VLIcTWhJnN0>NZM%QheeC6(u#&JB z9}a7@lFu>MSF#yPv$CW!o4Qj`%{@U3;hcdzI=z=01lK8%(e~HT$v1wvpT@jyHQy1j zn2#oYwCxTE97i0TR})QtG2cmGK05*9P0$`QRT=;RWv?C8YT3A2pb@S@hY?kiH#f?v zl7J4=(J)Q4pN;KpQTKF@&*A*xnCa5B3&kHLd~b)no`f{r%R z?AHqdnJ&Ju)P^3f8z-XmEKV5P4NHc)aO4e%`OL>}$^!N&nrA>moR~*$yC{BF6PW0V zYYd?a%RGs>oFXv1l*S=O%WP#0$$Pd|w z9_$Kl&ztW?p>oksnT^OQGHY&94xdlm9jcDg}Nz8&@%OZO>Q zolUe7jsyK&lLX1N^iC2LYEl1FpvUwPmpBQ`OsT8N%m;ryJ8LI(zQyknCC52BY9Fey z5gj74ec}Wv+fgZcTK330`EApWi=<9(HC~a~Wn*ZNZD?m>4XSsq9X`w>S*nd^W9=N+ z;VZi{UoPKVi@H$}jB~GuB zo0(HMWp{>Jyt32+aIt~T?6wo4%Bco9W9jKtF{+XTiF12XtFI*l8s=Xu@gPy0oekdR z{V;rx#>UTXov$ydCJ?9SUUY+M91eT>JVvhm}3`7`>IQtIP-#81BL^r$We_;TZ{ z*i0sO$|o^SZ(fVCDoY=yPsjVumSMd62nKvXwx(s5Yy;v2K5(8LhXJZc}{QXQ-g4kYVtYYQL?e0GmO)z(O_06j-iE%qy} z*p)zdxP;Am=68$DL>_l;DEoby(aBOWPefFVS~dI-@9|P;?izZ+a~`B>agNeY>2&u( z3CE?0@B{@i^lxFhcHVfN*&mXNN|J*~M!hBd%DI}A{`ambdBt9TxMe=VzQ7y~Foe9{ z)tm#345BdFuq<-XB66}5MXGC3% z5DRQdk1cJ+&CUMv?Pza@NliSlcXiIvaO}sVq@-lVc-tWn)$$xY-sRDhMH>R8C)Yj+ zNK1$eA2T0#rzO*6-x#ZcryZw#8`ZJYQpzV|WeCFKno`5Z-R6{h$#B(#(tQ?~PP_wD zIFO^BZ|GdS2cOSsA?IWnE-MwtMFy(NXl-s+P?KToLDOfga zEE^?)KWa@H<}VH`^ilJl)oqIVUL#79=D|IlY1uiVLJ+8zeA`o2@$-Xg9iY%A(-Q42 z-;az<@2|aa(j76_`hknONA8i>j3yaPy*xzFidvgTCFa_dop&nI zjturStO0o=>kYbUa%m#cL%EdLMAVIhJ3ToOT@DT(33Z628iELPch=T=IaSPcqt?nF zLap5L5s5{4g_cqFlbMRcdN#QBSceh27N|2xDAfXdlK> zb6sVJ1Jb}Rkey45S2C>=Gy)rzs$X(~d(_LKu??m;HIk8+1d)~HpRb2{`B!`Sd*<2= z4ckf9mJ-*_8QS&|(Y5=jSZmwof!{Q^e4qL==&jDldcSf#v$OjIs3gfzG0~Lj_n_mw05hCU^wcQu=4lS*~5m^6hn)HLeEx?OmFPCK{~4 z?W2Zm>uNQu2pB^eckLu<;YJsF7=q5BCv%`Z)dqtts`o2EW!&rQs?ld;hhNQRz@ESR zk@4voD+`lGeXoT}g!!gk-y+H2Vq9B*Y}@lQ;;&}f(myf5wLV;^Z~>^Yr=xKHHD9o1 zx3XA+GT^39?=Y@dn9C?2Au`B(sG)jJWcagB{wKIcm)NxSS`rdwzNMAy$r=o)$a&Fe z+3SwDj_HL{i=T`lJ}WE>dd23wG~1kv!v_SdPBSjqkjzb5Xdn=VNO;w52%{V+l`e@1 zWLYN=4bm|HZ&tz~5?~k3gsg!8OR!r@b}wd|RrycwE&SvJ8#wJHB|(rm9246E!d&I} zV9fLO`OnU0s0T<2?q?*jhNONHXko}1J&kxR#KvXk$0WWtugygA3l7itTvv$pmTiAi z9SEU~eXyV_z8Q8<_|xV(VKR~l>*gG_N`Gek$iBp9N+g_mTRs*p!lYp@SoAh$xG`4P z{v)e>NB_ePD+p2JbztGs_?>UprCi`U$Z^cdo=<Z0jvT_ow%*Bx2r*Y>i%vG!g2GV@ z!qC}kl%iSX61uiBh%jLZIQ!EHDxD-j&(x405^=UB(=+lePwZ)0%$&QH@bcx$TfyZ* zo}`_NOqfbN#NZ9@24FXBAURf+E%xThZA|b>85oaqS!rx68)OKxftijgFXeI^$h_|q z3mzVIh}FQm$NKtJ+#2ypSyxW7xs!0SgW;zztGm;gJO``QVm%T+JuYvT^&NneXWM3{UCWPwxua2JREPt;&S9EifFqxc(F3n&Aq z(3tmCmLX(;ZVPiyDZyNf!7GSDs>rCrj2zF5|X-1xXL>M zcZY9?sz^6Ih}pG>5jjdkRos3rwp&%)fi$pmd2---8Q3YBG!Vb&3d5-#lfyP%JhmmZ z>mMAJV8k&KON1mFWZLA3zi@Hfdm!Pjq**k#7X#}cc(l5;G|I2G=Z`$&m@~xTUZ1mR zc0Vu*LHx359Is*CUx@5paBDHZWZ#ir1<(jZRmI%?dSWWXDLRP{cbiLWH+p#BYiWrT z44%<+nY=8`fI@i3{Ft60YyQMYY_kefjV9H;ZV118M zq$~avzFmS#V+2grH>Ylok_M6$ve%Ai_+u1K7|`qZx$vVqZvNll!L|oCITqgVpBM<{ zx(6n;5BK}2zjzr*OGtmailH>k?xe*!ha7teWPd=Deef?TaUoPnG1J(=S_n;b5t_<= zL2tar;Xg>$-y8Ba3HAR5|Dti)LA?K@BVe#QcL47QsU50e%E5wq7`5}Cl+$l%5F1%i z!(G1X9)|z~m(0aFxG8KH1nVUP?Yd=;mHjsaDoPS4z;)T};m#5AAUddblwpTZ!?bs7 zOV~-=VWcKwRrk?z48QzDm@OePcE@I`q;!kk*5AZj^&hN-nfjDmfY&)J!H{Cs&Yi`SWHDvJ zdmTrvj>w9pIKdP=678o-$9P;c=LZ5a$m9>(*noOlYiBc&lSlGFsqli zJ*z4Ev(1&qpj$=rAL|^VUA%SbH`2rcRZRRB#P5QnGlLY)(r#SMgj8NS_R6KiuKa@T z0W+nssl?X5-zPPQb2sYI8*Jy?!(PFKf^h-NyBYr-Fn+m|zR7mp4Ix%CsNWs!I>1n` zus{VPM+xMBgKB!fC$mG+M+ZV*|Jr^Wp$c%!uUT`B-O^C23O}#9Tt)UI>{vZqVOS>4 zv@7>9JpBX)aQx<1;n#m2>-hgxeR>Lk9cECY)x2TEes_l3ru+R?Yb$t?exjg_Y zFotap^9QoGd4Q5>&(6UB6olm86M4F}7k-^bUmyXk>EbcW;G>Y}?MSLM7lb__F%P%% z?Se@8fLf#5Zo!2E`pTpubOPyi&HOEbm+9egsBVk^zWfY@IX)w(-DV0MD3q3-K25lr zW~crKt$Q7`E?&0nX4!!h5^o<+;0=bYu@a3;TW;q6F6}G*2TA*WJ^FZIi{xyGOj#X1 zwp)o|&s+jPhR%~?o5c~~7I+U@>xeR+BPJ^s13AH%eeogUu;7t8gj-T9fCJaL$U)cV zZ7l&Tc?Ds~=(d3^ENuP18lWaFDHc~Dn_pm9@MS>@A?N{C+s*a;pKQ|qppR-nOkOaA ze#P*$G$aP39b_aT!LCWNxozWB|66f_CHk}P9MU6VT?Y$P!K`&u_U+%r=6m<$A%1*$ z@A`)3?SI{U3=DJKujVJlh1hVaVk0HN4U0ZkvJE`_uX5-|R?h-KE%zP|-DJc6Nn5MH z;H~>7sWxY`aXn2cFwFZ3tv{G4;sI%;!x|fCp&N_TadnJ$3+@=yNXp{GYF2JB7V_aP z70mI9bi2|nHVV^&hiJrRE@B)HknXi(!2P*TUv4SNyC!gFfZvxro8}Jlex$`o-jwC; z&;lD5F|M`!ES4K95q1P_zEnFr1WgmHV_qh0*`@y!D8SggVeIc>^b>ZE9Rco>r8{gf zV+ZL*9R%)I5h&csNk?VDomCR+&4Nzs1W8NY;2+>CNjmqs!xuOY#hqPWY$ln+NeEG`1|DU?t zQXGGkUSc@m|6!HPKXv&}UH(&-yK$9&>T*-{ZYbt|-X*5)4RMD4d6)mZOK{Ns0~YYl zyZq-}A|dAg?do#2V6^jauB{20|BuA|Io{Tk#Mf*&^v>)z(}izcQoMiu-ksI-52sy5 zaWA|f)qmCV(CV)Ig=A_)^JM(@1@nt+^G2HE!C5AQArryVS<^h8-RP>ycUQH#1{e9X z1{4dd&|PN3FEJf}ArLbLNTNJRS7&z^eGO^{&wVoB-d&AE$O=KnwUNx;t@`OJ{D-iz zt{8?*ZAD*807*2?>CzMEU zM!g;&@mI~os&>UdOt;`y#~=EoyJP*0ehVZPxm)4Nz#u$!;JDOw6x|Jh=u+3d16xts z`UeN(H6&I%f5lYE0Pd7$+qqyuGHawrd2hUUAcXqSL^@mHX&GdQ=t>i!cVjyTA*9mv z${v&3A`lXTJ*Y)stoUA!EkL4tg&5wF>rlQG_-&MeD~A1zKp}}J3Qy`?&wDD+1Vfk4 zkeJ+KIZ_8fMlp zxfMgd3x&Av9mn0pt>@VRv@>jT6nD47g2e@|G3%Q|w(xC*oY<$zAcUqHnWM#^WE&gg zQn~a2e~L7S+QLl8k#Z~IoQR#NHrS_f5#hbz^vzu1#&aF6Apmfy2REjw3|=s8g8Vsn zX&a500Akn~I_%pq6qvOD@*3#3{1=ob4HH2%2NX&$$8+T=`+VE~RzMx~e?sqg~(6Y!@?pnq!}W+1a0J8>D3 zOS?$+8(!1+y3~8u^90C|)KFY|fm4yQVk%LZq^-v;uCfz6Fa0|IvO$^$Qi z_oCZ9cJJTVNM>@4TVgK0mQYy(kF6w%+J?yTfi|;w2aasw1sH0Oz-zdsEdQ$adjwE~ zkJ&OV25*^xUB8X{6@u9T$CKpvv4uT(Ar+1u%96X0h+}Vn_sGrKlXfMJzO3i_6iP|9 z{6U|^tMC@9{XSc$&PMfNhQQw4Bnv}cBTOo>>v?+|;$Y~>2BAG0lXf5l(pU?`Hc-JX zfPYHzpOW06*8VBU9h&K%lH5>z|CHoEPxAk_o+MJxJoLep;nE${giUu~lbpIc@yQ#z zeRP2b_23GMwKZ`u?ec5Ly|A)^ur^Hex>eWcGWzFiY?zyW5!sfd`4^FGkplVfFCv5R z=>N8ej0_KTVzU>(zvygzZ`i-+3=`)6gRr*YlYbD_hKKYI!ukhc0q~apUsjUVcncFK zn@;1EcG#VDe5l8jk-p`MVu#sMUg?p@-wCim>(b{&o)dtAt4aX?x-cM`zyI>fp zx}rL95`)6-1x&m=_xoSq@Q^BFK|qM@YIn5i!-VCD0{%|(5q&{wUj?1$)Upq*k6L{= z@?QT8co-1fFv=npsDXCbm4w*4Zw%nLw(oLV*xrVJJO!9@d4ZD$Ms*NEc~WyruFky9 zwS=~`o7*i$)Nw6WLf7tabk9Gs9-D1>(j#n=x4MLC7)c~B42cNPiQ!nC3eskq4UD{F z0-b6V%-^?`w(Mox0^m0YFpF#tu|P>-y1s1!z$Hk5GbwL722b3;)zj`*!8xVJEVl60 zWL(Qpck<@YwYf*uyh6rewjQyT6>F=8#4Ukcgt|UjZgk<%-768SHF_+72V3FMVERg7 z09G!*<<06RiFY}Hr^=u;6WzpWGzLZ|gqAVQEmb;cFUV!%+ujpy##sPnlG+V~b39X$ zK&yJiI*sX1q4r4@FyGb-X^oVqxXgO!^yZ}-&u5ATa#KljlN{UqzQ>RY(&_oLNp58O zLuDZSZqyaRxtObm;g3-&!LFx9Aq^hU)*mkH`jz~y5Bx0sW)5?bP#+w0=_3-^_Jg*p z@nDJ0=CuxbFrpZ3A97hXkGUp4F{@nwrwS^)=m8nq;Hfx?>(H|q>WlXq~!K8CW&MW_m_uD z>JQ`g>Fif$+q_nQ9p2uUdIy?A3EOPtn-CsxSON}dOr*ZFtNI>#iNnv*l-m3o0k!~A z-JfL|BNqHjN&i9ImXMVp{iXtB;C!6k$Bet+^1J-7$V;;~1$X@_5OxWEj=4DIwBf## z2?8VfiKj(Ndc_`hYuviF6)A>oxCG}!5RYwTb=KKu7<&9l7lcIpwZBOUnw&}dd_rS{ zD+})Lua9OogX5SSlD0&G9BJpOqd*C5x<2M@%HjGt37}z}hnvsf{Z-5#gRsw=RI&|z zA}4_RmAD!s#GzXPlgw7?^FJSu@ux+Caow5$lB#M?7`Vrk=t7LE2 z({7U2BC+n6;J(*g0FBUQpfg;gtcq1QjaGnm#BD>n5k<)kq*LmUn4z^~LB-4}*2}|i zD&WYF>e`a5iwUQ}+H&_=#92-M_X~m0(k3{guqZAn5ITtRc&R`?&JS_&n(rv9_?Aa+ zP&T1+)T8cNL?G=l*y8>>cm&H~S>ZpwUFZ^SCFU>b7@1Dj@S_wSzQEJ5`h+x*s)w$1 z{ufM7S6pzVf0N#AzdYlcksHo9E7Z~tjo>7pq1etr-eY2hxsxR`qbW5fNSdIpm!FKXStDzsl;rVv z*C+L6&B`1zmKVn9^JeM=6RCUhtgSo;Ls5Ka^aM)6NV)hb(aXtscqZPp1nk>Fa#yZ1 zL-RcK0CkV6^`}MX?*%pF<%a5Gi_$tkM@FV#`=y~F*mN&3i9bm)SLbPO`g?46u9I2H zpZg3TQ_{y%{yPYi=(k2_6gE+R-ii3W=xdk4mT$7?%n&0SL+^5`4w|e5k3*xa2&TGQ2Lz*Z>jVkJpc$5> zf_bY(1FVlfzT5+c*D5-lgjjQM?M!pQs@Y>#Xb*NZ7&?&)E<`0=`DPxv^ds`zN$Ngx z==LT)VK-qz-IrG~MTKLXHIctu4{fA;46=tJOqa(pBC*W`nT$SB?sLK!Pr6Nh&&t?d&+U*^2{#f#pk8 zhW6fFt8*DA<6WJ30)Y&*z0R3un(rw|n8~Xt)FExU7=Y_8JY7JV=Vhh(8>g>KRYXF& zXX<$9N2U#JCW)r`^aR50IQY{nBAxb%f8@zsptph6vf&wdWBOu-l1^~w$TJ>)r1ywU z)PesBY^r%W-XofaIgMr?V}JPgwFKxr*R2gbWp4wC$X=FrK~r3pAv#0*=|HC@v1o3X zzV0t`5ICtR{0ZnRT@MGLs65ZUa8dm%0x191WPVM<*IdIp-=X%b2NP zF1m)V1@VVg)M`%qU*G4+Gj(eT8sABY`nYCTRw#D8$zSPb^dxK>owq2(z3{o60U)?+ zf#DuX=r2NUb$Aof-0+~GU6YSSJMI=PyMga#1BN^7^4%4K;ogRtY9A|>1F+5DCry9p z#gGOGeqMABLBTChqNqR><#}>h+~rdK)ue^VRnRSWfAEdOr9>e5R2%v)>v8$Uknw;L z9)fcV4350^>82R=hvr)i(ED3)MX-f3q9}K!UStRaN<@NpR%)^T#ykNCP%5Y}JnyWR zGT9Aj0vw=4Z1uAGeU&GsAzvZ}&BPTNMm~n(;0|e8H3W9OJ;A^7XC`DmH!{#qqOQ5f zY8mOb3~frShFY~kN#<1UjVPH^`Dnh=@MT5MG!URBKS2M?q=ln7C239Blc3jEQ=wmL z1gFzwEUNqDRFx#CmC2z>mKtK~b{`o9S`s*2;l|*f+B0i84T%#TOP{%?x~B=0`)e7whc7-fVVe}Q z;f5YJ>f(d8;l-&R|71d6Ue^b*S%0t}>w#|5hR2H-k;q|-zWoB$#1Cmy`QGanYlEnF z{$iD31juuw{$cde_+!P|Jv=y}=O?W=d)-*@GbZ0L*SUg0==ty1Rqx4RL{y6}#)3uV zR|ZS2?|IP)cp3#{{8VE%ZgPXa$CJznXd>=0NW~zA^Y%+!vm- zLW73WJjA$`et(pFURYjHFTxm%IA^TTqSj9~haWj(v`oOLQ#f-n#AaOE`YWiDK%}*G zPX|c_ZalVQ2sDcxf+qO4a6Zv8BEAxi?FcS5T|t-KzFwSHWX;fXRrS^+8eha#(;gbn zi|c|;iOLE7J>hZhXh0Do_K1JbB4{l9y*Ud(ucCcSDw%~{CTcSBXXDRI*-;|~mFmA^ zP~XKvOM55R@6vTOAl6)hr_@s^fnLO=>p}r86fQr$C*?OOVK^qe4NiV=DV1JLd`-m~ z|M}Yy+NM&^y3%Ciya++Bksy<5?Kb-1HDHr>13;CCSyEHTo}L>&(_Hl4i8P?6z>S7c zQjATy?UA>b%cMJlK$8#X7gIbluO6Xb{;2`k6ir4_$2AdBaDt<_Kpr6(#GX$N8iQ0-U#m2qyxH{m^TE*IM zEIzhJ{J9ju8SG;^;Ds?pd}ECtow_C})D9goC7+)zuYkJ(o4~A0#oU{48apGw^BQQL zbs>(R>ld-NUj%qAGtjWruChA*eL+TU|K(ynqT(VOo~belTI*8{?|L}D@pQ37#20m2 z+P@|9Hb<2643q`nqwYyy4XC+@V0o2$hZ>(W7F_GGb}k@Lv3$?uzWPEd5$)Qg2Q7|Y zD1X#4%7L>S!jU$&FCJQ<<;F`*gPF**KPZWg20VOuHoL3yE$3Vlho{LPVgFPx8wD~dO;Ah zFdSEBB0>=sJ>N z3y#awkk6g1yfl)=6kJEp__xoFmivqwsejG)Y$d{v!@)->eKrY}{D(%oqN`aQ&^3vS+&J zcXh*D3#`4p*{=$)rHid_QAYVCvp9pgD}s4O;xF`-D2(WXeP1VdHp(bozMQ|%Q*31o zz6HUcp)I};W3OBxpY>T(1$~NWT}8jIVnWo%NfjK??Aazo*P7arEV4AA-*Gq|ZhtE7 z(8WuQQg}S17pWd_?{$NI!6*4LwJ#`f23ZeB4+T%yYV~R;cZ&b85SA?#ttW8D?Q=mn z7OBo$=4Q?{8+o z`%BHNx83xa;@U`4KS+l3w?@}(q#S;sU`o+Z3Fn|3655pz83rMT6G1G@aXe71Ue}B6 znPO5wH+tM+2>wSLkk1_OXyq~Y_3PkD8r*9D=Zm$CN~}f|T#6x+&}Aj&vDnF?mqZ5s zh_`wNg}sVINXih>xo6NAP;j1-tQi0m9x>a=xA0xU{tXgizQ4^o`EkylhFyXDygf0Q zq;>+Fq%i~jYJQ6_7BSc5x@9H=dysrC&Lu|gTC1F!kc)Inzw`|yt7IgIgi?~v#klgc zX4t+xt8+yTR}f^1&MkO7Ui#w`IBz`4CRJ=hAn59)CN%ad1)%mn!Ko^&Byb`C?KhTw zN*%Y`kMbDcU?W>DIOrmP-Sf6KGqZlK2$qA|^{UX-nMgG?m7x6}FEcyP^L%7P+|tr$ zQJkm_{fthRk)+&i>>0tI8gb2XR%GtWIIJ$Z7v}KNir+?KtKW2I{uR@CCEPP_GXK{y zNDUVn8spspXQ?}YkL+9`ZMRU=#b-|Lx)-mzjv-v;--1YYA~vDmm&@N?83lW!7TFZD z{U zUNEgUn5w;X&4;rZu$+AC(xSdF13&-FxfhJK=Zmviw4I%$kV8A`J?&>csy(|G*~}i| z8ZC`8;IejO8N{|lPPwBAl+c+{hOE9fJ&Xwj;tw+;_AhliVn^DIs*{P3EqpoTLMuj* zM@4_(BH}Nw@}hy&uhjoi&rZa!uB z=3_)^szBvx)k|2&LB-(f7YyKC%e>s;qWL`aaL&ih<&)o*>Ygbbcg!5`S#owZn|ybA zP1AXVg33Y&+bXvq3oGkfeQyq4-?`Ax_+8d0EFY}T?3jD`?qa1cmWYj_du)R#d*J}L zrGu;Kej>T-(OVHG5mZd=^nI*Mh?#;@e?B|PPI4PiGUV_u63d?sLvTp0VVecdt1z(@ zY;G!pA}M!lfg;aA1fTLCeBk_@Pb>#4holupn_J?gyE)QE5n znWWu?$4D!0wmepk%T$v^Qc2h*f=_6vPP$fB}Y(ZjnY&x_wX1JF8lJ@*rN>Ik3Ik}Q2p)@Ed4n25D$ViL2+%&!?u4HJqzihV{xd3n6U)q9 zzj$>SCNpghm zu5Qb`R`J?N4XxqKX36e)gnxsXHNk6Hp8IA~<3V?ClU4*i?vhk4Fu0*6;}Y%c{}bv8Su!{ptf&0XkR*Wdf^LhKo&CEVgc zYVZ%vp<&I?Aup^Z(;m74n`!V%J;U)@&_XG zV5-3JWC(YQr_+{#H{H8ShtT+qBkuHj%Lp#K9=xPBoAj2jN9?&iAZW8bHU6_qsY)J- zdkr2490|TDdTE(wh((kgArX)vL(Ob#3p5Tr`X|8W3Xy z95KKjqw64>{DjP5F<|bMyqHpVp@Y2vrC)_inEEK{)LJ<;2&2omIx4Tb0g>%*SpNO# zg{QLJ{@1&Kbq|98{Js99sthL|V9^WYwH7j;cAy2SwpM_wyv)}pe!LsV|7>!&ziCB; zs&md;X<|tM0tB6#M?ZHN<;~LLHl4DjjD3_x z`Q7Jo>ix6LX2*)U+$FZmw#OsbM6X&~h+V&m%S>GbG-c)PY&~cW`|z==-oNoab^Yn? zJ2FCnM|2GRvgKu@DVak1oMcn_{dN|nR6gGKz(JtrrdFrxQ!rx7Qk}VM6$un*)|On* zmx`^;8g&;Khy3~8|0vE3GhcUlq9rf5eZLRJ3$-cB3v^z3-^83w-kweuOD0rgscoRt zfwGce*nu66)i_4J{A3>S@P<1t9QLXZuFtdmPR#N_Rb~E!6Xnr7WDdtPgjTDP^1#&6 zMAu(>5&8IxXAn)iM3pHFhL~ZJIepqEn0F@C4v@^ra`}PZhr!}-BlEswe()L!3eJAi zwOo}j_$feGa=RF%s-6(JfD(yVX=6$y6T%K7(XN83%tilcCh&{QqRa@5;;$#>d_$3+ zX0itI8bTQrQ-c8MW9aPEb*hPaNX zCASZcAVg*6)SYLl=K0=xek;J1b%)|@BYRLr*(X5eOc?XpVjZ0kcVx2G3YPqIr^iaz zTaL__)Z?d}=ST~#%8&ZbUNj%&j|O`28I?_J%JMy!ymbXNX|+v2dVXi8yHZC7J+Nr! zUc*Vc4JBkvxQl$MDLnD(IAZjfk$cuz3T0>1@Uu`>hC=lAF1 zms{c@g}X{*xK?>8fRo^=ebu-^_SThDa^C*;6u+&7sr-t8!dVbu3QiPx&}XBD`K;aV z6tP#x)5lYLHEtdFb#vg}uM~`fDKZKgS|qkvw=|ai(-Zwv5T_y|Jj!w%9J3-HU~xo8$GC^(Fy@*7d7nZB7;4{gJ_TD~(rDAbDZb^D4<< zH?WZ|NKXx)W5mNp>Ws$21agr#mail0R{iAN40`To5?a^dzuWS1ExpWu=erK!Q3N11 z--L+TkYOOc8}a}Sz|rH2^JXUX-<~rT(v*=h>6`K-F<4Q<_oMrY)-f>cuBFh`+M}&3 zJ3wYzDSA3L-P?QQxjE=4kBkdr4^Q6PsoN(kL}CrGhO{z^(d`m~Vz>xu6)WLuGwE4e zQdcbtA;?}!lXu4wZgC1Ix}3t0enQajQ;S2mDf~bXzGW%rMZK{;5grj~z5y4dvdpx4 zLB1nLqKCcZOJyZ{PG(NcI%@LZ;oB>u%t7(@o&BmBd?|EzuDbOs>^xVvyJk~Qd`BMj;tbDx}?0p(}BzT=k#%rP81ij2ss>yY=5^2zwBDc z*3elRckSO`W(WZ@3n4TA1v3zb*CiVN9Le>wH;gK_m~_ma=DWDUB}}pU%#~9@TOl+z zHcJAz8`fb`TRI_WODcvmqWa5do%rGR9Hq`E;9UN8k>$Y?YqQ~ zUsLlM8v)yK4T-nqNoN2pJX6A#tjn#r{{lwc@n+_=N!2D{lc8{-d?Qj?mP+}( zNC8pXoUGQ@MXwD@6lU+FzF^qNBgWp5r;{N)8X+f*KSQT*dY6ff{T?%hJUoI&%|Jul z*>BYE_q+528ckUNjpC%S&Op62rw8oX6Wh4Yo9Rje)KOH9`+n9vs8Iu=np?~m(tNom z0oQNiKWS3#6x^SdCvnx5q4NKFU+6VB6vD>L@{K-O{lcgR(P@Ns!5g>EeW*fmZ-h_o zY_S|va|qt16IRmc)26YelK9Fz^nTC=Cc$9j%Sao{wGFTuG8qA(Ql;Za?gN3wZAeJA z_7Wx_6-3HVh%~O;=>0U>Gon!mUZMHfJvVA3za=|cw-evL7+mz5X39v=diih5>)l$m zvi`I-vzvSB*XUAFp4PZ}$B#h#D&psl+HzDV!z|n#^6uL{MVb^MIMo+J)Q-T0c$(E1 zqut~Rev5E*RnwIH-D@lO!nJSwmxsCqe?1rqNTb^l2XXDc<>f#AptlFdWt2Pb_)n0_ z22YjkaAx!o+Gs-pa2ocP#Y25)`q}hHt^$Kc_koqx8%IDKG}Q?b7nM#$V-C6S4e}=?VZw3IC8Tv{SwM zk|-lGxyuk;-yf+&el)Tx8N};L2QcfkkDMn!SagjQ!);$$GiifA+$8d*hpSqTC97=Z zt0gj=)ebTzCk2A}Vk`>oeecV&!K0QL%aMq;0dyd3tpf+rm>c-&yssBdFNqU5bLd=9 z{`8KGl*nW+XzliQ7Az{75+_^WBy3U?5 zjFsN}T(_xD^yu(yYrZx+RuLTga)G-wl4RRBoR;@wW`My1T}tv^KhRM{hOs^N*ZPL4 z8enT>%ZeTU)4Az1GAdoMZRlrpLMl?Eq0QTBNEJk@wnxj4d11G+>>6UF|DFhcXuHJ` zgA6L46bRyO=yVz-(aQCjlI^`X-XrS6{m9eG`~jedX+o<((InG>}U(*ioC!i-3w30|Rxf zl<}n&NF&C!2p#SjU_VLLbGDUC9bOUIZXD5K5vl~JNzv|qeikwN2(83PeWs9odjW=6 znrU#8k}&M_0R7Ny=ygx_>A zT7wbWoiQ<)KeNtm5JRubYb!d_H=u+nf@sPmrmB>Lyds5jAlI>}rH+QF7evo#0_#W$ z>Ge)~VOE9#(4u8>c7PjugN)BKc&X-0Bec^Rq9j9nwwY{l4nloOj7z|~wyQm&x>AH=7fSSkzVd;U`)jY2Da>gk>5!gt+% zlLbm7C?dZ+==wNJKWnI1U2v_EXX_37pBpqVguAJFD4hJEA3HZn!y8$GZ4l<3?LWKAD_z(6e^l@98%aVt<4EcQKUyG)yYLJd38HJAj8Bui_)Cim}`i27j zJQt}*FG8x4>%r$oBqEoejBl~;LE=SC=GNKz1#@0sd;>DEz30W<$uqQS_)!MTXrBlJ zUbVgF+?czy7Nd)hN|amvxbVXJOwj1m^5&5Jit1&s(PNgNw;l>l4*=c?VL_9=7T{Y}G`^DIW>XHn*2S8ryvEAq$;W zS4j6NioaBa3KMy7%=DVh?pCeX50T!JD6B>tPN92*wtpQ6) zGV%U20UNn%WMd^T9kC7mWq8d2^eK;)6FV{C?rx`qEGr-}(FRB*hK~O$?>QE!fcSPr z393%=NPn6kxyD8Vco$iOReW||oCsSJG64{FB%wRdVe)Xl@-Tu`d1%5w*H98|O^U zP4Ap-wgU=BYuWIHrRd8+C>~98mbn;Ua)10XhO5r8)+vG#A_CXI{XRi>NZ{0=;B!4& zHfj1uRQD((Cte{rV!ASv$fqr>0Kc4NEi_jQe6iY#Sc;u$%4jVsm8l znL~MA{9;UA(f%*#lTc)?g503ezdKi+`dJfP_Oo`d0meYFtWpy}TBVA$Ig73VbrH8k z!q2Wa0XRvTJt!gOGTvq2gVYe@|J0&g8c0JOG1|1U8j=dl6w&avG|l@wI6~hVU72=& zJ>@KE8P;8J@|rS|{=YvMzw8m}0kL|LFGP?J?VTvW2j31!uQ>hTB}g+LJuIXrKqHDg zef^|_6XHefa6+q1NR?RF`Yj5zK}%N-9VX{KfNXq6*$%Ky)pKby+@*2ZF$3|}v6h_!$f0Q zm_%^6NOAWUwB4z9@;$tu7`Z=@=a;~L2bsS+`J2;ETKey>p8z~9h8Cy&b64|$h{PIc zmasv&t803!?yVuvZbTcjeFe7Vt&YodasfFAz}(q6=`kiXYk}aI%C|%|fR=mxgSw3z zLhHDIis-pHgtS)|8PM!6Sn#w+OZ-jff+{093c#>BqRJjJr;dyGe4?{!<>j1;8Qy!) z2feJG=>UstoU-V#S$aEURBo@zeLP&v63GfcA~&57$5BATlzIb%Y{tq<73e}C2dkH$zgK5CJzTc zk_g2XfT~G09%B;_!-$EImI0Z8Qn3Q@~cbRG0?)w~w>1_jM zaiHTFlFcRj$dx(w{lhC@025x_ExgMng4?nTs3i0iS7#B`THZhX_9p3>pi@qUcxq+1 z7#Lu5A-PqTzJaquF;4el1A1~H^_N+KULHtC(9&Z=e>YqGb6aI@f$?NAHv94?@Ddh) zJ)Y@}z@?Lo%|tWLQUr51pu#*2uu8LeFCT67i~wn&NbeC!rR-+l zw}jpcttdlG=tQ)c5c5csM2k0Pix z#^Lnoh^B-*-MtZtAHqKuS)Wlle6?D#@<@a>bKo3`mzqnB@zbIw=;+e*++RZmyr;gl zTnJp#L2e*NK2J(>Ga}5h1Do(#&EEbn@Meo7!r;c}Tu7)ST;zC7DDO6M`t4Z#l!w(neN%H4<9@!FNP|C^ou?C%J+z+Mnv{al_vM z4Vk)e)#Bp_tv^HBq;^wj?H1lQ(i#8t!KZ~yWB+h(YR|3_6wiDm;QX8Thmkq||3YdF z5uE;|Fq>K@Z!PvX)08*|W^YoX*sYv(z(Wy3t8X@wAVZV4#qO|oy>xKpMTpxapyO`K z${#L06OvhUo8*h>3flOFgewR)Ikc8b;`Z&>bm;Aqka25%f+%>!mJ-Y65ymSI62Pz2 z*6oBaEVZwaS5^?xD{`w--4Qkx1K_CiM`Zp0nLW-Pmo)81L>E3CNVmyDYV@n5{fd|QFp!v>}-2l${P)x z&d&YFZw?;_C^*U;keD14H@fX5kqT$RnwpybxcN!JrwWlgugttz2gR7E&hv^)lywTG|c)Vdi4{9`&cxHWV2TS5eNwOo4Ql)_yJYhPE40 zwlC=(sT}CLms$8oA+a9^j5ZI^5ZmK9d_uFQ=ik4A%%@Muc`A#fGE)+Rd9h_Nd7#qx zBc`o$&6}0R4X8j_IKtZP>1y|k!q)7?>dv%vMD{s6pdawPf2-s+bW zMCh~?kmi^}#LU7oC3!317eEK_Z)= zFImHyz>@#lhHX|QMy!7v&lY!Sx3oFDQ7rD%IMpj^&=ihHtdc(Rs{~T*YWb}8;`zQ!rzgxgiI(14q)l7EU`1<$cwTL9 z8KK;%rl<(5PA!A(AEa`E3cF$ zHj^>TH-k8%)>zlgvo5KH@KJ3?CgCG7n$cZG(b}L#IshxHP-EB$^3%{+BuCekbZjP~ zZ1b0yiL^+kZpxA*@n3Ke#3Emzg^ik(Wx-FDYX!z=Hx)XHjU)YZvYS`xfi3;2vUjB7 zM}BBpt#SwLjPBoMXP<;*t1QC2WOv_r#LS=*WV8)h{8t_zC+4=W0p5y2Bpnkj!2g^{ z705_e_U|cW+aT=L@-d>jb6QA>rkO14i5%a29=URUlk{GwfcFgq1UuXB^mSLfrb|`Q zc>uT9fVl?X#xxCJ3Lo$-H5y-(gp2t&!;*V z{HMNGt{?x#j|vo!ZI9>r9~lD@vIpI>41%d^J1RpTka&X?fb9yFV`$b;>NpasaL{5} z2LbrWmOno=YMP$em1mhjf?Q&Cvncbd5ZmR5$~`0h-@Ql&g7j3~CTr|D5e=ay>0a<+ zE}}Da!eN(GdzC`dGg^1uMQ}s&Gug=qXAu9}FWWlnjSmryD67NwMeBPmzmfGMBrO}Hi3yq z!!`}GOipw6QWWWRzeaH+BlT68yRYAl2%HJX!Mi8;krh4|6o1FAvxx& z!ENFKru48lG9D=#;>y&uEFOo1n)-=?>XK7>) z5+})wEuUY!cFH2u7Wf|A89N#gb>)B z(N7C#a6QYwv;&yrc9q+E-#j50mPK^L#O*62`){F6jr^@5R5d*C9}3CqxCWB09$13H zj`K+|)^+Cq3sFu&onad}zT5tKcRK`AT0TXHthK|XyvF&=_v|Ui+2X0Q=Vz?DkFK+$ zjNvJ^mj1|-XC`$aN*)NZrEQ5Ld{HY%=i~%6LVv_aQS3S+5)&C>O`FEcqu;ZQ-USOV z9Ml+p0i)8Va=U{<|1DCiQtRAVQnO9o?WpAnDmnG`cJ|_{JE}T$5NzEEHOq~9<{A5h z^uaYY_8=CF&3cJUjiW?XzU2vO^4Lh`Sm3l4DSjN8a#54V z|0}>wTIF|FB{RVf_{a)EbY^Z7^Wod_-N&!rNp%Yz&`JIF!RP3ufK*0*`qb3t{=EJt zCnzOqA0Mr~9?44Ue@|TTIQ_)qPfFzPS-ljqteI%Dq zdS=_UN zN#N1~=@VsNOfI#l+NpG_;R-I}mRO}-wQ+XeV)6w=b+Hdu2sBmprH{t`ewqQlpjA*M zSu&xx=8<%P2x^|OlQyDjAJ#$Z6eD};r7y?h49v1Zq|{NCptu(Mxt<)HOPsgc0VXtFRGdQVkx0~Pt>z(o z%RG=Q4v|;Lbde7!iQV$OdY6LF?g`}#nsk^k`??##STt| zdGpFfb17nhP;fzH3q?BE9@HICom} z0~NZqWW=9E3f&1`c{Z1-_ax62Y!ePK#B3&aNOZhUX%FA!4VfMAA8d_ofFbJlRU+f=a%SYugLHcFBE?m8y%;VFDJ_`4i`ql#n+A84 zST5a*cP+uG`A(2!zRY;jMn@1!&Og_eZ{|BYIWu6djg^YR9$bEtGMT;2R9Lh-$erlH@c~3{AOKZ;|$xWD`=pED{ zR(EnHn<;n}gIc$m^hyIN*ifbX)R@22n|-=pw~7*<(56=Z6_5C@JB#e`jne=xqAqA& z{PSsHHv)LjacF*m|nVS6ozNT6( z=G;)ttr$z%N78=_vD{WevF7$Z0uHRMowGcC76vPOG>L*uTrJAfL17%DCrcC^!BD&jNcjdB%ch zE*Yud;!~ay3oj-oYtG{|@A>-qBGof&Rr2{y4V}gEZ}@wmyj4)`?k5^b*>yL2526%p zu=A`-;YHd7-4Zx&E#3uDcG!pnmi>t>%@P!4xrOb1|M&Tb?g8RcV?_0_aCw3i*F{5F zn4LEQ{<$4T@T^bKHlUsA#_ z^{)2WDz9Vn&*_7g*raxJ5?(=l+3=b|MK}3%#n8kX{aeeU7Gn)BSjlf%4e?V1F4Nq0 z-c{9;_KJP*Il8#&xwjTJKHO9}IRT0YJ0LB2v)wvX3N7Y^A}AWe5oy7VOiH6uyCtR z|JKsw`gbs*4kA@hdwcEC{Hx9soVIrQ4Yec6=v8tjslxG@0mw#4v{NcnS@q?acooOa zMcR9SjJLd$fzN(sjCsr?__A5A4oym|jlT)y-aP18@_?Lcs$`sYMGNmjSaEE4I$Cl4 zW3I--xPi6vzS7yfsN^f)NPHhE@c+h!_kZ+OQ0#Qw#MSquj%i56$R_&Q;;nNHrV~xaA9@Pi*F!g$SwPfH|!2#I?N;gN~Y|T<*d{+x(Mbs z(+P%gVH08esE038m~r{$y=}aX3v-kxI+g29!=TEH&S1`Ex|CwLRCwl^Mv;{Ifl+VS z+ndJ0r4KMNQ3gcEX82JGii}wr`KAk6oDNu-LWn{7A;WD<)ZyFu`szJ{VYk&FrlmZ$ zZJS9J!$o;?f!$~3PhrX39gd(j*wFV`=QjSSdR%~T|uVY8`KX0 z)Aza#O^n$%fa9!317+*w-He`mWrp84xxq75TQmHx&9S)M7SX9|I%Pe+4CLgB*TqPB zSx&v94aK9~p;T2qGL9(g3CPPZr|Lp4-qzZx(R>}Ch91?(*7G9v&j2gAmLe=y?y{~$ zz`*uLBC|LVoo_F>W$1^!?Ntjn0IY$Dv=JNhj^#7*%_AM;759oBC77@>Jx=@<#E*8D zL}7`NO%_sf<66|Z1Mwt@GN!dSEs4%CJyJO*n{cVuw8BN?N;z{wK9D-E_Lv^08tE5m z#g^ho23a^F?1E;_w>megbQ=wp*k?|^?QE$oF7;L-clg*7C=b)qzQ{}%@N+tS)xg?m;1 zZSLgHdqzhA7k2y9ea9m()@#*pc7V_g_y~v9&)gAnG9s4+z73bVZoV`s6G3nfBjr(a zrZSqR6dfE!&1 zRiaJk8_f3_E+Ajn%bRQqas_ih$lXL!toFHY4jMnB@hIBN`K0E-*ObK6!$xT1do%BU z4&&%}_8P;k^aGK9->e&FZ>*Utg(?Mg``lW)Je&9XNpkRRUL&Zl?v)ZD)Lh_}$$aGE zczb~%FzdvkS?;}_J5fp1s6ym=4vb|TsLKDh-ctSBvn=MT$A0@GyKvZ}bW8@InCb1O zf8>Bme06p71cF$F^@+;BR&-_Q3iW5}KjHf@)0y56H9-%lc4RWTRTITeSdnJ^_-F*I zOOR6Sg#s*+7;dXKeC^pPElC$R`Fb*z`| z*F~xk0klIY?q_)Cmy3ejO4^%8fyOM(LH&HXMhzZxt8byYC4!42(K||WFx8rv>9{yl zp#SkV$JbC^m<~;A+`Hb11>gyq$({J|e?(P%O}IS|8DO?;*&e_k^T5^Q?5xioSDi$b zPUXka4gBwyPGAq6u6i#^r+g0DmpdA(zkeXRS?s#GK;Tjrd*;WfbH>}zE&@_UR^(bf zGaB0ixfO#eadt|L4`A68$j2|hiv7X&zeW(*!X%y>bG^u6-yIDR8u+*a2k$*-3A(Uq zSvv8?pGIXVC#>4jC|L|Jy@G`z+*d#I6VL5CvJ2 z|7{p7e3Is;2RbDT$6L}Cc?l)8za7d#=j8COcp(Rg7XtK0Xn!?4$en4BgkKUjH~0DZ zS=rCPgQFkX6Mn>KHe3Jr8vJ6>=wtBW9heHoi}b^L&0n46b6;?l>VKR*?)UeX{u%W_ z)}i=@fg%0Rr=RD*gJ((JoQy+2Y3N6Zzi%$QaT_JPklnvC2o8+!&ET&9SNJLtW*S8D zNdEe^h)=#j24N=Yg$sX$nTThvby~8U0uEE~F{R)?215iFIsxwAz zZo$i?hUX;!5lHz<{{<1$5r|NG-8%Hww?+2h{w4S&dM>WNAi`OQFa4LlO@IC2Np89Q zv!>o!7eB+hUlbAVI3a?2{;l`gKkJ7_SR)F@cd=hHRn@L=F^ z`DZ`k&W7*we=`OU*qWS#m)~!^vm~@hK3@6Y^Z6JdPmf0N6X!Xy!MsMeO`L$vmJdDl zA#y6P9OTuk^eCUjx~$KrW@>P@n`LU`XGn!J_s)4+kfxG*0iNjx_CwZIJqyCLXNYs# z?@U#E;;hLuW9R>4|5)I&6~BBS^xst((}54U@VWOd$9o3}m^2PEHsM2?iSqsp_)a}n z*Bff%+!)QPE!h6@EXX7Zmal1mm8Rg+GujAm7RU?~TMQJnzTkj(06t3uSxCV-PE!@V zK`O_AR)`r-tDot5cFT662lz)5qHC#~Rzm|I-lFV>{7-eCSk(TfIKFNMnMj3+O?`JH z{_O#g+BsFnTk{g%Nk3oqRDM1NHAri0O);CiLj=TUddi$vwS*N6%S=0&HNnFZ*Gvhc zhF0*{k*L(fV>V0w>9L{ z3U_O%y)anM(Y4*DiqkS_Pm$*yq~J6*O09&TtcW&36h~Bw)L5#f$WiqJEdc5;2U}ZS z-7kKl%vwi1ZWBA2-@1u!gIpeprnzJPJ=zc9Xp4=u=={7Sw7jqvt-a53jlH!JuDAXE z_u&%uLE@SZKWV11+o7|tRyiK~JH^a*Y$NMBDj0*y6M0l0SKzyft>J6saiL6MS2#P=(Vh zwDh{Ia(y18TqmwdZ-|8ZcpPjSQ}8SHB<1#3`w|Zxkkdu;JLk$q-MD;;L8`#hw?rfF zp*|eGT+r4uLytRMvw_tOTdSI0;UoCQRFs{Oo5s8v6SSbdKITpPtZ`sM>*9xLEiQZ{o2 z)O?R4jT@?Xu`kylv2y&i@3ua|@;DWE?7MVlVxJ8{xPURe8{T^WHDHFY53~wJwq3{^H?5mWer^!`wpw*NwF-vK?37 zr{v6ATcaV`mvJ%<@kA0t+ja{By;QcW*lHu2SnD3~qt^zB_vax1xaoVO9D`N968p$| zll@9o3CWB{B%8&@rzbY%3y1q8Xx#4;(Y8c$vdrIB4u20h-Fot~0#or%GK`vEn{0mg zjqpAltSE!&cD^imW%u^ws@6M9aDb)UH-dhy+h4XqcpO$5tEKDm(@}ZtA*`mS;ma;k z(lM!kfbf5;|B3=EJyQY}??yv1mKE!gSmjeW?ixC~IqX?Dn^ief0fL~HA1k2y zn|A&iz`U=o67QZMNl?2QZ5b+!7677T91oo+5yC})Zj16n(I`%H)&*0|PV7gr8%lXb zeRv6q?oLQ5+fd9XNj`mD0lvxqvr3S{;k6~W&Gx7<=An0coE&PUcGCtWj?8Y-x8rjO zwoYW4e{Y%>@*kdU5}`#Zl_y=59b{Yxf>QnfS2vTRvgGv73vZv%{b zKN4I5-E8$ut9mbV?&2E2SM_|;&gy|6gqBS|!h~Nd(^4Smwm`9#Or5W0#U28{n{ZTCD%OkZ1ozg?xfd8P0 zB7<5~`u&SmN@pZ5H*h*GXz`7|QdU~91#S_uJ!N(NiwaB1bRYF~y~jwg{sAkUbCz@Z zZU{3Kt8PVE2m6%z1upZ4(EKDH!p-J=lVkvtr9!>Vn@u%AA-5*ZLgi<(jBVsoVI!iY z3mQ=+;lqwN&n%Y1z@FO!2wJhI;nDfWv;O%fB_IpJOHgJ%L58qC;bU$nPu@h`8r3%4;=Jizc*goIc> zS^+rI)6O|ue?b*pc<@s_5JCTUJUVuxVI6|8QYlqv5Bt;|O5ly&So4ZRrvit+1zLbc zgj{+lb(824NY@UtAqJ0dw(NC#0S6o-8`B5%BT=%21o@fO^las8O5bA1Pu>DD`&e@s zNwM2?Ep#Po$rPP3C$DEe)ZZZNN8#<0w`zb_967{xxLWK&Id9R7WIINdWqm)haL5#C z7$bGfSY#V74ZpZ)F=4HcXpX69(&{*sT_|z?cEtGZZivu95Bh~Nn#VI;r@SQn4CY%( zi*)!{lW7SnNPUfW;Z3wr;^>G~?m@n+k{M<`Aj|dxoI`|DVIiM3MXk2jY`ey-h8aHl z-^LCxTKL5(wC}lsvIG&Q|8aHl_BMPlsokkJU6s(>;LvN{3JI9) zXS+W87Qw~iJ5*yTS3}hvr*^6m4?L@A>h4>Ibh}h)zV}%8EOIy!&T7*X@0ABHT-V1jE=PkL+$skT^S}J*GPq4tB|9-Cy9n;cahiV~H(-QsA1eYCZ%BSo#UXSS zEK(tO%i-78G*xHF(fL^C)d|+A@xvQ)Kq3ox9=NF;eXzf?UI5CXd%!?gKyh&aY+tnZ z?@wpE%`a0L|aHovBmacdtQgmRUUs ztGt4g(KMg9YGOX|Davr>cBcymYc%~%yE;S@rT2x#%X^Eg6Q{qJ@jk7|Q7^QNBOcxd zFXsS480YkoZo?3PEJzJCClc`_51QnyNo-8^$V1zP0aC=K)ycn!3VvHR z0b0vP9tZ3XdvlWoz~Hoet>ll}ylLFR5p^Yi5RQbZYkW+#DHAw8gImXgp@0K`O1w15imNB~REim6I77zTz< zpHq^hBT8<~5b$(X*4^uV2$xMeRdTg^7;3o$DD+m@q$k~TiOh+5m>yE7wsSH_e?B_6 zSSIAFhRW?2=*~}B?gu?aoF|gOt;&68=ma{bdHB^685rv#2*GZrMZ>>4_AY(@D818N z#G;pS%ADCY)8`84mfn}-5*xW$k(Uex~#d6nbK-9YlOpC8o|JK zz!Nj;_HO4yr~4F0Oo>BhT=+r!f2^5#Cw`b)K;fPB68FAq7wGoJbX8U=au=5SL~@-e zH{5l++88~uq>ng1c`W~!HiG2IzxWx1q9Bii(}{OMLGJj^K#7?gPUl5Mk1ViKmG#dO zZ~x6#r6LqZt$137NGJ;`c~ARFH*AqD6zZ~3yqX>;e!mZ8aSl*I@Y~~RC|8;9??wxq zzh#q@E=t%ph9Q1!Autkjvb*U!R%be8G;{YvaN=ImOghU6o@cvvI@o9>jloSvG77sb!% zLB;2Ab@jZGP{~QxwW;q5Uk*G_gsxCOkO}1OLG8J6wIZ=@pPjaxG=sO^3cTXzBIb1T zMzQN|_#%8WGpN1E2V;==X*asCV&OCqwM+MN(R8Ey``r>1gVOu;I)oFvZ&N*P+YfhZ zZE}AON5BNZqy6S)S0NBLs9pX-GuGzrH1#!sb!%q0Aa`-OPwmG66T}XiRbE~sT>|*; zOjh<^CQ-o&TrZK8%&ouJP(}oMZVNgeUV}ywG;}9V{T-gi}&a`{KnS}B)`mTJndz7_;GxQt5L_Ot<=#9;7=UVn7E~p zrcA0Js8A+>M1au)nm@S&;AIiTGu|Jw@)N<`4}ZEhd!>SerC}ZVKlXqma^7QnR19oURX3EKznG3DNi-R1)b`^2%rtnD#k82mk?IL^ zY}yTV1A=n@VEN%$4SsOa^Dm`YtviXrEW+k?8VX(090z<2aI1bZ+$ti%gNG{9U(K+V zNC{*ybJ$R>zfRb`142D)K&Nm5(b3|f`dRg`&!gFktBozi{3+QUSgq@dp>vtIN=L7PM-byaats)g(vxx=64$-!iXy| zXot{r<1cS;FN5*4pyS>9SWwJ`ic^}G&uI=8nG(8JgcV|`VBr` zK6Fga8!)}yxT8jJ-B)riQ@7H?=(pg#+2kF;ABR914gsi_%s_rY$RDo*c{#Ot36e0D zqQveRjK3lhNVtY-iyX~DXKHk!r&@C%^mPq5mW8!T3>C|*irYXdhDrzb>B!EqJfE~8 z+MJ>+!`xbhDAbwerbp+;J*2s~MXf)|OE8ZO&B+Iah+2`-A1#O`EaYvaNWH~|0J11)G`IE0hq)!z!bla&@iH^KpErdjz)<4rmNoSCS7 z=rqK!PqXPKyIP@B?y|5cVvDXLreL*OWwss!XxIm*mAWXxY4%d7;L5zt43$|zZr4qvvfD#` zi2fVod{-_x{WoZhM=T0zDAMMy9DxEt{H(aI9B6uLISbvPr2QwnAOIu7d_-#5%v*~| zbbQ)0oN8X2E8A@$@E!d3HK|SgL5R8y(1)$L=I?@Qb zk9pvtuc7A~D&vM&KIMH8+$~~P5|$2^MiBPtD{^_~Za%n#Tfo{NjVY5~r;v>SPY|2l zg$d%MP`TJN%%KMIqwJSr*w}ZEbkE9u7bG}%N$^a?!W;zPHsQ16T1v@ui}D5f_@yc) z(_mRRv^Nhhwkoy!Xh+3RnO$_KoZ)q|uB#Nnk{Qt$y(GLqzYn+8H33!IW3bM=@_g_8)7Nk>LG*JX$Pr6-V?4f?cH`zn%Nf2r38g>tiRq&= zNbm;46vfuUwS{KP(=w~FUk<*}gC9WH|Di#@A zq+Lb3Z1F7fA8jD;OqzYQ`L)1X2uP=!=mf>c8e*#H1Y2Jrs5|&wGw-2dn+KZdE-DR* zcq)sl;tDfG$$&I1`0(U-zc&FfUOyrm!`C^Z%PGwc^DNIE zn$_O}AW*7;4zD>t<@N#~)jo0;JqIn1BVH;*)LjX?9^}nLBDfV_4v5HWFpVg}+sqRh zUCY|)CeV7e7n#HW+3?jjb8k4`th)uhsr0pWxG9DOd$u!Knu4N92}Oqzock4jHK-O^D%BGFe85*J%o4Oq=l9xC`uY-9g@nAt;{H)0~ z4AjyWBnU?ntp+P*5uv7C6tWfH46To5Cf-U}ZuhKL=DgwA5B=e^!>yMqvwPKw`kDLN z?gN{B*G%`eQ%k@Dte7oP|Lw*8gvnmjkbXd`k2d!HRCf#4BF2fUX_gbpNY|GhJ^Cjy zWCCVI>L`;h8nS|qU)86R+k}F6lm%Brr;u4KM2@Xnh4>|gI%z|#Sm82?K<6ay6z$;* zszQx`6^&Yn#ybMxv@IG_2HHLbS3>Q5CPI{|az2eGC$ndzkw9K1Z41z7=17a*w2^zc zh$5VK_Wm#vtu;XJm}+T1+3@r?&J*V-xRyOrLfgS1jq8pLO}d6kA5WW+M07vE^QEbT zCn;T7^CTXdAt+U0msvzHoAl+S5wE<;kMk^MjzRibCu6^wl%c&O!*hUaQ(g1CKcjIk z-xS?wO7wr&`_HH*)9rm67Zi1ZiZg;Jh~PLDK*5F->2?rl384f~0g4JkOieRBg z2LU00&`UzKAWcAe2bCs-CcX39H{w|4od0*N<9ycoznC{?%^V#_p64!mU;8TS4UA#Y z3_sMfQ?4Ua+F%L@;5VbE60X?A&v1wN~nUPohOQ1!4y3QWGLBbSq0C#1eZEgq_D(YrsiKx* z%}k908mg=;#WwcC4ZVI}X{|dUILq}wKq#@HTY#bK$Rut)COf+1%uMUBAj1K7CQdD$ zZEAJn59BASqz~6;o|tDBxsZQDDNiGIl{?GknjsQTq^;bd(C73mXq=83;~^Oyn`_xv50 zgK7Z|gK}YD=1hI4heivvkC_KQWeBaJSZ1RpC!F4m3S?$IjCW);bDL3hv?tvEPSG+r zwv}#vB}Sl0jb!wmu2-2$=u-?Uqb6TKhr+xAggzVRx^t3!sF@TQgtBF)?r+;F zbe_TO2$>j%Q&ip(2_<0^@p-RStRyLq*n}(slxVS3H8g;0l8bT(C0XE$;-O`9Nem>m zb9-kY@}#{fX7$9!%9pqk%2Tq=hic7k;H}DOVR5vbp@UIwm-%L6oR1@}v*78ui!!)c zY*f~Wt1IRJpb2{2OhJ8GM5610J%MlN)5t!f?fBP@TC+Qgb}^_whCLloqu>5@FMs|g zEE!&5$#|5_@(`p*0(zQh!QBQNze-Z_FlWeB;*w^XbgztXTALH+o{lR!jdLt9!aRr> zQNDEHEbbIDUu?`Sm1EU2n4v#z@qYNNv+5Hm*@xKn@x3KZN%6V?Xn$PX$J4ZI<#1}K z@@s(KHNcZ%3^VStc>D@UpNie`A={?3Sg2SI-dY5nuojJK^J0G6I~JLLx4tBRm%7>}%-9soNBagj<~rACJ;$6J7xZl*{{ASy*2xOl1b8JAx+ zk}ylYJ6HSmh&A<=lF5u2;Lg*>A2g}Zc|%R$XK4YAar3J?n`FglWnlaKk+71{Vt9vN z4|!I(r#x706lx^>EbD^25$OQty9qo}E|{Ium~` zn~9|4*Ns;jfI7$Ar**EK_Xd%8Q>%0wj`ICR=qR5of57Fp=eZFUz08ODd4GGEsNgIS zyv(%x2j1H77e|altHjw{2?mdn=)M-9AyC6&^d*+7BSQcvfVGPf% zs?xT`je*%)CR+tNFH`$GTcwV$^^orE0Vp8a47+l*K)(zKhJU^Y`0xEmlI-5UO~T0` zc4N5f;g{}AOsh(>#~4uAZ)fco@a4XGGSZ1%SVl= zNsE-c?YcuN3tY+ifrC3NPQ|-1u^r@x;4=n>qZ zQT*|d1ntV%WPrygew!mGum9+4SKxRFLw8M_bk1ZG$RP|tTYiI)&aO1OzN^%)83u6g zoi=6b1=vt+W=Wg6X8^wCUS0grFJ!}uGT|| zD1*a{m}S8X;R#P=Fu-R~^t+3<->6S_oSjI6G0JRK>~IeGE`lHGvd~y+OO=MdG5KSb zu1>efqbXvEB9Yo{hQMRS>g%O&I;#<7YG92TR7fmlXUNDTU}VmrS(7Qe?uWt8UOd7q zL^eZUkSUCmRWGEx^7ei4jL6qzhB;U)QNO>whiw0_J5&1Z9l0Ivp>)=`yLo?$5!`5m zFxhZE+)LgBb-%m>K&Ql8Wf?083yO=k`nD`xMZ0H@Q!yW4`bgsYBgSe@&PU41d0Y@z zp&Wy=cx^<q_d;J8ul|}3) z?k(Tam1s!)S}ZjONX(uO?|&WM{EpZq8$>@dO`|s6B*2g~&%Q{QLm5{kv(6dBn58%& znY2(e>_bM$`F%vCNW+sC(R5nSq^YJ2Hv0i;LZX*0DEAt?RRv<>?xV3T>$wr4Vdc@aA~hr ze1Lq-3yw2m+-Xik9Bq!h{K?_M#mXE!!=A+!`J;Fkkz7WctzH42X!p_6_qP11It~Ya z+I@~=zWbCvb|X3Sbete@I9kT6H&wSbZ-l#OylAIa0~o1o6pBLJ7UmL}4DQYea1}h9 z_=GsTe!FO`fq5{s&XuO1@P?~&<6f= zMxc}Y{QmmM>jTFcMalPOvu#3FQAB^ydWv4d4|)M~w}y?twTjCKFhOdzwXilNYB$7q9tf&S~#nO<_JG z6PIfRHX{B!GEvo*dDr1cpbzW>uQ}AUzklhz=Kc^^dmdttt}+3O$_I$>?ox($cWXVw zz+@(hXeMywZ9W5yS*S!04pLeR^A>b~XVt-Z;aAnmbD|OC1j7<$ZHBi&)z$Q+ z^h3Fl2pSWfVMlb?*%~z@UUcc01%%%e1ek00$#&f&Q(&6CS_QY_ESyrsFSLjU#=#Yy zT0&^EYs@7k2Q4uFrfkKlxe0S(T7z8C+PtJKbN$l}cflNx&Ne(tE>Auj+C9hy{4(@v zRg01f>H?2KzE3${c!XF9u8{xmwI74Kl#@ z&dIift&_GxgkJ!+cbld7qQ#QuRgl->nDp#-F`%NJTBQvB{_x$L52lH$`-b&+Q`O+H)k0fi1%!5hrc zEp*PUoTdpXF%9t^h{c?R5q9FqyPGKoqMch`O^(y*ZJ^oO7Y8EzcQg>mmE@xBx0*{E zP>{_yIS1&`$I~NGBVr9%pP3by*}jzS(0XjVEbf;@DBQ2#mC>?r^s2v~5?t7~(&Mx{M|!Noa4toHj1ZeHojl^ z+!RC;h^%#hFM&s$Z~HpDHwgwaE*|0-MQ;D6!!k!rU>wUQDr7s-DJe+I>||oeh3OpP z#pR1YwTv+_B}O3UJwlapy2VM3U0J(XE`4lB(kXU&=*EhuoJu%jnWK9<|vzy&MLylOkUQvYoEUn2lyjcS|X0AfcgkTIge zp5}q00CplLbz@l<=eSvn^M-qz5^Y$V{N&XHq}pUq7BB-v<_GCVn0dQ+IAO^=TJW8+ zPwq-Ul}uq{xz6~5{hLkQi$-LaFBck&n)gh+m!~_Q?>FVd%Ew z70l6Iz-I5#F6gU^HyX-Y%*BCGMWX0Erp9s>j^jK`Q?w~?HmJ+r0hQJuU;jo`)#vWp z#q1gYpI}$z4Rs}e($F<_#y<}Mj1xdS0KNa17E8<0h!;O8+&VNT$5Migebc^#Ltg;O z-#CByN5|wO<;T@B+g16sBby;Y&61;#UBZgmj9Z zd;u2?VV^2llr*OSxH$0k>V>bbjT>0JGQSdCYoQ)m@wi8u^^&&{*z=_bwq1Y8fKz&} zO)-xOw(Wir<$4rzcJICihW2pc48Xu~U7QnKGrq(s7S$b|Oo|eJh725U_TdoUs0U{W z8HjVU-~dSf6!9pVk28ts0s(2=KKaR;#Qa#cpuF+H)@IzX5nt{L5q+mIVN=Z@V!j0Q ztPy_V@H~=B6ZghO_)TU2kAyne_8MO1_@k1Q3&br^C5l>Z>r67BN6rdUnxBakdzB4R z2*h7C9&DjBWkF00R)Rx@^{(CN67Et|!9q?1JyWxMCv$82p^!rd<#Yo1B?^3^4!d&DvmhMz^U`V%NU+LI!C}QbcZo%ZI zFLJ&(T~%L#zi@LYLm_2NU_POmYz%D(nWq6%gfhOp zo-gPzPok*K3|9xUN6!bsWy!ra>c-s#Fp4{Y*ov|<<<<}oiQPV|opRYT7`Px&BM~+B67k1M^wnj?bz$;2cX5}uX=C*@7Pv5ufA<=Y!E6tY}livva z4x3PPviRP_DDS|$*bkbQ-X3bEJxv~pa=Su4cn57}{xK(DUk|o3S!$05@L+gulS(ue zocHv?e5^N@OcPf_NK&EqfT#**Y)emChTa|EmgjkMKtfsUHpU4-W9i^Q zVD`YiHXHZ06Zj7)YyyU>a(RJIw42j;E{P-^NyINiD>T5!QHG%e-ZcVP5V3mUr8!*@ zjAX^45<8$8Xcd}17Ne0tM(mq~lWJ=&d_K9^ZU6$j@)7U~_THO*@6PG#5Jd~K=qVo* z;Z~dK30#<;Z9Z7ItwS5z=LjfplP%xSXp=VCDItwteGnnII-s1|cG~WTdU&rm;0y(V z-9ZOG@9hFacUE!sEqlm7zh4D_b}UgJxmp z#T=PZM0BtTfgU?pe76Za9rGQ^49o(~b8@Ew0*eDCqU^(6weHACJ%Eu!;3b7tJ`G|s}}>Ov#EA5y(dM)2B%MJOwoTgDY-+q?7=G!J(o>Wqc;hm zvnjtn9pnJNsYu^h4KS zp`*xpJIM<>G^#F$&#P}@-9L$T|3Red`lojPuJdk;%;pNiFSVbX4tGVeI%sL$@v!dK zNZ%KhaG?YWE#FjWxeF)T-JzYJaQR8-CV_mR0lYaMSV!&B&Tz>n-Y$(VdIwPN+BnwN z?qK0ojcqJ$Pj{PXUK&EBz;l)`t<+3Q_Kv#vndd`W_8EjW3 z-1RlgzgK4~`uwpUG3*(&V(lI*FpCqiuP1qK7i(fj`R%w`Ko67Hn76^)Z_R*jBd6Gu zguDfjVISA~7*VhzN=iqxi1``(TPK|2x!OD^cH&fr0=C+Log ze+E^w3s=~S9f(-IgA7va+Rc1~Ekd}m!)~KT2K59qcM{cox4f&K0bn$r)E!T}X|RAq zlx3g;E#q)2s&RL92e8aGmT1|h4?|Py=gm;Z(R5;cNft{N7w|WZnzd!;AN)840jR$< z!{e7}Wlf9dend9Yv>)xMU@|6^=&=bpmrl$S6`(Qma_xV8$ZAmpXwt^e5Vb`pC3Ly% zpXcp?H8g+um{;v-;-qbSU}?M2fS0cZoFDJ6ZvqE}2U=ettEGSP03s*;lc%u$XRJ~( z2`O8r*P&~K?!QTM-L`f97E7$zs~fRqm{v>b*)FP;tb50k<5(Rcyc0dV>d4HX? zZ*wQfJRm9?ltYE~64#?xz|4S6Ho*MJeeS8piGZ8M0n#`&c?R<%+G+B*`${Vc7yY)p zQ_{wa1wjeQmmPBu{M=sk!6=jQ&~B%Ml4}?X?v|$;AG^w9(qm@)=!Fn#%Q(U@27ZUA z8^=ub{VLo1Mevm|mkN6o_E2;Y9IvTi52d|C_Ap?XW!S_WG8x$z&X-K?K%{~r9M#C7 z;?8?zPd6TtfhcpdQofANGmF|BQxNt=4O(G-;nB4OS87$Y(SnXCnDGvP35^ZQwQRiw ze3>%tG3XwX5S})mO~;4K$L8RVWf_992Uu2Q0jSR#cio3%;SBnXR)K))@(Nv|Zgpeu zP)DlMD0bt9?4V;p7CwAOdV>A51bS+;t0ji^ENphSkG-Ga{l-ds3EO^{hR9gR%v@KS zav_?S4fqsa@8lgu3oEaBr==!8c-DarYygc@TcEbb6b7O}@z@vH<8tM%-~gwOhuIrp zozJa5l?iOAvG;y%w9s6A)(my07eppCs~81FK&zR@MQcX zCM6q|iAw>LT(>zKhM&9WH9G92?HDtj*=N)YyoDFSQ+cS%a{v^85S1Uy)-cR4+~dYeas`^4idA~FQQ;0ny(-o%(|%DWOq0$%76Pxz<`7d4-99DpiR1?C>C zTdM39WGve3Fq@$SOzzW$USVKo@S3@_1+b>j2Ue825}ttyzS{b%9ttOq;GTaHWO(vh z#X)E<10*nxAGN|1j$f(LVZvkY#b)>~NvPj*dCt(&R7lxn(jFl~wmA^@@l9!m6pt_bCft z8$ye$)f+cmAW_Z;Vhg?FxcAw=cVqRX@*A`wiW$um*_@{vROtbGa=D!^cNDMBs}~Vh z9|X+IO$Vs{|4;#O$(saFCSUdegR02KIGaX2R?xBq+7IVOaGksK%&tL`sh?EhRX-M% z_d>+ZUm|YvXAma%?ywYvL5Mu3};26M$j?nGculGSlfcq2c#NuPisFa?g{OvAHx z!Xu7Q%~_(E4;&lLU)j3tT--gMxCFqmvgV=EXf`e1eQWz8lMd}@nG-~nx~Hd^jM{T^ z7D*2$;oVt1E?>Ezu3h_pxwFbj(4za?ewkSAbCDMi*hf$6(E-{?j4koPdl;yg0nm=w zX2HYBdbgX(QX+$;iEbR_exq=As8Xm92}d^NM-Qd*2TuJ2{22xN9A+ z%Y}XB5h)sMLdNomXdDrxWN-p!4+8nw{Pdyh(ff!B;-Xg!#^wP>u04;+_sC_!D2ah( z<^)KhvkcD{^K3CVk5I_m_+;l}PIK3*{S6o11PWH*)!NTQNz`dn- zYop)g!?A1_>NxSFR|p$LjL7$(Cs4^)7aEL{j^H|ZNP5TcHA7H<=$PeBU%tTVB|Z}a zcAp0m-z-Y$0FQd{auk=o8W`Nctjp?LxV+{hxLKwF<*umRr^^Ty33ogA*3_T!+OGK< zk%!;=86|u=;%xwNRbP-m$deTR-h$vNWY*Z9XdZFV4TD=d}3-MO3xFa6mHnkkn8 zI9tviHLTg2DC)!H0|4wnU37O-C#Pea60G7<5#NX9KE!=o-PX(S7v1ACBYFyfv_YKBhl& z+0RJd_m7Y{ZYQaUbHxVBIb-r5 zqVnLKK)rdjS%8?dTej7TYNlR!5cn*hJ|F?J+h8#uBOqm_T9|iVgygyAbQ9UFkroP= z1KjJ5AnDFgj2JQ5=f3P{CY+~abssI8hKp-@!e|zdRj|)S5FIQFVB_lV>a<`D%tE!% z?y~v24|DM+`Ea7u^Kw0@a0BcuovT7$H}7&;-obuptgQ{0cADL{j&1N4~YMo{#aKMGrxiH2Y2lak~iH>p_K3GYk#X7-F8S*{^lB{32|z@NqXaJW@33Xt`5+K z#|UkB($e#ECa3OG6%Q%|h0+o79?ALxQ1}7HFE|IC@~xlgWeWXE5Yo!OK}g@2pUBk! z8D3RY|kB2dO12!hd5^qQ8OX!j|1}|FUyv~P-y0U?$4o!+& z@wAZyhSrO7K6FP}`SwM?mH3Ld@eF32u`;Ga1>9aa3w@}P$;tj;>B`0ZD$1fZ6PPsl zih4)fgtLW7_#t@^A1P)_FleDZx$- zw#q`}#=^Lk>&p5#%93BPdzM#FAkb-m+8PWdt${wtS-0>%U z5#t`Y-Bq21^*;c5P;;NFGMh)f|J?`?E_pa1{R4YxneqVgRn|>(%OBQ54wa3kmwYt; zyJbyn4au6i_!zxE(zWI$BG>g;jVK6@bTz{ z{1x`FDP={j04;U>)V0Ps=^~Gv#roG@ldd+?523+8aV{RzT1#sa#6yk0zf4?u!M$#4jc-2PnFV+mt zms-h<{|_gu-j`m`?%PccngFxsD*F(0`PN`Ls|F07s-b)PziC(ZURwI<;{V`R7n}Ol zDvlkbq}7gtZ8`RK9DmsxEFrF2;CJr+$96Y7bFnEvjesUM-w%x1L}cQD*dP!rmj-I< zXZ61teI@e32l&f)tM|Jt2n3ans0L{Dws^5z1LVNp^_NE_<9B`|-_`(2zukuy-!#@+ z-FoU9vo}AjJ#k;;=1V{B{0$Gn`*W-QsWSCHc!tG%@htnJ^+#ko7`{mayZQNLWIJLB z*+wQa|6voI;8>z#Aiq2!Hue(HJ5oaZ2Pc-LQ*bRFeWUBhO7iD`kO&yHK}8$Aq8_%Z zG3c}gtsrzI39cj&yz8e%3QuA(QqV7iD^-=CJ3 z3o5~d?86rQ@^3uTTpW;et~>^H{Xh2@%vm~>ZW{sGnhwJ8z+*OK1nU5JYY6RIAfq+n zJ|J&&4fq?!|F543l43EC0p_3*H9)?b4l>&Y=;1U4$Y9Mtxrzs>Xg>t>0e|bcKjeI@ z@Ra-JXp!V%hCLI0fbFNxmas!0Eyzu~)^UopN*&s+vJkOmhD@XhL%O$cGHg8R;kQ)e z4o5q-{fG)qmwZd{iNeN)& zM8yzh#1H0o1=CCM$^Sl&hY}_*iQ(Jf<)1rImki!XKiMTqBJF<)JZt2Vn}$w4WUCC0 z1bo?GBqy42uH7IwS(+fS9ymlyyTJl{py8X{Lboaz3MZf7&nt~h-B|n68dh_!V*P3-mpLt-56P^H}FI{z9D9$!0yfaty8A` zyIWY2Ya6%Pqy5_=avC#0b_8`%RmJQpyc}Mds;X8oxjP2 z@4g9>Zi{2-U(GGR_OTx>KfRtF6FKkFNAFm^EsWvKxQxM{ezUAMIxpRd$N%Hi7?ur2 zeQNB2rj{(3%i?XxTjS^9C1{ZdXl_$LHt?ZQM1Wt1TCy?So#+2Nb;(8gGm+ z^iVgZAl)2rLE@l^MiRKFL>AKb7g{3}LnUnrVn2WAmN1&fmef7mC5v$XL3t@MR1!$D zN66<59QIutrq#sixN}(hn*cupdAv;LeQ;!;XY+zWqXBoERuu(Cz?keQwr`);3)CCj z-}UpSA3R5TjYqrXl3`HOgccRAO59aCz5$WAjeavkmG}TqU%wg$rMcbyh^W1Z)&uGq z;AO5c3zU4=MiK0!Wf#)VOMU{De6k>x>8G1gml0P2?6(w%m}!8C?geOTETs5wy+Go$ zIAgzPCJ3?gK&KujEf~Zy8pEPQ=OgMrZf+1Mf)^fFBY63Xr`s~8jS-fU+PmqayMUPZ z?mLrD^x_SGbs@9zE^e805yl0JvA|)=e?Ar9!^!&YyH*>5w7qEggS|rS<%$rKyv2nq zZb@d9FcPGtSVN?#I^3itKn7ad`^JOB4j5UjF<@id z2qyu>V98klkZVmG+53F_N2(%@k0*eoHStTyytGYEAPe|yc0YgB@JR8Q;W3uniD{P# zFd8t+L_`;K`zuGEO9H-TBh-s6lj`!$u}2vwe83C@6&zG(*h*EVZ}%fOrlJOS<YQVmO?EhgFUlYS{sSaEW6k@Mq;lWSc0H=f+c ziQoInUXI&t6AJ6}St6Bom1*v&mb-OvYGFKM$cu~1AQXt+^KCO!v^G5T6dndv8 z_zKH6A$n^!7VY8cED^MjKezO^lNr}iL?q~>$>nRV%zn-oh94qL4m&*D>`hvjwWF!5 zr;_W97^!__gr}7;arLz1=7FX%&B@vM!e+{!1gV#)>plmhN-q7t1x3jsmYe%KJ+7r< zzWx8#c5d2e-W5pMvwP|9H8T832o7Db1K+bU)$y;-w*&un>y&KKc!TtMDxaThRyggd zP--A0y4ql?SKK+Kqil{jGryYWD1Cy^h_C7M4(T_%c`u7g8+EHyuUJ91@$3mH zEP2am(l=qfk~bv9>2~0ApV(ho`Y*jTC5vjOf7xhmB`(>#=kupuyK$pAL$J$jZ(5QM zn`LdiQyza{S@b@?(nFyYrN&2j?-oP^RrHMX-QwF(fBdc4x1V5aCs(J(6CZF#Y5S9ZBn64$o1&X=mTB|Mr*6QQDydhP+gQb4eqZbAs+nZ;>NlO|rkA|f1bk0CeN8@?-jJ2VXc%&$fb4a9zo>JR zs-z-zqrvaBZx@~9LmGS9o@8Ym&eHE0Y#kL&sK2Z~*d}aIJ{v^I>YMMbzfvn-cI64n z6nLVV!JO?e`y!lH`Y@*`?uTLhUsa`~KYe?drZK0}!9tZ0uia@)E96v+bZH5#B{P;9 z&s66B$WdKv$h7QLLR%LZ5KREY+yo{Y{ZO%{18=mAqrL(_Wg|!vzlS(1bp(sDNV3om zP>4dss@#yYx8e(Se2WCFQmaY{KO2+!*LKz)Lfwtd7MFf|Rs*O*ziBFAafTmFc9FC3 z2C*>(8l12f=+Au#u94n!<%BnHvnKKPLTQ4rRdAM5`>TBe%orSpdTlInNujk??qjI?+2GEgSLRf z%L8C(Xv2LzalpCM!C3U2bGL2N$}X@fcBjIffbMiKDz!PPSHg@BmaSMC9zupee9~*S z%4*v$vZ&>TLqQ%&=4rJpt^}vQ4LP`w3)=g5;pMiN%M$)|YdcKC4&~lh$NATh37`L& zn8F~J->rCzCX^hByJUScJqXb4q@u(Nh}_hJ{$uROVd@Xmsu)@LflihnbNf5$jVwdl zGP>U^BM@)lQ|dXafiiB2{?K=h-ysu{&^WfdW%;O1wTzuLtc!bsstFYhle8AE=`T|4 zFW=T{>DzAm*>CH8*}Jrw`Qs0O5EldbK444!bKhqLv^w6FHxafuA4eX z{*GR}M~YRmvM0*~wQyAIPHjL-g+cc_4}8%9_#504#C)OtG48=ubBz(vZ}X(YUY=Rrr!b`D_rtn zSx>87{n_;gKY!DYsGSQegOQYX@X`N1*IsI0H7qVK^Nc>i7d(^;BP2Zsx~<<#E@0u= z!(!NT=7*h14;@OE{_}qq_LsZt--Z3}!d})*!HGKYe{^CWwP^F2sKi^CK&)Ksm3@HW z0hIWmEz5TFGDN_nU|%aX3)ZgJ8K^Th$Pr1vHIuK4eOaKNMVOM3OD7pXaR2j3c42h$ z{tr`105R>s^_n^9nxE{xJHc1D+*mpcjep`W%=g`=ZNRvB5&J8zCv(000^+L7 z8@<_*@!S0DcnS>he6o489R&)y%jesG3v1Xa*z#6A!%)+lGtKEapf}xe>>7c-az?Ez z980a}*Z)EIXK97{&s?~%jB^!>b6%d?gsVJtz|}Mfgs;@dgYl3!2kFo2XGco;kxUGT zLRo6yg+Z_)KNR_(`~5SbTcrf)H(hIjf8w4yqZxKoij2k+5Dj56HT)h~fglhK`t&zP zo389M0#$0Ch0cm^F=(`auxKnI68^#Iyf;Z`Px*5G%3pOK7xI71U0bnS5Qlv(JTRMn zsL@<%7z{Ucssm{cF()TL3yO^M;-DW-2fbGlcreBTa2H$QN%!^XfBq*0G=}Q?(_eSPl3`tSq zr&oXTTRuZ_da#{&9&rx{Ns+6vh5qJG6a>FIXjS|2`&gQ)Y}GdSu{QChO3K|NXghpz z%YpF_`FB5Q0wwxD{SCU6#zo#c(m}DIfzWY@568YgOrTW(UV&fet{p#7DJrq<6)1u! z9S>x>P!QF8$weJBOlXdmWNX>qP&qR>WQLp=(hRC^5eWx5LVj2lHG5Fyr*iY>c0>(e z&Kjsi@zb&^9-Ev3+0(iA8 z%gRORCW0Q5kmH*bcnMtV-_^Jv6j=Q#7dw$piTnd}fF7W?} zk{r%ukM-t`V6rv=A|1rXy@KeOFrwQmFaaYNbrcK)F2Qv<_BKXf)u5Qr@yFjD1h8vL zy$=1{QUp_dG)D)J#}v6B!cz1T?FK<;J4!%6n;{--ZR&u__i*+d!;hPx2D01uBp{{z zf9`r9Hl~(=0^C1SV7(-xI0eYjV~c1R|=EX-wtI>m^O?& zmHD}y09NWCQA8n7_DJgl^U?H61s)FzvtcJZc|icKW*X?m)WJJTcJLcvai>vpdORY8O*H5*O{)4(ul%?S z{*f~gCq+hDbz~He>^Y2~EJ_FAthy)uA{ofB4d{*rR5J-`hgzb9)(=S94M`Jt3biW3 z5(z(dAf3UO!w3VUlJ;N~gG_1??`+!BRN}*%b1x0v3QE3UhlExfCHwX_8DyU;1QR$A zYflX=YRP)j7WZBMl8pG}aY=H+LXoNbKv>?$SJuM6AIkOk5z>RV5eXM00ixxT9_&25 zbT-27AX*8KTTXz1=|yDS0^IaBkmPX*lD^94Zx4O>9m^NQ+Q$I9_;H&5+?t5ws)zM( zMFgZd2`HpJ$Lktcr=^2{pcSelUKqDNnq27p>O8(&8D4@n!NQ9hw_QacPP~8i<43~+ znnpUb_5Sj;E_ocdnm(U=fC=(FWERWV3F$>-B>^(Zy>`ol7vJT0k62O*M`ANLti?fI z5p-h8Lqk$u>c78^2j-pdJGMmiRqQCj<@~DuCH`yx$;02NfcYSIhnx;mxRX0&if+JvTn6K(cpD8V#7 zrCbCTTwd|Ff)?e=I$im>t7GIQ0c`~|X>M~~bks<^Af?!W>;#bWTjFlHfJ_+;5IOMl zSz$a8Ru807e9d&wj|=jK8Tu?Ie)_XO;=olp^7Lp=7LP{3x~rfCLrxy3nnNy^bzo$C zN$WBsV^E>0e65~gs`-ETS#GXgpNzUK*s&%+3qR>OghFAE>PE7T`&rN>*gL#^R_Ii1 z!7K8=``e`|3IOiN%AdPXyg56Y>}c__+pAIJ5>khd60N{BTow49GXLQQ@xFzw(Y~L% zM!~;AoBqeH#XAE1WW=obUt!75xo-dd^$ok)>@$b`+{4e8-f7iypYvbRw z0rb89=iu+(o$~Ka`FE%MyHoxG{6F*E|Nr6Kc)McNW_~SWU{1#P7b7Z>5t(wiz+yX> z0w3K#0ZM90*Dd}HI^tOSX5>8$O0IM5kl3sTgB70otJgVKd2Ch%SPNxdMvKJ_A$}^5 z+p`h?TTL{(>)Uw(K_M;y0OAqvsJ}M?+#ulUsvjp!mjG5_dHPEDuWlXwUC%+_KXmJ; z2Xb9~c!k?(=F5<|{$M{L^Q~k3`e`(4g85SebjX9b%vaUHC5`<}w!i~$R<1)9Yswp? zOdvxhb?1Gd7Xe32`abZIoel#u2sNfA`c{{V8^&nqm8aMX?thBBOs|gYznkC>dc>W9*6iiDP(ym5L6Lj||B*g~LtfPe zPgR@Hih!KM2_Bfayv4~yV*uk>+||>K4G_!+mTZPBg%8CUStR0~t^oy)xsm4S)_Q6) z1LNifKqFcNuzAOHV-ir)&E@B$y>|<6^E4)Bb%L$xlH`syz8dIN&lBe0Qi!-gPJs9k zgF6X4^J4&Ss{ybq>%1cY9=keB5r{0>1$Tcj$0-bdgD5V&0GEgGn0;Oq6n}Z_E0!Mn zumA0_zhSxnQ=|!SbjdnU36_B-IfRXR0;_Z)MT4@pb@{0dn zrwQi}?wVTg(r5;6T$7ZtqbXoY7U*h~+Vo2hc>W`w2E1kRYc`_>0JsKToTl778|v0l z(bqQ%k(zp7K`yIlrQP9_H{H#SrpE{-9<(Xk6Y6jYW5w<7U&Fjs#UB~2rh~*?4PwFK zAZKHJx6PTVAYqloRay?8PG-S)kLGXz%wZgZ7qt>b&(@3zz8ku0mn+G=-V5Nm>pun8 z0hSZXFBQEetdF_rI6yjz2OKq``>6s7Ozz^T`*;nU;XUj$9mNd*r9pa)M##r* zJuo{?)5mLC`NYyIX&!aE4o2#KQXLqP0}Ej-|Kx7W5U95HPS!Z$eVzgGcGUWuJj^IA z!;D6|Khqe{+K`5%kDC|@m^U~q&QHpbL35vuVr%VWhP_zWlw#h&tG(uvX-FTzV~d&Y z2dj+o%xx^4hKI`cWuLlOkfc-i`qm80rUU8kQ=&^80dOx9+g~~<%SU;e?yP+D`7GAL#pU^*O=7vL-6OeR07i3;rH$WIv%D zv><`Av*G3Kd-Ku5Ucs94C-*!O6fn|?cNSX;?+ zNsJ4*XMUB~X$E4U3h7^eYD@vr4#!^(3Eu#OEi3So8KrA;b;lKDNu!(Vk0uJ#slEga zXcrH5ziMJW*7KBLWw)Rk1qGCAz=1pJ{Fu^1ih*Z*9Zcpu7W$HZuSa6Wn2#`)PPi@s(U#2QnL3DUU}Idj&@Nw= z+B2qBMeUWn=m$22m5vkL6`^K;oZku2`jm+@Nf6LXDIu_|u~kTwJP68{1EL?pZh8zV z*Q+?zMaa?AjJuBDM6yRpcuhb$bldttNeAT1`AZ)_nLOO9g4&PNp`10^Jtwn|vL@gH zGAL_Jp&2e1!RwYsNo{iW{nQf&euU2xn4SD@r9`*sd9Jn5!gajOB8h7zQo z0~7(R9^X~exuVT+Qj;~;Ypd#ei>xYJB$l!i}B$>5G7X&K^vKo*tqq)^@?Il!wbn8@(|8*>BgRP6C$3UTdeq`y3|VX70g3>c3OB@b)-U8ibc%t!32i^Mg&x zAeF{v4<6E+ZW>@Nm?RhPj;6W3CccfKzcV8i?syEcJ(kk2+JeF7htc}v8ZxaF92p0| zBKeTxhAV4pd?b~;Wy8nk+TGI}7fmu+>%b%k+iZH>F=U0acBjj5DhiRNJL|atzT~g$ z{68{q^4FRt{jz*`a2>UA!~?gun5`D8Bl2mS&QD42X2BsOhD{Tj&E^Ww=nE3(LlFm zo5G&zv($rXbQ^GMNTlc+1v|Y&f1_#9d5BFk?1a-93MTKGsT;13AhX>V;p~!57loF*>qWC0?#WSE%*ki2(g)HIZF`Sl?e^kQ~ zsR~}!m1*2KIBn|zqr|zJ)WJe~M-z1=6hFi;@)XTLSyXub3Yv(3vzF z5WQQpOhY#OC%PME`%K zMtdX5^wN5~-u*0mg*8X{OUHlWk zN!lEg@U{VYBVP?#xpoTi@QxqM5r4R#1#xd}b~S}IyMYyr0|v_fDqjE!2FPS{S3P0R zcVpGM0ygK;#x43Gw$Uugp1hM05D8TQ;aoK>%9A+|xpdTFYPcbZdOc#}4WdhIKq-_> zCMY@gYAvV$mGzR~vZ8wM75rJn!`}X(;O>B5-dt3f|G}ppkiB&i9Co^8fr1G_-5pX@ zp2b~j%@JjD%*P0`VpmywgU6Bzk~R!$mD*=YaT<37SH5IMzDzE=B5dU|YIIsKl(S`_ z67AUH)3kW2IwK9}69$^ncquXgFSyx^QVrT;w9}9Vkbi*A7EBSMPYrDvkeF26;R6&a zZm8TOKHT2fpOH6j(yy8%4+%;}$EM!h)S<=HqaYn*FU;KRc`Si1F70yVW~;hu@jc*? zAy+peY9vuYpk;v&G&4bo`1oYItQVe4=&dt{n=qQ+^R$aFPD*(NxB4_UO^Po*l^P4{nyDtKm8Y!1W=iPg$4^Szoq=hzdo>yC0484P0A4feu1T$<_?Y+%M`VS2d9A*bJ)YJG^&-#9&>3S# zC_qiK*+{RW+V9L%4HYRlJnDXg8%=d3oXxWV#;MZNk~_(GZ^5QiCQ`G#UGPx*Gq&Sa zvkiq-xqJ(`w`V?OzDM+t6yKkpkGZ~CFX<8wmi406I}>^6P10&rPFCoF{gw4wsWk=V z^`5T~yGbyx(COX#JErOju)zDlJNgL2UFHjlnWqI~XuB^l935N0+(VWo!i z{CNCnukGpYZ?S_gJ@%!-F1FUOU?Xbp3|z5kK#AzwU^^WGCI^B(B*RDREaU_yIIrf@ zQJ%51Lr2Fw{0Tf&C|sygHi0vjC87Q%P;wi=JXZ1AIl&+%_M>qhY!_B~(jY*eZ4`1`f=9M|!_Lw~aA zG`N2}nN{+Rh(?LUN9XOmuaM-tWoNZqjyrBoU9`|9?taFzt00w{tg@E|Etc1Msd|6Z zpfV`G_Tn58uRz(DNN;A!&vS)KJ3gTfHwdO^mZ9(aq%oC(5Yw)5F5pNpB;IXe-5dZ$ z8;ogtS3TvrJ5!%q(_;&Vk!5%UtcO!sNs!Ok<~DU{jqLS@SQj~aIjLjXa^d^c44K}9 zh-H0{jmDH4Fd5~}!~w~zVA=*)MlrN8D5?$MA~rFOQFlijr)=#$+%2qI5uuvOd*NAr z9Ql218WlXda#;Fn1kPwPp?fw z4fzch`zAx`lq`I5>XfttO{uXOrQ(h=uU<%Evd{S+c%H+TF)5(pR&M_O435@(>F$04 zXTWjp{iWRj`s%QW+!nOFjyi4!dp7rv;f9N2X3h7|i-UQCi@1>QJ$%c*sdx8@xg6WwsyK(hcfnJoE5U#{9N~CJ-J!1LJ zWla;x%qz&;$3S5YL(YLnqqP?&!ZP9dx9+=W=))$#c}nc za(CK}ZD8l5>if-(yRqZvb(DR$8N!d8!etWUYR6kFhIre1LhQ@2E+fDZygkoX6ufDk zObZ}yqR<{l-}Om@W6_BT`CSf*#N7ydaeF3cw?K}ccn2!=>?JfOv9U^vA-Ely3>Qa9 zN4sV!$IsEd2J801TkEzeb%__{MDOr7;xk~NShm)~vK#P0P$} zlALc}m=I)j@C?zeufLvyuM(ed44xdHJXv$Aa6KN;lGDHo;C~jdDIsO$%x}8ZD~K)O zGV8&@##*q#Pw7)Ppl_*p5ICGfp{<^~V&&7oWHhDQl6h?~dIGA@T`FS4$Aegtp8C9n zw5<1S|VZfDu$SAvLo@@QBEll(_A&99=;&wwl6mk4%T_MOn6Eg-+FnUJ4}A<{@*->itWi z)>98G3TSB&IeBvfF6Y$y18$Vm1qe!#>#vzne;~_JhybF=C~rmF#mt637bfpWXAy5_ zz}ZCMkvrQ{B)ww?gX2?V>6@Z_UU-*X%xkYSn=Z0suy`IdSEat>ppB;#OF4GyzC2eg ztB&f5akUnxWCs9uO*k_3WNg}-#G}vMqTIhwYc&gKSCZ5GOe1{BJ|~HjE2%h7Je`P} zX(|)ZaD4&6;v8>L6jvD88B@^{u+VJ>Ynz~#+LF|lyJwyZuw_Ck*aj!vuoWhMVl!G= z3i1IKxbtV7wXs&>5=N?s4H>uRA1G2Y>0$!>q*=hS`gWNn&H`#v2vu(qRlLy`ahER{ zC_T)UPlw%j4#r~qO`B@VUSYHhjL(Lz#@Sb{uO?0@$z+XH$!Z?>VgjP7j`yn|g4p$)D`X)gkoc?j; zZg$)UMQ}RMr24zc63<{|gm{~@t-MMv23y{A1|krKhuz>lrj0xQcfZJrgzl#+f?r^o z)|{1_mG+6)Zrl0bmA8M}@o3_{NU@FU9~!KqND@+qX4pEFPNtyD3C*F1j#{08*%tj> zHga#6bb3V@HhBqsSbJ=wXy>MtSd0hClZLj>G;iJ-sVj5}OQs{YS=0~x%HT83**Y3X zK4=t|bc;0iEQhB9dEGnuIFor6du>$5n*5IK=^d>EqT?*2{peie%t?ove~?PN;Y&`K zmh+*cH(q9+Ja#^uM5xx6xwxN$6n7|?c&oQb6L&KI)+IhasK2PWL3Vwy(MD#e93Z~7 zhF;?o6K+Peo)1?%3wOOvPZ0R-@>y;dQ@wAL-NtXgIh$KPJ2m^e;meL&`;qo%=I7|N zOE{G)dp=|aU98u%(Ucl~uAhHaP>eS<{N1_KSl5EffhL!!(}d?6S|iEcUZz*;%O)S~ zk+-Hx0owm5?e6WN*FW4LOUpcGA_^UVThBEx&V2(%pJ{o*2fbbMF|dfl;YNDogPi0v z3!?VE04Ho?K%#XDcEmrW$5Wy=)`DO1C3*L8kuP2VKprjQFmJcgst6I2V>!)is?@ce z;WuR5U(H6lJU-WV7&FCv!%zF#zWQrQ-n^5C9q}7aUF2cV#ER)b5DwqiXraVHB>)3? zA7cgV;wtVCPwirGPYq4W6VM+pD-)cI8oupy0Z&0kke4fWOFaqCFDUPJW{f~1D%_i> zhUz-vSymyQaLsKXsc<_(q1A=4kCkMq!jZ734$M`^p=_W+Ch&x}^!}z};MsAF<=sQ+ z^LD}Nj$paA4l0W?R^vR2Zl?ve#l^}H?jQ@cds&jQUJVG zwcP(8oIYSWo?789KD1Od$um4ivxec*)#u%P($6r?CIAjNr zK>8ZdKN~mue&m?06AmEcZ>Xj~$K#VoBSH3%q%^{4L(n>E`Y}@1Wz&`&j`Trvy6V?? zi}4x{2)75yzb;1%i8&2jf?1HOGS8OD*jb#6KV;y?oqIFCibCRfe-WST&7ua-WUbgC ztt|8K)Dm7LRjk3}jkAzhr$I?RyW0`MJ2m{ zBd-vVElg*#^rT;HgF>`5qPU5|K38>@OT9K2{}^|A-{SEgH7~SLUk-r5K`$U6m}du` zaIe`Ytl!b30DgpR${xJ3oJ7nc#1NFdikSi_F6*80v`%}onLd^XRZ=q78O^i91eS+CyY;O3bQ7K<5qr z;&B5ukYv8-4rI#IJTJa{OtO{XtDfTbUI?VV*;k%8j;6N;rLqKpVDYI_=i3|>lLxxq zn6D{DNX`*n#SiOc4tgTe7z6t><5^JG8qB^#=9fIGv%uxeR%$PC;R$iGc(3sei2qQ< z%uv!W%7=K7x{|QyF(4X89@Kkr!O%uxWU4Rx?NzTFSRyg>nw=&NZ><|IcK4d4CRv2O&sDw1na0<<@*spbY9`E z6#InXdSJG;0`Bv~cYJv64tr?BIZ{=9GJ7d=Fk>~zXocsf_>pvd9-?c(L=oqkMNk3dGtF@8y#oDB`bV~Z!~L+DR56p_0e7F6AF z!>QednS*+h@F9vjNfq0xaSxQy_Jg?;SBt`VzRL5eD=Za4gMvCa2`$=hn3NVXdlRll z_$otP*QIu=4ArsFq+IQfT`$8%O}1CgIT?B$Tq)Fg7A@HjhGJ_vbR>deQA{n2ntm~4 z_4p2m%Z8QyXk4b7w{iyDP(Jz;(#Vwga=-D=yA2ixVl0#wn(iu(szVEs&7-#SdL)}` zt!gO&^y{dL+Q1Z<&KVMWaz^e~}HuSv*H2Bvi~eJ!p+h0ftkj2SB52!vHo{oDhI*R7aR za1J`Bk#5$h-#Ll1F9nTdbaQVy5`ysLOE5wxVmfP z*>oO00*{^s5_Wa6-nn%Yi#ZcEMnI#7#&1G&bd=#NIZF$RiX-RR8}N{`aQH^$>P4i%Z8vv^{?Cmd#3WL<3Xsby@8N;d_sdiJ|sF_={maYAh$y z@&XEA2rc$HYGLqIn*;VvKQQS#VZ-UlH8#jJ^_+kd%EBl@>~rX;9qI2L9O{qC8z-EO zvrqs@=9p`cx)}4HtCSHQSu#@+KDaa>Obs!6nwHF0fCU7qp5KSUTJdC?rw$0!Mf5s3 z21Nrm8fIzKJ^%WivH%^%}q?tNnf8jhpK#bOtD=Z7sn3OuM(0C?8@kguk@$; z(J_QYJ!04rQ|erb6%wHLe|<7Nr{M%E$e0Sb7>?1ymYsr-iBHQZnX4m2AiW8JKT7-H zSUjc>g_%pAOG=C9A#-I-vj_0=t9?8rt^lb}Ji8AiTb3EYD zme;=wgYh;mLS{cNrI!Q{Ud2g=OF97b33ASsq$degQf-gX_w`N2=|tU9v`>SnG0gGn0ul0EfNEI-C! zx)dx?GgO9lNj#jN2VzPt-8FB(U!*G=Zm+}bhI|(_1s(n{GwhJeOnhxE&^%!WRo0-y zK_c9&qjd&B2_4L_!MUQKS8g*Bdi{oRR`Lun68wU7U&U4o{Oke%>_X`{S7X=l|HN-Y{wisYh_p01yMr9`y*iglZ=d7_!rR!pBsPrO}DKw!-?+7OV|n(B*t4 z-YrTtr4H(ooj-AI?1--!3N|Ewr*j z>&x4LwRfB7|0C9EwQI;Jjx*&VIvK|M(jz>RBI0EwP0H^c?W9|Un20g*Q@jeJ&c>IK z`}q9yweY8X7_cwZFQ_yfnwFT0zy1*z>S%3?YE+*el;QI%2RYYL9OGC%K^))qAmkAQ z)g>Dcf##4g+NDH(Ftd~(pzZ4mGDa=w-MUU&=v=F82|N#ro#7&0aN(PJIdxtO~pf+p~DGK_V?Q!2fzqthuGwSbYoWDzFDZX z3ON&as1U&=`U+zHm?-06{K;<(oBVF}8H{O z#<74~R+B~%(+ldS4;NDytPb1PAQctaC{q6-(eeqQ4oe2q8D+!xGqd+QKMBe?R13rL zNYNM8yxeA=4XgbgX;il8M?qztc)875^$s@>&zvVp% zy#y2kx6Js+P||aQ@nKw8idj<*Krdlflpy%flJF?0nDo3UUu#sQDStA_3kf)m9vtn> z%l+6d4()ydUuBs4k*>E00>JdypUtYS_xrbB*+BS^z`X3VX$`7(CQ}+_me7&Tfp$O# z0v2ll#OECwT(kGIde}XHAysN&W1l31%78Mj^-v=om5NsiRl$bRQ3YfJ7>N!_t*ZqO zD4ZFUtXE1mDHA_O^$jo^fzJpV?$4ef9`GxicJGET z5*Rk@`^q9hsW+ANNrbBdou-rx={#7-sUAoze>*j%*yN?tG6!N~nGmVh zK^Jy#8t4~8Xum3`va zf`(7;gjNg}0pu6yK2)T`fa8HHdPAwL!pZJg&BpzZr9M?06Y|*kpD2E;_mBkrH$u0! z9gKuXL(psBx(=+yD?K=vjX>p~=xGU>AMzunPBU^cjM!)rH2ADQ$vUh^6`?x`5^7EZ z8<9IsP_H8zh_#!=1&x4BcWKIh&fmOzqSLVfX~*))IZxLqR(y=(&?)w1@w~W~w!mt5aOfNh$B0Zma=pgf3}+{8sV{j>kkHq-N#!m=&qA zG&?{`KYaobAajPBToFt^C5Md$R%PE7d|q}J)VSy?5QHwc`Kxb=L?P%zOKQ^d6W(m9 zR#~%20~KF@fa%P|Z|H$NlJymy)RMw*X&5JocF40Vs(OLKmOm1+HLK!&bFa zmEM#9AAI@Ql+pe;;td?cgVgFqzBr~p!oja=pF{u%i8PzYA)TxB4x`05%`86bfyS;& z3n>uz6?$9Gr7vkxK3MKDEwjSoR;d&rjK|+nmvnXU2Nfs*>sws<`rE zSD{aK9Baj`qbal-+x9N?`g04;ymv{-}cAlt-%tKaeCHZT8laAwqFTB0HL1 zS5rXob68s@!o*#;+G-kImUpf!-fTm9NAs7wH&WaMF$A9ltd;S}t!np6C}+T!S2^W* z$siAt`GE)gRE>jjV4*C!@uVk``^+heEcxbW79#7L5J zV$G#Y#2-8N1_^8L<(cc?{d98NNA@Go&L2bNX~`dE911^bq9C(DbWUUCV;%q`&&1Z7 zCH>m6RrvfF0AWNBh6b6UEYY!25T^5WFCn1)+846Lq;;?f!IkhStP2UUmdMU*Ng*#R zQ%fu$RA>${IRcnH9{VzXUvF8cm@|M${)2Mm_pYzo2EyUz5w}2WUJ1k+<*oP#j#)s; zMv7Q~n)M1;~xgK<9@@_iCg@3un3-1~UMZ zAT!*V?=qt6q^5-*0T$rkX9(63pza0?V%iOdzFTTHF!`ep#0Avh^V&f5`U0S{LRjWz z_6I?8m>5w_zwDnawfuRfGn5b%b~X*96L|4e8ksP0P;5_MY+q4jZ9rsR&H~BhZzUaq zopaGEBc^;KG-A5d4<4KqeFypkv|>q+zBxYAo=G=DFzTbw>kne(8A|8L1yq@4x`X$^ zd!sgJ(lUxApf3}&7_5QH!+BpCAVuVMk_YVS+wh#&J(^kRI2DsI(j0LlpD==uG>y$Y zq!3>8j2}n4ei2?_4ZD`vG&^;UyzXPyz#Y_g;n4O$Y*IzWmIE%uBkr>!<}Mv}iZWkR z3|>x$ztA4DEGSoR_e_?gvRCr?idbGYrT+l*^2!zg_gO1OXIDU^TSFx`{aRvPnC~IQ zy>>UbYq1|sK**v=B~O3xxvI5ADpAyEur`-6BH=$J5NGx7m zG!rH&D|m$wTecn$-zriWU;B37?Y+imc{xNTTH79#3jpm>x_S-y)Q-nI*@JeO@$`L* zPzyFe(rrhs6IZ*X^8q@Q49w8!z44NDh9JFdCI+I>k=A3n>*lqXFow6+ns%#0k`OJ8 zrXu4u(3Tj9xv}HbV8hFbv#Agror_aweQFxDhdFvSM>aRyHeI#J8;RR>UFA}dZ8W%k zqOAs|U7lHIa)f#j1561obRaFT2t>0N0fMkD$I;QK}M`fKz5s#8Xe^U$UnaMlR%Hw60!=K)oqa88rUVT z+gxvO>9c`G%O#WjM#@>o4fws5+PfHV)We#gDpL(!+BCdmgex<=A7Ip>Vp^kf-T>7} z=r;0_f`larLGGoKEo%lkmea66#b*#!g5Z__O}NWl^{CqPlH$fzvGIb8*B&7fvuO}K zb2O`p^h?_JofbAScz_fRN@CHG_+6Kds`?!9>v*o(gqphXC~L)|(FqBXELDf}LoE^c z65FjSJKhUn>9lBc!g8K(YyusX2;%T!$Dx0=^;|o<&Sh_-L|Z+CLU=h@_H0-CNoZK93?7hs>Prq$y^u<~D^9VA?R zv>4>ac}~Y?!VZHi9nES{L6Qi~`Eo@|GZ`Y_@A593YgEuarecBMzg0iqG1Iq9$->1G z09bk$DbCwCdIJamy{OY7w`BJE`o?rJTvv^D?cjUnx zK12TjTDT`rm)mk|*(9vKWb*ZIUj>ogpc8GCNcG%;ciub_ty%!3tE0RUkje0kI$&8f zQLoH~>*8)lyd*ea$%16~*Hm_`7wEgtTjfeLe7Q=uEV{NlWepX>^sy{kdcjseV5a~b zW_mPsM(!f5K?K(CG&c3QYHS)JK*_GI{gKoK^I}Ae%Z@m7grQ@dy!^`9NP&yK`Y#8D z+cV8gVA9HMT0LcxfD=ofh5uK*>x&G1^-t)^J)oyLT`T0d102>%-{OnYF4f@kpNbus za2H9PV3HO|opLMISSzZvG`qM?9{mZn_zziH0EK!1aujEP(zV0TjERZPfjEE*m0?}* z$vvk=PzNNR9=jZnKPbF-th1YlzEJl_t4_{DQ$XJ51|eJ)hejCy=oA?l^VPJ?8$8$! zNj`P3jaTi@HM|S~thYgev<_mfH3VdZM-WNgy3e^4Xcjz$ z;o9m-3h>}HX^YesEkl`h6wm~j#Vez>sOTi9ag(uUs=VXu^&U@cUIS*KcCWeot}?t0i_Sp zoHAPQk>wcSBeJ<=cj@nIeiJD+K5s=KC2=pww=%C;K7s--%4+@n-m92cn|%$}1R%xW zVtl}LkbG*Sp^YHi<4H>@_9Iw)DJZwxo7Gt{#L4ZSM3c=E`XvX>MWwey4Ra9!_P6}A zV#W92p^gn&6LOzJma`|ynezi=2%FC}BrtdKy01XTf-wU0o0Bd5tm!EIvtKYf%{V-B zfpT($joC-rJRie1*TD;tBA%I6hlhCwxEop=IO6w-t}kHoAv$rOj&yz3^kCPP>4rDA z82U7HPrV5>YpCug(A7hN!I*sir7xQW!fbfFM!W$cpuz!_4#_s~;8qC29d@?^CSLa} zkq8TkRbf0DL3@rLoIQ>z*OE~TbDY!%IBd|V*yAE{H+)DF=3ZhWX*am16C@I9p9dpy z5q=$lMxF>N9#IdnEu49j#1Y1(iv#;)Ad~@E&;C5(yy4kl`%m3#5OU-Z&H)CS_#}xn z@mMQp1r8BfDg~MLM@qP74|XX@KqQ<{b4>%m9AGbq4Ze7Qmd!;ttCl|C^=fW0+w9KY z%)9sbFi{oyCI#KMG7w~)Z0$_sZDC$j?u1#HIRdB2s_xnii5HTA+# z3m3MH;=UecG@}Su1K-*_$gI%&(H@E1{!UpaHvOpmC;saYg{qU)$8G$_xdU*4ab|P=VQ3dA{wX9Ys-^9J`-z)x%)4lj5hM2BI(5UN_lz6yyhl{P+TDFI&VrffUf)`Z4Q5Zw3%0+* zO(`J|10qQ>LQ;*ug}-WZbQEd{n#xe0-mjX=dRIpb*3P+-X+rIZ%-$A(D(7xNY*xF0q_K^+-| zFffyke*?JfN^e!f69j6ZG0d{mij3Mo{s?m})=`3) z?2k*7(fN3L1?(uyd!?Jru%IHfSh$PBRf#)MnnWcML(Dsf zuqR`aG~@*h#Gb3Z30z*$V!MHBlR|rPg+5n5<<%fg$BIn9ch&$3%p8PTDy6DXl=RD@ zPR>n1 zf7S3;i52y0nv9TqfZoA-_;HuT(gK$bM3_%4xARcje@P7q>CajN<#|BphE74O-xO=s^DI+(v* zypw<554GQPqs;y5*Ex6wcNK6MOH0da-L)T&%eBYQ$Zg~DXJ_X~^ydIRZ>81!{ymEK zBkvuicy)NsW81F0S;v;BPh*2^g9Lp4a*-V&Dd}wSOhJ=``^w@t_q9!7YCpBN1g?T4 zu}@Bn7Ag{QqgDdXal!x~)Y9*txtVBO7C-;|DnF;}HpJUAWC!q52@_>$c?IQbIc0Y= zFi)Un=XZIT>^@vnz_u}R-q*{}BpF32IY4n9qwTi3(0}`~D1c})!m=&4$VCIFx4;n& z=#{SkiNs4ZHI3`C9MWD!JXk$kOra5x8$0afFHT%u$!!L5jDz||@STt6ZWmsEbja8b zPgPnt^=$mZ7}+@~G%NCc;h`&;GiKgzq=-j-qbF8_=LV3Xvs>$1$zXwV$y`ndB9BG0 zlwF5z_jnSOtb)KCoLO@MDPjx8EHEtIcqW@larRhG*IoepIcFc!xml_p%AjW!JF>#$ zR2txp2_3p}w>hf|g7iTsfW6n=Ww~vui>Aq5S~BD3%o>lc$Io{s%@lZbvBlB%1>{u( zT*IlHyMe=~x4~~@G;zm$EKi5PJK>pg8{UrWn4>s6ZeBcRhda$LLpaGP9 zmHn3nQyHSi-fG#OyCIGIrHK~CWDRQ!j;?EGCFa5O;=6IkIqnOqFZ@#K+QdlH$K*<_ zjD79BLiUaad*^toaWC&D9N@3t62~Ursd*ivP7y4c2Yl|MqRFsS!7-*bFOdJM=l7Zj zbcC{3!n}rOKK8Q37R4tAC~&;VX|fDGcf#%fYNv=U>3SI{sJF!=M0MP~Yl+DvtFs7> zKt1eXWJ-*d7`yD2i7%_-6) zZC?P@RrxLx6mhP2ZH3!nSkRb0j!IXsITMQX3CBO4jB7AI-bczU2Wo@;)MZdepyf{H zly0f^f2~bv|H#m7aKw$Hl0GTSN$g6d6XjMA2#8BqJyJB^bH0+$&Q!eElzJt4V^9SG zPd10#+p?o6lf`poCe`~{PqA$tG-YlZd_HnE9HvwolzCGgW`A-Uwz^zw>p85i>Oe14 zNiTnE9HxCEJG;ol z$H^;&$(8i{9sv1?hr3aLzm@CFagx+x94It8{`Jk>)w>}~i-jR3!G==(ii_icu18Ep zsF4$C^2aAqI$67c$*O9Y;tEixAOk%KRE}B96PNp%`J+-HATWmkMk^QBZ2qGC9+1Pt z0}PgjS`W&9)aH|Y?^>(GCPXoE{$Y-g4?THw{>szCF*I);watIw_kN1~B%aH24B<6zWu@qOaNbweOdmlCwvz4U&{?hHj3Sx+TxabCl0Ja z^&!hnC!576d`Dn;=xIuOj=pB|QXW2xuYZi<%`?v*rw@GuZr+S&ss~np9k71s3fW)A z^(p|#J@q327wp3s@vr`pFnG3a*nK(pQw1&^O};v3*c({7w`=*UaD?w6yPDD=%Nx7T z)j+4`ULk*P;X;V_GN*nzueRvcC8~pd=P569bTdj}dIG{ZX=wLl+Gu}f8f&}q(5ZvJ zYrb6gRZ)|nn5;NBVx7^?j^2s_f+gHRoFz{u45L5!)02$LGT?HGl&#Q4vwYs;lkn|s z)663PP)$e86&!N7``U~$j;W$wa*kA_-4!Tp+*o_^k%4oo)q&)4&lM{v=!&)W_dj3Vu)4X-soed*SbSUmIm*jD^8HL=b4u=}+g6Tck zEYU|W1H;axOOQC6wGj0HKca@A8aDlqSTmo9?^-(fb@#h|4=J#rWWjPG*ha}h`o5}) zy2HOrBk~t@32|j%U2ynE+mVthN=fClN(i`L0X)Zp7cvf_Y!_%Wxqy&x8 z@DG)~d5VLMCS-~Uquc_e4NVX8!V^7#3o!p?!Eicpbjp2^0we7PEv$^|iZ|0>l8Ja& zfadf4!5}JSxt&oSlkcXXWWJ*svoCT0PD}I?m&13{0&4Xs<$D5$CTM*kf$K$#x}>Q@ zAU)t5&LzquSx?b_U&;Lm5{8H=*jhuySB}P-TrMr7P1;>PQ{Hbv8Oo8yKxUd#zIm79 zsvxJrO%aPZt7YN}i2C_*Wkpl%EiWplFvGbQNcD`%cBo9S2GzvnjtKekl$_5hM!|E77ZA}pu%FCvh@l)h+U9D1jh7!o9 z$qqW-^*0G1evX|K1KyOr?OKvQ#T{S2Mp2SBf1*I$mGJ?P)L|BnZ*NZNFv!H}jw0PV zmNwHH|C0JNUiW-k{?N|Q36xVBhlN2?UCIDP=}+loe>nF31;Ul1-+9IC<@SGRU846v zgG7y)k~C>2Nd5Dj*I!6W4Pk(ha4B0qJTXHQzPJO$n}A#Vlk}JMlY{*4Z8+&r%kCrU zuXoet0u-?x#z*gie~BNdx)N@l;0R;M@gW|4oF*g620MN|-6wthL)lP&{Gq#C;VL!& z+Ugn7B8g4Xv%tsKLzg-n@zk-NC;kx?rQr%*zYnmLe|8^CPItq@&n}H*sJTH_oRP!? z*^(%r=jvfRQtTG7KK`FGvRfY(ZDCsTkB<(<2fBD7EWlF5y*l35*5cTp+5p|DN6^3v zZsRNdr9DbT!}SFDn%gmd{59peA!<2`40kjDUhk1X-7b~G_W%-*n+avz;CsA|d;T#h zKsE#)>iNgE#zgu8c)7vrn|7Q=z(USKz|mF1Y72E(lkOoL#lH^F5#-c*|M>x;aRnpQ z00Hn*&}#}3Y&df~9!P&gkYh0#GU`=$FSisZm`o$ z!zAAClDJriKzSBe5PPthC;I38zR(T-X_KuFMfvsDFb5vZ3Z`I08JJfdGk{i)AmnHv zKD-WF|Fy0~$ht}}{OM-?^F(-Q0cqq*eEZY2`}w85hv(bWp#aF{@uzlcJ;wj_wwvhS zwr(-{)7$gUeFT5^dIOl_$v2FDm-J73+21Ao$A$hqrGGE}9|ki2@7hvUFAMv;-p}3% z+_nWrU-O6-Pd^k+cp;pyY~X zAg#v3pr`JZ>IfEzc#M-ct~{mYbY^scM%WGKxS zM?TYTWG8Rh*%6J9RwkDNFXe$F*)7I}hF`ZyNc!TAt8TZi7V>Hq?262&sU;u#@x6aN z-x7I#N*wX__vb%}y3S6XzKLEfVApxW{6hSv>G3In%#FTC9{uah*7LbNT;CQSat~&a z6F$7w8Soxjb9uXcFobLvp_&QZp_f?g^YLp+Q&AT!!Yv=!_0}h6+S=zewZZx0O33%YLL2oUr~(8};s;#q{xL2si$!{HZIzfjH)@TK(Ja zs~>=$@;J3;?fUntOE)1oS+gBk<@+Wgxh?Del-vIHJn5J?h_)12)qZ>41|JP1KhEW8V^Bw8MPAI7yVJ(I#dzF5B9((P%?lK)iwbZrY zpx}yalkZ?0yUMXfVlJWeN`w&bK3*}0_Q#$}B5#XkAq5k>ID5YSLvMo3?w=bj38!-L zHE#(XzSMv((?4J8FueZPG5oXNzZBe2tRG*#!f!9}u1f(h9`}*_ZykfG4j)8&u0@{y@g=E{o$A{1hbyt@ z9;I9(zGfdjsc%_LCH)<@I~&Q;*!f zY^ODy+&{TSj&%O)st@D9?|>geCErx_=EWz*)eU!VT{Uu)yxf<0De z*+JVkbiEfO`;ZeI1079b)VlyDUv{1J#aO0aFFXn6E-clQ=XWD$ff&K0F5;u#Ul@X< zp)Sq8FZ_3ff1Fp!$-hTp{VM&vbie%O-y`wY4*zu=e_iv>`1)@w@jZz88?F5cI{zMt zzenP4#_>0&`{^S7CZX&0;BT7$w=VJjXXWQ^-s|_NMNtQfm)(?YFRj@&8Wl${7J$54 zJxn`9vLM4XF94oQjA&38eeyJ+sQ!%Rnn`f$6(!qnlSk*=4fy4LF9qjepc18kpE~M` zd*&(rqaQO3HTtFqozKAxeLOf7x?jJdjx_!53!NeTFgM@Rv(Tj1v^7Of#=Jc=!Zo_t z$<+L3&eo_!MHi)jC^s@(TFCJxH` zi~V#^7^~g({R5;8z_Qz%t2zRzJK3srzdjWOMSC9g;}3r|pVn*eaeUu$ULJfY#_Hv4 z5o&31KPjd+2+y6N=hQl+Gck(y4LYCDoY_}Osz(QY)K9B=c2OUW%S5jE^LMx=1d50Wm9qNp6~zSgFxgvpFh<1 z#l>4iJpWa_Ma{JZA-cQyX5 z#$UVf%Y{(>wW9xSf&E>L|G!p4T9SglXx`Xu^4+1^2LWckP>--cI(OyCGJ^Y-H3NuhUI1vpx~1R!8p89c3iRzR?V2S* z9!UZSpnLlDrk&G{c#QuZVH?~m?VR(?OCUiOjap^EU43Katwt-F>qvpQzqm5)-KFKy zv1Qz&Uo2v_dSDCi2zvy$pOnn$nVJRI*n2NzstQHw$v9Dx2(-Owv#m>Cg^NW}(n`<> zrcEM@;Y}J09ufy5Vb)F@h&Jt2mlT#{&MgYGkw<5!Xm)$T60KIFNQ=UPo4y}GbqGWW z`VZ{^#r4oyQ}E}xl=gw$KsRpt*W?21$?HT2`M#V2VnhV&zD=VW=*4yNfNrP(WGJ6N zGC-ULD*2b7Wq42mrXdCq^7U|-ThgSY>M`{}F;vRRB9!BLz;%;{rjwJt2-AzUd8Ht^ z$ID_@icwvfbfuXY12xZ9r&14$G@{|Dcpzp1$d!&8AcLBQOnQTso^q`0X#MR=*3Y$o5U)we&wD#!#mkyz!svb2g4{S zea#OnNIQaK`hmcwQ)?QSlo~*tpe{4D^9EH8NI!X3Q)pudOz&KQLL_5@@y(;X4#KiA zn4y3Rn)w)?x4DWy5dAI_c%Bk~vsNf2wLxvdQJ9hQ)TyCfPg=17_hpnOzI>r5u4}s`i z0J#whp)hCNYsNrvV;4etrMWzJ6I7`#=fM;iGMCYe<;Glq!Nnu>a8w`o8FB1A-r;{8 z5sK-Uc1(VV=pdgMeLwsLbYkuYi%(Wg!%)W+O+@5q5JpFo(%b6q?p>RbT6@3;)1McO zdLBeCUuuKt{M(*I?S~AneF@9#4HiQRukP(5v&C8cLi!QQKNEq$7^&rjBU zI-FwbX&De>OnJpvOxCEpWtacAAvhrIj_1+?I^`J+8Z%QTWNrp?d|L#aPLVQGM4|pM z%vVI0pGwGQiB3gW%Iab8BHRYJ^rwLi^2}Uh^Cn{<5@<<|4jPQR>FB|9e!d=-SNq%2 z>n)PCf>;ke1$M_!ll`8%FBKX_Z19;xQlBod|I}*JxWdw{j}rNXa9A}B`(uqcMkeuU zo;)e9s(9W;Nw&!l*JpBo5oS=$d$B=X6~RlXKit+YR1CG;PpIyf6FBNCs&AczWsn`oF|E#U7c}!R+$0A>lW@Yq;F!O11l<`^ zA9AiR!calvKcG#0cU+{5#~x8dCiic5xj>os36?)$-YT%>(b-d>Ne_bisb~^?!CI~v zF#JKP382@VBp5phzOqlCjRGMaV&FOnwolVaIGD=pNZ!D6b6A?QAedFDogE<13`6RV zIBIJ}IX*Z6e?>g7{1wmOM<&d+kb2}znj-l|BtOFq7%hXWU=j_+;+@C*9x&u_YjUcLA#z(x{Zlcwky4CYo`&auna7bqp>!Z zN$VyJM_(F@?qzMy-v&e5M%yHTL#6>4Qj%llJ&bU3whC<@{a|O}CPQ?^!#u9YC>%Ua zuO>v2brjUL2W`EV+S44gBr3CBQ&7KvT25w)T1O5ry;VOQpJy0171(z}CAJ&gevoo?@g30Sj?IMCia98JM5@IE$ z!JA1@8)a{%;>@Jkm`ty&yDtT73a>u$G;)&8}XnkV#g%OldJAf-B|PF_|Fs~ zE(oGHDt8$zhFp;D^?zLj+E){q@I5bG^eyirb`XyV95BLwk9Fv60H$h68MynF+gUue#yM8_D3KD83g)ACg-xmL3$_P z6}aMazntA*SOmM%J_Q`%;6u%`=9kUg_IhE`?zkVP!0nWnR!8_*Vd%Z{p`U5^j;O^8 zz$vMU=(^12&xnM)KSZ;#1|#krTCO)^z_w&0cxG)`p(L$a4B+HBlM#L~nThf9>+L66 z*i(Su@Ga47w~$;R=0#yo0B=3SM^7NE(BeI^#1d@{cHV`7&f2Y~Yi9sc-%!@hQDU_u z1!dI{nzd6KfdEuL+$31!mA88lsNa0_ssRr}x^6%*v95)) zLkGL*HsVvgW|Gc7iLtv63|Qibr3lJ@H7WxkWm#(eSY9UZ?``vI<~U7%F>wygbwgw8 zc(Ah!@eb{w1fZ1|SJfPcFM3{8RV?2X>?Z$<5YG`4ZVJULjFG(;Ouky~%;*B7F||F) zu%jJ9v9pW7n-uMdFTk8Ay1<(Bv2Z5E*1E$wpMrvOt9@A^UG!~)SR(u;M`+qiv%cv* zB8ovbW{_mVTG~G-Tr?2`q<4&}4z9^3=V48+hOhYI8bVuSu1m{Mu7dVMye>&V`)dGZ zZ3m*7+Q1Qb_`Y#`%RCG3?((&6X-a%=mmTLGc%5^Wl8T{8t#3KMrwcJsND#cd*(;l! z{8~R|!_Oqb=RO2yVFf-_KT!QYils$JTGGQTdOpka{ zG3apxISSpP67d9U^6@K?J|7_gKFKuDj| zPqr1>`2e0LAz%5zZhBW=0KFGb{E_JPrOzXZYOnZ}YrqhkM_5~p+@>PB#EsYV3;OrQWF^YYHNu61s@z^2(sZlW?&fB@hE&u5TVTe8i#UCc39lFA zW$VO3M3TU?$KJNLfydRV|)x$0X&IxgY(c z6J$dA@<`=Sl&f*`jq;U3D+rF>nuAkStr4F((_qeoFhzg7b#_X9ISIO zWZHeLZT%NKSj*gxdG+M!son-zZ3;>^+C&tIW7^QYtK3w%VBEN@WPWM)+K#(j6XSm6 z#SVo9_t|y$^+rSJ`z*$de@sjK9}hG^-c|DC`$)b|9UVkfEcL)m(N3o!0>lqUq~GAQ z2N=9Av;pZ!cyI{+J0qC#Z%BSr%Uwx-@d2=296%D2L0~d{@5_hT<$qnp!^aEp#oE#V z-%j16V|pv8%Kz!JOmct&L`&OPFh&%sV=l!J9N!-Fn=$sa*%q(7s_j5xiD?ZC-$@9s z8bGN{JTo;Sh%@*khXIgjow|)=46RkhM|FA!4nkb=WXJgYo$j{~dqk|r)pB`oEYnB@ z^5vQ70p+S@fp)T7lVuB+FDsB)Nh1t0n!6hf4~^Z)H8KuMqSBSKg;}ApOi1EQjrxL{ zZgI$IG9&6!0UL0`PcRVJ1SL9vLwavv>rtI3>_$_ZzvuHcgbio@xts27_aj`pK4yiU z#_6BDZTCdYR&M@)_72Ovm?8J}_D_#Me)-Ob1pTLpyo)Sv9u1g!Y?butS)og%FV=sn z66E0A7F^qmC})ib^?2fz?xxMVA^v7epd~uk>0-#cOH7EOlc228< zJR!mo8%Skd?k*yk!D)p_W#Jt-4Ee$NaWT~9{J~SBi*21#2nW^dQ_MIX;Xql6yrb94 zdUxq~0sI*~Ul8PewF#?ZjrJ|=|A4R(8T29yEPlN`iyWtS?Q5RDQ+x`_Bv(#UoIbTb zYxo=FQdfMM*>y%+=k+n;pXWX9c;6`Px;H;3TM*qlCA#W7GdU+0nsiWX5;6Zd4hO%N z5d>0Tf+zD}d>dyamf+0&3zQyn9kN)IRlxo4CiX|o;X)%=+R4}-lkEzc-F*+#J{AqI z8kMG|B->Z+yL~B%#Zh0;!(3APrup6p`Bfmou?XjH-oe-xaG`!2C^@al2)Zd|xfr9K zpxUO}P!ymu>IiAVy6r)@VH@D+N1%>b^cR97Q-kPf+TZtLmWZBr4z)eP;d#DgpRY-f z2~gUt6FKw}gWE6WLZ{O-NwjIlU1>v)rwdD6YhKnmv+fX9Q&k&4iomTspSQNU6oCsr zxHxx%ichZ60yIjMnQd|}GTbtA!3`Jb4i3XL`B37C$Qivn|1@!8eqa#EbdAH}=1XQl zuB|aMp!Kt+&YOUyG`)(uX#28ZM8S4F4D@_wB@~~S)!=`<3dq+VL3o^ZcpKfDcT@$A zOqkvHJr$mxxG&Ie3?Gp1^{1cYxVxt?XbyYx{4M6AE(I@7v|PABH}2;;YNJSL(Ziaz zx;UH>YK&{2R!FXglP+}Ipd+V&`S_${kYT~N=lFYBn=Da|WZI1-ZT?tllbI45#R9eG zT}L^VGocRl0+HGnoTkbulW4c5NgM2Yv;`w73RDxXNF~A)J0?DD?WYTl7tTii`YYQ5v z;YmuqFFAQH$l@>zLD5vi@?w^rE`Llxq+y~;sO3DXA06n| z6)-26E28}4r;u3qK?ud&_Tu!Mb<>VW*A1+|x}tM6n@#QYME} z+eh^CP1^7sAtFpV{&n!UVVJ6VveGTej8E9Vff5#~NUi z{Ws`PD!M`3#F$`G7BycapUPRZzYv+Sguc}_n27;;@M8Am^-lzg{g)ZeSrav8!B zYthR{wnmcg<|_#f;*`CD*|yh4ZufrKvvplm@15Me$zPLDtsF7OI?!gLvPbMZbQQ0r zw_`3o(v|0tz28~DXzZ5-D(pF}YH)T+%u}4sM4mkAUPv|Kgbt}5SQ2!j8-HJ3$JA$$ z^IW@kBBebDbfeh3PEv0xgrr6F_9zfO4`xKKSTz*glk{I20zuyDl5IfzWZHJsWWNki zm;0!%^iKQKCT*V0rQ*K0pm5H1hCZgJ5g9*Xy;<1pQ3K@+;4>6V(ct=343&Wz9lCAz z<=;kHUne5OJZ}$wFNQu;V%J`51ut2TcULNoMlBlU8yYc>XgX({W<)4Il?J6?5n|o8atj#J@2Kmp{b`Ar9o zWrm~|WkV_{CXhR--ez&u&6ZUdc9=Lx;fqQ3XV<*Rucw%Ng_d`-ye$+~T1T?>A9@)V zEJ_%)FgmI>+SaprXDKB;s!gaA%@aLedg#?vll*UWW*sj(Dg6<3k;Buwohl~mRD(Dv zQ0dBNtV?H%po-i2mMR}%z{z@f%gY<6_f*EAd~%C5q*);qj(lOc`!Z zU;XYDwGg*>@rPTi+W!qM(_v322Sp#eB!m;NK%CL0WJoMqdDPNhouSNQ^`;`%?Gr9{y;r<{#0yeo5~s6 z%P-sPFjlQzOQQ|IDXZBYhPun)O1qC}b7OsaTNFZ-2<>wL{IaP~u0V3@k401l)Y7Gv zpCG_I??33Xg>|=EXN$j=XTMn2o@S}!UMG&k#*;l+&rKnhxx_H!AEQNih84EW3YGNP zm-c7{r~^g8QA;Wxd^HMOsuJ=i6YNT7BBAvXl&?^*f|URDvtHWyQt={PfS~+a*(L`P z60?Ms>61E<$~(90g^98$DxI=?ouv@wsMFEj_L&5Ey#ZR-@Iq_7-$^v}t zSTIlgmrh9XgY;w3;bf*chhc>GF(YhQZw|>)L>lt@IbUO(zkK1u(Z%7GYlj-%3Ys>vGJMkOSKls#Em(2*?JjY`PQ*h#6Tv9=H`Oxy>8z?xH$t+B3N{ z?^Is|mw-Ne?T-}3mh545*6@2glHgJ%J4pVUiQI@?x4>u$}08`ka{)^zs*diHbO?ya}A8EJKt|mKmw65+M%pLxaOyZH$LAG zjJx3N09H>&0d!oX5D#jt%akWr{0;J2agfIO2t&oLE+Ebilbf9p-yI9Ucr8kW?(086 zGG8x-fpvJT=w8^jF?(xjo{~= z$9k#Km#;dTXLDJyPPz3O;@_Xs4YG*5{-^qi7Qi|Q1SS?Z;`LC5uKN^K=Ggc`>&-eS z=>lDIbT2woes*SEQxY%%o7j2W{V7c`zX7*84T6B;ZJOln%O+WK;`%MbFCE}<{h+AM z$S$mkY}>gz=HjhIC?82~WTw`JI<)~!5vwgb_?SiHj&xXVzm@wD;L{h^sBi1D^=+Px z;amzMI@tu}B01TMcS+M+%$B5S8C^!O^x|w*&latg-Y;YQJ0~@2H zzgCc1;AN=uux3iUfhzJ!ECmrm9q2WDbN$SBsi-|yl!JZ`Q(ByMgMfA5E|+=4LPx)1 z^9H!=w1uov5^_G01v?I!ZPuT6Dcta+8B<5;Cb~z&q20GKW%YaDoe9EV;9zfWzvJI zj~Jm7l#RRlvW-xBlCj_u=J<}OiQR0BD(tH0~VzoJ!YB>I%48zUmp2n3c%6? z9Q_C9Ubx!_^o}uwf|BrMh4fUJ3g_!vE~t^10y8(JsSTtxirwkX^&!cWn`}!Wp}u|%|wd3h7GBmgf3)(f@*(% z>+{&k@BZ8YSuCf=xpwCzZb-WZ!HK}pd-MwLyhR%X_?Kd}G71e}_~fxo6X?17}VZnsuz_^=7%Wr`b%$)tnCKr{C`)%uPQ@ z46~ixL~v~@vi2T)?KI`fDALQ*0k%Zf7kqC_{WZ^RBZIBZhphK}>TISW@7Ud3M`MG9 z<@_5R>MgGob|Ybfg|&IMV%r16ddK;osxWnc!4&L@Yy5F{iKA17TdNDX*^~gPrnjjO-3;ir3;R3(>=DO5n6GtAUbDvKx zoS2)bxd@6BU$+s&UWS3^QN|$lH+LX)&zqY$ZW=6qj7cWyxzXOf9I13VOq#xIpLS=P zIdM#iws9WwEgvju?r$D)*SoW<#)ujZTz5eE`~C4_T5=lG4?!C+IYj(KS`+0UzQeg{ zFC#TK!&y$h;>K@HkB{BHh93h$<;(?sJird(Z?#Z(X=QnQqge!7&1UX2Dup|D9~DlF zKkkO(fLTQKs;RF{zO(A30a#4-9d}zmJbD6!lGX^dkq?HVwj~SSPCx^MpFOpH42WQq zWM%@{y`@>FolyV&lxV6c>VbF<=2%v=DdVoM_xAqwvhlcx^r%At_gHG~bt8i!TaWlH zfcn1ZH#Ha;4{cPx^a!6NQ)_B7(vP3^89iY>dx~ulRfsU3f~iEklgTpJ zC+t%rP}gX3yWqQ4wKO@K)_S3HIf#8Q1AXYWi$yJl7;y&eD;!YCLmd~xu8R6EpM^3F zt3_nQV5UAHwPrJ*o|0epzC8c;uE>jR)Dyhd;CO81Je)c$&*jhox%S{~-6QwX1yl;j zv=$(V8)uv9d#8sxp+bJjSFu?=?JINOC#I*_VTO9*qaF~PMj7KE1K-=nllpt*TwymR zpaeV2J61O>$GTJ*(!E7-+}pb+%h{%5@5{~UZPYP4y%7+(d*0yxddCVGr!ruiK**jBeOf!ZQ~QqX8>Q% zW9F&aYD^!X4&|JUJCzni`L0qsc@L@fID1gO!2&z!_gVM-aV@QNTgE>?qm343w~YyA zPqAje%*V)+GJL0F_Upf%fk0yD6SWXlsupzTD+gtxivsYZLizzV^S1&R9m^WNOSq&j(+hQVUHnBW(d&c<6FkyCe0jO3$2SHc~dVo2QxlT}53Gep6bW?Pf26SLJC zinkCJYkNKH!FUF0J~PRFMH7~}K8j_DY++H@`!D_ zW?{7?5H7#JNJ!!2rP7i$G{5Zu*0k=e=>fdzM3#U=n&9F)mY(rxUe2g z>!ckyWybdk#O62luXoYQU)c9u52p{bRqo0S4ruSGmd@`o3tc(sEQUezA+#tiAG>lM zE@QF*GeBrQsoEOq5kq+z4q8)PEroB?Q(WaWE|m^!xCpymh`~T$I}|ViWKq-18g>)$ zcaa~gq;E4FuJ|kxt6sooz!>Qdtd+G0o4ahzHxplsl76x`?S`Oj!He#a`Hx~L1qlWt zLFQmh_x_D#Ru$a`$j=kV__3FSaXbnA4wmuAt8nAhCbONz7kn$XTR+Yz8nMqZJyOy; zZTLvIOe>2HWgG>NeYZK1dJKiLae>n;A{41G!z`NLn2$N~EqHnNF6hr2?y}h_l56TW z*?gubbi8VVyz^3~ab7Y#w+-(bEmy{x&L0KAt8I;ELJM-l(;9m^%`gjf*l08OmA0g_ zC5btRE~FG|Z%OC}yf-N|!ok8U3ak@rmJz zvYkGTuBA#0PsrZ-y#q;Gfcc0LDa#vCRN^uh%tm-|?}L`yB|GyuBX3A|+jCP#z6mPQ zZ`h2sBf8q&;4882TFcbw_G2SEmHC(n0lY|kd#=!CfvZhSXP!&sQ(c(}Gy6%`nvx6N z6#0#hqfv%jZDB~EMEM#{v-$Ex| zO13xea!e`J94gu^;Q14duMiU zyjVVlIu4Gt`t#D8+*c(_bS?9$l z3CA>B>OmuegZX{8P9&c>CVW{E^Kj68hii=lsubJFrb~a2N*tqj(#;rDoqY=y@f%#! z4oc~hp+a$Q9?CB5xpqz28UT?EOnmX>&;04pQeI#ClH-x+HZlwvL_+zf98Y<3MS>dc zKaq&qWn{G4Pw)cuPtOtTO2jZkcM&f2A0huA;93l`14x&P%wYevfY0B)z!-`_t|;XXM(b(`LOy^?4cDxiOeD1MqJF@}$dT9OnY2|sU1XtUdw z)pRP_J?JTC6|^RGXI?&;wg>YnpXpVzI^^V_ST2l!FC~rTbWAFJ>hi{YQELj2a6F5W zqt{#GYh|Xd*G$10wj@=O0oOhT6jy?5D^P~(_C_d0id*IhpFx3MN5XUD=SDc2RyQNVUcQvKbC&%>3xt&vAbBZU^hr8^2i&`u!3yK|3JCn+pqA=iIB$5B3 zR!Tb5e3804XPXRKGmn64u4)z{ z`VWJ^S;zm`=gooB1vc$ijNKzVQVoF()vMHyLB^jU>D%3ZWgvh67O zm_XIxH_hIfr>mPqaYUu9$nUNlFEo@*F&dhG8|UF)TX59`>N?KkKU(=RSS>#QZ}$G% zom%J35Mfw!EQiRb{eZA%odPQBP9QdW1bI<(Jo(MZ+h4o4BE_ScRjDqvz_EfP4!Ns8 zdCrupbgM&%U>}ih5WG(`K{4Bh?z0EqPBdkx;u6vdj}XDXzd?8rpJ-go`p893812eFIaTtXjv9-tad}OnGkx^giUNkT&eSEVK%}n~apJ^@cu5di{iv z_6YIy39p|XOWBzB^&sa}WmZOPF0meq4Ql0oG)ZW^0FB_s$*&tx*Qz&Fstzt!j6=SS z?3dC%Qf4|@)|ERPAYb`w2y^%h>AqX#HkT<3L}uobLE-|y@N>-dyhD_+~kU^C}q#qjWczlzNbvo2LfG7DI;X4W}DNi zTGQDD)RFP9k(kzaq4BV!4nNgeY3@BTrOAHhb(K~BC`LA$2lLbyAc0*GxNfv4w3Ilz zZOlXM5-fJ&)eR#rbHR@V8JqZ?jcWB8Lcd-;a&SG=UEU{+7%9o%sCNOX6^%T?td9dG z*q%zOoS1!3*-DY?`}}QtSob6A2hQrm*gO|*Xlso><*SyqwO~N4bZgJKeu)d!tQdn~ zb#^)ZPDr+d${PK{TKR{7v~~4H9>xmR-a#hhcI}#%%eOtg%0b7r-&2L8jmcTx$GnHj zMXj8btREChpA#%b{qVFY%W~7urG~)n?#Y~qR;4(0m%E0t{08ggPyP_hRA0}Or+%|( z=yF7=+0eP{)dp!W0&>xF)T$w@K;z}J=9(a1-y18@zBj!WSQwZ^zknfn^2U9+d=HLP0Tw zE(>>_=mf}BVyVRnL>Vs{SGCMly7JgD2gqd&Bm^fSO#ed6+RS6%MMM_*_}kR;tcr-y~Z!@z#8CKRT3P*KVnC^~=UpB|%fC=h=B! z#D?)VZwk5}8f5FPsG9|DNA~N0!w_anX~$XxZGbDNNw;LgW?^w(_2i*Y_V_M-sz^rR zsbN+2f-_k>(ClSIb~PU6)BOewGlE1uWbEh2WecQ^rUtkB>GrI{Dx_Aey^8Fya+4Kx z^V>4iaTrb2n(YPMQuv}9W0=3n`=!E|&dYTdM5Nju>)=!V(9Liq$VBp;lrF|bO_itQ zI?kYYI!D5vSFMzl+B;=uSK54u%|&`=<&tT&w7*>4k1~Y%M%eK&O`nMosrqlvy;$Ax ztSqqOopdyB{Ji6L!;U|)vg3Dsfq?iax4e(ahgc_cAwAGGX~Sa?u=A33JjZ{fyQvwp)YxchhErXIB(N+0j< zfezQB(8^~M<0}6xA$T9>`*Z0dwYOyQubP0B%td1CtF?!|fi)!Jxw92^;d6sKA9HHV z`yYf^8ZMdOG1Lu*&}18F(p5lF3=V?2HXcr;67r`jJI<|ad@4a)5}#$OfR!Rdh+cm8 zLc=$Ev;3D*o!8~sHe@TKp$5n5$r{Nz7CEuXx_}`G0PV?eY6znKWt*o-_kHeU}}Bdtn1f3-%oC6-sCq3(7x+;CnEL52`k*{Qjo@Mb!k5P zNb~kjOCdS(s0pi;=O@7DrD?*?R73UtFiwckK~eSA2X#aV~Z^jsKh z7<5B$?9U0NvxjgYP|DA56@4~I$J|yu-B^eDy>=NR)sMhI-L%itehbHkNakT0O33jHGgm<}P1hK{j5%!7OZd$mE}&h<-eQ;lo3C)~-9nl>gkyi$iVzG$LavrX=%I}auw8HlSfQN7KFPaPQ0#v|~xVXCzumChQF#?v2~Xxy|d zpa%GyCHcuY$>qj-s99z+O>y>CP7%V<;7FJWv0mhIMvK5F=J>yD{QQleQL+P>*f{{t z*Yef|5>64?quhfbbvA{ye820+F9P{|lzhT$NFu%S( zht3yj%sTsImx0b_uTD(;+PUY44?W?F8&kQ5H zIsilmOSf@2I7pv6U3#Ee)@`n4W1i8~Smq}w${CQEkeD)QB}aOvjOW{#m8Qtd2J?!X zXFZPa8_d+fn)xq|hijr=zy&%*_oRY!1uxa3QkcH(1zF(aJl#LT)L=H&H77zO4j4Xv z8NUyI@DA8TA^N4l!6-fO@UR0jG@?03EbJgNYZvyn2r%3woN?I!!Gi7`TfkqzySHke zBE}i^g_eMBo73w*DPRdK>rycJxI1D93Xgje!U?^GRE#h$O zq)JTu)7Be;*sK--{HfrBkK+aKcD9`#Q|S*ZubH6M3?emnYszF4>_!Sy)w`Pa`d`Bi zukVJJtIyKdOAfw^RpG3=p)6=7R~EzclD37~J7mQ>XK3VH!OFGeL}$Xi>G|?e7cTqE zhU#ALSk*K(K=-5ip#o;hhGW4pRtmk7#vX)VYFoh4g2q*!Q0IKV@XmL*$d|RwVNiFt z>2#4Jo)XoLR!6aM^(3l>4i1?wd3SV966#b7yP5cn!>4ytj1i%%r1Wn8+r8-?lkPl9 z)|e#Jw~*-X5k6Uv&>fN5UT4l|O^^13QPC#qJgTdci+w~S94DH-Tg(6*cWboErG~sr1cw4~Z9dgR)K#JLi+jR`c^brs4#hcqH zVC9L_G3!`I=!e63JZkB$sy!(|ZRtg`duS|jC<*8BFc&hm;2hJjLVEp?ElG%1>x9XU zSP$0t+fk1F7`YeF?&)kFX#i8NSQndu)~Zm#aR;z<#2I9w2DBzgeHcW;iB`@QE|x4! zEu9KF3ZW^1?G;U~iyqeU*0fIGR0ww#P4d0B>NGP3SC~=RAZmMKj^71t>!bqbmi0cN;sA>?dSiQ8OUAjgPGfGc~k|gS^a!QVDKJ+-ss{e{V^xY?; zE(H6?bw5@UR|*%Stx!Fui`oEJ$y+Rq=qZI~H@WcWDv|q`l>wcPM&I2r|ko zkD&$2`m{K60eu(}PPKCBIHgKzz*qoEu{wVbu!u-fzHd@h4>4UA+O zKuD{ii|vz4d|2&ZLx7DO7#TET6nY}5cnhaX#i$nC$L1&1iSFAl`SX2(O50tjWd9?i z)?L7JIig95xWM`wWm zibH3(PQWGZAU`8m?s16YJb?xh(Aapp=}_8BZ47oFxqO>FRnD;kY_}>L&c^b$!`wJL~<@l0>&%*D+UoUorh%i}bXTZPgm zt;Ko9p;JWB9!{>oP)A>@eqD73jSlAD&rM(T7{b(r#ujl_Jy%S*!l){dGwq8X?Z|=D zk41^ONTvDdu4mB??p>4d>?(MXhk<4Tm7^I@22*dj%?g*uSpGN5!oQJNI@q zG74F>KJ+n_;osOwg1x!PwV3@pUVS$c{nygG=yLM3_7@HchvVwn|3{tGLNS(>56pLaONwV{$x=MZM`lD+DjYP@0?Gw2EENVp zm+6OsJ%#Zp-q6yat{{s4&;~_g;#8Z6Q%J1pGExQ>JUbMlv;`xAVuCh8$e%kJMEn&U zAnv$QeLNUskZtegtxsaq|gIxd$i)@^G2+duw*6zmWKL#HHyq?Bx%pZZFan# zeXx1k)`|`Q-2-Wpgi;~AWpJHw`MMsik~-ONPlx#j9&Hu9xc*Fnj=+Xs?pm712d=I! z*JzU4>~_S5GCjtH0LPC-9dZ>TwNyfUF9C=6o!SCo`@%Jo&dXUGe3xHNFJKO<^<$JY zF!w6z#$Zxj+BTLeJUk-9b?WuumPhT@X4TF0ld;NvYiQjcm>%_7%P+R``ICA}>agF! zyVL1o7QNl%{bQ%9_0-3f0!aT6*xI#~ziPAGaQ$TXhyZqgZG6-IoL14@w6K;$gKF0B z;7(uc=^IfO;0EqnjGBTR^dzEP(fq$I0N!Ysfa6XmhN-e_Ghuf{ zU=#4_ww*VhxHHhJ-d62!)kN9@Mq)X!06;5lqlO@yOnj~BP1JqIDsjv=Tp6o6&4QNUG&aAdUa)1_|@j(v*VFes1ROSCxm=qj7=qPQHE1mi0igr~B+ z?cP2S01b2Cn95cx8j;7>5bI7CRx#xn^%iHZEA|$U$DTqS-s*lNIbN1^>La6e7 z|74mpj+#_!AbP$^{jw9Qp_;*c=wuhaHj?44?XGgZeo3@FG9lH8+;x*6a^S|+WrmEoR4 zXyhIvu3EkI8pcWO==Or94w%_ZRC(iRwu3&-(u120cL&n5qMrsibNQ1GlKz{qWxi-) z7;6zc#igV{m&0O7s34;DoLx!RiW_qXKWe)I?kgMdu;>_R-FK$PE=@aDO?R?)_jW(u zQQ(v%3>Qzj(qmsAXMD^`Cs^ki$h}Q%UG=K3>5+}dUbF>zhO_O?E%V*2yUK3V9^Czj3{#QIyk8>T$u_nZ zSh3+!7CAom_8DQ^eZos@BjJJoLuiz)>dsh=`A6=I+cC5d_jxFSYoQBMFsdTe;!5)# z4r2=_T=2Z%3y0lAs@LkP^S>hT-}qcVSr3eReP< ze0x`r`S5YJfX6(Qm}2+fzx81Z8+SbeDkGLnCp?0U)D;GrH)1p^`uBiJ-qYHL!g0() zJUUjxH7(o0B4;~B*DxM>5EEMjd8pHy)GllvngSr2-nx+H9&#}Jf>2ooG@<6$O-OxT zH#LXm%l6CXy2x7E)|qfm^hk% zns-5KPl|N$h3zl;ZHAw)HXKz|!uU?g;@A@i{y3ROwcHQ$6~xM(!W6lmP{Qrj_s=G$ zLDc1ps$M#kCJ!YR%yHjZtm=)<>+l{diM5mDSCl2Q>)Ye&Mk!F?l;W>SJy5#Q%&XwCMYE3Ztp;LtT*V7?E z=Z3$wh?E9XId=9DJDae+p{6vN>w#*Fj>Rw^N8m8hYRPsI$KMSWmsTmMl=zXybKWXu z<`WnFou8T+l${@Kt^|7 z84vfJ=M?;CByQ!nS8CYsR~R*%=@WE7ac8~N&f(6(G8&zaK1YoD3@rXJ=yIKi(v3pu zL{RbnhGUOs%EM8U4~NN(6-uHML+CQ(*T1VWY8?u9DDWRCSz5G#0ot*d{g{%9QB_EQ zT38Bb>NzHJ5t4bvfRKfBYdjc0m{i|k`Gd@ma% zEz(pI$z`nyeBWSyF2r`2`7rgtX*@CPXWEa&6JuqNb1(cqAqD%}dw{^f?l5ETPdP9T zoKrMv+sn3d7D$MKp$XfjNgGoFHB4Eg7`K_O(4{+kFcWYT+b9fI4rE^2KEBxcN~lE| zzZ)8I+8d8-QIOK=XUe5nWAPv0Wbsa4Fw}X=e|^WP;k9@e3U%+47TLX{;iT$ml=@k6 z4sBN|Sl}T;=Hql2R#U3_<;P}ZBj0-hABdfa*e^HYdpt8JvdR7Zna0X2bTdXz2;~Bm zb$v)r21kAFKsK2-Yllik6=y>3BGPtQ7+YFi!~U@!2^T6EwX`kU^`QL<5>B{=?W zYme|{l7ASX5*KSs6;d=uU8B^LC77-@M{P+U9+i;qFqTCxk1}91p}!CPB5o%538_P{ z^jzq5rY}GV<>U}t^y;L;E&PfesE4_|t^qhXHsgyo%Zewbfuk{)=dmqnfwNel0Q7p= zMgbi7>kVtS;2Xg8T37^XfF)8Yq_5Z1f2dB~hsBnxCR!I{l4Ww>_NwaClL!FRD#4b* ztDGZxAnt}1q07o5R30X53y4xu2qRb_EgK!3qpE_aB-DO_1XX-B78ZV;AdEx`sG1bE z<_RTSV^Y9Azj0~6-qFXHzHa`6Xx8a=j)ksiNRNz%u}z-7LF=ybcwd->4!5S7rilu?qz)UcF#$&Btgyefco)sLQxZH$_{t&-YRN|K#o{$0!dw=MX;N{y6mb&Gvn4~|w%jfRHp%_dJKU6*goSAv~o-5Zb z7n#Xj6!0WI6vdIQIjaiM4~3Y%!wIHO^T^#&8(@*B$t-&YY)R|6eP;deJ15EQroGm} zm!m7~DjeJp04L9#i8d51D}-vq3&VCaP=*v;D*6TS-Wy*NdTG*D>yin*`e)AFW$Agx zR|UmN^?H_`b3^2Mm5oWL^(sA5JyzomXM7IRbK1)tLmZYS0vkdm+d-B|T_L0Ws$tCZ zOt6Kh|2ow@Ewik>mDU0buPY7G49Ybzv46Uh=hA(iOZO482&L|60$s-QVFc;0I_EUU z`Qgej!nAK?onwudVh+fP?Ncnk_#6mBvh#L zeP3tFy2{nfnNL1ON2K0+d%kgX@v&}$+Q$V6&7aj;ukAy%kA2^(of+| zz_#BH3s?|x1k=Rvk?+&UWcNqZe+c`=}aQvdC>xi~0(LBO6&G zNE;Kb+Q(v7@7U4Abe)z*zDC(_D?i!+QO$cO-rcaxBj2cMq+4l~dmYr6W{Dpc4|~2_ zg*1IpBV=25uLu+wCN|`8);TUj6LW?urC7jDewip|=gt%9G}EOiUj3sabW z?;St=se0j%sAQz4Lt#H^BRtF9+rQISz=Ugppe)2tLMW&C^oppE3^OVXLU^gy{L06A zp@f-c*gZWH_E5y1x4h277cU?@G&S}5dH*QLo$=Lg-TI#vlNgi3m4|O-b^FhSZsK{Q zIb8MvWZyzfTyLHHfNHIXo%qUpDxaDp<~Ml421<}`mT>BO84A#C zQa_`2b|~W{8f`>#*zG*ou+fnI)60=IyM=2JLs^UKzbqnJ#9}Mp4L+kzUXi}fqcq{~ zh>K+E5hIdEm%w&QDp6FLrwFreMX=w*a*+XAr-5eb5^maC5)w^ zb1)@74%Js~&e3+Ze1@rr<7mFHeUdu+CqLD0f%(G%0<@)ka3~$l%vaK{Ztkqm`;KTW zeBnuYp5CW3Dx^1iuip3phZ&igP6P6#T$Qx{3HerIAvTol>3j1UIw2VMZ|r~)gbmPu zCqeb)qQqC2Eoi(Wq}zyk>Syk5q6#BclBE`2U_SJ50yGX3(_u&t4g6^%o(AJu1j)`I ztdL`nHCX3=x^LGAz0Qr_9)MKhE_;9;s9tme)q30gGA6lHNYq)u(m5oq5_lM*+?5ON z0cjDb1;MG`*GlO$JlX4-TJti<7 zCe4QHUjBd$ptP0&pS0M{`qNLJ^e;2G8C~M)Q6HO228?`P; zcPmES)G#+l<`_h(d9#oZ#@>U8wp#)|-bxH&CG#$_Fri36{pq6sOIdQ(9bz-I2+Raj zm;~TQ7FZ>(h?L^#PcLw{UKDfrx4!A5cG^KA1j?*2z= zkRKq-RkqisSJyv!U@-uTOTG_&!qoYd`NB(^p6XK2`uJ0( zf1}KRX)y)$ltB>a(?YXx-cYMOrD}%MIPXIvFE--pBzsS1d0peC?{_(HJCq>w{MG)W_3EqI{p54X`v_rJ;f|9xTkN?_j>KK*aV%ztm92y?XcPyaV)?%zSB8WLq;M`8H6 z!1z7JKZIUJTcf70n$>!5&q>;>1pdGc&@3mM$&viCdBG8OV8r;@ml?62wn`uT!(ACx z_>p4x{txxgV$SV@*~b^r{|Llhh48{^v`Ke0PNQ2D_y}qgUn9QvQ?4xL<+bq@ z{^3mwG;sYFOaI^RJOg{;qt>rw%%}Wo8Lw{YU(0wk0Q`!^D`(TMXuNthp=hi`7tdVL z0{9h~QRw&uFjnE#FMzQMw|)VP6}a^aVEh6Y-|2vrBNajZUjSp}YWxBiKLLzipyC&( zSV=>cxrAS!;uok`Zbn@_M&ZFPP_cS7ez6uS;o=vl_))TfLf0=2d1ZtA;*eLk`d>`N zFQ(#q6>udtM>)tZrefu4d*$L(r)HQEiTJq2T-aEV!l~B&J`uDs)eCkf_ zkBc_)FWv4LlyuKXSi1Q9hn&ImWeL;3Q}7n2e3_Td@>9z*0=KWeMUycU3dbfTeO3;@ z<&C}vq$`B`sh-&psr)^1D|>(WJD&btz2)Smaxcxjm73%|8OiIkma7Nm*pES}x1a!K*#BHOlbmwqKAa`accRhRW5_ z;%BIWOnLb)a*wVgyUPa@D>PW$H4jp+o~*m>aBRt&KJ)dDS_=WqSXpVLsXPdM@}epv zLN3hww_<(d&{dDngT{@!uG3f6=UsCgWnC@ZpWh43I3ZbaU4Q=cMK{4PKWB|yn#RVw z%3IE{D>r!gQ|v~nF8*uaBDAyLzw_z7)QOqjt)F9%<)$0>za)Y4h1Xe`ef-o-+11~_ z`&sBlI`?tMqJ;{nC&ou@ znBtloP3pe$Dc1Gd@>lPGx!6I}ZYclF(W#rD1(RZ0WX;2Nhrc+IO> zE$!=?v3fPdt>90cPn(=@SWThP0}FAuC>CZ`3P#n^_dOWOw%^nD zd8F5D`PQK9k-&k{(N#gR2YYv^Ly_yj>FfE7x=RZ*U}_M*Hml-)4bwd(I>H z3HMq4jLIpn7j++>&$((MZ7fdtA@u@1H4orgc%mqoZRLEB%YYcZ6wh zN8YLLlAPM`>Xf7J95&|JW?LkmSXsh<9fIdS-YXCK_cvFzAi#B%Z~f8uvhrGV?^c+u zu4^i!F2&LBpD`9*t$p);C!0(2#aEh@NEAs!5Sw$M?@D3$KpFN*9RsJ$rvSdf&>eQ~n6G_q)d1n12>L=7(OAuNMEK_U_HK zA^?`?M`eOhQM`xJ^f(;T{67jkFe3Zr$`8Gc)z`v< z6~5rt0{`b;tRlZ(3;ds@vXU75THvd&cr|bQ6~X@rv%ezvuL%B6)Br#9Ul8RNMEQ>( z%CymjJTy9vtja?!)yQ=F+JK=4ciu?Qa{QSP09>x|v@9IsqUY(XxhkUkkPUF6(cas~ zR?##{3QOH!y60mc>;Jz&bMio%Z8d8{Gfem0K|{BXpX#QtAr+#MM%2i^+@f5z+;VN= z`mTBI&+Lvln8%dn29cdXNC)?kwBzItfpl5?anzgrHZi$wa3rTY4#|B;tTVR?m2O0H z7M~WbbkM;|C>exCQipUQugROZms5DI$q)H?<|9Q>()DqWjw;T!ll&YCDysWX=kyUj zAFK2V@!fPI^D#>fpU~|ny&a!qb!qnfT`PVi9$SouQ&`dmz6pxUx9R<1XpyvJwr0xjAb@CN{7>9Q-2x0>h`p3t7`{gJw6&i~= z&!s?OW5Pc%qiYWQ1(RW3M6?s8m@2HS(m>1i;vRA%8n@h6G|>ps4&a{rn90Xw2bxNp z1v!x}_a`t7F0}05=x$za&pT7C(MA#jf2w7_z5@NLT$mYTWvy0|17@vfqfe>g<7aBD zUxYM|@gcbr7*#YY*-|%~E1T}oBI6*=5DiE^norP{gP*GUx6eN)d^?OcNGGN}o?2D; zSWa?!VFV>q!+ydw$RttALcvdXa- zSS(w0b&qkQHhAPR+6d#|)JdUukd>iC7EdJUOjS5oBgw$_$=19fnCf#ZIB-)2tB5>2 z8qt&m%TO*@;G`f;__ud(IoU|I`b_0#kBFt&jHTnq>frmONrOvs5iSj^j_AYJ6&^&` zwbIPOS67WXBoXf}hM7yNg^?KmS`fF?@8BSwwr zZ@VD_0@ya+;@ql=(42~q&qx*pCRS%~*GXXo?G8vRO%pUaPUeFkf(EH-94C_u^DbU} zMx(cFuA0F3pElA(y$?Fd$BQOF(Bu}<5S;+SM>p;i63qUWxx;l$Mh?Cpw4^s!!EU}6 z`-JewWrqss&NH^rkA?$fg=hi^?U-!Ew1dcWcX_-6^4$ZUA)A}hJ z^32eL7Ff`Wih`_glGzl@EeT(KPG0-et{Qo2C5!p?Y#aoo4qh)ia*Q4+LPSy5800>y zTPdFOm~eqh0Xa_TStGpA17`dw~r-3}*ZVpQ^^Au?sOO-F=nL2kEbz7nK+TW8SV%y4dtY~TZaDhSKnMXpFK zJw9>WFo%U^P3(PYknt3(%Ghi>t4_jzNDCJK>OSE}wKV3lnX5V+3C+IJz>kiJoOHqm&VG0U!P+7og9-?CRSHbK8vv8o+s*4|z4(AOq9eyR~c!#2i%1 z-C;c^fyn`Bq!_G|j@p(ajRrY^X8+?x?E8NqM?z z`;oANG=j}&2un|+LGjnSD6)pid%%CS;0=85yVf4kAbpe_1VxA`Z!|@TI9C%fpXr|K zDaad2Azltf_r{O0=IU18^}xU5nb)&+Ts^RSI%@ z12VJ67qy21HW94ow#wl_bC$@;$ym%?p#+WX!SH1qr<|eMQC5j2uzP$(3Kw%Fg9t8I znI?l2oumD0q=Z!Qpl#nb=Uz1MhmRk z9>BCaqz#g(ybA*w6qr7XG6Of?n~_oSUM{i=6O?uS3!o%$0Lgp`^wvmGG?%9y$+z`} z8eqZ>9M(_yN{2DESGr8YY4P6EknRVYRtt%DRcFC@%8x7>)Q%#D5Ev~t1lI=*Ba6T_ z#0;~7bm_I;i!=Sf^`l5K!hD{_&J`Ivwk#|A`??+Vc+pDUN{Jc>mq%a$NvXF;v7s``X#$MSqK+F5-@N`e^D0{C?7@EU-jLjB>rY*tx3R##2P zBJVT&CsT3UoZ$hlxw;}yT&jF`a}4wK0qg*QoZdbVT5(*~1*sl@i=mAa&52W!fCkyD z)C-yAg4CQ?U7%4VI%fy$mek5lHrs;LmvH_iA0LwZNhWe zaKNy#Xs9+eQp2Ij6);scZJ`5%8bJghbU?^|l=ia0Q;ELa3(5#_NRZ}c|CH?Z7V8(T zo5_i0g^|;s;sTC|dx~jbbxN%B^{tpAOtB0xkJ;6KA&t9t#(BcoP@Zx4>2{{P<8-fo zBrOAX_I>65hbltcHuVLt^>v^B=ZOK~h4p1HVF1o`v9hq%r`C7%^an-U2>r`03C~hV zwm!Gp?Q=}qU>dZY6zbj!@`|QN?TUCvisvQZbawt$!$6&0=PSNrY%U`(Z&|TV1rwIV zvvP(Si%rUhPuqjZz+U_zTX`pVGf|cJrNyx&2NU697&xy8yMQ1xrcpZX3*;fYVgnXu zLSqEFt)?D28jc5LID8ZOUw=9COS@+Jr zg|Im&PL4md>I!p$Fh~O3lm{M~brB*7kC7w{=m5E^4S0a~xu)x9Bw^mOedq<8|Lk_% zL&tj8=V9}ShT@94^k_Q;HdD8TOyon+x+{I05KkdUTiIh7f~P3?f0+08_Tq=zvH?M| z$G;@Ju58;*qIX#O?dHm0@3sm>-nJ|SJ%EY*>`RUq@lp?l*IAbbhfcBfBqkO^sGKF4 zO1MHThrNDc^@!hX0?9$o35%bOJ3jG1hAr~5n)ySo1SxMb7I|N%dKXTA=H)4zE(@-h zfEC(83%HSK>lzwi*C10H-Ie`CUN7eU%+E;K4&GXC@efo~GQ1j*I<={)cq%!@L6{){ z8FKa=CUZ5&6w^boTRHPud;1{nYXPiN!`zhSVY}IY^o3aXbxBrm%46>`)y2Wxxfy8$ zVyP4`Z%nx9%>B206;ZWpNG-n&sA*Db?1-Su^$B(v^RM zIQJc#^$S9^Y`EbSw0&YDs|pnaz)QgOJyK?*i7-5}S#vU$1H}9-$RcML^)N?5-8a4H zl2D(20LW#YUKLKv#mPLM-sG4+n4F0JBba)FPgJpv?vMS<*+<|`Qv_qrlr4S(M-+N% z(G778?~VaqcsC;3*?IwgjdaL)2VLXmOo*m6J0{_LYIf~ZKQG$H`N-*?VM+@VxJS-p zub<^TYxo#WYWgWE%=f*78&R4%cZ~;*OUgok*TX1_dCZ&38;hU1+>V`TUh19kb*+tK zd*E^EZOawL0H|ZVmc3>|wrT*;)|8ydj9$jm!sYwqNt&z)Md^A((xu& z)#N`RmGsG6usKLV`sr#WtU9VI#sgd zCkqM*jYy$uHk0O?{r)_cml9@4fnLs>*m98PAlTR>gIUWs(rw}$57?PzTrI7jcv~Xg zNeRT28qwjD`yO9z0vYKjwk(86Y#0~$YC5*r>moXlkgZm`b?&%?gMk6;g3hc#yYnif z;wX7S=~7i!tj4iZ_ttm&-`Cpu{w(G%v+T8Nx9TW6aXGJHQESlIs>I9}JjV8Wy^I4}=#*-^Ive%zYcCL+rST4(Ksn&NFmKLUX6|*Wi?ascc`*K6@%PTNQ=!9fUD53CXgRXCewZhODo6k*8h44u9 z;obh%;(6fHqC4-HqQ2G?;|hD9_jra+=a9=EsW14cw2I*C0;HR+!4_Y*$2>LIb9vY9jMXz=RVLI@x*5al4e;HuI3d=MHiwo9Ix zA4?aQAaMI&ujPVS$&2Tyb1`b=lc4o03&?5gEq?Fk;sag1Os6-?4m`}f`2IzYaSi~W z<%B5jkNPj6yLefynjqN_Sx^DiE#GrQW7v(Qz*b@K*hx;=yL01^XunOk^(YvV<~!$D z;H9>Q8ADaQ4gs#|t=YF1d*681y2jlesbsa=*v{mGvrcgeRemzp3Z9gw%5^X^ecTe` zt#_Z!5lkOqS?-4ipS;uJ%_i&3%Me0amaJW7Yuz zof77SecG$o6ikfE6KHYiX=R}si9NdJl6epYkG!{3~4$x zH0mosAnYhI8mvw_S29GV7|n}Tb}LWOLFM~EMF7{15xDGGj^`Cb*jy%^JpVaR9s&+a z-5<^V)3N+p;Cj~S@TKYS;ibsN>3SqyQL*%)^k;66k?9V+=UrFf{1erBk8htsTYBLW z5^nB^B(x5K5V#gP-P*uZWWyNu5N^1XRgU3LZj7}FNXF)2YU&mA{MmrfSURISoX}k4 zs>3J;xs0XvC&~CT(-M}<>PM=&7dpF>P#$%LPjWlI0i!6&(shH}y)=e1SzeuDH0{)2 zykKDN=T02hJ!aT>gcQ{SzNPd`-3i;=X{M#sTEw06L$D)va&LGfD9FwzT zJf2Iek0=gubEG%4e5O4G;RHscpOqX5Qp=qwK0F!^I37`}W3xb&yE6@!l1&b4HQlT7 z6q$6`yt=&RbxuWhIS?mz&1M@TH^*~%{{`&`;~x7NvOG&#*V_*eTKBaSKw`Kh_RWG9 z7{#7-HlC_LE;!3FNUWLe-M!9|z!$uGaAHtzeco~1yql}6n=%QYab(4@pW#+L2kb;E zbxZ!AB6I!!Ywx>*n%choEqKL(h*A_q1g@geYzRt`3xc9FMWh%&LAr_*=|xnKA_5{P zNK;WzFi4fqEl3mrr3grqF1;72zqON)+{1kTd+*J>H^1B&XL7^IIcKlE_S&CS_WH=e zx3f=H5qy~*Z?gst%cf$x=G{~5EN5mQo@(LZKi<*KHYmD)?Twi;Ju&Q)>g1xh!m9+H$5y@WLJ0PA!^&jDsiu! z3u41%sWnEwf1-|=ye@v#h5NqqXli+Chw&{-gMKh^oj*t{OSNTgc4dSo{0TPD*#8^i z6hR~?Yh4=z$9*D8yq@MXuUWzT^pv-5F7L-~Y2H^q!RgCZeU4h=V^4ac#uiBew z?}lcBJeK`zTr3w02Zq5*t_3!pZ){C3d#!*Q%p}|C`oNhCVD>Vy()_62P^879neWaI zA=HOCZ9B}qKb3FbjwT@PjasNe>k#{41>GKvQvD;B-vB`GSgjEQLNGOp_uvlBj_jQvSgoz7};m#!jtUBYn#RK(&hd9(fDVyuAaJzWH9` zvrF>1!D|=eJJ1b6jHU|PtmaW1p?0lq9jKi8N423W@tsH7 ze7PP)jYM>=6^a`)={?A9(LD_@8braB7 zF{#s~F_>V}`GRDLow5QZbsJ$xW~s7C-)kB|JPutz>d{RQaZ5rR?ol=nmr(sUaEZa} zZKIP#S?6)_DTrK1Lc-0hcAdGZ^UsPiy^AUCIX+{Vbrg7##_G3S{Dk_z*<96#zRO`< zIIWO*V0ff)>c?B-cRz?_t`Ol=?=?@q*8INt6e*Ae%oc}cTp+UQKK<7H)Ol#QJ=n=1 z{xTrNoB4n7$yd_7%d0;R6df<*SLishbv<;l!Tm_bTF@5uQbAa zw!j>08~ufez^mZ<$fDzGnAF6lU{c(X)M2jZ34AvHUrMtGUv~aIw2h;V)Wg3 zf(ZrqQk!P`7iOUMK1Yx5x65rT*_|l5Zw7p1U)`izHTOZfSMf!{z0eZ z8-2~SJeuH3o0nS>a3RmK-Bo6 z;lyVY-TrEdpU!(y#IiFIh-G&3ejd69ZAf=U0?pa8t93y7cRX^-z_A(SyONEw{q_M< z=S$WQqT-uAGdA!Zn}O!913{;@j6qgZtn4Np0-7%-IsTHfs{U5$_)M?um;eOzUvH|Y z@q-3mS6XR|Z65o9n-U&PmsCb6 z1O8XQ7yqo&Phl^q&!(-GEtt%>n%P&=H9$z5s+*Ek_PV=uKaXaPJ%edJAjCUIcNzph z_p!Z&>y+h+eAxubA+kC*sy{!bFBg}xi{CD-TYBey=ydFbGOPUoA}%v8RbBV28O*Ze ztb{)E#lCx!rXfebSH6lr;+yNM%2pIZcI`Ff?jhKNkHf|0tHDHQVM0tI>4JmW5tqGsKX(mC+X5(sjjLFK0k4A#9?m`Pc?*J5A0Fs*8b`Z>49}8dUFtSmA%SL z-}h`_JhKIM!qEtUkv0?!M-is7*DTDsfD5HMeIbXv($M5BcvxdOJMBCr+8?NwLy)7= z#;q+FVbFxM1GU77%{`7YQAGpJ6G0r-Qs47~!TXO+1@f3iREG_z{4TvS&8^Tx_q?Xo&>CzDPRHNwC6(*$P?f+Gm3EE3!&$gOi8SiJ_Lj2`S@YP*@0 zi5izPkKD$Mbd;PzOw~GhE{Ng!#5uD72{Hv4`76`Cf)B>`o zKuwc*V|`jd)!e3LI*%T8as9v~rUXeC=5h#5OS=efV}e$v`+eP}p6N;MA>x5FlC z7Av6E#YK;{cDJu0%xs_;SCT_Y)@kkpDm^gu+wQXCAnTgj5M8|MxrXC~ydV2>Mnwa$ zm{-Sd<5Eq^`W>}D}3UnmO*h z@vIU8;QhQib`TL^#uo zkmR1K{F&l>+vq)GlPEFndn0+;p-@0Ch?l)bdKkLj);TwhL_O?dfc#Omk(D-sHj4m+ z4#ciQ2iAL=xo1b?jw&OnrioMKKx}- z+yRXR%@O^iQ>p)08|1$neQRD#J5(j;g{VM>^?vn)naq>K5RUgbW3Mfh5#MKqTsb1U zLiIV#=`N6MQGqmk!QjY~m9lsqpSk&76LQuPvBgOFLDEdB0uiW0*%(DZBj;#E6v;1p zZRu3;xcvChsqaxXU?kO}h96w+!~-NgoNYhUQn=fI*fi52CY9tL*(^QeqZ&IoO_Z3M zZJL)t9NJP35f>wBUd=qPr`jf&Sv4FA)ZP6Vg$>10y|Z8=%wIcyx4;5mL3CmL);x?ZzewDZfR65l?K%y*P}Tnh7du*L6g#m%g2*y zss!ddm1laTA=(FytDEnygL8*C1hoQZ{UWD7Jyv(QGY@D~iKVX)521rzVfLXH{}Zas zm;^jIVzFHnaT9{WA2+HhK|gVaGQv}S*p+n=8K%=!ZB+gOho{0?Ou|}$$nX>}1iW>= z>Yv#G3!?Y%+gGZu!1`?-s%4p6%LSEOpWml>XF>)r^ht$wfgJ$UwMPfs-eldup~lry zm2uKlvmyMwR!8OVj1#CQf56+1QZ*=76XR|TEcn9u76(x1U0G3E-M zloGS#pbV<!f_=km5T)x;#I7I8Z0LDqS~r8+sPtq*=0 z(EuEThPfaAc)@PQdE`+_@doRV5NmFl*1JGRBhN1tYg1x&!&-Qu^!^CVSw}v&KYTl- zz7c$I6=Ncs0F)Y3DD)|83_>16*dgeR+)_B-XMSui%Nf*t7`7-dZ(Zk`rp}@1NbdQD zQnyj(Ntv1D>%?P_y?zONY`5(oZ!zwI>pe0KWd}~;lRhUpp*YJ0u@E}{8>jfBJK7ThS>5zRJHP1A{$RTs$GdHyJspicdnSh9Ql2Rdiuq{3^AqT_w?Ir z6N7WzRWqB}@M=U2Vk<9A+*W`rH~8>* z9RV5e%biac#k}q@K0ti3M(^Z$&mH)|A~Eg)s-lW4r1Mpu7+$+MAFdl;wgP*3ugfTu zcdl#NHo)@k6Y#xBy5LK1y@JxUNt>FBcb+?rbol>CX6c$4ymM4Z)$xnE^?-JyEFO@x zVP(H5fKbg0^|N6&c5=jj`s@Zds=KIcp$kzZch5<9k083Y6x|+_f_Dga7SwvP-ETdg zxnEOzKc8KWUu3SrHVxp5yK?*fkTjot?N7kv6)1++VlrU`M_+h#eAQ}T5f`V$P-E_c!QSxjF=mszQE(d|_RfgsdgR-Jrd1{w;v15Y^x{z1z^06~H*lyUs8FPSEkHK!MAAGQPid>D9TS z>`oV$%HG|T8of6}hha)AAPCh(qJjs0DyPu(*^GI>nyLbY4(ERY6@wGLFnDqR_t7kwuNIK8 z6aIJ_XR3V~9LB7|JNoOq4zytP*+{cHd(hD|D?%7GGD}_=q^iKruG=vyBN0)?OnpGn zKouZSPVn2_17XXpY)=y*$e;f%Ka7p!Z1;@bhWD1(35^r%M% zrl=-Na9K={gi2wl3QHLxX#^C0%wx!T zbh)jC5G4vAl>KqoAkiTImCZegMY?dn#w8B171p{lD|kf?akWer;SC+1R33v$nQ=>( z)-7F7bGUUZTO4A=qd;eKu&@jzyLKDD0oOAPf;zDM&+bNrHecUoI|Mx8vm5c9sJj}$ z^~I}yBK0r`x#O!r$T{e5zvGYy?L6XM@F_W83@+eO3P3%024Q34Z}Q=Me(@PZqRs1FHBr~2MV`eO@X%?JRsZ6rsgOG~AL%XL z25APXGRRl{DegkJy^L@~6-s@5)jA<&UJ?I>|3@+~v&JEMdb75B3Jn%Gw2-)bGKJmr z{q8}=S{&6r%D)|L{|OmH`B+F0xeCqpn;f%Gs zGgHLl()*1oGxne$!c3Esp=M%Gvi5C~PnBVzRWD}yQRN~B)P}_C#(Uw5n(TTb-a?^? z@xbP6jl#s^+YrD?<;t^ba-9fzn9>PBox)O+<2QBOYHUjIUSB8ut$_cpKf05iS_a~LE>6eIA{xIQ@&9Ui=w;!v6k@G8*zGdmQ?Rv||s17xekQ$3{Sr#S9!lNm8An*J~QsyZ9&=sBbkmJ8NvSkYgjx(GwA&>>y zN1!pw7d!%8-)DxSIa?&9_D2*W25Z@A`v}r`A;fyY9f9IeyLmJd_uI9SN|9!>!RVJq z9JX1_k&lwr64wjYDWR%_3h?f`(@>32o^e|tY_EJMyQ9it3m)qGW3k`M_$;fF0^rTN zm@FOSnu}(@9sAPqsQs1oUR^)(uwkssEM2?n+DaE3BJ4uC=eCvz+Yzh zlmpCUeQvcIhbMiYoFut<8c~SPBF?&@>CFRXdIT?3`+h;y*P)qJuMmDZbel|TPbjVfbMeWm5(9|vYPsDpj6#WE+kGlTD* zI4_EBOLZzp`!wD1HZfS4&KS{RZveC}W)OHRo|7j6CRpk3qTLjI{DCb*oJMm75IF9; zU4;rdz*9msM$)rjQ5Bh`M%6MbbRQM1Qya2h-*nh6|0k4El&6BLng-1EMiLbve~5cV zN}cm_2Dm4XA5*KM?wAxNVSkl9PJRiyd+SJNS()1%1Fs=_jwT}%qIW~Q2-*+Wv#%8n zOgkKRiH51Z8(GjYFooPA-vN#$v)|701?*OJD9<+Q$5sA9B{CclY9TMveyX+E*JVH(W&mqdSQzC6D?|B~#Z5j2 z49qU1b5Qcbq%aG^r?N>7n=8dEO}pouH_Yey7VOQ_{AjfAA@Dc29W^XUJ2IbZ?pGL- zs7|aJR$N2Sk(Mc@9RmOwvg+7?f@N40mw5tW3M`^Fx*+en!*ntUn|=J6CB#d zl0FG*L-wtFaErY7aB_gFAQzks`Oqmz79bxi2|jt9aU8KK#Y3CchoBYKoBtM{6||Lx zuJ_mm4kPm&ej0E?FGYsen*AlRcwA_6@GU?yR}Z7)LKcv+c?rQGkUOJ*6c5yOnNG&8 zB>ncnZJ0HN6LnFm2|o|*>!J39Fb#)MnQctohRuh4L%lG@2C>Iw7|+6yDUI)6@->Me z1N&|5)a3AJC&&d`spQ8YQo8GfQrLYJ$)S(7@B&QVC&_f)Lo764~V z7$}T!Y2hoZlna0v&f>&-RqX4iLDo*A;c}Y*lATjDvjH(3>L5lTfdeJxaYwm6)qqhe zM{$0%j+a2pk|4aOlYXVE2s#G^PtnF43u6v4Ox}fk$bZIJXCWc0v2)AVGM?&P z_oFu6+GLID|46mfe(XYD1mUnruI>9({IPI)Fswv+sv_H2u7cUQ%bz zA2ME|)`IL$xIgc+Opf8u6=>htaFSjxHCX3&3Dij^*I9xdI<@{Ux z*Nx@nz*iTJqKi+|-AGOqh0P_c^=4oKmrcsag%NsmfPD^^*dl<51TS3%=L&|MDTtCJ zGkE+t5O#XEom>*DHIri7{MNL<9w0BhG6jBXM5xgDP>&hJV_)7WJwZqV?!}Jfhshl_ z6dihgxEkSySb8u4|E0@vVR(AXW!UMLVS_1Sdp+aqiTfig zXR>m4o6egH|DeMN<-pVTz;za&r--u~ctGo{DEjpY@PYrS%HA!2HKGElsO#q-IVhmb zLzO7{uohXbH=P4@*o{gG9xIjakd6YlfwFky)J3{Yb(ulX0}*_gfj^>(;;&BS!BJ=L zwvkD%enV{Y`o**%$d&o4ry5gby%P=iAd|(S0Y8ITex@9;=vyQB*68`CJUHr;p^V!c z8`uMzlQKjf7{f923`FBkFk56u=<}KdrqB zJKlI0uguB;3+#CH!P<;%Mgi4Z;MSeWB(WSZpnfG^4vUTpLp9EE!;4h46@qo2en~Bq zyr36mY&pCLXU+HN7V35A!?%?nO4noH&7%}z5t&|VFE}frXJU=YJaIx>9<@{b|AWx& zrYbW?3)@L&{cm_4rjm=~`;cAM_C~?BFGicC;oQ=KPxJuhA;iGEUl|;z(obI&-jCrY zVuCA*NW8ybb4a)O3*q|A)QJ-8{sn23ggo@h5JT#1B~S1s$ZT=$E>G!%A_Atb*3=(x z!tyq+KOu%;J^ezYVv-n z*4x48f9~T?`1{}H#N!>TPNx1|SDS_FNZJ_>wMefl5iSJno2F==0+=WT-?Uz+pEO#Y zid*=B$0v{zr`U!yG>@3{1Szl|+t#U4XPfjvW(R2B4t)J%Pslue;P<4ORdTy9rIK7l zVpV;u7M0XWMgoS@_b6C{s*^|#1;5~3{<0s>JB(ROl_)hXhT6)P%Zb$eIEGx*`gspkC(-2>u7NSRCE?r@fzkMG2)lKoSB8E_ zh0=KPMiB(!3*r@W7H%`IEfA#jTC#%gKly*Wxk#=7usrU3An$I}305Pe$OI;gc{GKK z2Nij$_j;1iM$7}aoK@Y%a)Y&~{h@OT3$crD>tK2$IxdA!brOBpn+eZ+7ny6RvTz;g z31cvrG4#sNBFcbUlQhzT6M)T51cgd*Sf^jU5K3)7^-UaZ+^S&k59Y=)F~`Bad}v;U znZ@<-DB$=p#5om85sfBe11%oCCs%8!orKlo`;s8G3cFXD-htu#dpjlFZxasQk(hr`4l7VSxs{kh`p)#C*cqbfyH=hQ<<6h>clNVW8NK5Gf* z619RtMf9T#R^mzQt8f;u>)lH3uXe3JjUMWj1C3sf`xEJWIH+G1(|8Zv<)BN!(#zJ6F*sF8NJHDkfqg47(2uJu1RovEA$S!Jpi(OMg=%z^@z+N| zP{9_`QS$iVAqcyU)^|#a^+8nk`47n;P@A1+>P*m%T+qE8wunDaye-5X(@x!cl|Vig z<;O29rM>~_LyQ{e-Mi#CK)M(G#GWi(W!R5J%{UX@u=7;!iE*T@J`Z7- z91gELi$?DOPxxzH;eCwBi4jH5eb#M4WV?87#!t>HOxgss3KCdP0nXFEH$#6m{YMUkwzX{eiDDS;^odJ8HwFI`yDOFT3{6t6ct=Afc9 z(hGR3f}L1-Q#vzdOY^8g4|b2g4#nmdEg%t(im|l|#-Kb;R5@B&sw7fEOh`XZQfh9p z6#-L2;j^^kEHNQ4!gKdtr<(F;7QN?NSm{fbB>+>Y4x4DwB2=;w)qaUvL}O2}Bmnhn z!km&OO5VNYEr)pN&DS-KJwR_yv};0H=Zxi=H~||#iMt4QNNY9?S=cD;cKlglNO8;G zw2_y?`;?!(y2zFU!`p+le3w!U;_U=d1OzZ?JwHk(Zue3iRQk2q8T&G->l&#vr9vn2w+=~ zUj_C22iLrX|AEqDeknL@(FLpee7h&u@vzc0Bnu&fwtD}qr~b&VB78Yd2&Nh>nJB1g zS1mk@eek!f@CX~@i#xCnmPQW_V}qPQ_BjUJsfWTPH(!SxFnKXOkbksL7>5Ep@9~*= zP$;6Icj7h<+Qb;4L!cFqQOx-=Fmf#S+SF(li53(kLebUGcyXPuu)mraxR_6#tq zI@14uAzW$thx+tjR9i91qD6ge@`wLig-PCZo(sb%25{|FY&uJoD_$s{LIJFBQHyiz zwn92-yVm5KbS)4UlP9J_Y|&(2_0Gqa_m?(oba#Zcs-4L$5!eUeZ&|z#w}&dy1CLNZ zayp0J1QoLZJ{^jnzKDz{$V61co@yt_s|2+LRZhz+!}zQoRS0yrhoj@k6+e1wQ!Aiw zC2ZEOA(Qu4_e3(<2Z7RFu&`|M>kBS9iTgs@DaU~HyIG6mJyEhI5A+`ZLuH5r&G5Iu zs|}xxz&vW{vJ!AaL`~Sw(aw}0go4hSR7KZn@sOHbpe+HN=|{<5V+k7}T;^V(^BID# zafFn)mGey!YdvvLylAJBY#`s%_*UPNwdwlrCPV;>f`qd@)zi-0B)xf)g`^{W`oCk= z?y*_RpG|idYB^}xm~+_#kAjesVo*rJ8l>5Kc5JdW;NjHWr;mR?Kclol_VXksb6VSW z;F5kFloC|HJl;Rl=+OFE&$o;WZu|kpi`pG*XWt23blZe!ijI1%Qq3UMx*mk%@KtvY zYptN#1M~q|Ne%a_FmrMPTeDBY%=}#!go=>6n(uIz+Wkg~h0bJryOJ<-Ko$?Rar>n@ z50@!I9=CW;e%Y~{Yfv+*nA`|B$AVY7)P$@h=K!kf9L^|x>WSl86R==X0A=~YUaL`= z<3&|7(g!7If@;x{=!!jMn&<{bV(I{wNE_$WZN@Ax12s>2KzUCgr9WW&^#sbcWY|(K-6<4OB11Zd5m;yr%!r%#?E#0fUe21%2<>!cyiHY;dM7*JkMGu7Q#;_(U| z^va+ggBh1D+X&uWxRzx!6)BT8>x75ME=m@A;f54hY>@4*dx8oc&7cguE6IJ<0s@P7 zQn<21g>}Pue2v}tcwVcU)R`c=X~JTQ7W^ty zQ!7qj#%vlMRVR?zJc8WSb@yR}f^r;3QlLn<(>Gq=CLRhGjU*hdH%Sa92U^5>caqFq zOan;Su1o|1fB)skZZbENaOAK_*rHWk5`FY2+L^kbI;G?$o-v1AL@z?Oxb6v@6Ej!3 zO5V?3qi~7w**|Nb=UBEl)kl$ufi6S|i4Ue}I*K&7pbZ@7okb0CSP!%twfs0*u{~cNuO(fMD)p8m<#6#VTk%Y}G z)NPc!$9ofyzzyv23vd@Lzg_9Z3x_yMke#wW^!yyyslv9M|FTnHB`~KyNxFDY7FMbE zJ}p{ZBFRo6%6Io`s+S;TmBpCF+d*=9AP$L;3D7`;`~eC%LBqFjNHZp-P4{Or=YFJw ztYe-d*{{25S_>7KtB%rkm_&%QTU6EO_)=E^*&czbZ1FVKmE2E!!9Pj72X~oLkMs^q zfEwB5nhbElwj@eQVtN9adZ0#I#`9SNV~@zUGDWD(^+1ny@**ES1lE1X=Nybz&A_OH zLV~gc*G(AXoM?=mxIFSVJh2c^i89IJ2~;a=x$@vpgKb5B@ixk86+#DVu9-HRVz<6- z;Xo@ujzP{}R+uJr7a-ebAGlmOHlu72)uQP7a$_And)3Eqdpf`89=tFPfGQ@jV@=bm8E z9;i?^F8N?iHFrNz*tF?uB1LT}y8ajH7q2xkeucJFKm%g(kvc}fKd(kg`QC4^lSkNJ zyFe(cy+)A6@BR;5`4`iNGt}phKFC1CL11O!ZmiJNAP}vw;nlB0Jeo`IoubIW2*hZV zVw?-&NOaVq_RN==h7tEY4r9aYQUw=aPy5TFF;57yd`3~5gC=$O_iaJVxZt)$PeTIW zOwQKF^30@bmjn1NIS%#b%BE`SRqb#F0R?J);8?si@caY3h*@yBxb_tFIpldm%0qnyDQZMX7p* zU^E=tK1Z`4NKbF=fH-%e<8%h~I`rY2KHS(<75>Q$P~sT2Fgsj+=cG4Sr(0iUS6(o3 z-?qb*x4bUy#{6DpJ1Bd|trl#x)cRduWA?1lxb`?OVM);riX2F%#9QSQ`gS~7eHGH|zcMMVJ2^pV@na3-zrycSQLHDR zZB@{-yfE#37(HDZ3da9UM_(NVZOFL8jmM-sA>Nw1oP7N^(8ue7I)6?OtG*;_)41wy z!FZWCy`EE_L;B!>eBE`v>R6%2phWB6XWw0s#V_0XkRk_iTC>E-BQQaGyG5yGKJ-=`r>Fs_e!Hx6c=*E|Be33rTjW1e+GIZlh-WvW_7~fxT zBK{<5qmnU*`fhZgMk>>Jx3OSi3G~H;Vhc{@YE4Y!$%7vqMu^s;!-@afaN<4t9m9oQ z0I)>K4Qc4mf(|W6Xol|Bk-;3@uOrEU?$?oAAi7^ic4g^)9Z3%Kpc)y}(t~OwInaY@ zE^soa-4)lx$$<5qO4?EDq z4)k>L|M_%s!F*HWY-*`pq~?-sv$=}bWcGiGk$nkOrz3}3^z_x!rDad<_Po}9(nChj z@D1+@-9INU{PpBR@nL7L?55`vRu|o(4mkJ!EIZQo-V0~%N6cSK;I-IDtEvdP!K3+X z|FK0`|CP(Ua4UC7FG@@EuUJb^k!90A(6;BAB;{|yYc^Ty?(Df<5SXCJT~0!&XxX)` z+GO2+eJ3_4{dL3Mw(zRA*qn5M4cv9x#KAVF`fnnX-`g*h!)MF4>3iXV(pS+^{wLre zr#C;PK7{naV>w*BoRxb~!AdZUfd7ea(q?Nm@okj9J%lF-2ag@OK&(n&HY4Y$;bn&z z))Iz~1Y^rpj9~yJ-F4V%m0tw7Yk)JSwba$$9F#nF_6?ru2Hs&2IXv;_ZE8~6^lx}b z{MyshhmbxLc)-O=eg9RxiiS|22qOqqE395iSiP0TF3?OyN4x8t9z{6czqd>M>rdE)_%rD^!#OrUpXNm&_QVu<#l~KU7i0+YFRAY5* zJ6wFD}|_Be{9Z($fo`H8&zQbFfE)RJc|l|#Mkd_ zJ0dg0LjEZ^=)<^Pd^e0>!>h?~9!-x{%HOVO!;|)FCoT8Fya}601RCdafs^rE7uw7l zDhRYV*K`$IxK_rt7fe6}$W|_&B9(erul?*n?whUUf9#}{rtrZ-6pXwV)vc`qX|Gdr z!5(yBP+7gnI`a0OJY%B9F9*usaO^N$Nj(R;jU8sW+2-q`s6qbLq7E`u+CwiU#Q#4PQ9njCu1I91= zve{<-*`Lrz*-}K`$hoy@AQ#T}y#+d~xgRdkcd_1`lkQ95_1PH}2l#QfEgT zgML{JsHb~f-9V1(^z49}JM_bw_}S%tw9Tof%6)cf)}1h0Az_(b%ui`%5(o$(q^erA zoYQ*t_Q#d9y9)zU)omI67w0ni+u%R_du%X&<8h#W%~2;Z{J$#yH$@XL<3Dk zAL7p(oBuf0G7e2bi~68vrD@pM^uB7pw@p*c^M@0SWS&qYu?Zyc=+!;w55<)|N$tFJ zqd*(JPd$@&e4%EVJSF1*>iVoEk}#FQARnGVpjT>=1}@(^I0|}|8#)8`K~p>zuK7gw zTa=f5qYTh(%dE}ZMLB$@_!Ju%t3&-Ra*S-U?Xm4YhyZoJ{8prPCn7`MH@p{!=}$Y> zlK(FdfMZB~V?wVNu6czoReRomt7752Vj0QBqe5j5K=cW1Ls-!<9s@`#U(GK`xjpy- z={J6KdGlz-9lAtCcP9X}p1iC~?cPJW_z`$%qA#!5V{7KkU@R4!_WI<(0oa}aFKo4l z8m+HFA6!umDm$N>-$)9A8T~lFqYcVPG;( zVO1Ge?8m5V!QXJL;+1THg{w$&padv2{6{AF1n^RLV)Fp}*1@BN`rFIkjr`Q}Sb}|z z7#RN^M@h_)yQRy%!wtTVt)hrs5Hv$5=K2u>V%19~ZL)H~!#9A&Za5!|?IF7pv|HJ{ zP8aKigu`l2`_w>bGXhd`2S@Au8dh3|2IMY}uV$bvSCUdbhcSF^#kO!-?+rNJ7q99- zo`(znfJQ8RUBM!USGhu@g8#r>pg%R?UooTI3nswgOkF?r_<03*2roqY^T?ON6DK7u z5ZUx%CaJ%zgOO%vZpW-l#`U}4+mqXvF(bVplLj}ib$w3}`x+4B8q>&oo2;*!%du0J z#W9$|k3TM9U0_AHHu$HV=E7BERon@x_}XfMqKY83Civ~(vO?+!(i$*e>AB06Qs;&A zK?WR0jbR6DBYlRa@XAknHd2mGX~8&b}wdE?QR;JGi2cjgjKHEj;5Se0#r04l~m2>xJM3y3vDV zu@~F~jaa4=$LEEM{254fK)0WUb(1U_hLQS(`*3Y+Mnec@hF&05w5WHbTnbXNhu`MN z3{iiZ0T$v)lFVWVc;cGvPjPlZYWd*L(@h=KTp?AVn>xCwqnkRaxk84WZtCc$ zj*jZETPYpY(NP^8)%|--&>dL1150;c=??6_B2jb)mL994$LbaWP~;dHJyu7L)zM>h z|6UXHw8Z~ZT0&c_T6W2j_5Uay`{yhfn9x%c^b`d>MM2NT{wwE6&&DpJXJhHvSQ0v? z@Lu2?EZhKu^Y5+WsouS*{`;13H+xh MuW}48d*SB)17A=|u>b%7 literal 0 HcmV?d00001 diff --git a/.gitbook/developers/modules/injective/peggy/images/SendToEth.png b/.gitbook/developers/modules/injective/peggy/images/SendToEth.png new file mode 100644 index 0000000000000000000000000000000000000000..914787ed67a5f75bc4547fe53be893653222b865 GIT binary patch literal 486210 zcmeFZcT|&E`vnS!GC=_a0Tn40iYQHghhE=x;{ z&^;<@P{jA%(@C{E0Xq^VGbBXMyB`dL?<@M92XawD==}ML^Jgu$8_8VLJ27(S4#!$F zC%fd1oiAUS$S0hi3MZg62)&G9t?Q&}n4Nbd+nADkPR{QS*pEu)LpB{mpX=(jJ-^hZ z&AHcBo9l|aLK2KbAZ)kY%wmed=xk}-NQy_;)+~v6=IG&9=Amqt&UG9Vb56K-3(~=! z=DE3FtUXoo-M!ZJsa>7DE4?4y*`Mn4st)JaJa}q`En(iFOkzj$LhQWZ{-%8;e2V<8 zG1Fad-5y=vz%E~_PrZnW`LQ|oVf6&tSg-mH1B2tIvOJqMG zhRQ?qV_IAy|6pj8<5cg&3w=qh4OhDzQ2*UL8wtP7Cu}!-$HiXq;rY4C_gk~uqROXw zhgGhr(JHu$e~;Ps``xo8llWpMMs?O_34ymG*)o@Zv}!&%GZ0XQ_g?d{iA4|})>R6< z+jwmzqfWU%e!KnV3693(Hwx*)=4_RFqL1f?&fj^Y!lOmLz$W|qHQ2+mGSRX(Zj0@^ zz2Ek>=(!lKb#1oT*3(~I$WksA?z+4_(GfDSz7+yJE?Ng;51ixZe6ii6E%fa!%r~Lc z)@}QuT|#&TmWAHz;XHI`SM2>uM;`pH`tsqvLkBsy~PmVpx)-QjBnq%8InDv4E$vxMp=eNSn@%HbTjoI0DVT$u@?OP6qV`co9 zXz#Yb?|xG|Zce?Wh8)hmZ_`TnR=VuBuC30ObI19iLTk#D_j2F*!*%Ss&L$`0%x#^7 zBXj&GAWN~kb$1;~OfZ#^wA_>aTgq>!SeI7l;ip|vUi^Lc{XUpoQ@^EH`TN_HkxM?( zK>~5VCm!WDNPlfqB}Gek`}(Z8rl<1!$@znYac3`w>A!g@*nQDW*ngi&TBeb_B%#+(;p=^dO;Q3;dDu9y-v=4_}q$Cw+SIx$NT(PtrVpfM~-Jjm&HloNoCWG#|Z+wUKedQ#XE z;I@(~k`|YmlG=9Suu&qu|G{;^swWi@<#!WLM{qk41Tn~L%xIX2>RGLeJ=fc+Txjd@1C<1r3tq&myPb;@yl0-uPS+z zd5F0*cQ)m;eP8!~aL(q$Z$i96gcByvCgj=b%hl?Bw78^ft2t zT{&YfULjU-rRshK?UTnl>(OLys3-k{$&mc#vL3$=PFT%JM#a`nu5Dbm^%C2jzsj3B z&>1A1nOJOb+ajep7M=^QC%Xy@rtC`zOM%!}V1~+wew@mtNTT1?(#n!L)t(CBgU2h1 z32V$}GqUm7rcD7&oKC)z1;{umFDdTf7hy>SuOIB9M<$l zyiFSK7F;^MR+9QvWhLlGw*J_K+S?s7- z@459=vyU(ObIxfES$A6sS|f@~%EStO6xZ8&J3*n+Hpp7BQqyvAwS$rC!+Y|Nl=6h} za2*(Zd{_V5jg3#&I}bmhh*H%jZ{2~v{C1s^Lp^&cgFF4{j8&h2T&3K$(if!@(i$c~ zHFmX%S)aA65cafy_Wj*wpabRuGg*S!XieqOewetHI6ShzHMBEk=ON)G2ZxAC!n4`D z<0+2v&T};+_2Bl6p84Wr8&jt#2k&~nAQbK1{Np#ym!muvP7}PEJtM0r$?c_eOLr%( zhx>&04Mv%@;3;x)fr&d};B@ylZ`D zQi~UJ?A%qQn;suMmpcTQ(tP(q^ai4gwun-2^j6u7 z#w=ns?knGs!8CCLakQpqlox%GMtgD6KxP`gecbMNbeqrtQJ&?Z1JQf9-+fT$4D8Ni zZlDJwoK-Sf_K$sOxmiTb)X(5K6TRaE%>`X4`cF(H15KOzPM)cRL}V~I4Z1sD`o}pJ0Lb{j-PXXv*qBWgZ2!i_$$o%sJJ@0e z4^4KF|J%OEF2lC%=j$A7Y;m4!oPU1C1U$2T62ODC&mYg*p50^P0)O#?M@TNme?HCK zmAmaf+dQe@JvJQ+Jp%*qY~kwf?(PS_0Shpzz5(DY8|3CCJ2)GgkRLIFN)7L$~MIyx4#}BR=qH*}=Cse^U>t%(* z5SxRrB)~|J)t?rE&O1K)_8^1%=?? zVEN!P@-YAF3a3<5R1{90RyciH4tzom9_kn15+dgZKk~;x{&Sr3?r>Ls&zk|BFh2>_ zab2##0s}M-A7-8C|9<|sPWKSczs}?b|MP2sFQ~wJN8yzGNrnGAHrQ32^{T3wXNbFx z-FZ)6aL>RwG|!wpcT)Z54*&JmU#I+KSKGgKJ*}+t|JwDJxBkAX72Mrl59SL_8ld^t zfc<&iU*G(5M|B0(cmL&H{Bfgyz6$QNCbzo6|Bad^w|Ab%6EKhmJ>a}%ErZcn1A+=42N);@P+-B-_JXk$jCn6=9S3Zb@<8~i49t@ z!ccL;WF1GizIO7~>BvMzgVVaQ?PiLi>N&xO$P( zdUrzB)29LZ{^xyI$4!ckF1i0do#8)Mangc=qw0)eChxs}a(&v`!w3JjZ}R7PQjf8- zkER_k;nMrhiT{_Yl#uY|{U7hxABXLI9v!`SnI}Ky(EoDy|9ob5f+E-dIx;`c<6)?+ z9rWhj;QN1caldt?Z~I51c}7w~Ld~LW{^~!vI8L{|e-LTWY`4?+L8uje3pn|YE{>yW z=AT4N^t;QD-@5w0+*IB7zfS{jv)S$7|0H6xufE~rbi3|#PIT8lxd~v}sQf1y{-?P9 zciQ~6``>Bv@3i@M+WcE>{z;C@<0Tckqb_lxVdahL^^6Sy+B9+{(cO9?2 zyW+CbuVMbpN{sksE{SNYJW*3pKa)OGrN#IWk0&@Y!)Sv!3`;$`c(IwYjmjbZ6RloonucQB?nN6-Hx&c&>Y?-IH9Ozhp^fCw%93}wGu>6;XRLh0#}t6a;szi_2&^m6G~$@UOjWK z9+_!WY6#*Hr_dJf!9p=8a>;d#Vuwf?{^8_p&d~ua=4L2WEoHQZ@mQ6lV|V+%66IAd z!1UyM$OOdx_15i1Ly2!Av2Gc1<-w!wDKjrsa-_RPOLU>-n=MQ#Q(j**&~nRvvh&E3 zb1xlkzTb|bm?H=~o!51{UG3FmPTFXL5Ga@H6pxA!GznRP=Rln{KBug$VIx+e7z4~> zuuwEK?BN?p33{72qhb+>i$q1@???NHcYYLp)tmT2E$y3fL$*kw)Sov=I`gKk3T--Z zcDx&ezI8S^bGEnsiL$W#G7%Ql*fe)RVFCNzQ7~a^y;IBSiN@N9le5Pu2`pu7Zfq!H z2TIzJ7$$Q0Q{rZ+>V57i@^-hzRAU0Jz~XE~gYJLD(aCr~eX46uO8v!SU0vHANhx+t z0+Xziq^%FBn-O1+yXy%i<;249I6^IFs=Z&0I4#5;w^(0XZ{dJ+q7&9O$KpPX*_88UD|QB+nMtsK|)_e**-&l z!)U5z?)AgEwt*-H8IMDqdJ_G3*l@y)MXTub@IY0-Iuwj7tsxzE3y!@UoYQ3!rjMGq@rAFkBht7L15(M^dz9gvcZ=(1ph~mdnYhn{d zU*8pOW?Go2B zq5aNZ3QSVr=d9^kj$utpgTQz7W8%#9&Xo_+nw6VN!7YT+WZ&kMr1Dj#*)?oE4>f{V z@aoCJP8_Rx;K$(uS+MHcq+lK~w<%8^@!z_558ChS+`A7yzK{HBX2L-`$mwOH&s{2t zgurW%LQP3z3@9JZpm)5Dj-NDUAI;NP$z#@dHYmw&eTt{vM>l3gFNRFPy#I^CzCAAl zSoEbIpVWSNEBVq_R=(~rQ6pONhm>N;Im}J}<@a0|1uo4u560NJ4t@+*K)y!ck2~8r ztyQH^k|(y7f)yZNXOe5-wfXA!WB3L_8KJa_P}Z1?K`jNMFt612OO_mxPbqAYlCyAVH zDKQ3b9{v(}e@5p{@EsgaX7T(It*MH)XEmwycrLAV9a2Tzs7J;#**oys;1>D>ev1?p z1xs=a8qIsnzbKHs9J_*JZsAaPvehfpO3!h$Soq>6sFvyEdWUkdv=*%!fo^EtCt31I zQX+gdD>xag(9*=cJV|Y)$`MMcO}eMf$qZ~`q2{(Pt z-Eh8io!>e&!u&W>Cr%Al=Q= zk_yLI^FF+o1nw{X_ajf{P<~ppX=yFHD&Gly4;4}qIT`YTF{iI33kw^}SQsjz3N#y| zXR|`S-yb4-d{o{!Z0q`1HrgIVn`P4CqSoV9e%Duj8K!bVA|uyWR>lc{F3Fs5IuVJ< zu!+y`Yw#TPMNaf&hcDS(8>)4T_|c9(B2K$hzudahNSCKCIZ~78X?k2C;@i$*?WIUM z5fjmPAU^1~Q|v`kPt?kglW zgWd;=9E@lT%bvQNO8yZa6%jgfCdba&F>t6kaD|T%CmLicXkUN}dB4-iOpHF#ISl4- zGp!FMpW+neNkYY%;Z~B7t4@4jE019juT(oWP?j>0q;MP*mFb=Rg)n=H%mPF6a$y~3 zvaisj*J&gsgM{BC4>)&x19KpFG=kiRekHy&=e0PisuiZj$dN95n_0>1v1$ISyapMT zEU6!|h9-rS)(+d_zgU>c<QuPu3YHN=Qmx(5AdL>T*QJ8)N zIqq+SlV!oN;;E2cS22rh#%lh6h@pt0M8>VqK5r)r{&l~)OteZqS8XhZDFA8<8_QGT z%(ud^C73=37Od`>5~IFd`I4_$>!iMVt8nIW$$$oR+<(~aI!_a0dORFdVcV^g1>7ld zBwqCy!N8t=Af1hRQN-60Wy3TrLqhf`3@gge9T!!G#mcX15bPv}x&=%I>i12pshd=s z7VNXQfB+M;m=9@B0^j~dcT=B(Po0B^z+uL06k}HQ`Dg?zbM_Ud8@97y1XJzMGRas& zQhD>yfvU$9)>K9a@0jWamzF?p5I_SZ;Y#GjU``#bthGOC3lrstC?CerDTX^yO8rz( z_{MyG3Jdl#QvCsFel-m%k=L2<`BK+k#exY#6vcrI-_Ol`174cW1&(m>(B_fZh;XK( zlY*6Y&>;__E#-x41NrTnk+zG?2%@)haX&ijiTa!lUlF6Dz?m<66M#DCR#ZCHudx)_ zV<4SnnKetfvqlLCr7so6w;lN#PkvGaq~_{VPoDgOgKl5ged+6RZVc}N)`Fv&4>6}l zPaaZW0koCiC~B~zVD9Ji7sIhTnG|Pcty68$qja-R70Dl=9P)uiY(HGZ>9$){)N?ku z@jjf?(G)wiSEtJD+WA&MMXGR_i3&TsT zQPhe!jS_Bhjb0Sw1ae!IFF}t_qb7n$$0_7&Eneq}H0hYng!dN~Ex6ycJZ;>y4hNXz z9VJfgaw>JiHC~P{v`cTp+Mw&C;O0W|yMQyB4hrSsQ_tS{>YffX5+7s^**K$|YI>(W z>5Dt|tCM>tS44xyE0t$w(xp*6jLp{?YiUe~=$o)xx;Erm%azM>p3Oy7uO1QlZ*ii9~rQ*rRV>7)KuBG&obEhzmkj<1*^k%`; zj}2|fwR+duhKp0AwX+S!rkr9Hwv4YmsqG|ydF9D!V~eyYx#H|!5Z$h2S~U4fZ%xC zo4E8XUL`FVoB%AOO(YqjqKxs>WM;I`GFBQes4^R4#0yLZt;`YhE)3i=@yN4KhUTbW zBQgEqJ_9%d^S&wf8?EM8noVfEYH}^XlpqS5P*X*M#b(0~9L#6w@jPp7y zPy5zc2BV2jK$5v%*1WMW2^|QZBpdpTV*TKE&4u{YyBJvJ?^*7J$s=X5sra_B4iT7x zx!p}$$x$4WLA7!pvV0|)9|-A^I=PSO;*0e~61Q`he_LQ>P<_?mnMezb)9+_IBu9}b zqOVnZe;A5$&YUO27T;uPY1IBL$opO@mV^&1(jG=$7$CfQqFQux`k4|&z0i6+hv^xQ zkbNuVkSXi#2-U5E+~;XTg%xE<)u{K3To=Pf_|!F?235(1!}(QRrvCmE7LM7bOjI?2 zoR&J6(bLgahfjuDA9~Z<7Gy-};Jm1>5?>wPi{X5YO_CyPnTGYhZczyP^suO?l5#x= zarx>g%nM5kr%T>(A7-$f714__nB0vsQi`2pQ%Q#JRfHQkzYZcnRc%anO^Yf#Fp}4< zHEUESihL}P;J8Q_Enput$cm};EP9>Ky<8v{RoukfB9%8Ig*JlQA~0nRRPwf$GkjX+ zR%%+$(#r8;Ilkmzy@_lvcT=J^@}r8Jt>Y8di1Z3}1tBjRl9%~x1d4e@3`B}2Z`aIQ zAv)~KBHWx@D4O8dMQwY%QTLpE6i;lFhU*^r8-DQ62Vgy@)h z@Gv?@hM0!vc9(h#mUDLVJDDgBuKBiCPkf6LcUqeaCr!%l*zRPif`7iCw1!GLV9LLF zIr`;~?5l7;<)Ur|#dVby&~L!n97 zUD7^TCvm07$uX$3=~57~G0DPIqt@r`w|gLuy+ogrJeaXNxG^2x8g;6>6pfWbYMEBF zXjm7vroux9jg?C$jdI|c$m91tP@Eg2(1Gx}V2zVzI0w&hmBgEV4(W23TvlTtnY7J9 zM-`KkdA(jEpb>u{@*O)@jc{;SR#7aaR&I6#pW-};l}C&KI2B$_J}PK6h2zzxl%D;1 z0l`y*OP@ZNK{{yKKG!?tpm!R^pO90YcP*eF_vpgRW|ECleXkVRs^7^Y=FrX#NLO93 z%F_5jNeQ)X_{q+sn?bEqVlu(JsAh()iODvSuYYZiM95vLoeKtyraQ=Y@|dzU+@<<# zw=zEZA!Ede!UtH!l6O>`$ry48?GV4S7Og2A+CMNf>q3(IS((X>Z9-G9F9!Yjw_3yj z@Xg!RRX00X6Gg3|6BPeebt@uR90P7DpZaU^s?sj1%#(#q@F!fheKo-!jrg3H{YCf$ zTI+1Ss^^3gIUQp;bb)|@ypfC^@`H>@T{1^n;*5Tm_?8?*;5Y16f)ule7NRc$R2$^< z+MAfMie()?_e|ex0MgdB+nawob-OF*tKw}GU*vKOI^w);5~N>go9ZZakN&|=#Ub{v zfT_pI)-S4EhA!%ZJQrI%XrgB2f*D^^WXJ53f17)B`uTz@#8;|m)Tcga{Z^-_^0E@K zFgAFlTRMf+i}e}zfNqSb`A}=~8{g2ZQZcSiP|V~~uvt6S(nHj`_H4g&R)BfAI1&3j zC`-DnLlb`TP+RPY4DvGA+tCVg?nSMKQSB#>s0GlDp-5KrZkjpr5ki)IseU$_@^ax6 zSypFZ+&|1rL|Otnjsq-^pJx*wA)Z_6`P9WK3Yd6X^Y+sr+)`&p#Rg(01j1lQTE{V$ zAHpr`?FgN|#Uq%ssd%mC^iCpTCQ!Dbu2V*EKfGUZbIb=4onJHskY1FMaEgwgNOkM$ z*~>l|I`dhE7QtDRM-!I|Koc=bSHPIZi7g4c-z7 zw`KEc_BN}_Sv@GC2s zsxM}jJ{#JaKob)|%3ahBsw}$>kftFpy)r+`@_y>(+&30l%it*V%8KkC`iv=$z#m6hr4P{vcN14jwOpTfURjhv^v8cD zg-rx$D``1-*({b~h#RSFh{#OEl0Zd~ARcH*%ay?vR`@oHOHCjf4@)#QMNoHTAd?0D z#*(1(0m-+b;umK83rP~o$v<;hrec)e{IYH3=omrrX40>2cX;G^H$h0_EJB8w# zDOi`3rnH+lR$tOgSrCS#N_C}ZdpADjPcSyC6m9icQuv1RkU4p1%=YzxQ3p8$`kWH9 zRee9MK~g=9J1S5_DB<$EV>$$nijqmGc!()qgK=nUF%FO%;l&F`okO=@CtzM}PMpNl7Ed}i zW3tz3@~s3%2=0YvHA`fphP#8W>8=D%hF(V*1UmFB&_NAHEdOSDu`**-MN1bMUR<}W z3Z>i;@=VcBxOHI(ebFEM{o!d9i8^^1L#tNzvu!0!u^r;~;i`vTlk?MdgM)RsIesn11 zKB(As4}!@Ho5~%QeEy8su!FB^DR=ojfU4G3!oBpiv3#wq`De2AeL-uZ*HZ#9j!2{o zGTXHFZR`$0GB&gY$STFoyb+tD1CiGJzk6C|^*wOhR@Ek(J}jP`VAfGGT5joYtk^>v z%YE0XGMj1PPhV=Nh2>=SJcK-~J^rLl?+ay(;woD-V~y`i4ox!i9h_lNqauE9U0}6k zWVeqa1J_gdes+l4HN(Z%XQi)a1zOv|P?WHT=38gUEu#ZEvj(sjX6Q4o(neBqxPf-f zXtJtAM$u~sJkS5;1dAE=XHm0O10^_bO~!ZO7MXBjt&MY+x7mfSE>q75rmdAk!x~75 zw8Jp(sInHl&=lbXI7siXhx~huKL(a1cv_nTevKVX$27A*q$E4TBV#(#;Ht*AN)NQd zLwZFJV7zRG&I%l55lVmrlUFX+Ypcuh4pm!L@!CErKl{nNw^C;+iF{IL)dN5B=0dpB z4608FTN1JQN?eY1=tJ%rm_JPi;%34j_k8Q|$$b}&Xo)LJVBHTkI1GILQ3k+cPE6r% zOqRrUJNDBXOuG&p=y_~oSW^od ze57DjpI*6j}QCuszbH>6b|o?^}i7%8Pg)0RdQco1lq6OoPZa zad^hmMoV#dbA$TUys7gW^W|I~h5G4d&0eK;`Hq#RUE0PEG~1Ob2!>jSz8&>{NRE9# zSR3iotm9_KlnadCh)ck}pMI<~R>18$jGe9ol=|5l2kXM^7r1CSW?h!Rxbbg$dIm4w? z$mW1FpbzJqS#Y&!%sV%$PYfS+{v)Io%zN{7*hl4Yd`6#;dAwcnrZ|nAD)BylUqx`a z9Mr|tCy%rD{8cb-3PX;5Nxlg{-C={f{SA_vsb&V%r#%|OJWzgq(##iph=NGFyG{K3 zCD`j)^wE_EHcc-h?e1B*6x;k?0BtYepB4$)No`Ol+@0>#*q7W>QMen5T>Bw?Fyz}^ zVct>)TUbh`&bKizw=CBuyoyWH8%5}$vfeBT6VDPBoeLDz#4Pcr4|SGDZ4pod6X7Hj z8Z;V{;aSr4Nvj|e+Q=CRzKi8@+Wam|9X1f`^@vu2)fBTWwJ;fYamF|CFzmDeCiL`; z#WPHS-1K6})#qPBswKZPvbh#NIhXjU#1mk!YsXP%dXo5+Y(Y%Pz^aIme@y4;4k=!3%HXGj9 zUEH$yMYB^3hby6Fbz5s#s+F-)MHWr{7+#$f zvC@ry&lhvoyYNSF%mu-Q z0Fc5kSY#5Fp_~2sz&vzvCHX~0(9g05uvE%5&Du_N3CCvf1ReV%`MN>z&n_Hb7I-enjlq_rGpm9xFJ}QO!F(-C$45P`Z+W6aCVk6M! zxi)K7IHz;pZf{OSP3*8LF2$i;F=mE9VOtyJ6`!_Vgyi>Qc3AD|)vALv66;XLEW+Go z$cnI?P>OUiNPTOBCgS16s~&^{3BFHk;B@%`ix&zyS-=TV1>mWmB$9W)RX3y0ECB8t z!%;Ezg-Xo$n{;g(2IQ1HW$OK3D%%Mz4oH#IZaXBvlXcwkGl728iCv*m(;*-B z=zl3*(~$a@3gyK4qvcTeKEsHCu;J<+R?{6$ntK&54-77FQXt*n&zQpTiuVczc&_Ce zX|E;d@fH^O4PzzMGolhmpUo>3gZhRgB{C|;g`1b}&UlbD2Yll#MyVONO%IknHsjcW zYR!#a%#|(Zt8n3nFWd)3T5j(p;spv!DjNJ)4GT-DyMo&6P;S1$t2&pvQCbB!4J-DS zoKMnA3F?3$yAuZlJ14l!ww%s_{j0r(#AqM7^=RR)Fe7t4ZdD()3PY+D7ho7OS6R2|gvnvaQ%n2_S*t4RxA`J+i=-Um^-@0Cp_U@z0k-}~QIpCE1)5Td zw8p#v9*81{@||4b5jR5_!3G+1A7$W6RI%@<&XBNykb5GW0(|&E?;~dZ!O3Re$>hYzskiMeq3TP~=}V zO8V3wIi0$Y(`MgzZ3K+EBd^xxvh45mpz){ZUM-Z*`1%=$(j=Egdnq&J6EYtaOP=z1 zaTPRJhZ6Y{G`>b}Gi=QdG)j=W-B{+^DH^=Eb6*goi=`CcR|ic=t9u}oZ>lERg`LMe zw_J|%aCdo3a5}*oR~i)C${>uh$5pa}#ys&ld|_suT)B)T5~HjMv{_|APwSJf`c7p3 zcy#?ai|wMICtWeipLIK%jkJ|sOj>>`g_6%LxWhHxgxxIq4dYw5t%{iI-~YoSw|)uZ z5Z}1e;7tR<<^)u-^Ep9hVrhHnoY$a_U&-bKyBM8DuhC~b3A%h?}|aglTBV<`?Or1Gd+ zqW?l+esZjag<_2#@ZGpu-K~z)n5*=b$@8{7lJkkzOwMCHcOo7L11uT&?=ZK>pZQXIQKL{=@ip1^_xYMu8uo7~7Y>;aJVH zv#U-osIXxp8QGM_;#BY~v6B=u-Denw1DCoXOPBy05b>@U_E56rXvFjp@zF&?N)tid zZf+zP^8B#~r(y1zatqCvG{S0-PB8$}GECpJ>{Ms0PlcDyhMzXsJ{tS*42Ivtw~h-a z;#QYn_#_)Y`6Z1gVA-?1J4e`Fcp{VRlDYOQrRlZ$%&GW!;rxR*0&*DZu&s7 zNdTlvzCFTzj@o9vS}K}==+YB2*90`&fZ9FUH)tdq#)rn#?Gs;@a~pp%-rR0~R>ivw8SkmSuy80zV3yl>=y=`(4-QzM z(bv;D1F;VLy9=R=N)?xydiy^rhNkx+pr{ZVV)^)&y{(Z@&{5JkB1Q))Sba_sivUKz z6s)zCrqV0=B~u(eBbl7s0u@FH!7K(@wn6G3w&W5mixiRH1Zavyte>s+8p{D<&{g0^ zZJO06)~2w`hs|E0EE}g$>uyiTj#=v;eb_7c4L+?SkjgJ|?+YwPdsl)8s-{A!YXJ7K zoB)On3oHi-#j2$=g)gjkJPdI8Lu$;bet=sA+@6?DG*}~wF$0Q658*tF=9*RR5pVT0 z1m2xjhuQ4!uL=?zJ5dZ(`#te%WPe&Oq1_9l3^?V~?1g?zY%&mV%ab{~t9{I{*K-g( zFXF^h=Sut0$$(4y861knhw>bbJFmVJraZ=;>O5#+jzCQa`In69rx5Ih2|u$)$Ykhj zlI3AoodROs2+p{aU%%uqp#KN1D8J*Q8C;H9lTCvLVuNuA^r5(e=6)?(YYX7Pm_N9xLIQKq7c;Qisr_r z_87wR&rH;M66^73aA1pDi}OPOGT5gPmEJIy&1c zgD_AWJqYWV@6=-4!oBe>tM^c$j>GB6k2kIz17_P(Y4_KK|MR~9I)zR<#gxUf+!Q^) z{HY=BT66;ZXBA&mpg+pXT6_t0sx=WWC!sbEuh@F^(Cm#Nf@70h8zJs~*`LQGZ+(0v z0@#CO>y`2!|LkCffVqi9$_tpBdx7cONG25SMgYLKnw+m2bmtxQZKp;UdOvqg(y)W7HC6%7FyO2edB?XaQggk8LEk=#iP;3&XWAni}4!Jj@DZN0E`hc7EIb zH#y^^J1`MgC`mN@(hw22tr%3JtI#o4I6@l5}@S4ew~WXOZ@ z(Alh^s#p>~zny1ZQW#-Z*k{G(p8>`gu)P#5iv?P1b`*nVCHc0*8M*1Y3GRnY%fXEh zR*_;&d<04QWP*fuwcOE&kD4=!<=&~slcL}m1P}CxU(KhBeHT!(kV>i7wn!E~8bQv$ zoe*{mxPmGussadsu;wJayb6prwbTt5(Ef@O-0F&6I2hvh1TH0jSRz1NICFK zQjY`2i?MTHk3oN$kpilQyO9BEwF1OIi&AJR2P`8~_Nc|EG{Q$6E>TPQ=JoH*$}E!l zS?+``G<1Ar~_=9c8;rHV$r$U0Igv<(8~4WFSV8Je zqzeua+$mG95rl#Ll**s*^wpXMftk0%4M0=5Rk{lZAh-f1x&g1hn|A6$1QB>MN*Oym z%Yb(CWjXV2y-TVR=v_QT_H6y~KNEnrdJMVSSi5MynS<+N#Uk0ejiP0)z!6qLLA>5cqjsEs(kGgP`%>q zC|6k@31SETmDNh&fn(4QKIkP@SKK}cfRdz@dIoz9XZe}_;<5%W+**tiiyy;#JJaoP zP$G8?C`a_gYE#;$_{c8+4`F@dV!~lc*}J$0XSuin-FrKVvU21vfayImqT2y@vu~hf zJjX>o65|jEc9!uW<35MX=OkV+DvdRg=DgCk)#MU2YGCwOj7)iy|r&j9o>U=pKMTl(%V9!b2~g z!~?6ZmwZt+sR}KR=8PpI1pz?I-{$gvG4Tc_zVR`xr*V=}*6h~|Iskc=8Dj%@s{F&( zdI#4cy6NP;v@mh9#uI ziTT!j&yceUJ5$z|yxYF@67W(D^E-Lh#eU(p_O1gN3vb1xt6SYiP8 zqic6*bYopC2PhOUJ_nRz-mR~OQBEU@&!1t7lwpYtto10!5|-xE*jpyN5uwZJA`2)cTDQr_NP+*+vZu=)3-Btxj%YWwO zS32RtO6x^tH{qHLun0rGa1mS94}~FZ*++r5+VT>*>BhZj3ltT|45IsPm=0kdT|X0% z#mGN>OBcrymk{TMTrszLdRVq=!#lV7>cG+_8^KVx=8&9V_!;F$IuO$2z22 zDqzg7@KM%B>qakFk$rwcV70M-|Fr$nld$Uc6P;O5Ej};EnpoueHv}f7Ot7AdSnf2; zduV2}KUA~eu|RbC>Op8%h_S_`W4JV;_7)4nZq4Ot2<=oEUVKHMlx(#74UwDVavX5>qza;Rz+p$zpc~VQ= z9zhurF=8h?A>tl#^JTQK)K#vE^uYQbQn<3Z>qV@aG`-N?(=E50*dz*-8eo7qP*>i|rt3;v|C zoXrEDTmp(D9^^Ozb|Cj^@QnA2TchO1l$-V&nKxGe4er>NXBp_j)dFZz?7|qPY5C2wGS3ca#( zZ&g3`_g&l&9UPC^QrC($5bOy;2Se8~yn7;mqn3<_q;FkWtRfyApatO?n*6xj8hr)> zvs?rX8h^IX&4E0CpJEvxfIP4SU1PGem<{F`AmX!D(rrKwMR83panTt4xJp`vi>*L{ zsFbV9-=Q!MD{M}3Z~S6ad-sJq0x$(~TnBHyJH3SkWGmfodvh=MHlbZR-KA0!9^^WL zhPelTVVjAf$PvvPutICqFTZ*3w;0PNqq{vWLm^z0GcIXCH(-?=%$<{z@E9?Hga**2ZA_+@8^Uls@FuVzrOWShu=C2Zl;~KFm2o-O=gHzD)B0+CUs1s8cxU+U>kyLdfse4T9U=D1V4{=W z0rQXD#GUn-4A>GOShpI|_xSTl{5Zrw35LifVv#D@-Z_qX$7pec*bgiOe!J0#f)+4U zuMC47YvrQl#tNGMkWUJp^@ePT`ga|&S}xyz(Xlt$$4@#38jLKq>K{VJsZSrm^T0y% zXu#WUWxnUFAB2DAt@*saE&4h>=v!a1S6V%BtD+9vP&tdIt3MZ$frh)uCBqU8Oe=Sv zYymH3zyjb}%Zp}e2lCc#tAj-d#T}B!E#JEM$kkU?_`#W~yXxZj@d9cNT=`H6=M@rI zGaB|IGd^u+oOonN;PF+L<3XbNGi$7cP4_QUOPWQn`YS6N$J+Y0MW<XWKmwtQ(u>p(y3!Mh z0s#pG?z_=5_lz@hXU>oB`*r@HknFwRvdXibwbr|<_d1-6&m8t$$7V~VxsXnx09PsI`??Qu764^%L>0`M^HmG2OWt0V zjpx!f$IKsMnZAHhM*_d^w$yylv$#WSGx2MO#%0%wBLxqQAI&Wn9d{Vj1nm=i z0a0BA!_woMoh!{MawUEh?UTh#?8Z>}_J*J)r!DAuTmU^W-R`LZZVOC+OX2VbF|O{a z{N#@|^PLjmTF^A3ze6nCMW6La`KJG27&P-1w!tfxhCFXeW)U#vwN6+?b2nM>p)Jkn zhUYDSfzu8>;JXaU>2*&RTFXo_udbu;5~5qqfEtgh-WaP~u@lndl}Te#znEyOBFNs2TXG%V^-zfj#GFh>EUoY1CdbB+dm6MGTd=aOnHE5K`w3F z>naX;4j9s}2P{P3;l4Bju9<#SU!U>k)(wGVfy^4Z6a?t{U%qc&w}uZ8hRUNLD*$ok zF720^)=p$5Iq*G0Ufro?oOvW{GcGBIUM_%p__B~TKix}PT_kyW`GPW|-a;WO5PVpU zQv>i>`6*Qs_}JG<<0W0_=`h|+V+qX5D}h_vboL3R9=uQrrlLu9No#%7)0_-@s_S3i z00E*nzV4DL&S$Rww?pA~-_lrppV_ zfme+}28@gMUdzqGUQR54rgjs(a#K)C(+U89X?1FAXJmKIw0p!0=VqPSdEV?4?T`+9 z1Voo`U+K~sI@?tb>)ZxK%sG6KJTj@v#oKchi)9%0%;bL0mCHM$7ss#M=<%%Sf{*X2 zZ<*ypdZ#pnB)wQoG)2A+-MpNi7K1bPlh`W&BA)&XTCwwRPC?rRMF0|XOnEL|G;jNz zTf{=g{uO+8yZon&hJXU+?#UGY6bu#JZJEFkIY~VU9X3hEa2(u=lTh~zlqXtp zp8>6x-g-8ha2odwsi{L`>W5e5{5lbNv75 zBTz>a44RI4j@bXXwD(4BT?+QGXUqJ-xOM@b-qYo0$Pb74bx|2<%LpC^afdAqcX%Xv$7gJDgXfY;R!5a@`)YNn z(r#rct^4>jwgj!h3c~D^bBaUq7W2AK-+c~b+NaxcHW<~kLeq_L_v(-&jeDKXhi2ik z^Ox7$b!XvC`pcd@cuZO^!Fh<-TQ=S>kh~^p--quh@}n`9!&UT;bY*ObsSc|yRoe6s zHgS1{W+3qIayK1?{XXaCz?gQ<)kz8bi6TZ*Z{rMV`OHD{I@;+WQ$C~v3E&U|-%d?- z0>`B5FcEZ4?54V=O;%wuyF5Sb@UY3eQo8s)PX}}7Lv9}22*1Lo8$-|mow{4dEqq}%y9pA0{ zLS_Rx??Gj>o%k<{3!Pax7$C*^r^N*#eNm7c^n^#|KD3h_c|Fk#V2arQXsXX0T7n9p z{6J!k_J}=)^GAA1kTFP#zuH4fPO+m%0g>efag+=)RUj=NFNxDl^#=)%vUV5hKb`&X z=fD~Uop4|+u=b}D4j`A=o>B)PRJ|Ta8h-%gSBC)um~-;r>pwjkvb6~QhdZ0I2~hvwG^pRS$qs_Z zz*bN;J&!DZU7D{HPTDBiGA-^r=FWT{CMc}DJzBC2L|zDE;(8N0D{+e;V6yGQ*fZ zd6vB|m8(-g2Yi$OD-a8MisywkeK6h? z@68c^2*kg=sxB6cPXik;NAv#}&%b+-Zdb-(JBj?2o_v z`*r^3HM}DO#Q6KR{hzA2{`=+sE`jntT$Kvk)+0aUpAOsj?<0IA493UHLO1#+qW!;L zby5>VNHX%qzvqnqdG5d6=SCtJU+mE*OaEQ!{&b(`JV0zy(+Yk=3jeaF|Fk|?H^BH> z4=Q>7dmHxK!2TFdBM@7*uC9SUJ^hc5{_}nQR;z!k{NHNz4+HYITK!)o`dh93Fjjwi ztA8j6=f%Ih)gR8~Z*TR7fK&yLT(d7~RAq;}yg7w72X#RboMo8hKWe98**r%%77+!3Lbiy7@W zhwWH8r|BW@dSNshw7JPF8=9lAB)L`2fPLgN44jO|=tzS>7-7&7|26po!Wz&(LDei}uP{gRmoHVg1ID|5 zb@IVq6J1CM!+_ws4+eZ@`^%RG)`9UJoN4O*ONzGl<-Zm6f6&{%74^R>-`|S*-`8m0 z--`M_XxrZ&^?v{%e|yyb!At(_QU3=d{5SOd?{M~S=={#Ump6Cte}&4_qb@DM^kO6m|+0l(#ss}j4Msqtn6^ry)Jf+PwngdXR0RO?`bOv zs^s{ee|Z|v48o0x{~`r-Jm7(Hm$VL%QLyp>>g4VItEhh~!c-*zsi)UJci%4&Uwo3% z+I+DAytT z8>veCJ~^;ZB6Z$4Q@85uasG3#ctf>EhXIk)Bs{`YzGE?=jTh7ztQtg8EJ>y<3ION{dvMIdyj1Sw^qrco)V@sY&usA`^_qj zai6{PHh3=4n)eG2Sn=(~SboLd^p3L&Z0zcdra-`^fGk=G%}EOM9@wKh9$0NNpUy!B zix6efzLk_gPeJ$OV&KO|itO}aQzk+`W##ULheo6qrCSe^&T`0})0#d0lFw32O|d)O zE0v_zrC7-&si%=!mrpaK&u^;sq&aka_(_2Mj~BcK!M_QnLh1pk=9$EZ{qzcTfPA!I zyGZ3m25l4Pd2*Hwwp;Q&sYol4!)ig7fwt50+`3Sla$FDb=6m_X6Bd{d5O}bpfkliz z_z6X-KT-^s{DrvV1o zU~{?R1T?;q17ZvPWZ37;*CufE3Y?sQs|;=Gr8{PuDX!$UVL|^;bRMd+d3P4lY}W_R z6E?Guhnr65oW|Z^WQ!j4yQmzI!)(dG@HIox$D}AJiw(SXH_E+^^E0G*C&@@p_(+qx z%#5*_kW6Tt`0QCX&p}krlO8z#(-s9A0h{?g#D;^6LXj72bS%1bk4%e7gEm(u+4VGC zDl}wQlM23{M&pdu#E+aKSQk!g>qcLc2ZRHrH@@HIg*&D{6{P1OoDz%WcPiK7)6IW1{B}Ww(;f&w z=;CLWyI@WV9|809qWtviV|pqyP>nY+J)FOc)A6Xf^{L~k(jF#!2|~P<&zgb-%3*VZ zm#}due8r!hsR=TEv}E5QKlP0>Ek3|L>WU3e_QR3j9v?*X*Nz8XX9Bx8zq}6)){3s# z97y~oe$fkAD8F?h+RO{R*_{FcuYg?qd0E7EPr)R`)bGSJf6%q#~r~fLcF)V@TV8RSLJ?Zhv-y{w{jvm` z=N}T=nGI1J0mlVhBKit$X{_+)qBrZVNcw$^?Yk+!Lqx&UzMSCXG%jz79ODX5*avR4 zzi#pt*hd5Kh|SiH7RU%Z0XuA5>wwnA(1WQlqQr!i9L zP|j^(p>gt(tw`3Fvb;9h%HXf)M@JCNGqZ2PCQJZK2vCcm;=CmR+{%dv=kx?BPR;>S zo2Q4Iwa<65JuR1DmiK?Fq^y$cAizo2 z32CmETZP!3u>p6yHt@)`j4D_W2*`O|8-_j8M@F%tGf~)gS@M;il5MOY_n}LdHa&1$ zxE2RvTGnXoPvPqQ+K2c!lby0>lum=Ug|U$9CIKt=0XSmh!{-du0Bw<%R8j8vr4<8k z=N*`Ls^I4U`;{G1Po=4`q%X152KJ-RMmxt=6p=dop@o4b<3aJg3cXdE-9!EQ#hhi9 zX%`0_Qne!ITP57p(!)=bY1Z4FhPLYoWh8u0Mam&MdGgKyFjz>&Xdkftf!rdF4SHNO z?1@N=B{H_DyS+TKIe-$u-N1V+$D9=Xu2kTXnMrjB>w}>E^c3utVw@Pg!kb&bMhYHp zP~xFiP&jlv{Mj+9sOf?|*A-TIXfsYf&8y_~!f^F)%0%MZhRiFIjaH+s zU$zQs-_o@g}^Q^Lm9LOzo$fYCw&} zj{EJj;2N|D=lOgWya;&p(St`b!HbXbC*#{wxtk)`%i;@n4frKd8f=A&^DpWhbtv!E z5*Ks~w<^+e(NL6EIb402gPTb(Cz8XJJLu ztV*@OtmuO~1B)T0eY%Mv&bD;#ssA_&;IYpx!C?JdVPP@%*NmG@5iXy~1gn-%;(p&6 z4;#uk!Beym#a0Gx^6ZY|S3=k3ta4>YCjK@qpBSx1-A@lXIGWX(oj7|l&LLT>BK2IG z%X66904Wj`a{@JzWXZvjA_$NkcJk`--Xwj1`r<1YMF9?|1SzFuA$#Rt#_R)Ekz0GEt)Z*?0>Rnb3dqk#7}=CL zzXBb@`Ito;*SvnER@pF&q$h z%(V1@qaJpd4y-o~GZi`zvTk%mz?cLaviWJ8SiU=v?fbc*=hw*b8w&|@XOwjnkT+_& zzM=^ez+3n!3cc4246r}#&qE(2IJN)!1^^bzkWf1|y`E zuuII#dB?N_D=!<_sS5&T*BK7Bb~fUu>{V!Qzi9%;=Wo_`ZC_wMm>D9e2$+by1v;Ei zN35pIPrQ%UJI}Kz6PUkUW8T4;SEKIq9vFPzr4OQNoshWCM$*dyb4CXY%u#xQjxzxY zpTRC4d>wmm4}Q4-i(xk0b+1xaCR8eZUja?e zP^RsRQ?~JaSG3=1b9={lkrqfB7WJhz(J!4_hxD^dB$?$zRqs7xLJhc2xYzZ*p6+7v ze|2A|ns~|vQ&2hgxxlXbEr!?jAf_QF2cG;%gp*}Kj9`zxy0sQRE}kzwTVRNSyDbfC zw({s-9$tG4-x|PEPcJGLvNWZCde-t;Ri}zr&er~n3n-}6y_0hkkoQrb1HT<4dwGuT z_wbQwKbdrfk$iEAQcj}9Dk6UzrFr0f`1LEnuB)q3Twj1A;<_7KaSg06-vnr^pByR^ zw)t^U^4(5?@zaP1efeWeYTpOH9y30pffKbqZ!q@oo$mX&ogh2M#Ugn(a%rSP+@<}L zk6xGYU9evKyv1zus9V{L_NJyf0@?Jb$$M1Zb>#M@7XdX;6P>BnqK>2VJWP&-pp8c8 z;vO)43wfHudgH@uN1DwBGjcB1&RZ28WtD{~MQ}x0M!=^gJ*pUO` z`G#CvL|MD_I9_wJYup`CbLq+*VwjK%@|#Ll&wW3+>i`^BG(57iwJcojZQ!cG_J}Qq z_`abA8)tJNGTLcp%N$YJ!q}lJpC*nMkO0mv-?b?;71AxLA0TWRkiTFH(1t!xXv3R> ze|W4A^*btRxf!gI=VtZJ^MC61#BS{(yJTiAen26pIgdl-$Z5!h)c|nv13i{cD4ysRP z?Yh}%c1aMXc{tjlB@xqE!^=_n8>7p}aWm$j>;!u=e~*KC+Lo=&gI=qPrd4O6l!5C$ zaZGG4b_~7+exY*qeIWI@_KJySH{6@H0!L&q5pTiigjde-l}KeZ@&ve8p+x@cqsduEsa;i3_nMtiZmar?1{-_Xc#qGqXpZ}^`XrWFC;(z@JO0X5+d z0)<~b8?1JS>7Ct|?@FYni*yA|wbhs+TTpLoA<%^fNHRQ}k>tw-P&`TF%%2e8CVf;{ zWj2TWkpJ4r9DPJq^-~Nv9hJL+*y6Xl%o|_nuvLz)-Q7J=UP_K!oW}dO*!;53aGB!I5gL0Pz3xt5rc>AKTTBeg^-a-;114(Pc{h;7bY$}vQix-Wg;QHeB#uCXn8 z4gzHEsDyz09r`l;YP8vFVGYY>UV?uou{diFr8h-X^z*0P);d_Tl6y85^q;(r+hzc` z9(O6n`$~h1=R|zv(o0;KFo$yG{b7CP!D*Xbb~3}O^@;(&I`5~Ldbnqte{v>_Ypq^K zn@{vc!g6&~PKn#_b@U&BbF0U#51|t8o5$(lo>F>ri?7BBELOu!Rce<24s+Mb5;7Gc z4yH!Ro@t?^xxIByJvOQ(JOSOmid-Sgrm6P4O6U;kVg~Ld%g&of-Ip=#^n`|fR^KdH z*ig=Q*;Hq-LhD_oV-R@B$DLF6PG^8oU2RpL+%q|w=Ye!_6iYIa--V#l4a)eopOgpZ z2MVzzX-*zt4fWB(mfYv~_@)f}acef%(&aadjRnRv&y^T?kFB`6JpK%^GzAw5xB>!# z4y+uDs(#z=uu_!tlou798h_47;MIk+Dnw5KPE>qUz@gI3eYjC==g^~r78jiS3S{~# zH9t!gxekjlf978OUP@sRbdBZvQTnJCKT!MjLB_lW+`YqKNq}edNVAxON9Ksz>}x~Z z{88mTCf85*)vq67ydkKE%r9FiOK)qu+qL%cCf?5#8;$x@KiR1M!l-QeY2{K>FEg_~ z7x7?ew}|!h&_vewKx>h8+9iU?{u1lXltZxO#pMchjZ}%duM10EVD64H3uRdhW+%qX zi%sI&JF8MXM$v70;v;jJ=aN&-0t=`5?uz-Iza^&!2Kxzn)0uz(pc-vkKam$1#fK|* z{D?Y1R0zrLeg)Z?XR;+dSi5c_`a0pdl-HVAx^{RdKb%fa>q;Z^PSwoejRgbplE zpSSG(lA5uMS-V=I`y(}v<)L{yf<0bV+CDgC{QXNAFU)JmBj+0A*y;g~%sYI4fsF+N zkNe__poJ_GynrLRftPn+o?u@wX=Z%Kle-BMIp(K+LZhoH6={lY0ecrad1*mlFQ}D2 zxVAS@P6=ozlh^sFlu7_#yUy+lXWIiJf#2vQ-U(Swj_psk_UK16MdaJPp61z zXPZd!p3*xz6*zLslzPz$+TGGSfWJI*gHxWoq-ASEec8idx|AqyTX`f+>L#CFfmPuQ zG1pp(FPA;xRKAO1SvE)Qsr+LL>yP^{I4vGW2H0P82qMX~s(X7$HV#XKx+L#7>2(Fn zv~hX5%RiR9CTYqnf#NjmHYx-Uv5&tna z(av-~in#pTrfs~r>}jF=?v3ciDtlZ-Cug2GSgsvS&uG(Ol<{nD+G?~eN0%hehS$Lp z9Vw@Gy+l@FrTxkYW>&7VFNqmwDaHbGsU#dR^{TU4ExLM%T z+PjtPBxNz=?b1F09iwMIzL6Zw;2tV2xf$%z=b$+Fw4Bg|n-8Dwhi>`s*4#02s;Ni? zKMD&%oXo0)G#2HJs(5c5N|SK#1xvDfSIBbhj*-|lF?_q&Jr7u6Wyo8FJY&qfwkV}t z?cq>?L*p||?xoM(#lm?wBse*02wB_ftD5@q5$uxp*!;~%L~YcSt2SdRC-ApPbD!_4 zL>jeWcJty=jI$#!V*4GIG0U|H{pN6C2lKJ2ip$$g%2u+KAxG`};sAi{Tc{y6vJ~tj zAC(gb=HskfN-$U2ZLan2a_nyNkVJKQ*^by6=fT7ZjF&4gW847jMR(va#`w(E*q6nt zGwMdRxjyUlTP5z3*RW`tcdSy6Zaw?-@w%7j7?ZhQh{~JW}r5p-i6J0<{qOwov8FDbb)Iq0QT`XJ`BK zrY8bP`U?8y$?TPQM^eINn}K%L!mBmrKHD#SHd~rX@R9OU<-~`q0L{nc>BThO+~q}$ z_(m#)-3fg_USdUcdyfxmrUX*B8IaPzs|Ze&zUYwav)!rI8#J;bcZm^Ucyj9l9YGRj zjPU&M7{gs-p^8{?_%fQQZh@_;uu8C25F2#RU=`D?*(LJ3))>szoFgJE9W8sl-5szt zuQc0DXuAG-6+fI;C8Y~7NAbv=_Lt}G?97a22`D#p}7!1 zfh+5EW7S!Ru1J_+r`_ke{9$S-R!Qrx6eteIMPK-zgJ2VJZ_}NL7mOt)q;EdBKCDVA zEH7hg<>3~MaE6LFVtAF()?4M`&}xbx?!&p88M6~i3py5CxJ|Cj_wyo|ikWKIfej>= zE}0=|P>=MZKc#i^g-~owgUTzuRB*a`*G57M*R|$)($)>Ot`I;0D$5V(g-Id!>wP$m z;s!n){(y6Zpcgiqyl&h-j#;2+>&?}w7$(7&?`wnJ)-PPGrCBW4mnUZc(6hzd6z{rC zb&XJ}sLt9}pHS*DgTY4fQhD!T5^f`&jRqCz>g(X#R)DLm(9o~*>3MRu@ncy;b^g|% z>o>Yu#f9}^$?9WK9jalzdrDpp+yjWScZaCKIfV?25w8msOFSwnJGflH0ZPMp*cu#5 zf;KH%iQ^bwq2q+~?&E6%`CH*uHxhQ=v#c!i5OZi;eDj7E`UMJs!+KdiT8Z|}TG`&> z8gvkPEi#PmZd+>CsorXy?kFrXs0KHCx7HCs%o45qaVozIziM<5*dFS}*ND9>r!WUN z_uEYy`oQbJr?A*?brODx0^JxnaQAJB7AL~@u5x<1MIGRJ5ss!H0zJCE z)hr5l8r_@HDYl){=r;{Ri{1pJ*nvvgw}6Vx*H#9x6cZ`6y+G#k(jn2d1vPA~r>3J` z=6sxi>TC_krC?U`0C~yI11%=VmvP<#$`W|^poh=<{Uvz6O~Y%lyD9S)CO%b1(vqgc z@HN=YjmLhlfF1h>3HLrdGt^Z0?2no2@+Y1xEnTl^|;^R@uBG#`u%5VcQfrVAJ1BMU( z*XSQr2gn_Z;rgpCY8~f|g@p7ESTbZ>-zD zS?bswd7rMYoBQ31hLfdj9{cRnQ_hsq%3{qNt4K76rHVJ!*8Pamq3Q4N(J35@Q;C7E z-%;>puC4fS%PzR7%bjt#?)#1j>V;^dq|0_z1?OVGb^7 z^ZQHS7~N_s!EU%a4wFFgUT<#Y4xfIg_RNkEk$;r~@_xEGS`A5h>%)5H&GAQB+Wo38 z&h?qJ+StlgXnR*W(bdjdG%pub zH~0O1lZEc??1C*rz(# z+{oKnIq8ZepTe)@J<9W+R=O6tAQj6u&!eGMnlxB&EiqbK@g~icL-OEuU&OOa=m7z6 z9s;p`th3q6)%--~WjLY^A}ZQmDMdg-D-%C zt=RdNzrS#Q>XLx}(vJpK|M`B*^-9N4WlAU0aGDwoX2}nWVdmB21WMc;RQ51NzOlAX z+BKe6mIe35pb=+k);6&;YO%GPT;NMQ)mV*Gc-GViD@g9W)&&fd046uV{oFvxP|-#i zaf4(?9wm)(h#@nT8rD0T-PDgWM9SA=^@I>ok7@@^p0yDoJT=hc(YUn*2#D9uc`eKfwPt1-(z*fu^37w`$i280 zoFa+)IAY((D%(|po5_%fKzcUJw7CL~Cba1#KSe{h0`d?Dm!lG z`<+UDQyGVDr2X#q-I_}XyP-G&7cLA?U_XK>ykj!5Sfgte(_-JLthp_o>E=5r`K`Y= z-5Svj7x=}1E!6yCz{K#xuvvPNaD$&^YeIsSs>sNP*sKzxZ$2aM$7YF;Z9;UBOq#N% z3SUbv>M^dpJ{Om(FM?nH0GHn>vKlPIB$t(Iq%I^f!^==xD>&vT!t|>JoEwM4^_}ls z>Z2Z%;8=Z>2iv^#y$lS;sQc$T*CUtCoz2(GfuPAOs%>KJAe1Y2k~UdbZ%v>!)v_VUyx-r`x5G+y|5|mV zoYla7Q?TTJq*H$Y_I`k)U;@(t{P7aOPUoDlIKj&-u!dgEzq1c9kMF|6-x`>rZZ>JS zj27&!$lQ=KtI#$}dpSio#AwLpZ9g~U|Hi}zYsqfRJ?9YN{r$k^{P1p@OX|ngxc;NJ z4wb0OR$Lw5o-$e+e?Ynxae|FA>o{oOFA2GyGRF-CG73vTFkHpc4}!=9Vyvt=*8c#Q zUzj8^6ye_5y;B)U+X_siO4!p^>Bkt@xG&inc51!Fh-6PIg%W2iLRs~{493_hQktfx zKfC@ZSc13U+n57=QYxqnMY|XyB0z0>L?#t`3*O4#UK<^5C`g1&x0YbjhiA z=U-|hibN%`2~n%`^k(84XcG-B@TLy~*H|vK_I*YSKsgu$oWnQQ8r}h)~x!Uov{| zNNl)J$Em|bg|2sdE^j`V9$wEq@@SJW$9HFQ0Cs*%1$`G}R2gJpt#KGrC*lN}E>|uX zoHOiJJDaJBu!1Mti#HH56yP^YwjLmq+3j~yro4_u`ZX`0)0L@h#u2FhWD;u0ONh$> zAUZdW?@Es0K8{<=U288UuEO%RmNt;XL+itu@`nE78QGbZ#@RLq{>&t_>U_t6)tj%a z!(K!Ynamyxm@+-aW~H{QcZ5(+`4Ui1{Ist*DvzJ+&v7!((Mxz}@2Iaar1?M49A~a5 zbdh`CK42LW$(~R;+2mSnA$#9`e()qg)0sEDW+N*Y5OmmY9QWaLWE3UzAXu<3P5Mv` zh{Gy5M-m%jo$=DKI`7;K5f`u38SI*b>uMcbGu&?^M+g?0UA!vnZ^E9=9)}~o-vGR! zhc~N_6@Q{SKhuS1##M6>7Qo)rg9KO0+aStJgJG2p+FnLJ{a7s#D{N(f0qI>eJjQ1t zpv(-ecz{{f6*YffUq=5pW+!`mnQOGjS^>G+c0Z$YlW>#6gh{bK3{VIJe`#XvX{Tv_ zjvW;%&67?ZqoXtQ6@tkM&8nikx3|2Pgxv}LO~l&SJB)yLh|c)g8DtI;6vXu7XsJ!c zsItO4U1|QU+cr8Dy-u|)02eHD%;@>A*R0|4rq?OiWBK~+UM*q;SqCc({C>>XVbNYO z1kaXKKpVH(UNa&|medfpeL#XSpXc5j&;3EmZ{^?9)80p!9`Z;w7PF5E>5Z`f0BSlm z=~5jcR{ch4Dk~I9xNJXP@?ynz0<(>O?)-*nFG>ldo>GC*9-_j|ztSGvBKW4`k$ReS zd_qtz)2xAdDwoAE>M$e!w8#0aRn-Xy3)$)LSW6CH)htEHg;`@?wuP29V zGG9s+6$Wg$6#aiD{S-L+$eH=>yXgAPdMkFE_r~?vFeb_7S|!K|#vS`wU}!mc@7Yt0 zDTORi>RJj zEx}HoiaP4yJ#*IfOaJMhsf6Vkk>pesQ6rq#g9ifyd#!hrGEM`CWXl2FX3KgJPH(SO zJH02xnnEg@HPWDVfh|3?=4%J5=GrDDNArj(!;RNwS9KNEqY!rkm0Ot@3;@!8N1H;SZW}(9+J5D<038rh_%C**2jBGQ0+w1yPOc32nzGsF{9|s&g z6{R4R=|Gw_&B8E$CDJK@#5ZN6Ml#iY>td;@8yGgo>NwTfmP2@9PCR(Aa*kzs?Wk*D zY*lIE+nTeZtFuDgX_LJ)9QyKa5)xJz88U||L^mH_j;cRDasN>BiEsNJ!XUU9_~sCh zmi4?Yxws4i;aaA3)GBeSY?a0Iyr&I#PMApP6UsY2In1)_d#!@I2SY0(}Fj4SlVtTG`1)4!#=#Y6<@=a8arC) zVVM0{oPj1;Ml?3NO=lP&kdKX5ezIqrbl1qCnhh@7lDva)d>4)FPrk^jO#l*PehCNi zP=i!c+?;tFl(62{o-on#AjCv_*96DjdfTUM+4jt=tKf)tR%Atk1PU#=h_W{6k++q1 z#;~~PX*0^B9qt3}#6@`IYMG!;Cd5a40ekVR$;ja^N8ZGTkdQo;S zj!!#BO|K&Tle^>&UBT5HqH7k-S6sUFndA&dT(3Cu5chG1A&1pdJHRbB_&={ugo0UZ zio;hG2H2@(5eos`_cM$-lGe|eQ7dqQ^t`Ta>5bdp(BqmaCpUfM4L91l4B^263x>x) z8gJ~B{T^=x{a}Sse9l+3IoUv7iE|+Z)c>aJVYQ<;`ea)9{?iXemoZ;>-NU|j1`K<9 z3{ts=?S!Q7FVGxw&$h5gDH+PoV7HX=vDJnzI+;}Jhi(wqqmEj6r?N@9<6_qyWxPl# z;014V%C_QR%VziD$n-mliS%3?n7O<9%0L#8pL$m;>T6$seU7lDMLv2dMeWz3`az5O z+ze(__>V}5L?O(-bU>%{Q^}4T3CkvLA4wnK-l~_+tfK7OHWxquSt^CPI$NdM@ z0QF$F;r`aB!{}I^6}>a;hx_}dTYf7w;u>wpXW}-6ru(WHJ>_h;-`6j2uLJ+W4)RXIk6ELu`z1r zCxMB?E{fmF=p(E&>#_N;?bvg4i??E@Ymkv`f}Z2|3ylijKImPf$PX?9yHdn%CIl52 zKRF-xn5uc~GtR?iv4Mhq-o|F7@iAtk2GbwZYvSuaj8sQGImN?cY7ch25yS;u^%s7O zj7A#N2(HFt!3s1L)&;1^3=5rT#eU(=edH0xz|h`*IbYNXN}n#mG(e{BfFM}Vd}|5a zu9OVxTZc2A``&%BT}3qR4fb=>_GyWRQnHom3C$&5t{p-cC=o8gv*~>oq97ik;8uv5 z@M_ZycHkdxZSLe1<}XUkNw1e3I7ea6w^cz0-?QMC3*^DSgnH3$uZIPY=q{aW5m8PC zzHgZdgl&m8K=2z~%|~Hz^Z@lw17^Vw(6aF<4-2kutrJ&P@EhZa)lz5koM3r6wKX5} zvXwHjGMbn1n3fCUzSfUR(Jpbge#_5;-_zxnz2kw5deICt=l~gg6v1x*Wkr?J0{}i< zf7H$@uV3?H?y9$*+Q&~V!JCD~np7ezhRx!EDdZ(uTHV5aJBn#MbC2ekMZ4?J?q*vW ze_;g|cx=HL)3yioDn}r|vskmW*l%wxukGoS%`SCznt>tH=hHKnodYkr^5QPg zL$QU>SZXK}dPe`vMG6brrSS{Z!?NeHHPgf7dWrxG;Y zuUCx*OdED#2*5$$y;ilmfbXwYW@;Ns^SgYr3_oxcUi0M|B6ajbV6}JV27^OKhXV*L z(Q9AdTUT5CQG7vv1~MRMbH8}4E_v&ZlV2zMxu#;y zzSZSLbhuujG<1L1Ei|x@3$iZxXlZjM(vL^7>RG0034;9ZtlL}H+p>T8IaHo;Ay{`X zGmrFI13B21prM3p%L1B^>OEaO-PR6UW->oUvNU_c4JZq?slGss%8|{_4K7VVwAehy z!ku=DT-xpJAX`0=pjaJ-t3QmQX<4Ia`-AE2{CB!>O;EwjWLMs} z0ziJ}G03VW^<rIrZB(imu{@Nc-zmcdZ^DPw}umz?oIoY*KEYTmzqeg3IJEkRZ3d4gC{6dWdqUQ zqJ=HDpr{^NzNgVgYZh%DcAD_Kq`tgC5=bFQ`J0F)Qe?E&%(r_8eN_dqgr)NSd%mhNgGeYkZoy z2oYlkgPOVba=o|7L%2DI^G5HdTeFs_?`qwjsycXdL2ngy+m}+t`s<_a)AcE8_D?0e zlnzJ}bUwN8!x}$Nugu^G2iHnn0Md`y#t2#LGPH*}}-0+g;YLHCNHfnrdS3o(in@>o8Ky`>C zYVZyAt(4naP-;*qajWhSnPCUoVbu!noFR4RLBbFLrz*|(pg_Aiw7LcT&Tprbx5RnT z2yrv)nmJ%Na|fF9vpsPa3PatNt=I!IP&V=`bJkEaCiVSp4luh(mNN5W$3h z`q;dGF_q52Oa>V|=Uk?KaeoQA1B7PVdkAUFO2W|#GupF&#%I7fjMA;$Zs%E@xm{uL z6qd1^CRXUh&1rZ3XP#G~&KgLLoQ@XgZ({|8HUoh{iV1tDY31y#ljJ2$eb4jRmTNJK z-gCU+@k!aQu}tu*F$|&AXL(y%*0W5^A*yj`W8t+!b*AfVb7fn+MWuW;8+fO6z3p;v z5^tGta+p$=MP4{fLd0un`KIKLYa6Yy?EMVaEp9jURla#C1Ip6M7P@KyZB4Mx6KSlu zmt=z}t28OF%I<(KjFqXoed`sHI(hP%T}?bGJ^6>M!6OL20cg+A?$33R;8vCmePA7bA%2Z38eT~-_i#sHA`RfN80)hw^S#-l z$gPr|vR#FWA0=%gxd$s{QH}krUAUzm#TSlz9}#HCK4*B)&|~Uu5J-m8-YjQJZ?ayf z+H@RF_50?hs;TZeoMq4&%g0;N3o10gp-umv#)Cz9T#zuWtyg6eoEIOqIlVyr!GE<3PV*c)z$p@w;2 zW~Du&Wc{tiM&LXr9=I?2Y8Ps8@fzkrd9j-}Q@>?yk2CGMO0Vab`BrtF1$7W>CB7?<#;nG&ZZ{*f;{}ajGR_&NV~Go4D~gMziH6YWyw; zQr6nDsk1djl3l5blb*3t11XRS7%C$KS;dczSe5$Pbt`(^ug5M|5gtV(imG%_Nef~? zDhAg8IJLHyYi_-H$DEyA+D12^@_@W-wX@9}#>nP`G`}-=f6}MEZfZ~Yk!z0r6IW0U z=*}mzM6^SmRwZ&|5a*Hewo$@s*Uzre)W90kssZSguhq-27c~M5Q3U0uQhzA-uf_}C zS|ArS##$hH`Ea97mCVprg`nb8Tfj~!sGoq6WwsT{J6Wkw2Z zAmh>>;UowfwUg($ppW2rZ)oj)NEvXs%kKb595hPlPzI_`EO2u#qjPHpJ9FmfR%$sM z_*Dz5>~miv$@MO3S?rV-5~uDbO0Mhm#-k?6t92;5q3FAsFG1W%NR!~#m`{nmCBUb4 z478iwu(yA6(^=-H%d3EDm*Sor26c#cfSS{=v!eIP4<`~J0M66zIha6gc7~0?;x|gR<}Y4EBBUD zXJSG2IPOZ}a}j(hbr9M!Zn4%0DTcQ@xjUptP!is)rCd7^RlSy*XSoo5bt>Cwx64+Z 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 z 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
  • rt3q*|a&(%b0a;C_D(`yFg8?@`Wl0{Ogf7fo1)Q?q3j zcpd)YNa)*Uref^9`e|406mz=^(%EDU(GjBf0giR3Z@X*zPc+Oa-ebIryAC%dq2VF3 zH!sdSJ#0KRY@1mznHB*=hJ~?T-~V-}6{b;|`R`#LE8m+t0~)j4771bfM-v0HaWW$u zOd~6MT=ll2X^?r^Ivj-Ohsc;h+uz+@FOMJ30zKoT3OTK*xK_KMQ~S3z&o%%==|bxj zVgrI610#i9h6pEO;{SwYJ$g4sa?6ywVMv8@m4TY4((@Z+ey#LZ?G!^<4py!&=;Yz` z-HOlEffSk<{h4_IKl0oa?Rl7a#JV20Ohd>5L7OBCeAdDe^eMKVh+s8to+ya=(7^|) zmj?CFL_XXXz81w1+OAQFI-o_?lB(MZPa9RY5wh-1DDJ|}x{9ekL58Wg7_^tH9xTDZa{BW# z0Z}+1MSDve1iLNsf{;#(g_D}Wd}O$c$4UghUP-6JV%#b6Tyw>Nukrzm#n{Y8mjn3V zJ;k`deAr3Lze=pb`E;-~Fv~o;`*!Br64q;>@`oUNh;sq;(m*No3{6AhlL63Y-#0fw zXl;l`V`Zb`JXb!7fRLLhYkO1Wh^c&@sChH-)6tC(i;TwS(%n+vB>EQ4TDfv;I32A! z{me}oTCFXHV19Gnd`pRry;YG)-dUHGWk*F1@?6kgI{ohcUZ*ROpb65m27|?B`i8Sd zB#?q!J!j!k19^^_Lbn~CDmoq{i+|ep0YV}_{-kf60-aI z!oF`1%w`^vcAq!q3_!)l5|mUIz(#TRjM>6OR76RD!)%L9(N#$W|e)yHWWdW%=cE0Vm5V>Y%&cHWj1An{+a0xIQK)GtFj`Gxvd?RCT_iqjeofv-PEV00fKkU2 zBnDZiB8A;-bL8a)niI~u84jOaP4hZ`(Dt4<2wRkeaJYQi_hi#9-h+`>^Ty(6PjOzP zklEuxuNMrl8uPamUx>_WbsA+g&cC`*RQHgNCV?kxDtv{~n898H)5hn!eRnRt$ZcAG z-tC-h@=5~X_P92E1^#mD24{9Kx2e0t6bNJF;G;b?7LiDqqO*dN&6UxG8g7i4=-9k zp-iM`71Ej^uj}J(emd)dp({?j9}*nKI~+Uoo!noXvY;m;yspvhA5V=TI@xwDe9qZ6 z?K#P_K6m^=)&o3kPUxoH_fF&=i^lGBR1_a<4J?Ri7rAf>AA9~y|C&m=ENA*Uy)%AS zz5^f4Y9IJAEJ$IeSZK&7=U{TYGuRx(iEDc3zgg3}lyeO8QS9v;jM1kI?-E?cGwl=} zafCW>ocz{aXk(Cv{86L@!;yB4lGSGil*HaNY>f1WS7s3;&j&IOSaoEif*kCV#fq?} zXUPa)8iegVATe~jyA9gM%&P-gu36*_)`W=C44Q#Bj>820wS|A}O~G1zgNmMpt}*Oe zHM%UP>AoRviaoCly0h%Y(|Z_P+joUqH)~|^RHdE@)1hZnztvf32{PzIBMBiQdL{Nb z1C3B&{dhS>ths1*d2zQSXS&@9x(wNk+4iB7oUxMIg86ASph=h%d*!-dIL^HNllCpF zR{hYp0g{$x75rEM`d33p%5bMidMwQRZQj0H_`nFv#53}}zp+v5$g?kWw_BZ|u5uKa z3&@`hftl17_kmc4tc|~6`%RcHYkz&A1V2B`Sg(|!-GR%{EpFMU3xULsSFfb4+X`vh zYUnvUUF^#|q2d9mK*fb3x*j02&>eSRJ%byQ?s~FT!sHWu!a{E@2*nVp%H0gcmgv7C z5w`kVlh3*b6!J4sJaF>q{Lt&Q1;bHDG$QIfX zt%!kL-A*{7bw9G4+B%IxZ$V&pyu{sJ<}f+UhcS!K3^MkgA(p^SRjf|MyiStgp$~1h zjEnk9b>Q^o49MklYF*b;Q6&?iqGx!YZsh{fesv%cI^>b@gHYu|QNEa%K@WS3E+x{| zv@XIhy2Ubt1}kFIS9YV7W;f4?WO*YFDd*R!Bl((`1yHg&g%otl7C>x>oK0pyWX(oi z?vkGYBzsq;xi;$}?p&jD1iit&;i&Sfd3`61#|-FSAcK9r{p(2fgX1N^FXz^7c>z+nE{nTx#8gq%$S-`2#kjlB#zu(CX5*#Bxdxhk^WIAP z$*%V8RxmHTa>S_tloTecD&Rb-gT#2Od@;KWMguP_-i^-GmU}b08LL+UiXa=kS3#w-2!Fz<|aJN6Tg+MoYBM{Q^U^;%}M@R?1J%{!ncC}AK?<|idwdW$=N z{07Z!^XVm?Rx~=8j#(4phdozJ5{Mjv(BB zr~X^nN#|kmDjJTHmc!(MFs~4omsmnU&#YFJhdb2^T8!o}@BC_EsmJa!zLpJSM=Ml& z8R}quub0kXZFa@VCu{t!6m4~o(q@Z*5o1>@CdNf{VJf;KR&P;1@55L~_+r0T|3PSi zo#JYJDNifOl`M-H_gLy@*qo@ec56fKJ;U?9gLG;poSzQv+yQ47Ku zKUx2$3Qw1k1i*#)Sj}J$rSYIDwd*eq#eRsHxVis$M=H*rIf7o~71j;o>R|ThM`LH| zUQ-E4!V_w0tkTq=36MDk22=foof(gp$p}ci2}Pb>&J874cC|0phFe+^6`AZn3ik+=zuJ->UGV+tYxzw?T8&ItT**nBFs^L>5)yZZoTZu1|5cBA>h` z{MoE;`BwYgZ5tZ|eIqA9`w^Aw(sH*&oT0YOIUfd(@8#HK2g5(TZl96;kw$PrQdQ)c zYyHOx5?L;yY{Dikg(BB5M2mgzxa(CNIr3Ls%8H(+7B_L>3kH5K7#{cE`OIgxM;FkE z*biDhOUg3K@3*UXK{NTci6@)b_Yd}ALDH}fTmLm9(qLUN^yerCMGQ=y>@$Sq;u$~< z7G;Zm>T`MEfu;%l6tNNxxp{<=cvnx1RCE9C74ekDmxM5<9^3P)=f|~5y^e9}#HHUi`sek2Mb6BeDGR0Q!dY3oJ1rNr4*ITjAjfuoRrveH zy0BY1&H`IfDH&wwa>yGrQ@>)=jm#%z zohs;V_9_Q+sg_#)_GBRe!3i*9vZVL&3-4D5JF;(p;Ucx&2OTgX6Q|P$4fT}Gc`kTg zUp4!I>lg_B=bf6&1fB@E)lPL4K{(=jm8 z^|M>!r4p*Sy=-%fu^Xo^iYq241O;N5`aycq@`f&%b$wS%!Kx|reCtXd^d+S@bif46 zwM|oSSUHQqNle8s5OKRi!0oPSYx}0g0K2QJH|)#?Z8mr)btobfxiy2Mji30Y4Vd<(Tc@1_2~_ z4k)$0aGC%$CQBjD!ZJ7(u~pt=Q<<^S>Up*1sXUzN9^Y0$ncAYD`iMdOtMo_lNo zD``z7)C+s(KtiOBZ{2k`J2nZIV#-qF^VLZ9% zB})R6fWD>g94#a7DHs7EI@Rv?eKv$g6p)ixVV-Oq>(WV))=VAIMcg+HFN}KLCrIhi zZ?Pe$O7#RD-l~2jt!6HF{Ow{-o8e6l-Dm!^)o5Tb_Q@5I)BMci!Gjxwi$DH%j?TZc z)Ebp9Aj2i%OTAabbzY$6pk1J9Xo04f`s(VrhfzD{!N>g&y>?rAGrhScgu@06>b$#Z zo^aQhMz+Lc=G#Y+wZT4W4?f1wbx5)5LE6<6!2{8)yMi}36S2 zP0F3M=IZqbd^-MMSU9w>rNYClwbIKAkTj0z1614FkNc?=+*)V=2{7k4JZ=WQ8U@24 zKCX&gz@Py*ry=Eps*^AmfoH4x7;q_q|g5=lcU!m<0_#=?nj8 z97&Hiu_80}lBKU!AL%B&J&)|;c%?QnEvG|%#li;)JR5rM0B$jKuc1H>|LkmAn(fB) zA5OYf+26Mtx9{DYUjuPE0*jc1q_ST3I++$#6+?vp4qE+_o|HFU+Fjeh5a@8XM^}jJ`0$E5C9ZPN+~M%pp8vG0G-d5 z((Ae|PFb0f^DPW(V9$f|QzU;k|vK?ZRGgG#4M6 ztV@adpsLtuw4gLo`ScEY3yI{p68*?|!%$c)C-a1Hm%514eQx!;(oYp)AHq#)k9QTM zH&15*P~}n@&K4>SlU?d22zlj>Z8byn(QeakhZ!}P4z9y(rB7a!jL*6Y_Q4fNTtLX&u-Xn1c$nqbif7$x-_H%5JF2L@+);`$K zdB=_Zhi`EpBAoxC0V0ojNZf?Hm{vDn_R{M&dgVXw^RbCqTY|!*-`$!e(XsRrfr_P@ zHrJTRw1jc)%XipbZomNeG91IVa!^*UM<}b+Z1%Utwp1;b&pVHtJlLC|C1_X8Vj2PU z5`yFhsB2vYE#-2E4bZT*7=rCMO)b>Kh-0ArqGoVs zj4|qleFN|AyGd(2SOQ!&XIj`U4|~`X&YZHwf?OB?*L|w2;*7onoJr8W>#LjSP#ZRny~dc(&3#z_dTo0qhbe zAx}^w&s8035kdb7GX&rpHtX9i=B=8^g?uQo9?+AK;5a}=b(vwKtu6&JbsvPRCb=z6 zSzn6>hl+!W7>be{4v7NlCh42zc)h8a!;{bc^`^xbn~3GDbBV5e4(N1w{R3{%f?lNs zLd4RD9HW}9NL7I2Jxi^kt#GGNWl+y)liOswmQ&!Sn!^$t8D>e!an|%l<{C#z8zjaf zVDuHCS2%Bawo!JPU0dU|rlh%JAIMn0kvx{+ox$4njj-uqNOM0Hxsu5*2{S{MIvDq~D_OhIL-`!}F-c*cz=osKx zp)9*@-|cDjVt6ewQ8>Wn8NZ(Hfd%2(rDK;PZou@eW7A^w=II2h06u`uBAYGWuPk5B z6lU~uDS$n7tj5$~XB%TEpD6QqL(O{LlP|>B;1}lUV+^qR6@}QB6GzDiCmhV!h+%^r zgbjikceaxV#D8c**zgxWM{J0X_uG_}v{^WiUCWz!BWe7KRpJ)qycysCd?Df|4z+Kc z@kcaXhd_^Z2y*4Z)e}uao31NosaGfh%ysf!hUc|0gsMeD4POvu_eEIg`=D9UZ&B5I zWW2vX_x2mAAsAYnJ3b}5eE0&@ErwSP0TmVNkc8!W(Q_g(*532N`VPF@a)5N2SN=g2;m+s4KJ9JMz*-7A5lUopb`Unyp@F9Fiq1KN-;3^y=2r z&c9`dqMt&yHyWGssqAZ3{?gb2j*j_PxVw}W3gW_7wi`2?Rby`FgGaAyo+#CxF|}m} zNTPW<{AR$WQ^-QAL(vCDoo@&C8@sPiQ-J39Bc~ofIIsv_nD%(_6ji7i!Y5=}W%-xt zZ9I+o_lG*1EDPrf)n+)rUZ4`N#0aG9UO1E)AHd0 z81A(<$!l|?0QZz51pyJ0mbe1;c*3d0E(-x0b&dH&K%O(K7GHMzQW^`NOUIf!dDylG2#NUJgJ{^I@M8sx3`uuXS1HT^ zoO}pIYo`p1%HY%AmTzEy`4N=apY1u%GYdk@1QyHQjmfTpJnI6Nx>!j(F7eB2oi#)C z!g|?vIXLdQ%*eB}d{E5AHE(Qu=*M;%?U{AG8plAn&`9p~i94BjojbqnIA=PGhO*cI zdiFDO=i$e6mpDyji2Ws#gtb#YFSqwIWlj3aFVNl6X)N=BC z-*}Y$8#_IlsCq)Zy&|T==w{+BsBNvo)F6{N$t#<;O;GFy>D-x>b&aXF>vqL=4&Eol z@ZK00wOy-TBduh5l#?ylyorejtG%a%E$Y6Lh4go!+^Alf*0W3GPco{HLV~H}9@Yeu z9(3Bnh{rq8mptqD)}E{awuELL1bywd6n%0LK8X+}&!ig&MVZWq7ly-YyB{mes9>HR z^xY#-yNg4n$Ial=rBLq)@HfUndEWse zHBh|LYrgookUvT+9eNusWQ->@UA4xjN2%JV{>#{r_S!&&%uA*pjyou;2i1bzte(uLr52kjAwmOaaP1;MQ`7IDs`BxDQ9y`&m*Hh4p3u7A8A4ul@EvK(wmLvD-d~|+gU9k2n7ww{|0<# zpnC2$C7!^-w*DDXQDX|R4XY0w3@MWknm6z-lWBRRMA9=nxK^upShL36>jIH83Jx$29!p zU^eS@wl%AkSAXGS-nxUTbWk%d&YA#GYaJ97r~0B`-#5;U;{{BIF4yy>u!u?8kKCZA zjFoo76~k!Rx=&Ae$_INc(UWNvc)&~;W~%iy#TSGN!aOg>vMk>6!Fa{Q-OG+sJp`-V zJiD}Pn*I`b!6hX?IhGb%>k6XC+GW-KQW$31c=NPn*5|IVr8&Hi$3NF!hfOYBso#~Q z^{9OcreK+y%BeLi0M|h<>Z!QbM;pP3)5D9|GWaKN%W3YF%I77Wyif+CzM`=8Q7rA% zd;mhf#_s1O>)>Og6GAhxtTtb=xPTD7 zY}A@c?gF>H6*YT*nagY)3|@`3(@X0cOIW3*WNif&fz`Ko&Qiwua4FakF{cCsYqeQ7 zt|fVUKJ%EZ7hPD?@W2Mv%StacE*~lTr#A<~*#`&kpkCaixnOV0qhaFI#4rkr!lF#>u`hvfQ$n8e#~Ks_$*1}?#8Q`%d_Oo%-I49gBS zyDPX40L`t!aKoJpj3Eu@+&<0kksDs*-(|d7Eu$fF>V z`K4E6tgTAnJU>OdIjz>7M-J=Xi+(-UD2yjHKf45jHkZsCh4l0z@!@wlso>?L)>>vV zBzVfRy5R(EGT{hJ`yEj)!Wc6OS@()1#hVm!UUL7mpX0dyjlS0mZrk=)UFPVr?tsv%xO)1w2Izv1tlspmKU9;wHQxY}~~ zKY0;fNP!$2elc7Du)>nkpo7R#B@Du9@+dX!-*Ga>k-{_AAGW3`d(KUy`#zr6fQcT@ z7!|&V14*kpcP^@Af!}L6&t=|exb zy-7Job1ZJ&xb;(E`8)Wb)APcM6xAI?oOdd~kUri>J07mU;!>RnVGfwU6(ks@VM5t> zdwgJ<{0o#ld5Rjx^8n zU^sS>q#k}Z08{HzE;wFZD{%@PymxU`J`ph|lTXKKO+ zo%o982DvSmsGJtHH)S=!7xdSdpC5s?ApS1U!_mBfp$rfZ(NOgm4XQO)KCQuvrC7#o z!O{*aiTA||6HW8qaYKCPLE&uzGDq~V^jw%zdPa8XR~+Da`rS4`&1NoicIL_c{;+!( zG=Zp|=W=q@{<3TgH%&(`WN9Zmdqp9&RV%Y`Fp!R41VJoCdCVed^Lz{QqI&DTQp_vS z!&1LdZrQMB`Xv>GO07YF^}A&~1PfaW0VdoWZK)zaa^P&v*yK$_VN@N#bO~RE(1f{r z_K(B{8sCO^|DxKa%|5o>>t0MzX17n66sN^Pf2XgeB7*>r>85(Knt3DgyGIJcn1nO* zY_TA75za6JP>5Bm%<`|JNC?O&lB>fw60xS*gkNJ4g^#}T!t3$Z_@-ls0si+ z;1|?9xeDQ_p8KWQ9P}gn4D}#ZvX}5tOVgHhak~jL_gmGULokKZwS_r)$H$4!&3-ugyuQJ;9spk)xi(nw6@k%vA4YMoFHv{Q1aA9)h4^9tTD2}9L zF=p5T(>03KuNQNm>!cvGV)r>n8G%hiy}yu0p}~E>9Q^&B4=J^XUid(wVe;l()=G+q zgU*CRN5lJ}xyC|z$o{>LJE!!DE3-H6-Zcbt>}s7o@Y4Au9;_ns-2)V?h|MXYpW$8U z`(=nPIYfE2IbL=k%Cxp0i3P>CvkB=%^eBW}WaEY+)TC$0I{y((@{3!TzV_R6v-S=qrRN$ZJa0d!+UoFq_S)j-fGbAJH!+@NZl!Y zuF>=@<_^ubcGkwaw^W8!fux>j7PriUPUi7|M(Jx3>v?aB?LKs6ec=HB;1uq91MbEZ z2Be~Au=hXkxU)!FiN}=wGr;5aGCba@%(wx~oG{%+T_Hrvmr4OFUvw__+r`=Kn-K^vkTR`q~=ZGbi+zdXvp0*nN& z!DTxCJ)kuMRZSWYthi7o@fAoA14@yjGhO9cwIGO*)^>VJ`@#k?E}A>QMAW`-kRXPJ zh(s{z3Mqoc8*5Ju)p)1xBb}{R~wNuVF|IRI0zV{$QBp!XfuG^BYNnG%M8OPY!=+4~z6AWL4swvR*rOGq#iX#lPprY30v4WEV~gn1SM9t$CjgA^o~GitGd zkSkhj*51ASI+(hDu0i4`Z=6QX1|T?zSEC7kdPM`%h-nkLzrFF;{zV`-Mwroaq&|Bf zWFu*}^z(5vl0jv$1I$e{z@H?4>GraimpM*?5n4NH$KMHWn5 zMu}v-yr)ghc0&>1=>`(+k9L+0wFV|qZO-YJQ`97wtATbh1R;ML@t+)A=$W?nb(jR~ zqSWj+2grSxd?1&D31XG)x1PY{r(H`UlCZ0a)Lo z0W{|%F0XJZGVw6%h_tQ)5KfVTg_5RF`|nCUgq6DVf~!plR_aAWEn%hd5FKPeV^Y37 zb*MaKrEn{)Ze-&}j*Hz-(5Q4TG5enWl3vFBy%~TLbRHWm*zLIo5p!|INFBg%BG5TY zsv>~grXcY#h;xW$X%#nRDku6NKKC%5HIZ_ zjoU?{5qdJ82f{{Lu6qgRmC7F`fb+K5(Vd5J!?Y`$x>oj|Vf-E0-#LRr`gfoGJ)8eu zN)2Xp@Az#l0HQYf|FLYV`?{XLysXgv`s1zqxs2wvJMy*1F8VlhXrS!@LIptq&PNqV z*Z#=qFe6Y4SF)ioBnKNKk$*%V?4buIcDP9Xxx&VCc!^QiQoq#ZTWw}fy4ka@7xi{r zUW3zNFIPw6t2R539b-Io~SHf z7`c3hW4Fo<5O1;WXx-P{o}_s${v(7^LV^{7(m<-hYHH7uf8+iQxy2qNik<@L1%$bM zaQC0Bmj>NSF)O3V*gK?oV`=P31T57P=(vE1Jmzb?Go@rmp%~j~#|uR76!n4P{$_)} zH|jky$oV(I+fU>IQkj%19gy2@)U2WBCs?d+;2!p&WZUfxzsn~KtPR$)oQ*q9&>KxK zqHae-d{jLT7935B_#aXidIUb5>q~c>59p#eEw@IHpbfJy^wpMVNFns7P;GJ0p=pQP zC+s%ZLeDkDSD4k|ZriK_>svo&lZN56tJFVG0Dy|Nc*vgu4sZBs;tP=Pe3AubwV@V+ z#ExA@brBwEc;{H@3sZO`l7`xfm9bI7Bahxpxh#1FC2~ubfpE1h3Z9s$8iOYm)qFuH zX7VN!rgt_YHxC2|?p26ut-vl$sj3ays&Vu&M_fn8J?UPsu-|h?qzNl?`CoYAF`DOz z#Fe3^f+y|`XrS78;)SDNW1YLoaNz?~Hw|6*1CR4bgXhchGHovGudA(+pCi16?L0E< z+h&(j=nP2pA*ztXSAyHt@gY@Uikr;6X%iLZ z$?7z>j1sZ_CGvk1Lw$kg5C}j6;5EEoKR^EC*HZa{PeDa>w4aOw^N=oVir{=!BT@A7 z@$)u2apXaE0x3)ovt&nsY3rvLsM5xd9hd$uuT26x$@>QG5efy)5lLbfA?FOI;46f9 zwM2Bx5B`A#tD3*-j-jCn7mOp z;cs#-OIscn3E2fej53lMe2NB#^EYXm2Vt1bkVX$ymmWR1Gfa16*-~le$aaPaZP)UK zN^Fmj7VfV;#kLByMUjwP?&xT|TwL}4;s*LRF0eM~=n@nmG!E7THmd7++^d8#9*B`M z<|Dis3zI!P-SSSxnn*2p&?|teEJHhc-WmkM9VKdG-MK6|yqSH7G;i$%xOWU&?j0M# zK5)XI?byyJ(_xe;=`jbkHWv)F?hP!DVtDL%1`-vJw zmajA*8G0SKh7{2u%-3^tD;fX^O#8EL)2kiosLw*#@w2}Bka~@dlXlzKJUo#r@`u@H zkNMqT;SK>HvdA~=hjN4l1k24#%FHyQw4JE7%%E_Vh7_~7i5T$AG-}yY+$(;o2AJ4u zO(V&bH&-FaF?*;CYC^9=qNRMXM(vn9rp&~JxKn3#(sRp;ZH1DLCwmS`F2#5-Ardbu(CN4gsEXV?&@?h>yXXwt+?(C2U zur+y18ei=ksIAN=PnNNILK_JNQec>tQGo6QytWX*KrKiVux2#wRS2BYZa$1;gzbQo zh+&TtWX;S@E5}*tO<*!hAO+L7gvZuf4+B+@2&9CH%vxW|VXR)*{oqQCF)+FCEmvX@ z%7CA@H&81u-Suni?m`Ma_ch6fvRF-(&nitbK_Q-L?A=c^JZg9J{QHhwrYz+QTYghF|&da^%IRNFnf=W@&IqPvCX}GyKJs>+$dV5so z#P5WBqX~xP+4xP|d=8N5EI3^$w(cvpy0X50Yb>5*J&21cOD_MaEEHPA-Mz!JQicWC z`NGD}4@k)ll+6j`ET?UR;FZF{AoIAN>-NLGf7lpL@LeZJB_m}xxeMk^Pj-SGTPT-m z-9N$%0vCA5^&#BI`9>7C&$3B+tk_Fh7;@dB(C3!IKmz#IAs!dKMy3q<%>vWC8WlOy zw+41aH&sE&$ z?V40T@XDsqHygSRM#z>OoRGK8PV32>V0gN+Hg6^S)jRXTP}KJ&;K6AcOEIRF-dMug z716jR2@C-(QNv-`wI3d9k7d_BKC-SjxT$kxa5}<#?ZEAmY#9j~PpH`~UCzxe1OJCA z`vK;f0l|%l6Zx(q1W0h19UqMog7*8G_ zON_E5_V`old;kx&RG<3n~i; znSn4t5VrI@VxQ#*79R2+@-r~W0yL643sHR=_NpS~#o{A8H{L>JS~gU$WsVd8vb&pp zQM1r|$jXif!8KBoS71XVgGf_u^06y~oCC=iDqRDG!zL_1NX3x9EBwL6+O8g`$}{o1 zUDJKT8|O>O_wMf9;`mSTo?id^vtpo9IWa=yx@fAo4q!KOz47#UI+4h#n66dY&_sP*Q(&w$RWg0Goi)#RWK~o?E4}k$cAKH;vE&x-h3vG) zF`lTO%K3%nYU;cQ-w6g_*I#8+#YseB6@{o_N9Q`qYdFoox#+RBo6cC)%z~raW>_2a zg}(HYO%z`3e19pe$Gr;Qf{lctkhfN~=+bVU`C0RayRS{MuWowz0Mh>ZGvm)4(|nt4 zWllDBKyR}mikSxjo@fMQ)swBirUx}m3?vT47ynEQNC)FJ83@P+Z-lhp>TJN?-DJjQ z`@bna5_bJ+^6Lo>63nQj89kys*!)0o2;H%NM67^dqq+=R>;DMGKgk6_aGdUO_NiM5 zM@TTRG@=~6-5KiqAgn~cCpGjnShtW|z=3N?v+E(frI zqgUgdj2p%!*Ggb!l=D>)sH@~WLY_1?KWTes{Ak!Z98`;M_kiyXp@*A$v;g!K9ZTG9 z%uaPD9v|PdjG;&YG^f{02xZ>u-*%fD>y1!*Fg;m`z*~`ORyWq~SC9Wh`MX0U5|cTd zdY0xrVAe=waM(ZpPvJSWQP;G4ov)*l?(b)3%TNkEF8FD~Z`bCo8NU}R9;s}pQoXMS zy$x%F{2FdFU0nxICwhMe5Pye&&QLpK-gXNManaa9if^Pkrw zPd{;qSpbr`RP)=ZKpK{TZPFlYs9T6!O!mKbXJ^CBBX+9Ig+DeGa<0?zU}CxHyxUWi zU}81)NYniD;93~whHy{j=0pQxyUapw?ndE%XVV362-lzQOA37tNa~2NA@wKuz#9~a z;CY##^1~Pq@n6NWTNoQPGcXo?uj!eJfiZEh=uPJeSyzhUD+Ay@oQlmU5=gVu=~BTW zCCC+q6j=>GdL&WO+$1%th;Xwlc2s`7xoT$CUGNs6>zgcHRptT_I|#Vz+(aw@RT%b+ zi*%c^OY#ioc&%HsCn+303TC%n1h6qh0hsM24Xp>1TQ$I1PB*Tk*#auxDn+Z<+WLt| z3{&`oMNWk=oC(1s%<00ZaG-gL1Ww6@%E@nUpD*`KdydG==ngqeS1f8)A-MK4KzdSO zGtj@_0FpGcN`V?B`SYJk!#TBQn(5V0YDE*wl26at>wx~-(R5oqg-9I@#NVI%IGGQY-~9%F**Ef3 zGr%N+C(Yy4ED&gxnhlbS^*HFN)JWm>`JiameJ!Qkm7)|Ih&lZT)i-=WsO}K(Of>+7 z)TDt)4-=R|iF(4LSc|Ga^BsRK< zFM2b-60ov86Q^X~#|@ybu6eeK)0lV4Dz&hBZO*P@`*VPNO+Nq4%I<-ojRR?oD;pt; zdXE7%ncG=qj8(f+RwTD6fXY{alD>_?Ndsx%nV9g%4qE|W+IU5d)v1OmLvu+5?P6#R zVR4VUlOH-_@MM4yvFmk_TK5$wBs5HBGd$0OhK(f zw>^KnYst)yYP@kGg)Nb{bDw`}fPY*;yzyO_A@#`_FE2)< z7Vb(gm#k$@3s9xV;v5q1ett9zr4o7hx^9dX8gHwo>2!F~lYE1LNGjfVy5m+;vv&w3 z)~S3`;&yZ}gD^Kkcc+Y|J+ry-7;jP6;HJp0b)-1|xAwUSyo$2)y`H9?tRFq^HbS_% zoP$IG^k!?z{Y@C!B>4`XBg{1hS&Lu^p{qM<(FUQ1aO+y?owdLtYmwvH68(#^S`e5d zp2?14mVO0U>1LrMEeutia#s0$g_$9>?aQ z#cW@XwIuo#^LpKb8d67Ng<_q2=c$5rr75c)ows&dA|#+E8o^h>K`tDME}eFU?+`d=0ps*v8Ccb(57RzpnA6hY7o1T5)sGYT40SBZU~zg5C^sk3y{T? z{d_Cja|nH+|NeTNxy{fzV8T+3|5g-US{v!rZ$N?pGp)G+@VR?0(J(pIL$Uox<6JuC z0)e69-%l8dmSwsYt(LP4m4Js0;)Hp;3mkJ zLQOXHdbIIv+06&tW~r}`YWu1$-yDKXN7nRTTO>fFVHk>3g%G@>e8cQXY|JDG>ltv&qw||2>Lqh7Bmpn) zJ0u7YnPOwK_5AuRxQSF zlO4HPm_*+e5RhF;-}MvtfE##n$_FPiK71pPOD*$&pp3f7*~05EIlWNt)p+<_A*k5` z>plrDQN*%;1^#;1uH=sOYY4$@_syl^mLtYt?S*>aadnB)oKvBi1*%J@MhsiJv4z7= zl|>(8?c3yd2&3GO##wlx)JU%C9JR&(HOypZblKuiC3ix4j^w5nu5Vufud0Xa@9Rfd zI47@A-$;Kg|K#J5Qvqzb*Up&>P#Hcwa@3DZko%GxU4SvQ+<|~Q?+i%JU-G-~&EEiZ zj_=@^Gr28g1+wJ6zkf8_*oTb7IrWrF+8H-DnB+B>3At@9jEFAwW-fWGhNB@s@r-5Z z!#-O65iLU(P|@zt)vR1^ZIDi`uF#!%QNLFUtI(T6{SYC-Qm{dXpuvV5z3NGQT>4ko z#WuiDpOX-cQ`~E0*bo85oJoCr*qAOFp$nbVN0?*>dqdrSvCF-aa-~;z_*E7PQ&M@s zTC*R&uy{E}OiMtJw4}AZtHy3k3=VZ0*g~?d7MQ$yV-tFtu9{H$9k>{EpZ>ZC`g!T@ zJi$ib?NOg|$}_=hkO>1v&mzCXl63HN#Hi}p+Do)n|4euRRNTMhH<6NmCs8R{zk1rS za$~rn%q9o?o}^jYS)m(o+MP~omWy}S{2r5MDEB|6o?$**TI;0t(2K+AM%;lzk5zD- zWnD?x1A>9E{1LNcMs{PD+#Ja3icD;bk+yN8iLluYN1I=P|KIA2T}Vz|*YU}eir7?+ z7P_}-Rf{_C?|DE`Cr>_g(8l?q1eDb&bmU$eg^IvvN6fv5RyXR?eE`Wd!3i*uba%zt z7qL6`1~G2{rayZSOTGt~AKnU)7GpbWvcvJI&Gm+0Dk`zAk1Eth1bW6Cc*nc)X(0ai z#~({a2ku?IUo;U-{($e8XN*l#{Ms*$n(R0CvY=M|ZY~ejNUUg0%9YWl0dIJgjq!Xp zzV8x57CTS&ig-4rONHu~VK?|g4||MWOj@<96b>H=mF=JjTmN|2^9HU-Go%8-F)93> z_&}aLb6=Z3bALi((MBi{#~Yrlfx71;PJQweG!ByP#Mg>e3L+JdNui5CuW`~@t1`Dm z`pC%jy+>Kse(a+=zld?%2##M*vz5BToY-qs+*cHtw?E=6LOknUapnAp_z=)QR0o%=!OoYYJ#~)D#eXx#3Mp z(TOHK_k>6ba@_hRkW%GUdGoLu5EI~ zt>aASBuB%imG>Gc11sV&N%e3vNZ9ZYshPT&A#T~)>~z>5{i7@FA!4tgTO7XD-GWI+ zVBrmLVf|7{w;hn@wPVho%#@%HTkjo_5yg(M`=;%KY6@*0b<8YPbI1smPDkJ88hJI5`_>x=l=Zr6ipoul zi}t-efznYMo=^L%*&7%aKhdab-y}oD&%NPj)Y4r$5bHenG|5g$?B_!Rr|Fqs;mFKHadmA3}rw)!H)LQWFQ z+XvBv)_N<@;IU`%kQVE9!^02h6y$Z;=`j=AXOrv!HK5;;kB*N9q7IQ@B&Xi9*Mz*p zkGw~RcGU>?hsu7J_N2c;@U3F6#-o)UQ+Ef*Qp&iTqyDAMxh6Ic1Kzfm1o(ss z_nL}U2S+~-$i7-r8GlZKf%?6Au1^6&_%sD+ZvV+!p;b$PRhJQj7Sd9d#pgXRJtbQgY6mn&}#ALAFKVR{JWBuBMn2IUJGRZ)PV@* zz>(|k*F2-dS)<77bfIv%MyUipE8}7bMILe}=iIV7CG6_GyxJ1oO?d8AMC7WF8SuaV z;oE8!zuaJQ3-?fmB@jq+mYHQ;Sml=%JQvIKG}^9)-kf#bwdpbKrsvv=Wf8@ee-W&j zOXg2r^2~Yg4KJDU)m=P>hb{UdU3b=bRFRHXKGHN3)r_>~?6^@+Y?zsL9UL-|tGlVU zBrO?v!9TF#N6O9Icv>7$A{P>KTpBHIk(tznj!2D&*YE}A``7E$qk%*n;I7dCZq^< z<+N`Mr9bOPv>o`oR}ht@APjsq7&D-rWT}Xoyz=lQJCgXiy%Im7w?3|}@-V0#gtDZJ z@tTyJ@^H6w2@^XDw#sH57_4Mnd3@h{t)acN%XLRto<6U=_%QI5)7eO|N}iD=hVcjV zyp|yx4*QG@J6j?uaQAAII_wlR$OIvYFe>MdPsOjF)iuGTd3;w@PmTxS!R1>S0R;M^ zxoc=L>o3B5^KD51^h`;u^Z?_FC*@!dbreDV~&1j6E5 zYLRU>TsRPw@KASu0ex5n5cjo_>|+WWv|W1=HgtX;^Es2tmJdwobKHk`%-XMuGP4?d zX=ZO=kUSWUzQPgv0?KrwXNF$0sGs_vc8JNVQqr**VcM)OzLmLpir?kSsDl*!VRKL` zjy!uTOk&)p18c~{=_q8IL`RmgpHOqM43yaCh0i$POjnwmD)Zf6o!*@XEY7yBA1QSO zR-{PHpp!&#yTnAMkZaEPbMi%LSoC;XjUbJ^VIx}Dpg_+}1Ho*{$vAqF>aMpBY656# z(sJ4F;S@_+@Ku|uRbwzZM|kc^LY6lUI5G4d>KpFE%slyF`0(=r zRJhM%X|SR{yV!m**f_ABxw~<8*hq};g5_b)-+m({21B9YNAv?*bs-c>XThTol7MyA z7wper_$Bqn1k^jEfxC*-D~IT!pW6;#e1m5j#aWojrah*kE0-H>nvS~_(IJuCcBp}t zS}_H?=ETqAqK+QCpXFvL9ev)O4|gMg&~roT1AdcjAOL-XHG-w<$N;YHkTu ziTjafiyzC2lbOXW_|L2x0uUSYOlpU1q3rTir48sP?zpo^Qg3#8t#^+0E`xQeW*E^; zZeL3Bw}uB9BUM z%N}M^FHaK8f?EP9vUsEaf~guBWyVEZxI$2m9be4^h)YWg5?2c)dM{^BH(-*x#;)7A zwwtQg?+TIiST8EB;GKkM6{Ty{e3lKbBR#LO)X#@U+aRB;SD874FU;|n43f2BP5eYo zrzRfGpdZ+G@vtQBUF!>KBc$1aLJszebC{jr`K+b(pV-8D#ELXSD&_=-oyD@uQI6$t zkj0Qjbk!9IpVS87IrL({PT+FvJQMl_Ko6{v6!B1gFvL}JC>l%B*}5;#{Q)#PNZH(& z-eieI%$VZ$9QC5Loi`&U3_khfW?12@8PQN)9@_+U@p*5=S&=f_6!M&KFj*J;`Q7gZ z#LtQij-06tLSZkU-TG(a3_4q8%GpDu&O$cGx~ATL>R++9<^s0a-j+e%A6^TR91x_} z*Z%HpNhWWo(DeY_8Yx5?PMsdY{wWo|Y~wi_J?OBO15!uCV_YRZ$|>SkN|oO0IQ7bz zmt#=Cj!(;WK0?yJgeHYqxrjdw0<8=Jtf^nzPCLdT;U9%g{$Ud~rR-VB%5jhPk=~ZL zH`;rB=<<0c$@Otpn5ztHA5B!NkYJPw-nO3HW5hTlEQXxW1E3WhO__^ziOX06>&mD0 z)rGjwC2(Q5o8G}eRlgh5RFu4!h@=0RQ1at7@oEF0qw0%?J*1}IW83!0{Pt-T&&@E$ zm5UG9HVSvXfq)?gRH7Pl`KI7UCfG-XJMl9SRZ?JFy40Yl=cK@_QIXnO?_DNj;`Qw2 zAuYHiK^CT%$yvM|cKO6(rn6Y(AcY@AP0U7UzvqH_Yi0}kq<)a#?VH$F7QZNaKA2m! z1eKUSdehD2(&&O+{HiwfKW7HCaE5aapms6d*0n^-Y}xo|cHsVf@}r`T#k`?i-$fjY zW2cw8&@$ouV1$G!y*f~*w86Cq9=LQLTwslr?R@@)Imj>$(fMK?<<0s2Y1lXEAFG#1 z^RB;dD4d#Emw?mHcpvuxX=C!@b4u5B(W$QqlzeX%!}knFvcFiN{Eu&eUvJU`OatFh;0R_ z-wKVG15+NH{G%|vQ7LfYm597XEKQ^_Y5`1QHLymZa#(OCpii8gO`N`sDORBVIXNa| zA9~{_>qa7ZV&jAH(JX*Soc5SYVr8xfK}|i6n|sqb@r46R@&zjG|Eb}NRSiwv+jWwR z>3r^tGqP(9_I2S6-JM!Wd;_o}p*cMLId1zfOVgt=paMfvf|&0kc3y~X^TIFH99Pwq z{>4hs71JVb9Pr-!8@Dl++T7(on;Yt38BnPvell_$5tw72DEXOmiU1QqcfKF5qZ)l* zM^Q|`(JWZ@njQ=Ftv{^9U&82#+qz-8%p}#Q8 zVf~gXQ^6Z~)mt+U^zWAu(W5ZmwD6A%>wv9@@AP3H0ar-n`*Zj_r5YH1{(|hA;q7Ki zW!j@*u?IrY*`v9B)-Mg$%A8fb(6?XlKepRrWH)-DOc+7|6E=BJom28Ea4$wtnG2CW77G(%0a!i7vhZ& zT~P|k?fFTtL~LfR#OOUD$2K>hn_}!HeUG2`3c6MLWubg5exxab<=XytH6g|PZkYPE z!cJYuC=o}};2*Qw@aW1$Igee_)5Mw6OMd0Ezf>o(AzA%J$9Z6(s5sd~3QI4< zXY)zev!iyE?nL`i^O7wj*ytp4!l&i#^EoaDyEztN83&f+T|YDS3t*E#h&#)7@74L;${qfSnL_YISI!v!PA-e`C8el z#|P-$;YbSV!;!pBW)vzm_{4tjDMv^LOBt)|(#OLr6}qEWbgB$#qd1D2VMQnE<|e4a zVk=AN_d_@*0S#wP+B!R#=y0650d`UHpcq1;@hD8dTUcJ8)4||xdAW|Kij4W|u z#jzN>rYm>BDOdUe7W8WS(jhe7rG0=Oah%&hafx!Day;1&VL*i(bbNKQI_?)jniN_U zYe0uXOAQMqEz+(EQPF*yXCAnO68ZG$Uj@$4uGTe|W;fmC2OrU;p6D}TH;p-G!?#=beay&=ARpIo z45)WlsaLx1K4z{Rh+1@c$coiBkChT z>=%sjCe0%ht~KJ%f2KNB&c=>$DZ5;CzdaUt;GOjN&Csh5rod(zUdpNhz*8Vf^I_fT z&@LDIHi4#BR{L73)_baWFI40v-6flEf+k=mBk9VPlvof~aBb=6FcQ5nQJh!znpc^bwCexxQ46e4051^h-h{l&4RT?fThSWi?7^g|4~9l&2PU|wzH zL}CH!$lAAi$Y0AcSI*Y!#p1PPPbra~ASuazg)88knIwb2b~vmEgqFH1NwO!M$TUZZR6alHy#{9b{d4xci+G)5>sq6c zy|L$-;tz15-9S+*c2LXmQ$GuKvt3(?-&~F#9Pv2o&N`yl9~ih!|HNWqCB)_=n;T^6 zQcXbJ+%&eWc2a)nb?Ij3bmW7LY$+g2O;&0A&c)Ufll3nm2=u){5bU-rJw;soGgmKeUWQW!fQ1to7|yrMirKnxL;H zHIvTEq^I7N-|+mKGyG%G18c)U&pPfH1{Z)2oC+y0;YM0gKIJ%mHpY?a>=MQ{&NMmX>qx3zk?2Q=w3Q}@)rw9>&%ns#89s_tlX}0_Z$f9lIK+6?(tuv z?&l9h`~YbPekm=MG<)27=;^i69-o5oT^w2l=ZQxb9{|ya_g(QmVkIHdOQ(T=MGJS9 zMe<`U_0OOD9%I*PW^2}RkfUv!9n(Y|*7%lj^4m$ao{%yPf>2LIgt}Gcy&a(rF0SL3 zhkLhAHkB#j^A7EetaKu*rP51e&Yt0nDeL5&f2+i=+@@v;))A(YFo>usuAI-}x}ZDD z-0a$s-zMCttrBzO{8zBKj4Rtm)-2zW6p_D>kF<1;XvUmg-B_%OA5?a4F7m@JEmME$ z1-AQkhyqBsB3x>`j^xZ0w$so3KZW8`s{zp4HuwzO5I!VUijAOaPGZeX8dQg)`cj6` zi{1B?*K&l{EAStcgZgzj*%&$GP5B-3gIerMB!8QFyTo1kF$;Eq^AObvL1X*&McSFP_&&>1o#&Nfogl*f~ zY)3)hD>5Vo^^>1t4wHO6wYtp(5Zp%vdYYq&JSdBz9~_kjF@ylx2GbIYwFcZRe7I(}5P4a^&yV+yx;+*GsM&|KKZ^9Jx)Ujy-n6Wy&sI3s+PI7_aaM{-ryq z7UCGhEYz-yG^nw@Kf0%GM1 z8)hP{VrKH4%YkMufX)1&fC(j?><^N|oS8r;H*LT%jJK#Cp#*c3#}LuyJ|s#>6QHE4sGTd8KZrW72XSRV#x$!E$FbgWt^iYpJBp?!4hmSsSOnu<)daC5=Z&y!-uz4&AtV}q$I$i`XlPZWY2 zKWVRBwu`5?LpZ|a?#}=+lGE{wZl$|Rz&n#Qj!)=o;^U6N_(7QpI1jhT9N90^pBPgW zM^Za;ubSPB?akKSE_SUuBqpu7EZ6XR{yVs-cdShB(RYZ%RQ=$qrwoq$Jd!c~?BZm} zcdCI?)N8@sj%)5&kfN7+BI`Rs{Xy@gp{nQJuWpW91Ne+v6WX2SkXYdJoxr=SRX)8x zc|oDm3w@@bav37KvC1aL4SwVIThPkJM~wHw^~gs}D~`jLe#;I4`l!LZpopiW`^(IE6wrUen^8wmV4| zBng`ejX)jeO8J%F&m})!*Hpl1Gn34BwTgt07qCL3Sv$T5gz=4(3-6uv@y6+ES|uW5 z5;zFE(2O(MZ(9l_1j0CUa8Xf+q9Tm37LvzkVJVJx_HgR}J!0yb0RT%0z#nG#+CXrQ z>>&om$J|9u#!bF9ELwF1`T%JK{Lo>7(3NnA~G<--f*I zQ1%e5A~LS)5Kt0%Yhg+BZ22JM?^xny&arI|k&}>UERy)R!uY*LT)^i_K~j;I0tZw!Ms&VbEJaLPV=1q}6O%s&p*duAZ5txoK0K{`TZ>|q) zN>73%=AgnD`r$PhLZoOw*98?t?l(u!SE8*;%~nD;mqH7GKJLs)RCa7#vIR4vQUz#A z4aBu;gJJ68R+!GugYdQ``{C3u&52`^EIqY%^%BbQT~_gZWHL?R_!R9|H9WFyjLe;f z3x{mh@ZzvHp#9IEkd;M+zB}F57PySJ9LE&EUY7oK2KGB z?*s=ax-CO@KHVOif)rrK<^&$tyJq0N=dgA^AyYfgMw)06=VBay1~@i1(iTgO$`Qz~ zufW9XxFW$Q5wN>dkC*gB+#hq?T)DFj=kNI;>A4nrXqQe~AIKal+NJL|SOO!Rc<*h= zI=yBNT0d)eXlq{zz~RP~OUWQPDZ=26zk>_j(Kcg$R@)~IG8YSP{tf>(7(zE9SvSZD zw~c1OzihP1M*a8K@kM=oO1NA9F6^W z;SUSA#;xuD=p-n`7fQ_)N+g&PEB6b8pL4_O)K1%xY%9tSCrbLEA7H?g3}^ylgN zRPZZ5(|kFlo1lRLx>B}Wv)weXhfT5Qa9%daM?beldnX-6duxvlQ4O@H!$>O~J4(0p z+GoHCFe~L`*-OAf+igWCx4sgw8pFyq%L*y$O7{`&MFqnR!UhZhL=mnI7b?tCYqll$ zUM`sCx*{!mKlsDJK?dNSK~|j;rmv5jAZ?J3zL5m$9US?H=ueKmgbO*{W`cw%@!sWg z9z^b;yh+-=1o(sB`$vCF7YdNGqQ2glZd?w)cA42AO3Z^N;QS-p|G=;%1 z{4C4lMB&aJw(P{M3H1TF(-F+ZHo>wbc!c3?9Z$?Si5pZGHs}J>;avQ)%Z|T+xnS$D zZas*of+rTHTX!bFGC8o5|DB${)AM)t{5@QMWzS#H{J*NX0xed-m~ETy)Qd+zECtXh z=MDI3yi*rU4l04(zt3B&PtZgH4xrNCJ~t6f^ae=FO)5nF*&}hi`aTuOKf2Hx^&FJp z^>GFuk={~Y`V4SkmM7w47bSnWfR25uoLQ_x#})80+`3JZf`_YGQvDEv!g7K)hVUCj zB>8Us4Wk65Tvisx2#6;g#N0CI{6_RL{->XJ1qO$4;PA^u!Y`$e8Eps5*mJ0W$teJ= zD~5k=>Iaxg`@AT3ZK>m6u#ZHPV%Et>^DxDieGr?V1qosBIb6&7V<3=_w!?d4Q;JH6 zx<3k(aqL?Ob%7$OYp9|Zzr`XzXKSDB|Kp^MgTb10Ew2mEE;zwc*u30r3!B0+!6kGrY{!6yAV$Sn53MV^%;Fl~t&S zBUg>U)QG;T^5W9Ag&O7$H_=+%AlqJu4@bxzv4rVZ3KabVU8qh;HG$P4840UW8qs7ah#_~~ z%8nRBJa&{%^|vm!J|x#tRH!tou@=l1Nj`KSpCYcYiT zrB9j{YZ?8TFolTKt1X$tN1VbUxT$B#dwFZxVR6E_1s;0iVx87b_qk8r8_SN)Q4;O@ zopEf_X)T=vS_*gugu!3?OVTgC&mJKKCta%)YVg}2VZg!GGpnn`LRetaYjEy(m)(bH z!WvWQxDh<34-4XYB|Ht^_RZK@p1_`9&)j=z`%2{N4^*UiPU{OH_Vo_xZw9oTY*)Su zt0zN3!SJQO;Yb(Kg!_tN=FBfX+=~ypS(iQ(fW!NyutPIL#eoM{(2>uo(}TF)CX28R zh=KM`wS+x>9`Uu(`)G*{(+$MOCJk31esJ!i+t-7J7GA;A@+F%FB6h3 z-|;l!KD3bLMcWiumqI_P*6`8a)J%~$Ya8EejeOIQM)~a%aJM| z`;-`1w>=&51Mq&wAEMqv+aq#i6R7sK#1!EZa8SS&#RsJE_K>N51521BbuU?g1oQH8 z`Hn|@4~EL+XCfBsZTaZ>O=u$xB3m6kXS zA_DX}<(_+cjIIfX5(bV)94lDwqEqqB<)nGba~Dn_*IN+$Da*OmBg8de0FTe=;r9gM zuT(&quJ2wj@XbR)gEIt#IdXRbGyK%C*DgvGC6a2L1{CI`WD-a&c$rpndraP_i!jQA z9~u7aLhxzL;R26JGu;cCFda<2B=I%vpiW}5okH^W*9~{k2qVG;Wdg@gvPZ&ydm72l zoq^{Iy!%PqpoqYVjdm_dz(Jn;W!%cQ)D&po)9jI`O#C47a|8#^THz6G*yQD;7lin2 zA4u~_`S{y}e;{KJ@PMxwi;f2V(myM$3m5#Q(SCUlRdefxBC;X|(e0(U&x$?LWP@uoPq$!)>-kDp3Tm8Jl@10O>DB6zbp7uvP) zZ(J}ThPkNHz-up(ZwNVbimj)$mW!Z~XJ82$^ZC<>Th$a!bJ03W+V(q8`erb#*Jka6 z|BN2C_f{xDs%n|cXm;Xh0Aa~K!(GhQacw*E2eWSVqVorF8B`Ee3GuX@>D%(8jTIgr z37a&yZ%FDxnvo*X>G zuw{0^)AT9ef(lAxOBNwd_hEoBTU6slL2WWy#pEHY&87^`mRfzyy*+H71-Pka+J}NT zW&Z=&K^0j9b5>9@8x3sHRdH!gkZmu49KoN%Tsv~-COlc*uvD1oIFFk$#T9^#Z;12CXYRD1?;w~{Mr!JKsu zE;n)jVSw^&f*r+--v?icT?G2Ji z%z}1VW`)pZX!@J#ie<1Hy4P%C$SglNJgaSvC6y9rL5yl1Ke&}w0mS+|w7R@SdiYg4XLj6a;!SiEN9OLXj!2Pj6Pzs2E`=faYuRVuUK#Jw=C+fDn zCx2s_J-3{fRb0MuH^43S<(U(+IUs?N6ilhcKsF3tOCjqq@*GXXI(j+qizx5uL9`q9 zGVS1C?E(H)q%wKy%%6|-Mj@GN-a(VIh2EB@gKz9buFqYBn^-*xh$e&23JiEcRG0{A z{~!Pt9%Gy`h{iw~e1TS9rj0syhgnG-glt0=*hWQPZGfn6>$`k{;8#M{A#KFZlt7Xk zZymXa=5~S{Og=4M=#?f)HZS3dx|(M>7y@U;Rk9@EKR8O4Jy) z!JNvn?kI*1JgXfyCkURa8oXU=NR$xSKoke67Jfx9s$fQ(u2>`!c)RQv(ZOta4I3tK z>6IccTl5w77X*d8j+o*KtXV{JA;A;IymCGG^0wal9~nlnbXW&9(TN_Q;PaSBn*bLz@LD5M&xkV*V-;U`z0YuN*6tT7C))Z4{!y4aEeKr7IpR_9>*_1=yIx69HhfK0z4GbZostZfH-9_Zr(NGa7YS6( zJJYKYRqMA9ptnaQ1P`q>OQr9aBAD3}#PxSpy|DW!VpVV^UN{x(IsvZZFcampjYNbI0CHU4sRWP&Gpf9^$nL$5fBIcyef0y z*C>yChrF(Fa`)>SyJv5wn?a+V;Wk~482S5mZ+J*(_5ShQUtffM+F@oWzWb>=FbI;I z8TH*LAp>tB$y z9gh49vVNb4e?iv2APYj-f7s6Ni2Wb7!}t%|0qgh=+xdMW{vSfhw;A`@^%kA)EBZQ} z+g-ZVx?oXzktbP^%EhsGU}HLbb4kLbXTh4Y>ef{Mw?2bRu9nDjp7I6?a)({iRXBbx zV0-vVhj$qoO|tNZoB4SyFF};S;%dY;{8$I@BY%0I;x2MGM^^YHn6l+~=Ro9i(OPU3 zkuQaMuZ_l2*6B#24BSu0A@Yo(k@2yk+Gf$*1NZx83j}r{QJN-%ji`_>-@J?8T?8;V z|8XoX6fj3F@$H5tP5-4*$~A#7+NF7M>?!5+;cD)p zIidKPMw=*6WEZW(N7Am3>Dk|k@5LQ>?6|{|OoQK4Z?@bflOPeGa1UUvCU)=Fci-w4 z{QZl41dsemA1u$Jh^hmO9`0by&jC#?5f={M#aQJ4bhSShiJ{uyn?I`t+JE<(t-TfXn&A#)MtcJ3%z7wkoE()-G+C`#tJYg_dxFB(}z zjO-?8Xx{3<+tZQTIzub`hJvPj$N*><;BV2z2`6>|Ur)gAPm;~;CQ0_V3K6VNZ#kDu z^*=VQCBzAZwpHhFU7#tMn#*00oZ#jt6WQI%1aiO^wAE@^X}CZWWoD+f4USVG`L)}v zp}$GB|FxED@4hg|MzDkw{m!1i4%$hL7+fy;LpEKIfXQHw$tC&qrtdGoi+VR3r0=FV z5Smi{S*gU|ClX- zCDk6+oy1Y&UCX^V*6w%$Vfnqf8b-|vQlLVWCvR-!ArZ#t8#2_XCTMChr_eqwCoS}K@Fh&Ou3QmPH;O(j2)mU z?$hu-jApLLQRK&(PQq80S-0>Zi;7HSB_ye+B;zuJcg_jqch15S_GkQevzo%Uwcw{( zgB$G5?!`GeBywyID;{3@U{sRc?^%8fYjd#IQFhnpq(I_BJEHCn>E&0_QOLLEz%Gk7 zo*lm0Y3!BF@3ruP6dv>$(Wd(~%*Vn4@WdkT>1`I?_DjFdg#}HfiiI7|a>2JS#0YHMP8D9c<8{u0> zf~rM&VrQP93mYUmZBIGn%lsPh9#?yKV#4Ceq2KQc)HF!MDai5-JOa|zls^{vv3PeF z0F`m%c6ll?A08G$(!}bq{T}yjj!jdJjV4Nh^4RtpI02h-N|qt>cV+V>V))dZ1swD4As>e) zGCwyn?!F&h62keuIOaGCEjtQ$m=SaBN&xjN9qeRWRi};R;#@e;54pAGQO2o zBMbD;2>lNmp?`+wvG6~`^UwPMN9+IG`*E(7EeF-oR^YI!uP4{5lr5Leyap~iTPE}r zc>vw(q79j#gv6?NJT1Kinx92L2mSn9MBxC`YtAE0Pai2@m=eQ@?@& zk7C9zgo+PEwV(sL@2JUUfT7}rt%w79^E1y5?cQ$$e&AyS7!l7G{UOaX1;JG=_SWkU z5l0-{j-%@C4d=~~mT>HjgG6H`0~@BrAh_82E&Nt2($(wyF{F*hHG%nvM!AydVk0eR zsAEu6TvPzEms{2#!F7WC474j9d!Xo`WfjuLZ;5wT@#?ow=&$aSN-)yEt$7L>;RQ-V zmrXnSujFyOHX%5}@k$3Fkc4YR`hdVU#NNHS-RBrO1Fd3Zkxsbb+byDtp|tLJX~wnd zz9-)eQO#UOx-}?^c>GWhTp2!*J~rJpXba+}0VjSym?nHgYzkI** z;BuXGZJUQyNe=zDYqwp9F>oOiI(v+F9gW|-#*++361t!%$$1Ha`(@jD8c2hzR(I%y zxuTH1n1d*uJb+#_^4W<~&;jIy0(3?Bn%yBiO~tw|?5Ny2Xj~}Q<#o-%7Mizi5;^#q zL1?AMxAfy9D}rd~Q|yUenazP#QD2=|Zm}=TS_C@iJbiC>=4jBxN+;javZ?t^Xsjpr z$u!Ku`0WS$PXahwdEMx((itZ+sOAvlV%|VHG^(z@d;a+#bgEn!By}lt)Lfa>Y_wOm zD3=UOauR>CUVCfPl5h2UqVJcHfsMWaE_G2qMC0z{kQDC%wD!JloOR}4z<|KoRKYF2 znRoL~=lY>VOfu3OKT#!lk>Bu20)sC&fx5>+LjE{Ddf*C0$+Kv&hzsX)*^?ulpfEMK zg=<~yTaEpX-peY-Y^_Ozo_~7C?feO);=4z*+n#uK5!teKk&zvc#UqlCa9g~0?5()6 z$lC^t&!4<3zDG2Rh9SvylAv>sU;?eL?7w-{$8)j?3uF@rXDHfWTU?ahdL zVeO~{Vhmpc8WB5VD;g$S194Z3VZM5%7QN48uT>-06glpwaL@)j4<2r^LvbO^kqA?K z3&iM5+ESE9a(pD$f&zySq1`w^r+p9dK+0@-BP7rvwchfiUf5*~7vYym_=AYFk!Z&c z$1TaCsCjA%_`Z6AlVRuf?EUk$L-4jnj)x52?I*x+2_CTC8HJ3`9yepAdir~=FruBu zUn}kr$zK>Pq?amuID2=ZInf(wTPea5$!#)@`GzP8N#{Tp<8l*FhC>>tAFu&oQZ#7& zX3`KIIBxkaagz$Vp)Cys3Kc*1K1`_(R?bXen&Vy-@kD!ixD#|uCY+MS>jy#2=slev zcewmuNy7I;gq~JSF{eR;T*@2wEZvgGO&*44RD1DoTb5!$^`;x*Z?I}XQy_?ycfa|3 zLWIpkN6~V_cze1DXti;>Y&xngb(kZDh8y(W%$0903$0CZhI4fc;E8mERBzaRa68aZ z>ahG}S%ku28S1bO@nA>I)I6iYZn(x?mL8xq$$i$Is>)!H2tP(4bJ}fpGLAeJ&O0I; zlzF1=fD<_$&Mo#V-@)xk{Uiyq)TQsYDf(+W>~Wo=e@vs@KOZ;KOiC@-i>{nsen!K6 z_v4d8xFb-4X~fXNrk!7>k(VImtrgCu>o(*#^W8bv@;H=Bh9N!3Q75eFdJ!odZil5w zkLejOF5LHc+FDn?FI?JHN(< z(U(SB)Yl{7_hEpo6M6ua3-e+m)LlGC-p4y+`;hE$ts|hR*01vI-udVD+;Pdm-081` z&-H~Jm`zCxz<>Z{@f}mJG)vVN0=u9<^CbVI4><$hgSNP~Jg7nr6RKNNr&tY5RmP1R zgZ7T4&|^ykRXhVlmc}58Y~Ca})twi!ZVQdC4xm$QLtU4l7?p$2UvRwh%?vNMS%2@z zZ21t_>5=g%&ri5I5@3q6#RYv9v5XUmAbyrrM?GrgOB1D7yw#bHIY4bycX?^PQK+N> z%Mm_0#52BSuUhP2A4@MEsTb!s=VJo3-T9yLHA@Qx(^btDfxg(pSirKD{}K+rB1TA;CV7{7S3dw|B(CrPV27 zR3+G45>@(=LmM86sBdxTBrK!Z#5M77Dq3`Y2X@RWVvOR?z~*^g$(nrjf}63SV6^AX zxzrQiBf@<_N6qWcF-^I%56s%Ny>yOibh6L8KnO)K#Q3#K=+PyRc#`M)3Kph_IIBz) z9T%m(B#^fS{tNyVB1Ed&A1|`sXrQb#^)ULo>~ia{;MmOBE_JXAVGL*1ua87)k=|t_)ZUkeIaF}Jxk3v>Tqk(pxjkFh0nM*J5vgdXRj``x$-XBAGot!KZUB_@rlU_IUE6wJRQQkhdY4O~ zI$xW8HshMkzW2Gu}_UHgLE=hCgOc$%fP zi-H||okFVusTyx$wH@pYz8BE8pC;v7Dv#003e>sgzUuA`URH(ro10Vi4?)kGK~E`g zX@Gikjt5(yIo^{(Gx1p)rF;Tz5j~DO<%5VU z_GvMT(bTI|jTwcP`g&;p+zATNaUtRaua zgo?>ZQz7DO@PB9xmneu-^r;E4H*1-Xf62OBC+^@`(Pe;X4s50<03L_ zi04OB!pgynAqyL;QbEf_;_>APkl7$A&RCA@Hw#0|6?2J3YP2GK_3A8|1$(~Q-p%+g zV@{)V2K+1Ed$DskSv;I$%WIQu&x?^C%o3XC8}X@Kqjro7uF03NWx-?bIPQR6mWws+ z(ndV3G?VIWUfQQJNpo>BBys7+w=j{IQ|c$M#j73KW<`eBwpD1F_i8cXhj~e}Vkn{! z$Za#OmOeR;8{~euHrQw}(F=-hMwMQNWmBHBi>Tui=$2mx^ON(&t?uTB&o0k$zvhXwo3?d6Y`JOCU>r6w{R{2vJ1otOCtF^n!?UpfY zE08?4p6xbMGCc6M>+}gdl+=tgIxdrSA;a&iKsTTD_aoX|of8+r8^7QT;;7aGn2d5a zg=zZ+ymi(kKkZ{_uE64H3QfvMXyR!q23-8@<(gsXJV?7ImtE4nD{&pL=-wD5Iso z4Vg@e-n)Hxk-Nn8CE~)hwQ4NHbQ&bVT`%qMJ;9r7_y(FOw2ApL>ly5!w8?lu+UsMS z?Vu}}!nBs8cNu*-H21Y)sDrf1;xf*FdRf}q#RQXy$%6KP{vRHon|h)DCUSFIZ$XsF znv$mInl6O$fxxWQetDYeN`hhxD8CBwb|?tqX`)F{9kOu|>dVTuojK0+N@lD;{pgnzpxZIFNnGiX`!#;{hl5c?%n5hum@;HKm3CtEC2vIo0-mxiRGkFy~D z;nRAnjzuq%@H7WbnsAx*72D)M%hraGh8UyPWW@rIKJ`d1d_-)Z`kW@iFGFZ+JtsZc z<_+;Dt>smZ(vj;b`5x-%`Go|V#6jm*XT1gXB_j83c?RYRL2#I6S@To?VOVRvVd z+N&$_4&rI&8KRmP(6;R*2@rNn$E-sqcwUi>5Jf@4@$aOhxwiSx>qFzjaXlxA%v)$w z`^JLlNr%fMQkZ4?tWGJmIFURXFhls|iZz=rXs$KVR zCY-@B@}|>a-_+(+i_gL3p|kDY;);ZEC?CX)$;c=>>~o(?u<{ux9P=xcm}txmW-Al0 z@|6X)Yk@+Wh0*~FIO-^F6GP_KCY9b?R1EM4xOmr%G8sIQkr96wy%u_(HFhxQI{)qW zds+=9E1zZ2L|r89W9ghwnek~=;ID_+nu1v3?)aAv?ks-VM&lqppS}UQ>ms^SYV_6I zMjfo&YuO_vi{tHVwQrXyo6DRWc)XntdpAB1qMrG9AKzFY%AQnm2ux$HbO`-{Pgwhm zqUEpYLJ3?p05wF>x=;@;r!9p|ah+LB#4ELX+4yv`={6{Wi=Z;4H$>cC^_UOaI}OiK z_{r2qR{r2;yB1Kmfmo9~?KE`6Axx|o`X#Gd2E(TlyXG7A!zU528@wY-ai!ux^$fb* z+is{U<^q@wTh)fgySIX{GC3oUh;8d?p3aHlm$A9~rq^#eOraszRK}i_Q6B^U-k7Q; zJ@^3l_u+>|!+b8W9!NuE5>yjz7Sb>W3e0{aKR%pk?li@co;)l^4W}vx(WBYClxecS zIfY$fdiIw2oP~m8<+(vl)`o9dLAu4(sZU8np^csiq|>Ho<&Pb409) z*1TB#ETt9{X3lc;3UlGgYB#eiIKs{p$E1r<_#OAJk6!~X&F$-b{i?`gdY|MXg6TFS z#r7q9?0*}b+E`RzjB7!mxWE0-(n#t8=_00XKYkK})23}H&&Vn1-g#XJqXExyhQ2PG zb~HKGo_TEj`k^rK(*bZdr2VM=T)YkoD_@Zn2qL^~gm09Yy5guW-}Uf6bG3!K*aYon zEc)#VNoc9PD=a{>+NwXTbie3#b3p1)LehSx`*wPy?yyO zshr@}`h130xEzFU^@kWviu{h?k%*%T&UDAARkxzcZpI(v4p435BCaZkyLTw3`qXZu zC%ke5S=`EQBe1HbEOCTcBhSX?hgXLk(tb|nG){)9DoCR~5$1w(tl6D#1b zTA5L>+WYXv^;QAe$d&3mnsnAAB>Jk?=6m_(6{}NlpRc*{v#ZS2%;cj-rOq7fyh0oeDhF zd_8JFnWJ>A>bVd_q_vl~St#TW|GtFO-jZJ2PVmh?b9P1TJRL}?mgm@$s>Rg4Z1#!%z@EXb@L%{bt~ZZf~9ASV^% zwDK)nH_2=u4gfQub4K~>q-J@~1veH{848eK13muy6tym;m^X?1s?;$<_G0dr6%PeF zz!xn?D}^;t|CogF zPg74_s8;u+@7%>}kkwuV?_6DIUbF<_%Y=G@jh)s0sIo2nTxpn=*jWx6fn{ePW zZqgC3H{0rS-n2StioQI?U6&YZVFT0^1ZI=+Fbq8YY$ED^Jr+7GFU2O;$GbK!-4Ia+ptFEyp|Oouif3v(247$NfMi10l- zX+HK9Gt(7Thl32Qy*0xzF9K*N>w}#DKac2-!iig(TrcYb?QJt7ByCD0}%KQ z>SDivB4@L2V6FprR=r6+2&+u0Em6L9nN8=Cc(Hcx@J93FOlwub!=GF zgZDh;tgYrn6U8JyzU$~AYp)M$-@&>iTF4KceBC}L1k>H)8hj2;I)`eF@Sl^eiJbI& z&BVjCcW?Sy1d+ASYI=%ot;xjA1`wei>b|}0y2iQz5gi)BGw$+5OQVHi>jStH+MfWw z;pn4`$xPVBEY!XrU9r-li+(~&vdif2i$@uzN3?=awi?n&g0$mELTB^R7*>R&v7X-xS+Ste*R1N_R)5V^LWXA1BLR+E#2g zGoAj~^wUiW<;sXRDCK<+VG5ZnPILyADtH#zLnrlW=EQ7F+Uj*F>t&n7o*y|c4fMv_ zQk$6xKQ|8?LI-qoFFy-hOvtxdB=#C;wLfv?CSiDlILalFqevsWGmJ6AE_4(9usGq- z?A=Kum_-_j(NwK+AJG#a%-@Zx!DKU%Ky3Btvf|1lotv@XSPS>I#~+G-#+WEeeBx~% zf7|T7Q6AdTkT9w(7wg;^fVgUSi!s?`XdO)E}XBPgsoiPcN6 zDv;XjqI3PjC{uBv*~|07B^ zA*56IE(J*s9l(4d?n(2VwupGNM ziR0u&MbK!Y&aT`DAM}eJTTpcO7Yr$a$rbmh0au_1F;HdIY=vL;@q-M!`@Qmz3A?*| zZW*g&4Xc@~UjQar)WzPXbXKSRQvRcYi0RE6xuE*bt4iJwGoLkozc=5ootdZVzSmUf ze$tqXaWl1))Zl@7K!m0I7T^EhS;JeEabx|^@NyDt4PjO4JlSk06F2I*=wcrv&Z48C0 z_e?mC>v@w>o01Ctyxk-YZjwh@-8i9=^E^V)(~`QTF`CD;HlA4YKz`0 zKf4anEcr-oRKx=OCDfzgd%9k)KYe##ICVphfw^K-C8#|U5uI2A$u^2!=xz?_O#IK? zHJ|w}Q;BfD^J*hqRBhDbem0h)5vE za7HBroak^XVkB2Tf+|7OZR4Bog4Z8{kaL$5wbQZa)&N0w)<=1OewwCl0QAYLY1H-h z4qIzRIZbp;Tlgmvh(5l0DAuy5rgL~EQDQ&hGPQY#YK!(CB(dISRBYlgA$_Bb;Y&GW zrQ-_$%%{g)IdeyZn`(9(TEoc(@rQj=$C)~b=ZKR~@m*mdRIq9Rz_-&l-z|gf`NONG zy}SbgsxHOWV_!Kw%it|qKnK7skQf*ub>V=^not*`C#@u}d77usTGav0 zlDy`;<=&bu(quB*3?MECBKKWLkQbOm!|(s;X$tNy|#7Fh;t3vKPlA zRSCPWry@E`w#ra4in2a%ZnB3E_*=a^A@iTtqmOca3T2kt%XQRePM5;DADMk4C_ z79>vU9?PY6O4{*zQC zm_~@c(~N}QNyHHmUYOEY00s!dQ-#LubUbpD$5p@GwHb*pD9*_4UXCm6%&U1NS5pC4 zc#)A{B*m5K*g=bNM_9i?MZSR&J2Qry2SO+i6S^?nIuj`*ZC)~ok)>Hzmk4SXsO&WI z3noL1vnsdzCnSFXK385(;9B61MLw6x!#rJx3S(hfHoAE-w5H?E4L76S!fg52Ygh9H zZoQBRf{wIyQ=o`qy=4puyyF}P*SK?$fEjuyYl?WuggrPLcCl0H2EKn5Irptk-CTvsgR$C%X4+h@+?H!w~4X6_CE)`4}P}bw?Dh!y+_dU zVzrEL*pqRw2_4Nir{M|2xn&^~h>k#j);uJf%lc%R=yHW7TW1C%7Z(OlsbfZJd@DMY;bgXBfQCY(zHs`#k{Vrd$u6y&mC% zqL7gS++HWqI1L1BGWkh}M3{r>Ixy(kcvEXB3a&+I zc)4_%axU-z7WorYA`fB-)*!$?m=|_YIqqd3`3&s~MD`w#oZJVkRX%Z$nIy#0{k#TO z=d_N}&vGilJWl;Of~R3u)o`bWL>JYB&M1p4fdHYUro9uDPs!;(L84ezS{WJ9#RR{s zU@@oX9dF}L*FPD1Bc12}^i^;`rRFs{eI!_sjyfgiSjZIemK2Q%RZ4bNKY=75L-yoJ zIwCr?`9lHxtChE-QWs8Ag>&HBP50ug-|Q#heGgF~e`h|&QD1{JzmQHHEB}xfCxe#} zE~(}}CoVskMZMBbdI*Q~nBAlcUO=2p4+vmKKi`ki^O{WHYhO!KJD4Bp0Nu~PfRigvQ4%Eq#e z5DYoXnq5+(3|!{`O=iV?pfr2eTxxagjKEr^cEOT&n5oqYC2Fi*Cf*I`9)$V-@F^r)Xc)RuH?5|4BSD$DxZaTS>h_FX4Vj)lBKUhcT zal})OoHnGI?9MZqdcU8Pn8RUw1k#bQA!T3r&L^Pa{BIVR>YDRKf4aOb{Qz}+QQE9V zn@m9?ONS!&H5FQ~7mgG;_T|Air=^G($Ty2*>!~kZh*DBlmA-T518Rzq{1t}X{(%}A zp|eTnw{56;zPf7R=exPF#y?gUw+32{24td%m(BXG@sMJ7MYxMm^8(J+UZPVTjjG5` zy2$O_<}mu?LcsM?vY5&DcO4PX5%bjRf`(g0Av2NXLlPTm^itTBnG3gO#7n6mo*FT` zho#AQ6yVh_1}Hq~)4Y+&U<>oFoiX>-J7G3E!JiyS(_75|^mF7Mf=sqi+kM~SUq~3( zSIW@pud^xn+M)4o)-tebx{+k=W{Cvb#~Y3NAVGQizm=do?l?;4*bmeT5g|Ghvr+0t zwzzE7yOA6(nQLEvoRi2AbosxM77f1{fXUfN$Xxv6;`R4Jg(~~S~nSw>JtPb~exEmpM z>_cauyhPE7(U48>KPyn|mYW_Wen2zK2_h}ih6+v9u*;~5S9r?Q<0U^g!T(*7P&gAN zd^$@5C8F*xC8RuU_Cls<-X@m{&~x&em1wLZF3(7#wK#+^J?|%YEL{)}m|#Ph6z~ss zb~<0-H2Ue7)N%`;EWS7P0iiLP=j|XGbMKKceh1{rN$A~AiUr@Dfs#{S&O9RqQc7s8 zNx1Aqm(T(R*c)lYe!&BD-T{<6Y$ErUd3+oiENjG;YZi;uqOf)8c2c}R5EKt#oVeN; z!`}&s)GyQ2S;-q<cavil5p$NCF8 ztrliP9X@@9fP=mf7-K+Y)C>RC)!9ycEF}(XLpDoG;evBH5JlaVOZsmG*8?ZOOoO2{ zPdS1nT@p!Mt`M{76gGh%-*q0_4XGp-k7pADDe)KRiW3Le1hnnF(t|H^KRqbIE#q-- zH*Eo2i(}ki4Ju;e#=ld!8QUn0oZWHhxe=FMKaGNM*TgUqf+eB5?0Ws|dj)%M{Kf)Wsly(As**aJZu23a$G3!eSUI z-=Hye^OCItc-)1?S$svCs}m)P)#>FZLiBnGc=IvFnqjsJnwIG0Yl9x-cXOW0a6f;T z_i*-WhABBib=tX&869cO=B8@^^w{P@&U|gImYv)~rhN*M6VjK6rPu&Gj@Qy?4&r5S z&A}+SK+f8^o;x=nH#S&edk3hyg^xIa??qV9Iy$y^#spJC&o)0ciOV7PKxLkk9=4aP zKxVZ#_?8(2E_f@KdnMC0ezCX6(uRY*&3MBnS_&T3(1mxgym|MPv`<}hj)Z^mOTUK2 zT-qC*2%3orbn#SMYDh@-qTnGZ!2uuaCRP3WOa~s5?kgf};l!DFWF&-d?b)vfw>#Wv zPeTp1P79oEaElr1zAhEie%Pu=&~k%V#&j81!CC(*CU79dgYYZOMVS8wcV3e1t_T?Y zLx|D;ASdB(gC~+-)nv7^w2Tt)=xg3|Kf>MgMJO9Ab4yH*C`AM!rF=q=-yN9AdDLaYF z#>A~D5X7x7KJ1c!X^=UgUZpBsG58QTom4_-SGnV4eG3r}(W;BHzjz26cix7bNs@aD zj@kfAb)CrTrhrx2M`~ZSuUMX|mcdi+kU&3NOqeW&UHwKV!#aJXa1P6&YuhEm;>~KJ<%O?n4iNP2yv(AK-J^><}x`}*ae`p(8{^c$YA({em|B~$wKTg=LFdGbTV6?*G1~S3F^M0jLh_mzr(vz2 zuoo<4*cWFu@9lLFLg4DQGyPVL0)yHI*6h7kgibe|Ng>51O%CLUe0o78Pyj)h!b3B3 zF?Y*xy`2*{Zb!FX7J2E88&mp2zGrU+Qmm)tW40hcwC2Lv<^G4Y^jP>Zl34W8#F|k< zVzD;7V<)kQaOR%lJUDfBPpHx`l2~-y=bN$?oEG|wL$gDnMg%TJnV$>Ry+42jW?Jb@ zN{X5BoVd;yf|uU-O!jtY9iy^pOG=>H`Cvgx_D4`hYD}BVDq2HaP7QONf%! zJv32!tJ^lgC0|^Z>rG|*Vxkd}TxWa75il>`qz6Gg4wAaK z>tx6dJkQrUNv20vF6pUPdhZH%%`&!&8^b3!XUDua_9Ldg#yo$4%ES{jLunwqV_0^&&jcMNJc!y}aB&mQD8Be;e%R@Ox?%0qOusc9_*n4{Eb9-Jr+@lTvV{#Baw>Oh68vtTk z2JlwfxnAYYguJnP*?$gkHOapsP(u$$z{_)(VU(PFDvKo>+rS&2=+FluOR%nr$+x1L z)F>zXM&2P}h8Uv9ywdBLtZDN+X_&ImwMTe3%UgT>sQ;`gf^XN-GKwNzH17lJtL%7X8%x><4mbt6mgbP5y))BaI&b+V?Ft_l_wa11 znqWG%l6$Cb<_;rpn8!x225D^!pOM_qi3#&VX#?0jX_N2BmKGWT%AI~ytrrt|BsJr` zVCy(YjDF#0kkO)tY{W1g973*%o&qzaK}fCUH^lHC{M;OKcg6qdQi)pNQ9W53eTtL2 z@Ap_Zl??1jdxX4;4gqE?=Oz8lf5of7dxxEWx$mzh_aa=i_?mbYE*arCL?dQGmpb&^ z96(%LXgSulpfg%w#zmfdS=OsI03AnSMpp}gf@%y=>a4eMx-iY^*zz`;)FnXg^6#`z z>n`4@e{kQCCk*j^`N6eeCK~4`oB+z24Rg78F@GTC)qbXDlepF^?1G>MBHEffL;~xXyH|UP@`YB5a|VGIxi(X)=7IOeKZpUJ3K+aHA*_@n=naAI@$MB8lN!$+({=*g z8$a`UaM%@uaoM96B5w>h^Ad=tc7-yj?t7*lrVXr308Qe7z`;}aoQgo0=Bg{eFSyNx zWFZ_9Eiog)r?!jj8XAR<2T~4QH+%>7sVey~$u{-n*JVX>0p65ikhum63wJe>_|Wzs z3=s;m{Ik)r?E`}_cK7VV!Hrh$b-FW@%oVv70~EGIH~; z7e>)R#t-GDb88ZBx_E+ZnedVSP>>i&Ho$NBUEXRc8yZzzPD?n3bE>KMg%E)9ol~Wd z_vs~nA>>j9*nR~)WPiZ~%G$d_7~KPi%6&-A!@U)vK8%M)6BPQs&|*l=B{~6!$N~uU zkzjm|@_0OB3Kf(SM3V6B|7+{G${_jZrzyiMa1_>$aSCtW|0xPE_wCYA4u269)WTpO zC_+o8Z1V4YB?Sn!1sTLB9Jn+YcPhO;3BC%R*b*ZZ&;yL+EfDUsKL=3BN8IDL8P`LU zk!t+&n(%3rmw^4jZE}+J#_ig0cDwV&khnDl->tx%RIuwbxC8h5l7x;hGVg;(&lh5n z>ax{wmQFKt)zX|$xw7ZgFanI{RrZCQz3?kvS_7w;{(`FDHv-Hz&Q8Cbn=j23-j+*v zG}}X zZB_?rz;=I}Q4ap}U*;_S5-j?Ok#|ijf4*@q0WC5;esU|J7pk8(>Ts&;>;!ydC+vyP z{%fZX`@!5cD7751;w3QIvxie&T3keJ_Xi&fQy?CuyR`n3zviA!0*?5rB+m2?P@CcD z@B3@WvoKjhMM{VM|L0Hm4syrTJxb8{>l=?;N2ZD*Vvb2F=we)v{;Tc(Q#uUan7)^z z;FmE+Ub~tC<~cgy)ww^Tb>%?lHTWTQM|KGpP)LE;7HN3{b$1b9=}`V=>3sd)JgWaR zf36i!8l(MUUi8ght4R}tOce*mH`M?dZ9%L0>pRZ&X;@J8{d%T<-7rC%Fwa-Tq{aRk zAzB#bjF>*+++SNR^cajKIIAvI5*p`x}lHc!a@F{qC5L)d#V28oOw#aH(na` zy!qF;7N$X_M^6u%d`2YSaU}BD_OA(Z!6IhjSNHDwvk_?wU~a9vg1!D4A@(s05EwgR z9)E2)CKwAHSB&Oid=YLIW1U~;?FqwU8p=k`oqe^vJpXad4j~5fP6JWt|56gg0bf~D z9jbWM&3L7b>%#U1cQr&7@o-Slfxk9i1I+CRG2P+6M))5bT^c177>leSU(RV_H)Hj# z!e8g@2vnkR#}d8%YZd;}oc*VRzsFS%zB1$)Q=BCpZZ5(|a%WSwBa3*N#){~#%@+;U z;J*}oG46)}qA%4DAN@1m@vo4B-)61PbqWuc@z&z#&M;|WVS=uml=*At{--(nPX~X` zzJJE@f67??wMYLM$lb&6&p`f<8OV4&0#>cu>J#9L$%eD#0Y$XqG>@q{q_Vzip4kyfp-iAiP1at}@$O)SCpYjU9DuMo3EWG9IGHXp zfb|gqxGj`NobX^RfzYJ09C8=*3pqDPvP!1;9Dv>Fe)$@du6=5;>1>1mGdP@< z-DVcmi_r=%E`9JKrH)k>LMrFLyL=1r*$pVSGXb_u9*}C;GL7a@sl^?u;L{?wyj^9} zn%K-yxB{=kD5pH9fy^znx;uRw1!ruQX?ih%@IMri&OR=mUAb5+DJ7!x~D{JIx_;qUib0jG!k% zkLHH4#nq1p{sW)#QYSJ0tuG!c-)$_ZaT<3F)_g`ZnJ~kt2KYG&}bGv87OH;|sHEQLiCr5B0R9X}N^kz9bqc z_%%+Bb=@Uky1qo#5SNRTmMi$B-70t1KdC~wPxA;Aw?JuFK4e@DW+L^>NsV#rH{bCx z0xIaY0rN^6po$J^*AfJBnh9)75vQpPV9eP9D7H<72xzKA?A&!kKp_q>o9$F z4bo0wO1BO|Wu;BT)pXg@>#$-v9XAG!0%zjoYQgGBIjCm3fu$_p+FXND;dk*0$R@14 zSU?OFnybq*aaM#}ks|p3R&~6T@b&0<0|ipf>$6hfnvZ@LpW}D_ReavRWOO(4LiLCV z--ALA#Aj&I<2d$btGZ$kKj}nkv}F(hhH2KEY{$h2Lj1nEhsuaN1CJiiqD5 zjvFQeE6Mg-n1&W)I?1t>2LWHRwEP07)hRY4HQsH zJq(1&P?NlNbrH=nTf^=7Fyekt5Q@x4i!sNEzvjadnGcejXnQ}{RV(JdN-ctrlj~=$ zO!3!zcp>u<`}pmtbYnLbjjUXR3D*H7r)?)KPwcx&6T~jE1f0tP=)S;};2r#R6AIj; zXzQ_}6x?(zUODaKkv*m*^@t2BmhH{lN@NgzdhZyAY5a==n({r%11@Gzw2(H&^ImG8 z%t<#wsG&2TzJt%rxJ*C9R`!2ylW>IbAe^mlmugc#KcR_=BsKWu0se>P3x+S?P^{y9 z^vN!xhiZ}!+yi)X=c=;+??%#efQ~$9+PD{RwJNLd>(ej1F;q@ZHz8kA05!z;?Z|d^ zfGU0WA;+m<(bJ*Bz-a7?ww(p8W;PrYtr$KV%WhLX{|7g%ECw9SnQTSW*TWW6z`cTDvsEsd)0u*6JLi_Zdp251vZLOL!SuLNsz0xQ=< z`e$wS61;*MIc@=k*E&QZ`Jo2k**j2H9t1dC3B%sn|y&6bPMGX9XZx zQzZG|w6WN^1nI{f=)>`4Q?t-Kfy<=3ZLz>(rc3q0O zlMnSAok_IS2pY?}l;cq&4}i46od>5)`+$j2GP98`$0VRvBe53<^CRztjjgnH_d@kL zFqjl_0Al1FjNPPB2tt)FPQL)w>6$@JFdY;?3oH{O_GNm-C*VWD=M(#0Uk9Uo%pmOY z-@zLPoJy70zJ)3v)SqQA{PkZgfPX}tplAN;$zufYKcQ+s|KJ(($52-& zBZpE~maa&B3HgMiM~Gu`FMVUB(S-yLhZND@1jf#x#fplTuXG8+$h;T(WuUS-+Y{jl zE4-IeXQ0;kIvwUu1K`*|WJinJ0U|egpwi#ISLK&oIGK)gg@^&$NNB~1`#BtTZpL(vd3TCi zk5qer(V@>x`HK~z)QX1%(u%m>qLnA&DAe<~LTwKAp*`H5k;7utP)vCk^JWzzmydnS z_wdJ;FJ$P;D0)R|u8Y;cYMoL@TiB@4i;@cp`^bFf2N)pfk|F?g3%ISnHyw&AY6LdA zx)$2^aN`|}!u5A;>(g&5NsgxtyUTh;t-qn66j2Xn&O!P)MFl0?aI?E2_SQoUEspBY zqy`qA#k-B{eB2?-YK+oSH&P%xV%VOB9;)*9t=CWII`=_s>+8iShv|4rlWq^7W?8N9#2e}Sc6(L)2R?Opcrr0C0jZ6bhW<*pGID{v1po&s429HT(0m@Gf7e7R3-w`)?z=-t# zQrlPbo8#Zs8i1#YK5hcu^hMp`wj}u|{Xn=8+&sqEpOEW~Hpb29)d2v$VmPh3h`m+< z6_XK|_i1tD^m1>ZM+-wrB2^6#3YX*<5d!P2-j@y>;O6LcG=YrG2i=!AUAhNAeyucRbCW5b)?=nDec9Sp&J`3cMdGCR8+a8~G+!C%Uo|OO~Ni#U1GO5XjV%704T_EYi{02W`-d z!KB(YhF2ww>bN=bR@@^9&mnbHL8>YZIk6A_igbQ0togSgv7pT8qg=oK>j7L!@|4Gq z|Bb{v7A_*h*f?vNY{5~F)?-LuWfgeMPX)QL;FmX1gh;AiI90J|tqX|AeFk4PEb_Gp z(`uhzBw}-cJJ$q=b{3zDj_GY2ULcmWTx-alH}2aq#fzW7Q>_ z9v;nm_v3egMRt1DBY8kGZ{@Sl=H+wzDHycO^U!OjNZP5cTD~GDb4t>zd4iPBa{=ou zB{GwS<(!69>SXL7!eJEn`NdsC8Td$3kXX$Hx>zyB(VWoqxn44}+oYn<#xQN;+qNPo zBkw{g->}0-Pk=6Hz(LlliCKPf^g;%hLy?F9pF^)VL7MX7!=4WVhdw2SFyJ)m7b&G(0fweCZHYclGi~< z5V~_!=vLwX1t&j6a6SulPD*k&WBqq2zf9G207ALx&MN$ctR6e%YI#(z)49BbTc-eu z#$snUF6v*XT1`b*(a|ry1?Hiizen#@d`QiOAaCZPHKNJD6_Mk zUbQD%TL6aS?Peu)QC;@I<-|b2r?IxU{d8_)R^Ncdmuh}1g{iP*L{F$UR zzBiRJm_*bkbmvk@(Z`*}QS~9486{wTmcR9CY9;;CsG(?Y?4ZhOJl$8)H#N&~{s2&$lmv@F3 zp3P_mD#}mwicH*?2}j7#BE}~gf4n<*a=jRw|H{!8oEcR318zARU6v^v9pHKsbewe|xt)e#+9 zS7o=vLNd>5xc1-vcZ5ZC{x25!@Pol8A`C2|b4F&vNbJrsoZt zF8R0nqnR7yJk)%`2fJ>&AI^Yymfm6*X&@43xwiT-PtY@~&JEJYqMq}sSMmi{oS_R^ z575_9gX>Thdk1;~R28|K2D<1V}{D17dWmwc*^fs!93K)n85)z7n z0jMA$Z2%%IC9MJ?4FW?qCMk%hq$1MYT@osd#L%H2Fn~zU!0@h(k3P>i*ZbjI=l^~= z*YTqx3^V(;_u6aS>t6T0(rx_pgtp`uh;i6T!tG+PsQTlg^QOl!=`+`|L&z?=udk9` z`qT~RK}KkDdeJz8{vq=)><A1!dZJYbEI}hs&U%k0mQB~b7OQ!x_ z(TEcG?dGe``-T8#G6xw!`_d0w44Uc6aaD|+N~w^LK-_!))}1xk@05&|tFav|l> z_;{j8)Ky8gk2!ePk|4+%;1)V(l)HG8{*0yk+QOtI-}}t3sd>kDJ$-%9Fz%J=3DxAY zACGb8n5qVM^4fLC3+$A?cD3_JJOz1=vsjt`Nhe{>IAgX3DFRJd1wOGHUkHGS9M+p= zZFqDp)La|boinEw(xdHJ5bN>tjU&XkZDoGXMb$M8$KED;r}jRNOkK&Epf3+1ZoA~c z`sQMcfK_y;(o(t%jk7v42++lTLVZ`PzS}#thVu2FpD~m1;dt3dGJ3s)swb_1(YrUY z9=`hwwL_u9>lQo%jp0&YYsoRqtKEH&6!)|EuHuK>frITpys167Ni($REb!ey-XoaD z^h@G7?t+Y=D;wOWugrnO(V0kbC}twRCmXZk>(7NmEV-oKj|zGi&9o6+0V+|mlvmzP zpz*;K=@V1o_``uW@N?qC6=9KbLjvleDDD3@K5l~^%TBzo{gqfM-+$A z)I!XemF{Z|2&IyH^|ShItawJFSx7W3w+`Kz%In29q{`rk_kbYbx3hclKkenH;#L^{ zVqfgu_EwU+LH%M>Q=@nx&7AKuE;I>|2>J zJwtzO^HBlmmqPzC{D(54^4;q;eh+=`xV_dZE$jI{ov1Uxr}#SK-Zl3Dke%xnF)NQd znx&w5ZwSgSU;m)wg!zZ!Pom8(!PHR<-^Zt77gj=cr7%F%V0Zb2KKV^&=0kj-M^V22 zb7;t?=S2c)*NDYvdik_6mD;ATIA;OE!4%Hz<-V59HaVleiPx}3EGxTL%xb{_Fp=C! ze__2M3jS92EHwUO9YOFAoK{Ee~RozlT@n>oHR{o@a&$|5Z|^-6onN{)XxEt^kCzTrFpW3s_&wBIvR zJ<#xTcAzn%GK>tR4|adN?6%);xnRh>L}qy<3z#f~m5R+7%7GUv9|7KPi|b_+^FAlm#$}V@MmR|e!%nJs{asTiB?BNOij@PUEje@$1)5pQdb>Nz_gR!zdKJ z#gdEz%cqB_so84eAFYt*xA(gvw1Q^WgVp%2o)wq97U(`IYS{=hglr(x@(9wv6=Tr_ z{G5-k#is9CD>nubJxGismX1W$d+OYBF zQD})4749+Rv_VxyYU{{^BdAd*j0TyBM`c5qvBVUfcA-Bo+CipB>^YN5M%nVuN9ISB zLQqz7UyJ_GpLOw+Act&}YviN6?LA=YdcS4(^yj;yITRva@`PF% zZIDB~sYI;abM{>+=~mA7;v{UfgHbmh{+G3pjTRJR+QCfcZQh%h_zxvAF%k;8Z~lq@ zY1AtTl73PPUg8Z7K%za9S-&dU5W;@J;cY5i8Z633Tf!4c!uIwhD8|I%LA=lurb+Ku zM<%ffyRKTh{HWUPGYv@CBn5rM83Jw{sKn+WnjS#W?`}rZJt3>7_qgrSYbgjyWOYGB z99A~$l4|x{Au1a6u=sp{;%3|Bc49%ts_*N^P?bS`XYs9-`_#Pd%oFa71Emu~RM1s( zg^_C*ydaA@oqP;vv5>$w5}_d3RnW??$FD``O=D(AYS?+0VOD?v)-o=TNf>X5VNneb z3kplK*QL|DBBaj3$ZwuFka~=>;eE~^Vwp5bN&+=5zkwro_7AEKdC9Nw_n#Cyq=M5t zeMx?uYKdi7&>Z9Xus=PZZ6uwFvHd$W6-B6#x}AzagcV5) zHe?=%OdZdqayVzwemt~vitTg*1|~v5eZ|&6D<)ba;vmx*KXg9L-1YhhBppCI-M?cqw0V<7;wIG@K!gVyx)_C3n3NAK0ry& zbNpTg0DkOVef6kg6KUI=g-F7Oi)MgMc?(9Vkl=1n+Hzm6$=LC(@4ZT0Si}yVN`{{j`_*JUEoZX2KgL8iV+y4VZM zVVsrhscCom49|Tu(Qs1ML3-mN)Lhib1oQavbDV~!YZ8vvsJR`sjkZm&&X5gDEM58@&bTZjeK$WA@k5loHFdmjOBXb+W7K3xwlE-07#*QD4mGI3qtKLPaouVmA6RG zapVD}j^22+BTE|%+IHfn;CLtrKpAyxz0zxkj~S>$=}e>eexx97Vq?%{ZlA&cRIvGw zvKASTVz=!PKJdT6v?O9#5!LK#uBurA@UmzG1h$|tuN%-e)SlvPT>S&GNSGjsoM?;< z$X}V8-i>TxLZZ1-x{E6FrxA3olP_!ZJdN`>cFKbwl~aWZH6W2bI-%nZcR;T{J+F5* zOimZ30{8WvG#c%+*}~3dv+v`bL*$ke1;ti}cZ8F7g!7rSe|R2{4+=EpCvOu#Fa@bn z9{lvyJ5|i!EP4CZj3q)#;_objvMDz6cFp<;1^2zO`M*~AT;XwHH5$XX={$gSQIlGw zOC{}MQ%Vq`!oTbW&9cKg`;y7BKNTk9a{XwzD0)?-Zj%p-y}e)1C6(ORi0XGUmHYXW zGAT%1OFY-EtN7ililQiA;azBd+rD*%84K_1?}1Y;^g1oRJe&kh*qh2)N3O&kgL~_# z+{u4+vqAs!D7y5&Vw0lFk2a`N8qbpa>V95^I4#Hi`t~1u!|NcZ%tQ=ceJF_qxi8+d zmgIzPo;=pzNC_meJAc+=%?|;0Bjds|xuK`dOaY1*rNk^2tm**6QpXJgJJ;^<%X`Rg z5;vk;CxSdyN`|mMMrvTVCJGfnJ3(EV;kgM1K>P!i1I0U+p3|$-OT|%*C)nzOmKK0M zrw?p*bCZcHb_e9Yya53Q*;P||03Pj|ih|)_b`vq~yDiZcsQ+TI_VZiSDZF*3P)&E>Np-0uCm}9h}{#7+_wtikM_0)X*EDS_X93&#C=|0NUM*zOC&m(wXlL*4L;Ss(;d z$8h1^E#cY1IN^A)72sr4(+h>&R(&NFwqXx(b{U#Z#pdq-=v`>q2?Dh#)G(M;T%w^g z*&XGxU#NjR|5JaGk~ZS3BN=1zI|(<%0NEw?wv>mcIy|~7`m1<0jiCo|%@`s`f{fBq z7EBZNBJ>ch$nu6Kg9poNs5lZ3h8fStd>Aq8Wy-^ToR;BZ_;e&?Z}v#A-RZS2kD~W1 zT`}W60(#;vbO9-%4XaY)C?0RuoreB$HcXLVKQumyKEKo^9?lRNtzz?|B~x$^MmETg zorM-?11-r%^Z<=(=>IQu2Rc-jBg3X<03TfXId1vu0gj>v=;}?+{O%(gQ5J9>}Gaqn-hM_PG6s~9~FoID7~{8c-c3P65fA8vWPGb z{3YEFDD_yl7b98s<88w%9_?o`MQQ*_X^?`U91XYxzI>D^4(X~n>V+;<{wIlIaKc6Vpg`|uQA^xJ!lS8Vv(sl%Qr`_* zzbolF(QT?%b96ffz@ZD7kvdf<#p(@}`u$=jV7YaEL)}}s# zZ!OREm%8%G7;qj-DA@?@2d%}BgX@0@`Cun8e`BcalAooDhC@Jg^?uy$? ze^HM3-u$BRgBOlqKS~8}z?4K}DSb2U%qs%)aG&N9hprf{bQOW-H|fL*d_2<9Gd?Y5hf-*^MtsmC&(cysqm8{l$$z0F3c#(IF4n-_ z!>DIz=EQ|V7nL4jt9*8AIJ)!dS|L5~&o6Kh6+lTc|36jn!FoS`70YrU@mj196jI%Q z1Y_aMOnxm@#p*2;ts*vn(Sv=)6N@v)``nQP+)Q3~F9gOjh8k%q34u)a8;*7*D6*_v zBtX;=y~hp%bQB0IpmqVtl)l(<%p(07B)II)xnN{Y&*>YD$_vGh;Sg|aUh#o)-FF^W zWNZR5Hgw(ZE6$}ec_{ROkbW!qOL&wfsXG0sn!NSbN8fKYx~)3TbgS;t913!^p0^-a zK>J$LIO^Lfp8xpj^+Re>Uks0GE{^)0RS@J_LrrmvQPR~8Uq5%z9*Cf6&|aTqdC~{& z1U%&NU}E5uYx=+-ZGNQYQ6DJLsgFb+*Oti~C~+u&xz10|AE;{@oOni1V($l!n`#h+ zWH)mI$qf|!i|v^?%FH;!b?!gWULhA)8`|z|euU-|YcMpa`Je5U-U<}I22c*1w1eRA zKfn7?rGm2vcWBabxBFOMKo>q8tKZAi338EZ{}Gmsb@m6M%MG4GnMLt(?& z*~yVM11<?7Qg7cJ}ALcpE~1+Lzsre5a6h`sCgo2SC~LHvJDw-hA122VW#I4g$;7z)r~Z{-wS^a7@t(;$ z19ygn6g}nEo$&>s3=Fj`P5)^Q@*oD<(R0aHVi_P%-lcQ_mD#R%*~0|jDC)3*aAP(Q z^y)!UI=^x`Syvy|189T2836P zH(sBClIKQ*a^0_PI@;HTtxv^c4LKoOl?P^M8u?T|^?x597E;)zXx${8C$K4aKMHP@ z1hK4WTYb3D`k!>m>jHe}_vBAa4jO4LAf&u@T3yHZQHhOZhntWbo_0yi5npAck3(_|IwLxFFK6< z`hxhULpMI%JgpK^{LX8y^6`Two-Fzgk$^6=Ul<;&L}w4R_jF|aFM=A%+u#ay{V zOt(|>oJhq4wqgidv5}fHIK7l?yDSEXOBbP}Wo$pobmK~E4VTF;L#WDYq{IdBOO)~C{Ov~r%6Iuz@3o9pWZk2WVJ=7}B| zb(`y@^RGX@4|}mJF5dEuZS4MUS5L3NokT*#rf?Lb3nsv)l7l4IpgzZjz)d<%9X#Vb zAc`EyZs~xZQ+-}`m!#)E2FQxw&pDr(qJ~UBw_eHx7pT6#6y<*n&2mq`D=*B&#wZ%b zRnG7t6Em;9V7SG5GUU`BAI(L0!R654zhA1=tJKyi%xw?F^^gs5w@!*X5{HoA@KB6-GE#BlKQF2le`P3MJ zt#4*S13s+XpR^ADwhR?POO}(a{(H$-TLZz(O*mcZkDD87D;NcvYiFHg!a<~0u%%}g!DS~S0pj)XA0(M%yj*q^tS(1uqmK92LIdzy>o@u;Bh z(jXxr!S8eI)v-UnrU=hfdSu`4e{b_T1#6#hyxr^1`&9ZP?^@+=-wk<4vZFFfw!WEv z3Ow0D^{(RIdu{9#ELpUD-swN514BwA;DtN595%Q_(O`N1t=DmYllXKVq1Cajx&Z0~ z@(an64%%?UJ07N-jZ)Wf&YIMJ$MNq+p$Fq<;T?WFK?%oMg@dXF0?}ux(}txeoi?-o zy%aX^keLdeYEl0FMTrQKf}w?=#qNrs%^zG+EY~e~=02a@bSegVa65JMj}N*1_doL$ z**Uwh=nejq<$TS&_IPJPxBl7RAALIsuPXeJhqQN@6=Wqa%y&w*mf61ozVm8#&mZH# zvE%Uh6gqSNwc@@(ssMI?c97k^*C_uPHklRVW`62(zQVun901G97#c9JlO)?fpeU<`P#)l4$iEtWw6^<_|EP4^CKd#Z5I+%B61D|Tc~vRpv6#% zgdegwQE=;@ACl;Tx6ur5`T8fWP{2Xs%Kh;|{`Y}s1&`nS^Vl9;_#&7Sd93I+ze5zs zmvvkD?E`$^9-M|gRXLB}e|tO00QfCp^mp+7IYtfO$jl!kly^~fJC@%*VC(&BVIR|K z+~4#2eGIwaFxaojMgQJeu}W}aF7L6z{_`Zall)zrzl#IAR)1s8-+=u0 zw(|UYmH*9i{w9HcGvvP+^560S<%WMVUpCWbqfz`3rXaMFRhT=YL_+zZmjg z4EZmH{5M1X+nOQ!+qe4L)Fb`d@%-Bk_WGM4|ILv9f6KDC^^i=*W4a6|b+fXY?%&@y z@x+zP7M~f|Y$0^OfKn8#p5cho{g%RyBnvI!T{<>Ta)0vpHRZSzQ~l=CZ1XCj0tOIc z*?gh81V&`)9t|RFoV$XEQ`e5l`TXW{+|mNRNynY`C%<3ttTf-5UOYd$_~_A<>{Cq< zp5|YzS)5n(fdD>Kv)PC-W!td!S{qlK7Q362+xs(!VX|-++rL}&{~g0CaA!I`rliBZ zV34=Id*c2G31xy!x1T4D!f%4dXyFf6?W7K{Tz>2x9{IMX!Fksfi>Zqh>rEgRKgx+7mi()A>(_SIKhA*g5@4}+4dGz7!)r}$Hb zzZZD9jqcBMLj0cR2ZMEoN1{Z!T^etg1- zl()Y0IRjWfV{?;n><3s!`aDKdol1~H@p=M0?SB`qV=$~HES8rWvQEkjjth%0+sTUz z;wSOb85x&7_i$!P&}`EIQJ{`J`m5EsFyfg26P_OJwPh=1bMoSA9~F~ZV1#dN5k8+& zdwIvku)LMCO7Yha+2mQ4_2Jze3(+g3lX^mZ?w|s$C-k#{&3G~gybKZ!mk#gDiHw=L zO3LogYmzX<;Xoj`;|y4287&KMZzgdL4T0+IBxqz~gkYZahVRu!d6I{9FNn@RQIv!E z!0wx=MIHfEPm$YTdzgkE)}z?D0zBs8L1vsw*SczF=lnrg&S&NG0alIeXA`K0Hf9|< z+N4=T(@uf-MD^seAXh^z<0$)NJQC>aY*A309(^G+07kl<4a$D}eYYPmy?|lb>M2@~ zIJd+1c9(aJ&-ly7K7%D@GhZ6H`U6n%t zWLXYvAFRT(%W%Yldbr^aJN|kQH}MdfN{nkSC|^oj%<$MS>s<&ux70VdoZsvd(h>c` zT&OOv2!sz@ia}oD(Xuo4v)&8P11h!ynN^LL`sQqS=)~6YqDUl8-T^wQg7qB(ptPmp z+f;K$FaHs)B4aeB2L;|*%=Js5|+&qwn&#bCo-_yWdIP852 z6RztzU(4wKqFs!D3w4J>*L+{Tc{`TO^N8cH*W_!n^jAi@9T&4;pe+98W~Q-`PPn=*vgW1#~zw?%tK#`W|;*LtK(eX(){eg7_rhAdQYHodJB)^W5q2zwx6w6hij; znac2L4Yzm@ZF@l=MoPRz!?-x#L>eQiI)RGVqQO^WsG^H5S_w{ zP2!vDWw!J0(>%=^tw0lAaTBa2QV4G7aJ9IO^K$f;Oja3g$I?xJk)+I7=Qh9hqK1ug zJI^{^%KJPsELpV6(5iI44#n_z5KVBX4ml>c9ui)9+#<7Tm)Z}$>L3qTx#R;grxGGV zkR=cK2Fu2GX^j>|5sjjJ$7M?x1Rq?~$G3;8mxPM_d=?}JN-r8(Ch=kIaGaO3_JbrN z5pNQ}*Y%zLLqw0VV0kEV+*T1ed;5@Z;c~&@@*fW-L7jbCyt9{p&aIm66eC$f*Fim7 zs>e(v2K7@9Xthq(4uuz4kYwAQ`R+_o1Cj1giJs9%8$g=eb9LC@C zpy+g-dj!wNmTZED#P*~$_z5MPb)WYuOJO5jnN;*}e!;{7(lK49uQA@PEOuLrW042F zeMz^QW%)G00aat}RG$K9-+Z=mo7T=DwM(H)Sj)ifGz3+Vg~ca|u6JIu#V>YdxbwNK z*03=5ir0JMkOq5hJ+sTZRga!87O+0DFuiZQbVQD}|EccdnkAJOysDe#68=kq7#}i% zpl<$Vci=XT%u7n!rk19opkiZ2GrA0n2#OE02kJf+z#4`|z7YJZ1A;!QcHm;M+{^+# z*^@LGj*@eZJrQJyb(X~f{nl6J#>m?09r(&~EDGTETtQ9@vjZ@yD?K95PBO25Z52Ld z*l0y*cC*m5>YK%n#6bmP890~9?T;jEVN;IZP5);okR3*56&6p zjRh{Zcc^!7LmhWo7NZePi+<)YTi~@8r)FEc)zJ4197#5nH4>}tfH;0W?Yusrw|m*W z%k78vksa9_k=B==dQ8!d^nj?)$+Fejv+0UW%S)hxDho5<6YPsmtZhll@0)`}x~5gH zqDyZ_I~aO*2s3vJ*d7et=hw4wAFP6tFwfI0mO586ol#7W80UZMX>LiwtB+oM*#=vS zw^)Q-`giC$2ZO`H+eU*W{79%Ootn(_I!bC(OI$%tDr&N*#mzEf6XsZb$%Wv%ji~~9zFr`#LKvJk zw1Sf;%x9zeTMOVtvi?TL&y=+MUSFmQ5fBw8^4JoOczsdM1+9-5lV_5&CKpt3&l&8~ z9pnQ1*tQ)hvEes?fNxejm7L-nezkB79YH3=C3X=|sPW1LYYfHCy!nZde#3sECk{MM zLd6!}Q1X>es2;u$rQ&~Bc%#n2wAjq#r%0oT1poLF+_3K``sxYy&bnYfw+j!gHE)W( z9Ix1%5Asl*HvL&}=g@ZS`}Z3ot8lmRBVn(c)XXOY&cnjW&n1|G%Rm%4#lGIbWozLj zMa5`^DN#OnG+%owN_w3~Q|2Aj{5M~Cn(yG$-P(kes<84ZpJ9P=P$ zKYa6+SMH$mbUf&cu%e@T$~&pUVrYF_paZJ`{&*Ho5Y) zKea941Bcl8Z^2aUX#}pa#deeFv;qZi@iCn%hG>xiYdtkF;js`g^o~sXDw$K8_@Cbf}9$nKCl5C zZZMfbAg$fH2k;?-(*ls69m)%&ZRtir52F`FKu)p)gbP)6j*Pl2C2N!=7fWwy9jj!n z`UYv?8;TerNMWXT(FmWG_MC-{5S+2D>*73H3 zE{pokY?s4}Wv`%H)mS3Fw+x2H6&&B=Emg{pmTXFer1Apvm*&b#@SN^?Vy1_<&o^hz zRkye==NuB&sTZ6tx187ME}^Y|JvP^I%g=K@$bB*H)5$5Op*MmButham20@obtJ45{ zaac-og_vRU6x9zUC)%%5dzi7zKbBS93$&Hr!Rm+@!Ap7Fx(i1b<;Hd8-kGFPlBdTO{=8Inb+0)E0uH9^4UBK2VG2Cz4 zBEOr-PHFBb8FM*YGILDz5mlZzl-Joc9DVezXW#v7TJidFP_%jvI_uWi++_>sHg+Cd zh}M{iq~|E;x#PFk7UZ70;uI?2vmMJ8DEOA*ryit9o#)QS+_WX7Fz!Cq=!gusb@hlp z!!@?IX1Fh&TwT(3o|@yy+=JCN@LI%I&*V zs~U=1z?N<#7n1YNN0VGuPO`<{-}*V%+h)6%>l~?S0!69!6!~?QH933orS9=zn96>B zI^(j!w9H;zgKpUlSx6^tvuI44;$~@Ycm0yty6)q- z+w0V~2a~jXrwtBIR>hi;_Oa24mC#J z_K@IjZh`b<63UFJIi5u~QfjtD0W5dG#^D)=7?TO&8z%Ort1nX>_wRmhaZ`dH!-+H= zT&`>tc~l@~Uuzk?@urBZG#b>UOp-lu;J3DPXp`U^N?X-HrncV@&)Y%QM+8+C5MGw3R9xhrf zeW6J+-?IkYJw15>T78g|w@J}i-b|^P*f7%sueRh?Bat|jJkSrzaNd!Lf_zACdw%m*n+jgl+NF^tPZ zGkt;L*_3h&hPGPojF#UW`c7vYecf-s`v!gQeoHq47!L>(Zt0B4O{XW6v0nnG?=^KVktT#JSio?hY1Uq z8-&t#nq1dlWdtfHtLmcn+p#_814dsoHYNQ6M=5kEso(xioSU|dUWgo=Z5ScIU71vT{BkME zeb_}DvQnnamy-99A>X{fy9(*TL5bxt`{xn=_8sePm0P%_E{xTCTs|C zLU=9SSQ!$B>Q6km?#Tcv?DYQJ4+mxUGOZvyh~}LirNInRMtxd22?;$onkqYg)*ftU zJPT6#b@b*`&jW_1K~VPdptO&$@k3qG+bAv4i|HBR!IZmwU}J6*K5TXD8X?`G>6Zec-;X zqdiFuKZsPt0XCy0qCIb!scxkA9es2pL~rr!;m$|YdTd9SyuKGNQ#A%f#j&h4NGp6l zT=jER>K}5rd2G?XX7SOZff7GJ5qm>!4W6 z^^NaVREwgx%o^u}QDKJd!&MalW%~yYakO4w)!rdb`!Yl^y?lU2B_<`ES*O? z2A>?Yy0g+kcA(1w^cBel+OVuvc$@Xv5*IA2 zCV@HUNGDudXPH!^MY=Hc!^)SM&A*#vo4>?eQr_wOYKk-OP&yI1Yxd5gzAKcXxwCp@ z%dn&9j%*((u2rZ)b)}nNd-rNzKFH24*ZF&DG>Uee)AVDV0066l;0X0pa;XakvpX-{ zP5%M)IQ}fz>05r=3>)8w=Q6zMgVfdba(6zIt`dQsvxeJ0R^_GUGz)d+h|#$Reyrmz zpc+rt_NN~ztID)-66#A$|nw;0FFpaQN{p?5E_FX>Nn_6~jc4JYSFGJsC7vJ@I zbY)>$6j8S*{EYdmLYn}z=O5~Qb#dzfzdQvO8gKl;fu<`G`NA#^=%({Jk7TQA-fA8E zXAj)+N02j@$e?AyXD)hAF2wnVu7}{MTBW0Z{PAAyv)?V`wmi0g&s|`~u z)br6VK=c2lX5B?FKS|zp%QX|-C_PjHy{g->b8rQn!hBBE_B|{9!;A7A_`9Twb-L^e z2OmDMG(gy|>~QcAj+MH`gISGAt#$MfZiY?J0*I^W3KoxFeX>f7NzG^p8s&3OCbF@t zU9(CgO9tH3YKDo@g?i+Bcp1*9EORt7N^AEHzl~`|5Gp-7extyVn;-0zpn|kG!%Bdt zau(UwQO|aIoGX0679_$WO2D?v&b7O2Vq4t#-F}9~;F#(Q&l58-U@0Bn!&PKSwQXhy zd!f0-LV~~UvGsl5;oYL(fV6BHKAvcdQ)OE5=*o$v376}=GqX`bU(el?wP5BEp&+sB zy@xvyQ<KV9@0!o95`U9yh%`ukZV0c9o|2obS z=h)d{`YRJU3|m4su_e`oqM~eU5l-9XWBw^ulwLw0N!=L~Qy4Vx;Q~qA zfydU}nFAbz`oNf5LApZIif z;Z^~8eau>;aeIQ;Qqo`%aoZ%A?nEwwrQM)0qeZUrS<-&ti*E&XGdtcAf@;+zPO?(a zyG|t!jNO{3qicICay&G?R#lD;?~n2squeE{C^Y#l_al3R-1jbZNUU$}8~fNhtTpOV zgvRX94YxORc=_A<&11EN$=XNAb!N$An!yZkL{!GzRm zx3+5n+adf{4soX+aVAXl9>fitvA8VN$vyJ{EJ}sVLk8k7nQZiYsiojk=O@83?qoTR>Jz_Mv=QcW!Fm3bd6HC_Z#?9IITM z(x@mFOT`4G)kFb&Hue^3gtNM!9$7X`7`oajfN2kiGBeO<0=EZ`_8(TbQYX-|RtuLt zHw886?M;3@vwXk9#XR%p?oi7 zh*^FH>!cf~1Tbyr899$}PSwV3qu*Y35B17A!pj%q@o^WTJk4>%Yv3i~aak!tpt3Ro z`hOQ8Nw+jfh{C-7A>&J7ptp(du1H?U(jEry<@0Y^GJW&`yfA_M6zBGZ1uoG$o0hNr zIJ2+ObZJ4e&}BnKi}Kr?T?TciXi^@rn<3vNA|pbUHXR_E!YltJ*qFL zFw&iQs1@TEbmsIz4pz}IiV^Y@4&C0mrh+XTYNdTbI z>a-x}Ca+Kx`dg0x*4N!vWDkxB@>#RR@*J$%D*+N_q~mv_d&x?h(s$+v3Kd>cR zo)02>CDp^<3+Afo0cuQ*(4rUluaJC+!#S{+tkGOF+q$=83drIAa*xVFjl$YdmSQmaDXjUb$~A4H0}0E zfzpwEOC!1ZyL~>~rg@0$iTLWy=*>SxnwjczV+oT6vu(!7{B()T{ipIwZYfLf$FC~X z&$e!Gm6v2i*ba=A9N>$v^!u>_{r0Zu@=vEz-hpI%nNVQVEB%$??s!1Evsau-pTzhE z#S&15bBb>;12SqgPy5W-tZ8%HVE>RiG!GL1x+rou9o^^1jPC=K>vj1;)ZC(i+fs_Y zJVMi5>g9(nxD7(@nIgQ?0{|>LpRBysp5|O5VU_nFX_cNfxv=#}l-@#n=ZRWO;oa@n zC(MCciB6>s>LSp@`2Fd0jb}l~6WQfZ@^&W_hS{bo-H<7r8i4%k6v;iRI}ypEfPW}L zjpCA_?Gc+N&RWu?Wfq^|He-gK<`ZZyFsa5#u5!3XyCvtNzM%fbl!jUXFe@r3UeuX| z@~cTKgK)cIpLvcv9!e+meT3WuQ7+W(KSf-@ArPap2zvX+qwLycs4e>pcVo#96NfI5 z%EJHXYver%zKx62ECBb;^KKAz(kQpQ(GZ_u(8hzynPd0hhy7&$pX$uvZb|Tyv_PyI z7@e44`=T+Yqa717wS*ACUJ$`|9(XI36)hxp#OpKJ(e4@WgHQmwa~(Iq$?4(dcRs@V z1@>`LG~`2BQn{i%gzwU0A~-ZM_0RA}2RN!9^DKdiZz+A!gSXIZ@h}|kTsX1I4l*6& z4esN-F)}fbeK>d5rsrps%;0)~7W10Be0B8DP{k@Ez1fpNdMu5!c9YGSL$9~2MID?7Om}zUuL4|p*@|jh2aH3e zgN&U5eoR1A3kNXRLp4Tnn9JKrC65@TVzAyrlV=ifnw4>EY3@DhhrB1VnFU|6Q|`=S zz2NBaatkk?oA!{0rg4k|^t`82JdSY|L*wpCc=Jz&71Rmj9ZC4cW_M&{>|U0O>G~Jf zfny>J3lXUZew|dya8@fGe{JThyK6@_6RRk}J5@rDk02;c3-Z{}aEaKv6Pvizw{&hsE=yZ5x z^dhP5rB(SFyMLRY_4~8h@H=L0jtKK)04z0+ zx#!0eW>8Az*v&H@C0aOCHRC272g`dmC5;y0459Lf-CnIGp>A_ z*L@uIdOFH7Ld=RJd!zG*yHf1_2IQC3>2N2?zAFjCsRwt2O9?Hd9&d@kb}V*s)xRu`AM--54`~-Zl*%ZJqE@X#o^)Fxx-bexf3_F2PjdS&dN{eZg&go1~ z^L~M9f2wUs+N9n?TNm-T0`1$t0b^9|XRB{3f(iu#!yk-H40-|RFrBhMg}Is@s5mSWtmCi_9S z8f8=QANckF`NR5G#y@@?T21MzI==`_a6z66LXG+Jg?%(<&(R%(h=e}6#`b)&0x3TU zb6h{YaJW=rmSq;>Jsd^v5QK(#O8|TRQ^P@z%W=K4vlIkz_;BHg)tl{t&}@lrfnQTABK5`5IBOp!Q}6 z7=pP1I=&l-b@Z;MHs2DF2~l54pG7?*t78}#Z9=yln)teI#`VVYVvGV}JHbyQx*Xq` zp+F|k?X!1JL!B`dt3Q(`3pCM-&6XJ6q=i?ke?w`fJXn*NF0DZo8IxZ6^V4ZM7huyU ze6N5`rG~8@25ZC-8RS#NQgiA2IwU1dlRs)G=Vlm=Y@lxXp^+|Ujuyeg zX($!KIB&-$I^cLjQ)_vD!rsrLD66v-?m1@8B;3%&MUp@zlBO-9LKPA)kzcU^6hC={ zYjq6s(zrboEoeJSGGp(jd)r|5_j-}>^QYXC-F^1)CyEur4cp!(*!k zo#_mP+Sj9VgY)$)LxhsU!lI~xj5#oFfiER*=o-~~ME+r@WHo|mvnaFm@}7Ou?cXE+ z=Oo8UJJL~(&ukK16+29H4&Tlu3#+xn%=1nnG8)I;!?)`*T)&+uJ7BOe0*7fslhm>s zTCS!JrO>@g%dDp8Y)P$mOE3j%5NjcT0#YpZa2MW!E`nV;;}M7A?N~&C$su(xDCmO& zAs{-X9K>)WpJG;$F3&P6ZVI>&H(1o)l=dtwf&0&Fl%D|A;@*Xx^XD*50Zb|chv@(p zsmIpfp%-DTd*s7LAW$R8y(%b(6T%liEnGEcG!mwB33*o3akY|Fqe3caItdD$`U-myE14%fpsA^S9Rn zE&^4`Wn-5QZvGPKEihwWI(?k+&0JMf9J&S$m9#7upybHBB6`IF;&DEg`T7lXSkp@F zsS#z%s||A2z-FHAXQYO)b`j7#DhQrI|HDV^Q`?XHqx@DWK zUDxs&UHNJ+Z8H@i7s9*@V7h}Etdy7tYgl&ii(A>nXU?2P--S>nb3i#K0g_G=3p7J~ zV1+LG{D}m{;DBIL-1Rj$J@EpAzzJ8|dE12pKe%_-97KRNK9XvxRKFh+z~0QHFR?^S z(@;zW)NNZtp*JIy__t(~>AOn!$1XD=gOm?IpIR%kS_5Ck0YNgWZjegLsD>vuAtI?P4m> zMYIhq3%cco>p9}p7N+w@yn#8&y|uK;n$Gs$c>+c+HM?O^F2h??JYI9q}2=5TA@qNN3Tbz~g zQrD`}A~^erAbPXf$=uCq0Jgcy7UR##!}VFu`6h?xzA*>3sy}n#=37yyReW3DQqUq3 zVF`FLad@}*OGFJGv^W-91nJ9SAYlllcN@qpbTPonmCX$vu_E-dq&E)$;@ET_*zYom zj@8sa^Dz+UOzH(>B*guP56iorH@x0yRKt&%&IdPO{V7rc(dpB^W8HFh+&8V1>cj2bEivtOltlA)@i~ilxN~7ZNONP-j-cQ*N zz9r$gdR6JrPO7D|uOBN@@zK>DrTg%}`|6=*m*U=%+-IU2mDsBgODA#r=rgC)m&S!W z4Xg7n)WJVlY{D)^Wgr35tupjzKvy?!dZ0ynz&Opr-N8X<*mFm5x?SH)2W*&o9C^(OA$KKpU$x1hMJ6Vq38S2RR|L+XuB%-lb;ya4p%XQTF! zESLJp7P+%N94y=4xm0*FYX$O*le6JB^8`qOsR9FBGHsWd(|7c|3X^aZ=!cwL@+AS; z`am#|qsl~EpN`%6R(CTg_oH^I^V+Kx*Y{)#lCfviXZ-&cdv6(5<=V9i z3xXmhi;xgOSc-s@l!(AIKt(~6lu|-E1f*LL6(kG^&>YE_l=%YOTe=K`&tRfat9Psyc=}{xdo?^m7iDV-iJm)!rjli{HAV*CX6B z#gp9bQ~ozB3c-riibvko*$!It5k^$i=G#bYcoQo3qr0j^tP4{Ch$6A_R8_4EFN-W9 z^vv5AzAm=1P0;<%&44k2$qX00oJ-;R_b(_|91nBO+YKnmQhH=5-udpmeb30~Y+*HY z^Of$(kNxqWk0&0rt$igi;zO%=0ogP;Z#ggLBdP~DIFe_3AW}P#2~pcDUDq?nbsU43 zCnpO(%P@irU+&P7 zUpbLQM2X|&&ZX7w2ifpl@3aYPiCJs>I8J&SkAQ`RmW*ROv zLX4=Dx}oeNfHHMYLZpO%Cpp>r-#BsXzn~~^EC@wTL@Oz6mR=pX5|89Lm3nReUwcpe z!eFUU5%wm#k2@KTT|mHPgraGime_;xT6h=0-8?-SYBmi!xh7tnhscz&2XiaM+}Kw= z)NA}#vJN3T2Q%P{JH3uXY}5g|=>xBxPY91Y6V2f*0I(ypCP(EuVa$!-XjA)E5hGlU z#5owtIe>0oJt_r`d0Isa&=s#hol5s5xGgl2`6c_jdkD(JIH(pG)^Bz+K_MMnT)Y@ly!Y|k{?CP*~+LG~B+*`BGmmIP;lr^w=GT&#e=dfg9n$2=|G5jt=o%A zg7DLY!MR?w-Q~Roy;>Hx+eZA9Ac9gRpQpXCqe2WjHb^i}w!(pDW&9V2`ZfX*TjeY% zOjUhr*k63l<0On7I7`s2=|9Zp+@cmXFPoBQpvcQy}ao&Wr+TL%bLYlIVFlBqn zniELK#TqC_WvNzNzWoRSDci(Oq3IPtGV%JVnAV@J zVJ4uhTt}rPwrd9r3pPjL?9oj;v|m^Dj?LARNGr&u)}>61fJA zKd}@y{nPjsZ$H?pyxT+%co)M2{d|?1gnR(N$So8;B z5iX+(?(mbXq(M@Vo?N~Z%}>_O73FrkCR{jv!CI3xyze3eqOBX?Dh+v|>oSu0d5>iE zZIO6dcEMxbz|uO}?J|}!0z&8#6dacaMu`idbRK9kCzJm&!k-lHaWVixTtoxlx}rd5 z2xT~?5loDIT#j^4bV)BNPPae>hT%Xq6Gj z2{;4TA_a*Gz%quv&~a#=K@lz#;4?)YKCoM~H0^3c<4-xN>{$T2CL9Xacj=#`QPIk| z-B%Jnhw3t>w&L}{5AJXh3Vr7nidyv|4&GpGWQ16cQ$GT*2oPNT5FDw^>G#bwNL*A^ ztwI3^KziMv`;5>gBOt(%%!Y;fy8yv90`-b78^5xV^9we~=950(w~os$rsNmoD;RKQj+KDX0Pj|?m%29DT!sOku;fSJ>vpF_p6hLDD4!=Sthp#s_?z$Mak z0RoiELCH^Zlkk_3R6>{C$7cr^c?XLI_^dAiAWNY&1_;Bg??A(MFo}ATDr=Z7Tr|mv zaR>XJj^6VpC)-6-@i}aC`(n0U^?kYT_r1ocL~MMO!B{>N-AE8Un0$~R`MyJ&!T||X z*9T1`j!*DC_{AQbYX*VjpZ8SAIq{PRWA9oBXeF~RWu>{NEPS2O4UGCKgtfIuKFA19 zS<;f)jF^M@%pa=W0uPfw{BH5C4_%^9gFaJNl+`s9L$J@1^5kB)Ger`-EJVy=0>tFG zAlwty%)Pz6#A8rhmGvHwryNz2zqrBesF>7+Si_M{KOUW3Ocd#rr4lh#u2 z4zMqQy+zT4lTkYn=$TBTmAnA-W-dpaEH@=jmJWHQMRZl$elr!4SwTN9pn2Wa!axz&CKfU)KA&0n`^cKGzF<**C(u_JYb zQCESV{Qlq+ss=&A?qUb|-@QpEmw@9t*u_8JPi4ODqcmDz*MqUAI4Bfe`taB!G((uCPr-X!mJ z`@U5{c1o9mC zODp1JF`{bIz!qiEdQe(OHxH9>uV*RzhHBO>4)*1r&#uHF!ZG(J#{n_p+Euewf} zuhu`1e(nK|%l-Kvz^nA_Cu$8kZtVSGeRg>v=9f0cfiCYvh6G%v)pf)Qgf}0<<-@o~ zfF$P30Gg&Xy^T9)L$zVw2^;!Y$GeJMl)ez63lVXID~&EmvJ3~*s5szV9WFIX?8en9 znZ8;EI7D*in~(|r5ORZ%I*r{TIOK`J1NvMzPi{!tWp~Ak{Q>mnkzM@zmY=F{KUWjy zDYJ+oj0{=BhI}*8Ne=b0IB+0Ic>-7$rGDuHUlDf)o8~5!P>wd@?t4@fDCEz*#+yx5 zE|)WfB7nK(4dnz@4KKj)!wfhmiea{c+C!`SQ62$Rvt%b`-l&cx+K2Q`{cOzV7Ea=H z)poLd>GfSpOkMv*o<2MIEt;1um^Jgm6cT08sAOw^S@zeB4V4a(tfuJxhD{8GC%3}1 zFpHet!O1O{>@^N9lNUVz2+Q6TuUR?;YWhX6xRl2h5M#oC+%HA^h|^ym<26p(zK?zJ z^83R_j>Qmqzl?5h8%(n8G6+A*ANO3Hi~(v781`KmRL1?XK$$F+tKN z`5x5TRJN`@-d`@qc=AjD?4d$6n7NT{h6c3=jprxmB(dIFFeo|#)Sa7)>G9z0-2tn7+S!5o--@Dbtj!7J2lvk)`LCul{VaZS|vrXzJe~C}m2v!E7a!+RIP9V_Mz_b_j5 zfGh9aS_pMpXdnHj zVX4+uexmz8yl`>4Z@5Qb9;IQ-+`{G3Rl4<3$B)OWjwyHDv$;_^kI8mErvQw!z2zFR zVM3=u;c`g-`TC$_`J-is#I1Y0JbL?pUL8tcF#?epdlXgilRg(MTy#kcT%MVIzASNY z!-%4|`>UCyt79lM^CJxTK}RNG85{B0y}E94;2COw4<~jY``%_<*4p6yNSN_518+~+ zypaVy>EZ*efYBYN<#t8 z6TDXALqYSf^OkzdNxbE!`ZI9gP>4e`O4+a?`!k_jjjPq!duNe2FXTPjiefB{C|WUh z_K2JAY_IPQf#)ME;MoyN{gh5=$P3972%7l5VEetKt@;y8zzF5+CQ>nEC1k_rImqec z?u4z{nbwFLyg!Vas-`(K=78}2)=gq?>UWjE6%?(>1EsZme9{dI_Cma4;g}BLCLPi; z(Cr1)6*17QQreavalr{z`=+Y~fg?k*^Z<3D%dVS5@Ku_p7HOP!A3||?4VohJ-rmJi zpYHe3$I)6s5a)0Qq(5}1U$-2KefdjftzRb4 zRluQO6>n`#X~=1@|4mn|<&joIqiRIAQSG7fg1}%sikK?PBk*Od^B+>X)<&Y%OsmZ* z2i7zW&n4YhH3JCrj`$9S8*Wo{yqdV}&i$`Oss(D3e%LiJ!A)_}Aghb&zG9{<)k*Tt zcwV{C@*+gRfWhf5+G-}1mwlz_IyD$(;CItJSx)Nu2hlT0R~?-$<79s=!_r&^SI3ag zgDlr^Q0}?U)J(A=z}Xe2T7bg6*dw#@ODJlR%BIZtb|U^P+mh1MY7239JZ2KZmgdq} z1ug<(@hzXl+jW|Wbx2k-)Z!?g-4E#2)fu$;Xnp66e}`Ka>$;Ww&^?-6=RRS_y+(r( z&}#N%amh7OEJq4O%Eu-ic1cEJQE<#zQ1w_koEkSS0YivnM40wJC)H|HLTnGstg}L# ze=C)HSv1YGWEW*=xM#i#EYYM$KbfszD*Va5kb=6(j`Kqs-(&S6wxCI;a><7EmAZAh ze8d6apkNMaYzK`uU`xj(-QQ2?WTthkWZX|a?FH#kpVF zJ}M|O@jFu}=+^B;z(6_ptuO1yX!(qBxOL_#&`(5+WW~|4M?!GpZm>|f|7{kw27L_Q(eq{(`r6w3(;2oNM`Lw^7MNdqQ?o&2_?8KycNW6Z8#^8&Bi2tWrSpZ zWP#0=qQFacT%X(?42CN=JOSsW04l6_nU8^iXdP901M`lJTmWQpIUn5pf9b6}o_{Or zubFQkS}6`7yAcL0izoVr%NDpNshU^&_IjGI(w@d4y+^jf{4MgkT>`?!xiP#!kd#>A zuloWPg%d+xFK3FjCx&D5x5rYC-%4&jABT?t9*a19kP2LH)909e!E>JfbRu-p~ zoA%4>U1wXLVlz-1cpUX0CZ#Tu$Yv5=s)AS9DszSKkme8=k{@@ zu2PX|m!}O|h?dV2gbD}|D3>bpi~TlFU<6K#*#aX^_XS}4uY?F_1tG}kHHsZoe7lg{ z`AKkz)w@RH^ohI4Q_Ax~9=WUd-Ze|?Z==P$-bK|#3A4RdU(9|nm^t|=Rgc+j5h!lq zkT@fG?(DUpQyeN?9@e!Y3DSf5I=bh)rguXsn6Sxb8um*NTQjf;I{#3_qCdkC?%DvR zLuzMxJl9vt$Nl%yIwwP@#uS}@@F6G?TrWV>7Bq_OIw7u>7f7#X;J@4tnFjb@hc5q+ zb*saJfl<1)5Jkn9meryumGY^p&UhtleJPFWRh1lzrOFJy*^bW|-6z#F@wgPQin!Gp z0=%4(d0fE=e24Di>NiM*M^|M_hkB`T(Sc)S9q3|-iu$_t1mmnYWDw%Xajdr`jA8f1p}dlfv)CitLc1{v^*2kk5>lYc&yF^61Nn&oAp$n0$y ztK|Yvm7ZU{R<44*o3nOyIZ_8zyEG((JRD99Dp}z_=C zM_G~t)+QW_c^&CLHqJF)=??(L5fbUQTK(!Lz{|9x#wV0LY?qy4N7)V#63!HWf%NYQ zkdO-&QlkzS!fW}gfn&nP(Q49dNYX#pFn8U6ZCRrOjK|7QgM*x}nC6XgD@`dL8_4$M z+6@Itq_(0>MO~~>ljH7x)43}uGU<+7{X9esELoY~Oi*nJ<;CiPC&&~?K<0&P^Y%Wp z+p(oXylN>{H$IAgilZ?KyluVAQ2rW>e%W6|MQJ!b$NtxGrw`F9n>+cG%jlGD|1XdS0;vp4}M&*vU?PgV<0;*$9E>3CU~-7 zy!WUz3w)Arhq1MGI!`TT@vMskM)n#1o*D_sj_meT(<%( z?iTjA{$d^^tn#u*e%CJTu&e>X3SyI2SKJnn1h9G2r&0PFvXLnImAC2Z0_b5{-=E!v z!pK0i{1Fc6)1_vq1IsjV{_7ptwQvj3au%rj?(Yo3?+PlD$6^yLviZ(b-V&4`kE6*m z-}}By;@SP>!~(T6vWA5B(|K6PfdGU>MZ}ygyU%LySYseZO6kD7>#|u^cWNV3LV)XA zJK3MQgX*(G3Bu=?qRPWAWh>qGxx{&_qbSdA`IH9);o~8xO@ipE#_mOkyjd5f{=V4s z0UT5~-^a@<$l>L;W$~OAg@h+K+_HKCRiAT4_ZHc^d>J}k6wh(HBUkp9m{|^>lC-R4 zhaDiEVqO@?1s)E?Ii{d7huXsvBN}{ScWWZGz&HaGcutn&DHNo((d$3)9h|KPr¬ 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

    >~h)Q3aio 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 Ja7Nqhe*rzW;P(Ik literal 0 HcmV?d00001 diff --git a/.gitbook/developers/modules/injective/peggy/images/valsetupdate.png b/.gitbook/developers/modules/injective/peggy/images/valsetupdate.png new file mode 100644 index 0000000000000000000000000000000000000000..5592111fcfeb13019681da54b937498e3fba87bf GIT binary patch literal 517707 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

      p;?LroJ!oa_@Fi*MA+4!t_5^-(FE`mlnvj+qMk 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

      E&*4AcEUQ52h-63Rui`A`sM|1RmNCLu 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 GBmWDXzs2eR literal 0 HcmV?d00001 diff --git a/.gitbook/developers/modules/injective/permissions/01_concepts.md b/.gitbook/developers/modules/injective/permissions/01_concepts.md new file mode 100644 index 00000000..9b166cbf --- /dev/null +++ b/.gitbook/developers/modules/injective/permissions/01_concepts.md @@ -0,0 +1,57 @@ +--- +sidebar_position: 1 +title: Concepts +--- + + +## Key Concepts + +### Denoms +Tokens on Injective are referred to as denoms which are tracked and managed by the bank module on Injective. The permissions +module creates and manages assets by representing them as denoms and attaching specific permissions to them, which are then +managed by different roles. + +Note that the permissions module itself does not create new denoms, but rather attaches permissions to existing denoms +created by the tokenfactory module. The denom admin specified in the authority metadata of the denom created by the +tokenfactory module is the only address that can set and update permissions to the denom. + +### Namespace + +A token can be associated with a specific namespace which defines the set of roles and permissions associated with the +token, including e.g. the set of addresses (roles) allowed to mint, burn, and receive the token. The namespace also can +specify a Cosmwasm smart contract which can define custom logic to be invoked when a token is transferred, if more complex +control over transfers is desired. + +### Roles + +Roles group permissions together under a single human readable label. An address can be assigned multiple roles within a +namespace, and each role can have multiple actions allowed by them. Currently, there are three different actions supported: + +- Mint: Allows for minting/issuance of new tokens of this denom +- Burn: Allows for burning tokens of this denom +- Receive: Allows for receiving tokens of this denom + +### Actions + +`Minting`: Since mints can only be done from the denom admin address in Cosmos SDK, we assume that all mints are +performed by the denom admin and then transferred to the minter address. Therefore, any send from the denom admin +address can be considered a mint performed by the minter address (even though it is technically done by the denom admin). + +`Burning`: Similarly, burns can only be performed from the denom admin address, so transfers to the denom admin address +are considered burns. + +`Receiving`: Everything else is just a Receive. + +### Permissions + +Permissions define what actions an address can perform within a namespace. Default permissions for addresses not assigned +any role can be applied through `EVERYONE` role when creating or updating a namespace. Permissions can be used to control +actions like minting tokens, recieving tokens, or burning tokens. + +### Vouchers + +Whenever a transfer from a predefined set of module addresses (exchange, auction, insurance) to a user address fails due +to restrictions, the destination address of the transefer is rewritten to the permissions module address, where the tokens +are held. The original receiver of the funds is be assigned a voucher for the amount of tokens held inside the module. +The user will be able to claim the voucher only if they got assigned the respective permissions (RECEIVE action should +be allowed), which they didn't have previously and was the cause of the initial transfer failure. diff --git a/.gitbook/developers/modules/injective/permissions/02_state.md b/.gitbook/developers/modules/injective/permissions/02_state.md new file mode 100644 index 00000000..f026f149 --- /dev/null +++ b/.gitbook/developers/modules/injective/permissions/02_state.md @@ -0,0 +1,93 @@ +--- +sidebar_position: 2 +title: State +--- + +# State + +Genesis state defines the initial state of the module to be used to setup the module. + +```go +// GenesisState defines the permissions module's genesis state. +type GenesisState struct { + // params defines the parameters of the module. + Params Params `protobuf:"bytes,1,opt,name=params,proto3" json:"params"` + Namespaces []Namespace `protobuf:"bytes,2,rep,name=namespaces,proto3" json:"namespaces"` +} +``` + +## Params + +The permissions module doesn't use any params. +```go +// Params defines the parameters for the permissions module. +type Params struct { + WasmHookQueryMaxGas uint64 `protobuf:"varint,1,opt,name=wasm_hook_query_max_gas,json=wasmHookQueryMaxGas,proto3" json:"wasm_hook_query_max_gas,omitempty"` +} +``` + +## Namespaces + +Addresses can create permissioned namespaces with new denoms. Namespaces define roles and actions that users in the namespace are allowed or disallowed to perform or be. + +```go +// Namespace defines a permissions namespace +type Namespace struct { + Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` + WasmHook string `protobuf:"bytes,2,opt,name=wasm_hook,json=wasmHook,proto3" json:"wasm_hook,omitempty"` + MintsPaused bool `protobuf:"varint,3,opt,name=mints_paused,json=mintsPaused,proto3" json:"mints_paused,omitempty"` + SendsPaused bool `protobuf:"varint,4,opt,name=sends_paused,json=sendsPaused,proto3" json:"sends_paused,omitempty"` + BurnsPaused bool `protobuf:"varint,5,opt,name=burns_paused,json=burnsPaused,proto3" json:"burns_paused,omitempty"` + RolePermissions map[string]uint32 `protobuf:"bytes,6,rep,name=role_permissions,json=rolePermissions,proto3" json:"role_permissions,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + AddressRoles map[string]*Roles `protobuf:"bytes,7,rep,name=address_roles,json=addressRoles,proto3" json:"address_roles,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} +``` + +Within a namespace, `MintsPaused`, `SendsPaused` and `BurnsPaused` determine whether new tokens can minted, sent or burnt. They can be updated only by the Denom admin. + +## Roles + +`Roles` are strings in a namespace where each role has specific permissions. + +```go +type Roles struct { + Roles []string `protobuf:"bytes,1,rep,name=roles,proto3" json:"roles,omitempty"` +} +``` + +## Actions + +Actions are powers of two used to denote different types of actions, `Action_UNSPECIFIED` = 0, `Action_MINT` = 1, `Action_RECEIVE` = 2 and `Action_BURN` = 4. + +```go +// each Action enum value should be a power of two +type Action int32 +``` + +## Role + +`Role` stores the name of the role and actions allowed to the role. + +```go +// Role is only used for storage +type Role struct { + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Permissions uint32 `protobuf:"varint,2,opt,name=permissions,proto3" json:"permissions,omitempty"` +} +``` + +## RoleIDs + +`RoleIDs` stores IDs for the roles. + +```go +// used in storage +type RoleIDs struct { + RoleIds []uint32 `protobuf:"varint,1,rep,packed,name=role_ids,json=roleIds,proto3" json:"role_ids,omitempty"` +} +``` + +## Voucher + +A `Voucher` holds tokens from all failed transactions until the original receiver has `RECEIVE` permissions. +* Vouchers: `0x06 | Address | denom -> ProtocolBuffer(Coin)` diff --git a/.gitbook/developers/modules/injective/permissions/03_state_transitions.md b/.gitbook/developers/modules/injective/permissions/03_state_transitions.md new file mode 100644 index 00000000..fe0a11bf --- /dev/null +++ b/.gitbook/developers/modules/injective/permissions/03_state_transitions.md @@ -0,0 +1,188 @@ +--- +sidebar_position: 3 +title: State Transitions +--- + +# State Transitions + +This document describes the state transition operations pertaining to: + +- Create namespace +- Delete namespace +- Update namespace +- Update namespace roles +- Revoke namespace roles +- Claim Voucher +- Update params + +## Create Namespace + +Namespaces can be created for implementing different roles and actions. + +```protobuf +message MsgCreateNamespace { + option (cosmos.msg.v1.signer) = "sender"; + string sender = 1 [ (gogoproto.moretags) = "yaml:\"sender\"" ]; + + Namespace namespace = 2 [ (gogoproto.nullable) = false ]; +} + +// Namespace defines a permissions namespace +message Namespace { + string denom = 1; // tokenfactory denom to which this namespace applies to + string wasm_hook = + 2; // address of smart contract to apply code-based restrictions + + bool mints_paused = 3; + bool sends_paused = 4; + bool burns_paused = 5; + + repeated Role role_permissions = 6; // permissions for each role + + repeated AddressRoles address_roles = 7; +} + +message AddressRoles { + string address = 1; + repeated string roles = 2; +} + +message Role { + string role = 1; + uint32 permissions = 2; +} +``` + +**Steps** + +- Create a new denom +- Create a `MsgCreateNamespace` message with `Denom`, `RolePermissions` and `AddressRoles`. +- Validate the `MsgCreateNamespace` object. +- Send the create namespace message. + +## Delete Namespace + +Deleting a namespace removes it and its associated roles and permissions. +```protobuf +message MsgDeleteNamespace { + option (cosmos.msg.v1.signer) = "sender"; + string sender = 1 [ (gogoproto.moretags) = "yaml:\"sender\"" ]; + + string namespace_denom = 2; +} +``` + +**Steps** + +- Create a `MsgDeleteNamespace` message with the namespace denom `NamespaceDenom` to be deleted. +- Validate the `MsgDeleteNamespace` object. +- Send the delete namespace message. + +## Update Namespace + +Updating a namespace allows modifying its associated roles and permissions. +```protobuf +message MsgUpdateNamespace { + option (cosmos.msg.v1.signer) = "sender"; + string sender = 1 [ (gogoproto.moretags) = "yaml:\"sender\"" ]; + + string namespace_denom = + 2; // namespace denom to which this updates are applied + + message MsgSetWasmHook { string new_value = 1; } + MsgSetWasmHook wasm_hook = + 3; // address of smart contract to apply code-based restrictions + + message MsgSetMintsPaused { bool new_value = 1; } + MsgSetMintsPaused mints_paused = 4; + + message MsgSetSendsPaused { bool new_value = 1; } + MsgSetSendsPaused sends_paused = 5; + + message MsgSetBurnsPaused { bool new_value = 1; } + MsgSetBurnsPaused burns_paused = 6; +} +``` +**Steps** + +- Create a `MsgUpdateNamespace` message with `NamespaceDenom`, and the new values for `MintsPaused`, `BurnsPaused` and `SendsPaused`. +- Validate the `MsgUpdateNamespace` object. +- Send the update namespace message. + +## Update Namespace Roles + +Updating namespace roles allows modifying the roles and their permissions within a namespace. +```protobuf +message MsgUpdateNamespaceRoles { + option (cosmos.msg.v1.signer) = "sender"; + string sender = 1 [ (gogoproto.moretags) = "yaml:\"sender\"" ]; + + string namespace_denom = + 2; // namespace denom to which this updates are applied + + repeated Role role_permissions = + 3; // new role definitions or updated permissions for existing roles + repeated AddressRoles address_roles = + 4; // new addresses to add or new roles for existing addresses to + // overwrite current roles +} +``` +**Steps** + +- Create a `MsgUpdateNamespaceRoles` message with the `NamespaceDenom`, the new `RolePermissions` and `AddressRoles`. +- Validate the `MsgUpdateNamespaceRoles` object. +- Send the update namespace roles message. + +## Revoke Namespace Roles + +Revoking namespace roles removes certain roles from an address within a namespace. +```protobuf +message MsgRevokeNamespaceRoles { + option (cosmos.msg.v1.signer) = "sender"; + string sender = 1 [ (gogoproto.moretags) = "yaml:\"sender\"" ]; + + string namespace_denom = + 2; // namespace denom to which this updates are applied + repeated AddressRoles address_roles_to_revoke = + 3; // {"address" => array of roles to revoke from this address} +} +``` +**Steps** + +- Create a `MsgRevokeNamespaceRoles` message with the `NamespaceDenom` and `AddressRolesToRevoke`. +- Validate the `MsgRevokeNamespaceRoles` object. +- Send the revoke namespace roles message. + +## Claim Voucher + +```protobuf +message MsgClaimVoucher { + option (amino.name) = "permissions/MsgClaimVoucher"; + option (cosmos.msg.v1.signer) = "sender"; + string sender = 1 [ (gogoproto.moretags) = "yaml:\"sender\"" ]; + + string denom = 2; +} +``` + +## Update Params + +```protobuf +message MsgUpdateParams { + option (cosmos.msg.v1.signer) = "authority"; + + // authority is the address of the governance account. + string authority = 1 [ (cosmos_proto.scalar) = "cosmos.AddressString" ]; + + // params defines the permissions parameters to update. + // + // NOTE: All parameters must be supplied. + Params params = 2 [ (gogoproto.nullable) = false ]; +} + +message Params { + option (gogoproto.equal) = true; + + uint64 wasm_hook_query_max_gas = 1; +} +``` \ No newline at end of file diff --git a/.gitbook/developers/modules/injective/permissions/README.md b/.gitbook/developers/modules/injective/permissions/README.md new file mode 100644 index 00000000..c92ce1de --- /dev/null +++ b/.gitbook/developers/modules/injective/permissions/README.md @@ -0,0 +1,13 @@ +# `Permissions` + +## Abstract + +Bringing real world permissioned assets (e.g. tokenized treasury yield products) on-chain require certain levels of control over asset actions/properties such as transfers, holders (whitelists), and more. + +The `permissions` module allows managing certain prefixed actions and roles for real world assets and permissioned denoms created within a namespace on the chain-level. It provides a flexible and extensible way to define and enforce permissions and roles and serves as the entry point through which real world assets can be natively issued and managed on Injective. + +## Contents + +1. **[Concepts](./01_concepts.md)** +2. **[State](./02_state.md)** +3. **[State Transitions](./03_state_transitions.md)** diff --git a/.gitbook/developers/modules/injective/tokenfactory/01_concepts.md b/.gitbook/developers/modules/injective/tokenfactory/01_concepts.md new file mode 100644 index 00000000..730c65cb --- /dev/null +++ b/.gitbook/developers/modules/injective/tokenfactory/01_concepts.md @@ -0,0 +1,23 @@ +--- +sidebar_position: 1 +title: Concepts +--- + +# Concepts + +The `tokenfactory` module allows any account to create a new token with +the name `factory/{creator address}/{subdenom}`. Because tokens are +namespaced by creator address, this allows token minting to be +permissionless, due to not needing to resolve name collisions. A single +account can create multiple denoms, by providing a unique subdenom for each +created denom. Once a denom is created, the original creator is given +"admin" privileges over the asset. This allows them to: + +- Mint their denom to any account +- Burn their denom from any account +- Create a transfer of their denom between any two accounts +- Change the admin. In the future, more admin capabilities may be added. Admins + can choose to share admin privileges with other accounts using the authz + module. The `ChangeAdmin` functionality, allows changing the master admin + account, or even setting it to `""`, meaning no account has admin privileges + of the asset. diff --git a/.gitbook/developers/modules/injective/tokenfactory/02_state.md b/.gitbook/developers/modules/injective/tokenfactory/02_state.md new file mode 100644 index 00000000..dfaefb62 --- /dev/null +++ b/.gitbook/developers/modules/injective/tokenfactory/02_state.md @@ -0,0 +1,74 @@ +--- +sidebar_position: 2 +title: State +--- + +# State + +The tokenfactory module keeps state of the following primary objects: + +## Denom Authority Metadata + +- 0x02 + | + denom + | + 0x01 ⇒ `DenomAuthorityMetadata` + +## Denom Creators + +- 0x03 + | + creator + | denom ⇒ denom + + +```protobuf +// DenomAuthorityMetadata specifies metadata for addresses that have specific +// capabilities over a token factory denom. Right now there is only one Admin +// permission, but is planned to be extended to the future. +message DenomAuthorityMetadata { + option (gogoproto.equal) = true; + + // Can be empty for no admin, or a valid injective address + string admin = 1 [ (gogoproto.moretags) = "yaml:\"admin\"" ]; +} +``` + +Genesis state defines the initial state of the module to be used to setup the module. + +```protobuf +// GenesisState defines the tokenfactory module's genesis state. +message GenesisState { + // params defines the parameters of the module. + Params params = 1 [ (gogoproto.nullable) = false ]; + + repeated GenesisDenom factory_denoms = 2 [ + (gogoproto.moretags) = "yaml:\"factory_denoms\"", + (gogoproto.nullable) = false + ]; +} + +// GenesisDenom defines a tokenfactory denom that is defined within genesis +// state. The structure contains DenomAuthorityMetadata which defines the +// denom's admin. +message GenesisDenom { + option (gogoproto.equal) = true; + + string denom = 1 [ (gogoproto.moretags) = "yaml:\"denom\"" ]; + DenomAuthorityMetadata authority_metadata = 2 [ + (gogoproto.moretags) = "yaml:\"authority_metadata\"", + (gogoproto.nullable) = false + ]; +} +``` +## Params + +`Params` is a module-wide configuration that stores system parameters and defines overall functioning of the tokenfactory module. +This module is modifiable by governance using params update proposal natively supported by `gov` module. + +Struct for the `ocr` module params store. +```protobuf +// Params defines the parameters for the tokenfactory module. +message Params { + repeated cosmos.base.v1beta1.Coin denom_creation_fee = 1 [ + (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins", + (gogoproto.moretags) = "yaml:\"denom_creation_fee\"", + (gogoproto.nullable) = false + ]; +} + +``` diff --git a/.gitbook/developers/modules/injective/tokenfactory/03_messages.md b/.gitbook/developers/modules/injective/tokenfactory/03_messages.md new file mode 100644 index 00000000..9869b19a --- /dev/null +++ b/.gitbook/developers/modules/injective/tokenfactory/03_messages.md @@ -0,0 +1,145 @@ +--- +sidebar_position: 3 +--- + +# Messages + +In this section we describe the processing of the tokenfactory messages and the corresponding updates to the state. + +## Messages + +### CreateDenom + +Creates a denom of `factory/{creator address}/{subdenom}` given the denom creator +address and the subdenom. Subdenoms can contain `[a-zA-Z0-9./]`. + +```go +message MsgCreateDenom { + string sender = 1 [ (gogoproto.moretags) = "yaml:\"sender\"" ]; + string subdenom = 2 [ (gogoproto.moretags) = "yaml:\"subdenom\"" ]; +} +``` + +**State Modifications:** + +- Fund community pool with the denom creation fee from the creator address, set + in `Params`. +- Set `DenomMetaData` via bank keeper. +- Set `AuthorityMetadata` for the given denom to store the admin for the created + denom `factory/{creator address}/{subdenom}`. Admin is automatically set as the + Msg sender. +- Add denom to the `CreatorPrefixStore`, where a state of denoms created per + creator is kept. + +### Mint + +Minting of a specific denom is only allowed for the current admin. +Note, the current admin is defaulted to the creator of the denom. + +```go +message MsgMint { + string sender = 1 [ (gogoproto.moretags) = "yaml:\"sender\"" ]; + cosmos.base.v1beta1.Coin amount = 2 [ + (gogoproto.moretags) = "yaml:\"amount\"", + (gogoproto.nullable) = false + ]; +} +``` + +**State Modifications:** + +- Safety check the following + - Check that the denom minting is created via `tokenfactory` module + - Check that the sender of the message is the admin of the denom +- Mint designated amount of tokens for the denom via `bank` module + +### Burn + +Burning of a specific denom is only allowed for the current admin. +Note, the current admin is defaulted to the creator of the denom. + +```go +message MsgBurn { + string sender = 1 [ (gogoproto.moretags) = "yaml:\"sender\"" ]; + cosmos.base.v1beta1.Coin amount = 2 [ + (gogoproto.moretags) = "yaml:\"amount\"", + (gogoproto.nullable) = false + ]; +} +``` + +**State Modifications:** + +- Safety check the following + - Check that the denom minting is created via `tokenfactory` module + - Check that the sender of the message is the admin of the denom +- Burn designated amount of tokens for the denom via `bank` module + +### ChangeAdmin + +Change the admin of a denom. Note, this is only allowed to be called by the current admin of the denom. + +```go +message MsgChangeAdmin { + string sender = 1 [ (gogoproto.moretags) = "yaml:\"sender\"" ]; + string denom = 2 [ (gogoproto.moretags) = "yaml:\"denom\"" ]; + string newAdmin = 3 [ (gogoproto.moretags) = "yaml:\"new_admin\"" ]; +} +``` + +### SetDenomMetadata + +Setting of metadata for a specific denom is only allowed for the admin of the denom. +It allows the overwriting of the denom metadata in the bank module. + +```go +message MsgChangeAdmin { + string sender = 1 [ (gogoproto.moretags) = "yaml:\"sender\"" ]; + cosmos.bank.v1beta1.Metadata metadata = 2 [ (gogoproto.moretags) = "yaml:\"metadata\"", (gogoproto.nullable) = false ]; +} +``` + +**State Modifications:** + +- Check that sender of the message is the admin of denom +- Modify `AuthorityMetadata` state entry to change the admin of the denom + + +## Expectations from the chain + +The chain's bech32 prefix for addresses can be at most 16 characters long. + +This comes from denoms having a 128 byte maximum length, enforced from the SDK, +and us setting longest_subdenom to be 44 bytes. + +A token factory token's denom is: `factory/{creator address}/{subdenom}` + +Splitting up into sub-components, this has: + +- `len(factory) = 7` +- `2 * len("/") = 2` +- `len(longest_subdenom)` +- `len(creator_address) = len(bech32(longest_addr_length, chain_addr_prefix))`. + +Longest addr length at the moment is `32 bytes`. Due to SDK error correction +settings, this means `len(bech32(32, chain_addr_prefix)) = len(chain_addr_prefix) + 1 + 58`. +Adding this all, we have a total length constraint of `128 = 7 + 2 + len(longest_subdenom) + len(longest_chain_addr_prefix) + 1 + 58`. +Therefore `len(longest_subdenom) + len(longest_chain_addr_prefix) = 128 - (7 + 2 + 1 + 58) = 60`. + +The choice between how we standardized the split these 60 bytes between maxes +from longest_subdenom and longest_chain_addr_prefix is somewhat arbitrary. +Considerations going into this: + +- Per [BIP-0173](https://github.com/bitcoin/bips/blob/master/bip-0173.mediawiki#bech32) + the technically longest HRP for a 32 byte address ('data field') is 31 bytes. + (Comes from encode(data) = 59 bytes, and max length = 90 bytes) +- subdenom should be at least 32 bytes so hashes can go into it +- longer subdenoms are very helpful for creating human readable denoms +- chain addresses should prefer being smaller. The longest HRP in cosmos to date is 11 bytes. (`persistence`) + +For explicitness, its currently set to `len(longest_subdenom) = 44` and `len(longest_chain_addr_prefix) = 16`. + +Please note, if the SDK increases the maximum length of a denom from 128 bytes, +these caps should increase. + +So please don't make code rely on these max lengths for parsing. diff --git a/.gitbook/developers/modules/injective/tokenfactory/04_events.md b/.gitbook/developers/modules/injective/tokenfactory/04_events.md new file mode 100644 index 00000000..ac7a3185 --- /dev/null +++ b/.gitbook/developers/modules/injective/tokenfactory/04_events.md @@ -0,0 +1,54 @@ +--- +sidebar_position: 4 +title: Events +--- + +# Events + +The tokenfactory module emits the following events: + +An EventCreateTFDenom is emitted upon MsgCreateDenom execution, which creates a new token factory denom. + +```protobuf +message EventCreateTFDenom { + string account = 1; + string denom = 2; +} +``` + +An EventMintTFDenom is emitted upon MsgMint execution, which mints a new token factory denom for a recipient. + +```protobuf +message EventMintTFDenom { + string recipient_address = 1; + cosmos.base.v1beta1.Coin amount = 2 [(gogoproto.nullable) = false]; +} +``` + +An EventBurnDenom is emitted upon MsgBurn execution, which burns a specified amount for any denom for a user. + +```protobuf +message EventBurnDenom { + string burner_address = 1; + cosmos.base.v1beta1.Coin amount = 2 [(gogoproto.nullable) = false]; +} +``` + +An EventChangeTFAdmin is emitted upon MsgChangeAdmin execution, which changes the admin address for a new token factory denom. + +```protobuf +message EventChangeTFAdmin { + string denom = 1; + string new_admin_address = 2; +} + +``` + +An EventSetTFDenomMetadata is emitted upon MsgSetDenomMetadata execution, which sets the token factory denom metadata for a given token factory denom. + +```protobuf +message EventSetTFDenomMetadata { + string denom = 1; + cosmos.bank.v1beta1.Metadata metadata = 2[(gogoproto.nullable) = false]; +} +``` \ No newline at end of file diff --git a/.gitbook/developers/modules/injective/tokenfactory/05_params.md b/.gitbook/developers/modules/injective/tokenfactory/05_params.md new file mode 100644 index 00000000..a2bd83cd --- /dev/null +++ b/.gitbook/developers/modules/injective/tokenfactory/05_params.md @@ -0,0 +1,19 @@ +--- +sidebar_position: 5 +title: Params +--- + +# Parameters + +The tokenfactory module contains the following parameters: + +```protobuf +// Params defines the parameters for the tokenfactory module. +message Params { + repeated cosmos.base.v1beta1.Coin denom_creation_fee = 1 [ + (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins", + (gogoproto.moretags) = "yaml:\"denom_creation_fee\"", + (gogoproto.nullable) = false + ]; +} +``` diff --git a/.gitbook/developers/modules/injective/tokenfactory/README.md b/.gitbook/developers/modules/injective/tokenfactory/README.md new file mode 100644 index 00000000..d1b0a39b --- /dev/null +++ b/.gitbook/developers/modules/injective/tokenfactory/README.md @@ -0,0 +1,14 @@ +# Tokenfactory + +## Abstract + +The tokenfactory module allows for the permissionless creation of new bank denom tokens. + + +## Contents + +1. **[Concepts](01_concepts.md)** +2. **[State](02_state.md)** +3. **[Messages](03_messages.md)** +4. **[Events](04_events.md)** +5. **[Parameters](05_params.md)** diff --git a/.gitbook/developers/modules/injective/wasmx/01_concepts.md b/.gitbook/developers/modules/injective/wasmx/01_concepts.md new file mode 100644 index 00000000..50da6d18 --- /dev/null +++ b/.gitbook/developers/modules/injective/wasmx/01_concepts.md @@ -0,0 +1,53 @@ +--- +sidebar_position: 1 +title: Concepts +--- + +## Concepts + +### Begin blocker execution + +Smart contracts can only respond to incoming messages and do not have the ability to execute actions on their own schedule. The Wasmx module allows contracts to be registered and called in the begin blockers section of each block. +To be eligible for this, each registered contract must respond to the sudo message called `begin_blocker` which can only be called by the chain itself and not directly by any user or other contract. This ensures that the "begin_blocker" message can be trusted. + +### Registration + +Upon registering a contract, the user must declare a gas price, which is the amount they are willing to pay for contract execution, as well as a gas limit, which is the maximum amount of gas that can be consumed during the execution of the contract. + +Currently, contract registration can only be done through a governance proposal. This proposal, if approved, will add the contract at a specific address to the list of contracts that are run during each "begin blockers" period. + +For security reasons, the proposer must specify a code_id for the contract, which will be verified upon registration and each time the contract is executed. This is to prevent an attacker from registering a benign contract but later upgrading it to a malicious one. The proposer can request to be exempt from this check when registering the contract to avoid delays when a new version of the contract is released, but this may affect the voting results depending on the trustworthiness of the proposer. + +The proposer can also request for the contract to be "pinned," meaning it is loaded and kept in memory, which can greatly improve the performance of the contract. + +### Deregistration + +A contract can be deregistered through a governance proposal, which can be initiated by anyone, including the contract owner if they no longer require the contract or by any other individual if the contract is found to be malicious. + +If contract fails to execute due to insufficient gas it will be automatically deregistered. + +When contract is deregistered, wasmx will call special `deregister{}` callback (if present) as a sudo message in the contract. + +### Deactivation + +A contract can be deactivated automatically if it runs out of gas, or manually by the contract owner. When a contract is deactivated, wasmx will call a special `deactivate{}` callback (if present) as a sudo message in the contract. The contract can be reactivated by the contract owner. + +### Fee Grant + +The Wasmx module allows other addresses (contracts, EOAs) to pay for the Begin blocker execution of other contracts through the [`x/feegrant`](https://docs.cosmos.network/main/modules/feegrant) module. + +When a contract is being registered for the first time, users specify the `FundingMode` which indicates how the contract's execution will be funded. Three modes are supported: + +- `SelfFunded` - contract will pay for its own execution (default) +- `GrantOnly` - contract will execute if its associated allowance covers for it (provided by the `GranterAddress` in the `ContractRegistrationRequest`) +- `Dual` - contract will prioritize spending its allowance's funds. In case the allowance cannot cover for execution, it will use its own funds instead + +Given there are 3 kinds of allowances provided by the `x/feegrant` module (Basic, Periodic and AllowedMsg), the wasmx module supports only Basic and Periodic. Granting an `AllowedMsgAllowance` to a contract is discouraged as any contract attempting to use this kind of allowance will error by default. + +### Pausing, params update + +The owner of a contract has the ability to deactivate or activate the contract at any time without requiring a governance vote. They can also update the parameters for contract execution, such as the gas price or gas limit, at any time. + +### Batch methods + +For convenience, the Wasmx module provides batch versions of some of the previously mentioned proposals, such as batch registration and deregistration, as well as a batch version of the StoreCodeProposal. These batch versions allow multiple proposals to be processed at the same time, rather than individually. diff --git a/.gitbook/developers/modules/injective/wasmx/02_data.md b/.gitbook/developers/modules/injective/wasmx/02_data.md new file mode 100644 index 00000000..822bb8fb --- /dev/null +++ b/.gitbook/developers/modules/injective/wasmx/02_data.md @@ -0,0 +1,38 @@ +--- +sidebar_position: 2 +title: Data +--- + +## Data + +### RegisteredContract + +Data stored about each contract + +```go +type RegisteredContract struct { + // limit of gas per BB execution + GasLimit uint64 json:"gas_limit,omitempty" + // gas price that contract is willing to pay for execution in BeginBlocker + GasPrice uint64 json:"gas_price,omitempty" + // is contract currently active + IsExecutable bool json:"is_executable,omitempty" + // code_id that is allowed to be executed (to prevent malicious updates) - if nil/0 any code_id can be executed + CodeId uint64 json:"code_id,omitempty"ł + // optional - admin addr that is allowed to update contract data + AdminAddress string json:"admin_address,omitempty" + // address of an account providing grant for execution + GranterAddress string + // enum indicating how contract's execution is funded + FundMode FundingMode +} + +type FundingMode int32 + +const ( + FundingMode_Unspecified FundingMode = 0 + FundingMode_SelfFunded FundingMode = 1 + FundingMode_GrantOnly FundingMode = 2 + FundingMode_Dual FundingMode = 3 +) +``` \ No newline at end of file diff --git a/.gitbook/developers/modules/injective/wasmx/03_proposals.md b/.gitbook/developers/modules/injective/wasmx/03_proposals.md new file mode 100644 index 00000000..c815ddd5 --- /dev/null +++ b/.gitbook/developers/modules/injective/wasmx/03_proposals.md @@ -0,0 +1,130 @@ +--- +sidebar_position: 3 +title: Governance Proposals +--- + +## Governance Proposals + +### ContractRegistrationRequest + +`ContractRegistrationRequest` is a base message for registering new contracts (shouldn't be used directly but as a part of proposal) + +```go +type ContractRegistrationRequest struct { + ContractAddress string + GasLimit uint64 + GasPrice uint64 + PinContract bool + AllowUpdating bool + CodeId uint64 + ContractAdmin string + GranterAddress string + FundMode FundingMode +} +``` + +**Fields description** + +- `ContractAddress` - unique Identifier for contract instance to be registered. +- `GasLimit` - Maximum gas to be used for the smart contract execution. +- `GasPrice` - Gas price to be used for the smart contract execution. +- `PinContract` - should contract be pinned. +- `AllowUpdating`- defines wether contract owner can migrate it without need to register again (if false only current code_id will be allowed to be executed) +- `CodeId` - code_id of the contract being registered - will be verified on execution to allow last minute change (after votes were cast) +- `AdminAddress` - optional address of admin account (that will be allowed to pause or update contract params) +- `GranterAddress` - address of an account which granted funds for execution. Must be set if `FundMode` is other than `SelfFunded` (see below for an explanation) + +`FundingMode` indicates how the contract will fund its own execution. + +```go +enum FundingMode { + Unspecified = 0; + SelfFunded = 1; + GrantOnly = 2; + Dual = 3; +} +``` + +- `SelfFunded` - contract will use its own funds to execute. +- `GrantOnly` - contract wil only use funds provided by the grant. +- `Dual` - contract will first deplete grant's funds before using its own. + +### ContractRegistrationRequestProposal + +`ContractRegistrationRequestProposal` defines an SDK message to register a single contract in wasmx contract registry. + +```go +type ContractRegistrationRequestProposal struct { + Title string + Description string + ContractRegistrationRequest ContractRegistrationRequest +} +``` + +**Fields description** + +- `Title` describes the title of the proposal. +- `Description` describes the description of the proposal. +- `ContractRegistrationRequest` contains contract registration request (as described above) + + + + +### BatchContractRegistrationRequestProposal + +`BatchContractRegistrationRequestProposal` defines an SDK message to register a batch of contracts in wasmx contract registry. + +```go +type BatchContractRegistrationRequestProposal struct { + Title string + Description string + ContractRegistrationRequests []ContractRegistrationRequest +} +``` + +**Fields description** + +- `Title` describes the title of the proposal. +- `Description` describes the description of the proposal. +- `ContractRegistrationRequests` contains a list of contracts registration requests (as described above) + + +### BatchStoreCodeProposal + +`BatchStoreCodeProposal` defines an SDK message to store a batch of contracts in wasm. + +```go +type BatchStoreCodeProposal struct { + Title string + Description string + Proposals []types.StoreCodeProposal +} +``` + +**Fields description** + +- `Title` describes the title of the proposal. +- `Description` describes the description of the proposal. +- `Proposals` contains a list of store code proposals (as defined by Cosmos wasm module) + + +### BatchContractDeregistrationProposal + +`BatchContractDeregistrationProposal` defines an SDK message to deregister a batch of contracts in wasm. + +```go +type BatchContractDeregistrationProposal struct { + Title string + Description string + Contracts []string +} +``` + +**Fields description** + +- `Title` describes the title of the proposal. +- `Description` describes the description of the proposal. +- `Contracts` contains a list of addresses of contracts to be deregistered + + + diff --git a/.gitbook/developers/modules/injective/wasmx/04_messages.md b/.gitbook/developers/modules/injective/wasmx/04_messages.md new file mode 100644 index 00000000..a1b1699c --- /dev/null +++ b/.gitbook/developers/modules/injective/wasmx/04_messages.md @@ -0,0 +1,90 @@ +--- +sidebar_position: 4 +title: Messages +--- + +## Messages + +### MsgUpdateContract + +Updates registered contract execution params (gas price, limit). Can also define a new admin account. +Can be called only by admin (if defined) or contract itself. + +```go + +type MsgUpdateContract struct { + Sender string `json:"sender,omitempty"` + // Unique Identifier for contract instance to be registered. + ContractAddress string `json:"contract_address,omitempty"` + // Maximum gas to be used for the smart contract execution. + GasLimit uint64 `json:"gas_limit,omitempty"` + // gas price to be used for the smart contract execution. + GasPrice uint64 `json:"gas_price,omitempty"` + // optional - admin account that will be allowed to perform any changes + AdminAddress string `json:"admin_address,omitempty"` +} +``` + +### MsgDeactivateContract + +Deactivates a registered contract (it will no longer be executed in begin blocker) + +```go + +type MsgDeactivateContract struct { + Sender string `json:"sender,omitempty"` + // Unique Identifier for contract instance to be activated. + ContractAddress string `json:"contract_address,omitempty"` +} +``` + +### MsgActivateContract + +Reactivates a registered contract (it will be executed in begin blocker from now on again) + +```go + +type MsgActivateContract struct { + Sender string `json:"sender,omitempty"` + // Unique Identifier for contract instance to be activated. + ContractAddress string `json:"contract_address,omitempty"` +} +``` + +### MsgExecuteContract + +Invokes a function defined within the smart contract. Function and parameters are encoded in `ExecuteMsg`, which is a JSON message encoded in Base64. + +```go +type MsgExecuteContract struct { + Sender sdk.AccAddress `json:"sender" yaml:"sender"` + Contract sdk.AccAddress `json:"contract" yaml:"contract"` + ExecuteMsg core.Base64Bytes `json:"execute_msg" yaml:"execute_msg"` + Coins sdk.Coins `json:"coins" yaml:"coins"` +} +``` + +### MsgMigrateContract + +Can be issued by the owner of a migratable smart contract to reset its code ID to another one. `MigrateMsg` is a JSON message encoded in Base64. + +```go +type MsgMigrateContract struct { + Owner sdk.AccAddress `json:"owner" yaml:"owner"` + Contract sdk.AccAddress `json:"contract" yaml:"contract"` + NewCodeID uint64 `json:"new_code_id" yaml:"new_code_id"` + MigrateMsg core.Base64Bytes `json:"migrate_msg" yaml:"migrate_msg"` +} +``` + +### MsgUpdateContractOwner + +Can be issued by the smart contract's owner to transfer ownership. + +```go +type MsgUpdateContractOwner struct { + Owner sdk.AccAddress `json:"owner" yaml:"owner"` + NewOwner sdk.AccAddress `json:"new_owner" yaml:"new_owner"` + Contract sdk.AccAddress `json:"contract" yaml:"contract"` +} +``` \ No newline at end of file diff --git a/.gitbook/developers/modules/injective/wasmx/05_params.md b/.gitbook/developers/modules/injective/wasmx/05_params.md new file mode 100644 index 00000000..2663c1f3 --- /dev/null +++ b/.gitbook/developers/modules/injective/wasmx/05_params.md @@ -0,0 +1,21 @@ +--- +sidebar_position: 5 +title: Params +--- + +## Params + +The subspace for the wasmx module is `wasmx`. + +```go +type Params struct { + // Set the status to active to indicate that contracts can be executed in begin blocker. + IsExecutionEnabled bool ` json:"is_execution_enabled,omitempty"` + // Maximum aggregate total gas to be used for the contract executions in the BeginBlocker. + MaxBeginBlockTotalGas uint64 `json:"max_begin_block_total_gas,omitempty"` + // the maximum gas limit each individual contract can consume in the BeginBlocker. + MaxContractGasLimit uint64 `json:"max_contract_gas_limit,omitempty"` + // min_gas_price defines the minimum gas price the contracts must pay to be executed in the BeginBlocker. + MinGasPrice uint64 `json:"min_gas_price,omitempty"` +} +``` \ No newline at end of file diff --git a/.gitbook/developers/modules/injective/wasmx/README.md b/.gitbook/developers/modules/injective/wasmx/README.md new file mode 100644 index 00000000..71cdd4f7 --- /dev/null +++ b/.gitbook/developers/modules/injective/wasmx/README.md @@ -0,0 +1,17 @@ +# `Wasmx` + +## Abstract + +The `wasmx` module handles integration of [CosmWasm](https://cosmwasm.com) smart contracts with Injective Chain. +Its main function is to provide a method for contracts to be executed in the begin blocker section of each block. +A contract may be automatically deactivated if it runs out of gas but can be reactivated by the contract owner. + +It also includes helper methods for managing contracts, such as a batch code storage proposal. These functions allow for seamless integration of CosmWasm contracts with the Injective Chain and provide useful tools for managing and maintaining those contracts. + +## Contents + +1. **[Concepts](./01_concepts.md)** +2. **[Data](./02_data.md)** +3. **[State](./03_proposals.md)** +4. **[Messages](./04_messages.md)** +5. **[Params](./05_params.md)** diff --git a/.gitignore b/.gitignore index 5e06e6fe..f928452b 100644 --- a/.gitignore +++ b/.gitignore @@ -10,6 +10,7 @@ .cache-loader # Misc +.env .DS_Store .env.local .env.development.local From 66fc145ae3dbd49f2e4b135b0d5a2fc160334407 Mon Sep 17 00:00:00 2001 From: Bojan Angjelkoski Date: Mon, 21 Oct 2024 16:54:06 +0200 Subject: [PATCH 03/17] chore: add modules --- .gitbook/SUMMARY.md | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/.gitbook/SUMMARY.md b/.gitbook/SUMMARY.md index 6ab7306a..73560b6d 100644 --- a/.gitbook/SUMMARY.md +++ b/.gitbook/SUMMARY.md @@ -52,7 +52,36 @@ * [Provider Oracle](developers/exchange-developers/provider-oracle.md) * [Cosmwasm Developers](developers/cosmwasm-developers/README.md) * [Page 1](developers/cosmwasm-developers/page-1.md) -* [Modules](developers/modules.md) +* [Modules](developers/modules/README.md) + * [Injective](developers/modules/injective/README.md) + * [Auction](developers/modules/injective/auction/README.md) + * [Exchange](developers/modules/injective/exchange/README.md) + * [Insurance](developers/modules/injective/insurance/README.md) + * [OCR](developers/modules/injective/ocr/README.md) + * [Oracle](developers/modules/injective/oracle/README.md) + * [Peggy](developers/modules/injective/peggy/README.md) + * [Permissions](developers/modules/injective/permissions/README.md) + * [TokenFactory](developers/modules/injective/tokenfactory/README.md) + * [WasmX](developers/modules/injective/wasmx/README.md) + * [Core](developers/modules/core/README.md) + * [Auth](developers/modules/core/auth/README.md) + * [AuthZ](developers/modules/core/authz/README.md) + * [Bank](developers/modules/core/bank/README.md) + * [Consensus](developers/modules/core/consensus/README.md) + * [Crisis](developers/modules/core/crisis/README.md) + * [Distribution](developers/modules/core/distribution/README.md) + * [Evidence](developers/modules/core/evidence/README.md) + * [Feegrant](developers/modules/core/feegrant/README.md) + * [Gov](developers/modules/core/gov/README.md) + * [Group](developers/modules/core/group/README.md) + * [Mint](developers/modules/core/mint/README.md) + * [NFT](developers/modules/core/nft/README.md) + * [Params](developers/modules/core/params/README.md) + * [Slashing](developers/modules/core/slashing/README.md) + * [Staking](developers/modules/core/staking/README.md) + * [Upgrade](developers/modules/core/upgrade/README.md) + * [Circuit](developers/modules/core/circuit/README.md) + * [Genutils](developers/modules/core/genutils/README.md) * [Documentation](https://docs.ts.injective.network) ## Traders From a6d5010c373a297edb2e7e5bf59730a17ac2f74e Mon Sep 17 00:00:00 2001 From: Bojan Angjelkoski Date: Mon, 21 Oct 2024 16:38:51 +0000 Subject: [PATCH 04/17] GITBOOK-4: No subject --- .gitbook/SUMMARY.md | 14 +- .../cosmwasm-developers/guides/README.md | 2 + .../guides/create-your-swap-contract.md | 89 ++ .../guides/creating-uis.md | 19 + .../guides/local-development.md | 457 ++++++++++ .../guides/mainnet-deployment.md | 170 ++++ .../guides/whitelisting-deployment-address.md | 33 + .../injective-test-tube.md | 335 ++++++++ .../developers/cosmwasm-developers/page-1.md | 203 ++++- .../your-first-smart-contract.md | 787 ++++++++++++++++++ .gitbook/developers/modules/core/genutils.md | 2 + .../toolkits/injectived/install-injectived.md | 44 + .../toolkits/injectived/using-injectived.md | 3 + 13 files changed, 2154 insertions(+), 4 deletions(-) create mode 100644 .gitbook/developers/cosmwasm-developers/guides/README.md create mode 100644 .gitbook/developers/cosmwasm-developers/guides/create-your-swap-contract.md create mode 100644 .gitbook/developers/cosmwasm-developers/guides/creating-uis.md create mode 100644 .gitbook/developers/cosmwasm-developers/guides/local-development.md create mode 100644 .gitbook/developers/cosmwasm-developers/guides/mainnet-deployment.md create mode 100644 .gitbook/developers/cosmwasm-developers/guides/whitelisting-deployment-address.md create mode 100644 .gitbook/developers/cosmwasm-developers/injective-test-tube.md create mode 100644 .gitbook/developers/cosmwasm-developers/your-first-smart-contract.md create mode 100644 .gitbook/developers/modules/core/genutils.md diff --git a/.gitbook/SUMMARY.md b/.gitbook/SUMMARY.md index 73560b6d..e8044ecb 100644 --- a/.gitbook/SUMMARY.md +++ b/.gitbook/SUMMARY.md @@ -51,7 +51,15 @@ * [Exchange Developers](developers/exchange-developers/README.md) * [Provider Oracle](developers/exchange-developers/provider-oracle.md) * [Cosmwasm Developers](developers/cosmwasm-developers/README.md) - * [Page 1](developers/cosmwasm-developers/page-1.md) + * [Your First Smart Contract](developers/cosmwasm-developers/your-first-smart-contract.md) + * [Guides](developers/cosmwasm-developers/guides/README.md) + * [Local Development](developers/cosmwasm-developers/guides/local-development.md) + * [Mainnet Deployment](developers/cosmwasm-developers/guides/mainnet-deployment.md) + * [Whitelisting deployment address](developers/cosmwasm-developers/guides/whitelisting-deployment-address.md) + * [Create your Swap Contract](developers/cosmwasm-developers/guides/create-your-swap-contract.md) + * [Creating UIs](developers/cosmwasm-developers/guides/creating-uis.md) + * [CW20 Adapter](developers/cosmwasm-developers/page-1.md) + * [Injective Test Tube](developers/cosmwasm-developers/injective-test-tube.md) * [Modules](developers/modules/README.md) * [Injective](developers/modules/injective/README.md) * [Auction](developers/modules/injective/auction/README.md) @@ -81,7 +89,7 @@ * [Staking](developers/modules/core/staking/README.md) * [Upgrade](developers/modules/core/upgrade/README.md) * [Circuit](developers/modules/core/circuit/README.md) - * [Genutils](developers/modules/core/genutils/README.md) + * [Genutils](developers/modules/core/genutils.md) * [Documentation](https://docs.ts.injective.network) ## Traders @@ -102,4 +110,4 @@ * [Injective Hub](https://hub.injective.network) * [Injective Explorer](https://explorer.injective.network) * [Chain API Reference](https://sentry.lcd.injective.network/swagger/#/) -* [Indexer API Reference ](https://api.injective.network/swagger/#/) +* [Indexer API Reference](https://api.injective.network/swagger/#/) diff --git a/.gitbook/developers/cosmwasm-developers/guides/README.md b/.gitbook/developers/cosmwasm-developers/guides/README.md new file mode 100644 index 00000000..b955b433 --- /dev/null +++ b/.gitbook/developers/cosmwasm-developers/guides/README.md @@ -0,0 +1,2 @@ +# Guides + diff --git a/.gitbook/developers/cosmwasm-developers/guides/create-your-swap-contract.md b/.gitbook/developers/cosmwasm-developers/guides/create-your-swap-contract.md new file mode 100644 index 00000000..547511ce --- /dev/null +++ b/.gitbook/developers/cosmwasm-developers/guides/create-your-swap-contract.md @@ -0,0 +1,89 @@ +# Create your Swap Contract + +The [swap contract](https://github.com/InjectiveLabs/swap-contract) allows an instant swap between two different tokens. Under the hood, it uses atomic orders to place market orders in one or more spot markets. + +### Getting started + +Anyone can instantiate an instance of the swap contract. There is version of this contract uploaded on Injective mainnet already, and can be found [here](https://explorer.injective.network/code/67/). + +Before instantiating the contract, as the contract owner, you have three questions to answer: + +#### 1. Which address should be the fee recipient? + +Since orders placed by the swap contract are orders in the Injective Exchange Module, this means each order can have a fee recipient which can receive 40% of the trading fee. Typically, Exchange dApps will set the fee recipient as their own addresses. + +#### 2. What tokens should this contract support? + +Every token available in the contract must have a route defined. Route refers to which markets `token A` will go through in order to get `token B`. For example, if you would like to support swapping between ATOM and INJ, then you would have to set route by providing the contract the market IDs of ATOM/USDT and INJ/USDT, so that the it knows the route of swapping between ATOM and INJ would be ATOM ⇔ USDT ⇔ INJ. + +At this moment, the contract can only support markets quoted in USDT. + +#### 3. How much buffer should be provided to this contract? + +As the contract owner, you also have to provide funds to the contract which will be used when the swap happens. The buffer is used by the contract when it place orders. If the user wants to swap a big amount or swap in an illiquid market, then more buffer is required. An error will occur when the contract buffer cannot satisfy the user's input amount. + +At this moment, the buffer should only be USDT. + +### Messages + +#### Instantiate + +Initializes the contract state with the contract version and configuration details. The config includes an administrator address and a fee recipient address. + +```rust +pub fn instantiate( + deps: DepsMut, + env: Env, + info: MessageInfo, + msg: InstantiateMsg, +) -> Result, ContractError> +``` + +#### Execute + +Handles different types of transactions and admin functions: + +* SwapMinOutput: Swap with the minimum output quantity. +* SwapExactOutput: Swap with an exact output quantity. +* SetRoute: Set a swap route. +* DeleteRoute: Delete a swap route. +* UpdateConfig: Update the contract configuration. +* WithdrawSupportFunds: Withdraw the support funds from the contract. + +```rust +pub fn execute( + deps: DepsMut, + env: Env, + info: MessageInfo, + msg: ExecuteMsg, +) -> Result, ContractError> +``` + +#### Reply + +Handles the replies from other contracts or transactions. + +```rust +pub fn reply( + deps: DepsMut, + env: Env, + msg: Reply, +) -> Result, ContractError> +``` + +#### Query + +Handles various queries to the contract: + +* GetRoute: Get a specific swap route. +* GetOutputQuantity: Get the output quantity for a given input quantity. +* GetInputQuantity: Get the input quantity for a given output quantity. +* GetAllRoutes: Get all available swap routes. + +```rust +pub fn query(deps: Deps, env: Env, msg: QueryMsg) -> StdResult +``` + +### Repo + +The complete GitHub repository for the swap contract can be found [here](https://github.com/InjectiveLabs/swap-contract). diff --git a/.gitbook/developers/cosmwasm-developers/guides/creating-uis.md b/.gitbook/developers/cosmwasm-developers/guides/creating-uis.md new file mode 100644 index 00000000..ffda4ae2 --- /dev/null +++ b/.gitbook/developers/cosmwasm-developers/guides/creating-uis.md @@ -0,0 +1,19 @@ +# Creating UIs + +{% hint style="info" %} +More comprehensive docs about creating UIs as well as bootstraping options can be found on the [TypeScript docs](https://docs.ts.injective.network/building-dapps/dapps-examples). +{% endhint %} + +We've interacted with our contract through the Injective CLI, but this is not ideal for most dApp users. A web UI can provide a much better experience! Rather than sending transaction messages through `injectived`, we can abstract away the complexity and provide the user with two buttons—one to increment the count, and one to reset the count. + +![](https://docs.injective.network/img/Counter\_website.png) + +For example, see the [counter website](https://injective-simple-cosmwasm-sc.netlify.app/). A high level guide on developing the frontend using Vue and the [Injective TS SDK](https://github.com/InjectiveLabs/injective-ts/tree/master/packages/sdk-ts) can be found in the [website repo here](https://github.com/InjectiveLabs/injective-simple-sc-counter-ui/tree/master/nuxt). For a React implementation, see [here](https://github.com/InjectiveLabs/injective-simple-sc-counter-ui/tree/master/next). + +Now, interacting with the contract is as simple as clicking a button and signing with MetaMask (make sure the account is set to Ethereum Goerli Testnet or you will receive a chain ID mismatch error). + +![](https://docs.injective.network/img/metamask\_select\_testnet.png) + +{% hint style="info" %} +You may notice that you get an "Unauthorized" error message when attempting to reset the count. This is expected behavior! Recall from the [contract logic for reset](https://docs.injective.network/develop/guides/injective-101/your-first-contract#reset) that only the contract owner is permitted to reset the count. Since you did not instantiate the exact contract that the frontend is interacting with, you don't have the required permissions to reset the count. +{% endhint %} diff --git a/.gitbook/developers/cosmwasm-developers/guides/local-development.md b/.gitbook/developers/cosmwasm-developers/guides/local-development.md new file mode 100644 index 00000000..1f261f78 --- /dev/null +++ b/.gitbook/developers/cosmwasm-developers/guides/local-development.md @@ -0,0 +1,457 @@ +# Local Development + +This guide will get you started deploying `cw20` smart contracts on a local Injective network running on your computer. + +We'll use the `cw20-base` contract from [CosmWasm's collection of specifications and contracts](https://github.com/CosmWasm/cw-plus) designed for production use on real networks. `cw20-base` is a basic implementation of a `cw20` compatible contract that can be imported in any custom contract you want to build on. It contains a straightforward but complete implementation of the cw20 spec along with all extensions. `cw20-base` can be deployed as-is or imported by other contracts. + +### Prerequisites + +Install Go, Rust, and other Cosmwasm dependencies by following the instructions: + +1. [Go](https://docs.cosmwasm.com/docs/getting-started/installation#go) +2. [Rust](https://docs.cosmwasm.com/docs/getting-started/installation#rust) + +Before starting, make sure you have [`rustup`](https://rustup.rs/) along with recent versions of `rustc` and `cargo` installed. Currently, we are testing on Rust v1.58.1+. + +You also need to have the `wasm32-unknown-unknown` target installed as well as the `cargo-generate` Rust crate. + +You can check versions via the following commands: + +```bash +rustc --version +cargo --version +rustup target list --installed +# if wasm32 is not listed above, run this +rustup target add wasm32-unknown-unknown +# to install cargo-generate, run this +cargo install cargo-generate +``` + +### injectived + +Make sure you have `injectived` installed locally. You can follow the [install-injectived.md](../../../toolkits/injectived/install-injectived.md "mention")guide to get `injectived` and other prerequisites running locally. + +Once you have `injectived` installed, you should also [start a local chain instance.](../../../toolkits/injectived/install-injectived.md#start-injectived) + +### Compile CosmWasm Contracts + +In this step, we will get all CW production template contracts and compile them using the [CosmWasm Rust Optimizer](https://github.com/CosmWasm/rust-optimizer) Docker image for compiling multiple contracts (called `workspace-optimizer`)—see [here](https://hub.docker.com/r/cosmwasm/workspace-optimizer/tags) (x86) or [here](https://hub.docker.com/r/cosmwasm/workspace-optimizer-arm64/tags) (ARM) for latest versions. This process may take a bit of time and CPU power. + +```bash +git clone https://github.com/CosmWasm/cw-plus +cd cw-plus +``` + +Non ARM (Non-Apple silicon) devices: + +```bash +docker run --rm -v "$(pwd)":/code \ +--mount type=volume,source="$(basename "$(pwd)")_cache",target=/code/target \ +--mount type=volume,source=registry_cache,target=/usr/local/cargo/registry \ +cosmwasm/workspace-optimizer:0.12.12 +``` + +Alternatively for Apple silicon devices (M1, M2, etc.) please use: + +```bash +docker run --rm -v "$(pwd)":/code \ +--mount type=volume,source="$(basename "$(pwd)")_cache",target=/code/target \ +--mount type=volume,source=registry_cache,target=/usr/local/cargo/registry \ +cosmwasm/workspace-optimizer-arm64:0.12.12 +``` + +The docker script builds and optimizes all the CW contracts in the repo, with the compiled contracts located under the `artifacts` directory. Now we can deploy the `cw20_base.wasm` contract (`cw20_base-aarch64.wasm` if compiled on an ARM device). + +### Upload the CosmWasm Contract to the Chain + +```bash +# inside the CosmWasm/cw-plus repo +yes 12345678 | injectived tx wasm store artifacts/cw20_base.wasm --from=genesis --chain-id="injective-1" --yes --gas-prices=500000000inj --gas=20000000 +``` + +**Output:** + +``` +code: 0 +codespace: "" +data: "" +events: [] +gas_used: "0" +gas_wanted: "0" +height: "0" +info: "" +logs: [] +raw_log: '[]' +timestamp: "" +tx: null +txhash: 4CFB63A47570C4CFBE8E669273B26BEF6EAFF922C07480CA42180C52219CE784 +``` + +Then query the transaction by the `txhash` to verify the contract was indeed deployed. + +```bash +injectived query tx 4CFB63A47570C4CFBE8E669273B26BEF6EAFF922C07480CA42180C52219CE784 +``` + +**Output:** + +```bash +code: 0 +codespace: "" +data: 0A460A1E2F636F736D7761736D2E7761736D2E76312E4D736753746F7265436F64651224080112205F8201CF5E2D7E6C15DB11ADF03D62DDDDC92B8D4FAE98C4F3C1C37F378E15D9 +events: +- attributes: + - index: true + key: YWNjX3NlcQ== + value: aW5qMTByZHN4ZGdyOGw4czBndnU4cnluaHUyMm5ueGtmeXRnNThjd204LzE= + type: tx +- attributes: + - index: true + key: c2lnbmF0dXJl + value: R29McmoxaDBtelNWN085SUNScStLbDdCVmdocDB6aU5EQ0Jwc1dFS1I1TlNXZkR2V1ZJejF0TEpGb0ZwSzlhNkFIQVdSVkZRNjExYitwSHdpY04wN1FFPQ== + type: tx +- attributes: + - index: true + key: c3BlbmRlcg== + value: aW5qMTByZHN4ZGdyOGw4czBndnU4cnluaHUyMm5ueGtmeXRnNThjd204 + - index: true + key: YW1vdW50 + value: MTAwMDAwMDAwMDAwMDAwMDBpbmo= + type: coin_spent +- attributes: + - index: true + key: cmVjZWl2ZXI= + value: aW5qMTd4cGZ2YWttMmFtZzk2MnlsczZmODR6M2tlbGw4YzVsNnM1eWU5 + - index: true + key: YW1vdW50 + value: MTAwMDAwMDAwMDAwMDAwMDBpbmo= + type: coin_received +- attributes: + - index: true + key: cmVjaXBpZW50 + value: aW5qMTd4cGZ2YWttMmFtZzk2MnlsczZmODR6M2tlbGw4YzVsNnM1eWU5 + - index: true + key: c2VuZGVy + value: aW5qMTByZHN4ZGdyOGw4czBndnU4cnluaHUyMm5ueGtmeXRnNThjd204 + - index: true + key: YW1vdW50 + value: MTAwMDAwMDAwMDAwMDAwMDBpbmo= + type: transfer +- attributes: + - index: true + key: c2VuZGVy + value: aW5qMTByZHN4ZGdyOGw4czBndnU4cnluaHUyMm5ueGtmeXRnNThjd204 + type: message +- attributes: + - index: true + key: ZmVl + value: MTAwMDAwMDAwMDAwMDAwMDBpbmo= + - index: true + key: ZmVlX3BheWVy + value: aW5qMTByZHN4ZGdyOGw4czBndnU4cnluaHUyMm5ueGtmeXRnNThjd204 + type: tx +- attributes: + - index: true + key: YWN0aW9u + value: L2Nvc213YXNtLndhc20udjEuTXNnU3RvcmVDb2Rl + type: message +- attributes: + - index: true + key: bW9kdWxl + value: d2FzbQ== + - index: true + key: c2VuZGVy + value: aW5qMTByZHN4ZGdyOGw4czBndnU4cnluaHUyMm5ueGtmeXRnNThjd204 + type: message +- attributes: + - index: true + key: Y29kZV9jaGVja3N1bQ== + value: NWY4MjAxY2Y1ZTJkN2U2YzE1ZGIxMWFkZjAzZDYyZGRkZGM5MmI4ZDRmYWU5OGM0ZjNjMWMzN2YzNzhlMTVkOQ== + - index: true + key: Y29kZV9pZA== + value: MQ== + type: store_code +- attributes: + - index: true + key: YWNjZXNzX2NvbmZpZw== + value: eyJwZXJtaXNzaW9uIjoiRXZlcnlib2R5IiwiYWRkcmVzcyI6IiIsImFkZHJlc3NlcyI6W119 + - index: true + key: Y2hlY2tzdW0= + value: Ilg0SUJ6MTR0Zm13VjJ4R3Q4RDFpM2QzSks0MVBycGpFODhIRGZ6ZU9GZGs9Ig== + - index: true + key: Y29kZV9pZA== + value: IjEi + - index: true + key: Y3JlYXRvcg== + value: ImluajEwcmRzeGRncjhsOHMwZ3Z1OHJ5bmh1MjJubnhrZnl0ZzU4Y3dtOCI= + type: cosmwasm.wasm.v1.EventCodeStored +gas_used: "2158920" +gas_wanted: "20000000" +height: "47" +info: "" +logs: +- events: + - attributes: + - key: access_config + value: '{"permission":"Everybody","address":"","addresses":[]}' + - key: checksum + value: '"X4IBz14tfmwV2xGt8D1i3d3JK41PrpjE88HDfzeOFdk="' + - key: code_id + value: '"1"' + - key: creator + value: '"inj10rdsxdgr8l8s0gvu8rynhu22nnxkfytg58cwm8"' + type: cosmwasm.wasm.v1.EventCodeStored + - attributes: + - key: action + value: /cosmwasm.wasm.v1.MsgStoreCode + - key: module + value: wasm + - key: sender + value: inj10rdsxdgr8l8s0gvu8rynhu22nnxkfytg58cwm8 + type: message + - attributes: + - key: code_checksum + value: 5f8201cf5e2d7e6c15db11adf03d62ddddc92b8d4fae98c4f3c1c37f378e15d9 + - key: code_id + value: "1" + type: store_code + log: "" + msg_index: 0 +raw_log: '[{"events":[{"type":"cosmwasm.wasm.v1.EventCodeStored","attributes":[{"key":"access_config","value":"{\"permission\":\"Everybody\",\"address\":\"\",\"addresses\":[]}"},{"key":"checksum","value":"\"X4IBz14tfmwV2xGt8D1i3d3JK41PrpjE88HDfzeOFdk=\""},{"key":"code_id","value":"\"1\""},{"key":"creator","value":"\"inj10rdsxdgr8l8s0gvu8rynhu22nnxkfytg58cwm8\""}]},{"type":"message","attributes":[{"key":"action","value":"/cosmwasm.wasm.v1.MsgStoreCode"},{"key":"module","value":"wasm"},{"key":"sender","value":"inj10rdsxdgr8l8s0gvu8rynhu22nnxkfytg58cwm8"}]},{"type":"store_code","attributes":[{"key":"code_checksum","value":"5f8201cf5e2d7e6c15db11adf03d62ddddc92b8d4fae98c4f3c1c37f378e15d9"},{"key":"code_id","value":"1"}]}]}]' +timestamp: "2023-03-06T15:48:30Z" +tx: + '@type': /cosmos.tx.v1beta1.Tx + auth_info: + fee: + amount: + - amount: "10000000000000000" + denom: inj + gas_limit: "20000000" + granter: "" + payer: "" + signer_infos: + - mode_info: + single: + mode: SIGN_MODE_DIRECT + public_key: + '@type': /injective.crypto.v1beta1.ethsecp256k1.PubKey + key: Ay+cc/lvd4Mn4pbgFkN87vWDaCXuXjVJYJGsdhrD09vk + sequence: "1" + body: + extension_options: [] + memo: "" + messages: + - '@type': /cosmwasm.wasm.v1.MsgStoreCode + instantiate_permission: null + sender: inj10rdsxdgr8l8s0gvu8rynhu22nnxkfytg58cwm8 + wasm_byte_code: YOUR_WASM_BYTE_HERE + non_critical_extension_options: [] + timeout_height: "0" + signatures: + - GoLrj1h0mzSV7O9ICRq+Kl7BVghp0ziNDCBpsWEKR5NSWfDvWVIz1tLJFoFpK9a6AHAWRVFQ611b+pHwicN07QE= +txhash: 4CFB63A47570C4CFBE8E669273B26BEF6EAFF922C07480CA42180C52219CE784 +``` + +Inspecting the output more closely, we can see the `code_id` of 1 for the contract + +```bash +logs: +- events: + - attributes: + - key: access_config + value: '{"permission":"Everybody","address":"","addresses":[]}' + - key: checksum + value: '"X4IBz14tfmwV2xGt8D1i3d3JK41PrpjE88HDfzeOFdk="' + - key: code_id + value: '"1"' + - key: creator + value: '"inj10rdsxdgr8l8s0gvu8rynhu22nnxkfytg58cwm8"' + type: cosmwasm.wasm.v1.EventCodeStored + - attributes: + - key: action + value: /cosmwasm.wasm.v1.MsgStoreCode + - key: module + value: wasm + - key: sender + value: inj10rdsxdgr8l8s0gvu8rynhu22nnxkfytg58cwm8 + type: message + - attributes: + - key: code_checksum + value: 5f8201cf5e2d7e6c15db11adf03d62ddddc92b8d4fae98c4f3c1c37f378e15d9 + - key: code_id + value: "1" + type: store_code + log: "" + msg_index: 0 +``` + +We’ve uploaded the contract code, but we still need to instantiate the contract. + +### Instantiate the Contract + +Before instantiating the contract, let's take a look at the CW-20 contract function signature for `instantiate`. + +```rust +#[cfg_attr(not(feature = "library"), entry_point)] +pub fn instantiate( + mut deps: DepsMut, + _env: Env, + _info: MessageInfo, + msg: InstantiateMsg, +) -> Result { +``` + +Notably, it contains the `InstantiateMsg` parameter which contains the token name, symbol, decimals, and other details. + +```rust +#[derive(Serialize, Deserialize, JsonSchema, Debug, Clone, PartialEq)] +pub struct InstantiateMsg { + pub name: String, + pub symbol: String, + pub decimals: u8, + pub initial_balances: Vec, + pub mint: Option, + pub marketing: Option, +} +``` + +The first step of instantiating the contract is to select an address to supply with our initial CW20 token allocation. In our case, we can just use the genesis address since we have the keys already set up, but feel free to generate new addresses and keys. + +{% hint style="warning" %} +Make sure you have the private keys for the address you choose—you won't be able to test token transfers from the address otherwise. In addition, the chosen address must be a valid address on the chain (the address must have received funds at some point in the past) and must have balances to pay for gas when executing the contract. +{% endhint %} + +To find the genesis address, run: + +```bash +yes 12345678 | injectived keys show genesis +``` + +**Output:** + +```bash +- name: genesis + type: local + address: inj10cfy5e6qt2zy55q2w2ux2vuq862zcyf4fmfpj3 + pubkey: '{"@type":"/injective.crypto.v1beta1.ethsecp256k1.PubKey","key":"ArtVkg9feLXjD4p6XRtWxVpvJUDhrcqk/5XYLsQI4slb"}' + mnemonic: "" +``` + +Run the CLI command with `code_id` `1` along with the JSON encoded initialization arguments (with your selected address) and a label (a human-readable name for this contract in lists) to instantiate the contract: + +```bash +CODE_ID=1 +INIT='{"name":"Albcoin","symbol":"ALB","decimals":6,"initial_balances":[{"address":"inj10cfy5e6qt2zy55q2w2ux2vuq862zcyf4fmfpj3","amount":"69420"}],"mint":{"minter":"inj10cfy5e6qt2zy55q2w2ux2vuq862zcyf4fmfpj3"},"marketing":{}}' +yes 12345678 | injectived tx wasm instantiate $CODE_ID $INIT --label="Albcoin Token" --from=genesis --chain-id="injective-1" --yes --gas-prices=500000000inj --gas=20000000 --no-admin +``` + +Now the address of the instantiated contract can be obtained on [http://localhost:10337/swagger/#/Query/ContractsByCode](http://localhost:10337/swagger/#/Query/ContractsByCode) + +And the contract info meta data can be obtained on [http://localhost:10337/swagger/#/Query/ContractInfo](http://localhost:10337/swagger/#/Query/ContractInfo) or by CLI query + +```bash +CONTRACT=$(injectived query wasm list-contract-by-code $CODE_ID --output json | jq -r '.contracts[-1]') +injectived query wasm contract $CONTRACT +``` + +**Output:** + +```bash +injectived query wasm contract $CONTRACT +address: inj14hj2tavq8fpesdwxxcu44rty3hh90vhujaxlnz +contract_info: + admin: "" + code_id: "1" + created: + block_height: "95" + tx_index: "0" + creator: inj10rdsxdgr8l8s0gvu8rynhu22nnxkfytg58cwm8 + extension: null + ibc_port_id: "" + label: Albcoin Token +``` + +### Querying the contract + +The entire contract state can be queried with: + +```bash +injectived query wasm contract-state all $CONTRACT +``` + +**Output:** + +```bash +models: +- key: 000762616C616E6365696E6A31306366793565367174327A793535713277327578327675713836327A63796634666D66706A33 + value: IjY5NDIwIg== +- key: 636F6E74726163745F696E666F + value: eyJjb250cmFjdCI6ImNyYXRlcy5pbzpjdzIwLWJhc2UiLCJ2ZXJzaW9uIjoiMS4wLjEifQ== +- key: 6D61726B6574696E675F696E666F + value: eyJwcm9qZWN0IjpudWxsLCJkZXNjcmlwdGlvbiI6bnVsbCwibG9nbyI6bnVsbCwibWFya2V0aW5nIjpudWxsfQ== +- key: 746F6B656E5F696E666F + value: eyJuYW1lIjoiQWxiY29pbiIsInN5bWJvbCI6IkFMQiIsImRlY2ltYWxzIjo2LCJ0b3RhbF9zdXBwbHkiOiI2OTQyMCIsIm1pbnQiOnsibWludGVyIjoiaW5qMTBjZnk1ZTZxdDJ6eTU1cTJ3MnV4MnZ1cTg2MnpjeWY0Zm1mcGozIiwiY2FwIjpudWxsfX0= +pagination: + next_key: null + total: "0" +``` + +The individual user’s token balance can also be queried with: + +```bash +BALANCE_QUERY='{"balance": {"address": "inj10cfy5e6qt2zy55q2w2ux2vuq862zcyf4fmfpj3"}}' +injectived query wasm contract-state smart $CONTRACT "$BALANCE_QUERY" --output json +``` + +**Output:** + +```bash +{"data":{"balance":"69420"}} +``` + +### Transferring Tokens + +```bash +TRANSFER='{"transfer":{"recipient":"inj1dzqd00lfd4y4qy2pxa0dsdwzfnmsu27hgttswz","amount":"420"}}' +yes 12345678 | injectived tx wasm execute $CONTRACT "$TRANSFER" --from genesis --chain-id="injective-1" --yes --gas-prices=500000000inj --gas=20000000 +``` + +Then confirm the balance transfer occurred successfully with: + +```bash +# first address balance query +BALANCE_QUERY='{"balance": {"address": "inj10cfy5e6qt2zy55q2w2ux2vuq862zcyf4fmfpj3"}}' +injectived query wasm contract-state smart $CONTRACT "$BALANCE_QUERY" --output json +``` + +**Output:** + +```bash +{"data":{"balance":"69000"}} +``` + +And confirm the recipient received the funds: + +```bash +# recipient's address balance query +BALANCE_QUERY='{"balance": {"address": "inj1dzqd00lfd4y4qy2pxa0dsdwzfnmsu27hgttswz"}}' +injectived query wasm contract-state smart $CONTRACT "$BALANCE_QUERY" --output json +``` + +**Output:** + +```bash +{"data":{"balance":"420"}} +``` + +## Testnet Development + +Here are the main differences between a `local` and `testnet` development/deployment + +* You can use our [Injective Testnet Faucet](https://testnet.faucet.injective.network) to get testnet funds to your address, +* You can use the [Injective Testnet Explorer](https://testnet.explorer.injective.network/codes/) to query your transactions and get more details, +* When you are using `injectived` you have to specify the `testnet` rpc using the `node` flag `--node=https://testnet.sentry.tm.injective.network:443` +* Instead of using `injective-1` as a `chainId` you should use `injective-888` i.e the `chain-id` flag should now be `--chain-id="injective-888"` +* You can use the [Injective Testnet Explorer](https://testnet.explorer.injective.network/codes/) to find information about the `codeId` of the uploaded smart contracts OR find your instantiated smart contract + +You can read more on the `injectived` and how to use it to query/send transactions against `testnet` [using-injectived.md](../../../toolkits/injectived/using-injectived.md "mention"). diff --git a/.gitbook/developers/cosmwasm-developers/guides/mainnet-deployment.md b/.gitbook/developers/cosmwasm-developers/guides/mainnet-deployment.md new file mode 100644 index 00000000..c8a07da1 --- /dev/null +++ b/.gitbook/developers/cosmwasm-developers/guides/mainnet-deployment.md @@ -0,0 +1,170 @@ +# Mainnet Deployment + +This guide will get you started with the governance process of deploying and instantiating CosmWasm smart contracts on Injective Mainnet. + +### Submit a Code Upload Proposal + +In this section, you will learn how to submit a smart contract code proposal and vote for it. + +Injective network participants can propose smart contracts deployments and vote in governance to enable them. The `wasmd` authorization settings are by on-chain governance, which means deployment of a contract is completely determined by governance. Because of this, a governance proposal is the first step to uploading contracts to Injective mainnet. + +Sample usage of `injectived` to start a governance proposal to upload code to the chain: + +```bash +injectived tx wasm submit-proposal wasm-store artifacts/cw_controller.wasm +--title="Proposal Title" \ +--summary="Proposal Summary" \ +--instantiate-everybody true \ +--broadcast-mode=sync \ +--chain-id=injective-1 \ +--node=https://sentry.tm.injective.network:443 \ +--deposit=100000000000000000000inj \ +--gas=20000000 \ +--gas-prices=160000000inj \ +--from [YOUR_KEY] \ +--yes \ +--output json +``` + +The command `injectived tx gov submit-proposal wasm-store` submits a wasm binary proposal. The code will be deployed if the proposal is approved by governance. + +Let’s go through two key flags `instantiate-everybody` and `instantiate-only-address`, which set instantiation permissions of the uploaded code. By default, everyone can instantiate the contract. + +```bash +--instantiate-everybody boolean # Everybody can instantiate a contract from the code, optional +--instantiate-only-address string # Only this address can instantiate a contract instance from the code +``` + +### Contract Instantiation (No Governance) + +In most cases, you don’t need to push another governance proposal to instantiate. Simply instantiate with `injectived tx wasm instantiate`. You only need a governance proposal to _upload_ a contract. You don’t need to go through governance to instantiate unless if the contract has the `--instantiate-everybody` flag to set to `false`, and `--instantiate-only-address` flag set to the governance module. The default value for `--instantiate-everybody` is `true`, and in this case you can permissionlessly instantiate via `injectived tx wasm instantiate`. + +```bash +injectived tx wasm instantiate [code_id_int64] [json_encoded_init_args] --label [text] --admin [address,optional] --amount [coins,optional] [flags] +``` + +```bash +Flags: + -a, --account-number uint The account number of the signing account (offline mode only) + --admin string Address or key name of an admin + --amount string Coins to send to the contract during instantiation + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) (default "sync") + --chain-id string The network chain ID + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for instantiate + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) (default "os") + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --label string A human-readable name for this contract in lists + --ledger Use a connected Ledger device + --no-admin You must set this explicitly if you don't want an admin + --node string : to tendermint rpc interface for this chain (default "tcp://localhost:26657") + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) (default "json") + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +An example `injectived tx wasm instantiate` can look something like this: + +```bash +injectived tx wasm instantiate \ +150 \ +'{"bank": "inj1egl894wme0d4d029hlv3kuqs0mc9atep2s89h8"}' \ +--label="LABEL" \ +--from=inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c \ +--chain-id=injective-1 \ +--yes \ +--gas-prices 160000000inj \ +--gas=10000000 \ +--no-admin \ +--node=https://sentry.tm.injective.network:443 \ +``` + +### Contract Instantiation (Governance) + +As mentioned above, contract instantiation permissions on mainnet depend on the flags used when uploading the code. By default, it is set to permissionless, as we can verify on the genesis `wasmd` Injective setup: + +```json +"wasm": { + "codes": [], + "contracts": [], + "gen_msgs": [], + "params": { + "code_upload_access": { + "address": "", + "permission": "Everybody" + }, + "instantiate_default_permission": "Everybody" + }, + "sequences": [] + } +``` + +However, if the `--instantiate-everybody` flag is set to `false`, then the contract instantiation must go through governance. + +{% hint style="info" %} +The Injective testnet is permissionless by default in order to allow developers to easily deploy contracts. +{% endhint %} + +#### Contract Instantiation Proposal + +```bash + injectived tx gov submit-proposal instantiate-contract [code_id_int64] [json_encoded_init_args] --label [text] --title [text] --description [text] --run-as [address] --admin [address,optional] --amount [coins,optional] [flags] +``` + +```bash +Flags: + -a, --account-number uint The account number of the signing account (offline mode only) + --admin string Address of an admin + --amount string Coins to send to the contract during instantiation + -b, --broadcast-mode string Transaction broadcasting mode (sync|async|block) (default "sync") + --deposit string Deposit of proposal + --description string Description of proposal + --dry-run ignore the --gas flag and perform a simulation of a transaction, but dont broadcast it (when enabled, the local Keybase is not accessible) + --fee-account string Fee account pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase is not accessible) + -h, --help help for instantiate-contract + --keyring-backend string Select keyrings backend (os|file|kwallet|pass|test|memory) (default "os") + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --label string A human-readable name for this contract in lists + --ledger Use a connected Ledger device + --no-admin You must set this explicitly if you dont want an admin + --node string : to tendermint rpc interface for this chain (default "tcp://localhost:26657") + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality + -o, --output string Output format (text|json) (default "json") + --proposal string Proposal file path (if this path is given, other proposal flags are ignored) + --run-as string The address that pays the init funds. It is the creator of the contract and passed to the contract as sender on proposal execution + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --title string Title of proposal + --type string Permission of proposal, types: store-code/instantiate/migrate/update-admin/clear-admin/text/parameter_change/software_upgrade + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Contract Migration + +Migration is the process through which a given smart contract's code can be swapped out or 'upgraded'. + +When instantiating a contract, there is an optional admin field that you can set. If it is left empty, the contract is immutable. If the admin is set (to an external account or governance contract), that account can trigger a migration. The admin can also reassign the admin role, or even make the contract fully immutable if desired. However, keep in mind that when migrating from an old contract to a new contract, the new contract needs to be aware of how the state was previously encoded. + +A more detailed description of the technical aspects of migration can be found in the [CosmWasm migration documentation](https://docs.cosmwasm.com/docs/smart-contracts/migration). diff --git a/.gitbook/developers/cosmwasm-developers/guides/whitelisting-deployment-address.md b/.gitbook/developers/cosmwasm-developers/guides/whitelisting-deployment-address.md new file mode 100644 index 00000000..6187e3e8 --- /dev/null +++ b/.gitbook/developers/cosmwasm-developers/guides/whitelisting-deployment-address.md @@ -0,0 +1,33 @@ +# Whitelisting deployment address + +Contract upload on Injective mainnet requires governance approval. You can read through the guide to do so in the [mainnet-deployment.md](mainnet-deployment.md "mention") guide. + +This structure has been put in place for multiple reasons: + +1. Historically, the community has discovered vulnerabilities in CosmWasm whereby certain contracts could cause a chain halt. Thus, requiring approval will be inherently more secure until the language matures and stabilizes over time. +2. Governance prevents un-audited and bogus contracts from being deployed into the network ensuring that hacks and scams will occur at a lesser degree. +3. This results in a more curated experience for ecosystem users since the blockchain does not fill up with unwanted transactions and contracts. + +This governance process is time-consuming for validators and the community. Injective builders additionally face a 4-day wait to roll out features, affecting developer experience and user growth. + +As of the Altaris chain upgrade, it is now possible to request whitelisting your address for contract uploads. + +## Submission Guidelines + +To be considered for a whitelist approval, it is strongly recommended to include all the following information in the governance proposal. Validators are recommended to contact the Foundation in Discord to verify the information submitted for each proposal before voting. + +1. Are the identities of the team members known to the community? +2. Has the team completed KYC/KYB with the Injective Foundation? +3. How long has the protocol been live on Injective mainnet? +4. Has the team developed applications in other ecosystems? (provide the details) + +## Voting Guidelines + +Users that meet these criteria will have a greater chance at receiving whitelist permissions: + +1. The project has completed Injective Foundation KYC/KYB and the team members' identities are known to the community. _Exception: Anonymous developers with proven credibility and successful apps in other ecosystems._ +2. The project has been live on mainnet for at least 1 month and has achieved significant TVL/usage. + +## Operational Guidelines + +It is strongly recommended to use a multisig or Ledger wallet for the whitelisted uploads. diff --git a/.gitbook/developers/cosmwasm-developers/injective-test-tube.md b/.gitbook/developers/cosmwasm-developers/injective-test-tube.md new file mode 100644 index 00000000..4b83b90a --- /dev/null +++ b/.gitbook/developers/cosmwasm-developers/injective-test-tube.md @@ -0,0 +1,335 @@ +# Injective Test Tube + +`injective-test-tube` is a CosmWasm x Injective integration testing library that, unlike `cw-multi-test`, allows you to test your CosmWasm contract against the chain's actual logic instead of mocks. + +The `dev` branch depends on currently private repos, but you can use published versions instead. Please refer to [`CHANGELOG`](https://github.com/InjectiveLabs/test-tube/blob/dev/packages/injective-test-tube/CHANGELOG.md) for features and update information. + +### Getting Started + +To demonstrate how `injective-test-tube` works, let us use a simple example contract: [cw-whitelist](https://github.com/CosmWasm/cw-plus/tree/main/contracts/cw1-whitelist) from `cw-plus`. + +Here is how to setup the test: + +```rust +use cosmwasm_std::Coin; +use injective_test_tube::InjectiveTestApp; + +// create new injective appchain instance. +let app = InjectiveTestApp::new(); + +// create new account with initial funds +let accs = app + .init_accounts( + &[ + Coin::new(1_000_000_000_000, "usdt"), + Coin::new(1_000_000_000_000, "inj"), + ], + 2, + ) + .unwrap(); + +let admin = &accs[0]; +let new_admin = &accs[1]; +``` + +Now we have the appchain instance and accounts that have some initial balances and can interact with the appchain. This does not run Docker instance or spawning external process, it just loads the appchain's code as a library to create an in memory instance. + +Note that `init_accounts` is a convenience function that creates multiple accounts with the same initial balance. If you want to create just one account, you can use `init_account` instead. + +```rust +use cosmwasm_std::Coin; +use injective_test_tube::InjectiveTestApp; + +let app = InjectiveTestApp::new(); + +let account = app.init_account(&[ + Coin::new(1_000_000_000_000, "usdt"), + Coin::new(1_000_000_000_000, "inj"), +]); +``` + +Now if we want to test a cosmwasm contract, we need to + +* build the wasm file +* store code +* instantiate + +Then we can start interacting with our contract. Let's do just that. + +```rust +use cosmwasm_std::Coin; +use cw1_whitelist::msg::{InstantiateMsg}; // for instantiating cw1_whitelist contract +use injective_test_tube::{Account, Module, InjectiveTestApp, Wasm}; + +let app = InjectiveTestApp::new(); +let accs = app + .init_accounts( + &[ + Coin::new(1_000_000_000_000, "usdt"), + Coin::new(1_000_000_000_000, "inj"), + ], + 2, + ) + .unwrap(); +let admin = &accs[0]; +let new_admin = &accs[1]; + +// ============= NEW CODE ================ + +// `Wasm` is the module we use to interact with cosmwasm related logic on the appchain +// it implements `Module` trait which you will see more later. +let wasm = Wasm::new(&app); + +// Load compiled wasm bytecode +let wasm_byte_code = std::fs::read("./test_artifacts/cw1_whitelist.wasm").unwrap(); +let code_id = wasm + .store_code(&wasm_byte_code, None, admin) + .unwrap() + .data + .code_id; +``` + +Not that in this example, it loads wasm bytecode from [cw-plus release](https://github.com/CosmWasm/cw-plus/releases) for simple demonstration purposes. You might want to run `cargo wasm` and find your wasm file in `target/wasm32-unknown-unknown/release/.wasm`. + +```rust +use cosmwasm_std::Coin; +use cw1_whitelist::msg::{InstantiateMsg, QueryMsg, AdminListResponse}; +use injective_test_tube::{Account, Module, InjectiveTestApp, Wasm}; + +let app = InjectiveTestApp::new(); +let accs = app + .init_accounts( + &[ + Coin::new(1_000_000_000_000, "usdt"), + Coin::new(1_000_000_000_000, "inj"), + ], + 2, + ) + .unwrap(); +let admin = &accs[0]; +let new_admin = &accs[1]; + +let wasm = Wasm::new(&app); + + +let wasm_byte_code = std::fs::read("./test_artifacts/cw1_whitelist.wasm").unwrap(); +let code_id = wasm + .store_code(&wasm_byte_code, None, admin) + .unwrap() + .data + .code_id; + +// ============= NEW CODE ================ + +// instantiate contract with initial admin and make admin list mutable +let init_admins = vec![admin.address()]; +let contract_addr = wasm + .instantiate( + code_id, + &InstantiateMsg { + admins: init_admins.clone(), + mutable: true, + }, + None, // contract admin used for migration, not the same as cw1_whitelist admin + Some("Test label"), // contract label + &[], // funds + admin, // signer + ) + .unwrap() + .data + .address; + +// query contract state to check if contract instantiation works properly +let admin_list = wasm + .query::(&contract_addr, &QueryMsg::AdminList {}) + .unwrap(); + +assert_eq!(admin_list.admins, init_admins); +assert!(admin_list.mutable); +``` + +Now let's execute the contract and verify that the contract's state is updated properly. + +```rust +use cosmwasm_std::Coin; +use cw1_whitelist::msg::{InstantiateMsg, QueryMsg, ExecuteMsg, AdminListResponse}; +use injective_test_tube::{Account, Module, InjectiveTestApp, Wasm}; + +let app = InjectiveTestApp::new(); +let accs = app + .init_accounts( + &[ + Coin::new(1_000_000_000_000, "usdt"), + Coin::new(1_000_000_000_000, "inj"), + ], + 2, + ) + .unwrap(); +let admin = &accs[0]; +let new_admin = &accs[1]; + +let wasm = Wasm::new(&app); + + +let wasm_byte_code = std::fs::read("./test_artifacts/cw1_whitelist.wasm").unwrap(); +let code_id = wasm + .store_code(&wasm_byte_code, None, admin) + .unwrap() + .data + .code_id; + +// instantiate contract with initial admin and make admin list mutable +let init_admins = vec![admin.address()]; +let contract_addr = wasm + .instantiate( + code_id, + &InstantiateMsg { + admins: init_admins.clone(), + mutable: true, + }, + None, // contract admin used for migration, not the same as cw1_whitelist admin + Some("Test label"), // contract label + &[], // funds + admin, // signer + ) + .unwrap() + .data + .address; + +let admin_list = wasm + .query::(&contract_addr, &QueryMsg::AdminList {}) + .unwrap(); + +assert_eq!(admin_list.admins, init_admins); +assert!(admin_list.mutable); + +// ============= NEW CODE ================ + +// update admin list and rechec the state +let new_admins = vec![new_admin.address()]; +wasm.execute::( + &contract_addr, + &ExecuteMsg::UpdateAdmins { + admins: new_admins.clone(), + }, + &[], + admin, +) +.unwrap(); + +let admin_list = wasm + .query::(&contract_addr, &QueryMsg::AdminList {}) + .unwrap(); + +assert_eq!(admin_list.admins, new_admins); +assert!(admin_list.mutable); +``` + +### Debugging + +In your contract code, if you want to debug, you can use [`deps.api.debug(..)`](https://docs.rs/cosmwasm-std/latest/cosmwasm\_std/trait.Api.html#tymethod.debug) which will print the debug message to stdout. `wasmd` disabled this by default but `InjectiveTestApp` allows stdout emission so that you can debug your smart contract while running tests. + +### Using Module Wrapper + +In some cases, you might want to interact directly with appchain logic to setup the environment or query appchain's state. Module wrappers provides convenient functions to interact with the appchain's module. + +Let's try to interact with `Exchange` module: + +```rust +use cosmwasm_std::{Addr, Coin}; +use injective_std::types::injective::exchange::v1beta1::{ + MarketStatus, MsgInstantSpotMarketLaunch, + QuerySpotMarketsRequest, QuerySpotMarketsResponse, SpotMarket, +}; +use injective_test_tube::{Account, Exchange, InjectiveTestApp}; +use test_tube_inj::Module; + +let app = InjectiveTestApp::new(); +let signer = app + .init_account(&[ + Coin::new(10_000_000_000_000_000_000_000u128, "inj"), + Coin::new(100_000_000_000_000_000_000u128, "usdt"), + ]) + .unwrap(); +let trader = app + .init_account(&[ + Coin::new(10_000_000_000_000_000_000_000u128, "inj"), + Coin::new(100_000_000_000_000_000_000u128, "usdt"), + ]) + .unwrap(); +let exchange = Exchange::new(&app); + +exchange + .instant_spot_market_launch( + MsgInstantSpotMarketLaunch { + sender: signer.address(), + ticker: "INJ/USDT".to_owned(), + base_denom: "inj".to_owned(), + quote_denom: "usdt".to_owned(), + min_price_tick_size: "10000".to_owned(), + min_quantity_tick_size: "100000".to_owned(), + }, + &signer, + ) + .unwrap(); + +exchange + .instant_spot_market_launch( + MsgInstantSpotMarketLaunch { + sender: signer.address(), + ticker: "INJ/USDT".to_owned(), + base_denom: "inj".to_owned(), + quote_denom: "usdt".to_owned(), + min_price_tick_size: "10000".to_owned(), + min_quantity_tick_size: "100000".to_owned(), + }, + &signer, + ) + .unwrap_err(); + +app.increase_time(1u64); + +let spot_markets = exchange + .query_spot_markets(&QuerySpotMarketsRequest { + status: "Active".to_owned(), + market_ids: vec![], + }) + .unwrap(); + +let expected_response = QuerySpotMarketsResponse { + markets: vec![SpotMarket { + ticker: "INJ/USDT".to_string(), + base_denom: "inj".to_string(), + quote_denom: "usdt".to_string(), + maker_fee_rate: "-100000000000000".to_string(), + taker_fee_rate: "1000000000000000".to_string(), + relayer_fee_share_rate: "400000000000000000".to_string(), + market_id: "0xd5a22be807011d5e42d5b77da3f417e22676efae494109cd01c242ad46630115" + .to_string(), + status: MarketStatus::Active.into(), + min_price_tick_size: "10000".to_string(), + min_quantity_tick_size: "100000".to_string(), + }], +}; +assert_eq!(spot_markets, expected_response); +``` + +Additional examples can be found in the [modules](https://github.com/InjectiveLabs/test-tube/tree/dev/packages/injective-test-tube/src/module)) directory. + +### Versioning + +The version of injective-test-tube is determined by the versions of its dependencies, injective and test-tube, as well as its own changes. The version is represented in the format A.B.C, where: + +* A is the major version of injective, +* B is the minor version of test-tube, +* C is the patch number of injective-test-tube itself. + +When a new version of injective is released and contains breaking changes, we will also release breaking changes from test-tube if any and increment the major version of injective-test-tube. This way, it's clear that the new version of injective-test-tube is not backwards-compatible with previous versions. + +When adding a new feature to injective-test-tube that is backward-compatible, the minor version number will be incremented. + +When fixing bugs or making other changes that are `injective-test-tube` specific and backward-compatible, the patch number will be incremented. + +Please review the upgrade guide for upgrading the package, in case of breaking changes + +It is important to note that we track the version of the package independent of the version of dependencies. diff --git a/.gitbook/developers/cosmwasm-developers/page-1.md b/.gitbook/developers/cosmwasm-developers/page-1.md index 6f8b4979..7778015c 100644 --- a/.gitbook/developers/cosmwasm-developers/page-1.md +++ b/.gitbook/developers/cosmwasm-developers/page-1.md @@ -1,2 +1,203 @@ -# Page 1 +# CW20 Adapter +In this document, we'll explain the CW20 Adapter Contract that allows exchanging CW-20 tokens for Injective issued native tokens (using the TokenFactory module) and vice-versa. For the CW-20 Adapter GitHub repository, see [here](https://github.com/InjectiveLabs/cw20-adapter/tree/master/contracts/cw20-adapter). + +## Background + +CW-20 is a specification for fungible tokens in CosmWasm, loosely based on ERC-20 specification. It allows creating and handling of arbitrary fungible tokens within CosmWasm, specifying methods for creating, minting and burning and transferring those tokens between accounts. The adapter contract will ensure that only authorized source CW-20 contracts can mint tokens (to avoid creating “counterfeit” tokens). + +While the CW-20 standard is relatively mature and complete, the tokens exist purely within the CosmWasm context and are entirely managed by the issuing contract (including keeping track of account balances). That means that they cannot interact directly with any Injective/Cosmos chain functionality (for example, it’s not possible to trade them via the Injective exchange module, or to transfer without involving issuing contracts). + +Considering the above, it’s necessary to provide a solution that would work as a bridge between CW20 and the Injective bank module. + +The workflow of the contract is + +* Register a new CW-20 token +* Exchange amount of X CW-20 tokens for Y TokenFactory tokens (original CW-20 tokens will be held by the contract) +* Exchange Y TF tokens back for X CW-20 tokens (CW-20 tokens are released and TokenFactory tokens are burned) + +### Messages + +#### `RegisterCw20Contract { addr: Addr }` + +Registers a new CW-20 contract (`addr`) that will be handled by the adapter and creates a new TokenFactory token in format `factory/{adapter_contract}/{cw20_contract}`. + +```rust +ExecuteMsg::RegisterCw20Contract { addr } => execute_register::handle_register_msg(deps, env, info, addr) + +pub fn handle_register_msg( + deps: DepsMut, + env: Env, + info: MessageInfo, + addr: Addr, +) -> Result, ContractError> { + if is_contract_registered(&deps, &addr) { + return Err(ContractError::ContractAlreadyRegistered); + } + let required_funds = query_denom_creation_fee(&deps.querier)?; + if info.funds.len() > required_funds.len() { + return Err(ContractError::SuperfluousFundsProvided); + } + + let mut provided_funds = info.funds.iter(); + + for required_coin in &required_funds { + let pf = provided_funds + .find(|c| -> bool { c.denom == required_coin.denom }) + .ok_or(ContractError::NotEnoughBalanceToPayDenomCreationFee)?; + + match pf.amount.cmp(&required_coin.amount) { + Ordering::Greater => return Err(ContractError::SuperfluousFundsProvided), + Ordering::Less => return Err(ContractError::NotEnoughBalanceToPayDenomCreationFee), + Ordering::Equal => {} + } + } + + let create_denom_msg = register_contract_and_get_message(deps, &env, &addr)?; + Ok(Response::new().add_message(create_denom_msg)) +} +``` + +#### `Receive { sender: String, amount: Uint128, msg: Binary }` + +Implementation of the Receiver CW-20 interface. + +{% hint style="danger" %} +Must be called by the CW-20 contract only. +{% endhint %} + +```rust +ExecuteMsg::Receive { sender, amount, msg: _ } => execute_receive::handle_on_received_cw20_funds_msg(deps, env, info, sender, amount) + +pub fn handle_on_received_cw20_funds_msg( + deps: DepsMut, + env: Env, + info: MessageInfo, + recipient: String, + amount: Uint128, +) -> Result, ContractError> { + if!info.funds.is_empty() { + return Err(ContractError::SuperfluousFundsProvided); + } + let mut response = Response::new(); + let token_contract = info.sender; + if!is_contract_registered(&deps, &token_contract) { + ensure_sufficient_create_denom_balance(&deps, &env)?; + response = response.add_message(register_contract_and_get_message(deps, &env, &token_contract)?); + } + let master = env.contract.address; + + let denom = get_denom(&master, &token_contract); + let coins_to_mint = Coin::new(amount.u128(), denom); + let mint_tf_tokens_message = create_mint_tokens_msg(master, coins_to_mint, recipient); + + Ok(response.add_message(mint_tf_tokens_message)) +} +``` + +#### `RedeemAndTransfer { recipient: Option }` + +Redeem attached TokenFactory tokens and transfer CW-20 tokens to the recipient. If the recipient is not provided, they will be sent to the message sender. + +#### `RedeemAndSend { recipient: String, submessage: Binary }` + +Redeem attached TokenFactory tokens and send CW-20 tokens to the recipient contract. Caller may provide optional submessage. + +```rust +ExecuteMsg::RedeemAndTransfer { recipient } => execute_redeem::handle_redeem_msg(deps, env, info, recipient, None) + +ExecuteMsg::RedeemAndSend { recipient, submsg } => execute_redeem::handle_redeem_msg(deps, env, info, Some(recipient), Some(submsg)) + +pub fn handle_redeem_msg( + deps: DepsMut, + env: Env, + info: MessageInfo, + recipient: Option, + submessage: Option, +) -> Result, ContractError> { + let recipient = recipient.unwrap_or_else(|| info.sender.to_string()); + + if info.funds.len() > 1 { + return Err(ContractError::SuperfluousFundsProvided); + } + let tokens_to_exchange = info + .funds + .iter() + .find_map(|c| -> Option { + match AdapterDenom::new(&c.denom) { + Ok(denom) => Some(AdapterCoin { amount: c.amount, denom }), + Err(_) => None, + } + }) + .ok_or(ContractError::NoRegisteredTokensProvided)?; + + let cw20_addr = tokens_to_exchange.denom.cw20_addr.clone(); + let is_contract_registered = CW20_CONTRACTS.contains(deps.storage, &tokens_to_exchange.denom.cw20_addr); + if!is_contract_registered { + return Err(ContractError::NoRegisteredTokensProvided); + } + + let burn_tf_tokens_message = create_burn_tokens_msg(env.contract.address, tokens_to_exchange.as_coin()); + + let cw20_message: WasmMsg = match submessage { + None => WasmMsg::Execute { + contract_addr: cw20_addr, + msg: to_binary(&Cw20ExecuteMsg::Transfer { + recipient, + amount: tokens_to_exchange.amount, + })?, + funds: vec![], + }, + Some(msg) => WasmMsg::Execute { + contract_addr: cw20_addr, + msg: to_binary(&Cw20ExecuteMsg::Send { + contract: recipient, + amount: tokens_to_exchange.amount, + msg, + })?, + funds: vec![], + }, + }; + Ok(Response::new().add_message(cw20_message).add_message(burn_tf_tokens_message)) +} +``` + +#### `UpdateMetadata { addr : Addr}` + +Will query the CW-20 address (if registered) for metadata and will call setMetadata in the bank module (using TokenFactory access method). + +```rust +ExecuteMsg::UpdateMetadata { addr } => execute_metadata::handle_update_metadata(deps, env, addr) + +pub fn handle_update_metadata( + deps: DepsMut, + env: Env, + cw20_addr: Addr, +) -> Result, ContractError> { + let is_contract_registered = CW20_CONTRACTS.contains(deps.storage, cw20_addr.as_str()); + if!is_contract_registered { + return Err(ContractError::ContractNotRegistered); + } + let token_metadata = fetch_cw20_metadata(&deps, cw20_addr.as_str())?; + + let denom = get_denom(&env.contract.address, &cw20_addr); + let set_metadata_message = create_set_token_metadata_msg(denom, token_metadata.name, token_metadata.symbol, token_metadata.decimals); + + Ok(Response::new().add_message(set_metadata_message)) +} + +Queries +RegisteredContracts {} +Return a list of registered CW-20 contracts. + +QueryMsg::RegisteredContracts {} => to_binary(&query::registered_contracts(deps)?) + +pub fn registered_contracts(deps: Deps) -> StdResult> {} + +NewDenomFee {} +Returns a fee required to register a new tokenFactory denom. + +QueryMsg::NewDenomFee {} => to_binary(&query::new_denom_fee(deps)?) + +pub fn new_denom_fee(deps: Deps) -> StdResult {} +``` diff --git a/.gitbook/developers/cosmwasm-developers/your-first-smart-contract.md b/.gitbook/developers/cosmwasm-developers/your-first-smart-contract.md new file mode 100644 index 00000000..4a538d98 --- /dev/null +++ b/.gitbook/developers/cosmwasm-developers/your-first-smart-contract.md @@ -0,0 +1,787 @@ +# Your First Smart Contract + +Within this section, we'll explain how to setup your environment for CosmWasm Smart Contracts Development. + +### Prerequisites + +Before starting, make sure you have [`rustup`](https://rustup.rs/) along with recent versions of `rustc` and `cargo` installed. Currently, we are testing on Rust v1.58.1+. + +You also need to have the `wasm32-unknown-unknown` target installed as well as the `cargo-generate` Rust crate. + +You can check versions via the following commands: + +```bash +rustc --version +cargo --version +rustup target list --installed +# if wasm32 is not listed above, run this +rustup target add wasm32-unknown-unknown +# to install cargo-generate, run this +cargo install cargo-generate +``` + +### Objectives + +* Create and interact with a smart contract that increases and resets a counter to a given value +* Understand the basics of a CosmWasm smart contract, learn how to deploy it on Injective, and interact with it using Injective tools + +### CosmWasm Contract Basics + +A smart contract can be considered an instance of a [singleton object](https://en.wikipedia.org/wiki/Singleton\_pattern) whose internal state is persisted on the blockchain. Users can trigger state changes by sending the smart contract JSON messages, and users can also query its state by sending a request formatted as a JSON message. These JSON messages are different than Injective blockchain messages such as `MsgSend` and `MsgExecuteContract`. + +As a smart contract writer, your job is to define 3 functions that compose your smart contract's interface: + +* `instantiate()`: a constructor which is called during contract instantiation to provide initial state +* `execute()`: gets called when a user wants to invoke a method on the smart contract +* `query()`: gets called when a user wants to get data out of a smart contract + +In our [sample counter contract](https://github.com/InjectiveLabs/cw-counter/blob/59b9fed82864103eb704a58d20ddb4bf94c69787/src/msg.rs), we will implement one `instantiate`, one `query`, and two `execute` methods. + +### Start with a Template + +In your working directory, quickly launch your smart contract with the recommended folder structure and build options by running the following commands: + +```bash +cargo generate --git https://github.com/CosmWasm/cw-template.git --branch 1.0 --name my-first-contract +cd my-first-contract +``` + +This helps get you started by providing the basic boilerplate and structure for a smart contract. In the [`src/contract.rs`](https://github.com/InjectiveLabs/cw-counter/blob/ea3b781447a87f052e4b8308d5c73a30481ed61f/src/contract.rs) file you will find that the standard CosmWasm entrypoints [`instantiate()`](https://github.com/InjectiveLabs/cw-counter/blob/ea3b781447a87f052e4b8308d5c73a30481ed61f/src/contract.rs#L15), [`execute()`](https://github.com/InjectiveLabs/cw-counter/blob/ea3b781447a87f052e4b8308d5c73a30481ed61f/src/contract.rs#L35), and [`query()`](https://github.com/InjectiveLabs/cw-counter/blob/ea3b781447a87f052e4b8308d5c73a30481ed61f/src/contract.rs#L72) are properly exposed and hooked up. + +### State + +{% hint style="info" %} +You can learn more about CosmWasm [State on their documentation](https://github.com/CosmWasm/docs/blob/archive/dev-academy/develop-smart-contract/01-intro.md#contract-state) +{% endhint %} + +`State` handles the state of the database where smart contract data is stored and accessed. + +The [starting template](https://github.com/InjectiveLabs/cw-counter/blob/ea3b781447a87f052e4b8308d5c73a30481ed61f/src/state.rs) has the following basic state, a singleton struct `State` containing: + +* `count`, a 32-bit integer with which `execute()` messages will interact by increasing or resetting it. +* `owner`, the sender `address` of the `MsgInstantiateContract`, which will determine if certain execution messages are permitted. + +```c +// src/state.rs +use schemars::JsonSchema; +use serde::{Deserialize, Serialize}; + +use cosmwasm_std::Addr; +use cw_storage_plus::Item; + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)] +pub struct State { + pub count: i32, + pub owner: Addr, +} + +pub const STATE: Item = Item::new("state"); +``` + +Injective smart contracts have the ability to keep persistent state through Injective's native LevelDB, a bytes-based key-value store. As such, any data you wish to persist should be assigned a unique key, which may be used to index and retrieve the data. + +Data can only be persisted as raw bytes, so any notion of structure or data type must be expressed as a pair of serializing and deserializing functions. For instance, objects must be stored as bytes, so you must supply both the function that encodes the object into bytes to save it on the blockchain, as well as the function that decodes the bytes back into data types that your contract logic can understand. The choice of byte representation is up to you, so long as it provides a clean, bi-directional mapping. + +Fortunately, the CosmWasm team has provided utility crates such as [`cosmwasm_storage`](https://crates.io/crates/cosmwasm-storage), which provides convenient high-level abstractions for data containers such as a "singleton" and "bucket", which automatically provide serialization and deserialization for commonly-used types such as structs and Rust numbers. For a more efficient storage mechanism, the team has also provided the [`cw-storage-plus`](https://docs.cosmwasm.com/docs/smart-contracts/state/cw-plus/) crate. + +Notice how the `State` struct holds both `count` and `owner`. In addition, the `derive` attribute is applied to auto-implement some useful traits: + +* `Serialize`: provides serialization +* `Deserialize`: provides deserialization +* `Clone`: makes the struct copyable +* `Debug`: enables the struct to be printed to string +* `PartialEq`: provides equality comparison +* `JsonSchema`: auto-generates a JSON schema + +`Addr` refers to a human-readable Injective address prefixed with `inj`, e.g. `inj1clw20s2uxeyxtam6f7m84vgae92s9eh7vygagt`. + +### InstantiateMsg + +{% hint style="info" %} +You can learn more about CosmWasm [InstantiateMsg on their documentation](https://github.com/CosmWasm/docs/blob/archive/dev-academy/develop-smart-contract/01-intro.md#instantiatemsg) +{% endhint %} + +The `InstantiateMsg` is provided to the contract when a user instantiates a contract on the blockchain through a `MsgInstantiateContract`. This provides the contract with its configuration as well as its initial state. + +On the Injective blockchain, the uploading of a contract's code and the instantiation of a contract are regarded as separate events, unlike on Ethereum. This is to allow a small set of vetted contract archetypes to exist as multiple instances sharing the same base code, but be configured with different parameters (imagine one canonical ERC20, and multiple tokens that use its code). + +#### Example + +For your contract, the contract creator is expected to supply the initial state in a JSON message. We can see in the message definition below that the message holds one parameter `count`, which represents the initial count. + +```json +{ + "count": 100 +} +``` + +#### Message Definition + +```c +// src/msg.rs + +use schemars::JsonSchema; +use serde::{Deserialize, Serialize}; + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)] +pub struct InstantiateMsg { + pub count: i32, +} + +``` + +#### Contract Logic + +In `contract.rs`, you will define your first entry-point, `instantiate()`, or where the contract is instantiated and passed its `InstantiateMsg`. Extract the count from the message and set up your initial state where: + +* `count` is assigned the count from the message +* `owner` is assigned to the sender of the `MsgInstantiateContract` + +```c +// src/contract.rs +#[cfg_attr(not(feature = "library"), entry_point)] +pub fn instantiate( + deps: DepsMut, + _env: Env, + info: MessageInfo, + msg: InstantiateMsg, +) -> Result { + let state = State { + count: msg.count, + owner: info.sender.clone(), + }; + set_contract_version(deps.storage, CONTRACT_NAME, CONTRACT_VERSION)?; + STATE.save(deps.storage, &state)?; + + Ok(Response::new() + .add_attribute("method", "instantiate") + .add_attribute("owner", info.sender) + .add_attribute("count", msg.count.to_string())) +} +``` + +### ExecuteMsg + +{% hint style="info" %} + You can learn more about CosmWasm [ExecuteMsg on their documentation](https://github.com/CosmWasm/docs/blob/archive/tutorials/simple-option/develop.md#executemsg-executemsg) +{% endhint %} + +The `ExecuteMsg` is a JSON message passed to the `execute()` function through a `MsgExecuteContract`. Unlike the `InstantiateMsg`, the `ExecuteMsg` can exist as several different types of messages to account for the different types of functions that a smart contract can expose to a user. The [`execute()` function](https://github.com/InjectiveLabs/cw-counter/blob/ea3b781447a87f052e4b8308d5c73a30481ed61f/src/contract.rs#L35) demultiplexes these different types of messages to its appropriate message handler logic. + +We have [two ExecuteMsg](https://github.com/InjectiveLabs/cw-counter/blob/59b9fed82864103eb704a58d20ddb4bf94c69787/src/msg.rs#L9): `Increment` and `Reset`. + +* `Increment` has no input parameter and increases the value of count by 1. +* `Reset` takes a 32-bit integer as a parameter and resets the value of `count` to the input parameter. + +#### Example + +**Increment** + +Any user can increment the current count by 1. + +```json +{ + "increment": {} +} +``` + +**Reset** + +Only the owner can reset the count to a specific number. See Logic below for the implementation details. + +```json +{ + "reset": { + "count": 5 + } +} +``` + +#### Message Definition + +For `ExecuteMsg`, an `enum` can be used to multiplex over the different types of messages that your contract can understand. The `serde` attribute rewrites your attribute keys in snake case and lower case, so you'll have `increment` and `reset` instead of `Increment` and `Reset` when serializing and deserializing across JSON. + +```c +// src/msg.rs + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)] +#[serde(rename_all = "snake_case")] +pub enum ExecuteMsg { + Increment {}, + Reset { count: i32 }, +} +``` + +#### Logic + +```c +// src/contract.rs + +#[cfg_attr(not(feature = "library"), entry_point)] +pub fn execute( + deps: DepsMut, + _env: Env, + info: MessageInfo, + msg: ExecuteMsg, +) -> Result { + match msg { + ExecuteMsg::Increment {} => try_increment(deps), + ExecuteMsg::Reset { count } => try_reset(deps, info, count), + } +} +``` + +This is your `execute()` method, which uses Rust's pattern matching to route the received `ExecuteMsg` to the appropriate handling logic, either dispatching a `try_increment()` or a `try_reset()` call depending on the message received. + +```c +pub fn try_increment(deps: DepsMut) -> Result { + STATE.update(deps.storage, |mut state| -> Result<_, ContractError> { + state.count += 1; + Ok(state) + })?; + + Ok(Response::new().add_attribute("method", "try_increment")) +} +``` + +First, it acquires a mutable reference to the storage to update the item located at key `state`. It then updates the state's count by returning an `Ok` result with the new state. Finally, it terminates the contract's execution with an acknowledgement of success by returning an `Ok` result with the `Response`. + +```c +// src/contract.rs + +pub fn try_reset(deps: DepsMut, info: MessageInfo, count: i32) -> Result { + STATE.update(deps.storage, |mut state| -> Result<_, ContractError> { + if info.sender != state.owner { + return Err(ContractError::Unauthorized {}); + } + state.count = count; + Ok(state) + })?; + Ok(Response::new().add_attribute("method", "reset")) +} +``` + +The logic for reset is very similar to increment—except this time, it first checks that the message sender is permitted to invoke the reset function (in this case, it must be the contract owner). + +### QueryMsg + +{% hint style="info" %} +You can learn more about CosmWasm [QueryMsg in their documentation](https://docs.cosmwasm.com/docs/smart-contracts/query) +{% endhint %} + +The `GetCount` [query message](https://github.com/InjectiveLabs/cw-counter/blob/59b9fed82864103eb704a58d20ddb4bf94c69787/src/msg.rs#L16) has no parameters and returns the `count` value. + +See the implementation details in Logic below. + +#### Example + +The template contract only supports one type of `QueryMsg`: + +**GetCount** + +The request: + +```json +{ + "get_count": {} +} +``` + +Which should return: + +```json +{ + "count": 5 +} +``` + +#### Message Definition + +To support data queries in the contract, you'll have to define both a `QueryMsg` format (which represents requests), as well as provide the structure of the query's output—`CountResponse` in this case. You must do this because `query()` will send information back to the user through structured JSON, so you must make the shape of your response known. See Generating JSON Schema for more info. + +Add the following to your `src/msg.rs`: + +```c +// src/msg.rs +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)] +#[serde(rename_all = "snake_case")] +pub enum QueryMsg { + // GetCount returns the current count as a json-encoded number + GetCount {}, +} + +// Define a custom struct for each query response +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)] +pub struct CountResponse { + pub count: i32, +} +``` + +#### Logic + +The logic for `query()` is similar to that of `execute()`; however, since `query()` is called without the end-user making a transaction, the `env` argument is omitted as no information is necessary. + +```c +// src/contract.rs + +#[cfg_attr(not(feature = "library"), entry_point)] +pub fn query(deps: Deps, _env: Env, msg: QueryMsg) -> StdResult { + match msg { + QueryMsg::GetCount {} => to_binary(&query_count(deps)?), + } +} + +fn query_count(deps: Deps) -> StdResult { + let state = STATE.load(deps.storage)?; + Ok(CountResponse { count: state.count }) +} +``` + +### Unit test + +Unit tests should be run as the first line of assurance before deploying the code on chain. They are quick to execute and can provide helpful backtraces on failures with the `RUST_BACKTRACE=1` flag: + +```c +cargo unit-test // run this with RUST_BACKTRACE=1 for helpful backtraces +``` + +You can find the [unit test implementation](https://github.com/InjectiveLabs/cw-counter/blob/59b9fed82864103eb704a58d20ddb4bf94c69787/src/contract.rs#L88) at `src/contract.rs` + +### Building the Contract + +Now that we understand and have tested the contract, we can run the following command to build the contract. This will check for any preliminary errors before we optimize the contract in the next step. + +```bash +cargo wasm +``` + +Next, we must optimize the contract in order to ready the code for upload to the chain. + +{% hint style="info" %} +Read more details on [preparing the Wasm bytecode for production](https://github.com/InjectiveLabs/cw-counter/blob/59b9fed82864103eb704a58d20ddb4bf94c69787/Developing.md#preparing-the-wasm-bytecode-for-production) +{% endhint %} + +CosmWasm has [rust-optimizer](https://github.com/CosmWasm/rust-optimizer), an optimizing compiler that can produce a small and consistent build output. The easiest method to use the tool is to use a published Docker image—check [here](https://hub.docker.com/r/cosmwasm/rust-optimizer/tags) for the latest x86 version, or [here](https://hub.docker.com/r/cosmwasm/rust-optimizer-arm64/tags) for the latest ARM version. With Docker running, run the following command to mount the contract code to `/code` and optimize the output (you can use an absolute path instead of `$(pwd)` if you don't want to `cd` to the directory first): + +```bash +docker run --rm -v "$(pwd)":/code \ + --mount type=volume,source="$(basename "$(pwd)")_cache",target=/code/target \ + --mount type=volume,source=registry_cache,target=/usr/local/cargo/registry \ + cosmwasm/rust-optimizer:0.12.12 +``` + +If you're on an ARM64 machine, you should use a docker image built for ARM64: + +```bash +docker run --rm -v "$(pwd)":/code \ + --mount type=volume,source="$(basename "$(pwd)")_cache",target=/code/target \ + --mount type=volume,source=registry_cache,target=/usr/local/cargo/registry \ + cosmwasm/rust-optimizer-arm64:0.12.12 +``` + +{% hint style="info" %} +CosmWasm does not recommend using the ARM64 version of the compiler because it produces different Wasm artifacts from the Intel/AMD version. For release/production, only contracts built with Intel/AMD optimizers are recommended for use. See [here](https://github.com/CosmWasm/rust-optimizer#notice) for the note from CosmWasm. +{% endhint %} + +{% hint style="warning" %} +You may receive an `` Unable to update registry `crates-io` `` error while running the command. Try adding the following lines to the `Cargo.toml` file located within the contract directory and running the command again: + +```toml +[net] +git-fetch-with-cli = true +``` + +See [The Cargo Book](https://doc.rust-lang.org/cargo/reference/config.html#netgit-fetch-with-cli) for more information. +{% endhint %} + +This produces an `artifacts` directory with a `PROJECT_NAME.wasm`, as well as `checksums.txt`, containing the Sha256 hash of the Wasm file. The Wasm file is compiled deterministically (anyone else running the same docker on the same git commit should get the identical file with the same Sha256 hash). + +### Install `injectived` + +`injectived` is the command-line interface and daemon that connects to Injective and enables you to interact with the Injective blockchain. + +If you want to interact with your Smart Contract locally using CLI, you have to have `injectived` installed. To do so, you can follow the installation guidelines here [#install-injectived](your-first-smart-contract.md#install-injectived "mention"). + +Alternatively, a Docker image has been prepared to make this tutorial easier. + +{% hint style="info" %} +If you install `injectived` from the binary, ignore the docker commands. On the [public endpoints section](../../nodes/public-endpoints.md) you can find the right --node info to interact with Mainnet and Testnet. +{% endhint %} + +Executing this command will make the docker container execute indefinitely. + +```bash +docker run --name="injective-core-staging" \ +-v=/artifacts:/var/artifacts \ +--entrypoint=sh public.ecr.aws/l9h3g6c6/injective-core:staging \ +-c "tail -F anything" +``` + +Note: `directory_to_which_you_cloned_cw-template` must be an absolute path. The absolute path can easily be found by running the `pwd` command from inside the CosmWasm/cw-counter directory. + +Open a new terminal and go into the Docker container to initialize the chain: + +```bash +docker exec -it injective-core-staging sh +``` + +Let’s start by adding `jq` dependency, which will be needed later on: + +```bash +# inside the "injective-core-staging" container +apk add jq +``` + +Now we can proceed to local chain initialization and add a test user called `testuser` (when prompted use 12345678 as password). We will only use the test user to generate a new private key that will later on be used to sign messages on the testnet: + +```sh +# inside the "injective-core-staging" container +injectived keys add testuser +``` + +**OUTPUT** + +``` +- name: testuser + type: local + address: inj1exjcp8pkvzqzsnwkzte87fmzhfftr99kd36jat + pubkey: '{"@type":"/injective.crypto.v1beta1.ethsecp256k1.PubKey","key":"Aqi010PsKkFe9KwA45ajvrr53vfPy+5vgc3aHWWGdW6X"}' + mnemonic: "" + +**Important** write this mnemonic phrase in a safe place. +It is the only way to recover your account if you ever forget your password. + +wash wise evil buffalo fiction quantum planet dial grape slam title salt dry and some more words that should be here +``` + +Take a moment to write down the address or export it as an env variable, as you will need it to proceed: + +```bash +# inside the "injective-core-staging" container +export INJ_ADDRESS= +``` + +{% hint style="info" %} +You can request testnet funds for your recently generated test address using the [Injective test faucet](https://faucet.injective.network/). +{% endhint %} + +Now you have successfully created `testuser` an Injective Testnet. It should also hold some funds after requesting `testnet` funds from the faucet. + +To confirm, search for your address on the [Injective Testnet Explorer](https://testnet.explorer.injective.network/) to check your balance. + +Alternatively, you can verify it by [querying the bank balance](https://sentry.testnet.lcd.injective.network/swagger/#/Query/AllBalances) or with curl: + +```bash +curl -X GET "https://sentry.testnet.lcd.injective.network/cosmos/bank/v1beta1/balances/" -H "accept: application/json" +``` + +## Upload the Wasm Contract + +Now it's time to upload the `.wasm` file that you compiled in the previous steps to the Injective Testnet. Please note that the procedure for mainnet is different and [requires a governance proposal.](guides/mainnet-deployment.md) + +```bash +# inside the "injective-core-staging" container, or from the contract directory if running injectived locally +yes 12345678 | injectived tx wasm store artifacts/my_first_contract.wasm \ +--from=$(echo $INJ_ADDRESS) \ +--chain-id="injective-888" \ +--yes --fees=1000000000000000inj --gas=2000000 \ +--node=https://sentry.testnet.tm.injective.network:443 +``` + +**Output:** + +```bash +code: 0 +codespace: "" +data: "" +events: [] +gas_used: "0" +gas_wanted: "0" +height: "0" +info: "" +logs: [] +raw_log: '[]' +timestamp: "" +tx: null +txhash: 912458AA8E0D50A479C8CF0DD26196C49A65FCFBEEB67DF8A2EA22317B130E2C +``` + +Check your address on the [Injective Testnet Explorer](https://testnet.explorer.injective.network), and look for a transaction with the `txhash` returned from storing the code on chain. The transaction type should be `MsgStoreCode`. + +You can see all stored codes on Injective Testnet under [Code](https://testnet.explorer.injective.network/codes/). + +{% hint style="info" %} +There are different ways to find the code that you just stored: + +* Look for the TxHash on the Injective Explorer [codes list](https://testnet.explorer.injective.network/codes/); it is most likely the most recent. +* Use `injectived` to query transaction info. +{% endhint %} + +To query the transaction use the `txhash` and verify the contract was deployed. + +```sh +injectived query tx 912458AA8E0D50A479C8CF0DD26196C49A65FCFBEEB67DF8A2EA22317B130E2C --node=https://sentry.testnet.tm.injective.network:443 +``` + +Inspecting the output more closely, we can see the `code_id` of `290` for the uploaded contract: + +```bash +- events: + - attributes: + - key: access_config + value: '{"permission":"Everybody","address":""}' + - key: checksum + value: '"+OdoniOsDJ1T9EqP2YxobCCwFAqNdtYA4sVGv7undY0="' + - key: code_id + value: '"290"' + - key: creator + value: '"inj1h3gepa4tszh66ee67he53jzmprsqc2l9npq3ty"' + type: cosmwasm.wasm.v1.EventCodeStored + - attributes: + - key: action + value: /cosmwasm.wasm.v1.MsgStoreCode + - key: module + value: wasm + - key: sender + value: inj1h3gepa4tszh66ee67he53jzmprsqc2l9npq3ty + type: message + - attributes: + - key: code_id + value: "290" + type: store_code +``` + +Let's export your `code_id` as an ENV variable—we'll need it to instantiate the contract. You can skip this step and manually add it later, but keep note of the ID. + +```bash +export CODE_ID= +``` + +## Generating JSON Schema + +While the Wasm calls `instantiate`, `execute`, and `query` accept JSON, this is not enough information to use them. We need to expose the schema for the expected messages to the clients. + +In order to make use of JSON-schema auto-generation, you should register each of the data structures that you need schemas for. + +```c +// examples/schema.rs + +use std::env::current_dir; +use std::fs::create_dir_all; + +use cosmwasm_schema::{export_schema, remove_schemas, schema_for}; + +use my_first_contract::msg::{CountResponse, HandleMsg, InitMsg, QueryMsg}; +use my_first_contract::state::State; + +fn main() { + let mut out_dir = current_dir().unwrap(); + out_dir.push("schema"); + create_dir_all(&out_dir).unwrap(); + remove_schemas(&out_dir).unwrap(); + + export_schema(&schema_for!(InstantiateMsg), &out_dir); + export_schema(&schema_for!(ExecuteMsg), &out_dir); + export_schema(&schema_for!(QueryMsg), &out_dir); + export_schema(&schema_for!(State), &out_dir); + export_schema(&schema_for!(CountResponse), &out_dir); +} +``` + +The schemas can then be generated with + +```bash +cargo schema +``` + +which will output 5 files in `./schema`, corresponding to the 3 message types the contract accepts, the query response message, and the internal `State`. + +These files are in standard JSON Schema format, which should be usable by various client side tools, either to auto-generate codecs, or just to validate incoming JSON with respect to the defined schema. + +Take a minute to generate the schema ([take a look at it here](https://github.com/InjectiveLabs/cw-counter/blob/master/schema/cw-counter.json)) and get familiar with it, as you will need to it for the next steps. + +## Instantiate the Contract + +Now that we have the code on Injective, it is time to instantiate the contract to interact with it. + +{% hint style="info" %} +Reminder On CosmWasm, the upload of a contract's code and the instantiation of a contract are regarded as separate events +{% endhint %} + +To instantiate the contract, run the following CLI command with the code\_id you got in the previous step, along with the [JSON encoded initialization arguments](https://github.com/InjectiveLabs/cw-counter/blob/ea3b781447a87f052e4b8308d5c73a30481ed61f/schema/cw-counter.json#L7) and a label (a human-readable name for this contract in lists). + +```bash +INIT='{"count":99}' +yes 12345678 | injectived tx wasm instantiate $CODE_ID $INIT \ +--label="CounterTestInstance" \ +--from=$(echo $INJ_ADDRESS) \ +--chain-id="injective-888" \ +--yes --fees=1000000000000000inj \ +--gas=2000000 \ +--no-admin \ +--node=https://sentry.testnet.tm.injective.network:443 +``` + +**Output:** + +```bash +code: 0 +codespace: "" +data: "" +events: [] +gas_used: "0" +gas_wanted: "0" +height: "0" +info: "" +logs: [] +raw_log: '[]' +timestamp: "" +tx: null +txhash: 01804F525FE336A5502E3C84C7AE00269C7E0B3DC9AA1AB0DDE3BA62CF93BE1D +``` + +{% hint style="info" %} +You can find the contract address and metadata by: + +* Looking on the [Testnet Explorer](https://testnet.explorer.injective.network/contracts/) +* Querying the [ContractsByCode](https://k8s.testnet.lcd.injective.network/swagger/#/Query/ContractsByCode) and [ContractInfo](https://k8s.testnet.lcd.injective.network/swagger/#/Query/ContractInfo) APIs +* Querying through the CLI + +```bash +injectived query wasm contract inj1ady3s7whq30l4fx8sj3x6muv5mx4dfdlcpv8n7 --node=https://sentry.testnet.tm.injective.network:443 +``` +{% endhint %} + +### Querying the Contract + +As we know from earlier, the only QueryMsg we have is `get_count`. + +```bash +GET_COUNT_QUERY='{"get_count":{}}' +injectived query wasm contract-state smart inj1ady3s7whq30l4fx8sj3x6muv5mx4dfdlcpv8n7 "$GET_COUNT_QUERY" \ +--node=https://sentry.testnet.tm.injective.network:443 \ +--output json +``` + +**Output:** + +```bash +{"data":{"count":99}} +``` + +We see that `count` is 99, as set when we instantiated the contract. + +{% hint style="info" %} +If you query the same contract, you may receive a different response as others may have interacted with the contract and incremented or reset the count. +{% endhint %} + +### Execute the Contract + +Let's now interact with the contract by incrementing the counter. + +```bash +INCREMENT='{"increment":{}}' +yes 12345678 | injectived tx wasm execute inj1ady3s7whq30l4fx8sj3x6muv5mx4dfdlcpv8n7 "$INCREMENT" --from=$(echo $INJ_ADDRESS) \ +--chain-id="injective-888" \ +--yes --fees=1000000000000000inj --gas=2000000 \ +--node=https://sentry.testnet.tm.injective.network:443 \ +--output json +``` + +If we query the contract for the count, we see: + +```bash +{"data":{"count":100}} +``` + +{% hint style="info" %} +**yes 12345678 |** automatically pipes (passes) the passphrase to the input of **injectived tx wasm execute** so you do not need to enter it manually. +{% endhint %} + +To reset the counter: + +```bash +RESET='{"reset":{"count":999}}' +yes 12345678 | injectived tx wasm execute inj1ady3s7whq30l4fx8sj3x6muv5mx4dfdlcpv8n7 "$RESET" \ +--from=$(echo $INJ_ADDRESS) \ +--chain-id="injective-888" \ +--yes --fees=1000000000000000inj --gas=2000000 \ +--node=https://sentry.testnet.tm.injective.network:443 \ +--output json +``` + +Now, if we query the contract again, we see the count has been reset to the provided value: + +```bash +{"data":{"count":999}} +``` + +## Cosmos Messages + +In addition to defining custom smart contract logic, CosmWasm also allows contracts to interact with the underlying Cosmos SDK functionalities. One common use case is to send tokens from the contract to a specified address using the Cosmos SDK's bank module. + +### Example: Bank Send + +The `BankMsg::Send` message allows the contract to transfer tokens to another address. This can be useful in various scenarios, such as distributing rewards or returning funds to users. + +:::note If you want to send funds and execute a function on another contract at the same time, don't use BankMsg::Send. Instead, use WasmMsg::Execute and set the respective funds field. ::: + +### Constructing the Message + +You can construct a `BankMsg::Send` message within your contract's `execute` function. This message requires specifying the recipient address and the amount to send. Here's an example of how to construct this message: + +```rust +use cosmwasm_std::{BankMsg, Coin, Response, MessageInfo}; + +pub fn try_send( + info: MessageInfo, + recipient_address: String, + amount: Vec, +) -> Result { + let send_message = BankMsg::Send { + to_address: recipient_address, + amount, + }; + + let response = Response::new().add_message(send_message); + Ok(response) +} +``` + +### Usage in a Smart Contract + +In your contract, you can add a new variant to your ExecuteMsg enum to handle this bank send functionality. For example: + +```rust +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)] +#[serde(rename_all = "snake_case")] +pub enum ExecuteMsg { + // ... other messages ... + SendTokens { recipient: String, amount: Vec }, +} +``` + +Then, in the `execute` function, you can add a case to handle this message: + +```rust +#[cfg_attr(not(feature = "library"), entry_point)] +pub fn execute( + deps: DepsMut, + env: Env, + info: MessageInfo, + msg: ExecuteMsg, +) -> Result { + match msg { + // ... other message handling ... + ExecuteMsg::SendTokens { recipient, amount } => try_send(info, recipient, amount), + } +} +``` + +## Testing + +As with other smart contract functions, you should add unit tests to ensure your bank send functionality works as expected. This includes testing different scenarios, such as sending various token amounts and handling errors correctly. + +You may use [test-tube](https://github.com/InjectiveLabs/test-tube) for running integration tests that include a local Injective chain. + +Congratulations! You've created and interacted with your first Injective smart contract and now know how to get started with CosmWasm development on Injective. Continue to Creating a Frontend for Your Contract for a guide on creating a web UI. diff --git a/.gitbook/developers/modules/core/genutils.md b/.gitbook/developers/modules/core/genutils.md new file mode 100644 index 00000000..ccf79c83 --- /dev/null +++ b/.gitbook/developers/modules/core/genutils.md @@ -0,0 +1,2 @@ +# Genutils + diff --git a/.gitbook/toolkits/injectived/install-injectived.md b/.gitbook/toolkits/injectived/install-injectived.md index 5ee38686..dd4f40fe 100644 --- a/.gitbook/toolkits/injectived/install-injectived.md +++ b/.gitbook/toolkits/injectived/install-injectived.md @@ -1,2 +1,46 @@ # Install injectived +The easiest way to install `injectived` and Injective core is by downloading a pre-built binary for your operating system. Download the most recent Injective binaries from [the official releases repo](https://github.com/InjectiveLabs/injective-chain-releases). + +```bash +wget wget https://github.com/InjectiveLabs/injective-chain-releases/releases/download/v1.13.2-1723753267/linux-amd64.zip +``` + +This zip file will contain three binaries and a virtual machine: + +* **`injectived`** - Injective daemon +* **`peggo`** - Injective ERC-20 bridge relayer daemon +* **`injective-exchange`** - the Injective Exchange daemon +* **`libwasmvm.x86_64.so`** - the wasm virtual machine which is needed to execute smart contracts. + +Unzip and add `injectived`, to your `/usr/bin`. Also add `libwasmvm.x86_64.so` to user library path `/usr/lib`. + +Note that you do not need `injective-exchange` and `peggo` for deploying and instantiating smart contracts. + +```bash +unzip linux-amd64.zip +sudo mv injectived /usr/bin +sudo mv libwasmvm.x86_64.so /usr/lib +``` + +Confirm your version matches the output below (your output may be slightly different if a newer version is available): + +```bash +injectived version +Version v1.10.0 (bf0b93dca) +Compiled at 20230317-2113 using Go go1.19.4 (amd64) +``` + +## Start injectived + +Once you have `injectived` installed, you can start an instance of the chain by downloading this initialization script and starting the binary + +```bash +wget https://raw.githubusercontent.com/InjectiveLabs/injective-chain-releases/master/scripts/setup.sh +``` + +Once the `script.sh` is downloaded, run it and start the chain + +```bash +./setup.sh && injectived start +``` diff --git a/.gitbook/toolkits/injectived/using-injectived.md b/.gitbook/toolkits/injectived/using-injectived.md index 105e2c7a..f3b0ea19 100644 --- a/.gitbook/toolkits/injectived/using-injectived.md +++ b/.gitbook/toolkits/injectived/using-injectived.md @@ -1,2 +1,5 @@ # Using injectived +Within this document we'll share some examples on how to use `injectived` to query data from the chain as well as sending transactions to the chain. + +## Testnet From 353ef414fc9a631c535f12f63afdea073c0acd83 Mon Sep 17 00:00:00 2001 From: Bojan Angjelkoski Date: Mon, 21 Oct 2024 17:08:47 +0000 Subject: [PATCH 05/17] GITBOOK-5: No subject --- .gitbook/SUMMARY.md | 4 ++ .../developers/exchange-developers/README.md | 11 ++++ .../exchange-developers/provider-oracle.md | 21 +++++++ .gitbook/developers/guides/README.md | 2 + .../developers/guides/convert-addresses.md | 55 +++++++++++++++++++ .../developers/guides/testnet-proposals.md | 23 ++++++++ 6 files changed, 116 insertions(+) create mode 100644 .gitbook/developers/guides/README.md create mode 100644 .gitbook/developers/guides/convert-addresses.md create mode 100644 .gitbook/developers/guides/testnet-proposals.md diff --git a/.gitbook/SUMMARY.md b/.gitbook/SUMMARY.md index e8044ecb..da1c02c6 100644 --- a/.gitbook/SUMMARY.md +++ b/.gitbook/SUMMARY.md @@ -49,6 +49,7 @@ ## Developers * [Exchange Developers](developers/exchange-developers/README.md) + * [Build a DEX](https://docs.ts.injective.network/building-dapps/dapps-examples/dex) * [Provider Oracle](developers/exchange-developers/provider-oracle.md) * [Cosmwasm Developers](developers/cosmwasm-developers/README.md) * [Your First Smart Contract](developers/cosmwasm-developers/your-first-smart-contract.md) @@ -60,6 +61,9 @@ * [Creating UIs](developers/cosmwasm-developers/guides/creating-uis.md) * [CW20 Adapter](developers/cosmwasm-developers/page-1.md) * [Injective Test Tube](developers/cosmwasm-developers/injective-test-tube.md) +* [Guides](developers/guides/README.md) + * [Testnet Proposals](developers/guides/testnet-proposals.md) + * [Convert addresses](developers/guides/convert-addresses.md) * [Modules](developers/modules/README.md) * [Injective](developers/modules/injective/README.md) * [Auction](developers/modules/injective/auction/README.md) diff --git a/.gitbook/developers/exchange-developers/README.md b/.gitbook/developers/exchange-developers/README.md index ea2e89d0..d8fc0728 100644 --- a/.gitbook/developers/exchange-developers/README.md +++ b/.gitbook/developers/exchange-developers/README.md @@ -1,2 +1,13 @@ # Exchange Developers +Injective marks the forefront of exchange-focused layer-1 blockchains offering decentralized perpetual swaps, futures, and spot trading. It fully taps into the possibilities of decentralized derivatives and borderless DeFi. Every component is designed to embody complete trustlessness, resistance to censorship, public verifiability, and resilience against front-running. + +Injective enables traders to create and trade arbitrary spot and derivatives markets. Injective also enables on-chain limit orderbook management, on-chain trade execution, on-chain order matching, on-chain transaction settlement, and on-chain trading incentive distribution through the logic codified by the Injective Chain's [Exchange Module](https://docs.injective.network/develop/modules/injective/exchange/). + +## Build an Orderbook DEX on Injective + +As an incentive mechanism to encourage exchanges to build on Injective and source trading activity, exchanges that originate orders into the shared orderbook of Injective's exchange protocol ([read more](https://docs.injective.network/develop/modules/injective/exchange/)) are rewarded with $$β=40%β=40%$$ of the trading fee from orders that they source. The exchange protocol implements a global minimum trading fee of $$rm=0.1%rm​=0.1%$$ for makers and $$rt=0.2%rt​=0.2%$$ for takers. + +The goal of Injective's incentive mechanism is to allow exchanges competing amongst each other to provide a better user experience and to better serve users, broadening access to DeFi for users all around the world. + +An exchange can easily set up a client (such as a UI on web or mobile) and an API provider. diff --git a/.gitbook/developers/exchange-developers/provider-oracle.md b/.gitbook/developers/exchange-developers/provider-oracle.md index 5bffd48b..3a1b5f69 100644 --- a/.gitbook/developers/exchange-developers/provider-oracle.md +++ b/.gitbook/developers/exchange-developers/provider-oracle.md @@ -1,2 +1,23 @@ # Provider Oracle +{% hint style="info" %} +Prerequisite reading [Injective Oracle Module](../modules/injective/oracle/) +{% endhint %} + +The goal of this section is to provide users a guide on how to launch and maintain an oracle provider on Injective. These oracles can be used for various purposes, like Perpetual Markets, Expiry Futures Markets, [Binary Options markets](https://docs.injective.network/develop/modules/injective/exchange/binary\_options\_markets), etc. + +First, what is an oracle provider? It's an oracle **TYPE** that allows external parties to relay price feed to the Injective chain. These external parties are called providers. Each external party is identified by a provider and all of the price feeds provided on the chain are stored under that particular provider. This allows custom price feed to be created on Injective which can power creative and advanced markets being launched on Injective. + +The first thing developers need to do is register their provider under the Oracle Provider type. You can do that by submitting a `GrantProviderPrivilegeProposal` governance proposal. Once the proposal passes, your provider will be registered and you'll be able to relay price feeds. You can do it in a CLI environment using `injectived` (`grant-provider-privilege-proposal [providerName] [relayers] --title [title] --description [desc] [flags]`) or using any of our SDKs to create the message and broadcast it to the chain. + +{% hint style="info" %} +You can see an example on how to submit this proposal in the Oracle Module Proposals Section +{% endhint %} + + + +_Note: the `relayers` of the `GrantProviderPrivilegeProposal` are addresses which will be whitelisted to submit the price feeds to Injective._ + +Once the proposal passes, the `relayers` can use the `MsgRelayProviderPrices` to submit prices for a base/quote pair within their provider namespace of the Oracle Provider Type oracle on Injective. You can do it in a CLI environment using `injectived` (`relay-provider-prices [providerName] [symbol:prices] [flags]`) or using any of our SDKs to create the message and broadcast it to the chain. + +Finally, you can use these price feeds to create your Derivative Markets. diff --git a/.gitbook/developers/guides/README.md b/.gitbook/developers/guides/README.md new file mode 100644 index 00000000..b955b433 --- /dev/null +++ b/.gitbook/developers/guides/README.md @@ -0,0 +1,2 @@ +# Guides + diff --git a/.gitbook/developers/guides/convert-addresses.md b/.gitbook/developers/guides/convert-addresses.md new file mode 100644 index 00000000..27e08352 --- /dev/null +++ b/.gitbook/developers/guides/convert-addresses.md @@ -0,0 +1,55 @@ +# Convert addresses + +Within this document, we'll outline some examples on how to convert addresses between different formats and derivation paths. + +### Convert Hex <> Bech32 address + +As we've mentioned in the [wallet](../../getting-started/wallet/ "mention")section, Injective addresses are compatible with Ethereum addresses. You can convert between the two formats easily. + +### Using TypeScript + +You can easily convert between an Injective address and Ethereum address by using our utility functions in the `@injectivelabs/sdk-ts` package: + +```typescript +import { getInjectiveAddress, getEthereumAddress } from '@injectivelabs/sdk-ts' + +const injectiveAddress = 'inj1...' +const ethereumAddress = '0x..' + +console.log('Injective address from Ethereum address => ', getInjectiveAddress(ethereumAddress)) +console.log('Ethereum address from Injective address => ', getEthereumAddress(injectiveAddress)) +``` + +### **Convert Cosmos address to Injective Address** + +As Injective has a different derivation path than the default Cosmos one, you need the `publicKey` of the account to convert a Cosmos `publicAddress` to Injective one. + +### Using TypeScript + +```typescript +import { config } from "dotenv"; +import { ChainRestAuthApi, PublicKey } from "@injectivelabs/sdk-ts"; + +config(); + +(async () => { + const chainApi = new ChainRestAuthApi( + "https://rest.cosmos.directory/cosmoshub" + ); + + const cosmosAddress = "cosmos1.."; + const account = await chainApi.fetchCosmosAccount(cosmosAddress); + + if (!account.pub_key?.key) { + console.log("No public key found"); + return; + } + + console.log( + "injectiveAddress", + PublicKey.fromBase64(account.pub_key.key || "") + .toAddress() + .toBech32() + ); +})(); +``` diff --git a/.gitbook/developers/guides/testnet-proposals.md b/.gitbook/developers/guides/testnet-proposals.md new file mode 100644 index 00000000..5c20ad5e --- /dev/null +++ b/.gitbook/developers/guides/testnet-proposals.md @@ -0,0 +1,23 @@ +# Testnet Proposals + +Let's say that you want to submit a proposal on `testnet`. Because there is a short period of voting time for the proposals, we recommend lowering the deposit on the proposal to not make the proposal go into voting stage directly. Basically, it should be slightly less than `min_deposit` value. + +Once you submit the proposal, you should teach out to the team: + +1. Join the [Injective Discord server](https://discord.gg/injective) and find the relevant channel. +2. Join the [Injective Developer Telegram channel](https://t.me/+8Y\_0HOFLhnRlZDU9). + +Here is an example for the `GrantProviderPrivilegeProposal` + +```bash +injectived tx oracle grant-provider-privilege-proposal YOUR_PROVIDER \ + YOUR_ADDRESS_HERE \ + --title="TITLE OF THE PROPOSAL" \ + --description="Registering PROVIDER as an oracle provider" \ + --chain-id=injective-888 \ + --from=local_key \ + --node=https://testnet.sentry.tm.injective.network:443 \ + --gas-prices=160000000inj \ + --gas=20000000 \ + --deposit="40000000000000000000inj" <-- use this amount +``` From 747eb99f9a67e56702aab4d18f89d07eba286139 Mon Sep 17 00:00:00 2001 From: Bojan Angjelkoski Date: Mon, 21 Oct 2024 17:26:11 +0000 Subject: [PATCH 06/17] GITBOOK-6: No subject --- .gitbook/README.md | 2 +- .gitbook/SUMMARY.md | 3 +-- .gitbook/developers/exchange-developers/README.md | 4 +++- .gitbook/developers/guides/convert-addresses.md | 4 ++++ .gitbook/guides/launch-a-token.md | 2 +- .gitbook/traders/traders.md | 2 -- 6 files changed, 10 insertions(+), 7 deletions(-) delete mode 100644 .gitbook/traders/traders.md diff --git a/.gitbook/README.md b/.gitbook/README.md index 9942c66c..443def34 100644 --- a/.gitbook/README.md +++ b/.gitbook/README.md @@ -24,5 +24,5 @@ Start building on Injective[\ ](https://docs.unichain.org/docs/getting-started/setting-up-a-wallet) --------------------------------------------------------------------- -
      Getting Startedtestgetting-started
      Are you a developer?Broken link
      Are you a node operator or validator?
      Are you a trader?
      +
      Getting Startedtestgetting-started
      Are you a developer?Broken link
      Are you a node operator or validator?
      Are you a trader?
      diff --git a/.gitbook/SUMMARY.md b/.gitbook/SUMMARY.md index da1c02c6..12f0f4cf 100644 --- a/.gitbook/SUMMARY.md +++ b/.gitbook/SUMMARY.md @@ -45,6 +45,7 @@ * [Validators](nodes/validators.md) * [Public Endpoints](nodes/public-endpoints.md) * [Private Nodes](nodes/private-nodes.md) +* [Injective Indexer Setup](https://injective.notion.site/Injective-Exchange-Service-Setup-Guide-7e59980634d54991862300670583d46a) ## Developers @@ -98,7 +99,6 @@ ## Traders -* [Traders](traders/traders.md) * [Documentation](https://docs.trading.injective.network) * [API Reference](https://api.injective.exchange/) @@ -109,7 +109,6 @@ ## Useful Links -* [Injective Indexer Setup](https://injective.notion.site/Injective-Exchange-Service-Setup-Guide-7e59980634d54991862300670583d46a) * [Injective 101](https://injective.notion.site/Injective-d48cbe6cb04141e082ff2c85a73ba67a?pvs=4) * [Injective Hub](https://hub.injective.network) * [Injective Explorer](https://explorer.injective.network) diff --git a/.gitbook/developers/exchange-developers/README.md b/.gitbook/developers/exchange-developers/README.md index d8fc0728..b5c93016 100644 --- a/.gitbook/developers/exchange-developers/README.md +++ b/.gitbook/developers/exchange-developers/README.md @@ -4,10 +4,12 @@ Injective marks the forefront of exchange-focused layer-1 blockchains offering d Injective enables traders to create and trade arbitrary spot and derivatives markets. Injective also enables on-chain limit orderbook management, on-chain trade execution, on-chain order matching, on-chain transaction settlement, and on-chain trading incentive distribution through the logic codified by the Injective Chain's [Exchange Module](https://docs.injective.network/develop/modules/injective/exchange/). -## Build an Orderbook DEX on Injective +### Build an Orderbook DEX on Injective As an incentive mechanism to encourage exchanges to build on Injective and source trading activity, exchanges that originate orders into the shared orderbook of Injective's exchange protocol ([read more](https://docs.injective.network/develop/modules/injective/exchange/)) are rewarded with $$β=40%β=40%$$ of the trading fee from orders that they source. The exchange protocol implements a global minimum trading fee of $$rm=0.1%rm​=0.1%$$ for makers and $$rt=0.2%rt​=0.2%$$ for takers. The goal of Injective's incentive mechanism is to allow exchanges competing amongst each other to provide a better user experience and to better serve users, broadening access to DeFi for users all around the world. An exchange can easily set up a client (such as a UI on web or mobile) and an API provider. + +Head to our TypeScript documentation to [bootstrap your DEX ](https://docs.ts.injective.network/building-dapps/dapps-examples/dex)with few clicks! diff --git a/.gitbook/developers/guides/convert-addresses.md b/.gitbook/developers/guides/convert-addresses.md index 27e08352..59faefa2 100644 --- a/.gitbook/developers/guides/convert-addresses.md +++ b/.gitbook/developers/guides/convert-addresses.md @@ -53,3 +53,7 @@ config(); ); })(); ``` + +{% hint style="info" %} +More examples can be found on the [TypeScript docs](https://docs.ts.injective.network/wallet/wallet-accounts) +{% endhint %} diff --git a/.gitbook/guides/launch-a-token.md b/.gitbook/guides/launch-a-token.md index fc66519a..2ce52ccb 100644 --- a/.gitbook/guides/launch-a-token.md +++ b/.gitbook/guides/launch-a-token.md @@ -35,7 +35,7 @@ You can learn more about Launching a token on the [TypeScript Documentation](htt #### Using Injective CLI {% hint style="info" %} -You have to have `injectived` installed locally before proceeding with this tutorial. You cal learn more about it on the [getting-started](../nodes/getting-started/ "mention")page in the Nodes section. +You have to have `injectived` installed locally before proceeding with this tutorial. You cal learn more about it on the [getting-started](../getting-started/ "mention")page in the Nodes section. {% endhint %} Once you have `injectived` installed and a key added, you can use the CLI to launch your token: diff --git a/.gitbook/traders/traders.md b/.gitbook/traders/traders.md deleted file mode 100644 index 31e29968..00000000 --- a/.gitbook/traders/traders.md +++ /dev/null @@ -1,2 +0,0 @@ -# Traders - From 70c2cf6c14caaaa3dc48ee82a69d97c9e6f65ffd Mon Sep 17 00:00:00 2001 From: Bojan Angjelkoski Date: Mon, 21 Oct 2024 17:35:51 +0000 Subject: [PATCH 07/17] GITBOOK-7: No subject --- .gitbook/SUMMARY.md | 29 +++++++++++++---------------- .gitbook/{other => }/glossary.md | 0 .gitbook/{other => }/references.md | 0 3 files changed, 13 insertions(+), 16 deletions(-) rename .gitbook/{other => }/glossary.md (100%) rename .gitbook/{other => }/references.md (100%) diff --git a/.gitbook/SUMMARY.md b/.gitbook/SUMMARY.md index 12f0f4cf..52d1f408 100644 --- a/.gitbook/SUMMARY.md +++ b/.gitbook/SUMMARY.md @@ -35,17 +35,8 @@ * [Injective CW SDK](https://github.com/InjectiveLabs/cw-injective) * [The Graph](https://docs.substreams.dev/documentation/how-to-guides/injective) * [Cosmosvisor](toolkits/cosmosvisor.md) - -## Nodes - -* [Getting Started](nodes/getting-started/README.md) - * [Running a node](nodes/getting-started/running-a-node/README.md) - * [1. Setting up the keyring](nodes/getting-started/running-a-node/1.-setting-up-the-keyring.md) - * [Interact with a node](nodes/getting-started/interact-with-a-node.md) -* [Validators](nodes/validators.md) -* [Public Endpoints](nodes/public-endpoints.md) -* [Private Nodes](nodes/private-nodes.md) -* [Injective Indexer Setup](https://injective.notion.site/Injective-Exchange-Service-Setup-Guide-7e59980634d54991862300670583d46a) +* [References](references.md) +* [Glossary](glossary.md) ## Developers @@ -97,16 +88,22 @@ * [Genutils](developers/modules/core/genutils.md) * [Documentation](https://docs.ts.injective.network) +## Nodes + +* [Getting Started](nodes/getting-started/README.md) + * [Running a node](nodes/getting-started/running-a-node/README.md) + * [1. Setting up the keyring](nodes/getting-started/running-a-node/1.-setting-up-the-keyring.md) + * [Interact with a node](nodes/getting-started/interact-with-a-node.md) +* [Validators](nodes/validators.md) +* [Public Endpoints](nodes/public-endpoints.md) +* [Private Nodes](nodes/private-nodes.md) +* [Injective Indexer Setup](https://injective.notion.site/Injective-Exchange-Service-Setup-Guide-7e59980634d54991862300670583d46a) + ## Traders * [Documentation](https://docs.trading.injective.network) * [API Reference](https://api.injective.exchange/) -## Other - -* [References](other/references.md) -* [Glossary](other/glossary.md) - ## Useful Links * [Injective 101](https://injective.notion.site/Injective-d48cbe6cb04141e082ff2c85a73ba67a?pvs=4) diff --git a/.gitbook/other/glossary.md b/.gitbook/glossary.md similarity index 100% rename from .gitbook/other/glossary.md rename to .gitbook/glossary.md diff --git a/.gitbook/other/references.md b/.gitbook/references.md similarity index 100% rename from .gitbook/other/references.md rename to .gitbook/references.md From 4f6faf45f676542fd4bc073bfaaa415dc0415d4f Mon Sep 17 00:00:00 2001 From: Bojan Angjelkoski Date: Mon, 21 Oct 2024 21:09:55 +0000 Subject: [PATCH 08/17] GITBOOK-8: No subject --- .gitbook/.gitbook/assets/token-hero.png | Bin 0 -> 130316 bytes .gitbook/.gitbook/assets/txs-hero.png | Bin 0 -> 128331 bytes .gitbook/.gitbook/assets/wallet-hero (1).png | Bin 0 -> 128986 bytes .gitbook/.gitbook/assets/wallet-hero.png | Bin 0 -> 34990 bytes .gitbook/README.md | 6 ++++++ .gitbook/SUMMARY.md | 2 +- .gitbook/getting-started/README.md | 8 ++++++++ .../token-standards/cw20-standard.md | 1 + 8 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 .gitbook/.gitbook/assets/token-hero.png create mode 100644 .gitbook/.gitbook/assets/txs-hero.png create mode 100644 .gitbook/.gitbook/assets/wallet-hero (1).png create mode 100644 .gitbook/.gitbook/assets/wallet-hero.png diff --git a/.gitbook/.gitbook/assets/token-hero.png b/.gitbook/.gitbook/assets/token-hero.png new file mode 100644 index 0000000000000000000000000000000000000000..a41be78239c6abd82160c1095883b070ccde0de3 GIT binary patch literal 130316 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
      ~!u->k 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 literal 0 HcmV?d00001 diff --git a/.gitbook/.gitbook/assets/txs-hero.png b/.gitbook/.gitbook/assets/txs-hero.png new file mode 100644 index 0000000000000000000000000000000000000000..10606904d750978a92d5bd8af307d6a27331d974 GIT binary patch literal 128331 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%0AdvC`71g)VhnjCj8waB@n3LbYSZ+JL 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 o6r*3ieqLw+K`vcuRaZzH9%g>hN3-TcJ`|7LJ5= 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 j!g&NklVzf!;^smd* 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�AD}U`nXH=dz8_!2F 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 BR-QDIk`%Xbbz+ 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 TXEjx#00000NkvXXu0mjf=ybBA literal 0 HcmV?d00001 diff --git a/.gitbook/.gitbook/assets/wallet-hero.png b/.gitbook/.gitbook/assets/wallet-hero.png new file mode 100644 index 0000000000000000000000000000000000000000..2b86359f50efb509f7a29371756ef68492528fd0 GIT binary patch literal 34990 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 + Brief summary about Injective and overview of its countless possibilities that + make it the best choice for onboarding developers. +--- + # About Injective Injective is a lightning-fast, interoperable, layer-one blockchain optimized for building premier Web3 financial applications. Injective provides developers with robust plug-and-play modules such as a fully decentralized orderbook, binary options, real-world asset (RWA) module, and more, allowing developers to build a diverse array of sophisticated applications. diff --git a/.gitbook/SUMMARY.md b/.gitbook/SUMMARY.md index 52d1f408..e4d64c70 100644 --- a/.gitbook/SUMMARY.md +++ b/.gitbook/SUMMARY.md @@ -4,10 +4,10 @@ * [Getting Started](getting-started/README.md) * [Wallet](getting-started/wallet/README.md) * [Create a wallet](getting-started/wallet/create-a-wallet.md) + * [Accounts](getting-started/wallet/accounts.md) * [Staking](getting-started/wallet/staking.md) * [Governance](getting-started/wallet/governance.md) * [Auction](getting-started/wallet/auction.md) - * [Accounts](getting-started/wallet/accounts.md) * [Token Standards](getting-started/token-standards/README.md) * [INJ coin](getting-started/token-standards/inj-coin.md) * [Token Factory](getting-started/token-standards/token-factory.md) diff --git a/.gitbook/getting-started/README.md b/.gitbook/getting-started/README.md index 31dd91e8..a252208c 100644 --- a/.gitbook/getting-started/README.md +++ b/.gitbook/getting-started/README.md @@ -1,2 +1,10 @@ +--- +description: Brief overview of Injective and it's unique features for the general audience. +--- + # Getting Started +### Quickstart Guide to Injective + +
      WalletLearn how to create a wallet on Injective and see the supported wallets on Injective wallet-hero (1).pngcreate-a-wallet.md
      Token StandardsLearn about different Token Standards on Injectivetoken-hero.pngtoken-standards
      TransactionsLearn how to prepare, sign and submit transactions on Injectivetxs-hero.pngtransactions
      + diff --git a/.gitbook/getting-started/token-standards/cw20-standard.md b/.gitbook/getting-started/token-standards/cw20-standard.md index 195c33b7..1aae2ee3 100644 --- a/.gitbook/getting-started/token-standards/cw20-standard.md +++ b/.gitbook/getting-started/token-standards/cw20-standard.md @@ -1,2 +1,3 @@ # CW20 Standard +The CW20 token standard provides a framework for the permissionless creation and management of fungible tokens that more closely resembles the [ERC20 standard](https://ethereum.org/en/developers/docs/standards/tokens/erc-20/). As stated above, the TokenFactory is encouraged due to its native integration with the Cosmos SDK, but should you wish to use the CW20 standard for any reason, you can convert CW20 tokens to TokenFactory tokens and vice versa using the [CW20 Adapter](https://github.com/CosmWasm/cw-plus/blob/main/packages/cw20/README.md). For more information regarding the CW20 standard, see its formal specification [here](https://github.com/CosmWasm/cw-plus/blob/main/packages/cw20/README.md). From 57b3b611be7ba42f0323529d64f9bfa798f5e192 Mon Sep 17 00:00:00 2001 From: Bojan Angjelkoski Date: Mon, 21 Oct 2024 21:36:49 +0000 Subject: [PATCH 09/17] GITBOOK-9: No subject --- .gitbook/.gitbook/assets/dev-hero.png | Bin 0 -> 132112 bytes .gitbook/.gitbook/assets/explorer-hero.png | Bin 0 -> 133101 bytes .gitbook/.gitbook/assets/start-ehro.png | Bin 0 -> 133276 bytes .gitbook/.gitbook/assets/trader-hero.png | Bin 0 -> 129356 bytes .gitbook/.gitbook/assets/user-hero.png | Bin 0 -> 130808 bytes .gitbook/.gitbook/assets/validator-hero.png | Bin 0 -> 129780 bytes .gitbook/README.md | 3 +- .gitbook/SUMMARY.md | 4 +- .gitbook/developers/getting-started.md | 2 + .gitbook/getting-started/README.md | 9 +++- .../getting-started/transactions/README.md | 2 +- .gitbook/getting-started/wallet/README.md | 40 ++++++++++++++++++ .../getting-started/wallet/create-a-wallet.md | 12 +++++- .gitbook/guides/README.md | 6 +++ .gitbook/traders/getting-started.md | 2 + 15 files changed, 74 insertions(+), 6 deletions(-) create mode 100644 .gitbook/.gitbook/assets/dev-hero.png create mode 100644 .gitbook/.gitbook/assets/explorer-hero.png create mode 100644 .gitbook/.gitbook/assets/start-ehro.png create mode 100644 .gitbook/.gitbook/assets/trader-hero.png create mode 100644 .gitbook/.gitbook/assets/user-hero.png create mode 100644 .gitbook/.gitbook/assets/validator-hero.png create mode 100644 .gitbook/developers/getting-started.md create mode 100644 .gitbook/traders/getting-started.md diff --git a/.gitbook/.gitbook/assets/dev-hero.png b/.gitbook/.gitbook/assets/dev-hero.png new file mode 100644 index 0000000000000000000000000000000000000000..248e1caf77eef129d42a6b16d2838420f0b124dc GIT binary patch literal 132112 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 i|ByIW@^rSrFB{@4F(;PFKP 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 literal 0 HcmV?d00001 diff --git a/.gitbook/.gitbook/assets/start-ehro.png b/.gitbook/.gitbook/assets/start-ehro.png new file mode 100644 index 0000000000000000000000000000000000000000..80edcefdc00145b263173f6f9565912557e41a13 GIT binary patch literal 133276 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 Z{~xh2!FMTs9^U`}002ovPDHLkV1n`yo5BD9 literal 0 HcmV?d00001 diff --git a/.gitbook/.gitbook/assets/user-hero.png b/.gitbook/.gitbook/assets/user-hero.png new file mode 100644 index 0000000000000000000000000000000000000000..24da65a5ecb94949167b53f771fa2ccf2bc94220 GIT binary patch literal 130808 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

      4OD_5%(`%?*Q>_kX6jK5esd*56 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 VV@nmdKn4H+002ovPDHLkV1il(@(ut1 literal 0 HcmV?d00001 diff --git a/.gitbook/.gitbook/assets/validator-hero.png b/.gitbook/.gitbook/assets/validator-hero.png new file mode 100644 index 0000000000000000000000000000000000000000..38bdae57acc03f90cfeb3a551294b39f5f19b738 GIT binary patch literal 129780 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 Startedtestgetting-startedAre you a developer?Broken linkAre you a node operator or validator?Are you a trader? - +
      Getting StartedStart your Injective Journeygetting-startedstart-ehro.png
      Are you a User?Learn how to create a walletcreate-a-wallet.mduser-hero.png
      Are you a Developer?Learn how to build on Injectivegetting-started.mddev-hero.png
      Are you a Trader?Learn how to start trading on Injectivegetting-started.mdtrader-hero.png
      Are you a Validator?Learn how to run sentry and validator nodesgetting-startedvalidator-hero.png
      Are you just curious?Feel free to explore the docsexplorer-hero.png
      diff --git a/.gitbook/SUMMARY.md b/.gitbook/SUMMARY.md index e4d64c70..fead1614 100644 --- a/.gitbook/SUMMARY.md +++ b/.gitbook/SUMMARY.md @@ -16,7 +16,7 @@ * [Gas and Fees](getting-started/transactions/gas-and-fees.md) * [Messages](getting-started/transactions/messages.md) * [Guides](guides/README.md) - * [Create Wallet](https://blog.injective.com/en/how-to-create-an-injective-wallet-2/) + * [Create a Wallet](https://blog.injective.com/en/how-to-create-an-injective-wallet-2/) * [Bridge](guides/bridge/README.md) * [From Ethereum](https://blog.injective.com/en/how-to-bridge-from-ethereum-to-injective-using-metamask/) * [Using Wormhole](https://blog.injective.com/en/how-to-bridge-to-injective-using-wormhole/) @@ -40,6 +40,7 @@ ## Developers +* [Getting Started](developers/getting-started.md) * [Exchange Developers](developers/exchange-developers/README.md) * [Build a DEX](https://docs.ts.injective.network/building-dapps/dapps-examples/dex) * [Provider Oracle](developers/exchange-developers/provider-oracle.md) @@ -101,6 +102,7 @@ ## Traders +* [Getting Started](traders/getting-started.md) * [Documentation](https://docs.trading.injective.network) * [API Reference](https://api.injective.exchange/) diff --git a/.gitbook/developers/getting-started.md b/.gitbook/developers/getting-started.md new file mode 100644 index 00000000..31dd91e8 --- /dev/null +++ b/.gitbook/developers/getting-started.md @@ -0,0 +1,2 @@ +# Getting Started + diff --git a/.gitbook/getting-started/README.md b/.gitbook/getting-started/README.md index a252208c..6330a5a7 100644 --- a/.gitbook/getting-started/README.md +++ b/.gitbook/getting-started/README.md @@ -4,7 +4,14 @@ description: Brief overview of Injective and it's unique features for the genera # Getting Started +Welcome to your journey of exploring Injective. Before asking questions, try to use the search functionality on the docs. Our goal is to make the documentation self-sufficient so onboarding is easy and everyone can learn more about Injective easily. + +Should you have some questions or feedback, you can reach out to Discord or Telegram: + +1. Join the [Injective Discord server](https://discord.gg/injective) and find the relevant channel. +2. Join the [Injective Developer Telegram channel](https://t.me/+8Y\_0HOFLhnRlZDU9). + ### Quickstart Guide to Injective -
      WalletLearn how to create a wallet on Injective and see the supported wallets on Injective wallet-hero (1).pngcreate-a-wallet.md
      Token StandardsLearn about different Token Standards on Injectivetoken-hero.pngtoken-standards
      TransactionsLearn how to prepare, sign and submit transactions on Injectivetxs-hero.pngtransactions
      +
      WalletLearn how to create a wallet on Injective and see the supported wallets on Injective wallet-hero (1).pngcreate-a-wallet.md
      Token StandardsLearn about different Token Standards on Injectivetoken-hero.pngtoken-standards
      TransactionsLearn how to prepare, sign and submit transactions on Injectivetxs-hero.pngtransactions
      diff --git a/.gitbook/getting-started/transactions/README.md b/.gitbook/getting-started/transactions/README.md index ec92e401..08613f84 100644 --- a/.gitbook/getting-started/transactions/README.md +++ b/.gitbook/getting-started/transactions/README.md @@ -16,4 +16,4 @@ Besides Messages, every transaction has a context. The context includes `fees`, ### Transaction Flow -Every transaction we want to broadcast to Injective has the same flow. The flow consists of three steps: preparing, signing and broadcasting the transaction. +Every transaction we want to broadcast to Injective has the same flow. The flow consists of three steps: preparing, signing, and broadcasting the transaction. When the transaction is included in a block, the state change that was specified using the Message is applied on Injective. diff --git a/.gitbook/getting-started/wallet/README.md b/.gitbook/getting-started/wallet/README.md index a2ee144a..36e41f0f 100644 --- a/.gitbook/getting-started/wallet/README.md +++ b/.gitbook/getting-started/wallet/README.md @@ -4,3 +4,43 @@ The Injective Wallet allows you to monitor your assets on Injective. Assets can ](https://docs.injective.network/learn/injective-hub/) There are a variety of different wallets that are supported on Injective. Users can choose to submit transactions on Injective using either their Ethereum native wallets or their Cosmos native wallets. + +### Overview + +Injective's `Account` type uses Ethereum's ECDSA secp256k1 curve for keys. Simply put, Injective's Account is native (compatible) with Ethereum accounts, allowing Ethereum native wallets such as MetaMask to interact with Injective. Popular Cosmos wallets have also integrated with Injective. See below for a list of available Cosmos wallets. + +#### Ethereum-Based Wallets + +As explained above, Ethereum based wallets can be used to interact with Injective. Right now, the most popular Ethereum based wallets are supported on Injective. These include: + +1. [Metamask](https://metamask.io/) +2. [Ledger](https://www.ledger.com/) +3. [Trezor](https://trezor.io/) +4. [Torus](https://toruswallet.io/) + +The process of signing transactions on Injective using an Ethereum native wallet consists of: + +1. Converting the transaction into EIP712 TypedData, +2. Signing the EIP712 TypedData using an Ethereum native wallet, +3. Packing the transaction into a native Cosmos transaction (including the signature), and broadcasting the transaction to the chain. + +This process is abstracted away from the end-user. If you've previously used an Ethereum native wallet, the user experience will be the same. + +#### Cosmos-Based Wallets + +Injective supports the leading wallets compatible with Cosmos and IBC, including: + +1. [Cosmostation](https://www.cosmostation.io/) +2. [Leap](https://www.leapwallet.io/) +3. [Keplr](https://www.keplr.app/) + +#### Injective-Native Wallets + +Currently, [Ninji Wallet](https://ninji.xyz/) is the only Injective-native wallet. Such a wallet is built to synergize specifically with the greater Injective ecosystem. + +#### CEX-Based Wallets + +There are also several wallets developed by centralized exchanges (CEXs) that now support Injective. If you are an active user of these CEXs, using their wallets can provide a more seamless web3 experience. Currently, CEX-based wallets that support Injective are: + +1. [Bitget](https://web3.bitget.com/) +2. [OKX](https://www.okx.com/web3) diff --git a/.gitbook/getting-started/wallet/create-a-wallet.md b/.gitbook/getting-started/wallet/create-a-wallet.md index 3534bb87..e83e2cff 100644 --- a/.gitbook/getting-started/wallet/create-a-wallet.md +++ b/.gitbook/getting-started/wallet/create-a-wallet.md @@ -1,3 +1,13 @@ +--- +description: Learn how to create a wallet on Injective using different approaches. +--- + # Create a wallet -Creating a wallet on Injective is as simply as sending some funds to your Injective address. +Creating a wallet on Injective is as simply as sending some funds to your Injective address. In this document we'll outline how to create a wallet using some popular wallet solutions (Metamask, Ledger, etc), but also how to create and fund a wallet using `injectived` in a local CLI environment. + +### Browser Wallets + +You can create an Injective wallet using your preferred wallet by following the [tutorial on our blog](https://blog.injective.com/en/how-to-create-an-injective-wallet-2/). + +### Local Wallets diff --git a/.gitbook/guides/README.md b/.gitbook/guides/README.md index b955b433..e53c20b4 100644 --- a/.gitbook/guides/README.md +++ b/.gitbook/guides/README.md @@ -1,2 +1,8 @@ +--- +description: >- + This section contains user facing (general) guides. Basically guides for the + most commonly asked questions on Injective. +--- + # Guides diff --git a/.gitbook/traders/getting-started.md b/.gitbook/traders/getting-started.md new file mode 100644 index 00000000..31dd91e8 --- /dev/null +++ b/.gitbook/traders/getting-started.md @@ -0,0 +1,2 @@ +# Getting Started + From 687c862b6cacb81075305bcb6151af9c30e80081 Mon Sep 17 00:00:00 2001 From: Bojan Angjelkoski Date: Mon, 21 Oct 2024 21:40:49 +0000 Subject: [PATCH 10/17] GITBOOK-10: No subject --- .gitbook/README.md | 2 +- .gitbook/SUMMARY.md | 2 +- .gitbook/glossary.md | 10 +++++++--- .gitbook/references.md | 8 ++++++-- 4 files changed, 15 insertions(+), 7 deletions(-) diff --git a/.gitbook/README.md b/.gitbook/README.md index 3cfe1444..72f5258e 100644 --- a/.gitbook/README.md +++ b/.gitbook/README.md @@ -30,4 +30,4 @@ Start building on Injective[\ ](https://docs.unichain.org/docs/getting-started/setting-up-a-wallet) --------------------------------------------------------------------- -
      Getting StartedStart your Injective Journeygetting-startedstart-ehro.png
      Are you a User?Learn how to create a walletcreate-a-wallet.mduser-hero.png
      Are you a Developer?Learn how to build on Injectivegetting-started.mddev-hero.png
      Are you a Trader?Learn how to start trading on Injectivegetting-started.mdtrader-hero.png
      Are you a Validator?Learn how to run sentry and validator nodesgetting-startedvalidator-hero.png
      Are you just curious?Feel free to explore the docsexplorer-hero.png
      +
      Getting StartedStart your Injective Journeygetting-startedstart-ehro.png
      Are you a User?Learn how to create a walletcreate-a-wallet.mduser-hero.png
      Are you a Developer?Learn how to build on Injectivegetting-started.mddev-hero.png
      Are you a Trader?Learn how to start trading on Injectivegetting-started.mdtrader-hero.png
      Are you a Validator?Learn how to run sentry and validator nodesgetting-startedvalidator-hero.png
      Are you just curious?Feel free to explore the docsexplorer-hero.png
      diff --git a/.gitbook/SUMMARY.md b/.gitbook/SUMMARY.md index fead1614..62546ef7 100644 --- a/.gitbook/SUMMARY.md +++ b/.gitbook/SUMMARY.md @@ -87,7 +87,7 @@ * [Upgrade](developers/modules/core/upgrade/README.md) * [Circuit](developers/modules/core/circuit/README.md) * [Genutils](developers/modules/core/genutils.md) -* [Documentation](https://docs.ts.injective.network) +* [dApp Documentation](https://docs.ts.injective.network) ## Nodes diff --git a/.gitbook/glossary.md b/.gitbook/glossary.md index 86705ed6..03d16504 100644 --- a/.gitbook/glossary.md +++ b/.gitbook/glossary.md @@ -1,8 +1,12 @@ -# Glossary +--- +description: >- + Pocket size cheat sheet for Injective. Use this glossary to learn about terms + specific to Injective. +--- -Use this glossary to learn about terms specific to Injective. +# Glossary -### Active set +Active set The validators that participate in consensus and receive rewards. diff --git a/.gitbook/references.md b/.gitbook/references.md index 548cfe62..6ecc4ef6 100644 --- a/.gitbook/references.md +++ b/.gitbook/references.md @@ -1,3 +1,7 @@ +--- +description: Important references and links for the Injective Ecosystem +--- + # References ## Developer Resources @@ -59,8 +63,8 @@ Find developer support on Discord or Telegram ### Public Endpoints -For a list of public endpoints see here. +For a list of public endpoints visit [public-endpoints.md](nodes/public-endpoints.md "mention") ### Private / Dedicated Node Services -For a full list of private node services see here. +For a full list of private node services see [private-nodes.md](nodes/private-nodes.md "mention") From 60e9ee2b8b550a775691fa2f9fa39d6b0ec113ee Mon Sep 17 00:00:00 2001 From: Bojan Angjelkoski Date: Mon, 21 Oct 2024 21:50:29 +0000 Subject: [PATCH 11/17] GITBOOK-11: No subject --- .gitbook/SUMMARY.md | 1 + .gitbook/developers/evm-developers.md | 2 ++ 2 files changed, 3 insertions(+) create mode 100644 .gitbook/developers/evm-developers.md diff --git a/.gitbook/SUMMARY.md b/.gitbook/SUMMARY.md index 62546ef7..82cd0c73 100644 --- a/.gitbook/SUMMARY.md +++ b/.gitbook/SUMMARY.md @@ -44,6 +44,7 @@ * [Exchange Developers](developers/exchange-developers/README.md) * [Build a DEX](https://docs.ts.injective.network/building-dapps/dapps-examples/dex) * [Provider Oracle](developers/exchange-developers/provider-oracle.md) +* [EVM Developers](developers/evm-developers.md) * [Cosmwasm Developers](developers/cosmwasm-developers/README.md) * [Your First Smart Contract](developers/cosmwasm-developers/your-first-smart-contract.md) * [Guides](developers/cosmwasm-developers/guides/README.md) diff --git a/.gitbook/developers/evm-developers.md b/.gitbook/developers/evm-developers.md new file mode 100644 index 00000000..7e1dc9ec --- /dev/null +++ b/.gitbook/developers/evm-developers.md @@ -0,0 +1,2 @@ +# EVM Developers + From ace664c8af44191306d05bcb2b357eef6772d11c Mon Sep 17 00:00:00 2001 From: Bojan Angjelkoski Date: Mon, 21 Oct 2024 22:01:39 +0000 Subject: [PATCH 12/17] GITBOOK-12: No subject --- .../developers/cosmwasm-developers/README.md | 5 ++++ .gitbook/developers/evm-developers.md | 5 ++++ .gitbook/developers/getting-started.md | 6 +++++ .gitbook/developers/modules/README.md | 25 ++++--------------- .gitbook/guides/README.md | 5 ++++ .gitbook/nodes/getting-started/README.md | 11 ++++++++ .gitbook/nodes/private-nodes.md | 10 +++++--- .gitbook/nodes/validators.md | 5 ++++ .gitbook/toolkits/README.md | 5 ++++ .gitbook/traders/getting-started.md | 5 ++++ 10 files changed, 59 insertions(+), 23 deletions(-) diff --git a/.gitbook/developers/cosmwasm-developers/README.md b/.gitbook/developers/cosmwasm-developers/README.md index 176f9d78..c9bab162 100644 --- a/.gitbook/developers/cosmwasm-developers/README.md +++ b/.gitbook/developers/cosmwasm-developers/README.md @@ -1,2 +1,7 @@ # Cosmwasm Developers +🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 + +This page is currently under work in progress. + +🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 diff --git a/.gitbook/developers/evm-developers.md b/.gitbook/developers/evm-developers.md index 7e1dc9ec..3e3cc5da 100644 --- a/.gitbook/developers/evm-developers.md +++ b/.gitbook/developers/evm-developers.md @@ -1,2 +1,7 @@ # EVM Developers +🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 + +This page is currently under work in progress. + +🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 diff --git a/.gitbook/developers/getting-started.md b/.gitbook/developers/getting-started.md index 31dd91e8..15eb8e63 100644 --- a/.gitbook/developers/getting-started.md +++ b/.gitbook/developers/getting-started.md @@ -1,2 +1,8 @@ +--- +description: >- + This goal of this section is to help developers build their projects on + Injective +--- + # Getting Started diff --git a/.gitbook/developers/modules/README.md b/.gitbook/developers/modules/README.md index 3a4a9ddf..986e8b39 100644 --- a/.gitbook/developers/modules/README.md +++ b/.gitbook/developers/modules/README.md @@ -1,22 +1,7 @@ -import { - HomepageCard as Card, - HomepageSection as Section, -} from "../../../src/components/HomepageComponents"; -import { DistributedIcon, CoreModulesIcon } from "../../../src/icons"; +# Modules -# Injective Modules +🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 -

      - } - /> - } - /> -
      +This page is currently under work in progress. + +🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 diff --git a/.gitbook/guides/README.md b/.gitbook/guides/README.md index e53c20b4..6a193bf6 100644 --- a/.gitbook/guides/README.md +++ b/.gitbook/guides/README.md @@ -6,3 +6,8 @@ description: >- # Guides +🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 + +This page is currently under work in progress. + +🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 diff --git a/.gitbook/nodes/getting-started/README.md b/.gitbook/nodes/getting-started/README.md index 31dd91e8..406e94e8 100644 --- a/.gitbook/nodes/getting-started/README.md +++ b/.gitbook/nodes/getting-started/README.md @@ -1,2 +1,13 @@ +--- +description: >- + This section helps node operators and validators to run, upgrade and maintain + their sentry/validator nodes. +--- + # Getting Started +🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 + +This page is currently under work in progress. + +🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 diff --git a/.gitbook/nodes/private-nodes.md b/.gitbook/nodes/private-nodes.md index 91791dcd..f82bf604 100644 --- a/.gitbook/nodes/private-nodes.md +++ b/.gitbook/nodes/private-nodes.md @@ -1,8 +1,12 @@ -# Private Nodes +--- +description: >- + As a developer, you may be interested in having a private/dedicated node or + indexing solutions powering your dApp. +--- -As a developer, you may be interested in having a private/dedicated node or indexing solutions powering your dApp. +# Private Nodes -Here is a list of companies offering private Injective infrastructure services. For more information, click on their websites below +Here is a list of external providers offering private Injective infrastructure services. For more information, click on their websites below * [AllNodes](https://www.allnodes.com/inj) * [NewMetric](https://app.newmetric.xyz/) diff --git a/.gitbook/nodes/validators.md b/.gitbook/nodes/validators.md index 57a2276b..e9bceb5c 100644 --- a/.gitbook/nodes/validators.md +++ b/.gitbook/nodes/validators.md @@ -1,2 +1,7 @@ # Validators +🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 + +This page is currently under work in progress. + +🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 diff --git a/.gitbook/toolkits/README.md b/.gitbook/toolkits/README.md index 1ed9e27c..0b399a3a 100644 --- a/.gitbook/toolkits/README.md +++ b/.gitbook/toolkits/README.md @@ -1,2 +1,7 @@ # Toolkits +🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 + +This page is currently under work in progress. + +🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 diff --git a/.gitbook/traders/getting-started.md b/.gitbook/traders/getting-started.md index 31dd91e8..ce6d93d4 100644 --- a/.gitbook/traders/getting-started.md +++ b/.gitbook/traders/getting-started.md @@ -1,2 +1,7 @@ # Getting Started +🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 + +This page is currently under work in progress. + +🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 From 4e2b0f8e8e694c592f6c867f9944ed01930c8769 Mon Sep 17 00:00:00 2001 From: Bojan Angjelkoski Date: Tue, 22 Oct 2024 13:03:47 +0000 Subject: [PATCH 13/17] GITBOOK-13: No subject --- .gitbook/.gitbook/assets/blog-hero.png | Bin 0 -> 131033 bytes .gitbook/.gitbook/assets/bridge-hero.png | Bin 0 -> 128894 bytes .gitbook/.gitbook/assets/code-hero.png | Bin 0 -> 132055 bytes .gitbook/.gitbook/assets/inj-hero.png | Bin 0 -> 132408 bytes .../.gitbook/assets/launch-market-hero.png | Bin 0 -> 129623 bytes .gitbook/.gitbook/assets/launch-token-hero.png | Bin 0 -> 133468 bytes .gitbook/SUMMARY.md | 7 ++++--- .../getting-started/transactions/README.md | 2 +- .../getting-started/transactions/messages.md | 2 -- .gitbook/guides/README.md | 7 +++---- .../{validators.md => validators/README.md} | 0 .../validators}/cosmosvisor.md | 0 .gitbook/toolkits/README.md | 11 ++++++++--- 13 files changed, 16 insertions(+), 13 deletions(-) create mode 100644 .gitbook/.gitbook/assets/blog-hero.png create mode 100644 .gitbook/.gitbook/assets/bridge-hero.png create mode 100644 .gitbook/.gitbook/assets/code-hero.png create mode 100644 .gitbook/.gitbook/assets/inj-hero.png create mode 100644 .gitbook/.gitbook/assets/launch-market-hero.png create mode 100644 .gitbook/.gitbook/assets/launch-token-hero.png delete mode 100644 .gitbook/getting-started/transactions/messages.md rename .gitbook/nodes/{validators.md => validators/README.md} (100%) rename .gitbook/{toolkits => nodes/validators}/cosmosvisor.md (100%) diff --git a/.gitbook/.gitbook/assets/blog-hero.png b/.gitbook/.gitbook/assets/blog-hero.png new file mode 100644 index 0000000000000000000000000000000000000000..c143cf1f2c954201f87393105f68e7ef442d92d0 GIT binary patch literal 131033 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

      CxHjk8?af?5jZvvrTI_;Xsl>ObNSN^H?F{*uJ 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 s&)5 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%0D`eoWCI|8fUqwtYq}UG6Vppbnae`0Wr(|h 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≀~L|$D(fk;EVz=r zY8|xQGC9FzW#d0-+`4exIsLrXL9wpr% z8{lNYK?K2m&%oKQ0Sb;1%JaoD#iHnUJ3q0}#%}9RvMGP6Qu1*5jP^QsR&grSW7&+3 zD*>55Yt{1g?|<`#P)lV82=kw1ZND z1#|#P9!y@iUdEMN6oRKgF4jT-?d8_s$z-^(UJ^4AWw;~`hy4KmV0^hCg%!huo1m!k zgJTdMR_ZQwVVMR^=422YKuJ--uE%o62yobPm;jQlM+z+rqZ#=hK1Z3yO;f5brgDdn zU??E>gTgTOJ|k12z(qfY<9anzCZ@y3_G#eXU8)|vPA{}!0{?L{fN=xK79I)QQ--!4Nij<=j#=0wU`Nrp~gue zja9!J+$YSRLCDJZQo(2+Quy)}bvJ5o>Onw;oFAjmG+D1OYL($gZA<6kS$yj_HBkW2 z3Le74`!J1o-jNZf;uVaF9PAY%{(YA#y?nA(^laif72`sx1uhlEwESSuC*fZVxilNU zX{FNuf~!UQ+*c!$58*<2gXUr&3u`nSZ+2w1P=CL(eTscCFf3S=bE*0RWVX8iviAZ! zh;fkdTU4GkjZcY;aZR4poY@NkvkgF=|2BBZAWlTL#dGH8B3=c7wCVEM%tJ9RU)IG6 z4Q>(WsDNF0jYGP980gA?*H87?@4sSGdK}B;!|b1CQ!-9vrzK|}_Eu)|D9w4M51+F~ zf*EMIBoO(zF1TL40}}RMwfg@WHF

      7tnu`a4FY+-X*zg|47$q%EVOGTcEtbfyaL zPg=TOKP#vJa zLSjDGdn&jpiXyyYOag)Qx(=%0RuIHh2*9Vht8r&Gp6vj>ox5P$Kd`%g)jK|5qtc?2 z^(fj!n5Wj9bz(DCKCuCo*jKmGE^0p4$^LdXyuQS=d>v5UF_DfrcUi9$$Mn7CpWgqv z29{o-U_BNIeMYb9O?CsFuc9LW5pi65@LC8ReEd<+%15+`k4MVO5+owHh!cyNnV-p4 zOndWYfVy%203yG9{B;f+-JYizuCO+ZFJM#sdD+8hCu^6{w-2y04}5*!_F}DZ(WB*K z|Dffr^8qqi9Oym|5+C7o1qt5E?Vyz6?gUeyO;sug@VRt=uBIL&pdLRvH}7Kpcab4= zD=tlX$X<@y6FR%DSw+f%j1i$>I0HT=z|^zX@Si0F1q* z@R5ZR-`|z8TrX-eGe6tXjbpD*tJ2mih+x~?zRM)1y6qI5LvU{O!+CyVyo?GGLZ3u+ zc@lv|#-)5sc4TDwG(q*`z}ysS;|M3nQT5||#jBWOw0hh61tOH##zAKoq>h92trftz0824!rWh;61j`+zWY>Cu=xW1ol&S4i*Xk+e~Aj#d|42aozt#vHDDaZcal*i>uwF=LC)bHWFZej?lQPL@jCpPh&m+Vp||_7L3g` zq`PtpMfvvvkK#^1Cq{Pwn!Fq86AZZ83vrts~&6vKAVkVACK*No*9eBDaj0 z9qyE77nr?ct)9jaxj@VWc(ewB3Ira3az51Zu8M{cBf>=~Jnl8=OgGR3n>B&6&3p9M zGSlF0phY0F|N7non5ogXo*Q1*Gze+fVrKFn*!V&4ZE2`9NO=$(kqWhdGgrl>^at)7 zXs8J2bmiZcP=R(!)~osYF}Pn?59N2%9O;wF6-3E-Y#-u9zx+{owfA%vVV{u=H3Mn4yyFD+uj6mA^ z05~Q;2Hqnw56>d-&jb*Yk}ckOZ(#$zJEdEKjSzWD_H#Awpc$$C|1qA%gY@ay2R$pjX;-#FbNZ9l-y5x6`0 zTHpT$YF?ma_VGApv}Z&6#I*m-kzP-=7pTJlkm!o`X#Et8^w3I7W9d#&h97+FuPXms8(@_zCw zx^_I~aTF2MfQ|vk*pxNZS}{)bdCxdwfWhrl5yHGiU2oO(;do+_nybBYWvIYcM2_(H z?S@HDfM(m(^?LC4**#Qj9>8TG)2iJ`$&Ng$A1>C>kd6u~ME^8&Pl{Qhnbg7oEb{m3Qsoj~R*|0}SSfw1=h z09ZLX$GBoq9t6|km>Vt(#Q%UjF#;JQBl3)KP#GXaxw zIjKpPWPZH~9l!#Y(0I)p!uTgB$>7u4C5%$~V=$^ud7gNIq&~98u7F<*HX$kBkT1u} zf=vL+;M|P4p*w3SPx2a_dLe>qx(KS%(tQCi5E|=Pm@@tZ4n|68XmV+)1t`G+GTsM| zU;N|9_jaAz6~Nb~a9UL>3&mKM35Y(Cn10CTa6ZewuoyxxO`rJ3E%n#&b<4)~-+;p5 z>aovHfgJ7o3yDzY^M7E4-sg~M=HKz&NBv8vnfD`H0~;{{Hp4n{D~?oml>OFz^P