From 57778d8e721520ec94edd4e41a78e0cf40d7536c Mon Sep 17 00:00:00 2001 From: rabi-siddique Date: Wed, 10 Jul 2024 11:16:52 +0500 Subject: [PATCH 1/6] fix: update ICA section links to point to Glossary --- main/guides/orchestration/getting-started/key-concepts.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main/guides/orchestration/getting-started/key-concepts.md b/main/guides/orchestration/getting-started/key-concepts.md index 3ca0bbc4d..9dab0effb 100644 --- a/main/guides/orchestration/getting-started/key-concepts.md +++ b/main/guides/orchestration/getting-started/key-concepts.md @@ -5,7 +5,7 @@ Here, we overview the fundamental concepts involved with building orchestration ### Interchain Account (ICA) -[Interchain Accounts](/glossary/#interchain-account-ica) (ICAs) are an IBC feature used in Agoric’s orchestration API. They enable an Agoric smart contract to control an account on another blockchain within the Cosmos ecosystem, facilitated by Agoric [Orchestration](#orchestration) API. This feature leverages the [Inter-Blockchain Communication (IBC)](#ibc) protocol to facilitate interactions and transactions across different blockchains seamlessly. +[Interchain Accounts](/glossary/#intercahin-account-ica) (ICAs) are an IBC feature used in Agoric’s orchestration API. They enable an Agoric smart contract to control an account on another blockchain within the Cosmos ecosystem, facilitated by Agoric [Orchestration](/glossary/#orchestration) API. This feature leverages the [Inter-Blockchain Communication (IBC)](/glossary/#ibc) protocol to facilitate interactions and transactions across different blockchains seamlessly.
From 4ca9c6dae748c27a8878848f12ce058cddc2854e Mon Sep 17 00:00:00 2001 From: rabi-siddique Date: Wed, 10 Jul 2024 11:40:03 +0500 Subject: [PATCH 2/6] chore: improvements related to formatting of the text --- .../getting-started/key-concepts.md | 34 ++++++++----------- 1 file changed, 15 insertions(+), 19 deletions(-) diff --git a/main/guides/orchestration/getting-started/key-concepts.md b/main/guides/orchestration/getting-started/key-concepts.md index 9dab0effb..a91594ce4 100644 --- a/main/guides/orchestration/getting-started/key-concepts.md +++ b/main/guides/orchestration/getting-started/key-concepts.md @@ -2,11 +2,9 @@ Here, we overview the fundamental concepts involved with building orchestration smart contracts. - ### Interchain Account (ICA) -[Interchain Accounts](/glossary/#intercahin-account-ica) (ICAs) are an IBC feature used in Agoric’s orchestration API. They enable an Agoric smart contract to control an account on another blockchain within the Cosmos ecosystem, facilitated by Agoric [Orchestration](/glossary/#orchestration) API. This feature leverages the [Inter-Blockchain Communication (IBC)](/glossary/#ibc) protocol to facilitate interactions and transactions across different blockchains seamlessly. - +[Interchain Accounts](/glossary/#intercahin-account-ica) (ICAs) are an IBC feature used in Agoric’s Orchestration API. They enable an Agoric smart contract to control an account on another blockchain within the Cosmos ecosystem, facilitated by Agoric [Orchestration](/glossary/#orchestration) API. This feature leverages the [Inter-Blockchain Communication (IBC)](/glossary/#ibc) protocol to facilitate interactions and transactions across different blockchains seamlessly.
@@ -14,13 +12,12 @@ Here, we overview the fundamental concepts involved with building orchestration Photo credit: [cosmos.network documentation](https://tutorials.cosmos.network/academy/3-ibc/8-ica.html) -A key advantage of ICAs is that they make accounts on other chains look like any other (remotable) object. When a contract creates an ICA, it has sole access to and control over the account but can delegate certain forms of access to its clients. +A key advantage of ICAs is that they make accounts on other chains look like any other (remotable) object. When a contract creates an ICA, it has sole access to and control over the account but can delegate certain forms of access to its clients. For a detailed explanation of these access control rules, see [Access Control with Objects](/guides/zoe/contract-access-control). - - ### Example ICA Usage from a Smart Contract + This sample is taken from one of the [example contracts](https://github.com/Agoric/agoric-sdk/blob/master/packages/orchestration/src/examples/swapExample.contract.js) ```javascript @@ -49,9 +46,6 @@ const stackAndSwapFn = async (orch, ...) => { }; ``` - - - ### ChainHub The `makeChainHub` utility manages the connections and metadata for various blockchain networks. It simplifies accessing and interacting with multiple chains, providing a unified interface for the orchestration logic to manage cross-chain operations effectively. ChainHub also allows for dynamic registration and usage of chains. @@ -72,29 +66,31 @@ chainHub.registerConnection( In this example, chainHub is used to register a new chain and establish a connection between the Agoric chain and the newly registered chain. - ### Orchestration Account -Orchestration accounts are a key concept in the Agoric Orchestration API, represented by the OrchestrationAccountI interface. These accounts provide high-level operations for managing accounts on remote chains, allowing seamless interaction and management of interchain accounts. The orchestration accounts abstract the complexity of interchain interactions, providing a unified and simplified interface for developers. +Orchestration accounts are a key concept in the Agoric Orchestration API, represented by the `OrchestrationAccountI` interface. These accounts provide high-level operations for managing accounts on remote chains, allowing seamless interaction and management of interchain accounts. The orchestration accounts abstract the complexity of interchain interactions, providing a unified and simplified interface for developers. +**1. Address Management** -1. Address Management ```javascript const address = await orchestrationAccount.getAddress(); ``` -2. Balance Management -- getBalances returns an array of amounts for every balance in the account. -- getBalance retrieves the balance of a specific denom for the account. +**2. Balance Management** + +- `getBalances` returns an array of amounts for every balance in the account. +- `getBalance` retrieves the balance of a specific denom for the account. + ```javascript const balances = await orchestrationAccount.getBalances(); const balance = await orchestrationAccount.getBalance('uatom'); ``` -3. Funds Transfer -- send transfers an amount to another account on the same chain. -- transfer transfers an amount to another account, typically on another chain. -- transferSteps transfers an amount in multiple steps, handling complex transfer paths. +**3. Funds Transfer** + +- `send` transfers an amount to another account on the same chain. +- `transfer` transfers an amount to another account, typically on another chain. +- `transferSteps` transfers an amount in multiple steps, handling complex transfer paths. ```javascript await orchestrationAccount.send(receiverAddress, amount); From eba282b168052eb4c25a455c5cb0740b21770259 Mon Sep 17 00:00:00 2001 From: rabi-siddique Date: Wed, 10 Jul 2024 11:43:13 +0500 Subject: [PATCH 3/6] chore: add link to Orchestration Account Interface --- main/guides/orchestration/getting-started/key-concepts.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main/guides/orchestration/getting-started/key-concepts.md b/main/guides/orchestration/getting-started/key-concepts.md index a91594ce4..4ce89f355 100644 --- a/main/guides/orchestration/getting-started/key-concepts.md +++ b/main/guides/orchestration/getting-started/key-concepts.md @@ -68,7 +68,7 @@ In this example, chainHub is used to register a new chain and establish a connec ### Orchestration Account -Orchestration accounts are a key concept in the Agoric Orchestration API, represented by the `OrchestrationAccountI` interface. These accounts provide high-level operations for managing accounts on remote chains, allowing seamless interaction and management of interchain accounts. The orchestration accounts abstract the complexity of interchain interactions, providing a unified and simplified interface for developers. +Orchestration accounts are a key concept in the Agoric Orchestration API, represented by the [OrchestrationAccountI](https://github.com/Agoric/agoric-sdk/blob/000693442f821c1fcea007a2df740733b1f75ebe/packages/orchestration/src/orchestration-api.ts#L131-L175C2) interface. These accounts provide high-level operations for managing accounts on remote chains, allowing seamless interaction and management of interchain accounts. The orchestration accounts abstract the complexity of interchain interactions, providing a unified and simplified interface for developers. **1. Address Management** From a7e928179c9ed74d1e05e1389ee35663cbd6a21b Mon Sep 17 00:00:00 2001 From: rabi-siddique Date: Wed, 10 Jul 2024 11:58:36 +0500 Subject: [PATCH 4/6] chore: explain the role getAddress --- main/guides/orchestration/getting-started/key-concepts.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/main/guides/orchestration/getting-started/key-concepts.md b/main/guides/orchestration/getting-started/key-concepts.md index 4ce89f355..915f3cc0f 100644 --- a/main/guides/orchestration/getting-started/key-concepts.md +++ b/main/guides/orchestration/getting-started/key-concepts.md @@ -64,7 +64,7 @@ chainHub.registerConnection( ); ``` -In this example, chainHub is used to register a new chain and establish a connection between the Agoric chain and the newly registered chain. +In this example, `chainHub` is used to register a new chain and establish a connection between the Agoric chain and the newly registered chain. ### Orchestration Account @@ -72,6 +72,8 @@ Orchestration accounts are a key concept in the Agoric Orchestration API, repres **1. Address Management** +- `getAddress` retrieves the address of the account on the remote chain. + ```javascript const address = await orchestrationAccount.getAddress(); ``` From dfa0a0a929d3b9b58f5899507b38caf84c263c93 Mon Sep 17 00:00:00 2001 From: rabi-siddique Date: Wed, 10 Jul 2024 12:08:05 +0500 Subject: [PATCH 5/6] docs: updates in ChainHub section --- main/guides/orchestration/getting-started/api.md | 2 +- main/guides/orchestration/getting-started/key-concepts.md | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/main/guides/orchestration/getting-started/api.md b/main/guides/orchestration/getting-started/api.md index c7611f7e1..d4196b167 100644 --- a/main/guides/orchestration/getting-started/api.md +++ b/main/guides/orchestration/getting-started/api.md @@ -16,7 +16,7 @@ const chain = await orchestrator.getChain('chainName'); ``` ### makeLocalAccount -Creates a new `LocalchainAccount`. +Creates a new LocalChainAccount. ```javascript const localAccount = await orchestrator.makeLocalAccount(); diff --git a/main/guides/orchestration/getting-started/key-concepts.md b/main/guides/orchestration/getting-started/key-concepts.md index 915f3cc0f..159e56f82 100644 --- a/main/guides/orchestration/getting-started/key-concepts.md +++ b/main/guides/orchestration/getting-started/key-concepts.md @@ -48,7 +48,10 @@ const stackAndSwapFn = async (orch, ...) => { ### ChainHub -The `makeChainHub` utility manages the connections and metadata for various blockchain networks. It simplifies accessing and interacting with multiple chains, providing a unified interface for the orchestration logic to manage cross-chain operations effectively. ChainHub also allows for dynamic registration and usage of chains. +The `makeChainHub` utility manages the connections and metadata for various blockchain networks. It creates a new `ChainHub` instance implementing the [`ChainHubI`](https://github.com/Agoric/agoric-sdk/blob/000693442f821c1fcea007a2df740733b1f75ebe/packages/orchestration/src/exos/chain-hub.js#L70-L80C4) interface. + +It simplifies accessing and interacting with multiple chains, providing a unified interface for the orchestration logic to manage cross-chain operations effectively. +ChainHub also allows dynamic registration and use of chain and connection information. ```javascript const chainHub = makeChainHub(remotePowers.agoricNames); @@ -68,7 +71,7 @@ In this example, `chainHub` is used to register a new chain and establish a conn ### Orchestration Account -Orchestration accounts are a key concept in the Agoric Orchestration API, represented by the [OrchestrationAccountI](https://github.com/Agoric/agoric-sdk/blob/000693442f821c1fcea007a2df740733b1f75ebe/packages/orchestration/src/orchestration-api.ts#L131-L175C2) interface. These accounts provide high-level operations for managing accounts on remote chains, allowing seamless interaction and management of interchain accounts. The orchestration accounts abstract the complexity of interchain interactions, providing a unified and simplified interface for developers. +Orchestration accounts are a key concept in the Agoric Orchestration API, represented by the [`OrchestrationAccountI`](https://agoric-sdk.pages.dev/interfaces/_agoric_orchestration.OrchestrationAccountI) interface. These accounts provide high-level operations for managing accounts on remote chains, allowing seamless interaction and management of interchain accounts. The orchestration accounts abstract the complexity of interchain interactions, providing a unified and simplified interface for developers. **1. Address Management** From 8212c34d6c76ffc81ce126d6ecff08549558245d Mon Sep 17 00:00:00 2001 From: rabi-siddique Date: Thu, 11 Jul 2024 14:09:32 +0500 Subject: [PATCH 6/6] chore: fix typo in glossary for Inter Chain section --- main/glossary/index.md | 4 ++-- main/guides/orchestration/getting-started/key-concepts.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/main/glossary/index.md b/main/glossary/index.md index 2bc522c6c..d024a74c0 100644 --- a/main/glossary/index.md +++ b/main/glossary/index.md @@ -338,7 +338,7 @@ The Inter-Blockchain Communication protocol, used by blockchains to communicate For more details, see [What developers need to know about inter-blockchain communication](https://www.computerweekly.com/blog/Open-Source-Insider/What-developers-need-to-know-about-inter-blockchain-communication). -## Intercahin Account (ICA) +## Interchain Account (ICA) Interchain Accounts are an [IBC](#ibc) feature used in Agoric's [Orchestration API](#orchestration) to enable an Agoric smart contract to control an account on another blockchain within the Cosmos ecosystem. This feature leverages the [Inter-Blockchain Communication (IBC)](#ibc) protocol to facilitate interactions and transactions across different blockchains seamlessly. ## Invitation @@ -487,7 +487,7 @@ Orchestration API is a tool to help developers build seamless applications out o This composability allows for the development of user-centric applications that leverage the unique strengths of different blockchain ecosystems. Orchestration integrates with existing Agoric components ([SwingSet](/guides/platform/#swingset), Cosmos modules) and introduces - vat-orchestration. This [vat](/glossary/#vat) manages [Inter-Chain Account (ICA)](#intercahin-account-ica) identities and connections to host + vat-orchestration. This [vat](/glossary/#vat) manages [Inter-Chain Account (ICA)](#interchain-account-ica) identities and connections to host chains, ensuring proper transaction authorization. For more information, see the [Orchestration API](/guides/orchestration/). diff --git a/main/guides/orchestration/getting-started/key-concepts.md b/main/guides/orchestration/getting-started/key-concepts.md index 159e56f82..029a63caa 100644 --- a/main/guides/orchestration/getting-started/key-concepts.md +++ b/main/guides/orchestration/getting-started/key-concepts.md @@ -4,7 +4,7 @@ Here, we overview the fundamental concepts involved with building orchestration ### Interchain Account (ICA) -[Interchain Accounts](/glossary/#intercahin-account-ica) (ICAs) are an IBC feature used in Agoric’s Orchestration API. They enable an Agoric smart contract to control an account on another blockchain within the Cosmos ecosystem, facilitated by Agoric [Orchestration](/glossary/#orchestration) API. This feature leverages the [Inter-Blockchain Communication (IBC)](/glossary/#ibc) protocol to facilitate interactions and transactions across different blockchains seamlessly. +[Interchain Accounts](/glossary/#interchain-account-ica) (ICAs) are an IBC feature used in Agoric’s Orchestration API. They enable an Agoric smart contract to control an account on another blockchain within the Cosmos ecosystem, facilitated by Agoric [Orchestration](/glossary/#orchestration) API. This feature leverages the [Inter-Blockchain Communication (IBC)](/glossary/#ibc) protocol to facilitate interactions and transactions across different blockchains seamlessly.